open1.py (original) (raw)


#!/usr/bin/env python
#
#  open1.py --- Solves the performance measures for a single queueing facility
#
#  <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>I</mi><mi>d</mi><mo>:</mo><mtext> </mtext><mi>o</mi><mi>p</mi><mi>e</mi><mi>n</mi><mn>1.</mn><mi>p</mi><mi>y</mi><mo separator="true">,</mo><mi>v</mi><mtext> </mtext><mn>1.3</mn><mtext> </mtext><mn>2007</mn><mi mathvariant="normal">/</mi><mn>01</mn><mi mathvariant="normal">/</mi><mn>02</mn><mtext> </mtext><mn>02</mn><mo>:</mo><mn>15</mn><mo>:</mo><mn>35</mn><mtext> </mtext><mi>p</mi><mi>l</mi><mi>h</mi><mtext> </mtext><mi>E</mi><mi>x</mi><mi>p</mi><mtext> </mtext></mrow><annotation encoding="application/x-tex">Id: open1.py,v 1.3 2007/01/02 02:15:35 plh Exp </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal" style="margin-right:0.07847em;">I</span><span class="mord mathnormal">d</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"> </span><span class="mord mathnormal">o</span><span class="mord mathnormal">p</span><span class="mord mathnormal">e</span><span class="mord mathnormal">n</span><span class="mord">1.</span><span class="mord mathnormal">p</span><span class="mord mathnormal" style="margin-right:0.03588em;">y</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal" style="margin-right:0.03588em;">v</span><span class="mord"> 1.3 2007/01/02 02</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">15</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mord">35 </span><span class="mord mathnormal" style="margin-right:0.01968em;">pl</span><span class="mord mathnormal">h</span><span class="mord"> </span><span class="mord mathnormal" style="margin-right:0.05764em;">E</span><span class="mord mathnormal">x</span><span class="mord mathnormal">p</span><span class="mord"> </span></span></span></span>
#
#---------------------------------------------------------------------

import pdq

#---- Initialize the system ------------------------------------------
pdq.Init("OpenCenter")
pdq.SetComment("This is just a simple M/M/1 queue.");

#---- Define the workload and circuit type ---------------------------
pdq.streams = pdq.CreateOpen("work", 0.75)
pdq.SetWUnit("Customers")
pdq.SetTUnit("Seconds")

#---- Define the queueing center -------------------------------------
pdq.nodes = pdq.CreateNode("server", pdq.CEN, pdq.FCFS)

#---- Define service demand due to workload on the queueing center ---
pdq.SetDemand("server", "work", 1.0)

#---- Solve the model ------------------------------------------------
#  Must use the CanonIcal method for an open circuit
pdq.Solve(pdq.CANON)

#---- Generate a report ----------------------------------------------
pdq.Report()
print "Using: %s" % pdq.version

#---------------------------------------------------------------------