Closed jbiffl closed 1 year ago
Hi!
is_better(a, b)
returns a boolean indicating whether solution a
is better than b
(minimum objective function value).compare(a, b)
has been designed for multi-objective problems to compare solutions in objective space (using Pareto dominance). This method returns an integer.Struct xf_solution
is to save decision $x$ and function value $f(x)$ of single-objective unconstrained problems, xfgh_solution
for single-objective and constrained. Finally, xFgh_solution
for multi-objective problems.
Thanks a lot for the answer! That makes sense now.
Are multi-objective algorithms are only compatible with multi-objective problems then? E.g. for an objective function which has a programmatically generated set of objectives I would need to use a different algorithm for cases where there is only a single objective than when there are multiple objectives.
MO algorithms work better for MO problems. They can also solve single-objective problems with a proper definition of an objective function (convert the number fx
into a vector [fx]
). Of course, the selection of an optimization algorithm is depending on the optimization problem.
Thank you for clarifying, that seems reasonable.
I keep running into method errors like this one
and I am having trouble figuring out what the differences between xfgh_solution and xFgh_solution and xf_solution are and how each type is generated/what it means. I was unable to find anything in documentation about this internal type system, and I'm not sure why
Metaheuristics.is_better()
has dispatches forxf_solution
,xfgh_solution
, andxFgh_solution
types, butMetaheuristics.compare()
only has a dispatch forxFgh_solution
which does not work withxfgh_solution
.Any information you can provide on the differences between these seemingly similar types would be very helpful.
Thanks!