Skip to content

Multi-Start Algorithm

Multi-Start is a simple yet effective metaheuristic strategy that repeatedly generates and improves solutions, keeping track of the best solution found. It's one of the easiest metaheuristics to implement and often serves as a baseline for comparison.

Algorithm Overview

Multi-Start alternates between construction and improvement phases, typically using different random seeds or initial configurations each time.

graph TD
    A[Start] --> B[Construct Initial Solution]
    B --> C[Improve Solution]
    C --> D{Better than Best?}
    D -->|Yes| E[Update Best Solution]
    D -->|No| F[Discard Solution]
    E --> G{Stopping Criteria?}
    F --> G
    G -->|No| B
    G -->|Yes| H[Return Best Solution]

Algorithm Outline

best = null

while (not StoppingCriteria()) {
    s = Construct()
    s = Improve(s)

    if (best == null || s.isBetterThan(best)) {
        best = s
    }
}

return best