Гиперобъем утконоса - PullRequest
0 голосов
/ 20 апреля 2020

Я использовал часть Hypervolume библиотеки Platypus в python.

В настоящее время полученное мной значение гиперволота равно 0,0. Я не уверен, что это потому, что я минимизирую одну цель и максимизирую другую? Гиперобъем создает значение, если я изменяю ограничения для максимизации для цели минимизации.

Я пробовал большое разнообразие различных значений для минимума и максимума в гиперв объеме, но все равно получаю 0. Результат решения сам по себе дает хороший изогнутый фронт Парето. Поэтому я не совсем уверен, что я сделал неправильно с гипервотомом:

N = 10000
problem = Problem(len(job_allocation), 2, 2)
problem.directions[1] = Problem.MINIMIZE
problem.directions[0] = Problem.MAXIMIZE
problem.constraints[:] = ">=0"
problem.types[:] = Integer(0, my_counter_again-1)
problem.function = lambda x: evaluation_function2(x, jobs, job_index, dur_datetime)
algorithm = NSGAII(problem)
algorithm.run(N)

hyp = Hypervolume(minimum=[0, 240], maximum=[47, 600])
fi = hyp.calculate(algorithm.result)
print("Hypervolume value:", fi)
# plot the results
plt.scatter([s.objectives[0] for s in algorithm.result],
            [s.objectives[1] for s in algorithm.result])
plt.xlim([25, 45])
plt.ylim([250, 600])
plt.xlabel("Priority score")
plt.ylabel("Cost: £")
plt.show()

Любая информация будет полезна!

Приветствия,

Сабрина

...