Az Oszd meg és uralkodj egy algoritmikus minta. Algoritmikus módszereknél a tervezés lényege, hogy egy hatalmas bemeneten veszünk vitát, a bemenetet kisebb darabokra bontjuk, mindegyik kis darabon eldöntjük a problémát, majd egyesítjük a darabonkénti megoldásokat egy globális megoldásba. Ezt a problémamegoldó mechanizmust oszd meg és uralkodj stratégiának nevezzük.
Az Oszd meg és uralkodj algoritmus a következő három lépésből álló vitából áll.
Általában követhetjük a Oszd meg és uralkodj háromlépcsős folyamatban történő megközelítés.
Példák: A konkrét számítógépes algoritmusok az Oszd meg és uralkodj megközelítésen alapulnak:
- Maximum és Minimum probléma
- Bináris keresés
- Rendezés (egyesítés, gyors rendezés)
- Hanoi tornya.
Az Oszd meg és uralkodj stratégia alapjai:
Az Oszd meg és uralkodj stratégiának két alapja van:
- Relációs képlet
- Leállási feltétel
1. Relációs képlet: Ez az a képlet, amelyet az adott technikából generálunk. A képlet generálása után alkalmazzuk a D&C stratégiát, azaz rekurzív módon megtörjük a problémát és megoldjuk a törött részproblémákat.
2. Leállási feltétel: Amikor a Divide & Conquer Stratégia segítségével megoldjuk a problémát, akkor tudnunk kell, hogy mennyi ideig kell alkalmazni az oszd meg és uralkodj. Tehát azt az állapotot, amikor a D&C rekurziós lépéseit le kell állítani, leállási feltételnek nevezzük.
Az oszd meg és uralkodj megközelítés alkalmazásai:
A következő algoritmusok az oszd meg és uralkodj technika elvén alapulnak:
Az Oszd meg és uralkodj előnyei
- Az Oszd meg és uralkodj általában sikeresen megoldja az egyik legnagyobb problémát, például a Hanoi Towert, egy matematikai rejtvényt. Nehéz megoldani bonyolult problémákat, amelyekre nincs alapötlet, de az oszd meg és uralkodj megközelítés segítségével csökkentette a fáradságot, mivel a fő problémát két részre osztja, majd rekurzív módon oldja meg. Ez az algoritmus sokkal gyorsabb, mint a többi algoritmus.
- Hatékonyan használja a gyorsítótár memóriát anélkül, hogy sok helyet foglalna, mivel a lassabb főmemóriához való hozzáférés helyett egyszerű részproblémákat old meg a gyorsítótáron belül.
- Ez jártasabb, mint a megfelelő Brute Force technika.
- Mivel ezek az algoritmusok gátolják a párhuzamosságot, nem jár semmilyen módosítással, és párhuzamos feldolgozást alkalmazó rendszerek kezelik.
Az Oszd meg és uralkodj hátrányai
- Mivel a legtöbb algoritmusa rekurzió beépítésével készült, ezért nagy memóriakezelést tesz szükségessé.
- Egy explicit verem túlhasználhatja a helyet.
- Még a rendszer összeomlását is okozhatja, ha a rekurziót szigorúan nagyobb mértékben hajtják végre, mint a CPU-ban lévő verem.