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')
Example #5
0
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=',')