Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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