def task_1_7_3(queue_size):
    """
    Execute bonus task 1.7.3.
    """
    # TODO Bonus Task 1.7.3: Your code goes here (if necessary)
    sim_param = SimParam()
    random.seed(sim_param.SEED)
    sim = Simulation(sim_param)
    sim.sim_param.S=queue_size
    result_set=[]
    for i in range(sim.sim_param.NO_OF_RUNS):
        sim.reset()
        sim_result=sim.do_simulation()
        result_set.append(sim_result.blocking_probability)
    result_length=len(result_set)
    n, bins, patches = pylab.hist(result_set)
    nc=np.cumsum(n/result_length)
    cdf=[0.0]
    for i in nc:
        cdf.append(i)

    sim_param = SimParam()
    random.seed(sim_param.SEED)
    sim_param.SIM_TIME = 1000000
    sim_param.MAX_DROPPED = 100
    sim_param.NO_OF_RUNS = 100
    sim = Simulation(sim_param)
    sim.sim_param.S=queue_size
    result_set=[]
    for i in range(sim.sim_param.NO_OF_RUNS):
        sim.reset()
        sim_result=sim.do_simulation()
        result_set.append(sim_result.blocking_probability)
    result_length=len(result_set)
    n1, bins1, patches1 = pylab.hist(result_set)
    nc1=np.cumsum(n/result_length)
    cdf1=[0.0]
    for i in nc:
        cdf1.append(i)

    pylab.figure(1)
    pylab.xlabel('blocking_probability')
    pylab.ylabel('density')
    pylab.title('Histogram of the probability density function')
    pylab.hist(n, bins)
    pylab.hist(n1, bins1)
    pylab.figure(2)
    pylab.xlim(0.0,1.0)
    pylab.ylim(0.0,1.0)
    pylab.xlabel('blocking_probability')
    pylab.ylabel('CDF')
    pylab.title('CDF function')
    line1, = pylab.plot(bins,cdf, marker='o', label='100000 ms, 10 MAX_DROPPED, 1000 runs')
    line2, = pylab.plot(bins1,cdf1, marker='o', label='1000000 ms, 100 MAX_DROPPED, 100 runs')
    pylab.legend(handler_map={line1: HandlerLine2D(numpoints=4)})
    pylab.show()
Esempio n. 2
0
def task_2_7_2():
    """
    Here, you can execute task 2.7.2 if you want to execute it in a separate function
    """
    # TODO Task 2.7.2: Your code goes here or in the function above
    sim_param = SimParam()
    random.seed(sim_param.SEED)
    sim_param.SIM_TIME = 1000000
    sim = Simulation(sim_param)
    return do_simulation_study(sim)
Esempio n. 3
0
def task_1_7_2():
    """
    Execute task 1.7.2 and perform a simulation study according to the task assignment.
    :return: Minimum number of buffer spaces to meet requirements.
    """
    sim_param = SimParam()
    random.seed(sim_param.SEED)
    sim_param.SIM_TIME = 1000000
    sim_param.MAX_DROPPED = 100
    sim_param.NO_OF_RUNS = 100
    sim = Simulation(sim_param)
    return do_simulation_study(sim)
Esempio n. 4
0
def task_3_2_2():
    """
    Here, we execute task 3.2.2 and print the results to the console.
    The first result string keeps the results for 100s, the second one for 1000s simulation time.
    """
    # TODO Task 3.2.2: Your code goes here
    sim_param = SimParam()
    sim = Simulation(sim_param)
    count_sys = TimeIndependentCounter()
    sim_param.S = 5
    print("S = " + str(sim.sim_param.S))

    sim_param.SIM_TIME = 100000 #100s
    for rho in [0.01, 0.5, 0.8, 0.9]:
        sim.sim_param.RHO = rho
        sim.reset()
        count_sys.reset()
        for k in range(sim.sim_param.NO_OF_RUNS):
            r = sim.do_simulation().system_utilization
            count_sys.count(r)
        print("system_utilization = " + str(count_sys.get_mean()) + " RHO "+str(rho) + " Sim.Time=100s")

    sim_param.SIM_TIME = 1000000 #1000s
    for rho in [0.01, 0.5, 0.8, 0.9]:
        sim.sim_param.RHO = rho
        sim.reset()
        count_sys.reset()
        for k in range(sim.sim_param.NO_OF_RUNS):
            r = sim.do_simulation().system_utilization
            count_sys.count(r)
        print("system_utilization = " + str(count_sys.get_mean()) + " RHO "+str(rho) + " Sim.Time=1000s")

    sim_param = SimParam()
    sim = Simulation(sim_param)
    count_sys = TimeIndependentCounter()
    sim_param.S = 100000
    print("S = " + str(sim.sim_param.S))
    sim_param.SIM_TIME = 100000 #100s
    for rho in [0.01, 0.5, 0.8, 0.9]:
        sim.sim_param.RHO = rho
        sim.reset()
        count_sys.reset()
        for k in range(sim.sim_param.NO_OF_RUNS):
            r = sim.do_simulation().system_utilization
            count_sys.count(r)
        print("system_utilization = " + str(count_sys.get_mean()) + " RHO "+str(rho) + " Sim.Time=100s")

    sim_param.SIM_TIME = 1000000 #1000s
    for rho in [0.01, 0.5, 0.8, 0.9]:
        sim.sim_param.RHO = rho
        sim.reset()
        count_sys.reset()
        for k in range(sim.sim_param.NO_OF_RUNS):
            r = sim.do_simulation().system_utilization
            count_sys.count(r)
        print("system_utilization = " + str(count_sys.get_mean()) + " RHO "+str(rho) + " Sim.Time=1000s")


    sim_param = SimParam()
    sim = Simulation(sim_param)
    count_sys = TimeIndependentCounter()
    sim_param.S = 1
    print("S = " + str(sim.sim_param.S))
    sim_param.SIM_TIME = 100000 #100s
    for rho in [0.01, 0.5, 0.8, 0.9]:
        sim.sim_param.RHO = rho
        sim.reset()
        count_sys.reset()
        for k in range(sim.sim_param.NO_OF_RUNS):
            r = sim.do_simulation().system_utilization
            count_sys.count(r)
        print("system_utilization = " + str(count_sys.get_mean()) + " RHO "+str(rho) + " Sim.Time=100s")

    sim_param.SIM_TIME = 1000000 #1000s
    for rho in [0.01, 0.5, 0.8, 0.9]:
        sim.sim_param.RHO = rho
        sim.reset()
        count_sys.reset()
        for k in range(sim.sim_param.NO_OF_RUNS):
            r = sim.do_simulation().system_utilization
            count_sys.count(r)
        print("system_utilization = " + str(count_sys.get_mean()) + " RHO "+str(rho) + " Sim.Time=1000s")