コード例 #1
0
	objfun_file.write('f=%s;' % make_matlab_min_func(root))
	objfun_file.close()

	num_vars = len(root.get_all_predicates())
	cmd_file = open('do_opt.m', 'w')
	cmd_file.write('x0=[%s];\n' % ','.join(['0'] * num_vars))
	cmd_file.write('lb=[%s];\n' % ','.join(['0'] * num_vars))
	cmd_file.write('[x,fval] = fmincon(@objfun,x0,[],[],[],[],lb);\n')
	cmd_file.write('csvwrite(\'result.csv\', x);\n')
	cmd_file.close()

def run_fmincon(root):
	make_files(root)
	#server = 'scs.itd.umich.edu'
	output_file = 'result.csv'
	matlab_cmd = 'matlab -nojvm -nodisplay -r \'do_opt;quit\' &> /dev/null'
	#os.system('scp objfun.m %s:%s/' % (server, d))
	#os.system('scp do_opt.m %s:%s/' % (server, d))
	#os.system('ssh %s "cd %s; %s"' % (server, d, matlab_cmd))
	#os.system('scp %s:%s/%s .' % (server, d, output_file))
	assert os.system(matlab_cmd) == 0, "Matlab run failed"
	result = [float(s) for s in open(output_file).read().split(',')]
	return result

if __name__ == '__main__':
	from treegen import TreeGen
	tgen = TreeGen()
	root = tgen.generate_random()
	result = run_fmincon(root)
	print result