from jmetal.util.solutions_utils import read_solutions, print_function_values_to_file, print_variables_to_file from jmetal.util.termination_criterion import StoppingByEvaluations if __name__ == '__main__': problem = LZ09_F2() problem.reference_front = read_solutions(filename='resources/reference_front/LZ09_F2.pf') max_evaluations = 150000 algorithm = MOEAD_DRA( problem=problem, population_size=300, crossover=DifferentialEvolutionCrossover(CR=1.0, F=0.5, K=0.5), mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20), aggregative_function=Tschebycheff(dimension=problem.number_of_objectives), neighbor_size=20, neighbourhood_selection_probability=0.9, max_number_of_replaced_solutions=2, weight_files_path='resources/MOEAD_weights', termination_criterion=StoppingByEvaluations(max=max_evaluations) ) algorithm.observable.register(observer=ProgressBarObserver(max=max_evaluations)) algorithm.observable.register( observer=VisualizerObserver(reference_front=problem.reference_front, display_frequency=1000)) algorithm.run() front = algorithm.get_result() # Plot front plot_front = Plot(plot_title='Pareto front approximation', reference_front=problem.reference_front,
if __name__ == "__main__": problem = UF1() problem.reference_front = read_solutions( filename="resources/reference_front/UF1.pf") max_evaluations = 300000 algorithm = MOEAD_DRA( problem=problem, population_size=600, crossover=DifferentialEvolutionCrossover(CR=1.0, F=0.5), mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20), aggregative_function=Tschebycheff( dimension=problem.number_of_objectives), neighbor_size=20, neighbourhood_selection_probability=0.9, max_number_of_replaced_solutions=2, weight_files_path="resources/MOEAD_weights", termination_criterion=StoppingByEvaluations( max_evaluations=max_evaluations), ) algorithm.run() front = algorithm.get_result() hypervolume = HyperVolume([2.0, 2.0]) print("Hypervolume: " + str( hypervolume.compute([front[i].objectives for i in range(len(front))])))