Пример #1
0
def Schedule(calendar, EventType, EventTime):
    #Schedule future events of EventType to occur at time SimClasses.Clock + EventTime

    addedEvent = SimClasses.EventNotice()
    addedEvent.EventType = EventType
    addedEvent.EventTime = SimClasses.Clock + EventTime
    # print("SimClasses.Clock is %f" % SimClasses.Clock)
    # print(EventTime)
    calendar.Schedule(addedEvent)
def Arrival():
    SimFunctions.Schedule(Calendar, "Arrival", SimRNG.Expon(MeanTBA, 1))
    Customer = SimClasses.Entity()
    Queue.Add(Customer)

    if Server.Busy == 0:
        Server.Seize(1)
        SimFunctions.Schedule(Calendar, "EndOfService",
                              SimRNG.Erlang(Phases, MeanST, 2))
Пример #3
0
def SchedulePlus(calendar, EventType, EventTime, TheObject):
    #Schedule future events of EventType to occur at time SimClasses.Clock + EventTime
    #and pass with the event notice TheObject

    addedEvent = SimClasses.EventNotice()
    addedEvent.EventType = EventType
    addedEvent.EventTime = SimClasses.Clock + EventTime
    addedEvent.WhichObject = TheObject
    calendar.Schedule(addedEvent)
Пример #4
0
def SANInit():
    global Destination
    global Inbound
    global Outbound
    global Nodes
    global ThisActivity

    Destination = []
    Destination.append(b)
    Destination.append(c)
    Destination.append(c)
    Destination.append(d)
    Destination.append(d)

    Inbound = []
    Outbound = []

    Outbound.append(1)
    Outbound.append(2)

    Nodes = {}

    # node a
    Nodes[InTo, a] = Inbound
    Nodes[OutOf, a] = Outbound
    Inbound = []
    Outbound = []

    # node b
    Inbound.append(1)
    Outbound.append(3)
    Outbound.append(4)
    Nodes[InTo, b] = Inbound
    Nodes[OutOf, b] = Outbound
    Inbound = []
    Outbound = []

    # node c
    Inbound.append(2)
    Inbound.append(3)
    Outbound.append(5)
    Nodes[InTo, c] = Inbound
    Nodes[OutOf, c] = Outbound
    Inbound = []
    Outbound = []

    # node 5
    Inbound.append(4)
    Inbound.append(5)
    Nodes[InTo, d] = Inbound
    Nodes[OutOf, d] = Outbound
    Inbound = []
    Outbound = []

    ThisActivity = SimClasses.Activity()
Пример #5
0
def Arrival2():
    SimFunctions.Schedule(Calendar, "Arrival2", SimRNG.Expon(MeanTBA2, 2))
    Class2Customer = SimClasses.Entity()
    Class2Customer.ClassNum = 2

    if Server2.Busy == 0:
        Server2.Seize(1)
        SimFunctions.SchedulePlus(Calendar, "EndOfService2",
                                  SimRNG.Expon(MeanPT2, 5), Class2Customer)
    else:
        Queue2.Add(Class2Customer)
Пример #6
0
def Arrival():
    if SimClasses.Clock < RunLength:
        SimFunctions.Schedule(Calendar, "Arrival", NSPP(1))
    else:
        return

    Fax = SimClasses.Entity()
    if Agents.Busy < Agents.NumberOfUnits:
        Agents.Seize(1)
        SimFunctions.SchedulePlus(Calendar, "EndOfEntry",
                                  SimRNG.Normal(MeanRegular, VarRegular, 2),
                                  Fax)
    else:
        RegularQ.Add(Fax)
Пример #7
0
def Arrival1():
    SimFunctions.Schedule(Calendar, "Arrival1", SimRNG.Expon(MeanTBA1, 1))
    Class1Customer = SimClasses.Entity()
    Class1Customer.ClassNum = 1

    if Server1.Busy == 0:
        Server1.Seize(1)
        SimFunctions.SchedulePlus(Calendar, "EndOfService1",
                                  SimRNG.Expon(MeanPT1_1, 3), Class1Customer)
    elif Server2.Busy == 0:
        Server2.Seize(1)
        SimFunctions.SchedulePlus(Calendar, "EndOfService2",
                                  SimRNG.Expon(MeanPT1_2, 4), Class1Customer)
    else:
        Queue1.Add(Class1Customer)
Пример #8
0
def Milestone(ActIn, Node):
    global ThisActivity
    global Inbound
    global Outbound
    global Nodes
    global Destination

    Inbound = Nodes[InTo, Node]
    Outbound = Nodes[OutOf, Node]
    m = len(Inbound)
    for Incoming in range(0, m, 1):
        if Inbound[Incoming] == ActIn:
            Inbound.remove(Inbound[Incoming])
            break
    Nodes[InTo, Node] = Inbound
    if len(Inbound) == 0:
        m = len(Outbound)
        for ActOut in range(0, m, 1):
            ThisActivity = SimClasses.Activity()
            ThisActivity.WhichActivity = Outbound[0]
            ThisActivity.WhichNode = Destination[Outbound[0] - 1]
            SimFunctions.SchedulePlus(Calendar, "Milestone",
                                      SimRNG.Expon(1, 1), ThisActivity)
            Outbound.remove(Outbound[0])
import pandas
import numpy as np
import math
from Regression import regression as reg

np.random.seed(seed=1)

