Пример #1
0
def main():
    arguments = parse_arguments()
    normailze_inputs(arguments)

    first_chanel = Channel(mu1)
    second_chanel = Channel(mu2)
    generator = Generator(lmbd)
    ticks_number = 100000 * accuracy
    declined_claims = 0
    generated_claims = 0
    processed_claims = 0
    for i in range(0, ticks_number):
        if generator.is_generated():
            generator.start_generate()
            generated_claims += 1
            if first_chanel.is_processed():
                first_chanel.add()
                processed_claims += 1
            elif second_chanel.is_processed():
                second_chanel.add()
                processed_claims += 1
            else:
                declined_claims += 1
        first_chanel.tick()
        second_chanel.tick()
        generator.tick()

    print('Occupancy of first chanel: ', first_chanel.work_time / ticks_number)
    print('Occupancy of second chanel: ',
          second_chanel.work_time / ticks_number)
    print('Decline probability: ', declined_claims / generated_claims)
    print('Relative system capacity: ', processed_claims / generated_claims)
    print('Absolute system capacity: ',
          processed_claims * normalizing_factor / ticks_number)
Пример #2
0
i = 0  # время
while i < interval:
    if N and X / N > b:
        c1.set_service_time(r)
        c2.set_service_time(r)
        H += 1
        boost.append(2)
    else:
        c1.set_service_time(z)
        c2.set_service_time(z)
        boost.append(0)

    if A and A[0][1] == i:
        new_requests.append(2)
        c1.add(A[0])
        A.pop(0)
    else:
        new_requests.append(0)

    w1 = c1.work(i)
    if w1:
        c2.add(w1)

    w2 = c2.work(i)
    if w2:
        N += 1
        time_diff = w2[-1] - w2[1]  # время передачи пакета
        if time_diff > 10:
            X += 1
    i += 1