-
Notifications
You must be signed in to change notification settings - Fork 0
/
temp_modify_initial_population.py
38 lines (32 loc) · 1.69 KB
/
temp_modify_initial_population.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from Problems.POM3.POM3A import POM3A
from jmoo_properties import Configurations
def get_content(problem, file, population_size, initial_line=False):
number_of_objectives = len(problem.objectives)
objectives = []
contents = open(file, "r").readlines()
if initial_line is False:
for content in contents[:population_size]:
objectives.append([float(c) for count,c in enumerate(content.split(","))][-1 * number_of_objectives:])
return objectives
else:
for content in contents[1:population_size+1]:
decisions = map(float, content.strip().split(","))
objectives.append(decisions + problem.evaluate(decisions))
return ["".join(contents[0])]+[",".join(map(str, o))+"\n" for o in objectives]+["".join(c) for c in contents[population_size+1:]]
def get_initial_datapoints(problem, algorithm, gtechnique, Configurations):
number_of_objectives = len(problem.objectives)
pop_size = Configurations["Universal"]["Population_Size"]
folder_name = "./Data/"
sep = "_"
filename = folder_name + problem.name + "-p" + str(
Configurations["Universal"]["Population_Size"]) + "-d" + str(len(problem.decisions)) + "-o" + str(
len(problem.objectives)) + "-g" + gtechnique.__name__ + "-dataset.txt"
print "Initial Points are read from file: ", filename
contents= get_content(problem, filename, pop_size, initial_line=True)
f = open(filename, "w")
for content in contents: f.write(content)
f.close()
def func_modinitpop(problems, gtechniques, Configurations):
for problem in problems:
for gtechnique in gtechniques:
get_initial_datapoints(problem, "ASdsa", gtechnique, Configurations)