コード例 #1
0
def EndOfServiceB1(DepartingCustomer):
    TotalTime1.Record(Clock - DepartingCustomer.CreateTime)
    if Queue1.NumQueue() > 0:  # Serve Customer from Queue1
        NextCustomer = Queue1.Remove(Clock)
        ServerB.Seize(1, Clock)
        VBASim.SchedulePlus(Calendar, "EndOfServiceB1",
                            RNG.Expon(MeanPT1_2, 4), NextCustomer, Clock)
    elif Queue2.NumQueue() > 0:  # Serve Customer from Queue2
        NextCustomer = Queue2.Remove(Clock)
        ServerB.Seize(1, Clock)
        VBASim.SchedulePlus(Calendar, "EndOfServiceB2", RNG.Expon(MeanPT2, 5),
                            NextCustomer, Clock)
    else:
        ServerB.Free(1, Clock)
コード例 #2
0
def Arrival1():
    VBASim.Schedule(Calendar, "Arrival1", RNG.Expon(MeanTBA1, 1), Clock)
    Customer1 = Basic_Classes.Entity(Clock)
    # Go to A, or go to B, or add in Queue1
    if ServerA.Busy < ServerA.NumberOfUnits:  # Go to ServerA
        ServerA.Seize(1, Clock)
        VBASim.SchedulePlus(Calendar, "EndOfServiceA", RNG.Expon(MeanPT1_1, 3),
                            Customer1, Clock)
    elif (ServerB.Busy < ServerB.NumberOfUnits) and (Queue1.NumQueue
                                                     == 0):  # Go to ServerB
        ServerB.Seize(1, Clock)
        VBASim.SchedulePlus(Calendar, "EndOfServiceB1",
                            RNG.Expon(MeanPT1_2, 4), Customer1, Clock)
    else:  # Add in Queue1
        Queue1.Add(Customer1, Clock)
コード例 #3
0
def EndOfServiceA(DepartingCustomer):
    TotalTime1.Record(Clock - DepartingCustomer.CreateTime)
    if Queue1.NumQueue() > 0:  # Go to ServerA
        NextCustomer = Queue1.Remove(Clock)
        VBASim.SchedulePlus(Calendar, "EndOfServiceA", RNG.Expon(MeanPT1_1, 3),
                            NextCustomer, Clock)
    else:
        ServerA.Free(1, Clock)
コード例 #4
0
def Arrival2():
    VBASim.Schedule(Calendar, "Arrival2", RNG.Expon(MeanTBA2, 2), Clock)
    Customer2 = Basic_Classes.Entity(Clock)
    # Go to B, or add in Queue2
    if ServerB.Busy < ServerB.NumberOfUnits:  # Go to ServerB
        ServerB.Seize(1, Clock)
        VBASim.SchedulePlus(Calendar, "EndOfServiceB2", RNG.Expon(MeanPT2, 5),
                            Customer2, Clock)
    else:  # Add in Queue2
        Queue2.Add(Customer2, Clock)
コード例 #5
0
ファイル: MG3.py プロジェクト: zihangqiu31/Simulation
def EndOfService(DepartingCustomer):
    TimeSpent.Record(Clock - DepartingCustomer.CreateTime)

    if WaitingList.NumQueue() > 0:
        NextCustomer = WaitingList.Remove(Clock)
        VBASim.SchedulePlus(Calendar, "EndOfService",
                            RNG.Erlang(Phases, MeanST, 2), NextCustomer, Clock)
        WaitingTime.Record(Clock - NextCustomer.CreateTime)
        WTrecords.append(Clock - NextCustomer.CreateTime)
    else:
        Server.Free(1, Clock)
コード例 #6
0
ファイル: MG3.py プロジェクト: zihangqiu31/Simulation
def Arrival():
    VBASim.Schedule(Calendar, "Arrival", RNG.Expon(MeanTBA, 1), Clock)
    Customer = bc.Entity(Clock)

    if Server.Busy < Server.NumberOfUnits:
        Server.Seize(1, Clock)
        VBASim.SchedulePlus(Calendar, "EndOfService",
                            RNG.Erlang(Phases, MeanST, 2), Customer, Clock)
        WaitingTime.Record(0)
        WTrecords.append(0)
    else:
        WaitingList.Add(Customer, Clock)