#!/usr/bin/python import sys, time, random, utilsp, path, treesp from networkx import * #filenames and arguments metf = open(sys.argv[1]) ppif = open(sys.argv[2]) outpf = open("../results/p_"+sys.argv[3],'w',1) outtf = open("../results/t_"+sys.argv[3],'w',1) timeout = float(sys.argv[4]) if sys.argv[5] == "p": pathalgo = True else: pathalgo = False #instance number i=500 #algorithm config exhaustive=True ################## #build the graphs# ################## D=utilsp.buildDiGraph(metf) G=utilsp.buildGraph(ppif,D) utilsp.uselessNodes(D,G) utilsp.bothstats(D,G) ################ #data reduction# ################ utilsp.dreduce(D,G,exhaustive) #stats after data reduction utilsp.bothstats(D,G) while i>0: (u,v) = random.sample(nodes(G),2) #if pathalgo: presult,ptime,pk = path.find_shortest_path(D.copy(),u,v,G.copy(),timeout) tresult,ttime,tk = treesp.find_shortest_path(D.copy(),u,v,G.copy(),timeout) if (presult==None or tresult==None) and (tresult!=presult): print "warning"; print presult, tresult if presult == None: outpf.write("no\t"+ptime+"\t"+pk+"\n") else: outpf.write('.'.join(presult) + "\t"+ptime+"\t"+pk+"\n") if tresult == None: outtf.write("no \t"+ttime+"\t"+tk+"\n") else: outtf.write('.'.join(tresult) + "\t"+ttime+"\t"+tk+"\n") i -= 1 print str(i)+" remaining"