for N in nsamples_list: g_list_mp_tmp = np.load(direction + 'sus_' + example_name + '_N' + repr(N) + '_Nsim100_cs_g_list.npy') g_list_list.append(g_list_mp_tmp) # --------------------------------------------------------------------------- # POST-PROCESSING # --------------------------------------------------------------------------- # initialization cov_at_pf_array = np.zeros(len(nsamples_list), float) pf_mean_array = np.zeros(len(nsamples_list), float) for i in range(0, len(nsamples_list)): pf_mean_array[i], cov_at_pf_array[i] = \ uutil.get_mean_and_cov_pf_from_SUS(g_list_list[i], nsamples_list[i], p0) # analytical expression pf_ref = np.ones(len(nsamples_list), float) * pf_ref # cov_ref = np.zeros(len(nsamples_list), float) # for i in range(0, len(nsamples_list)): # cov_ref[i] = np.sqrt(pf_ref[i]**(-1/nsamples_list[i])-1) # --------------------------------------------------------------------------- # PLOTS # --------------------------------------------------------------------------- # plot cov over b plt.figure() plt.plot(nsamples_list, cov_at_pf_array, '+-', label=r'SuS', color='C2') plt.legend()
g_list_sus3 = np.load(direction + 'sus_liebscher_N' + repr(N_sus[2]) + '_Nsim100_cs_g_list.npy') g_list_mp1 = np.load(direction + 'mp_liebscher_N' + repr(N_mp[0]) + '_Nsim100_b5_cs_sss2_g_list.npy') g_list_mp2 = np.load(direction + 'mp_liebscher_N' + repr(N_mp[1]) + '_Nsim100_b5_cs_sss2_g_list.npy') g_list_mp3 = np.load(direction + 'mp_liebscher_N' + repr(N_mp[2]) + '_Nsim100_b5_cs_sss2_g_list.npy') # --------------------------------------------------------------------------- # POST-PROCESSING # --------------------------------------------------------------------------- # coefficient of variation pf_mean_sus1, pf_cov_sus1 = uutil.get_mean_and_cov_pf_from_SUS( g_list_sus1, N_sus[0], p0) pf_mean_sus2, pf_cov_sus2 = uutil.get_mean_and_cov_pf_from_SUS( g_list_sus2, N_sus[1], p0) pf_mean_sus3, pf_cov_sus3 = uutil.get_mean_and_cov_pf_from_SUS( g_list_sus3, N_sus[2], p0) pf_mean_mp1, pf_cov_mp1 = uutil.get_mean_and_cov_pf_from_MP( g_list_mp1, N_mp[0]) pf_mean_mp2, pf_cov_mp2 = uutil.get_mean_and_cov_pf_from_MP( g_list_mp2, N_mp[1]) pf_mean_mp3, pf_cov_mp3 = uutil.get_mean_and_cov_pf_from_MP( g_list_mp3, N_mp[2]) print('-----------------------------------------------------') print('cov = 0.1 | SUS cov =', round(pf_cov_sus1, 3), '| MP cov =', round(pf_cov_mp1, 3)) print('cov = 0.2 | SUS cov =', round(pf_cov_sus2, 3), '| MP cov =',
# initialization pf_line_list = [] b_line_list = [] cov_line_list = [] legend_list = [] cov_at_pf_array_sus = np.zeros(n_sigma, float) pf_mean_array_sus = np.zeros(n_sigma, float) cov_at_pf_array_mp = np.zeros(n_sigma, float) pf_mean_array_mp = np.zeros(n_sigma, float) # subset simulation for i in range(0, n_sigma): pf_mean_array_sus[i], cov_at_pf_array_sus[i] = \ uutil.get_mean_and_cov_pf_from_SUS(g_list_list_sus[i], n_samples_per_level, p0) # moving particles for i in range(0, n_sigma): pf_mean_array_mp[i], cov_at_pf_array_mp[i] = \ uutil.get_mean_and_cov_pf_from_MP(g_list_list_mp[i], n_initial_samples) # analytical expression pf_ref = np.ones(n_sigma, float) * pf_ref cov_ref = np.ones(n_sigma, float) * np.sqrt(pf_ref**(-1 / n_initial_samples) - 1) # --------------------------------------------------------------------------- # PLOTS # ---------------------------------------------------------------------------
'_Nsim100_b5_cs_sss2_g_list.npy') g_list_mp2 = np.load(direction + 'mp_waarts_N' + repr(N_mp[1]) + '_Nsim100_b10_cs_sss2_g_list.npy') g_list_mp3 = np.load(direction + 'mp_waarts_N' + repr(N_mp[2]) + '_Nsim100_b20_cs_sss2_g_list.npy') # --------------------------------------------------------------------------- # POST-PROCESSING # --------------------------------------------------------------------------- print('Ncall,SUS =', uutil.get_mean_ncall_from_SUS(g_list_sus, N_sus[0], 0.1)) print('Ncall,MP1 =', uutil.get_mean_ncall_from_MP(g_list_mp1, N_mp[0], 5)) print('Ncall,MP2 =', uutil.get_mean_ncall_from_MP(g_list_mp2, N_mp[1], 10)) print('Ncall,MP3 =', uutil.get_mean_ncall_from_MP(g_list_mp3, N_mp[2], 20)) pf_mean_sus, pf_cov_sus = uutil.get_mean_and_cov_pf_from_SUS( g_list_sus, N_sus[0], 0.1) pf_mean_mp1, pf_cov_mp1 = uutil.get_mean_and_cov_pf_from_MP( g_list_mp1, N_mp[0]) pf_mean_mp2, pf_cov_mp2 = uutil.get_mean_and_cov_pf_from_MP( g_list_mp2, N_mp[1]) pf_mean_mp3, pf_cov_mp3 = uutil.get_mean_and_cov_pf_from_MP( g_list_mp3, N_mp[2]) print('SUS: pf =', pf_mean_sus, '| cov =', pf_cov_sus) print('MP1: pf =', pf_mean_mp1, '| cov =', pf_cov_mp1) print('MP2: pf =', pf_mean_mp2, '| cov =', pf_cov_mp2) print('MP3: pf =', pf_mean_mp3, '| cov =', pf_cov_mp3) b_line_mcs, pf_line_mcs = uutil.get_pf_line_and_b_line_from_MCS(g_list_mcs) b_line_sus, pf_line_list_sus = uutil.get_pf_line_and_b_line_from_SUS(
nsamples_list_sus = [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000,\ 2000, 3000, 4000, 5000] ncall_points_sus = np.zeros(len(nsamples_list_sus)) cov_points_sus = np.zeros(len(nsamples_list_sus)) for i in range(0, len(nsamples_list_sus)): N = nsamples_list_sus[i] g_list_list_sus = \ np.load(direction + 'sus_' + example_name + '_N' + repr(N) + '_Nsim100_cs_g_list.npy') ncall_points_sus[i] = \ uutil.get_mean_ncall_from_SUS(g_list_list_sus, N, p0) pf_temp, cov_points_sus[i] = \ uutil.get_mean_and_cov_pf_from_SUS(g_list_list_sus, N, p0) # -- load mp data ---------------------------------------------------------- direction = 'python/data/example' + repr(example) + '/nsamples_study_mp/' nsamples_list_mp = [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, \ 30, 40, 50, 60, 70, 80, 90, 100] if example == 4: nsamples_list_mp = [100, 200, 300, 400, 500] ncall_points_mp = np.zeros(len(nsamples_list_mp)) cov_points_mp = np.zeros(len(nsamples_list_mp)) for i in range(0, len(nsamples_list_mp)): N = nsamples_list_mp[i] g_list_list_mp = \ np.load(direction + 'mp_' + example_name + '_N' + repr(N) + '_Nsim100_b5_cs_sss2_g_list.npy')