\contentsline {section}{\numberline {1}What Is Discrete-Event Simulation (DES)?}{3}{section.1}
\contentsline {section}{\numberline {2}World Views in DES Programming}{3}{section.2}
\contentsline {subsection}{\numberline {2.1}The Activity-Oriented Paradigm}{3}{subsection.2.1}
\contentsline {subsection}{\numberline {2.2}The Event-Oriented Paradigm}{4}{subsection.2.2}
\contentsline {subsection}{\numberline {2.3}The Process-Oriented Paradigm}{6}{subsection.2.3}
\contentsline {section}{\numberline {3}Introduction to the SimPy Simulation Language}{7}{section.3}
\contentsline {subsection}{\numberline {3.1}SimPy Overview}{8}{subsection.3.1}
\contentsline {subsection}{\numberline {3.2}Introduction to SimPy Programming}{9}{subsection.3.2}
\contentsline {subsubsection}{\numberline {3.2.1}MachRep1.py: Our First SimPy Program}{10}{subsubsection.3.2.1}
\contentsline {subsubsection}{\numberline {3.2.2}MachRep2.py: Introducing the Resource Class}{14}{subsubsection.3.2.2}
\contentsline {subsubsection}{\numberline {3.2.3}MachRep3.py: Introducing Passivate/Reactivate Operations}{16}{subsubsection.3.2.3}
\contentsline {subsubsection}{\numberline {3.2.4}MMk.py: ``Do It Yourself'' Queue Management}{18}{subsubsection.3.2.4}
\contentsline {subsubsection}{\numberline {3.2.5}SMP.py: Simultaneous Possession of Resources}{20}{subsubsection.3.2.5}
\contentsline {subsubsection}{\numberline {3.2.6}Cell.py: Dynamic Creation of Threads}{22}{subsubsection.3.2.6}
\contentsline {subsection}{\numberline {3.3}Note These Restrictions on PEMs}{25}{subsection.3.3}
\contentsline {subsection}{\numberline {3.4}SimPy Data Collection and Display}{25}{subsection.3.4}
\contentsline {subsubsection}{\numberline {3.4.1}Introduction to Monitors}{25}{subsubsection.3.4.1}
\contentsline {subsubsection}{\numberline {3.4.2}Time Averages}{26}{subsubsection.3.4.2}
\contentsline {subsubsection}{\numberline {3.4.3}The Function Monitor.timeAverage()}{27}{subsubsection.3.4.3}
\contentsline {subsubsection}{\numberline {3.4.4}But I Recommend That You Not Use This Function}{27}{subsubsection.3.4.4}
\contentsline {subsubsection}{\numberline {3.4.5}Little's Rule}{28}{subsubsection.3.4.5}
\contentsline {subsection}{\numberline {3.5}Other SimPy Features}{29}{subsection.3.5}
\contentsline {section}{\numberline {A}How to Obtain and Install SimPy}{29}{section.A}
\contentsline {section}{\numberline {B}Debugging and Verifying SimPy Programs}{30}{section.B}
\contentsline {subsection}{\numberline {B.1}Debugging Tools}{30}{subsection.B.1}
\contentsline {subsection}{\numberline {B.2}Know How Control Transfers in SimPy Programs}{30}{subsection.B.2}
\contentsline {subsection}{\numberline {B.3}Always Know What (Simulated) Time It Is}{31}{subsection.B.3}
\contentsline {subsection}{\numberline {B.4}Starting Over}{32}{subsection.B.4}
\contentsline {subsection}{\numberline {B.5}Repeatability}{32}{subsection.B.5}
\contentsline {subsection}{\numberline {B.6}Peeking at the SimPy's Internal Event List}{32}{subsection.B.6}
\contentsline {subsection}{\numberline {B.7}SimPy's Invaluable Tracing Library}{33}{subsection.B.7}
\contentsline {section}{\numberline {C}Online Documentation for SimPy}{33}{section.C}
