示例#1
0
def run_instance(param):
	# runs sim with given parameters for different controllers and different trials and writes to results directory 

	# init environment 
	if param.env_name in 'gridworld':
		env = GridWorld(param)
	elif param.env_name in 'citymap':
		env = CityMap(param)
	else:
		exit('env_name not recognized: ', param.env_name)


	# run sim 
	for i_trial in range(param.n_trials):

		# init datasets
		if param.make_dataset_on:
			print('   making dataset...')
			train_dataset, test_dataset = datahandler.make_dataset(env)
			datahandler.write_dataset(env, train_dataset, test_dataset)
		print('   loading dataset...')
		datahandler.load_dataset(env)

		# initial condition
		s0 = env.get_s0()

		for controller_name in param.controller_names:
			controller = Controller(param,env,controller_name)
		
			# sim 
			sim_result = sim(param,env,controller,s0)
		
			# write results
			case_count = len(glob.glob('../current_results/*')) + 1
			results_dir = '../current_results/sim_result_{}'.format(case_count)
			datahandler.write_sim_result(sim_result, results_dir)
	return