added the --nofullroutes commandline parameter.
diff --git a/sim.py b/sim.py --- a/sim.py +++ b/sim.py @@ -496,6 +496,7 @@ def parse_args(): parser.add_argument("--maxhtl", help="The maximum length of routes to be successful.", default=20, type=int) parser.add_argument("--steps", help="The maximum number of modelsteps.", default=60, type=int) parser.add_argument("--perstep", help="The number of requests to run per step.", default=100, type=int) + parser.add_argument("--nofullroutes", help="Don’t calculate full routes but break at maxhtl. This gives weaker statistics but is much faster for random networks with very long routes and very low success rate", action="store_true", default=False, type=bool) parser.add_argument("-o", "--output", help="Filename of the pylab plot.", default="plot.png") return parser.parse_args() @@ -517,7 +518,7 @@ if __name__ == "__main__": linklens = linklengths(net) print (np.mean(linklens), np.mean(routelengths), "±", np.std(routelengths), "succ", len([r for r in routelengths if r < args.maxhtl])/len(routelengths), min(routelengths), max(routelengths), sum(deviationfromsmallworld(linklens, numbins=10))) for i in range(args.steps): - routelengths = fold(net, foldperstep, args.strategy, args.maxhtl) + routelengths = fold(net, foldperstep, args.strategy, args.maxhtl, fullroutes=not args.nofullroutes) linklens = linklengths(net) lensnapshots[(run, i+1)] = linklens, routelengths print (np.mean(linklens), np.mean(routelengths), "±", np.std(routelengths), "succ", len([r for r in routelengths if r < args.maxhtl])/len(routelengths),