Vaatame, kuidas **wreath product** ja **tasapinnaline isoleeritud kohalike teede võrk** võiksid olla seotud.

---

## 🛣️ Kohalike teede võrk kui automaat

Kujutame ette, et meil on:

- **Tasapinnaline graaf**, kus **sõlmed** on ristmikud ja **servad** on teelõigud.
- Iga **ristmik** võib olla varustatud **liiklusreeglitega** või **liiklusmärgiga**, mis määrab, kuidas sealt edasi saab liikuda.
- Võrk on **isoleeritud**, st ei ole ühendust suuremate teedega — ainult lokaalne liikumine.

---

## 🤖 Seos automaatidega

Seda saab modelleerida kui **automaati**, kus:

- **Olekuid** esindavad asukohad (ristmikud),
- **Sümbolid** on liikumissuunad või teeolud (nt "pööra vasakule", "mine otse"),
- **Üleminekud** sõltuvad nii **kohalikust reeglistikust** kui ka **globaalsest kontrollist** (nt liikluskorraldaja või autonoomne sõiduk).

---

## 🔗 Seos wreath product'iga

Siin tuleb mängu **wreath product**:

- **Alumine automaat** (nt $A$) esindab **kohalikku liiklusloogikat** igas sõlmes (nt kas võib pöörata, kas tee on avatud).
- **Ülemine automaat** (nt $B$) esindab **globaalseid strateegiaid** või **sõiduki otsustusloogikat**, mis valib, millist kohalikku reeglit rakendada.

Wreath product võimaldab:

- Modelleerida **hierarhilist juhtimist**: globaalne strateegia + lokaalsed reeglid,
- Simuleerida **liiklusvoogu** või **autonoomse sõiduki liikumist** läbi keeruka lokaalse võrgu.

---

## 🎯 Näide

- Kujutame ette, et igal ristmikul on valgusfoor (olekud: roheline, punane).
- Sõiduk liigub vastavalt valgusfoori olekule, aga tema **liikumisstrateegia** (nt "väldi vasakpöördeid") tuleb **ülemisest automaadist**.
- See on täpselt **wreath product**: funktsioonid (valgusfoorid) + kontroll (sõiduki strateegia).

---

Kui soovid, võin:

- **Visualiseerida sellise teedevõrgu** koos automaatidega,
- Või **simuleerida liikumist** läbi sellise võrgu.

Kas soovid skeemi või simulatsiooni?

Siin on visualiseeritud **tasapinnaline isoleeritud kohalike teede võrk**, kus iga ristmik (sõlm) sisaldab:

- **Kohalikke liiklusreegleid** (millistesse suundadesse võib liikuda),
- **Juhtautomaatika olekut** (nt valgusfoori seisund: roheline või punane).

![Tasapinnaline teedevõrk koos kohalike reeglite ja juhtautomaatikaga](data:image/png;base64,[encoded data, 93976 characters])

---

### 🧭 Selgitus:

- **Sõlmed (A–E)**: Ristmikud.
- **Servad**: Teelõigud, kuhu liikumine on lubatud.
- **Roheline tekst**: Kohalikud reeglid — millistesse suundadesse on liikumine lubatud.
- **Punane tekst**: Juhtautomaatika seisund — nt kas ristmik on avatud (`Green`) või suletud (`Red`).

---

### 🧠 Seos wreath product'iga:

- **Kohalikud reeglid** on nagu **funktsioonid** igas sõlmes (alumine automaat).
- **Juhtolekud** (Green/Red) on nagu **kontrollautomaat**, mis määrab, kas funktsioon on aktiivne või mitte.

See võimaldab modelleerida näiteks:

- **Autonoomse sõiduki liikumist**, mis peab arvestama nii kohalike reeglite kui ka globaalsete strateegiatega.
- **Liiklusvoo simulatsioone**, kus juhtautomaat muudab dünaamiliselt ristmike käitumist.

---

Kas soovid nüüd simuleerida liikumist läbi selle võrgu mingi konkreetse strateegia või sisendi alusel?

Siin on simulatsioon liikumisest läbi kohaliku teedevõrgu, alustades sõlmest **A** ja järgides ainult neid teid, kus:

