AA Applied Algorithms

Kick Method (Iterated Local Search)

Run greedy local search to a local optimum, "kick" the solution to nearby state, run local search again, keep the best.

Intuition

The picture

Imagine a hilly cost landscape. Greedy descent rolls you into the nearest valley (local minimum). From there, plain greedy is stuck. The Kick method gives you a controlled jolt: take a few random perturbations to land in a different valley nearby, then roll downhill again. Repeat. Keep the best valley you've seen.

This is the simplest member of a family called Iterated Local Search (ILS).

The algorithm

KICK_METHOD(initial S1):
    S1 ← improve(S1)              // greedy descent to local optimum (LM1)
    S_best ← S1
    repeat:
        S2 ← kick(S1)              // random K-step perturbation
        S2 ← improve(S2)           // descend again to LM2
        if cost(S2) < cost(S_best):
            S_best ← S2
        S1 ← S2
    until stop
    return S_best

Two building blocks:

Worked example (TSP, from your notes)

Initial tour T1:    [7, 3, 9, 4, 8, 6, 1, 5, 0, 2]    distance = D1

Improve(T1) → T2 (local minimum, distance smaller than T1)

Kick(T2):
    pick K = 4 (random)
    perform 4 random swaps on T2 → tour T3

Improve(T3) → T4

Compare cost(T2) and cost(T4); keep the better one as the new T2.
Repeat from "Kick".

Tuning the kick strength

For TSP, K = 3 to 6 random 2-opt moves often works well.

Exam tips

Frequently asked

  • "Describe one full iteration of Kick" — improve → kick (K random changes) → improve → compare → repeat.
  • "Why is the kick needed?" — plain local search gets stuck in the first local minimum; the kick lets it jump to a different basin.
  • "What problems can it be applied to?" — TSP, graph partitioning, CSP, knapsack — anything with a local-search neighborhood structure.
  • "How does it relate to simulated annealing?" — both escape local optima; SA uses random uphill steps based on temperature; ILS/Kick alternates pure descent with explicit large random perturbations.