def param_worker(work_queue,done_queue,network,trip_data,master_config,trip_times,ext_bound,trip_ids): this_network=network.copy() #initialize link randomizer link_randomizer=None if master_config.choice_set_config['method']=='doubly_stochastic': link_randomizer=master_config.choice_set_config.get_link_randomizer(network,master_config) for kappa, sigma in iter(work_queue.get,'STOP'): link_randomizer.set_scl(kappa) link_randomizer.set_par(link_randomizer['zero']['par'],[1-sigma,1+sigma]) link_randomizer.update_denoms() random.seed(0) idx=0 overlap_sum=0 for trip_id in trip_ids: idx=idx+1 print time.asctime(time.localtime()), "-", current_process().name, "-",idx, ", k: ", kappa, ", s: ", sigma ,". trip_id: ", trip_id[0], ", sub_trip: ", trip_id[1], ", stage: ", trip_id[2] the_set,chosen_overlap=generate_choice_set(this_network,trip_data[trip_id],master_config.choice_set_config,link_randomizer,master_config['time_dependent_relation'],trip_times[trip_id[0]],ext_bound) overlap_sum=overlap_sum+chosen_overlap done_queue.put((kappa,sigma,overlap_sum/idx)) done_queue.put('STOP') return True
def choice_set_worker(work_queue,done_queue,network,trip_data,master_config,trip_times,ext_bound): this_network=network #initialize link randomizer link_randomizer=None if master_config.choice_set_config['method']=='doubly_stochastic' and not master_config.choice_set_config['randomize_after']: link_randomizer=master_config.choice_set_config.get_link_randomizer(this_network,master_config) if '1' in current_process().name: for var in link_randomizer['variables']: print var," zero p: ",link_randomizer['zero']['probs'][var] print var," posi m: ",link_randomizer['pos']['means'][var] if master_config.choice_set_config['method']=='doubly_stochastic' and master_config.choice_set_config['randomize_after']: link_randomizer=master_config.choice_set_config['randomize_after_dev'] idx=0 for trip_id in iter(work_queue.get,'STOP'): idx=idx+1 print time.asctime(time.localtime()), "-", current_process().name, "-",idx, ". trip_id: ", trip_id[0], ", sub_trip: ", trip_id[1], ", stage: ", trip_id[2] the_set,chosen_overlap=generate_choice_set(this_network,trip_data[trip_id],master_config.choice_set_config,link_randomizer,master_config['time_dependent_relation'],trip_times[trip_id[0]],ext_bound) done_queue.put((trip_id[0],the_set,chosen_overlap)) done_queue.put('STOP') return True
def choice_set_worker(work_queue, done_queue, network, trip_data, master_config, trip_times, ext_bound): this_network = network #initialize link randomizer link_randomizer = None if master_config.choice_set_config[ 'method'] == 'doubly_stochastic' and not master_config.choice_set_config[ 'randomize_after']: link_randomizer = master_config.choice_set_config.get_link_randomizer( this_network, master_config) if '1' in current_process().name: for var in link_randomizer['variables']: print var, " zero p: ", link_randomizer['zero']['probs'][var] print var, " posi m: ", link_randomizer['pos']['means'][var] if master_config.choice_set_config[ 'method'] == 'doubly_stochastic' and master_config.choice_set_config[ 'randomize_after']: link_randomizer = master_config.choice_set_config[ 'randomize_after_dev'] idx = 0 for trip_id in iter(work_queue.get, 'STOP'): idx = idx + 1 print time.asctime(time.localtime()), "-", current_process( ).name, "-", idx, ". trip_id: ", trip_id[0], ", sub_trip: ", trip_id[ 1], ", stage: ", trip_id[2] the_set, chosen_overlap = generate_choice_set( this_network, trip_data[trip_id], master_config.choice_set_config, link_randomizer, master_config['time_dependent_relation'], trip_times[trip_id[0]], ext_bound) done_queue.put((trip_id[0], the_set, chosen_overlap)) done_queue.put('STOP') return True
def param_worker(work_queue, done_queue, network, trip_data, master_config, trip_times, ext_bound, trip_ids): this_network = network.copy() #initialize link randomizer link_randomizer = None if master_config.choice_set_config['method'] == 'doubly_stochastic': link_randomizer = master_config.choice_set_config.get_link_randomizer( network, master_config) for kappa, sigma in iter(work_queue.get, 'STOP'): link_randomizer.set_scl(kappa) link_randomizer.set_par(link_randomizer['zero']['par'], [1 - sigma, 1 + sigma]) link_randomizer.update_denoms() random.seed(0) idx = 0 overlap_sum = 0 for trip_id in trip_ids: idx = idx + 1 print time.asctime(time.localtime()), "-", current_process( ).name, "-", idx, ", k: ", kappa, ", s: ", sigma, ". trip_id: ", trip_id[ 0], ", sub_trip: ", trip_id[1], ", stage: ", trip_id[2] the_set, chosen_overlap = generate_choice_set( this_network, trip_data[trip_id], master_config.choice_set_config, link_randomizer, master_config['time_dependent_relation'], trip_times[trip_id[0]], ext_bound) overlap_sum = overlap_sum + chosen_overlap done_queue.put((kappa, sigma, overlap_sum / idx)) done_queue.put('STOP') return True