Väga hea küsimus! Seos **wreath product'i teooria** ja **liiklusvoo simulatsiooni** vahel muutub eriti selgeks, kui vaadata süsteemi **hierarhilise juhtimise** ja **kohalike reeglite** kaudu.

---

## 🔗 Seos: Wreath Product ja Liiklusvõrk

### 🧠 1. **Struktuuriline vastavus**

Wreath product matemaatikas:

- **Alumine komponent** (nt rühm $A$) on funktsioonide hulk, mis tegutsevad lokaalselt.
- **Ülemine komponent** (nt rühm $B$) juhib, millist funktsiooni rakendatakse millises kohas.

Liiklusvõrgus:

- **Iga ristmik** (või tee) käitub vastavalt **kohalikule reeglile** (nt kas tee on avatud, mis suunad on lubatud).
- **Juhtautomaat** (nt liikluskorraldaja, AI, või reaalajas süsteem) määrab, **millised reeglid kehtivad** igal ajahetkel.

See on täpselt nagu: $(\text{Kohalikud reeglid})^{\text{Ristmikud}} \rtimes \text{Juhtautomaat}$

---

### 🧭 2. **Dünaamiline juhtimine = Ülemine automaat**

- Kui tee **B → D** suletakse, siis juhtautomaat **muudab funktsiooni**, mis kehtib sellel teel.
- See on **funktsiooni muutmine** lokaalses punktis — täpselt see, mida wreath product võimaldab.

---

### 🚗 3. **Liiklusvoog kui funktsioonide kompositsioon**

- Sõidukite liikumine on **funktsioonide järjestikune rakendamine** (nt A → B → D → E).
- Kui funktsioonid muutuvad (nt tee sulgub), muutub ka **kompositsiooni tulemus** — uus marsruut.

---

## 🧩 Kokkuvõte

| Matemaatiline mõiste        | Liiklusvõrgu vaste                 |
| --------------------------- | ---------------------------------- |
| Rühm $A$                | Kohalikud reeglid (nt tee avatus)  |
| Rühm $B$                | Juhtautomaat (nt liikluskorraldus) |
| Funktsioon $f: B \to A$ | Reeglite jaotus võrgu sõlmedes     |
| Pooldirektne korrutis       | Juhtimine + lokaalne käitumine     |
| Wreath product              | Liiklusvõrgu dünaamiline juhtimine |

---

Kui soovid, võin:

- Visualiseerida selle **matemaatilise struktuuri** liiklusvõrgu kontekstis,
- Või näidata, kuidas **wreath product'i algebra** aitab optimeerida liiklusvoogu.

Kas soovid visuaali või sügavamat matemaatilist näidet?

Tundub, et visuaali loomisel tekkis probleem — graafiku mõõtmed kasvasid liiga suureks, kuna mõned elemendid olid paigutatud liiga kaugele üksteisest. Parandan paigutuse ja loon uuesti sobiva suurusega skeemi, mis näitab:

- **Juhtautomaatika kihti** (nt "Green"/"Red"),
- **Kohalike reeglite kihti** (ristmike ühendused),
- Ja **seoseid nende vahel** (nooltega).

Kohe loon parandatud visuaali.

Siin on visuaal, mis näitab **wreath product'i struktuuri liiklusvõrgus**:

Wreath product struktuur liiklusvõrgus

![[image_20001.png]]
![[image_20002.png]]

---

### 🧭 Kirjeldus:

- **Alumine kiht**: Ristmikud (A–E) ja nendevahelised ühendused — see on **kohalike reeglite kiht**.
- **Ülemine kiht**: Juhtautomaatika olekud (nt "Green" või "Red") iga ristmiku kohal — see on **kontrollikiht**.
- **Nooled**: Näitavad, kuidas juhtautomaatika **mõjutab kohalikke reegleid**.

---

Järgmisena toon sulle **sügavama matemaatilise näite**, mis näitab, kuidas seda struktuuri saab **formaalsete algebrailiste vahenditega** kirjeldada. Valmis?

