Skaldyk ir valdyk yra algoritminis modelis. Taikant algoritminius metodus, siekiama ginčytis dėl didžiulės įvesties, suskaidyti įvestį į nedideles dalis, išspręsti kiekvienos mažos dalies problemą ir tada sujungti atskirus sprendimus į visuotinį sprendimą. Šis problemos sprendimo mechanizmas vadinamas „Skaldyk ir valdyk“ strategija.
„Skaldyk ir valdyk“ algoritmą sudaro ginčas, naudojant šiuos tris veiksmus.
Paprastai galime sekti skaldyk ir valdyk trijų etapų procese.
Pavyzdžiai: Konkretūs kompiuteriniai algoritmai yra pagrįsti „Skaldyk ir užkariauk“ metodu:
- Didžiausia ir mažiausia problema
- Dvejetainė paieška
- Rūšiavimas (sujungti rūšiavimą, greitas rūšiavimas)
- Hanojaus bokštas.
„Skaldyk ir valdyk“ strategijos pagrindai:
Yra du „Skaldyk ir užkariauk“ strategijos pagrindai:
- Santykių formulė
- Sustojimo sąlyga
1. Santykių formulė: Tai formulė, kurią sukuriame pagal pateiktą techniką. Sukūrę formulę taikome D&C strategiją, t.y. rekursyviai išsprendžiame problemą ir išsprendžiame sugedusias subproblemas.
2. Sustojimo sąlyga: Kai išsprendžiame problemą naudodami strategiją Divide & Conquer, turime žinoti, kad kiek laiko turime taikyti „skaldyk ir užkariauk“. Taigi sąlyga, kai reikia sustabdyti mūsų D&C rekursinius veiksmus, vadinama stabdymo sąlyga.
„Skaldyk ir valdyk“ metodo taikymas:
Šie algoritmai yra pagrįsti „Skaldyk ir valdyk“ technikos koncepcija:
„Skaldyk ir valdyk“ pranašumai
- „Skaldyk ir valdyk“ linkęs sėkmingai išspręsti vieną didžiausių problemų, pavyzdžiui, Hanojaus bokštą – matematinį galvosūkį. Sunku išspręsti sudėtingas problemas, apie kurias neturite pagrindinės idėjos, tačiau pasitelkus „skaldyk ir valdyk“ metodą, tai sumažino pastangas, nes pagrindinė problema yra padalinta į dvi dalis, o vėliau jas sprendžiama rekursyviai. Šis algoritmas yra daug greitesnis nei kiti algoritmai.
- Jis efektyviai naudoja talpyklą, neužimdamas daug vietos, nes išsprendžia paprastas poproblemas talpykloje, o ne pasiekia lėtesnę pagrindinę atmintį.
- Jis yra labiau įgudęs nei jo kolega Brute Force technika.
- Kadangi šie algoritmai slopina lygiagretumą, jis nereikalauja jokių pakeitimų ir yra tvarkomas sistemose, turinčiose lygiagretų apdorojimą.
Skaldyk ir valdyk trūkumai
- Kadangi dauguma jo algoritmų yra sukurti įtraukiant rekursiją, tai reikalauja didelio atminties valdymo.
- Aiškus krūvas gali per daug išnaudoti vietos.
- Ji netgi gali sugadinti sistemą, jei rekursija atliekama griežtai didesne nei procesoriaus krūva.