- **Liikumissuund on lubatud** (graafi serv olemas),
- **Ristmiku juhtolek on "Green"** (st liiklus on lubatud).

![Simuleeritud liikumine kohaliku teedevõrgu kaudu](data:image/png;base64,[encoded data, 29828 characters])

---

### 🧭 Liikumise käik:

- **Start**: A (Green) → B (Green) →
- **C** on **Red**, seega liikumine peatub siin.

---

### 🧠 Tõlgendus:

See simulatsioon näitab, kuidas **kohalikud reeglid + juhtautomaatika** mõjutavad liikumist. Kui juhtolek oleks C-s "Green", saaks liikumine jätkuda kuni E-ni.

---

Kas soovid:

- Muuta **kontrollolekuid** ja vaadata, kuidas liikumine muutub?
- Või lisada **alternatiivseid marsruute** ja simuleerida erinevaid strateegiaid (nt lühim tee, vältida punaseid)?

Siin on uuendatud simulatsioon, kus **kõik ristmikud on nüüd rohelises olekus** ("Green"):

![Simuleeritud liikumine kui kõik ristmikud on rohelised](data:image/png;base64,[encoded data, 41516 characters])

---

### 🧭 Liikumise tulemus:

- Liikumine algab **A-st** ja liigub sujuvalt läbi **B → C → D → E**,
- Kuna kõik ristmikud on rohelised, ei teki liikumisel takistusi.

---

### 🧠 Järeldus:

See näitab, kuidas **juhtautomaatika seisundid** mõjutavad liikumise võimalikkust. Kui kõik sõlmed on "Green", saab liikumine toimuda maksimaalselt efektiivselt.

Kas soovid nüüd:

- Lisada **dünaamilisi juhtolekute muutusi ajas**?
- Või simuleerida **alternatiivseid marsruute** või **liiklusvoogu mitme sõidukiga**?

Siin on visualiseeritud **lühim tee** sõlmest **A** sõlme **E** kohaliku teedevõrgu sees, eeldades et kõik ristmikud on rohelised ja kõik teed on lubatud:

![Lühim tee A-st E-ni](data:image/png;base64,[encoded data, 37292 characters])

---

### 🧭 Tee:

- **A → B → C → D → E**

See on järjestikune tee läbi kõik sõlmed, kuna graafis ei olnud lühemaid otseteid (nt A → E otse).

---

Kui soovid:

- Lisada **kaalud** teedele (nt kaugus, aeg),
- Või simuleerida **alternatiivseid marsruute** või **mitme sõiduki liikumist**,

… siis saan seda ka teha! Kas soovid edasi uurida?

Siin on visualiseeritud **kaalutud teedevõrk** ja **lühim tee A-st E-ni**, kasutades **Dijkstra algoritmi**:

![Lühim tee kaalutud graafis A-st E-ni](data:image/png;base64,[encoded data, 64496 characters])

---

### 📏 Kaalud (teekonnad):

- Näiteks:
    - A → B = 2
    - B → D = 2
    - D → E = 4

---

### 🧭 Lühim tee A → E:

- **A → B → D → E**
- Kogukaal: **2 + 2 + 4 = 8**

See tee on lühem kui näiteks A → C → D → E (5 + 1 + 4 = 10) või A → B → C → D → E (2 + 3 + 1 + 4 = 10).

---

Kas soovid nüüd:

- Simuleerida **liikumist selle tee järgi**?
- Või lisada **dünaamilisi muutusi** (nt ummikud, punased tuled)?

Siin on visualiseeritud **dünaamiline muutus** teedevõrgus, kus tee **B → D** on ajutiselt suletud:

![Uus lühim tee pärast tee sulgemist](data:image/png;base64,[encoded data, 52600 characters])

---

### 🛣️ Muudatused:

- **Algne lühim tee**: A → B → D → E (kogukaal 8)
- **Pärast sulgemist**: B → D on suletud (punane katkendjoon)

---

### 🧭 Uus lühim tee:

- **A → B → C → D → E**
- Kogukaal: **2 + 3 + 1 + 4 = 10**

---

See näitab, kuidas **dünaamilised muutused** (nt tee sulgemised) mõjutavad optimaalseid marsruute. Soovi korral võin lisada:

