Optimalizácia mravčou kolóniou: ako feromónová stopa nájde krátku cestu
Stigmergia, pokus s dvojitým mostom, Dorigov mravčí systém, úloha parametrov α, β a ρ a vylepšené varianty — na okruhu cez krajské mestá a na 60 mestách, v porovnaní so žíhaním.
Séria Základy AI Diel 29 z 52
- Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
- Stručná história umelej inteligencie: od Turinga po jazykové modely
- Dáta, model, tréning, inferencia: základné pojmy na jednom príklade
- Ako čítať matematický zápis: symboly, indexy, sumy a kvantifikátory
- Množiny a relácie: stavebnica, z ktorej sa skladajú definície v AI
- Funkcie a zobrazenia: prečo je každý model v AI funkcia
- Logika a dôkazy: pravidlá, podľa ktorých sa v AI uvažuje
- Grafy a stromy: štruktúra, na ktorej stojí hľadanie aj neurónové siete
- Lineárna algebra pre strojové učenie: vektory, matice a prečo AI hlavne násobí
- Derivácie, gradient a reťazové pravidlo: ako model zistí, ktorým smerom sa učiť
- Gradientný zostup: ako sa model učí
- Čo je pravdepodobnosť: od hodu kockou ku Kolmogorovovým axiómam
- Podmienená pravdepodobnosť a Bayesova veta: ako zmeniť odhad, keď sa dozviete niečo nové
- Náhodná premenná a distribučná funkcia: jedna funkcia, ktorá o rozdelení povie všetko
- Funkcia hustoty a pravdepodobnostná funkcia: prečo má spojitá premenná v bode pravdepodobnosť nula
- Stredná hodnota, rozptyl a kovariancia: kde rozdelenie leží, aké je široké a čo s čím súvisí
- Prehľad pravdepodobnostných rozdelení: Bernoulliho, binomické, Poissonovo, rovnomerné, normálne a exponenciálne
- Zákon veľkých čísel a centrálna limitná veta: prečo sa priemery správajú tak predvídateľne
- Štatistika a odhady parametrov: maximálna vierohodnosť, MAP a intervaly spoľahlivosti
- Teória informácie: entropia, krížová entropia a KL divergencia — odkiaľ sa berú stratové funkcie
- Prehľadávanie stavového priestoru: BFS, DFS, UCS a A* s animáciami
- Hry a protivník: minimax, alfa-beta orezávanie a Monte Carlo tree search
- Splňovanie obmedzujúcich podmienok: backtracking, propagácia obmedzení a AC-3 na sudoku a mape krajov
- Logika a znalostné systémy: dopredné a spätné reťazenie, rezolúcia a expertné systémy
- Plánovanie: STRIPS, svet kociek, heuristiky z relaxácie a plánovanie v AI agentoch
- Lokálne hľadanie a simulované žíhanie: obchodný cestujúci cez krajské mestá
- Genetické algoritmy: populácia, kríženie, mutácia a výber na batohu na výlet
- Evolučné stratégie a genetické programovanie: od pravidla jednej pätiny po Keplerov zákon
- Optimalizácia mravčou kolóniou: ako feromónová stopa nájde krátku cestu
- Optimalizácia rojom častíc: zotrvačnosť, vlastná skúsenosť a skúsenosť roja
- Neuroevolúcia: evolúcia váh aj tvaru neurónových sietí a algoritmus NEAT
- Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“
- Fuzzy logika a pravdepodobnosť: prečo „trochu teplo“ neznamená „pravdepodobne teplo“
- Fuzzy logika: t-normy, implikácie a pravidlá AK–TAK
- Fuzzy riadenie: Mamdani a Sugeno od ventilátora po kyvadlo na vozíku
- Fuzzy zhlukovanie: algoritmus fuzzy c-means a body medzi zhlukmi
- Neuro-fuzzy systémy (ANFIS): fuzzy pravidlá, ktoré sa učia z dát
- Markovove reťazce: prechodová matica, stacionárne rozdelenie a PageRank
- Skryté Markovove modely: Viterbiho algoritmus a nepoctivé kasíno
- Bayesovské siete: prečo je tráva mokrá a čo z toho vyplýva pre postrekovač
- Kalmanov filter: ako z nepresných meraní odhadnúť, kde auto je a ako rýchlo ide
- Druhy strojového učenia: s učiteľom, bez učiteľa, s čiastočným učiteľom a ďalšie
- Prompty, kontext a RAG: ako modelu dať správne informácie
- Variačné autoenkodéry (VAE): nové obrázky zo spojitého latentného priestoru
- Generatívne adversariálne siete (GAN): falšovateľ proti detektívovi
- Difúzne modely: ako sa z čistého šumu stane obrázok
- Markovove rozhodovacie procesy: stavy, akcie, odmeny a Bellmanove rovnice
- Q-learning a DQN: učenie hodnoty akcií od tabuľky po neurónovú sieť
- Policy gradient a PPO: učenie priamo stratégie
- Ako funguje AI agent: jazykový model v slučke s nástrojmi
- Programovanie s AI agentmi: zadanie, testy a kontrola
- Vyhodnocovanie a bezpečnosť AI systémov: ako merať a ako strážiť
Celá osnova série Hotovo: 52 z 83 tém
- Ako kolónia nájde kratšiu cestu, hoci ju žiadny mravec nepozná.
- Ako mravčí systém stavia okruhy z feromónu a vzdialeností a prečo feromón musí vyprchávať.
- Kde mravčie algoritmy zlyhávajú a ako ich vylepšené varianty a lokálne hľadanie zachraňujú.
Čo sa hodí vedieť vopred: Lokálne hľadanie a simulované žíhanie: obchodný cestujúci cez krajské mestá
Jeden mravec nemá mapu, nevie počítať a vidí sotva pár centimetrov pred seba. Kolónia napriek tomu spoľahlivo nájde najkratšiu cestu z mraveniska k potrave. Žiadny mravec ju nepozná — vznikne z toho, ako všetci spoločne značkujú terén. Začiatkom deväťdesiatych rokov si Marco Dorigo z milánskej polytechniky všimol, že ten istý trik sa dá použiť na problém obchodného cestujúceho. Tak vznikla optimalizácia mravčou kolóniou a s ňou celý odbor inteligencie roja.
Nadväzuje na diel Lokálne hľadanie a simulované žíhanie. Riešime tú istú úlohu — okruh cez krajské mestá s optimom 1 060,4 km —, takže uvidíme, ako si mravce vedú proti žíhaniu.
1. Komunikácia stopou
Definícia — stigmergia
Nech skupina jedincov (napr. mravcov jednej kolónie) zdieľa spoločné prostredie, ktorého stav sa môže meniť. Stigmergia je spôsob koordinácie týchto jedincov, pri ktorom platia všetky tri podmienky:
- jedinec svojou činnosťou zmení stav prostredia — zanechá v ňom stopu (napr. feromón);
- zmenený stav prostredia ovplyvní, čo neskôr urobia ostatní jedinci alebo on sám;
- jedinci si informáciu neodovzdávajú priamo (signálom od jedinca k jedincovi), ale len prostredníctvom stavu prostredia.
Stigmergia je teda nepriama komunikácia cez prostredie. Pojem zaviedol Pierre-Paul Grassé v roku 1959 pri štúdiu stavby termitísk.
Mravce si nič nehovoria, nechávajú si odkazy na zemi. Kadiaľ idú, tam kladú feromón — pachovú stopu, ktorá časom vyprchá. Mravec na rázcestí ide s väčšou pravdepodobnosťou tam, kde stopa vonia silnejšie. Ako vyšliapaný chodníček v tráve: čím viac ľudí po ňom ide, tým je zreteľnejší a tým viac ďalších po ňom pôjde.
2. Pokus s dvojitým mostom
V roku 1989 postavili Goss, Deneubourg a ich kolegovia argentínskym mravcom medzi mravenisko a potravu dva mosty — jeden dvakrát dlhší ako druhý. Po chvíli chodila väčšina kolónie po kratšom. Prečo? Mravec, ktorý zvolil krátku vetvu, dorazí k potrave skôr, a keď sa vracia, pri potrave je krátka vetva už označená. Krátka cesta sa značí rýchlejšie a začne vyhrávať.
Definícia — model voľby vetvy (Deneubourg a kol.)
Nech medzi mraveniskom a potravou vedú dve vetvy, krátka a dlhá. Nech A ≥ 0 a B ≥ 0 sú množstvá feromónu na začiatku krátkej a dlhej vetvy v okamihu, keď mravec prichádza k rázcestiu, a nech k > 0 a h > 0 sú parametre modelu. Mravec zvolí krátku vetvu s pravdepodobnosťou
P(A, B) = (k + A)h/(k + A)h + (k + B)h
a dlhú vetvu s pravdepodobnosťou 1 − P(A, B). Mravec položí jednotku feromónu na začiatok zvolenej vetvy a ďalšiu na jej koniec, keď tam dorazí.
Parameter k teda určuje, ako silno mravec reaguje na slabú stopu (čím väčšie k, tým menej), a h > 1 zosilňuje rozdiely medzi vetvami; pri A = B je P = 1/2.
Kým je feromónu málo (menej ako k), volia mravce takmer náhodne. Ako ho pribúda, rozhoduje čoraz viac. Exponent h = 2 spôsobí, že dvojnásobok feromónu znamená štvornásobnú príťažlivosť — malá výhoda sa rýchlo nafúkne na jasnú prevahu.
P = (k + A)h/(k + A)h + (k + B)h
- P
- pravdepodobnosť, že ďalší mravec pôjde krátkou vetvou — mravec sa nerozhoduje isto, len s váhou; dlhá vetva dostane zvyšok 1 − P
- A
- feromón na krátkej vetve — to jediné, čo mravec o ceste „vie“; čím viac ho tam je, tým viac to krátku vetvu ťahá
- B
- feromón na dlhej vetve — v menovateli súperí s krátkou, takže rozhoduje pomer stôp, nie ich absolútne množstvo
- k
- „prah pozornosti“ — pripočíta sa k obom vetvám rovnako, takže pár prvých molekúl feromónu pomer takmer nezmení; bez neho by o celej kolónii rozhodol prvý mravec
- h
- zosilňovač — mocnina väčšia ako 1 zveličí rozdiel; práve ona robí z malej náhodnej výhody kladnú spätnú väzbu
Príklad — ako rozhoduje k = 30 a h = 2
Na krátkej vetve je A = 20, na dlhej B = 10 jednotiek feromónu:
P = (30 + 20)2/(30 + 20)2 + (30 + 10)2 = 2 500/2 500 + 1 600 = 2 500/4 100 ≈ 0,610
(Farby podľa vzorca vyššie.)
- Rovnaké stopy (A = B, napríklad obe nulové): P = 0,500 — čistá náhoda.
- Päť jednotiek proti nule: P = (30 + 5)2/(30 + 5)2 + (30 + 0)2 = 352/352 + 302 ≈ 0,576 — malá stopa takmer nerozhoduje, to je práca k.
- A = 60, B = 10: P = 8 100/8 100 + 1 600 ≈ 0,835 — už jasná prevaha.
- Bez zosilnenia (h = 1) by pri A = 20, B = 10 vyšlo len 50/90 ≈ 0,556 namiesto 0,610.
Simulácia modelu (k = 30, h = 2, desať mravcov za krok, krátka vetva 5 krokov, dlhá 10) ukazuje podiel feromónu na krátkej vetve pri ôsmich kolóniách:
Sedem kolónií sa ustálilo na krátkej vetve, jedna na dlhej: niekoľko prvých mravcov náhodou zvolilo dlhú vetvu a kladná spätná väzba ju „zamkla“. Zo sto kolónií skončilo 85 na krátkej vetve a 9 na dlhej. Keď sú obe vetvy rovnako dlhé, rozdelia sa kolónie zhruba napoly (46 a 42) — symetriu rozbije náhoda. Dĺžka cesty teda výsledok posúva, ale nezaručuje. Rovnakú slabinu uvidíme pri algoritme.
3. Mravčí systém
Dorigov mravčí systém (Ant System, 1992) posiela virtuálne mravce po grafe miest. Každý postaví celý okruh a podľa toho, aký je krátky, položí feromón na jeho hrany.
Definícia — okruh a jeho dĺžka
Nech n ∈ ℕ, n ≥ 3, je počet miest, mestá označíme číslami 1, …, n, a nech pre všetky i, j ∈ {1, …, n}, i ≠ j, je daná vzdialenosť dij ∈ ℝ taká, že dij = dji > 0.
- Okruh je usporiadaná n-tica π = (π1, …, πn), v ktorej je každé mesto práve raz, t. j. {π1, …, πn} = {1, …, n} (π je permutácia miest). Kvôli kratšiemu zápisu kladieme πn+1 = π1.
- Dĺžka okruhu π je číslo L(π) = ∑k=1n dπkπk+1 = dπ1π2 + dπ2π3 + … + dπnπ1; posledný člen vracia cestovateľa domov.
- Hrana (i, j) patrí do okruhu π práve vtedy, keď existuje k ∈ {1, …, n} také, že {πk, πk+1} = {i, j}.
- Problém obchodného cestujúceho je úloha nájsť okruh π* taký, že L(π*) ≤ L(π) pre každý okruh π.
Okruh teda prejde každé mesto práve raz a vráti sa do východiskového; hrana doň patrí práve vtedy, keď v ňom idú jej dve mestá hneď po sebe.
Definícia — pravidlo prechodu
Nech sú dané mestá 1, …, n so vzdialenosťami dij > 0 (pozri definíciu okruhu vyššie), na každej hrane (i, j) feromón τij > 0 a parametre α ≥ 0, β ≥ 0. Viditeľnosť hrany (i, j) je číslo
ηij = 1/dij.
Nech mravec stojí v meste i a Ni ⊆ {1, …, n} je neprázdna množina miest, ktoré na svojom okruhu doteraz nenavštívil. Mravec prejde do mesta j s pravdepodobnosťou
pij = τijα · ηijβ/∑l ∈ Ni τilα · ηilβ pre j ∈ Ni, pij = 0 pre j ∉ Ni.
Mravec teda volí len medzi nenavštívenými mestami, a to s váhou úmernou súčinu stopy τijα a viditeľnosti ηijβ (blízke mestá sú lákavejšie); parametre α a β vážia stopu proti vzdialenosti. Pravdepodobnosti pij cez j ∈ Ni majú súčet 1.
Mravec sa rozhoduje podľa dvoch vecí: koľko kamarátov tadiaľ chodilo (feromón) a ako je to ďaleko (viditeľnosť). Nikdy nevolí isto — len zvýhodní niektoré možnosti. Vďaka tomu každý mravec postaví trochu iný okruh.
pij = τijα · ηijβ/∑l ∈ Ni τilα · ηilβ
- pij
- pravdepodobnosť kroku z i do j — losujeme, nevyberáme najlepšie, aby kolónia stále skúšala aj iné okruhy
- τijα
- pamäť kolónie — feromón nesie skúsenosť predchádzajúcich mravcov; exponent α hovorí, ako veľmi jej veriť (α = 0 ju úplne vypne)
- ηijβ
- chamtivosť — η = 1/d zvýhodní blízke mestá; je to rada, ktorú máme zadarmo hneď od prvej iterácie, keď feromón ešte nič nevie
- ∑ … cez Ni
- súčet váh všetkých doteraz nenavštívených miest — delením sa z váh stanú pravdepodobnosti so súčtom 1; navštívené mestá v ňom nie sú, takže sa do nich mravec nevráti
Príklad — jedno rozhodnutie mravca
Mravec stojí v meste i a zostávajú mu tri mestá: vo vzdialenosti 50, 100 a 150 km, s feromónom τ = 1, 3 a 2. Konštanta vo viditeľnosti sa v zlomku vykráti, počítajme preto s η = 100/d, teda 2, 1 a 2/3. S α = 1 a β = 3 (farby podľa vzorca vyššie):
- váhy τα · ηβ: 1 · 23 = 8,000, 3 · 13 = 3,000, 2 · (2/3)3 ≈ 0,593;
- ich súčet 11,593;
- pravdepodobnosti p = 8,000/11,593 ≈ 0,690, 3,000/11,593 ≈ 0,259 a 0,593/11,593 ≈ 0,051.
Najbližšie mesto vyhráva, hoci má najmenej feromónu. S β = 1 by vyšlo 0,316, 0,474 a 0,211 — vedie feromón. A s β = 0 rozhoduje len stopa: 0,167, 0,500 a 0,333 (podiely 1 : 3 : 2).
Definícia — aktualizácia feromónu
Nech ρ ∈ (0, 1) je rýchlosť vyprchania a Q > 0 konštanta. Nech v jednej iterácii postavilo M ≥ 1 mravcov okruhy π(1), …, π(M) (okruh m je π(m)) s dĺžkami Lm = L(π(m)), m = 1, …, M. Po iterácii sa feromón na každej hrane (i, j) nahradí hodnotou
τij ← (1 − ρ) · τij + ∑m : (i, j) ∈ okruh m Q/Lm,
kde sa sčítava cez všetky m ∈ {1, …, M}, pre ktoré hrana (i, j) patrí do okruhu π(m) (prázdny súčet je 0). Feromón teda všade vyprchá o podiel ρ a každý mravec m pridá na hrany svojho okruhu množstvo Q/Lm, nepriamo úmerné dĺžke okruhu.
Krátke okruhy zanechajú silnejšiu stopu, takže hrany, ktoré sa v nich často opakujú, postupne zosilnejú. Vyprchanie je zabúdanie: stopa, ktorú nikto neobnovuje, zmizne. Bez neho by sa kolónia navždy držala toho, čo objavila v prvých iteráciách.
τij ← (1 − ρ) · τij + ∑m : (i, j) ∈ okruh m Q/Lm
- τij vľavo
- nový feromón na hrane — to, podľa čoho sa budú rozhodovať mravce budúcej iterácie
- (1 − ρ)
- vyprchanie — každá iterácia z každej stopy uberie rovnaký podiel ρ; stará skúsenosť tak slabne geometricky a kolónia sa môže preučiť
- τij vpravo
- doterajší feromón — pamäť sa len opravuje, nezačína sa od nuly
- ∑m
- súčet cez mravce, ktoré hranou prešli — každý mravec pridáva len na hrany svojho okruhu; hrana, ktorú použije viac mravcov, dostane viac — tu sa sčítava „hlasovanie“ kolónie
- Q/Lm
- odmena nepriamo úmerná dĺžke okruhu — kratší okruh = silnejšia stopa; konštanta Q len nastavuje mierku
Príklad — jedna aktualizácia
Hrana má τ = 1, ρ = 0,3, Q = 1 000 a prešli ňou dva mravce s okruhmi dlhými 1 100 a 1 300 km (farby podľa vzorca vyššie):
τ ← 0,7 · 1 + 1 000/1 100 + 1 000/1 300 ≈ 0,700 + 0,909 + 0,769 = 2,378
Hrana, ktorou neprešiel nikto, má po tej istej iterácii len 0,7. Mravec s kratším okruhom pridal viac (0,909 proti 0,769).
import random
def postav_okruh(start, n, tau, d, alfa=1, beta=3):
okruh, volna = [start], set(range(n)) - {start}
while volna:
i = okruh[-1]
kandidati = list(volna)
vahy = [tau[i][j] ** alfa * (1 / d[i][j]) ** beta for j in kandidati]
j = random.choices(kandidati, weights=vahy)[0]
okruh.append(j)
volna.remove(j)
return okruh
def aktualizuj(tau, okruhy, delka, rho=0.3, Q=1.0):
for radek in tau:
for j in range(len(radek)):
radek[j] *= 1 - rho # vyprchanie
for okruh in okruhy:
L = delka(okruh)
for a, b in zip(okruh, okruh[1:] + okruh[:1]):
tau[a][b] += Q / L # kratší okruh, silnejšia stopa
tau[b][a] += Q / L
Celý mravčí systém potom len strieda stavbu okruhov a aktualizáciu a pamätá si najlepší okruh, aký kedy niekto postavil:
def mravenci_system(n, d, mravencu, iteraci, tau0):
tau = [[tau0] * n for _ in range(n)] # na začiatku všade rovnako
nejlepsi = None
for it in range(iteraci):
okruhy = [postav_okruh(m % n, n, tau, d) for m in range(mravencu)]
aktualizuj(tau, okruhy, delka) # vyprchanie + nová stopa
kandidat = min(okruhy, key=delka)
if nejlepsi is None or delka(kandidat) < delka(nejlepsi):
nejlepsi = kandidat
return nejlepsi
4. Mravce na krajských mestách
Pustime 13 mravcov (z každého mesta jedného) na 100 iterácií s α = 1, β = 3 a ρ = 0,3. Mapa ukazuje feromón na hranách po 1., 5., 20. a 100. iterácii — čím silnejšia čiara, tým viac feromónu:
V prvej iterácii je stopa rozprestretá takmer všade a najlepší okruh meria 1 292,6 km. Už v piatej iterácii nájde jeden z mravcov optimum 1 060,4 km. Feromón sa potom sústredí na hrany dobrých okruhov — slabé čiary miznú, silné zostávajú — a priemerný mravec postaví okruh dlhý zhruba 1 250 km. Kolónia nekonverguje úplne, stále trochu skúša.
Trasovanie behu po iteráciách — najlepší okruh nájdený doteraz a priemerný okruh trinástich mravcov v danej iterácii:
| Iterácia | Najlepší doteraz | Priemer iterácie |
|---|---|---|
| 1 | 1 292,6 km | 1 477,7 km |
| 2 | 1 208,6 km | 1 424,0 km |
| 3 | 1 208,6 km | 1 450,0 km |
| 4 | 1 097,7 km | 1 376,7 km |
| 5 | 1 060,4 km | 1 330,2 km |
| 10 | 1 060,4 km | 1 267,7 km |
| 100 | 1 060,4 km | 1 247,2 km |
Najlepší okruh sa zlepšuje skokom (tretia iterácia nepriniesla nič nové, štvrtá ubrala 111 km), priemer klesá pomalšie a nerovnomerne: mravce losujú, takže aj v dobrej iterácii niektoré postavia slabé okruhy. Rozdiel medzi priemerom a najlepším je presne ten prieskum, ktorý kolónii bráni úplne zamrznúť.
Nie vždy to dopadne tak dobre. Z dvadsiatich behov s rôznymi semienkami našlo optimum len 7, priemer bol 1 073,9 km a najhorší výsledok 1 083,0 km. Žíhanie bolo na tej istej úlohe s 98 zo 100 spoľahlivejšie. Pre predstavu: hladný „najbližší sused“, ktorý ide vždy do najbližšieho nenavštíveného mesta, dá podľa štartu 1 120 až 1 336 km. Mravce sú výrazne lepšie, ale základný mravčí systém sám osebe nie je šampión — preto vznikli jeho vylepšené varianty.
5. Na čo sú α, β a ρ
Na trinástich mestách sa dá veľa vyriešiť aj bez feromónu. Rozdiel ukáže až väčšia úloha — tých istých 60 náhodných miest ako v diele o žíhaní, 30 mravcov, 150 iterácií, priemer z troch behov:
| Nastavenie | Priemerná dĺžka | Najlepší z troch |
|---|---|---|
| α = 1, β = 3, ρ = 0,3 | 2 262,7 km | 2 194,0 km |
| α = 0 (bez feromónu) | 3 049,8 km | 3 037,9 km |
| β = 0 (bez vzdialeností) | 8 648,5 km | 8 422,4 km |
| ρ = 0,02 (feromón takmer nevyprchá) | 2 374,5 km | 2 370,4 km |
| ρ = 0,9 (feromón takmer hneď vyprchá) | 2 274,1 km | 2 242,4 km |
- Bez feromónu (α = 0) sú mravce len náhodní hladní cestovatelia a nič sa nenaučia — okruhy o tretinu dlhšie.
- Bez vzdialeností (β = 0) nemá kolónia od čoho sa odraziť: prvé okruhy sú úplne náhodné a feromón z nich vedie k ďalším náhodným.
- Pomalé vyprchanie drží stopy z prvých, zlých okruhov príliš dlho a kolónia sa učí pomaly. Rýchle vyprchanie naopak zabúda aj to dobré.
Ako dlho si kolónia pamätá, sa dá vypočítať presne. Stačí sledovať jednu hranu.
Veta — ustálený feromón a polčas vyprchania
Nech ρ ∈ (0, 1), Δ ≥ 0 a τ0 ∈ ℝ. Nech postupnosť (τt)t = 0, 1, 2, … (feromón jednej hrany po t iteráciách, ktorá v každej iterácii dostane rovnaký prírastok Δ) spĺňa pre každé t ≥ 0
τt+1 = (1 − ρ) τt + Δ.
Potom
- pre každé t ≥ 0 platí τt = Δ/ρ + (1 − ρ)t (τ0 − Δ/ρ),
- limt → ∞ τt = Δ/ρ,
- ak Δ = 0 a τ0 > 0, je τt = (1 − ρ)t τ0 a pre reálne t ≥ 0 platí (1 − ρ)t τ0 = τ0/2 práve vtedy, keď t = t½, kde t½ = ln 2/−ln(1 − ρ) je polčas vyprchania (vo všeobecnosti nie je celé číslo).
Dôkaz. Označme et = τt − Δ/ρ odchýlku od Δ/ρ. Keďže (1 − ρ) · Δ/ρ + Δ = Δ/ρ, dostaneme odčítaním Δ/ρ od oboch strán rekurencie et+1 = (1 − ρ) et, a indukciou et = (1 − ρ)t e0; to je bod 1. Keďže 1 − ρ ∈ (0, 1), je (1 − ρ)t → 0, a teda et → 0; to je bod 2. Pre Δ = 0 je τt = (1 − ρ)t τ0, takže τt = τ0/2 práve vtedy, keď (1 − ρ)t = 1/2, t. j. t · ln(1 − ρ) = −ln 2; keďže ln(1 − ρ) < 0, je jediným riešením t = ln 2/−ln(1 − ρ). ∎
τ* = Δ/ρ
- τ*
- hladina, na ktorej sa feromón hrany ustáli — pridávanie a vyprchanie sú v rovnováhe
- Δ
- koľko hrana dostáva za iteráciu — hrany z častých a krátkych okruhov majú Δ veľké, a preto aj vysokú hladinu
- ρ
- v menovateli: pomalé vyprchanie nechá stopy narásť vysoko a rozdiely medzi hranami sa vyrovnávajú dlho; rýchle ich drží nízko a závislé len od posledných pár iterácií
Dve hrany s τ0 = 1 a ρ = 0,3: jedna dostáva v každej iterácii Δ = 1, druhú nikto nepoužíva.
| t | 0 | 1 | 2 | 3 | 5 | 10 |
|---|---|---|---|---|---|---|
| Δ = 1 | 1,00 | 1,70 | 2,19 | 2,53 | 2,94 | 3,27 |
| Δ = 0 | 1,00 | 0,70 | 0,49 | 0,34 | 0,17 | 0,03 |
Používaná hrana sa blíži k τ* = 1/0,3 ≈ 3,33 (farby podľa vzorca vyššie), nepoužívaná za desať iterácií spadne pod tri stotiny. Polčas vyprchania pre riadky tabuľky vyššie: s ρ = 0,3 je 1,94 iterácie, s ρ = 0,02 celých 34,31 iterácie — stopy z prvých náhodných okruhov teda vládnu ešte desiatky iterácií — a s ρ = 0,9 len 0,30 iterácie, takže kolónia si pamätá prakticky len posledné kolo.
Najlepšie nastavenie dalo 2 194 až 2 314 km — porovnateľne so žíhaním z minulého dielu, ktoré na tých istých mestách skončilo medzi 2 210 a 2 270 km.
6. Lepšie mravce
- Elitná stratégia pridáva feromón navyše na doteraz najlepší okruh, aby sa nestratil.
- MAX–MIN Ant System (Stützle a Hoos, 2000) dovolí klásť feromón len najlepšiemu mravcovi a drží τ medzi dolnou a hornou hranicou. Dolná hranica zaručí, že žiadna hrana úplne nezmizne, a kolónia tak predčasne nezamrzne — ako tá, ktorá v pokuse s mostom skončila na dlhej vetve.
- Ant Colony System (Dorigo a Gambardella, 1997) s pravdepodobnosťou volí rovno najlepšiu hranu a feromón uberá už počas stavby okruhu, aby ostatné mravce skúšali inde.
- Lokálne hľadanie. V praxi sa každý okruh postavený mravcom ešte doladí ťahmi 2-opt z dielu o žíhaní. Mravce nájdu dobrú oblasť, horolezec ju doladí — táto kombinácia patrila v deväťdesiatych rokoch k najlepším metódam na obchodného cestujúceho.
Definícia — elitná stratégia a MAX–MIN Ant System
Nech ρ ∈ (0, 1) a Q > 0 sú ako v aktualizácii feromónu mravčieho systému a nech πbest je najlepší okruh nájdený od začiatku behu, s dĺžkou Lbest = L(πbest).
- Elitná stratégia s parametrom e ∈ ℕ (počet „elitných mravcov“) vykoná bežnú aktualizáciu mravčieho systému a potom na každú hranu (i, j), ktorá patrí do okruhu πbest, pridá ešte e · Q/Lbest; ostatných hrán sa tento krok netýka.
- MAX–MIN Ant System s hranicami 0 < τmin < τmax kladie feromón len podľa jedného najlepšieho okruhu πbest (podľa varianty najlepšieho v danej iterácii alebo najlepšieho od začiatku behu) a výsledok oreže do intervalu [τmin, τmax]: pre každú hranu (i, j) τij ← min(τmax, max(τmin, (1 − ρ) τij + Δij)), kde Δij = 1/Lbest, ak (i, j) patrí do πbest, a Δij = 0 inak.
Elitná stratégia teda doteraz najlepší okruh posilňuje navyše, MAX–MIN Ant System naopak dovolí posilňovať len jeho a žiadnej hrane nedovolí klesnúť pod τmin ani vystúpiť nad τmax.
Hornú hranicu Stützle a Hoos volia τmax = 1/ρ Lbest — presne ustálená hodnota Δ/ρ z vety vyššie pre hranu, ktorá leží v najlepšom okruhu zakaždým. Dolná hranica je malý zlomok hornej; feromón sa navyše na začiatku nastaví na τmax, aby prvé iterácie skúmali čo najširšie.
Definícia — pravidlá Ant Colony System
Nech sú dané mestá, vzdialenosti, feromón τij > 0 a viditeľnosť ηij = 1/dij ako v pravidle prechodu vyššie, a parametre q0 ∈ [0, 1], β ≥ 0, ρ ∈ (0, 1), ξ ∈ (0, 1) a počiatočná hodnota feromónu τ0 > 0. Ant Colony System sa od mravčieho systému líši tromi pravidlami:
- Pseudonáhodné proporcionálne pravidlo. Mravec v meste i s neprázdnou množinou nenavštívených miest Ni vylosuje q rovnomerne z [0, 1), nezávisle od predchádzajúcich losovaní. Ak je q ≤ q0, prejde do mesta j = arg maxl ∈ Ni τil · ηilβ; ak je q > q0, zvolí j ∈ Ni losom podľa pravidla prechodu mravčieho systému s α = 1.
- Lokálna aktualizácia. Hneď potom, ako mravec prejde po hrane (i, j), sa τij ← (1 − ξ) τij + ξ τ0.
- Globálna aktualizácia. Nech πbest je najlepší doteraz nájdený okruh a Lbest jeho dĺžka. Po každej iterácii sa len pre hrany (i, j) patriace do πbest vykoná τij ← (1 − ρ) τij + ρ/Lbest; feromón ostatných hrán sa nemení.
S pravdepodobnosťou q0 teda mravec berie rovno najlepšiu hranu; použitá hrana podľa pravidla 2 trochu zoslabne smerom k počiatočnej hodnote τ0, takže ďalšie mravce skúšajú inde, a vyprchanie aj posilnenie sa týka len najlepšieho okruhu.
Dorigo a Gambardella (1997) v pôvodnom článku používajú q0 = 0,9, β = 2 a ρ = ξ = 0,1 — v deviatich krokoch z desiatich teda mravec berie najlepšiu hranu a len v desiatom skúša.
7. Kde mravce pracujú
- Smerovanie v sieťach. Algoritmus AntNet (Di Caro a Dorigo, 1998) posiela sieťou malé pakety-mravce, ktoré merajú oneskorenie a aktualizujú smerovacie tabuľky. Sieť sa tak priebežne prispôsobuje zahlteniu.
- Trasy vozidiel a rozvrhy. Rozvoz tovaru, zvoz odpadu alebo poradie zákaziek vo výrobe — úlohy príbuzné obchodnému cestujúcemu, kde sa mravčie algoritmy používajú spolu s lokálnym hľadaním.
- Inteligencia roja. Mravčia kolónia je jeden z príkladov, ako z jednoduchých jedincov a miestnych pravidiel vznikne múdre správanie celku. Ďalší, roj častíc, je námetom budúceho dielu.
8. Zhrnutie
- Mravce komunikujú stopou v prostredí (stigmergia): kratšia cesta sa značí rýchlejšie a kladná spätná väzba ju zosilní.
- V modeli dvojitého mosta sa 85 zo 100 kolónií ustáli na krátkej vetve — náhoda však môže zamknúť aj tú dlhú.
- Mravčí systém volí ďalšie mesto podľa feromónu τα a vzdialenosti ηβ; feromón vyprcháva rýchlosťou ρ a krátke okruhy ho pridávajú viac.
- Na krajských mestách našiel optimum, ale len v 7 z 20 behov; na 60 mestách dopadol porovnateľne so žíhaním. Bez feromónu aj bez vzdialeností výrazne horšie.
- Prakticky používané varianty (MAX–MIN, ACS) bránia predčasnému zamrznutiu a kombinujú mravce s lokálnym hľadaním.
Chcete si to vyskúšať? Nechajte AI agenta napísať simuláciu dvojitého mosta a skúste, čo sa stane, keď krátku vetvu v polovici pokusu „zatvoríte“ — dokáže kolónia prejsť späť na dlhú?
Máte na to iný názor? Napíšte na support@coden-app.com.