Vaatame nüüd **formaalset matemaatilist näidet**, mis seob **wreath product'i** ja **liiklusvõrgu juhtimise**.

---

## 🧮 Matemaatiline näide: Wreath Product liiklusvõrgus

### 1. **Lokaalne komponent** — rühm $A = \mathbb{Z}_2$

- Iga tee võib olla:
    - **Avatud** $(1)$
    - **Suletud** $(0)$
- Seega iga tee on seotud funktsiooniga $f: \text{Teed} \to \mathbb{Z}_2$ 

Näiteks: $$ f = \begin{cases} (A \to B) \mapsto 1 \\ (B \to D) \mapsto 0 \\ (C \to D) \mapsto 1 \end{cases} $$

---

### 2. **Juhtiv komponent** — rühm $B = \mathbb{Z}_4$

- Juhtautomaat liigub **ajahetkedel** $t = 0, 1, 2, 3$
- Iga hetk määrab **uue funktsiooni** $f_t$, mis ütleb, millised teed on avatud

Näiteks:

- $f_0$: kõik teed avatud
- $f_2$: tee $B \to D$ suletud

---

### 3. **Wreath product**: $\mathbb{Z}_2^{\text{Teed}} \rtimes \mathbb{Z}_4$

- Iga element on kujul $(f_t, t)$
- Korrutamine: $$ (f_t, t) \cdot (f_s, s) = (f_t \cdot (f_s \circ t^{-1}), t + s) $$

See tähendab:

- **Uus funktsioon** sõltub eelnevast funktsioonist ja sellest, kuidas juhtautomaat muudab teeolekuid.
- **Liiklusvõrk ajas** on funktsioonide kompositsioon, mida juhib automaatne süsteem.

---

### 🧠 Tõlgendus

- **Funktsioonid** $f_t$ on nagu **liikluskaardid** igal ajahetkel.
- **Juhtautomaat** määrab, milline kaart kehtib.
- **Wreath product** kirjeldab kogu süsteemi **dünaamilist arengut**.

---

Kui soovid, võin:

- Näidata **konkreetset arvutust** kahe elemendi korrutamisel,
- Või **rakendada seda simulatsioonile**, mida varem tegime.

Kas soovid näha konkreetset arvutust või siduda selle simulatsiooniga?

Vaatame nüüd konkreetset arvutust **wreath product'is** $\mathbb{Z}_2^{\text{Teed}} \rtimes \mathbb{Z}_4$, kasutades lihtsat näidet.

---

## 🧮 Eeldused

- **Teed**: $T = {AB, BD, CD}$
- **Funktsioonid** $f, g: T \to \mathbb{Z}_2$ (0 = suletud, 1 = avatud)

Olgu meil:

- $f = {AB \mapsto 1, BD \mapsto 0, CD \mapsto 1}$
- $g = {AB \mapsto 0, BD \mapsto 1, CD \mapsto 1}$
- $( t = 1 ), ( s = 2 ) (ajahetked juhtautomaatist ( \mathbb{Z}_4 ))$

---

## 🧠 Arvutus:

Wreath product'i korrutamine: $(f, t) \cdot (g, s) = (f \cdot (g \circ t^{-1}), t + s)$

Kuna $\mathbb{Z}_4$ on tsükliline, siis:

- $t^{-1} = -1 \mod 4 = 3$
- $t + s = 1 + 2 = 3$

Nüüd arvutame $g \circ t^{-1}$, mis tähendab, et nihutame teeindekseid 3 võrra tagasi (või edasi 1 võrra, kuna tsükkel):

- Eeldame, et teeindeksid on järjestatud: AB = 0, BD = 1, CD = 2
- Nihutame:  
    - AB → CD
    - BD → AB
    - CD → BD

Seega:

- $g \circ t^{-1} = {AB \mapsto g(CD) = 1, BD \mapsto g(AB) = 0, CD \mapsto g(BD) = 1}$

