def test_gauss_seidel_2(self): print 'test gauss_seidel 2' g1,g2,d1,d2 = braess_heterogeneous(.25, .25) fs = gauss_seidel([g1,g2], [d1,d2], solver_2) a = np.array([[.125,.25],[.125,.0],[.0, .25],[.125, .0],[.125, .25]]) self.check(fs, a, 1e-3) g1,g2,d1,d2 = braess_heterogeneous(1., 1.) a = np.array([[.5,.5],[.5,.5],[.0, .0],[.5, .5],[.5, .5]]) fs = gauss_seidel([g1,g2], [d1,d2], solver_2) self.check(fs, a, 1e-3) g1,g2,d1,d2 = braess_heterogeneous(.75, .75) fs = gauss_seidel([g1,g2], [d1,d2], solver_2, max_iter=200) a = np.array([[.375, .625],[.375, .125],[.0, .5],[.375, .125],[.375, .625]]) self.check(fs, a, 1e-3)
def I210_parametric_study(alphas): # load the network and its properties g_r, d, node, feat = load_I210_modified() # modify the costs on non routed network g_nr, small_capacity = multiply_cognitive_cost(g_r, feat, 3000., 100.) #divide the demand by 4000 to computationally optimize d[:,2] = d[:,2] / 4000. for alpha in alphas: if alpha == 0.0: print 'non-routed = 1.0, routed = 0.0' f_nr = solver_3(g_nr, d, max_iter=1000, stop=1e-3) fs=np.zeros((f_nr.shape[0],2)) fs[:,0]=f_nr elif alpha == 1.0: print 'non-routed = 0.0, routed = 1.0' f_r = solver_3(g_r, d, max_iter=1000, stop=1e-3) fs=np.zeros((f_r.shape[0],2)) fs[:,1]=f_r else: print 'non-routed = {}, routed = {}'.format(1-alpha, alpha) d_nr, d_r = heterogeneous_demand(d, alpha) fs = gauss_seidel([g_nr,g_r], [d_nr,d_r], solver_3, max_iter=1000, \ stop=1e-3, stop_cycle=1e-3, q=50, past=20) np.savetxt('data/I210_modified/test_{}.csv'.format(int(alpha*100)), fs, \ delimiter=',', header='f_nr,f_r')
def test_gauss_seidel_3(self): print 'test gauss_seidel 3' g1,g2,d1,d2 = braess_heterogeneous(.25, .25) fs = gauss_seidel([g1,g2], [d1,d2], solver_3) a = np.array([[.125,.25],[.125,.0],[.0, .25],[.125, .0],[.125, .25]]) #print fs #print a self.check(fs, a, 1e-3) g1,g2,d1,d2 = braess_heterogeneous(1., 1.) a = np.array([[.5,.5],[.5,.5],[.0, .0],[.5, .5],[.5, .5]]) fs = gauss_seidel([g1,g2], [d1,d2], solver_3) self.check(fs, a, 1e-3) g1,g2,d1,d2 = braess_heterogeneous(.75, .75) fs = gauss_seidel([g1,g2], [d1,d2], solver_3, q=50) a = np.array([[.375, .625],[.375, .125],[.0, .5],[.375, .125],[.375, .625]]) self.check(fs, a, 1e-3)
def I210_parametric_study(alphas): # load the network and its properties g_r, d, node, feat = load_I210_modified() # modify the costs on non routed network g_nr, small_capacity = multiply_cognitive_cost(g_r, feat, 3000., 100.) #divide the demand by 4000 to computationally optimize d[:, 2] = d[:, 2] / 4000. for alpha in alphas: if alpha == 0.0: print 'non-routed = 1.0, routed = 0.0' f_nr = solver_3(g_nr, d, max_iter=1000, stop=1e-3) fs = np.zeros((f_nr.shape[0], 2)) fs[:, 0] = f_nr elif alpha == 1.0: print 'non-routed = 0.0, routed = 1.0' f_r = solver_3(g_r, d, max_iter=1000, stop=1e-3) fs = np.zeros((f_r.shape[0], 2)) fs[:, 1] = f_r else: print 'non-routed = {}, routed = {}'.format(1 - alpha, alpha) d_nr, d_r = heterogeneous_demand(d, alpha) fs = gauss_seidel([g_nr,g_r], [d_nr,d_r], solver_3, max_iter=1000, \ stop=1e-3, stop_cycle=1e-3, q=50, past=20) np.savetxt('data/I210_modified/test_{}.csv'.format(int(alpha*100)), fs, \ delimiter=',', header='f_nr,f_r')
def braess_parametric_study(): ''' parametric study of heterogeneous game on the Braess network ''' g1, g2, d1, d2 = braess_heterogeneous(.0, 1.5) fs = solver_2(g1, d1, display=1) print '.0, 1.5' np.savetxt('data/braess/test_1.csv', fs, delimiter=',') g1, g2, d1, d2 = braess_heterogeneous(.5, 1.) fs = gauss_seidel([g1, g2], [d1, d2], solver_2, display=1) print '.5, 1.' np.savetxt('data/braess/test_2.csv', fs, delimiter=',') g1, g2, d1, d2 = braess_heterogeneous(.75, .75) fs = gauss_seidel([g1, g2], [d1, d2], solver_2, display=1) print '.75, .75' np.savetxt('data/braess/test_3.csv', fs, delimiter=',') g1, g2, d1, d2 = braess_heterogeneous(1., .5) fs = gauss_seidel([g1, g2], [d1, d2], solver_2, display=1) print '1., .5' np.savetxt('data/braess/test_4.csv', fs, delimiter=',') g1, g2, d1, d2 = braess_heterogeneous(1.5, .0) fs = solver_2(g2, d2, display=1) print '1.5, .0' np.savetxt('data/braess/test_5.csv', fs, delimiter=',')