def __init__(self, graph, s):
     self._distTo = dict()
     self._edgeTo = dict()
     queue = Queue()
     queue.enqueue(s)
     self._distTo[s] = 0
     self._edgeTo[s] = None
     while not queue.isEmpty():
         v = queue.dequeue()
         for w in graph.adjacentTo(v):
             if w not in self._distTo:
                 queue.enqueue(w)
                 self._distTo[w] = 1 + self._distTo[v]
                 self._edgeTo[w] = v
Beispiel #2
0
    def __init__(self, numAgents, numMinutes, betweenTime, serviceTime):
        # Parameters supplied by the user.
        self._arriveProb = 1.0 / betweenTime
        self._serviceTime = serviceTime
        self._numMinutes = numMinutes

        # Simulation components.
        self._passengerQ = Queue()
        self._theAgents = Array(numAgents)
        for i in range(numAgents):
            self._theAgents[i] = TicketAgent(i + 1)

        # Computed during the simulation.
        self._totalWaitTime = 0
        self._numPassengers = 0
Beispiel #3
0
 def __init__(self, graph, s):
     self._distTo = dict()
     self._edgeTo = dict()
     queue = Queue()
     queue.enqueue(s)
     self._distTo[s] = 0
     self._edgeTo[s] = None
     while not queue.isEmpty():
         v = queue.dequeue()
         for w in graph.adjacentTo(v):
             if w not in self._distTo:
                 queue.enqueue(w)
                 self._distTo[w] = 1 + self._distTo[v]
                 self._edgeTo[w] = v
Beispiel #4
0
#-----------------------------------------------------------------------

import sys
import stddraw
import stdrandom
from linkedqueue import Queue
from histogram import Histogram

# Accept float command-line arguments lamb and mu. Simulate an
# M/M/1 queue with arrival rate lamb and service rate mu.

lamb = float(sys.argv[1])  # Arrival rate
mu = float(sys.argv[2])    # Service rate

histogram = Histogram(60 + 1)
queue = Queue()
stddraw.setCanvasSize(700, 500)

# Compute time of next arrival.
nextArrival = stdrandom.exp(lamb)

# Compute time of next completed service.
nextService = nextArrival + stdrandom.exp(mu) 

# Simulate the M/M/1 queue.
while True:

    # Next event is an arrival.
    while nextArrival < nextService:
        # Simulate an arrival
        queue.enqueue(nextArrival)
Beispiel #5
0
Example:
C:\>python mm1_sim.py .1 .4 1000

'''
import sys
import stdrandom
from linkedqueue import Queue
from statistics import mean
import matplotlib.pyplot as plt

# Pobieranie danych
arrv_rate = float(sys.argv[1])
srv_time = float(sys.argv[2])
limit = int(sys.argv[3])

queue = Queue()

empty_system_time = 0
empty_system_prob_dict = {}
system_time = 0
system_time_list = []
service_list = []
clients_in_system_list = []
clients_in_queue_list = []

clients_in_system = 0
clients_in_queue = 0
system_usage = arrv_rate / srv_time

# generowanie czasu pierwszego zgłoszenia i czasu obsługi
next_client = stdrandom.exp(arrv_rate)
from linkedqueue import Queue
from randomqueue import RandomQueue

# Accept integers serverCount, itemCount, and sampleSize as
# command-line arguments. Simulate the process of assigning
# itemCount items to a set of serverCount servers. Put requests
# on the shortest of a sample of sampleSize queues chosen at random.

serverCount = int(sys.argv[1])
itemCount = int(sys.argv[2])
sampleSize = int(sys.argv[3])

# Create a RandomQueue object containing Queue objects.
servers = RandomQueue()
for i in range(serverCount):
    servers.enqueue(Queue())

for j in range(itemCount):
    # Assign an item to a server.
    best = servers.sample()
    for k in range(1, sampleSize):
        # Pick a random server, update if new best.
        queue = servers.sample()
        if len(queue) < len(best):
            best = queue
    # best is the shortest server queue.
    best.enqueue(j)

lengths = []
while not servers.isEmpty():
    lengths += [len(servers.dequeue())]
Beispiel #7
0
 def __init__(self, numLevels):
     self.qsize = 0
     self.qlevels = array(numLevels)
     for i in range(numLevels):
         self.qlevels[i] = Queue()
#-----------------------------------------------------------------------

import sys
import stddraw
import stdrandom
from linkedqueue import Queue
from histogram import Histogram

# Accept float command-line arguments lamb and mu. Simulate an
# M/M/1 queue with arrival rate lamb and service rate mu.

lamb = float(sys.argv[1])  # Arrival rate
mu = float(sys.argv[2])  # Service rate

histogram = Histogram(60 + 1)
queue = Queue()
stddraw.setCanvasSize(700, 500)

# Compute time of next arrival.
nextArrival = stdrandom.exp(lamb)

# Compute time of next completed service.
nextService = nextArrival + stdrandom.exp(mu)

# Simulate the M/M/1 queue.
while True:

    # Next event is an arrival.
    while nextArrival < nextService:
        # Simulate an arrival
        queue.enqueue(nextArrival)