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:
static
Dependencies:
(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:
static
Template:
position_bounds(Bounds)
Mode and number of proofs:
position_bounds(-list(pair)) - one

fitness/2

Computes the fitness of a candidate solution. The optimization direction is selected by the objective/1 option.

Compilation flags:
static
Template:
fitness(Position,Fitness)
Mode and number of proofs:
fitness(+list(number),-number) - one

initial_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:
static
Template:
initial_positions(Positions)
Mode and number of proofs:
initial_positions(-list(list(number))) - zero_or_one

stop_condition/3

Optional. True when the search should stop given the completed generation, best position, and best fitness.

Compilation flags:
static
Template:
stop_condition(Generation,BestPosition,BestFitness)
Mode and number of proofs:
stop_condition(+non_negative_integer,+list(number),+number) - zero_or_one

progress/5

Optional. Called periodically with generation, best position, best fitness, mean population fitness, and population diversity (mean Euclidean distance from the centroid).

Compilation flags:
static
Template:
progress(Generation,BestPosition,BestFitness,MeanFitness,Diversity)
Mode and number of proofs:
progress(+non_negative_integer,+list(number),+number,+number,+number) - zero_or_one

Protected predicates

(none)

Private predicates

(none)

Operators

(none)