protocol
differential_evolution_problem_protocol
Protocol for continuous bounded Differential Evolution problem definitions.
Availability:
logtalk_load(differential_evolution(loader))Author: Paulo Moura
Version: 1:0:0
Date: 2026-08-13
Compilation flags:
staticDependencies:
(none)
Remarks:
(none)
Inherited public predicates:
(none)
Public predicates
position_bounds/1
Returns one Lower-Upper numeric bound pair per dimension, with Lower =< Upper.
Compilation flags:
staticTemplate:
position_bounds(Bounds)Mode and number of proofs:
position_bounds(-list(pair)) - onefitness/2
Computes the fitness of a candidate solution. The optimization direction is selected by the objective/1 option.
Compilation flags:
staticTemplate:
fitness(Position,Fitness)Mode and number of proofs:
fitness(+list(number),-number) - oneinitial_positions/1
Optional. Returns a non-empty list of initial positions. When not defined, the algorithm generates a random initial population inside the position bounds.
Compilation flags:
staticTemplate:
initial_positions(Positions)Mode and number of proofs:
initial_positions(-list(list(number))) - zero_or_onestop_condition/3
Optional. True when the search should stop given the completed generation, best position, and best fitness.
Compilation flags:
staticTemplate:
stop_condition(Generation,BestPosition,BestFitness)Mode and number of proofs:
stop_condition(+non_negative_integer,+list(number),+number) - zero_or_oneprogress/5
Optional. Called periodically with generation, best position, best fitness, mean population fitness, and population diversity (mean Euclidean distance from the centroid).
Compilation flags:
staticTemplate:
progress(Generation,BestPosition,BestFitness,MeanFitness,Diversity)Mode and number of proofs:
progress(+non_negative_integer,+list(number),+number,+number,+number) - zero_or_oneProtected predicates
(none)
Private predicates
(none)
Operators
(none)