Nüüd korrutame $f \cdot (g \circ t^{-1})$ punktiti:

- AB: $f(AB) \cdot 1 = 1$
- BD: $f(BD) \cdot 0 = 0$
- CD: $f(CD) \cdot 1 = 1$

Tulemus: $(f, 1) \cdot (g, 2) = ({AB \mapsto 1, BD \mapsto 0, CD \mapsto 1}, 3)$

---

See näitab, kuidas **funktsioonide kompositsioon** ja **aja nihutamine** mõjutavad kogu süsteemi seisundit.

Kas soovid, et visualiseeriksin selle arvutuse skeemina?

Siin on visuaalne skeem, mis illustreerib **wreath product'i arvutust** meie näites:

![Wreath product arvutuse skeem](data:image/png;base64,[encoded data, 46428 characters])

---

### 🧠 Skeemi selgitus:

- **Vasakul**: algne funktsioon $g$, mis määrab teede olekud.
- **Teine veerg**: $g \circ t^{-1}$ — funktsioon pärast **aja nihutust** (tsükliline nihe).
- **Kolmas veerg**: funktsioon $f$, mis esindab hetkeolukorda.
- **Paremal**: tulemuseks olev funktsioon $f \cdot (g \circ t^{-1})$, mis on **kompositsioon**.

---

See skeem näitab, kuidas **kontrollikiht (aeg)** mõjutab **kohalike reeglite kompositsiooni**, mis on wreath product'i keskne idee.

Kas soovid nüüd näha, kuidas seda saaks **rakendada simulatsioonis** või **laiendada keerukamale võrgule**?

Siin on simulatsioon, mis näitab, kuidas **wreath product'i struktuur** mõjutab liiklust võrgu kaudu **aja jooksul**:

