L3.14 Kapitola K3 — Důkaz / teorie (Slot 3) · [NICE] · mikro-lekce (odložitelná)

k-OPT local search [NICE]

Jedna nová věc Lokální vylepšování okruhu výměnou $k$ hran (slidy 28–31): vyhoď $k$ hran Hamiltonovského okruhu, zkus všechny rekonstrukce, přijmi zlepšení a opakuj — heuristika bez záruky faktoru.

Poslední lekce K3 — a tečka za TSP. Z [L3.1] víš, že nearest neighbor okruh sice vyrobí, ale nic neslibuje (heuristika). Z [L3.9] a [L3.10] máš aproximace s faktory 2 a 3/2 pro metrický TSP [L3.8a]. Dnešní otázka je jiná: okruh už nějaký mám — jde levně vylepšit? Slide 28 odpovídá principem, kterému se říká local search (lokální prohledávání), a jeho TSP instancí je algoritmus $k$-OPT — podle slidu „one of the most successful techniques for TSP instances in practice“.

Local search: dvě rozhodnutí (slide 28)

Slide 28 — Tour Improvement Heuristics, 1:1

A simple idea which can be used to solve other optimization problems as well:

Local search is an algorithmic principle based on two decisions:

Tedy: startovní řešení dodá libovolná heuristika (klidně nearest neighbor) a pak se řešení opakovaně „pošťuchuje“ malými úpravami. Návrh konkrétního local search algoritmu = zodpovědět dvě rozhodnutí: (1) jaké úpravy jsou povolené (to definuje „okolí“ řešení), (2) kdy úpravu přijmout ($k$-OPT přijímá jen zlepšení — improvements only).

Algoritmus $k$-OPT (slide 29)

Slide 29 — $k$-OPT algorithm for TSP, 1:1

Input: An instance $(K_n, c)$ of TSP, number $k \ge 2$. Output: Hamiltonian circuit $H$.

