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)
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=',')