pymoo 0.6.1.1__tar.gz → 0.6.1.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pymoo might be problematic. Click here for more details.
- pymoo-0.6.1.3/MANIFEST.in +4 -0
- {pymoo-0.6.1.1/pymoo.egg-info → pymoo-0.6.1.3}/PKG-INFO +11 -4
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/age.py +3 -2
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/nsga2.py +0 -4
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/nsga3.py +1 -2
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/sms.py +3 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/cmaes.py +1 -1
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/es.py +1 -1
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/optuna.py +1 -4
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/pattern.py +1 -1
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/constraints/adaptive.py +2 -2
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/constraints/eps.py +1 -1
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/algorithm.py +1 -0
- pymoo-0.6.1.3/pymoo/core/individual.py +783 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/plot.py +1 -1
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/result.py +3 -0
- pymoo-0.6.1.3/pymoo/core/variable.py +399 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/calc_perpendicular_distance.cpp +56 -59
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/decomposition.cpp +56 -59
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/hv.cpp +58 -60
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/info.cpp +23 -22
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/mnn.cpp +56 -59
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/non_dominated_sorting.cpp +7668 -5240
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/non_dominated_sorting.pyx +134 -8
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/pruning_cd.cpp +56 -59
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/stochastic_ranking.cpp +56 -59
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/gradient/__init__.py +3 -1
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/gradient/grad_autograd.py +28 -4
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/function_loader.py +31 -21
- pymoo-0.6.1.3/pymoo/util/nds/dominance_degree_non_dominated_sort.py +159 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/ref_dirs/__init__.py +2 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/ref_dirs/energy.py +4 -5
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/ref_dirs/energy_layer.py +5 -4
- pymoo-0.6.1.3/pymoo/util/ref_dirs/incremental.py +68 -0
- pymoo-0.6.1.3/pymoo/version.py +1 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3/pymoo.egg-info}/PKG-INFO +11 -4
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo.egg-info/SOURCES.txt +10 -1
- pymoo-0.6.1.3/pyproject.toml +2 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/setup.py +4 -5
- pymoo-0.6.1.3/tests/test_archive.py +117 -0
- pymoo-0.6.1.3/tests/test_decomposition.py +55 -0
- pymoo-0.6.1.3/tests/test_docs.py +21 -0
- pymoo-0.6.1.3/tests/test_examples.py +19 -0
- pymoo-0.6.1.3/tests/test_indicators.py +190 -0
- pymoo-0.6.1.3/tests/test_util.py +94 -0
- pymoo-0.6.1.1/MANIFEST.in +0 -4
- pymoo-0.6.1.1/pymoo/core/individual.py +0 -320
- pymoo-0.6.1.1/pymoo/core/variable.py +0 -105
- pymoo-0.6.1.1/pymoo/version.py +0 -1
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/LICENSE +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/Makefile +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/README.rst +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/base/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/base/bracket.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/base/genetic.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/base/line.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/base/local.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/base/meta.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/hyperparameters.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/age2.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/ctaea.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/dnsga2.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/kgb.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/moead.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/rnsga2.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/rnsga3.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/rvea.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/spea2.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/moo/unsga3.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/convex/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/brkga.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/de.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/direct.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/g3pcx.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/ga.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/ga_niching.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/isres.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/nelder.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/pso.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/pso_ep.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/random_search.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/nonconvex/sres.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/univariate/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/univariate/backtracking.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/univariate/exp.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/univariate/golden.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/univariate/quadr_interp.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/algorithms/soo/univariate/wolfe.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/config.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/constraints/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/constraints/as_obj.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/constraints/as_penalty.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/constraints/from_bounds.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/callback.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/crossover.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/decision_making.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/decomposition.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/duplicate.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/evaluator.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/indicator.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/infill.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/initialization.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/mating.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/meta.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/mixed.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/mutation.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/operator.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/parameters.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/population.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/problem.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/recorder.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/repair.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/replacement.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/sampling.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/selection.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/solution.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/survival.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/core/termination.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/calc_perpendicular_distance.pyx +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/decomposition.pyx +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/hv.pyx +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/info.pyx +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/mnn.pyx +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/pruning_cd.pyx +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/stochastic_ranking.pyx +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/utils.pxd +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/vendor/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/vendor/hypervolume.cpp +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/cython/vendor/hypervolume.h +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/decomposition/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/decomposition/aasf.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/decomposition/asf.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/decomposition/pbi.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/decomposition/perp_dist.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/decomposition/tchebicheff.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/decomposition/util.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/decomposition/weighted_sum.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/docs.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/experimental/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/experimental/algorithms/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/experimental/algorithms/gde3.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/gradient/automatic.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/gradient/grad_complex.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/gradient/grad_jax.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/gradient/toolbox/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/indicators/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/indicators/distance_indicator.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/indicators/gd.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/indicators/gd_plus.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/indicators/hv/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/indicators/hv/exact.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/indicators/hv/exact_2d.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/indicators/hv/monte_carlo.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/indicators/igd.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/indicators/igd_plus.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/indicators/kktpm.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/indicators/migd.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/indicators/rmetric.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/indicators/spacing.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/mcdm/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/mcdm/compromise_programming.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/mcdm/high_tradeoff.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/mcdm/pseudo_weights.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/control.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/crossover/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/crossover/binx.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/crossover/dex.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/crossover/erx.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/crossover/expx.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/crossover/hux.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/crossover/nox.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/crossover/ox.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/crossover/pcx.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/crossover/pntx.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/crossover/sbx.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/crossover/spx.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/crossover/ux.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/mutation/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/mutation/bitflip.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/mutation/gauss.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/mutation/inversion.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/mutation/nom.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/mutation/pm.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/mutation/rm.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/repair/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/repair/bounce_back.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/repair/bounds_repair.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/repair/inverse_penalty.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/repair/rounding.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/repair/to_bound.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/repair/vtype.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/sampling/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/sampling/lhs.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/sampling/rnd.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/selection/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/selection/rnd.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/selection/tournament.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/survival/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/survival/rank_and_crowding/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/survival/rank_and_crowding/classes.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/operators/survival/rank_and_crowding/metrics.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/optimize.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/dyn.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/dynamic/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/dynamic/cec2015.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/dynamic/df.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/dynamic/misc.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/functional.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/many/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/many/cdtlz.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/many/dcdtlz.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/many/dtlz.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/many/wfg.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/bnh.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/carside.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/clutch.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/csi.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/ctp.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/dascmop.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/kursawe.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/modact.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/mw.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/omnitest.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/osy.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/srn.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/sympart.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/tnk.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/truss2d.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/welded_beam.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/wrm.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi/zdt.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/multi_to_single.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/ackley.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/cantilevered_beam.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/flowshop_scheduling.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/g.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/griewank.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/himmelblau.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/knapsack.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/mopta08.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/multimodal.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/pressure_vessel.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/rastrigin.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/rosenbrock.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/schwefel.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/simple.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/sphere.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/traveling_salesman.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/single/zakharov.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/static.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/util.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/problems/zero_to_one.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/termination/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/termination/collection.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/termination/cv.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/termination/default.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/termination/delta.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/termination/fmin.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/termination/ftol.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/termination/indicator.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/termination/max_eval.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/termination/max_gen.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/termination/max_time.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/termination/robust.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/termination/xtol.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/archive.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/cache.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/clearing.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/display/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/display/column.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/display/display.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/display/multi.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/display/output.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/display/progress.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/display/single.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/dominator.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/hv.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/matlab_engine.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/misc.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/mnn.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/nds/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/nds/efficient_non_dominated_sort.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/nds/fast_non_dominated_sort.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/nds/naive_non_dominated_sort.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/nds/non_dominated_sorting.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/nds/tree_based_non_dominated_sort.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/normalization.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/optimum.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/plotting.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/pruning_cd.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/randomized_argsort.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/ref_dirs/construction.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/ref_dirs/das_dennis.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/ref_dirs/genetic_algorithm.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/ref_dirs/misc.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/ref_dirs/optimizer.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/ref_dirs/performance.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/ref_dirs/reduction.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/ref_dirs/sample_and_map.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/reference_direction.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/remote.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/roulette.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/running_metric.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/sliding_window.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/stochastic_ranking.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/util/vectors.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/vendor/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/vendor/cec2018.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/vendor/gta.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/vendor/hv.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/vendor/vendor_cmaes.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/vendor/vendor_coco.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/vendor/vendor_scipy.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/visualization/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/visualization/fitness_landscape.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/visualization/heatmap.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/visualization/pcp.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/visualization/petal.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/visualization/radar.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/visualization/radviz.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/visualization/scatter.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/visualization/star_coordinate.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/visualization/util.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/visualization/video/__init__.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/visualization/video/callback_video.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/visualization/video/one_var_one_obj.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo/visualization/video/two_var_one_obj.py +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo.egg-info/dependency_links.txt +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo.egg-info/requires.txt +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/pymoo.egg-info/top_level.txt +0 -0
- {pymoo-0.6.1.1 → pymoo-0.6.1.3}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pymoo
|
|
3
|
-
Version: 0.6.1.
|
|
3
|
+
Version: 0.6.1.3
|
|
4
4
|
Summary: Multi-Objective Optimization in Python
|
|
5
5
|
Home-page: https://pymoo.org
|
|
6
6
|
Author: Julian Blank
|
|
@@ -14,17 +14,24 @@ Classifier: Operating System :: OS Independent
|
|
|
14
14
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
15
15
|
Classifier: Programming Language :: Python
|
|
16
16
|
Classifier: Programming Language :: Python :: 3
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
19
17
|
Classifier: Programming Language :: Python :: 3.9
|
|
20
18
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
21
|
Classifier: Topic :: Scientific/Engineering
|
|
23
22
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
24
23
|
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
25
|
-
Requires-Python: >=3.
|
|
24
|
+
Requires-Python: >=3.9
|
|
26
25
|
Description-Content-Type: text/x-rst
|
|
27
26
|
License-File: LICENSE
|
|
27
|
+
Requires-Dist: numpy>=1.15
|
|
28
|
+
Requires-Dist: scipy>=1.1
|
|
29
|
+
Requires-Dist: matplotlib>=3
|
|
30
|
+
Requires-Dist: autograd>=1.4
|
|
31
|
+
Requires-Dist: cma==3.2.2
|
|
32
|
+
Requires-Dist: alive-progress
|
|
33
|
+
Requires-Dist: dill
|
|
34
|
+
Requires-Dist: Deprecated
|
|
28
35
|
|
|
29
36
|
|
|
30
37
|
|
|
@@ -167,7 +167,7 @@ class AGEMOEASurvival(Survival):
|
|
|
167
167
|
p = self.compute_geometry(front, extreme, n)
|
|
168
168
|
|
|
169
169
|
nn = np.linalg.norm(front, p, axis=1)
|
|
170
|
-
distances = self.pairwise_distances(front, p) / nn[:, None]
|
|
170
|
+
distances = self.pairwise_distances(front, p) / (nn[:, None])
|
|
171
171
|
|
|
172
172
|
neighbors = 2
|
|
173
173
|
remaining = np.arange(m)
|
|
@@ -284,7 +284,7 @@ def normalize(front, extreme):
|
|
|
284
284
|
|
|
285
285
|
try:
|
|
286
286
|
hyperplane = np.linalg.solve(front[extreme], np.ones(n))
|
|
287
|
-
if any(np.isnan(hyperplane)) or any(np.isinf(hyperplane)) or any(hyperplane
|
|
287
|
+
if any(np.isnan(hyperplane)) or any(np.isinf(hyperplane)) or any(hyperplane <= 0):
|
|
288
288
|
normalization = np.max(front, axis=0)
|
|
289
289
|
else:
|
|
290
290
|
normalization = 1. / hyperplane
|
|
@@ -300,4 +300,5 @@ def normalize(front, extreme):
|
|
|
300
300
|
|
|
301
301
|
return front, normalization
|
|
302
302
|
|
|
303
|
+
|
|
303
304
|
parse_doc_string(AGEMOEA.__init__)
|
|
@@ -70,10 +70,6 @@ def binary_tournament(pop, P, algorithm, **kwargs):
|
|
|
70
70
|
class RankAndCrowdingSurvival(RankAndCrowding):
|
|
71
71
|
|
|
72
72
|
def __init__(self, nds=None, crowding_func="cd"):
|
|
73
|
-
warnings.warn(
|
|
74
|
-
"RankAndCrowdingSurvival is deprecated and will be removed in version 0.8.*; use RankAndCrowding operator instead, which supports several and custom crowding diversity metrics.",
|
|
75
|
-
DeprecationWarning, 2
|
|
76
|
-
)
|
|
77
73
|
super().__init__(nds, crowding_func)
|
|
78
74
|
|
|
79
75
|
# =========================================================================================================
|
|
@@ -278,7 +278,6 @@ class HyperplaneNormalization:
|
|
|
278
278
|
self.extreme_points = None
|
|
279
279
|
|
|
280
280
|
def update(self, F, nds=None):
|
|
281
|
-
|
|
282
281
|
# find or usually update the new ideal point - from feasible solutions
|
|
283
282
|
self.ideal_point = np.min(np.vstack((self.ideal_point, F)), axis=0)
|
|
284
283
|
self.worst_point = np.max(np.vstack((self.worst_point, F)), axis=0)
|
|
@@ -296,7 +295,7 @@ class HyperplaneNormalization:
|
|
|
296
295
|
worst_of_front = np.max(F[nds, :], axis=0)
|
|
297
296
|
|
|
298
297
|
self.nadir_point = get_nadir_point(self.extreme_points, self.ideal_point, self.worst_point,
|
|
299
|
-
|
|
298
|
+
worst_of_front, worst_of_population)
|
|
300
299
|
|
|
301
300
|
|
|
302
301
|
def get_extreme_points_c(F, ideal_point, extreme_points=None):
|
|
@@ -184,6 +184,9 @@ class SMSEMOA(GeneticAlgorithm):
|
|
|
184
184
|
# merge the offsprings with the current population
|
|
185
185
|
if infills is not None:
|
|
186
186
|
pop = Population.merge(self.pop, infills)
|
|
187
|
+
else:
|
|
188
|
+
pop = self.pop
|
|
189
|
+
|
|
187
190
|
|
|
188
191
|
self.pop = self.survival.do(self.problem, pop, n_survive=self.pop_size, algorithm=self,
|
|
189
192
|
ideal=ideal, nadir=nadir, **kwargs)
|
|
@@ -402,7 +402,7 @@ class CMAES(LocalSearch):
|
|
|
402
402
|
self.norm = NoNormalization()
|
|
403
403
|
self.options['bounds'] = [xl, xu]
|
|
404
404
|
|
|
405
|
-
self.options['seed'] = self.seed
|
|
405
|
+
self.options['seed'] = kwargs.get('seed', self.seed)
|
|
406
406
|
|
|
407
407
|
if isinstance(self.termination, MaximumGenerationTermination):
|
|
408
408
|
self.options['maxiter'] = self.termination.n_max_gen
|
|
@@ -45,7 +45,7 @@ class ES(GeneticAlgorithm):
|
|
|
45
45
|
if pop_size is None and n_offsprings is not None:
|
|
46
46
|
pop_size = int(np.math.ceil(n_offsprings * rule))
|
|
47
47
|
elif n_offsprings is None and pop_size is not None:
|
|
48
|
-
n_offsprings = int(np.math.floor(
|
|
48
|
+
n_offsprings = int(np.math.floor(pop_size / rule))
|
|
49
49
|
|
|
50
50
|
assert pop_size is not None and n_offsprings is not None, "You have to at least provivde pop_size of n_offsprings."
|
|
51
51
|
assert n_offsprings >= 2 * pop_size, "The number of offsprings should be at least double the population size."
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
|
|
3
|
-
from optuna.logging import get_logger
|
|
4
|
-
|
|
5
1
|
from pymoo.util.optimum import filter_optimum
|
|
6
2
|
|
|
7
3
|
try:
|
|
8
4
|
import optuna
|
|
9
5
|
from optuna.samplers import TPESampler
|
|
6
|
+
from optuna.logging import get_logger
|
|
10
7
|
except:
|
|
11
8
|
raise Exception("Please install optuna: pip install optuna")
|
|
12
9
|
|
|
@@ -80,7 +80,7 @@ class PatternSearch(LocalSearch):
|
|
|
80
80
|
def _next(self):
|
|
81
81
|
|
|
82
82
|
# whether the last iteration has resulted in a new optimum or not
|
|
83
|
-
has_improved = is_better(self._explr, self._center
|
|
83
|
+
has_improved = is_better(self._explr, self._center)
|
|
84
84
|
|
|
85
85
|
# that means that the exploration did not find any new point and was thus unsuccessful
|
|
86
86
|
if not has_improved:
|
|
@@ -40,7 +40,7 @@ class AdaptiveConstraintHandling(Meta, Algorithm):
|
|
|
40
40
|
def _setup(self, _, **kwargs):
|
|
41
41
|
self.evaluator = AttachConfigEvaluator(self.evaluator, self.config)
|
|
42
42
|
|
|
43
|
-
def
|
|
43
|
+
def _adapt_constraint_handling(self, config, infills=None, **kwargs):
|
|
44
44
|
pass
|
|
45
45
|
|
|
46
46
|
def _initialize_advance(self, infills=None, **kwargs):
|
|
@@ -53,7 +53,7 @@ class AdaptiveConstraintHandling(Meta, Algorithm):
|
|
|
53
53
|
super()._advance(infills=infills, **kwargs)
|
|
54
54
|
copy_to_dict(self.default_config, self.config)
|
|
55
55
|
|
|
56
|
-
self.
|
|
56
|
+
self._adapt_constraint_handling(self.adapted_config, infills=infills, **kwargs)
|
|
57
57
|
|
|
58
58
|
def _infill(self):
|
|
59
59
|
copy_to_dict(self.adapted_config, self.config)
|
|
@@ -10,7 +10,7 @@ class AdaptiveEpsilonConstraintHandling(AdaptiveConstraintHandling):
|
|
|
10
10
|
self.perc_eps_until = perc_eps_until
|
|
11
11
|
self.max_cv = None
|
|
12
12
|
|
|
13
|
-
def
|
|
13
|
+
def _adapt_constraint_handling(self, config, **kwargs):
|
|
14
14
|
t = self.termination.perc
|
|
15
15
|
alpha = np.maximum(0.0, 1 - 1 / self.perc_eps_until * t)
|
|
16
16
|
eps = alpha * self.max_cv
|