Wreath product'il on **oluline roll automaatide teoorias**, eriti **transformatsioonimonoidide** ja **automaatsüsteemide hierarhilise modelleerimise** kontekstis. Siin on, kuidas see seos töötab:

---

## 📘 Seos automaatide teooriaga

### 1. **Automaat kui transformatsioon**

Iga **deterministlik lõplik automaat (DFA)** defineerib **transformatsioonid** oma olekute hulgal. Kui automaat loeb sümbolit, liigub ta ühest olekust teise — see on funktsioon ehk **transformatsioon**.

- Kõik need transformatsioonid moodustavad **poolrühma** (või **monoid**, kui lisada identiteet).
- Seda nimetatakse **transformatsioonimonoidiks**.

### 2. **Kompositsioon keerukamatest automaatidest**

Kui sul on **kaks automaati**, millest üks kontrollib teise käitumist (nt **hierarhiline juhtimine**), siis nende **koostöö** saab sageli modelleerida **wreath product'ina**.

- Ülemine automaat (nt $B$) määrab, **milline funktsioon** alumise automaadi (nt $A$) olekute peal töötab.
- Alumine automaat täidab neid funktsioone.

See on täpselt see, mida wreath product matemaatiliselt väljendab: üks rühm (või monoid) **tegutseb funktsioonide hulgaga**, mis on määratud teise rühma poolt.

---

## 🧠 Rakendus: Krohn–Rhodes'i teoreem

See on üks kuulsamaid tulemusi automaatide teoorias:

> **Iga lõplik automaat** on **wreath product** lõplikest **lihtsatest automaatidest** (nt pööratavad automaadid ja null-automaat).

See tähendab, et keerulisi automaate saab **ehitada üles lihtsatest komponentidest**, kasutades wreath product'it kui ehitusplokki.

---

## 🎯 Kokkuvõte

Wreath product võimaldab:

- Modelleerida **keerukaid süsteeme** lihtsamatest osadest,
- Kirjeldada **automaatide koostööd** ja **hierarhiat**,
- Analüüsida automaatide **struktuuri ja dekompositsiooni**.

---

Kui soovid, võin tuua ka **konkreetse näite automaadist**, mille saab esitada wreath product'ina, või joonistada **skeemi automaatide koostööst**. Kas see huvitaks sind?

Siin on näide automaadist, mis on esitatav **wreath product'ina** kahe lihtsama automaadi vahel:

![Wreath product automaat kahe kihiga: juhtautomaat (Z2) ja baasautomaat (Z3)](data:image/png;base64,[encoded data, 18852 characters])

---

### 🧩 Selgitus:

- **Ülemine kiht (sinine ruut)**: **juhtautomaat** $\mathbb{Z}_2$, millel on kaks olekut `c0` ja `c1`, ning üleminek sümboliga `b`.
- **Alumine kiht (roheline ring)**: **baasautomaat** $\mathbb{Z}_3$, millel on kolm olekut `q0`, `q1`, `q2`, ja üleminek sümboliga `a`, mis liigub tsükliliselt edasi.

---

### 🧠 Kuidas see on wreath product?

- Juhtautomaat määrab, **milline funktsioon** rakendub baasautomaadi olekutele.
- Näiteks: kui juhtautomaat on olekus `c0`, siis baasautomaat käitub ühtemoodi; kui `c1`, siis teisiti (nt nihutab teisiti või muudab üleminekuid).
- See vastab täpselt wreath product'i ideele: **kontrollikiht juhib funktsioonide rakendamist alumisel kihil**.

---

Kui soovid, võin:

- Näidata, kuidas see automaat **käitub konkreetse sisendi** korral,
- Või **laiendada** seda keerukamaks süsteemiks.

Kas soovid edasi uurida?

Siin on visualiseeritud **wreath product automaadi** käitumine sisendi `"baba"` korral:

![Wreath product automaadi simulatsioon sisendiga 'baba'](data:image/png;base64,[encoded data, 53488 characters])

---

### 🧠 Samm-sammuline selgitus:

1. **Algusolek**: `(c0, q0)`
2. **'b'**: juhtautomaat liigub `c0 → c1`, baas jääb `q0`
3. **'a'**: juht on `c1`, seega baas liigub **tagurpidi**: `q0 → q2`
4. **'b'**: juht liigub `c1 → c0`, baas jääb `q2`
5. **'a'**: juht on `c0`, baas liigub **edasi**: `q2 → q0`

---

### 🔄 Lõppolek: `(c0, q0)`

See näide näitab, kuidas juhtautomaat $(Z₂)$ **mõjutab baasautomaadi $(Z₃)$** käitumist — sama sümbol `a` võib viia erinevasse olekusse sõltuvalt juhtolekust.

---

Kas soovid proovida teist sisendit või uurida, kuidas seda tüüpi automaate saaks kasutada näiteks **keele tuvastamiseks** või **loogikakontrolliks**?