sim.logs = True sim.addactor(d1) sim.addactor(d2) sim.addactor(b1) sim.addactor(s1) sim.addactor(g1) sim.addactor(e1) sim.addactor(e2) sim.addactor(e3) sim.addprobe(pr1) sim.addprobe(pr2) sim.addprobe(pr3) sim.start() drawLeaveEnter(pr1.enters, 'Sold') drawLeaveEnter(pr2.enters, 'Recycled') #drawLeaveEnter(pr3.failures, 'Lost Opportunity') #drawLeaveEnter(pr4.leaves, 'Newspapers Generated') print("Sold:", len(pr1.enters)) print("Recycled:", len(pr2.enters)) print("Lost Opportunity:", len(pr3.failures)) print("Total Newspapers Generated:", len(pr4.leaves)) print( "Total Revenue:", str(SELL_PRICE * len(pr1.enters) + RECYCLE_PRICE * len(pr2.enters) - BUY_PRICE * len(pr4.leaves))) print("Max Possible Revenue:", str((SELL_PRICE - BUY_PRICE) * (len(pr1.enters) + len(pr3.failures))))
pr1.name = 'Queue Probe' q1.actorprobe = pr1 pr2 = ActorProbe(dl1) pr2.name = 'Delay Probe' dl1.actorprobe = pr2 g1 = AutomaticGenerator(q1, Entity, None, INTERVAL_RATE.next, 200) g1.logs = True sim = Simulation() sim.logs = True sim.addactor(d1) sim.addactor(q1) sim.addactor(dl1) sim.addactor(g1) sim.addprobe(pr1) sim.addprobe(pr2) sim.start() drawProbs(pr1.calculatestatistics()[1], sim.tick, 'queue') drawProbs(pr2.calculatestatistics()[1], sim.tick, 'delay') print("Queue Utilization:", pr1.calculatestatistics()[0]) print("Delay Utilization:", pr2.calculatestatistics()[0])