Backtracking Search Algorithm (BSA)
BSA is an evolutionary population-based optimizer proposed by Pinar Civicioglu (2013) for
real-valued numerical optimization. Its signature is memory: it keeps a historical (archive)
population alongside the current one and moves “with an eye on past experience.” Source:
andrey-dik‘s MQL5 implementation (C_AO_BSA_Backtracking); minimal params (population size,
mixrate).
How it works (four steps per iteration)
- Selection-I — with ~50% probability the historical population is refreshed from the current one, then randomly shuffled for diversity.
- Mutation —
M = P + F·(oldP − P), withFa normally-distributed amplitude; movement relative to historical positions. - Crossover — either “mixrate” (take several coordinates from the current pop) or a single random coordinate.
- Selection-II — greedy: keep a trial only if it improves fitness.
Benchmark (context-relative)
Ranked 20/45 (55.10%) on the population-optimization-benchmark — the best of the founding four — “a compromise between ease of implementation and search efficiency,” a stable mid-pack performer. (Benchmark-relative; see no-free-lunch-theorem.)
Related
metaheuristic-optimization · exploration-vs-exploitation · population-optimization-benchmark · no-free-lunch-theorem · andrey-dik · cma-es