1. Let H be any Hamiltonian circuit;
2. Let S be the family of k-element subsets S of E(H);
   for all S ∈ S do            // outer loop deals with removed edges
       for all Ham. circuits H' ≠ H such that E(H') ⊇ E(H) \ S do
                                // inner loop deals with inserted edges
           if c(E(H')) < c(E(H)) then H := H' a go to 2.;
       end
   end

Note: $H'$ is constructed, so that it is Hamiltonian circuit as well. When $k=2$, the inner loop, which creates the Hamiltonian circuits $H'$ from the remaining edges of $H$, executes only once, since there is just one way to construct the new Hamiltonian circuit $H'$.

Vnější smyčka vybírá, kterých $k$ hran okruhu se zbavit; vnitřní smyčka zkouší všechny okruhy $H' \ne H$, které zbylé hrany $E(H)\setminus S$ obsahují (tj. doplňují je nějakými novými hranami). Jakmile nějaký $H'$ vyjde ostře levněji, stane se novým $H$ a vše začíná znovu od kroku 2 — s novou rodinou $\mathcal{S}$, protože okruh (a tedy jeho hrany) se změnil.

Zkus sám: vezmi Hamiltonovský okruh a vyhoď z něj 2 hrany, které spolu nesousedí (nesdílí vrchol). Co zbyde? A kolika způsoby to jde spojit zpátky do jiného Hamiltonovského okruhu?

Zbydou dvě cesty (okruh je kružnice — dva řezy ji rozpadnou na dva oblouky). Každá cesta má dva konce; nový okruh musí konce pospojovat dvěma hranami „křížem“. Možnosti jsou jen dvě: buď vrátíš původní dvě hrany (to je zase $H$ — zakázáno podmínkou $H' \ne H$), nebo je zapojíš jediným zbývajícím způsobem. Přesně to říká poznámka slidu 29: pro $k = 2$ proběhne vnitřní smyčka jen jednou.

(A když vyhodíš dvě hrany, které sousedí? Zbyde osamocený vrchol + jedna cesta — osamocený vrchol jde zapojit jen tak, jak byl, takže jediná rekonstrukce je $H$ samo a vnitřní smyčka neproběhne ani jednou. Vlastní pozorování — slide tenhle případ nerozepisuje.)

2-opt: zisk výměny (slide 30)

Zkus sám: při 2-opt výměně se z celého okruhu změní jen 4 hrany — dvě odstraněné $(a,b), (c,d)$ a dvě vložené $(a,d), (b,c)$. Napiš, o kolik se změní cena okruhu.

Všechny ostatní hrany zůstávají, takže rozdíl je jen $$c(E(H')) - c(E(H)) = c(a,d) + c(b,c) - c(c,d) - c(a,b).$$ Je-li záporný, výměna se vyplatí. Vyhodnocení jedné výměny je tedy $\mathcal{O}(1)$ — proto je 2-opt v praxi tak laciný.

Slide 30 — Examples of 2-opt and 3-opt, 1:1

2-opt: just one way to construct the new Hamiltonian circuit: the gain if the improvement is $c(E(H')) - c(E(H)) = (a,d) + (b,c) - (c,d) - (a,b)$ and path $(b, \ldots, d)$ has changed orientation.

3-opt: at least two ways to construct the new Hamiltonian circuit:

Drobnost, která u písemky dělá dobrý dojem: po 2-opt výměně se jeden z oblouků projíždí v opačném směru („path $(b,\ldots,d)$ has changed orientation“). U symetrického TSP je to jedno ($c$ nezávisí na směru), u asymetrického by se cena oblouku přepočítávala celá — proto se 2-opt v této podobě používá pro symetrické instance.

Běh 2-OPT na známé instanci

Vezmi metrickou $K_5$ z [L3.8a] (tabulka cen tam; $c(A,B){=}2$, $c(B,C){=}1$, $c(C,D){=}2$, $c(D,E){=}5$, $c(E,A){=}2$, $c(A,D){=}3$, $c(B,E){=}3$, …) a jako startovní okruh výstup double-tree algoritmu z [L3.9]: $H = A,B,C,D,E,A$ s cenou $12$ (tentýž okruh dostaneš i shortcuttingem v [L3.8a]).

Zkus sám: na okruhu $H = A,B,C,D,E,A$ existuje 5 dvojic nesousedních hran. Spočítej zisk všech pěti 2-opt výměn (vzorec výše) a najdi tu, která se vyplatí. Ceny: $c(A,C){=}3$, $c(B,D){=}2$, $c(C,E){=}4$, zbytek viz výše.

Po dvojicích odstraněných hran (vložené hrany jsou vždy ty jediné možné):

  • $\{A{,}B\},\{C{,}D\} \to \{A{,}C\},\{B{,}D\}$: $3+2-2-2 = +1$,
  • $\{A{,}B\},\{D{,}E\} \to \{A{,}D\},\{B{,}E\}$: $3+3-2-5 = \mathbf{-1}$ ✓,
  • $\{B{,}C\},\{D{,}E\} \to \{B{,}D\},\{C{,}E\}$: $2+4-1-5 = 0$ (není ostré zlepšení — algoritmus chce $c(E(H')) < c(E(H))$),
  • $\{B{,}C\},\{E{,}A\} \to \{B{,}E\},\{C{,}A\}$: $3+3-1-2 = +3$,
  • $\{C{,}D\},\{E{,}A\} \to \{C{,}E\},\{D{,}A\}$: $4+3-2-2 = +3$.

Jediná výhodná výměna: vyhodit $\{A,B\}$ a $\{D,E\}$, vložit $\{A,D\}$ a $\{B,E\}$ — nový okruh $A,D,C,B,E,A$ za $11$.

Po výměně algoritmus skočí na krok 2 a prověří novou rodinu $\mathcal{S}$ — a žádná z pěti výměn už nepomůže (zisky $+1, +1, +1, +4, +3$, propočet v T02). Algoritmus končí: $H' = A,D,C,B,E,A$ je 2-OPT lokální optimum. Na téhle malé instanci je to shodou okolností i globální optimum ($\mathrm{OPT} = 11$ enumerací, [L3.8b]) — ale to je výjimka malé instance, ne pravidlo.

3-opt a 4-opt „double bridge“ (slidy 30–31)

Pro $k = 3$ už vnitřní smyčka jednou neproběhne: po vyhození tří navzájem nesousedních hran zbydou tři oblouky a slide 30 ukazuje at least two ways, jak je pospojovat do nového okruhu (jeden bez otáčení oblouků, druhý s otočením oblouku $(c,\ldots,b)$).

A pro $k = 4$ slide 31 ukazuje slavnou rekonstrukci: One possible solution called the "double bridge" - no path has changed orientation (1:1). Čtyři oblouky se přeskládají do jiného pořadí, aniž by se kterýkoli z nich otáčel — proto je double bridge oblíbený i pro asymetrický TSP a jako „rozkopávací“ tah, který 2-opt neumí napodobit.

Heuristika, ne aproximace

Zkus sám: $k$-OPT vždy skončí (rozmysli proč!) a vrátí okruh, ze kterého žádná výměna $k$ hran nevede na levnější okruh. Je to aproximační algoritmus podle definice z [L3.1]?

Konečnost: každé přijetí ostře zmenší $c(E(H))$, a Hamiltonovských okruhů je konečně mnoho — žádný se tedy nemůže opakovat a algoritmus skončí (vlastní pozorování; slidy konečnost nerozebírají).

Aproximace? NE. Aproximační algoritmus podle [L3.1] potřebuje dokázanou worst-case záruku $c(E(H)) \le r \cdot \mathrm{OPT}$ pro všechny instance. $k$-OPT vrací jen lokální optimum — okruh neporazitelný výměnou $k$ hran — a to může být od globálního optima libovolně daleko. Slidy taky žádný faktor nedokazují a celou techniku nadepisují „Tour Improvement Heuristics“. Pro obecný (nemetrický) TSP by polynomiální algoritmus se zárukou $r$ ani existovat nemohl, pokud $P \ne NP$ [L3.6].

Nebezpečná polopravda

„2-OPT našel na naší instanci optimum, takže je to aproximační algoritmus.“ — NE. Lokální optimum ($k$ hran nepomůže vyměnit) obecně není globální optimum a žádný faktor $r$ pro $k$-OPT dokázán není: je to heuristika, stejně jako nearest neighbor [L3.1]. Záruky mají až aproximace pro metrický TSP: double-tree (faktor 2) [L3.9] a Christofides (faktor 3/2) [L3.10]. V praxi se obojí kombinuje: aproximace dodá startovní okruh se zárukou, $k$-OPT ho dál vylepšuje.

Key takeaways — L3.14
T01 Tour Improvement Heuristics — Local Search k-OPT zdroj: banka #34 = slidy 28–29 (otázky i–iii vlastní)
Assignment (EN 1:1 dle banky #34; pokyny i–iii vlastní doplněk — banka otázku neformuluje)

One of the most successful techniques for TSP instances in practice is local search. The simple idea is:

  • find any Hamiltonian circuit by some heuristic;
  • improve it by local modifications, for example delete two edges and reconstruct the circuit by some other edges.

Local search is an algorithmic principle based on two decisions:

  • which modifications are allowed;
  • when to modify the solution, e.g. allow improvements only.

Example of local search is the k-OPT algorithm for TSP.

k-OPT algorithm for TSP. Input: An instance $(K_n, c)$ of TSP, number $k \ge 2$. Output: Hamiltonian circuit $H$. 1. Let $H$ be any Hamiltonian circuit. 2. Let $\mathcal{S}$ be the family of $k$-element subsets $S$ of $E(H)$. For all $S \in \mathcal{S}$ do: for all Hamiltonian circuits $H' \ne H$ such that $E(H') \supseteq E(H) \setminus S$ do: if $c(E(H')) < c(E(H))$, then set $H := H'$ and go to step 2.

Note: $H'$ is constructed so that it is a Hamiltonian circuit as well. When $k = 2$, the inner loop creating Hamiltonian circuits $H'$ from the remaining edges of $H$ executes only once, because there is only one way to construct the new Hamiltonian circuit $H'$.

(i) Explain the two decisions that define a local search algorithm and how $k$-OPT answers them. (ii) Explain why for $k = 2$ the inner loop executes only once. (iii) Is $k$-OPT an approximation algorithm? Justify.

a) Co je v zadání?

Reprodukce a vysvětlení $k$-OPT — popsat princip local search, algoritmus a jeho vlastnosti. Typická „describe + explain“ otázka (v bance vedená jako potenciální úloha ze slidů, nízká pravděpodobnost na písemce).

b) Co k tomu budeme potřebovat?

c) Jak nad úlohou uvažovat?

(i) Najdi obě rozhodnutí přímo ve slidu 28 a u každého řekni, jak ho $k$-OPT konkretizuje. (ii) Geometrická úvaha: co zbyde z kružnice po odebrání dvou nesousedních hran a kolik je způsobů, jak čtyři konce pospojovat? (iii) Vrať se k definici aproximačního algoritmu — co přesně by se muselo dokázat a co $k$-OPT skutečně garantuje?

d) Úplné řešení

(i) Local search je dán dvěma rozhodnutími (slide 28): which modifications are allowed — u $k$-OPT je povolenou modifikací odebrání $k$-prvkové podmnožiny $S$ hran okruhu a doplnění zbytku $E(H)\setminus S$ na jiný Hamiltonovský okruh $H' \ne H$; when to modify the solution — $k$-OPT přijímá pouze ostrá zlepšení, $c(E(H')) < c(E(H))$, a po přijetí se vrací na krok 2 (okolí se počítá z nového okruhu).

(ii) Odeberu-li z kružnice dvě nesousední hrany $(a,b)$ a $(c,d)$, rozpadne se na dvě cesty se čtyřmi konci $a, b, c, d$. Nový okruh musí oba oblouky spojit dvěma hranami; možnosti jsou jen dvě — původní dvojice (dá $H' = H$, vyloučeno podmínkou $H' \ne H$) a jediná zbývající dvojice $(a,d), (b,c)$, při níž jeden oblouk změní orientaci (slide 30). Vnitřní smyčka tedy vygeneruje právě jednoho kandidáta. (Při odebrání dvou sousedních hran zbyde izolovaný vrchol + cesta a jediná rekonstrukce je $H$ samo — kandidát žádný; tento případ slide explicitně nerozepisuje.)

(iii) Ne. Aproximační algoritmus vyžaduje dokázanou worst-case záruku $c(E(H)) \le r \cdot \mathrm{OPT}$ pro všechny instance [L3.1]. $k$-OPT vrací jen lokální optimum vzhledem k výměnám $k$ hran, které může být od $\mathrm{OPT}$ libovolně daleko; slidy žádný faktor nedokazují a řadí $k$-OPT mezi tour improvement heuristics. Pro obecný TSP navíc žádný polynomiální $r$-aproximační algoritmus neexistuje, pokud $P \ne NP$ [L3.6].

T02 Run 2-OPT by hand zdroj: VLASTNÍ drill na instanci z [L3.8a] (přiznáno)
Assignment (EN; vlastní zadání — drill na ověřené instanci lekcí L3.8a–L3.10)

Consider the metric TSP instance $(K_5, c)$ with costs $c(A,B)=2$, $c(A,C)=3$, $c(A,D)=3$, $c(A,E)=2$, $c(B,C)=1$, $c(B,D)=2$, $c(B,E)=3$, $c(C,D)=2$, $c(C,E)=4$, $c(D,E)=5$. Run the 2-OPT algorithm starting from the Hamiltonian circuit $H = A,B,C,D,E,A$. (a) List all candidate 2-OPT exchanges on $H$ with their gains. (b) Perform the improving exchange and state the new circuit and its cost. (c) Show that the new circuit is 2-OPT optimal (no exchange improves it) and compare it with the global optimum.

a) Co je v zadání?

Ruční odsimulování 2-OPT: na okruhu za 12 (výstup double-tree z [L3.9]) spočítat zisky všech výměn, provést tu výhodnou a ověřit zastavení.

b) Co k tomu budeme potřebovat?

  • Tato lekce — vzorec zisku $c(a,d)+c(b,c)-c(c,d)-c(a,b)$ a pravidlo „jen ostrá zlepšení“.
  • [L3.8a] — instance (tabulka cen).
  • [L3.8b] — globální optimum $\mathrm{OPT} = 11$ (enumerací) pro porovnání v (c).

c) Jak nad úlohou uvažovat?

Okruh na 5 vrcholech má 5 hran; dvojic nesousedních hran je 5 (sousední dvojice kandidáta nedají). U každé dvojice je vložená dvojice hran určena jednoznačně — stačí 5× dosadit do vzorce zisku. Po výměně totéž zopakuj na novém okruhu.

d) Úplné řešení (vlastní)

(a) $c(E(H)) = 2+1+2+5+2 = 12$. Kandidáti (odstranit → vložit, zisk):

  • $\{A{,}B\},\{C{,}D\} \to \{A{,}C\},\{B{,}D\}$: $3+2-2-2 = +1$;
  • $\{A{,}B\},\{D{,}E\} \to \{A{,}D\},\{B{,}E\}$: $3+3-2-5 = -1$ ✓;
  • $\{B{,}C\},\{D{,}E\} \to \{B{,}D\},\{C{,}E\}$: $2+4-1-5 = 0$ (není ostré zlepšení);
  • $\{B{,}C\},\{E{,}A\} \to \{B{,}E\},\{C{,}A\}$: $3+3-1-2 = +3$;
  • $\{C{,}D\},\{E{,}A\} \to \{C{,}E\},\{D{,}A\}$: $4+3-2-2 = +3$.

(b) Provedu výměnu s ziskem $-1$: vyhodím $\{A,B\}, \{D,E\}$, vložím $\{A,D\}, \{B,E\}$; oblouk $B,C,D$ se projede pozpátku. Nový okruh $H' = A,D,C,B,E,A$ s cenou $3+2+1+3+2 = 11$.

(c) Na $H'$ znovu všech 5 kandidátů: $\{A{,}D\},\{C{,}B\} \to \{A{,}C\},\{D{,}B\}$: $3+2-3-1 = +1$; $\{A{,}D\},\{B{,}E\} \to \{A{,}B\},\{D{,}E\}$: $2+5-3-3 = +1$; $\{D{,}C\},\{B{,}E\} \to \{D{,}B\},\{C{,}E\}$: $2+4-2-3 = +1$; $\{D{,}C\},\{E{,}A\} \to \{D{,}E\},\{C{,}A\}$: $5+3-2-2 = +4$; $\{C{,}B\},\{E{,}A\} \to \{C{,}E\},\{B{,}A\}$: $4+2-1-2 = +3$. Žádný zisk není záporný → $H'$ je 2-OPT lokální optimum a algoritmus končí. Z [L3.8b] víme, že $\mathrm{OPT} = 11$ — zde se lokální optimum trefilo do globálního (malá instance; obecně to neplatí, viz box „Nebezpečná polopravda“).

← Předchozí L3.13 · Ekvivalence definic stromu [NICE]