Preface

This book is intended as an introductory textbook for a first course in discrete-event simulation modeling and analysis for upper-level undergraduate students as well as graduate students. While the text is focused towards engineering students (primarily industrial engineering) it could also be utilized by computer science and data science majors. Practitioners interested in learning simulation and the KSL could also use this book independently of a course.

Creative Commons License
The online version of this book is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

When citing this book, please use the following format:

Rossetti, M.D. (2023). Simulation Modeling using the Kotlin Simulation Library (KSL), On-line and Open Text Edition. Retrieved from https://rossetti.github.io/KSLBook/ licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

The purpose of this book is to provide an overview of the Kotlin Simulation Library (KSL). The KSL facilitates simulation modeling by providing Kotlin language libraries that ease the development of simulation models. The KSL has a substantial amount of functionality implemented in the following packages:

  • ksl.utilities - a variety of support utilities for performing discrete-event and Monte Carlo experiments including:
    • probability distribution models
    • random number generation
    • random variate generation
    • statistical collection (observation based and time weighted summary statistics, histograms, frequency tabulation, bootstrapping, box plot summary, etc.)
    • statistical comparison
    • Markov chain Monte Carlo
    • Extension functions for Arrays (sampling, filling, statistics, input, output)
    • file input and output utilities (CSV processing, Markdown tables, Excel, tabular files)
    • database - supports the creation, connection, and usage of databases
      • export databases to CSV, text files, Excel, DataFrames
      • import data to tables from Excel worksheets
      • capture simulation results to well-structured database for post processing
  • ksl.calendar - linked list, priority queue, skew heap, and tree set based event calendars
  • ksl.simulation - model development, experiment execution, reporting, batching
  • ksl.observers - variable tracing, replication data collection, Welch plotting, data file collection
  • ksl.modeling
    • event generation, schedules, random elements
    • non-homogeneous Poisson process generation
    • queues with automated statistical collection
    • process view implementation based on coroutines
    • response variable statistical collection
    • resource capacity schedules
    • responses collected by periods of time
    • aggregate statistical collection

This book discusses a large portion of this functionality. The KSL Github project page discusses how to access the code and examples discussed within this textbook.

Portions of this book also appear within my other textbook on simulation:

Rossetti, M.D. (2021). Simulation Modeling and Arena, 3rd and Open Text Edition. Retrieved from https://rossetti.github.io/RossettiArenaBook/ licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.