def main(): PRINT_TITLE = False nowdate = datetime.datetime.now() if not os.path.exists("plots"): os.makedirs("plots") if not os.path.exists("tables"): os.makedirs("tables") lines = ["-k", "--k", "-.k"] linecycler = cycle(lines) test_data_Poisson_initial = poisson.Bmmap5PoissonPhPh() test_data_Poisson = poisson.Bmmap5PoissonPhPh() test_data_02_initial = cor02.Bmmap502PhPh() test_data_02 = cor02.Bmmap502PhPh() test_data_04_initial = cor04.Bmmap504PhPh() test_data_04 = cor04.Bmmap504PhPh() qs1 = qs.TwoPrioritiesQueueingSystem(test_data_Poisson_initial) qs2 = qs.TwoPrioritiesQueueingSystem(test_data_02_initial) qs3 = qs.TwoPrioritiesQueueingSystem(test_data_04_initial) lambdas = {"poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": []} Ls = {"poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": []} LsPrior = {"poisson": [], "cor02": [], "cor04": []} sigmas = {"poisson": [], "cor02": [], "cor04": []} sigmas_prior = {"poisson": [], "cor02": [], "cor04": []} Ps = {"poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": []} Ps_alg = {"poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": []} P1s = {"poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": []} P2s = {"poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": []} Ps_imp = {"poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": []} w1s = {"poisson": [], "cor02": [], "cor04": []} w2s = {"poisson": [], "cor02": [], "cor04": []} table_poisson = [] table_cor_02 = [] table_cor_04 = [] for coef in tqdm(np.linspace(1, 150, 150)): test_data_Poisson.test_matrD = test_data_Poisson_initial.test_matrD * coef test_data_Poisson.test_matrD_0 = test_data_Poisson_initial.test_matrD_0 * coef test_data_02.test_matrD = test_data_02_initial.test_matrD * coef test_data_02.test_matrD_0 = test_data_02_initial.test_matrD_0 * coef test_data_04.test_matrD = test_data_04_initial.test_matrD * coef test_data_04.test_matrD_0 = test_data_04_initial.test_matrD_0 * coef qs1 = qs.TwoPrioritiesQueueingSystem(test_data_Poisson) stationary_probas1 = qs1.calc_stationary_probas(False) qs2 = qs.TwoPrioritiesQueueingSystem(test_data_02) stationary_probas2 = qs2.calc_stationary_probas(False) qs3 = qs.TwoPrioritiesQueueingSystem(test_data_04) stationary_probas3 = qs3.calc_stationary_probas(False) lambdas["poisson"].append(qs1.queries_stream.avg_intensity) Ls["poisson"].append(qs1.calc_avg_buffer_queries_num(stationary_probas1)) LsPrior["poisson"].append(qs1.calc_avg_buffer_prior_queries_num(stationary_probas1)) sigmas["poisson"].append(qs1.calc_sd_buffer_queries_num(stationary_probas1)) sigmas_prior["poisson"].append(qs1.calc_sd_buffer_prior_queries_num(stationary_probas1)) Ps["poisson"].append(qs1.calc_query_lost_p(stationary_probas1)) Ps_alg["poisson"].append(qs1.calc_query_lost_ps_buffer_full(stationary_probas1)[1]) P1s["poisson"].append(qs1.calc_query_lost_ps_buffer_full(stationary_probas1)[0][0]) P2s["poisson"].append(qs1.calc_query_lost_ps_buffer_full(stationary_probas1)[0][1]) Ps_imp["poisson"].append(qs1.calc_nonprior_query_lost_timer(stationary_probas1)) w1s["poisson"].append(qs1.avg_wait_time_1(stationary_probas1)) w2s["poisson"].append(qs1.avg_wait_time_2(stationary_probas1)) lambdas["cor02"].append(qs2.queries_stream.avg_intensity) Ls["cor02"].append(qs2.calc_avg_buffer_queries_num(stationary_probas2)) LsPrior["cor02"].append(qs2.calc_avg_buffer_prior_queries_num(stationary_probas2)) sigmas["cor02"].append(qs2.calc_sd_buffer_queries_num(stationary_probas2)) sigmas_prior["cor02"].append(qs2.calc_sd_buffer_prior_queries_num(stationary_probas2)) Ps["cor02"].append(qs2.calc_query_lost_p(stationary_probas2)) Ps_alg["cor02"].append(qs2.calc_query_lost_ps_buffer_full(stationary_probas2)[1]) P1s["cor02"].append(qs2.calc_query_lost_ps_buffer_full(stationary_probas2)[0][0]) P2s["cor02"].append(qs2.calc_query_lost_ps_buffer_full(stationary_probas2)[0][1]) Ps_imp["cor02"].append(qs2.calc_nonprior_query_lost_timer(stationary_probas2)) w1s["cor02"].append(qs2.avg_wait_time_1(stationary_probas2)) w2s["cor02"].append(qs2.avg_wait_time_2(stationary_probas2)) lambdas["cor04"].append(qs3.queries_stream.avg_intensity) Ls["cor04"].append(qs3.calc_avg_buffer_queries_num(stationary_probas3)) LsPrior["cor04"].append(qs3.calc_avg_buffer_prior_queries_num(stationary_probas3)) sigmas["cor04"].append(qs3.calc_sd_buffer_queries_num(stationary_probas3)) sigmas_prior["cor04"].append(qs3.calc_sd_buffer_prior_queries_num(stationary_probas3)) Ps["cor04"].append(qs3.calc_query_lost_p(stationary_probas3)) Ps_alg["cor04"].append(qs3.calc_query_lost_ps_buffer_full(stationary_probas3)[1]) P1s["cor04"].append(qs3.calc_query_lost_ps_buffer_full(stationary_probas3)[0][0]) P2s["cor04"].append(qs3.calc_query_lost_ps_buffer_full(stationary_probas3)[0][1]) Ps_imp["cor04"].append(qs3.calc_nonprior_query_lost_timer(stationary_probas3)) w1s["cor04"].append(qs3.avg_wait_time_1(stationary_probas3)) w2s["cor04"].append(qs3.avg_wait_time_2(stationary_probas3)) table_poisson.append( [lambdas["poisson"][-1], P1s["poisson"][-1], P2s["poisson"][-1], Ps_alg["poisson"][-1], Ps_imp["poisson"][-1], w1s["poisson"][-1], w2s["poisson"][-1]]) table_cor_02.append( [lambdas["cor02"][-1], P1s["cor02"][-1], P2s["cor02"][-1], Ps_alg["cor02"][-1], Ps_imp["cor02"][-1], w1s["cor02"][-1], w2s["cor02"][-1]]) table_cor_04.append( [lambdas["cor04"][-1], P1s["cor04"][-1], P2s["cor04"][-1], Ps_alg["cor04"][-1], Ps_imp["cor04"][-1], w1s["cor04"][-1], w2s["cor04"][-1]]) plt.plot(lambdas["poisson"], Ls["poisson"], next(linecycler)) plt.plot(lambdas["cor02"], Ls["cor02"], next(linecycler)) plt.plot(lambdas["cor04"], Ls["cor04"], next(linecycler)) plt.ylabel(r'$L$') plt.xlabel(r'$\lambda$') plt.legend((r'$c_{cor}^{(1)}$ =' + str(abs(round(qs1.queries_stream.c_cor[0], 3))) + r', $c_{cor}^{(2)}$=' + str( abs(round(qs1.queries_stream.c_cor[1], 3))), r'$c_{cor}^{(1)}$ =' + str(round(qs2.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs2.queries_stream.c_cor[1], 3)), r'$c_{cor}^{(1)}$ =' + str(round(qs3.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs3.queries_stream.c_cor[1], 3)) ), loc=0) if PRINT_TITLE: plt.title('Зависимость L от λ при различных\n коэффициентах корреляции длин двух соседних интервалов') plt.savefig(str.format("plots/BMMAP5_L_lambda_cor_0_02_04_{}.png", nowdate), dpi=400, bbox_inches='tight') plt.close() plt.plot(lambdas["poisson"], LsPrior["poisson"], next(linecycler)) plt.plot(lambdas["cor02"], LsPrior["cor02"], next(linecycler)) plt.plot(lambdas["cor04"], LsPrior["cor04"], next(linecycler)) plt.ylabel(r'$L^{(prior)}$') plt.xlabel(r'$\lambda$') plt.legend((r'$c_{cor}^{(1)}$ =' + str(abs(round(qs1.queries_stream.c_cor[0], 3))) + r', $c_{cor}^{(2)}$=' + str( abs(round(qs1.queries_stream.c_cor[1], 3))), r'$c_{cor}^{(1)}$ =' + str(round(qs2.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs2.queries_stream.c_cor[1], 3)), r'$c_{cor}^{(1)}$ =' + str(round(qs3.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs3.queries_stream.c_cor[1], 3)) ), loc=0) if PRINT_TITLE: plt.title('Зависимость L_prior от λ при различных\n коэффициентах корреляции длин двух соседних интервалов') plt.savefig(str.format("plots/BMMAP5_L_prior_lambda_cor_0_02_04_{}.png", nowdate), dpi=400, bbox_inches='tight') plt.close() plt.plot(lambdas["poisson"], sigmas["poisson"], next(linecycler)) plt.plot(lambdas["cor02"], sigmas["cor02"], next(linecycler)) plt.plot(lambdas["cor04"], sigmas["cor04"], next(linecycler)) plt.ylabel(r'$\sigma$') plt.xlabel(r'$\lambda$') plt.legend((r'$c_{cor}^{(1)}$ =' + str(abs(round(qs1.queries_stream.c_cor[0], 3))) + r', $c_{cor}^{(2)}$=' + str( abs(round(qs1.queries_stream.c_cor[1], 3))), r'$c_{cor}^{(1)}$ =' + str(round(qs2.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs2.queries_stream.c_cor[1], 3)), r'$c_{cor}^{(1)}$ =' + str(round(qs3.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs3.queries_stream.c_cor[1], 3)) ), loc=0) if PRINT_TITLE: plt.title('Зависимость sigma от λ при различных\n коэффициентах корреляции длин двух соседних интервалов') plt.savefig(str.format("plots/BMMAP5_sigma_lambda_cor_0_02_04_{}.png", nowdate), dpi=400, bbox_inches='tight') plt.close() plt.plot(lambdas["poisson"], sigmas_prior["poisson"], next(linecycler)) plt.plot(lambdas["cor02"], sigmas_prior["cor02"], next(linecycler)) plt.plot(lambdas["cor04"], sigmas_prior["cor04"], next(linecycler)) plt.ylabel(r'$\sigma^{(prior})$') plt.xlabel(r'$\lambda$') plt.legend((r'$c_{cor}^{(1)}$ =' + str(abs(round(qs1.queries_stream.c_cor[0], 3))) + r', $c_{cor}^{(2)}$=' + str( abs(round(qs1.queries_stream.c_cor[1], 3))), r'$c_{cor}^{(1)}$ =' + str(round(qs2.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs2.queries_stream.c_cor[1], 3)), r'$c_{cor}^{(1)}$ =' + str(round(qs3.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs3.queries_stream.c_cor[1], 3)) ), loc=0) if PRINT_TITLE: plt.title('Зависимость sigma^{(prior}) от λ при различных\n коэффициентах корреляции длин двух соседних интервалов') plt.savefig(str.format("plots/BMMAP5_sigma_prior_lambda_cor_0_02_04_{}.png", nowdate), dpi=400, bbox_inches='tight') plt.close() # DEPRECATED # plt.plot(lambdas["poisson"], Ps["poisson"]) # plt.plot(lambdas["cor02"], Ps["cor02"]) # plt.plot(lambdas["cor04"], Ps["cor04"]) # plt.ylabel(r'$P_{loss}$') # plt.xlabel(r'$\lambda$') # plt.legend((r'$c_{cor}^{(1)}$ =' + str(abs(round(qs1.queries_stream.c_cor[0], 3))) + r', $c_{cor}^{(2)}$=' + str( # abs(round(qs1.queries_stream.c_cor[1], 3))), # r'$c_{cor}^{(1)}$ =' + str(round(qs2.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( # round(qs2.queries_stream.c_cor[1], 3)), # r'$c_{cor}^{(1)}$ =' + str(round(qs3.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( # round(qs3.queries_stream.c_cor[1], 3)) # ), # loc=0) # plt.title('Зависимость P_loss от λ при различных\n коэффициентах корреляции длин двух соседних интервалов') # # plt.savefig(str.format("plots/BMMAP5_P_loss_lambda_cor_0_02_04_{}.png", nowdate), # bbox_inches='tight') # plt.close() plt.plot(lambdas["poisson"], Ps_alg["poisson"], next(linecycler)) plt.plot(lambdas["cor02"], Ps_alg["cor02"], next(linecycler)) plt.plot(lambdas["cor04"], Ps_alg["cor04"], next(linecycler)) plt.ylabel(r'$P_{loss}$') plt.xlabel(r'$\lambda$') plt.legend((r'$c_{cor}^{(1)}$ =' + str(abs(round(qs1.queries_stream.c_cor[0], 3))) + r', $c_{cor}^{(2)}$=' + str( abs(round(qs1.queries_stream.c_cor[1], 3))), r'$c_{cor}^{(1)}$ =' + str(round(qs2.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs2.queries_stream.c_cor[1], 3)), r'$c_{cor}^{(1)}$ =' + str(round(qs3.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs3.queries_stream.c_cor[1], 3)) ), loc=0) if PRINT_TITLE: plt.title('Зависимость P_loss_alg от λ при различных\n коэффициентах корреляции длин двух соседних интервалов') plt.savefig(str.format("plots/BMMAP5_P_loss_alg_lambda_cor_0_02_04_{}.png", nowdate), dpi=400, bbox_inches='tight') plt.close() plt.plot(lambdas["poisson"], P1s["poisson"], next(linecycler)) plt.plot(lambdas["cor02"], P1s["cor02"], next(linecycler)) plt.plot(lambdas["cor04"], P1s["cor04"], next(linecycler)) plt.ylabel(r'$P_{loss}^{(1)}$') plt.xlabel(r'$\lambda$') plt.legend((r'$c_{cor}^{(1)}$ =' + str(abs(round(qs1.queries_stream.c_cor[0], 3))) + r', $c_{cor}^{(2)}$=' + str( abs(round(qs1.queries_stream.c_cor[1], 3))), r'$c_{cor}^{(1)}$ =' + str(round(qs2.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs2.queries_stream.c_cor[1], 3)), r'$c_{cor}^{(1)}$ =' + str(round(qs3.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs3.queries_stream.c_cor[1], 3)) ), loc=0) if PRINT_TITLE: plt.title('Зависимость P1_loss от λ при различных\n коэффициентах корреляции длин двух соседних интервалов') plt.savefig(str.format("plots/BMMAP5_P1_loss_lambda_cor_0_02_04_{}.png", nowdate), dpi=400, bbox_inches='tight') plt.close() plt.plot(lambdas["poisson"], P2s["poisson"], next(linecycler)) plt.plot(lambdas["cor02"], P2s["cor02"], next(linecycler)) plt.plot(lambdas["cor04"], P2s["cor04"], next(linecycler)) plt.ylabel(r'$P_{loss}^{(2)}$') plt.xlabel(r'$\lambda$') plt.legend((r'$c_{cor}^{(1)}$ =' + str(abs(round(qs1.queries_stream.c_cor[0], 3))) + r', $c_{cor}^{(2)}$=' + str( abs(round(qs1.queries_stream.c_cor[1], 3))), r'$c_{cor}^{(1)}$ =' + str(round(qs2.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs2.queries_stream.c_cor[1], 3)), r'$c_{cor}^{(1)}$ =' + str(round(qs3.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs3.queries_stream.c_cor[1], 3)) ), loc=0) if PRINT_TITLE: plt.title('Зависимость P2_loss от λ при различных\n коэффициентах корреляции длин двух соседних интервалов') plt.savefig(str.format("plots/BMMAP5_P2_loss_lambda_cor_0_02_04_{}.png", nowdate), dpi=400, bbox_inches='tight') plt.close() plt.plot(lambdas["poisson"], Ps_imp["poisson"], next(linecycler)) plt.plot(lambdas["cor02"], Ps_imp["cor02"], next(linecycler)) plt.plot(lambdas["cor04"], Ps_imp["cor04"], next(linecycler)) plt.ylabel(r'$P_{loss}^{(imp)}$') plt.xlabel(r'$\lambda$') plt.legend((r'$c_{cor}^{(1)}$ =' + str(abs(round(qs1.queries_stream.c_cor[0], 3))) + r', $c_{cor}^{(2)}$=' + str( abs(round(qs1.queries_stream.c_cor[1], 3))), r'$c_{cor}^{(1)}$ =' + str(round(qs2.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs2.queries_stream.c_cor[1], 3)), r'$c_{cor}^{(1)}$ =' + str(round(qs3.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs3.queries_stream.c_cor[1], 3)) ), loc=0) if PRINT_TITLE: plt.title('Зависимость P_loss_imp от λ при различных\n коэффициентах корреляции длин двух соседних интервалов') plt.savefig(str.format("plots/BMMAP5_P_loss_imp_lambda_cor_0_02_04_{}.png", nowdate), dpi=400, bbox_inches='tight') plt.close() plt.plot(lambdas["poisson"], w1s["poisson"], next(linecycler)) plt.plot(lambdas["cor02"], w1s["cor02"], next(linecycler)) plt.plot(lambdas["cor04"], w1s["cor04"], next(linecycler)) plt.ylabel(r'$\bar{w}_1$') plt.xlabel(r'$\lambda$') plt.legend((r'$c_{cor}^{(1)}$ =' + str(abs(round(qs1.queries_stream.c_cor[0], 3))) + r', $c_{cor}^{(2)}$=' + str( abs(round(qs1.queries_stream.c_cor[1], 3))), r'$c_{cor}^{(1)}$ =' + str(round(qs2.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs2.queries_stream.c_cor[1], 3)), r'$c_{cor}^{(1)}$ =' + str(round(qs3.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs3.queries_stream.c_cor[1], 3)) ), loc=0) if PRINT_TITLE: plt.title( 'Зависимость $bar{w}_1$ от $lambda$ при различных \n коэффициентах корреляции длин двух соседних интервалов') plt.savefig(str.format("plots/BMMAP5_w1_lambda_cor_{}.png", nowdate), dpi=400, bbox_inches='tight') plt.close() plt.plot(lambdas["poisson"], w2s["poisson"], next(linecycler)) plt.plot(lambdas["cor02"], w2s["cor02"], next(linecycler)) plt.plot(lambdas["cor04"], w2s["cor04"], next(linecycler)) plt.ylabel(r'$\bar{w}_2$') plt.xlabel(r'$\lambda$') plt.legend((r'$c_{cor}^{(1)}$ =' + str(abs(round(qs1.queries_stream.c_cor[0], 3))) + r', $c_{cor}^{(2)}$=' + str( abs(round(qs1.queries_stream.c_cor[1], 3))), r'$c_{cor}^{(1)}$ =' + str(round(qs2.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs2.queries_stream.c_cor[1], 3)), r'$c_{cor}^{(1)}$ =' + str(round(qs3.queries_stream.c_cor[0], 3)) + r', $c_{cor}^{(2)}$=' + str( round(qs3.queries_stream.c_cor[1], 3)) ), loc=0) if PRINT_TITLE: plt.title( 'Зависимость $bar{w}_2$ от $lambda$ при различных \n коэффициентах корреляции длин двух соседних интервалов') plt.savefig(str.format("plots/BMMAP5_w2_lambda_cor_{}.png", nowdate), dpi=400, bbox_inches='tight') plt.close() table_poisson = np.asarray(table_poisson) table_cor_02 = np.asarray(table_cor_02) table_cor_04 = np.asarray(table_cor_04) np.savetxt(str.format("tables/BMMAP5_P_losses_lambda_cor_poisson_{}.csv", nowdate), table_poisson, header=r'$\lambda$, $P_{loss}^{(1)}$, $P_{loss}^{(2)}$, $P_{loss}, P_{loss}^{(imp)}$, $\bar{w}_1$, $\bar{w}_2$', delimiter=',', fmt='%.5f', comments='') np.savetxt(str.format("tables/BMMAP5_P_losses_lambda_cor_02_{}.csv", nowdate), table_cor_02, header=r'$\lambda$, $P_{loss}^{(1)}$, $P_{loss}^{(2)}$, $P_{loss}, P_{loss}^{(imp)}$, $\bar{w}_1$, $\bar{w}_2$', delimiter=',', fmt='%.5f', comments='') np.savetxt(str.format("tables/BMMAP5_P_losses_lambda_cor_04_{}.csv", nowdate), table_cor_04, header=r'$\lambda$, $P_{loss}^{(1)}$, $P_{loss}^{(2)}$, $P_{loss}, P_{loss}^{(imp)}$, $\bar{w}_1$, $\bar{w}_2$', delimiter=',', fmt='%.5f', comments='')
def main(): test_data_Poisson_initial = poisson.MmapPoissonPhPh() test_data_Poisson = poisson.MmapPoissonPhPh() test_data_02_initial = cor02.Mmap02PhPh() test_data_02 = cor02.Mmap02PhPh() test_data_04_initial = cor04.Mmap04PhPh() test_data_04 = cor04.Mmap04PhPh() qs1 = qs.TwoPrioritiesQueueingSystem(test_data_Poisson_initial) qs2 = qs.TwoPrioritiesQueueingSystem(test_data_02_initial) qs3 = qs.TwoPrioritiesQueueingSystem(test_data_04_initial) lambdas = { "poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": [] } Ls = { "poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": [] } Ps = { "poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": [] } Ps_alg = { "poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": [] } P1s = { "poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": [] } P2s = { "poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": [] } Ps_imp = { "poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": [] } for coef in np.linspace(0.01, 3, 100): test_data_Poisson.test_matrD = test_data_Poisson_initial.test_matrD * coef test_data_Poisson.test_matrD_0 = test_data_Poisson_initial.test_matrD_0 * coef test_data_02.test_matrD = test_data_02_initial.test_matrD * coef test_data_02.test_matrD_0 = test_data_02_initial.test_matrD_0 * coef test_data_04.test_matrD = test_data_04_initial.test_matrD * coef test_data_04.test_matrD_0 = test_data_04_initial.test_matrD_0 * coef qs1 = qs.TwoPrioritiesQueueingSystem(test_data_Poisson) stationary_probas1 = qs1.calc_stationary_probas(False) qs2 = qs.TwoPrioritiesQueueingSystem(test_data_02) stationary_probas2 = qs2.calc_stationary_probas(False) qs3 = qs.TwoPrioritiesQueueingSystem(test_data_04) stationary_probas3 = qs3.calc_stationary_probas(False) lambdas["poisson"].append(qs1.queries_stream.avg_intensity) Ls["poisson"].append( qs1.calc_avg_buffer_queries_num(stationary_probas1)) Ps["poisson"].append(qs1.calc_query_lost_p(stationary_probas1)) Ps_alg["poisson"].append( qs1.calc_query_lost_ps_buffer_full(stationary_probas1)[1]) P1s["poisson"].append( qs1.calc_query_lost_ps_buffer_full(stationary_probas1)[0][0]) P2s["poisson"].append( qs1.calc_query_lost_ps_buffer_full(stationary_probas1)[0][1]) Ps_imp["poisson"].append( qs1.calc_nonprior_query_lost_timer(stationary_probas1)) lambdas["cor02"].append(qs2.queries_stream.avg_intensity) Ls["cor02"].append(qs2.calc_avg_buffer_queries_num(stationary_probas2)) Ps["cor02"].append(qs2.calc_query_lost_p(stationary_probas2)) Ps_alg["cor02"].append( qs2.calc_query_lost_ps_buffer_full(stationary_probas2)[1]) P1s["cor02"].append( qs2.calc_query_lost_ps_buffer_full(stationary_probas2)[0][0]) P2s["cor02"].append( qs2.calc_query_lost_ps_buffer_full(stationary_probas2)[0][1]) Ps_imp["cor02"].append( qs2.calc_nonprior_query_lost_timer(stationary_probas2)) lambdas["cor04"].append(qs3.queries_stream.avg_intensity) Ls["cor04"].append(qs3.calc_avg_buffer_queries_num(stationary_probas3)) Ps["cor04"].append(qs3.calc_query_lost_p(stationary_probas3)) Ps_alg["cor04"].append( qs3.calc_query_lost_ps_buffer_full(stationary_probas3)[1]) P1s["cor04"].append( qs3.calc_query_lost_ps_buffer_full(stationary_probas3)[0][0]) P2s["cor04"].append( qs3.calc_query_lost_ps_buffer_full(stationary_probas3)[0][1]) Ps_imp["cor04"].append( qs3.calc_nonprior_query_lost_timer(stationary_probas3)) plt.plot(lambdas["poisson"], Ls["poisson"]) plt.plot(lambdas["cor02"], Ls["cor02"]) plt.plot(lambdas["cor04"], Ls["cor04"]) plt.ylabel('L') plt.xlabel('λ') plt.legend(( str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs1.queries_stream.c_cor[0], 3), round(qs1.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs2.queries_stream.c_cor[0], 3), round(qs2.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs3.queries_stream.c_cor[0], 3), round(qs3.queries_stream.c_cor[1], 3)), ), loc=0) plt.title( 'Зависимость L от λ при различных\n коэффициентах корреляции длин двух соседних интервалов' ) plt.savefig(str.format("plots/MMAP_L_lambda_cor_0_02_04_{}.png", datetime.datetime.now()), bbox_inches='tight') plt.close() plt.plot(lambdas["poisson"], Ps["poisson"]) plt.plot(lambdas["cor02"], Ps["cor02"]) plt.plot(lambdas["cor04"], Ps["cor04"]) plt.ylabel('P_loss') plt.xlabel('λ') plt.legend(( str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs1.queries_stream.c_cor[0], 3), round(qs1.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs2.queries_stream.c_cor[0], 3), round(qs2.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs3.queries_stream.c_cor[0], 3), round(qs3.queries_stream.c_cor[1], 3)), ), loc=0) plt.title( 'Зависимость P_loss от λ при различных\n коэффициентах корреляции длин двух соседних интервалов' ) plt.savefig(str.format("plots/MMAP_P_loss_lambda_cor_0_02_04_{}.png", datetime.datetime.now()), bbox_inches='tight') plt.close() plt.plot(lambdas["poisson"], Ps_alg["poisson"]) plt.plot(lambdas["cor02"], Ps_alg["cor02"]) plt.plot(lambdas["cor04"], Ps_alg["cor04"]) plt.ylabel('P_loss_alg') plt.xlabel('λ') plt.legend(( str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs1.queries_stream.c_cor[0], 3), round(qs1.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs2.queries_stream.c_cor[0], 3), round(qs2.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs3.queries_stream.c_cor[0], 3), round(qs3.queries_stream.c_cor[1], 3)), ), loc=0) plt.title( 'Зависимость P_loss_alg от λ при различных\n коэффициентах корреляции длин двух соседних интервалов' ) plt.savefig(str.format("plots/MMAP_P_loss_alg_lambda_cor_0_02_04_{}.png", datetime.datetime.now()), bbox_inches='tight') plt.close() plt.plot(lambdas["poisson"], P1s["poisson"]) plt.plot(lambdas["cor02"], P1s["cor02"]) plt.plot(lambdas["cor04"], P1s["cor04"]) plt.ylabel('P1_loss') plt.xlabel('λ') plt.legend(( str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs1.queries_stream.c_cor[0], 3), round(qs1.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs2.queries_stream.c_cor[0], 3), round(qs2.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs3.queries_stream.c_cor[0], 3), round(qs3.queries_stream.c_cor[1], 3)), ), loc=0) plt.title( 'Зависимость P1_loss от λ при различных\n коэффициентах корреляции длин двух соседних интервалов' ) plt.savefig(str.format("plots/MMAP_P1_loss_lambda_cor_0_02_04_{}.png", datetime.datetime.now()), bbox_inches='tight') plt.close() plt.plot(lambdas["poisson"], P2s["poisson"]) plt.plot(lambdas["cor02"], P2s["cor02"]) plt.plot(lambdas["cor04"], P2s["cor04"]) plt.ylabel('P2_loss') plt.xlabel('λ') plt.legend(( str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs1.queries_stream.c_cor[0], 3), round(qs1.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs2.queries_stream.c_cor[0], 3), round(qs2.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs3.queries_stream.c_cor[0], 3), round(qs3.queries_stream.c_cor[1], 3)), ), loc=0) plt.title( 'Зависимость P2_loss от λ при различных\n коэффициентах корреляции длин двух соседних интервалов' ) plt.savefig(str.format("plots/MMAP_P2_loss_lambda_cor_0_02_04_{}.png", datetime.datetime.now()), bbox_inches='tight') plt.close() plt.plot(lambdas["poisson"], Ps_imp["poisson"]) plt.plot(lambdas["cor02"], Ps_imp["cor02"]) plt.plot(lambdas["cor04"], Ps_imp["cor04"]) plt.ylabel('P_loss_imp') plt.xlabel('λ') plt.legend(( str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs1.queries_stream.c_cor[0], 3), round(qs1.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs2.queries_stream.c_cor[0], 3), round(qs2.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs3.queries_stream.c_cor[0], 3), round(qs3.queries_stream.c_cor[1], 3)), ), loc=0) plt.title( 'Зависимость P_loss_imp от λ при различных\n коэффициентах корреляции длин двух соседних интервалов' ) plt.savefig(str.format("plots/MMAP_P_loss_imp_lambda_cor_0_02_04_{}.png", datetime.datetime.now()), bbox_inches='tight') plt.close()
def main(): nowdate = datetime.datetime.now() if not os.path.exists("plots"): os.makedirs("plots") if not os.path.exists("tables"): os.makedirs("tables") lines = ["-k", "--k", "-.k"] linecycler = cycle(lines) PRINT_TITLE = False test_data_less_mu_initial = cor02.Bmmap502PhPh(matrS_elem=8.) test_data_less_mu = cor02.Bmmap502PhPh(matrS_elem=8.) test_data_equal_mu_initial = cor02.Bmmap502PhPh(matrS_elem=16.) test_data_equal_mu = cor02.Bmmap502PhPh(matrS_elem=16.) test_data_larger_mu_initial = cor02.Bmmap502PhPh(matrS_elem=32.) test_data_larger_mu = cor02.Bmmap502PhPh(matrS_elem=32.) qs1 = qs.TwoPrioritiesQueueingSystem(test_data_less_mu_initial) qs2 = qs.TwoPrioritiesQueueingSystem(test_data_equal_mu_initial) qs3 = qs.TwoPrioritiesQueueingSystem(test_data_larger_mu_initial) W1s = {"less_mu": [], "equal_mu": [], "larger_mu": []} W2s = {"less_mu": [], "equal_mu": [], "larger_mu": []} table_less_mu = [] table_equal_mu = [] table_larger_mu = [] ts = [] for t in tqdm(np.linspace(0.01, 4., 40)): test_data_less_mu.test_matrD = test_data_less_mu_initial.test_matrD test_data_less_mu.test_matrD_0 = test_data_less_mu_initial.test_matrD_0 test_data_equal_mu.test_matrD = test_data_equal_mu_initial.test_matrD test_data_equal_mu.test_matrD_0 = test_data_equal_mu_initial.test_matrD_0 test_data_larger_mu.test_matrD = test_data_larger_mu_initial.test_matrD test_data_larger_mu.test_matrD_0 = test_data_larger_mu_initial.test_matrD_0 qs1 = qs.TwoPrioritiesQueueingSystem(test_data_less_mu) stationary_probas1 = qs1.calc_stationary_probas(False) qs2 = qs.TwoPrioritiesQueueingSystem(test_data_equal_mu) stationary_probas2 = qs2.calc_stationary_probas(False) qs3 = qs.TwoPrioritiesQueueingSystem(test_data_larger_mu) stationary_probas3 = qs3.calc_stationary_probas(False) ts.append(t) W1s["less_mu"].append(qs1.func_W_1(stationary_probas1, t)) W2s["less_mu"].append(qs1.func_W_2(stationary_probas1, t)) table_less_mu.append([t, W1s["less_mu"][-1], W2s["less_mu"][-1]]) W1s["equal_mu"].append(qs2.func_W_1(stationary_probas2, t)) W2s["equal_mu"].append(qs2.func_W_2(stationary_probas2, t)) table_equal_mu.append([t, W1s["equal_mu"][-1], W2s["equal_mu"][-1]]) W1s["larger_mu"].append(qs3.func_W_1(stationary_probas3, t)) W2s["larger_mu"].append(qs3.func_W_2(stationary_probas3, t)) table_larger_mu.append([t, W1s["larger_mu"][-1], W2s["larger_mu"][-1]]) plt.plot(ts, W1s["less_mu"], next(linecycler)) plt.plot(ts, W1s["equal_mu"], next(linecycler)) plt.plot(ts, W1s["larger_mu"], next(linecycler)) plt.ylabel(r'$W_1(t)$') plt.xlabel(r'$t$') plt.legend(( str.format("µ={0}", round(qs1.serv_stream.avg_intensity, 3)), str.format("µ={0}", round(qs2.serv_stream.avg_intensity, 3)), str.format("µ={0}", round(qs3.serv_stream.avg_intensity, 3)), ), loc=0) if PRINT_TITLE: plt.title( 'Зависимость W_1 от t при различных\n средних интенсивностях обслуживания' ) plt.savefig(str.format("plots/BMMAP5_W_1_t_mu_{}.png", nowdate), dpi=400, bbox_inches='tight') plt.close() plt.plot(ts, W2s["less_mu"], next(linecycler)) plt.plot(ts, W2s["equal_mu"], next(linecycler)) plt.plot(ts, W2s["larger_mu"], next(linecycler)) plt.ylabel(r'$W_2(t)$') plt.xlabel(r'$t$') plt.legend(( str.format("µ={0}", round(qs1.serv_stream.avg_intensity, 3)), str.format("µ={0}", round(qs2.serv_stream.avg_intensity, 3)), str.format("µ={0}", round(qs3.serv_stream.avg_intensity, 3)), ), loc=0) if PRINT_TITLE: plt.title( 'Зависимость W_2 от t при различных\n средних интенсивностях обслуживания' ) plt.savefig(str.format("plots/BMMAP5_W_2_t_mu_{}.png", nowdate), dpi=400, bbox_inches='tight') plt.close() f = open(str.format("tables/tables_{}.txt", nowdate), "w+") print(str.format("µ={0}", round(qs1.serv_stream.avg_intensity, 3)), file=f) print(table_less_mu, file=f) print(str.format("µ={0}", round(qs2.serv_stream.avg_intensity, 3)), file=f) print(table_equal_mu, file=f) print(str.format("µ={0}", round(qs3.serv_stream.avg_intensity, 3)), file=f) print(table_larger_mu, file=f) f.close() table_less_mu = np.asarray(table_less_mu) table_equal_mu = np.asarray(table_equal_mu) table_larger_mu = np.asarray(table_larger_mu) np.savetxt(str.format("tables/BMMAP5_W_t_mu_4_{}.csv", nowdate), table_less_mu, header='t, $W_1(t)$, $W_2(t)$', delimiter=',', fmt='%.5f', comments='') np.savetxt(str.format("tables/BMMAP5_W_t_mu_8_{}.csv", nowdate), table_equal_mu, header='t, $W_1(t)$, $W_2(t)$', delimiter=',', fmt='%.5f', comments='') np.savetxt(str.format("tables/BMMAP5_W_t_mu_16_{}.csv", nowdate), table_larger_mu, header='t, $W_1(t)$, $W_2(t)$', delimiter=',', fmt='%.5f', comments='')
import debugging.MMAP_cor04 as cor04 import two_priorities_qs as qs4 if __name__ == '__main__': test_data = cor04.Mmap04PhPh() # test_data = cor02.Mmap02PhPh() # test_data = cor0.MmapPoissonPh() qs1 = qs4.TwoPrioritiesQueueingSystem(test_data, verbose=True) qs1.calc_characteristics(True)
import debugging.MMAP_Poisson_PH_Poisson_NoRemoval as poisson_PH_noremoval import two_priorities_qs as qs if __name__ == '__main__': test_data_Poisson_PH_noRemoval = poisson_PH_noremoval.MmapPoissonPhPoissonNoRemoval( ) qs1 = qs.TwoPrioritiesQueueingSystem(test_data_Poisson_PH_noRemoval, verbose=True) qs1.calc_characteristics(True) # test_data_Poisson_noRemoval = poisson_noremoval.MmapPoissonNoRemoval() # # print("\nPoisson system:\n") # # qs2 = qs.TwoPrioritiesQueueingSystem(test_data_Poisson_noRemoval, verbose=True) # # qs2.calc_characteristics(True)
def main(): test_data_Poisson_initial = poisson.Bmmap3PoissonPhPh() test_data_Poisson = poisson.Bmmap3PoissonPhPh() test_data_02_initial = cor02.Bmmap302PhPh() test_data_02 = cor02.Bmmap302PhPh() test_data_04_initial = cor04.Bmmap304PhPh() test_data_04 = cor04.Bmmap304PhPh() qs1 = qs.TwoPrioritiesQueueingSystem(test_data_Poisson_initial) qs2 = qs.TwoPrioritiesQueueingSystem(test_data_02_initial) qs3 = qs.TwoPrioritiesQueueingSystem(test_data_04_initial) W1s = {"poisson": [], "cor02": [], "cor04": []} W2s = {"poisson": [], "cor02": [], "cor04": []} coef = 0.25 # as we have \lambda = 32 and want it to be 8 ts = [] for t in np.linspace(0.0001, 1., 200): test_data_Poisson.test_matrD = test_data_Poisson_initial.test_matrD * coef test_data_Poisson.test_matrD_0 = test_data_Poisson_initial.test_matrD_0 * coef test_data_02.test_matrD = test_data_02_initial.test_matrD * coef test_data_02.test_matrD_0 = test_data_02_initial.test_matrD_0 * coef test_data_04.test_matrD = test_data_04_initial.test_matrD * coef test_data_04.test_matrD_0 = test_data_04_initial.test_matrD_0 * coef qs1 = qs.TwoPrioritiesQueueingSystem(test_data_Poisson) stationary_probas1 = qs1.calc_stationary_probas(False) qs2 = qs.TwoPrioritiesQueueingSystem(test_data_02) stationary_probas2 = qs2.calc_stationary_probas(False) qs3 = qs.TwoPrioritiesQueueingSystem(test_data_04) stationary_probas3 = qs3.calc_stationary_probas(False) ts.append(t) W1s["poisson"].append(qs1.func_W_1(stationary_probas1, t)) W2s["poisson"].append(qs1.func_W_2(stationary_probas1, t)) W1s["cor02"].append(qs2.func_W_1(stationary_probas2, t)) W2s["cor02"].append(qs2.func_W_2(stationary_probas2, t)) W1s["cor04"].append(qs3.func_W_1(stationary_probas3, t)) W2s["cor04"].append(qs3.func_W_2(stationary_probas3, t)) plt.plot(ts, W1s["poisson"]) plt.plot(ts, W1s["cor02"]) plt.plot(ts, W1s["cor04"]) plt.ylabel('W_1') plt.xlabel('t') plt.legend(( str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs1.queries_stream.c_cor[0], 3), round(qs1.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs2.queries_stream.c_cor[0], 3), round(qs2.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs3.queries_stream.c_cor[0], 3), round(qs3.queries_stream.c_cor[1], 3)), ), loc=0) plt.title( 'Зависимость W_1 от t при различных\n коэффициентах корреляции длин двух соседних интервалов' ) plt.savefig(str.format("plots/BMMAP3_W_1_t_cor_0_02_04_{}.png", datetime.datetime.now()), bbox_inches='tight') plt.close() plt.plot(ts, W2s["poisson"]) plt.plot(ts, W2s["cor02"]) plt.plot(ts, W2s["cor04"]) plt.ylabel('W_2') plt.xlabel('t') plt.legend(( str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs1.queries_stream.c_cor[0], 3), round(qs1.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs2.queries_stream.c_cor[0], 3), round(qs2.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs3.queries_stream.c_cor[0], 3), round(qs3.queries_stream.c_cor[1], 3)), ), loc=0) plt.title( 'Зависимость W_2 от t при различных\n коэффициентах корреляции длин двух соседних интервалов' ) plt.savefig(str.format("plots/BMMAP3_W_2_t_cor_0_02_04_{}.png", datetime.datetime.now()), bbox_inches='tight') plt.close()
def main(): test_data_Poisson_initial = poisson.MmapPoissonPhPh() test_data_Poisson = poisson.MmapPoissonPhPh() test_data_02_initial = cor02.Mmap02PhPh() test_data_02 = cor02.Mmap02PhPh() test_data_04_initial = cor04.Mmap04PhPh() test_data_04 = cor04.Mmap04PhPh() qs1 = qs.TwoPrioritiesQueueingSystem(test_data_Poisson_initial) qs2 = qs.TwoPrioritiesQueueingSystem(test_data_02_initial) qs3 = qs.TwoPrioritiesQueueingSystem(test_data_04_initial) Ns = {"poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": []} Ls = {"poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": []} Ps = {"poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": []} p_0s = {"poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": []} p_1s = {"poisson": [], "cor02": [], "cor04": [], "poisson_PH_poisson_NoRemoval": [], "poisson_NoRemoval": []} for newN in range(1, 25): test_data_Poisson.test_N = newN test_data_02.test_N = newN test_data_04.test_N = newN qs1 = qs.TwoPrioritiesQueueingSystem(test_data_Poisson) stationary_probas1 = qs1.calc_stationary_probas(False) qs2 = qs.TwoPrioritiesQueueingSystem(test_data_02) stationary_probas2 = qs2.calc_stationary_probas(False) qs3 = qs.TwoPrioritiesQueueingSystem(test_data_04) stationary_probas3 = qs3.calc_stationary_probas(False) Ns["poisson"].append(newN) Ls["poisson"].append(qs1.calc_avg_buffer_queries_num(stationary_probas1)) Ps["poisson"].append(qs1.calc_query_lost_p(stationary_probas1)) p_0s["poisson"].append(qs1.calc_system_empty_proba(stationary_probas1)) p_1s["poisson"].append(qs1.calc_system_single_query_proba(stationary_probas1)) Ns["cor02"].append(newN) Ls["cor02"].append(qs2.calc_avg_buffer_queries_num(stationary_probas2)) Ps["cor02"].append(qs2.calc_query_lost_p(stationary_probas2)) p_0s["cor02"].append(qs2.calc_system_empty_proba(stationary_probas2)) p_1s["cor02"].append(qs2.calc_system_single_query_proba(stationary_probas2)) Ns["cor04"].append(newN) Ls["cor04"].append(qs3.calc_avg_buffer_queries_num(stationary_probas3)) Ps["cor04"].append(qs3.calc_query_lost_p(stationary_probas3)) p_0s["cor04"].append(qs3.calc_system_empty_proba(stationary_probas3)) p_1s["cor04"].append(qs3.calc_system_single_query_proba(stationary_probas3)) plt.plot(Ns["poisson"], Ls["poisson"]) plt.plot(Ns["cor02"], Ls["cor02"]) plt.plot(Ns["cor04"], Ls["cor04"]) plt.ylabel('L') plt.xlabel('N') plt.legend((str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs1.queries_stream.c_cor[0], 3), round(qs1.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs2.queries_stream.c_cor[0], 3), round(qs2.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs3.queries_stream.c_cor[0], 3), round(qs3.queries_stream.c_cor[1], 3)), ), loc=0) plt.title('Зависимость L от N при различных\n коэффициентах корреляции длин двух соседних интервалов') plt.savefig(str.format("plots/MMAP_L_N_cor_0_02_04_NoRemoval_{}.png", datetime.datetime.now()), bbox_inches='tight') plt.close() plt.plot(Ns["poisson"], Ps["poisson"]) plt.plot(Ns["cor02"], Ps["cor02"]) plt.plot(Ns["cor04"], Ps["cor04"]) plt.ylabel('P_loss') plt.xlabel('N') plt.legend((str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs1.queries_stream.c_cor[0], 3), round(qs1.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs2.queries_stream.c_cor[0], 3), round(qs2.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs3.queries_stream.c_cor[0], 3), round(qs3.queries_stream.c_cor[1], 3)), ), loc=0) plt.title('Зависимость P_loss от N при различных\n коэффициентах корреляции длин двух соседних интервалов') plt.savefig(str.format("plots/MMAP_P_loss_N_cor_0_02_04_NoRemoval_{}.png", datetime.datetime.now()), bbox_inches='tight') plt.close() plt.plot(Ns["poisson"], p_0s["poisson"]) plt.plot(Ns["cor02"], p_0s["cor02"]) plt.plot(Ns["cor04"], p_0s["cor04"]) plt.ylabel('p_0') plt.xlabel('N') plt.legend((str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs1.queries_stream.c_cor[0], 3), round(qs1.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs2.queries_stream.c_cor[0], 3), round(qs2.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs3.queries_stream.c_cor[0], 3), round(qs3.queries_stream.c_cor[1], 3)), ), loc=0) plt.title('Зависимость p_0 от N при различных\n коэффициентах корреляции длин двух соседних интервалов') plt.savefig(str.format("plots/MMAP_p_0_N_cor_0_02_04_NoRemoval_{}.png", datetime.datetime.now()), bbox_inches='tight') plt.close() plt.plot(Ns["poisson"], p_1s["poisson"]) plt.plot(Ns["cor02"], p_1s["cor02"]) plt.plot(Ns["cor04"], p_1s["cor04"]) plt.ylabel('p_1') plt.xlabel('N') plt.legend((str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs1.queries_stream.c_cor[0], 3), round(qs1.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs2.queries_stream.c_cor[0], 3), round(qs2.queries_stream.c_cor[1], 3)), str.format("c_cor^(1)={0}, c_cor^(2)={1}", round(qs3.queries_stream.c_cor[0], 3), round(qs3.queries_stream.c_cor[1], 3)), ), loc=0) plt.title('Зависимость p_1 от N при различных\n коэффициентах корреляции длин двух соседних интервалов') plt.savefig(str.format("plots/MMAP_p_1_N_cor_0_02_04_NoRemoval_{}.png", datetime.datetime.now()), bbox_inches='tight') plt.close()