def test3(): print('test3') sim.Environment(random_seed=1234567) print('string') d = sim.Distribution('Exponential (1000)') sample_and_print(d, 5) sim.random_seed(1234567) sample_and_print(d, 5) sim.random_seed(None) sample_and_print(d, 5) print('triangular') tr = sim.Triangular(1, 5, 3) sample_and_print(tr, 5) print('uniform') u = sim.Uniform(1, 1.1) sample_and_print(u, 5) print('constant') c = sim.Constant(10) sample_and_print(c, 5) print('normal') n = sim.Normal(1, 2) sample_and_print(n, 5) sample_and_print(n, 5) print('cdf') cdf = sim.Cdf((1, 0, 2, 25, 2, 75, 3, 100)) sample_and_print(cdf, 5) sample_and_print(cdf, 5) print('pdf') pdf = sim.Pdf((1, 2), 1) sample_and_print(pdf, 5) print('pdf 1') pdf = sim.Pdf((sim.Uniform(10, 20), 10, sim.Uniform(20, 30), 80, sim.Uniform(30, 40), 10)) sample_and_print(pdf, 5) print('pdf 2') pdf = sim.Pdf( (sim.Uniform(10, 20), sim.Uniform(20, 30), sim.Uniform(30, 40)), (10, 80, 10)) sample_and_print(pdf, 5) print('pdf 3') pdf = sim.Pdf(('red', 'green', 1000), (10, 1, 10)) sample_and_print(pdf, 5)
class Philosopher(sim.Component): def setup(self): self.rightfork = forks[self.sequence_number()] self.leftfork = forks[self.sequence_number() - 1 if self.sequence_number() else nphilosophers - 1] def process(self): while True: yield self.hold(thinkingtime_mean * sim.Uniform(0.5, 1.5)(), mode='thinking') yield self.request(self.leftfork, self.rightfork, mode='waiting') yield self.hold(eatingtime_mean * sim.Uniform(0.5, 1.5)(), mode='eating') self.release() eatingtime_mean = 20 thinkingtime_mean = 20 nphilosophers = 8 sim.random_seed(1234567) while True: env = sim.Environment() forks = [sim.Resource() for _ in range(nphilosophers)] philosophers = [Philosopher() for _ in range(nphilosophers)] do_animation() env.run()
env.trace(False) # env.run(till=(simulation_time * 60)) # sim time in hours * 60 = minutes env.run(till=(simulation_time * 60) + warmup_time) # sim time in hours * 60 = minutes # print-outs shovels.print_statistics() crushers.print_statistics() queue_loading.print_statistics() queue_crusher.print_statistics() # HOUSEKEEPING STATEMENTS env = sim.Environment() TruckGenerator() # Assignment of input data to variables # General sim.random_seed(RND_NUM_STREAM) warmup_time = WARMUP_TIME simulation_time = SIMULATION_TIME # Facilities (Resources) shovels_number = SHOVELS_NUMBER crushers_number = CRUSHERS_NUMBER # Trucks trucks_number = TRUCKS_NUMBER trucks_interarrival_time = TRUCKS_INTERARRIVAL_TIME # Trucks Times truck_loading_time = TRUCK_LOADING_TIME truck_travel_to_crusher_time = TRUCK_TRAVEL_TO_CRUSHER_TIME truck_unload_into_crusher_time = TRUCK_UNLOAD_INTO_CRUSHER_TIME truck_return_from_crusher_to_shovel_time = TRUCK_RETURN_FROM_CRUSHER_TO_SHOVEL_TIME # Failure & Repair Times truck_mttf = TRUCK_MTTF