Esempio n. 1
0
File: main.py Progetto: nis/PyGA
def main2(argv):
	datafolder = 'data/'
	
	max_generations = 100000
	populations = 1
	individuals = 5
	genes = 3
	mutation_rate = 0.02
	
	initialize_ga = False

	try:
		opts, args = getopt.getopt(argv,"hid:p:u:g:m:", [])
	except getopt.GetoptError:
		print 'main.py -i <true/false> -d <datadir> -p <populations> -u <individuals> -g <genes> -m <mutationrate>'
		sys.exit(2)
	
	for opt, arg in opts:
		if opt == '-i':
			initialize_ga = True
		elif opt == '-d':
			datafolder = arg
		elif opt == '-p':
			populations = int(arg)
		elif opt == '-u':
			individuals = int(arg)
		elif opt == '-g':
			genes = int(arg)
		elif opt == '-m':
			mutation_rate = float(arg)

	generations_path = datafolder + 'generations/'
	semaphor_path = datafolder + 'semaphors/'
	result_path = datafolder + 'results/'
	java_semaphor_file = semaphor_path + 'JAVAKlar.sem'
	ga_semaphor_file = semaphor_path + 'GAKlar.sem'
	setup_file = datafolder + 'setup.txt'

	os.system('clear')
	
	if initialize_ga:
		ga = start_ga(populations, individuals, genes, mutation_rate, datafolder, generations_path, semaphor_path, result_path, ga_semaphor_file)
		print 'GA initialized.'
		sys.exit()
	
	
	for i in range(max_generations):
		while not java_semaphor(java_semaphor_file):
			time.sleep(0.1)
	
		print 'Generation', i
		ga = pyga.pyga()
		ga.import_folder(setup_file, result_path)
		ga.run(1)
		ga.export_to_file(datafolder)
		set_ga_semaphor(ga_semaphor_file)
		time.sleep(0.1)
Esempio n. 2
0
File: main.py Progetto: nis/PyGA
def start_ga(populations, individuals, genes, mutationrate, datafolder, generations_path, semaphor_path, result_path, ga_semaphor_file):

	# setup the folders
	if not os.path.exists(datafolder):
		os.makedirs(datafolder)
	else:
		print 'Directory exists:', datafolder
		print 'Are you sure you want to initialize a GA here?'
		sys.exit()

	if not os.path.exists(generations_path):
		os.makedirs(generations_path)

	if not os.path.exists(semaphor_path):
		os.makedirs(semaphor_path)

	if not os.path.exists(result_path):
		os.makedirs(result_path)

	ga = pyga.pyga(populations, individuals, genes, mutationrate)
	ga.export_setup(datafolder)
	ga.export_to_file(datafolder)
	set_ga_semaphor(ga_semaphor_file)
	return ga