object

differential_evolution(Problem,RandomAlgorithm)

  • Problem - Problem object implementing differential_evolution_protocol.

  • RandomAlgorithm - Random number generator algorithm for the fast_random library.

Differential Evolution (DE/rand/1/bin, DE/rand/1/exp, DE/best/1/bin, and DE/current-to-best/1/bin) metaheuristic for continuous bounded optimization.

Availability:
logtalk_load(differential_evolution(loader))
Author: Paulo Moura
Version: 1:0:0
Date: 2026-08-19
Compilation flags:
static, context_switching_calls
Remarks:
  • Strategies: The strategy(rand/1/bin) (default), strategy(rand/1/exp), strategy(best/1/bin), and strategy(current-to-best/1/bin) options select the classic mutation strategies.

  • Optimization objective: The objective(minimize|maximize) option selects the fitness ordering.

  • Boundary handling: Trial vectors that leave the bounds are clamped to the nearest bound.

  • Seed control: The seed(S) option initializes the random number generator for reproducible runs.

Public predicates

run/2

Runs Differential Evolution with default options and returns the best position and fitness found.

Compilation flags:
static
Template:
run(BestPosition,BestFitness)
Mode and number of proofs:
run(-list(number),-number) - one

run/3

Runs Differential Evolution with the given options and returns the best position and fitness found.

Compilation flags:
static
Template:
run(BestPosition,BestFitness,Options)
Mode and number of proofs:
run(-list(number),-number,+list(compound)) - one

run/4

Runs Differential Evolution with the given options and returns the best position, best fitness, and run statistics.

Compilation flags:
static
Template:
run(BestPosition,BestFitness,Statistics,Options)
Mode and number of proofs:
run(-list(number),-number,-list(compound),+list(compound)) - one
Remarks:
  • Statistics list: Contains generations(N), evaluations(E), improvements(I), final_mean_fitness(M), and final_diversity(D).


Protected predicates

(no local declarations; see entity ancestors if any)

Private predicates

(no local declarations; see entity ancestors if any)

Operators

(none)