def rate_observed(self) : # convenience horizon = self.horizon recorder = self.recorder dispatch = self.dispatch arrivalrate = totalrate( self.rategraph ) total_demands = len( self.DEMANDS ) nleft = len( dispatch.demands ) print 'arrival rate (simulated, observed): %f, %f' % ( arrivalrate, total_demands / horizon ) if True : # see what this does rate_observed = sum([ veh.notches for veh in self.vehicles ]) / self.horizon else : #overrate_est = float( nleft - preload ) / horizon take_only_last = .25 * horizon take_num = int( np.ceil( take_only_last / recorder.T ) ) DY = float( self.tape[-1] - self.tape[-take_num] ) DT = take_num * recorder.T overrate_est = float( DY ) / DT rate_observed = arrivalrate - overrate_est return rate_observed
normrategraph.add_edge( 'LEFT', 'RIGHT', rate=1. ) probe = RoadmapEMD() probe.horizon = 10000. complexity_computed = [] complexity_estimated = [] def showresults() : plt.scatter( complexity_computed, complexity_estimated ) for t in range(1) : roadnet, rategraph = get_sim_setting( mu=2. ) R = totalrate( rategraph ) n_rategraph = scale_rates( rategraph, 1. / R ) enroute_velocity = carryMileageRate( roadnet, n_rategraph ) balance_velocity = fetchMileageRate( roadnet, n_rategraph ) complexity = enroute_velocity + balance_velocity #complexity = moverscomplexity( roadnet, n_rategraph ) for k in range(1) : numveh = np.random.randint(1,5+1) rate_predicted = convert_complexity_and_servicerate( complexity, numveh ) simrates = scale_rates( n_rategraph, .99 * rate_predicted ) probe.scenario( roadnet, simrates, numveh, 1. )