InoTime = {"a": 24.0, "b": 12.0, "clean": 1.5}
MedTime = {"a": 1.0, "b": 0.5, "clean": 0.6}
FerTime = {"a": 72.0, "b": 48.0, "clean": 6.0}
CenTime = {"a": 2.5, "b": 2.0, "clean": 0.2}
ChrTime = {"a": 8.0, "b": 7.0, "clean": 1.5}
FilTime = {"a": 2.0, "b": 2.0, "clean": 0.5}
QCTime = {"a": 2.0, "b": 2.0}

PreCulOrders = SimClasses.FIFOQueue()  # buffer for preculture
InoPreCul_b = SimClasses.FIFOQueue()  # buffer for "b" preculture already start Inomedia prep (Priority to Orders queue)
InoMedia = SimClasses.FIFOQueue()  # buffer for media use for inoculum
FerQueue = SimClasses.FIFOQueue()  # buffer for main fermenation
MainMedia = SimClasses.FIFOQueue()  # buffer for media use for main fermentation
MediaToPrepare = SimClasses.FIFOQueue()  # record media preparation signals haven't been processed
DSPBuffer = SimClasses.FIFOQueue()  # buffer before downstream releasing

InoEqp = SimClasses.Resource()
MedEqp = SimClasses.Resource()
FerEqp = SimClasses.Resource()
CenEqp = SimClasses.Resource()
ChrEqp = SimClasses.Resource()
FilEqp = SimClasses.Resource()

InoEqp.SetUnits(5)
Пример #10
0
"""
Converted from VBASim by
Yujing Lin, Linda Pei & Barry L Nelson
Last update 8/15/2018
"""

import SimClasses
import SimFunctions
import SimRNG
import math
import pandas
import numpy as np

SimClasses.Clock = 0
MeanParkingTime = 2.0
QueueLength = SimClasses.CTStat()
N = 0
MaxQueue = 0

ZSimRNG = SimRNG.InitializeRNSeed()
Calendar = SimClasses.EventCalendar()

TheCTStats = []
TheDTStats = []
TheQueues = []
TheResources = []

TheCTStats.append(QueueLength)

AllQueueLength = []
AllMaxQueue = []
Пример #11
0
# -*- coding: utf-8 -*-
"""
Converted from VBASim by
Yujing Lin, Linda Pei & Barry L Nelson
Last update 8/15/2018
"""

import SimFunctions
import SimRNG
import SimClasses
import math
import pandas

ZRNG = SimRNG.InitializeRNSeed()
Calendar = SimClasses.EventCalendar()

RegularQ = SimClasses.FIFOQueue()
SpecialQ = SimClasses.FIFOQueue()
RegularWait = SimClasses.DTStat()
SpecialWait = SimClasses.DTStat()
Regular10 = SimClasses.DTStat()
Special10 = SimClasses.DTStat()
Agents = SimClasses.Resource()
Specialists = SimClasses.Resource()

ARate = []
TheCTStats = []
TheDTStats = []
TheQueues = []
TheResources = []
# -*- coding: utf-8 -*-
"""
Converted from VBASim by
Yujing Lin, Linda Pei & Barry L Nelson
Last update 8/15/2018
"""

import SimFunctions
import SimRNG
import SimClasses
import pandas
import numpy as np

ZSimRNG = SimRNG.InitializeRNSeed()

Queue = SimClasses.FIFOQueue()
Wait = SimClasses.DTStat()
Server = SimClasses.Resource()
Calendar = SimClasses.EventCalendar()

TheCTStats = []
TheDTStats = []
TheQueues = []
TheResources = []

TheDTStats.append(Wait)
TheQueues.append(Queue)
TheResources.append(Server)

Server.SetUnits(1)
MeanTBA = 1.0
Пример #13
0
import SimFunctions
import SimRNG
import SimClasses
import numpy as np

ZSimRNG = SimRNG.InitializeRNSeed()

Queue1 = SimClasses.FIFOQueue()
Queue2 = SimClasses.FIFOQueue()
Server1 = SimClasses.Resource()
Server2 = SimClasses.Resource()
TotalTime1 = SimClasses.DTStat()
TotalTime2 = SimClasses.DTStat()
Calendar = SimClasses.EventCalendar()

TheCTStats = []
TheDTStats = []
TheQueues = []
TheResources = []

TheDTStats.append(TotalTime1)
TheDTStats.append(TotalTime2)
TheQueues.append(Queue1)
TheQueues.append(Queue2)
TheResources.append(Server1)
TheResources.append(Server2)

# lists to collect across replication outputs
AllQueue1 = []
AllQueue2 = []
AllTotalTime1 = []
Пример #14
0
import sys
sys.path.insert(0, '/home/ry87/SimPy')
import SimClasses as PP
import sys

VAL = 0
ARR_NUM = int(sys.argv[1].split(' ')[VAL])
# python simulation
ppModel = PP.OneSim(ARR_NUM)
ppModel.simulate(n_steps=1000)
print(ARR_NUM)
print(ppModel.sum)
# ppModel.export_results(directory='ResultsCluster')
VAL = VAL + 1

Пример #15
0
# -*- coding: utf-8 -*-
"""
Converted from VBASim by
Yujing Lin, Linda Pei & Barry L Nelson
Last update 8/15/2018
"""

import SimClasses
import SimFunctions
import SimRNG
import pandas

SimClasses.Clock = 0.0
ZSimRNG = SimRNG.InitializeRNSeed()

Calendar = SimClasses.EventCalendar()
Destination = []
a = 1
b = 2
c = 3
d = 4
InTo = 1
OutOf = 2

Inbound = []
Outbound = []

Nodes = {}

# LP Edits Week 7 Friday 08102018
# These are not defined so I defined them