示例#1
0
from jmetal.algorithm.multiobjective.nsgaii import NSGAII
from jmetal.lab.visualization import InteractivePlot, Plot
from jmetal.operator import SBXCrossover, PolynomialMutation
from jmetal.problem import ZDT1
from jmetal.util.observer import ProgressBarObserver, VisualizerObserver
from jmetal.util.solution import read_solutions, print_function_values_to_file, \
    print_variables_to_file
from jmetal.util.termination_criterion import StoppingByEvaluations
"""
Program to configure and run the steady-state NSGA-II algorithm with a real-time plotting observer. The display 
update frequency is set to 100 evaluations.
"""

if __name__ == '__main__':
    problem = ZDT1()
    problem.reference_front = read_solutions(
        filename='resources/reference_front/ZDT1.pf')

    max_evaluations = 25000
    algorithm = NSGAII(problem=problem,
                       population_size=100,
                       offspring_population_size=1,
                       mutation=PolynomialMutation(probability=1.0 /
                                                   problem.number_of_variables,
                                                   distribution_index=20),
                       crossover=SBXCrossover(probability=1.0,
                                              distribution_index=20),
                       termination_criterion=StoppingByEvaluations(
                           max_evaluations=max_evaluations))

    algorithm.observable.register(observer=ProgressBarObserver(
示例#2
0
algorithm = [(NSGAII, {
    'population_size':
    100,
    'max_evaluations':
    25000,
    'mutation':
    NullMutation(),
    'crossover':
    SBX(1.0, 20),
    'selection':
    BinaryTournamentSelection(RankingAndCrowdingDistanceComparator())
}),
             (NSGAII(population_size=100,
                     max_evaluations=25000,
                     mutation=NullMutation(),
                     crossover=SBX(1.0, 20),
                     selection=BinaryTournamentSelection(
                         RankingAndCrowdingDistanceComparator()),
                     problem=ZDT1()), {}),
             (SMPSO, {
                 'swarm_size': 100,
                 'max_evaluations': 25000,
                 'mutation': NullMutation(),
                 'leaders': CrowdingDistanceArchive(100)
             })]
metric = [HyperVolume(reference_point=[1, 1])]
problem = [(ZDT1, {}), (ZDT2, {})]

results = experiment(algorithm, metric, problem)
display(results)