Example #1
0
def frank_wolfe_on_I210():
    '''
    Frank-Wolfe on I210
    '''
    graph = np.loadtxt('data/I210_attack_net.csv', delimiter=',', skiprows=1)
    demand = np.loadtxt('data/I210_od.csv', delimiter=',', skiprows=1)
    demand[:, 2] = 1. * demand[:, 2] / 4000
    # run solver
    f = solver_3(graph, demand, max_iter=1000, q=50, display=1, stop=1e-2)
    # display cost
    for a, b in zip(cost(f, graph), f * 4000):
        print a, b
    # visualization
    node = np.loadtxt('data/I210_node.csv', delimiter=',', skiprows=1)
    # extract features: 'capacity', 'length', 'fftt'
    feat = extract_features('data/I210_attack_Sketch_net.csv')
    ratio = cost_ratio(f, graph)
    # merge features with the cost ratios
    features = np.zeros((feat.shape[0], 4))
    features[:, :3] = feat
    features[:, 3] = ratio
    # join features with (lat1,lon1,lat2,lon2)
    links = process_links(graph, node, features)
    color = features[:, 3]  # we choose the costs
    names = ['capacity', 'length', 'fftt', 'tt_over_fftt']
    geojson_link(links, names, color)
 def test_solver_sioux_falls_3(self):
     print 'test Frank-Wolfe on Sioux Falls 3'
     graph = np.loadtxt('data/SiouxFalls_net.csv', delimiter=',', skiprows=1)
     demand = np.loadtxt('data/SiouxFalls_od.csv', delimiter=',', skiprows=1)
     demand[:,2] = demand[:,2] / 4000
     f = solver_3(graph, demand, max_iter=1000)
     results = np.loadtxt('data/SiouxFalls_results.csv')
     self.check(f*4000, results, 1e-3)
 def test_solver_sioux_falls_3(self):
     print 'test Frank-Wolfe on Sioux Falls 3'
     graph = np.loadtxt('data/SiouxFalls_net.csv',
                        delimiter=',',
                        skiprows=1)
     demand = np.loadtxt('data/SiouxFalls_od.csv',
                         delimiter=',',
                         skiprows=1)
     demand[:, 2] = demand[:, 2] / 4000
     f = solver_3(graph, demand, max_iter=1000)
     results = np.loadtxt('data/SiouxFalls_results.csv')
     self.check(f * 4000, results, 1e-3)
 def test_solver_3(self):
     print 'test_solver_3'
     graph = np.loadtxt('data/braess_net.csv', delimiter=',', skiprows=1)
     demand = np.loadtxt('data/braess_od.csv', delimiter=',', skiprows=1)
     demand = np.reshape(demand, (1, 3))
     f = solver_3(graph, demand, max_iter=100)
     #print f
     self.check(f, np.array([1., 1., 0., 1., 1.]), 1e-1)
     # modify demand
     demand[0, 2] = 0.5
     f = solver_2(graph, demand)
     self.check(f, np.array([.5, .0, .5, .0, .5]), 1e-8)
 def test_solver_3(self):
     print 'test_solver_3'
     graph = np.loadtxt('data/braess_net.csv', delimiter=',', skiprows=1)
     demand = np.loadtxt('data/braess_od.csv', delimiter=',', skiprows=1)
     demand=np.reshape(demand, (1,3))
     f = solver_3(graph, demand, max_iter=100)
     #print f
     self.check(f, np.array([1.,1.,0.,1.,1.]), 1e-1)
     # modify demand
     demand[0,2] = 0.5
     f = solver_2(graph, demand)
     self.check(f, np.array([.5,.0,.5,.0,.5]), 1e-8)
Example #6
0
def Cython_Func_LA():
    #graph = np.loadtxt('data/SiouxFalls_net.csv', delimiter=',', skiprows=1)
    #demand = np.loadtxt('data/SiouxFalls_od.csv', delimiter=',', skiprows=1)
    graph = np.loadtxt('data/LA_net.csv', delimiter=',', skiprows=1)
    demand = np.loadtxt('data/LA_od_2.csv', delimiter=',', skiprows=1)
    graph[10787, -1] = graph[10787, -1] / (1.5**4)
    graph[3348, -1] = graph[3348, -1] / (1.2**4)

    demand[:, 2] = 0.5 * demand[:, 2] / 4000
    #import pdb; pdb.set_trace()
    f = solver_3(graph, demand, max_iter=1000)
    #results = np.loadtxt('data/SiouxFalls_results.csv')
    np.savetxt('data/la/LA_Cython.csv', f, delimiter=',')