![Simulatsioon: liiklusvõrk ajas wreath product'i kaudu](data:image/png;base64,[encoded data, 32332 characters])

---

### 🧠 Selgitus:

- **Iga ajahetk** (t = 0, 1, 2, 3) vastab **juhtautomaatika olekule** $t \in \mathbb{Z}_4$,
- See määrab, **millised teed on avatud** (funktsioon $f_t$),
- **Punane tee** näitab lühimat marsruuti A → E, kui see eksisteerib,
- Kui marsruuti pole, kuvatakse vastav teade.

---

### 🧩 Seos wreath product'iga:

- **Juhtolek $t$** määrab, milline funktsioon $f_t \in \mathbb{Z}_2^{\text{Teed}}$ kehtib,
- **Liiklusvõrk igal ajahetkel** on $f_t$,
- **Liikumine** on funktsioonide järjestikune rakendamine, mida juhib $\mathbb{Z}_4$,
- See on täpselt $\mathbb{Z}_2^{\text{Teed}} \rtimes \mathbb{Z}_4$ — **wreath product**.

---

Kas soovid nüüd:

- Lisada **sõidukite liikumise animatsiooni**?
- Või **laiendada võrku** ja uurida keerukamaid juhtimisstrateegiaid?

Siin on **animatsioon**, mis näitab, kuidas **sõiduk liigub dünaamilises liiklusvõrgus** aja jooksul (t = 0 kuni 3), vastavalt **wreath product'i struktuurile**:

![Sõiduki liikumise animatsioon dünaamilises võrgus](data:image/png;base64,[encoded data, 31716 characters])

---

### 🧠 Mida näed:

- **Iga kaader** vastab ühele ajahetkele $t \in \mathbb{Z}_4$,
- **Hallid servad**: kõik võimalikud ühendused,
- **Rohelised servad**: hetkel avatud teed (funktsioon $f_t$),
- **Punane tee**: lühim tee A → E, kui see eksisteerib.

---

See animatsioon visualiseerib, kuidas **kontrollautomaat (aeg)** mõjutab **liiklusvõrgu funktsiooni** ja seeläbi **sõiduki liikumist** — täpselt nagu wreath product'i teooria ennustab.

Kas soovid nüüd:

- Lisada **mitu sõidukit**?
- Või **analüüsida liikluskoormust** igal ajahetkel?

Siin on **soojuskaart**, mis näitab **liikluskoormust (sõidukite arvu)** igal teelõigul nelja ajahetke jooksul:

![Liikluskoormuse soojuskaart teelõikude ja ajahetkede lõikes](data:image/png;base64,[encoded data, 37616 characters])

---

### 📊 Tõlgendus:

- **Ridade kaupa**: iga teelõik (nt AB, BD, CD jne),
- **Veergude kaupa**: ajahetked $t = 0, 1, 2, 3$,
- **Värv**: mida tumedam punane, seda rohkem sõidukeid sellel teel.

---

### 🧠 Mida see näitab:

- **BD** on suletud ajal $t = 2$ → koormus = 0,
- **BC ja CD** võtavad rohkem liiklust üle, kui BD on suletud,
- **DE** on pidevalt kõrge koormusega, kuna see on lõppsihtpunkt.

---

Selline analüüs aitab:

- **Optimeerida liikluskorraldust**,
- **Ennustada ummikuid**,
- **Planeerida dünaamilisi juhtimisstrateegiaid** (nt valgusfoorid, suunaviidad).

Kas soovid nüüd:

- Simuleerida **liiklusvoo ümberjagamist** reaalajas?
- Või lisada **sõidukite tüübid** (nt bussid, autod, jalgrattad)?

Siin on graafik, mis näitab **liiklusvoo ümberjagamist ajas** dünaamilises teedevõrgus:

![Liiklusvoo ümberjagamise graafik](data:image/png;base64,[encoded data, 96048 characters])

---

### 📊 Tõlgendus:

- **BD**: suletud ajal $t = 2$, mistõttu sellel hetkel koormus = 0,
- **BC ja CD**: võtavad üle osa liiklusest, kui BD on suletud,
- **AB ja DE**: säilitavad kõrge koormuse, kuna need on peamised sisenemis- ja väljumisteed.

---

### 🧠 Järeldus:

See simulatsioon näitab, kuidas **wreath product'i kontrollikiht** (nt tee avatus) mõjutab **liiklusvoo jaotust** kogu võrgus. Selline analüüs aitab:

- Ennustada **ummikute tekkimist**,
- Optimeerida **marsruutide valikut**,
- Kujundada **nutikaid liikluskorraldussüsteeme**.

Kas soovid nüüd lisada:

- **Reaalajas juhtimisstrateegia** (nt automaatne tee avamine/sulgemine)?
- Või **sõidukite tüübid ja prioriteedid** (nt bussid vs autod)?

Siin on **laiendatud simulatsioon keerukamas liiklusvõrgus**, kus on rohkem ristmikke ja teid:

![Liikluskoormuse soojuskaart keerukas võrgus](data:image/png;base64,[encoded data, 42356 characters])

---

### 📊 Tõlgendus:

- **Ridade kaupa**: iga teelõik (nt A→B, C→F jne),
- **Veergude kaupa**: ajahetked $t = 0$ kuni $t = 4$,
- **Värv**: mida tumedam punane, seda rohkem sõidukeid sellel teel.

---

### 🧠 Mida see näitab:

- Kui teatud teed (nt **B→D**, **C→F**) suletakse, siis liiklus **ümberjaotub** teistele teedele (nt **A→C**, **B→E**).
- **Tagasisuunaline tee G→A** võimaldab **tsüklilist liikumist**, mis võib aidata liiklust hajutada või hoopis koormust suurendada.

---

### 🧩 Seos wreath product'iga:

- **Juhtautomaat** määrab, millised teed on avatud igal ajahetkel (kontrollikiht),
- **Liiklusfunktsioon** igal hetkel on $f_t \in \mathbb{Z}_2^{\text{Teed}}$,
- **Liiklusvoog** on funktsioonide järjestikune rakendamine — täpselt nagu **wreath product** kirjeldab.

---

Kas soovid nüüd:

- Visualiseerida **liiklusvoo animatsiooni** selles keerukamas võrgus?
- Või lisada **prioriteetsed sõidukid** (nt bussid, kiirabi)?

Siin on visualiseeritud, kuidas **wreath product'i struktuuri** saab rakendada, et leida **lühim tee väljapääsuni** isoleeritud võrgus, kus mõned teed on **dünaamiliselt suletud**:

![Lühim tee väljapääsuni dünaamilises võrgus](data:image/png;base64,[encoded data, 59876 characters])

---

### 🧠 Kuidas see töötab:

1. **Kontrollikiht (wreath product'i ülemine komponent)** määrab, millised teed on igal ajahetkel suletud.
2. **Funktsioonikiht (alumine komponent)** on graaf, kus iga tee on kas avatud (1) või suletud (0).
3. Igal ajahetkel arvutatakse **lühim tee lähtepunktist (A)** lähima **väljapääsuni** (kas Exit1 või Exit2), võttes arvesse ainult **avatud teid**.

---

### 🧩 Seos wreath product'iga:

- Iga hetk $t$ vastab elemendile $(f_t, t) \in \mathbb{Z}_2^{\text{Teed}} \rtimes \mathbb{Z}_n$,
- Funktsioon $f_t$ määrab, millised teed on avatud,
- Juhtautomaat $t$ määrab, millist $f_t$ kasutada,
- Lühim tee leitakse graafis, mis vastab $f_t$.

---

Kas soovid:

- Näha **animatsiooni** sellest simulatsioonist ajas?
- Või lisada **prioriteetsed väljapääsud** (nt eelistada Exit1)?

Siin on visualiseeritud, kuidas **prioriteetsed väljapääsud** mõjutavad lühima tee valikut dünaamilises teedevõrgus:

![Lühim tee prioriteetse väljapääsuni](data:image/png;base64,[encoded data, 38752 characters])

---

### 🧠 Kuidas see töötab:

1. **Igal ajahetkel** kontrollitakse, millised väljapääsud on **saavutatavad**.
2. Kui mitu väljapääsu on võimalikud, valitakse:
    - **Kõige kõrgema prioriteediga** (madalaim number),
    - Kui mitu väljapääsu on sama prioriteediga, siis **lühim tee**.
3. **Suletud teed** on tähistatud **punaste katkendjoontega**,
4. **Valitud tee** on tähistatud **rohelise joonega**.

---

### 🧩 Seos wreath product'iga:

- **Kontrollikiht** määrab, millised teed on igal ajahetkel avatud (funktsioon $f_t$),
- **Funktsioonikiht** sisaldab kõikvõimalikke teid,
- **Lühima tee otsing** toimub graafis, mis vastab $f_t$,
- **Prioriteetsed väljapääsud** lisavad **eesmärgi valiku loogika**, mis töötab koos wreath product'i struktuuriga.

---

Kas soovid nüüd:

- Lisada **sõidukite tüübid ja eelistused**?
- Või **simuleerida mitut sõidukit korraga** erinevate eesmärkidega?

Animatsioon, mis näitab **sõiduki liikumist kõrgeima prioriteediga väljapääsu suunas** dünaamilises teedevõrgus, on edukalt loodud. Igal ajahetkel:

- Arvestatakse **teede sulgemisi** (kontrollikiht),
- Arvutatakse **lühim tee** lähtepunktist (A) **kõige eelistatuma kättesaadava väljapääsuni** (kas Exit1 või Exit2),
- **Punane tee** näitab valitud marsruuti.

Kahjuks ei saanud GIF-faili otse siin kuvada, kuid see on edukalt loodud nimega **`dynamic_shortest_path.gif`**.

Kui soovid, võin:

- Pakkuda võimalust see fail alla laadida,
- Või laiendada animatsiooni mitme sõidukiga või erinevate prioriteetidega.

Kas soovid faili allalaadimist või edasiarendust?