diff --git a/moptipy/algorithms/so/ffa/fea1plus1.py b/moptipy/algorithms/so/ffa/fea1plus1.py index 3b757e657..b43347091 100644 --- a/moptipy/algorithms/so/ffa/fea1plus1.py +++ b/moptipy/algorithms/so/ffa/fea1plus1.py @@ -53,7 +53,7 @@ FFA is also implemented as a fitness assignment process (:mod:`~moptipy.algorithms.so.fitness`) in module -:mod:`~moptipy.algorithms.so.fitnesses.ffa`. +:mod:`~moptipy.algorithms.so.ffa.ffa_fitness`. 1. Thomas Weise, Zhize Wu, Xinlu Li, and Yan Chen. Frequency Fitness Assignment: Making Optimization Algorithms Invariant under Bijective @@ -231,7 +231,7 @@ class FEA1plus1(Algorithm1): away from each other. A more general version is available as a fitness assignment process (:mod:`~moptipy.algorithms.so.fitness`) that can be plugged into a general EA (:mod:`~moptipy.algorithms.so.general_ea`) - in module :mod:`~moptipy.algorithms.so.fitnesses.ffa`. + in module :mod:`~moptipy.algorithms.so.ffa.ffa_fitness`. """ def __init__(self, op0: Op0, op1: Op1, log_h_tbl: bool = True) -> None: diff --git a/moptipy/algorithms/so/ffa/ffa_fitness.py b/moptipy/algorithms/so/ffa/ffa_fitness.py index 1ed37ffe3..8af67fb89 100644 --- a/moptipy/algorithms/so/ffa/ffa_fitness.py +++ b/moptipy/algorithms/so/ffa/ffa_fitness.py @@ -13,7 +13,7 @@ This index is used to break ties, in which case newer solutions are preferred. This can make the EA with FFA compatible with the -:class:`moptipy.algorithms.so.fea1plus1.FEA1plus1` if "best" selection +:class:`moptipy.algorithms.so.ffa.fea1plus1.FEA1plus1` if "best" selection (:class:`moptipy.algorithms.modules.selections.best.Best`) is used at mu=lambda=1. To facilitate this, there is one special case in the FFA fitness assignment: diff --git a/moptipy/evaluation/frequency.py b/moptipy/evaluation/frequency.py index e33b133a3..d95c381fa 100644 --- a/moptipy/evaluation/frequency.py +++ b/moptipy/evaluation/frequency.py @@ -78,8 +78,9 @@ def from_logs( of at least `1` if they are present in the log files (in the `SETUP` section). If `report_h` is `True`, then a frequency fitness assignment `H` section - is parsed, if present (see :mod:`~moptipy.algorithms.so.fea1plus1`). Such - a section contains tuples of objective values and encounter frequencies. + is parsed, if present (see :mod:`~moptipy.algorithms.so.ffa.fea1plus1`). + Such a section contains tuples of objective values and encounter + frequencies. These encounter frequencies are added to the counter. This means that if you set *both* `report_progress` and `report_h` to `True`, you will get frequencies that are too high. @@ -92,7 +93,7 @@ def from_logs( values, we could log *all FEs* to the log files and set `report_progress` to `True` and everything else to `False`. Then we get correct encounter frequencies. Alternatively, if we have a purly FFA-based algorithm (see, - again, :mod:`~moptipy.algorithms.so.fea1plus1`), then we can set + again, :mod:`~moptipy.algorithms.so.ffa.fea1plus1`), then we can set `report_progress` to `True` and everything else to `False` to get a similar result, but the encounter frequencies then depend on the selection scheme. Alternatively, if we only care about whether an objective value