- **Ajutisi ummikuid** (kaalude suurenemine),
- Või **aeg-ajalt avanevaid/sulguvaid teid** (nt simulatsioon ajas).

Kas soovid edasi uurida?

Siin on simulatsioon, mis näitab, kuidas **teede avamine ja sulgemine ajas** mõjutab lühimat teed punktist **A** punktini **E**:

![Dünaamiline teedevõrk ajas](data:image/png;base64,[encoded data, 94104 characters])

---

### 🕒 Ajahetkede kirjeldus:

- **Ajahetk 0**: Kõik teed on avatud → lühim tee: **A → B → D → E**
- **Ajahetk 1**: Sama tee on veel avatud → lühim tee jääb samaks.
- **Ajahetk 2**: Tee **B → D** on suletud → uus tee: **A → B → C → D → E**
- **Ajahetk 3**: Tee **B → C** on suletud → uus tee: **A → C → D → E**

---

### 🧠 Järeldus:

See simulatsioon näitab, kuidas **dünaamilised muutused** (nt hooldustööd, ummikud, õnnetused) mõjutavad optimaalseid marsruute. Selline lähenemine on kasulik näiteks:

- **Autonoomsete sõidukite navigeerimisel**
- **Liiklusvoo juhtimisel**
- **Tarkade linnade planeerimisel**

Kas soovid nüüd lisada:

- **Sõiduki liikumise animatsiooni**?
- Või **simuleerida mitut sõidukit korraga**?


Dünaamilised muutused teedevõrgus — nagu **teede ajutine sulgemine või avamine** — mõjutavad liiklusvoogu mitmel viisil. Vaatame seda süsteemselt:

---

## 🚗 Kuidas mõjutab liiklusvoogu?

### 1. **Marsruutide ümberjagamine**

Kui tee sulgub, peavad sõidukid valima **alternatiivseid marsruute**. See võib:

- Suurendada koormust kõrvalteedel,
- Põhjustada **ummikuid** seal, kus neid varem polnud.

### 2. **Liiklusvoo tasakaalu muutus**

- Mõned teed muutuvad **ülekoormatuks**,
- Teised jäävad **alakasutatuks**, kui navigeerimissüsteemid neid väldivad.

### 3. **Sõiduaegade kõikumine**

- Lühim tee ei pruugi olla **kiireim**,
- Sulgemised võivad **pikendada teekondi** või **tekitada viivitusi**.

### 4. **Dünaamiline optimeerimine**

- Tarkvara (nt Waze, Google Maps) kasutab **reaalajas andmeid**, et suunata liiklust ümber,
- See loob **tagasisideahela**, kus liiklusvoog muutub pidevalt.

---

## 📊 Soovid näha simulatsiooni?

Ma saan:

- **Visualiseerida liiklusvoo muutust ajas**, kui teed avanevad/sulguvad,
- Näidata, kuidas **sõidukite jaotus** muutub võrgu eri osades.

Kas soovid näiteks:

- **Graafikut sõidukite arvust teedel ajas**?
- Või **simulatsiooni mitme sõiduki liikumisest** dünaamilises võrgus?

Anna teada, kumba eelistad või kui soovid mõlemat!

Siin on graafik, mis näitab **sõidukite arvu muutust teedel ajas**, kui teede avatus muutub:

![Sõidukite arv teedel ajas](data:image/png;base64,[encoded data, 95076 characters])

---

### 📊 Tõlgendus:

- **A-B**: Alguses populaarne, kuid kui tee **B-D** sulgub (nt t=2), siis liiklus väheneb.
- **B-C ja C-D**: Võtavad üle liikluskoormuse, kui teised teed sulguvad.
- **D-E**: Liiklus kasvab ajas, kuna see on lõppsihtpunkt ja teised teed suunavad sinna rohkem sõidukeid.

---

### 🧠 Järeldus:

See näitab, kuidas **dünaamilised muutused** (nt tee sulgemine) **ümberjagavad liiklusvoogu**. Selline analüüs on oluline:

- **Liiklusplaneerimisel**,
- **Autonoomsete sõidukite marsruutide optimeerimisel**,
- **Tarkade linnade süsteemides**.

Kas soovid nüüd:

- Simuleerida **sõidukite liikumist visuaalselt**?
- Või lisada **rohkem teid ja keerukust** võrku?

