Algoritmy spätného sledovania sú ako stratégie riešenia problémov, ktoré pomáhajú preskúmať rôzne možnosti na nájdenie najlepšieho riešenia. Pracujú tak, že skúšajú rôzne cesty a ak jedna nefunguje, cúvajú a skúšajú inú, kým nenájdu tú správnu. Je to ako riešiť hádanku skúšaním rôznych kúskov, kým do seba dokonale nezapadnú.
Backtracking
Obsah
- Čo je to algoritmus spätného sledovania?
- Ako funguje algoritmus spätného sledovania?
- Príklad algoritmu spätného sledovania
- Kedy použiť algoritmus spätného sledovania?
- Aplikácie algoritmu spätného sledovania
- Základy algoritmu spätného sledovania
- Štandardné problémy s algoritmom spätného sledovania
- Jednoduché problémy s algoritmom spätného sledovania
- Stredné problémy s algoritmom spätného sledovania
- Ťažké problémy s algoritmom spätného sledovania
Čo je to algoritmus spätného sledovania?
Backtracking je algoritmická technika na riešenie problémov, ktorá zahŕňa postupné hľadanie riešenia pokusom rôzne možnosti a zrušenie ak vedú k a slepá ulica .
Bežne sa používa v situáciách, keď potrebujete preskúmať viacero možností na vyriešenie problému, ako je hľadanie cesty v bludisku alebo riešenie hádaniek ako napr. sudoku . Keď sa dosiahne slepá ulička, algoritmus sa vráti k predchádzajúcemu rozhodovaciemu bodu a preskúma inú cestu, kým sa nenájde riešenie alebo sa nevyčerpajú všetky možnosti.
Ako funguje algoritmus spätného sledovania?
A algoritmus spätného sledovania funguje tak, že rekurzívne skúma všetky možné riešenia problému. Začína výberom počiatočného riešenia a potom skúma všetky možné rozšírenia tohto riešenia. Ak rozšírenie vedie k riešeniu, algoritmus toto riešenie vráti. Ak rozšírenie nevedie k riešeniu, algoritmus sa vráti k predchádzajúcemu riešeniu a vyskúša iné rozšírenie.
Nasleduje všeobecný prehľad toho, ako funguje algoritmus spätného sledovania:
- Vyberte počiatočné riešenie.
- Preskúmajte všetky možné rozšírenia aktuálneho riešenia.
- Ak rozšírenie vedie k riešeniu, vráťte toto riešenie.
- Ak rozšírenie nevedie k riešeniu, vráťte sa k predchádzajúcemu riešeniu a skúste iné rozšírenie.
- Opakujte kroky 2-4, kým sa nepreskúmajú všetky možné riešenia.
Príklad algoritmu spätného sledovania
Príklad: Hľadanie najkratšej cesty cez bludisko
Vstup: Bludisko reprezentované ako 2D pole, kde 0 predstavuje otvorený priestor a 1 predstavuje stenu.
Algoritmus:
- Začnite vo východiskovom bode.
- Pre každý zo štyroch možných smerov (hore, dole, doľava, doprava) sa pokúste pohybovať týmto smerom.
- Ak pohyb v tomto smere vedie ku koncovému bodu, vráťte sa po prejdenej ceste.
- Ak pohyb v tomto smere nevedie ku koncovému bodu, vráťte sa na predchádzajúcu pozíciu a skúste iný smer.
- Opakujte kroky 2-4, kým nedosiahnete koncový bod alebo kým nepreskúmate všetky možné cesty.
Kedy použiť algoritmus spätného sledovania?
Algoritmy spätného sledovania sa najlepšie používajú na riešenie problémov, ktoré majú nasledujúce charakteristiky:
- Existuje viacero možných riešení problému.
- Problém sa dá rozdeliť na menšie podproblémy.
- Podproblémy je možné riešiť nezávisle.
Aplikácie algoritmu spätného sledovania
Algoritmy spätného sledovania sa používajú v širokej škále aplikácií vrátane:
- Riešenie hádaniek (napr. sudoku, krížovky)
- Hľadanie najkratšej cesty cez bludisko
- Problémy s plánovaním
- Problémy s alokáciou zdrojov
- Problémy s optimalizáciou siete
Základy algoritmu spätného sledovania:
- Rozdiel medzi technikou Backtracking a Branch-N-Bound
- Aký je rozdiel medzi Backtrackingom a Rekurziou?
Štandardné problémy s algoritmom spätného sledovania:
- Problém s rytierskym zájazdom
- Potkan v bludisku
- N Queen Problém | Backtracking-3
- Problém podmnožiny súčtu
- m Problém s farbením
- Hamiltonovský cyklus
- Sudoku | Backtracking-7
- Magnetické puzzle
- Odstráňte neplatné zátvorky
- Spätný prístup na generovanie n-bitových šedých kódov
- Napíšte program na tlač všetkých permutácií daného reťazca
Jednoduché problémy s algoritmom spätného sledovania:
- Späť na nájdenie všetkých podmnožín
- Skontrolujte, či je daný reťazec súčtom
- Spočítajte všetky možné cesty medzi dvoma vrcholmi
- Nájdite všetky odlišné podmnožiny danej množiny
- Zistite, či existuje cesta dlhšia ako k od zdroja
- Vytlačte všetky cesty z daného zdroja do cieľa
- Vytlačte všetky možné reťazce, ktoré sa dajú vytvoriť umiestnením medzier
Stredné problémy s algoritmom spätného sledovania:
- Preťahovanie lanom
- 8 problém kráľovnej
- Kombinovaná suma
- Warnsdorffov algoritmus pre problém Knightovho turné
- Nájdite cesty z rohovej bunky do strednej bunky v bludisku
- Nájdite maximálny možný počet vykonaním maximálne K swapov
- Potkan v bludisku s povolenými viacerými krokmi alebo skokmi
- N Kráľovná v priestore O(n).
Ťažké problémy s algoritmom spätného sledovania:
- Power Set v lexikografickom poradí
- Word Break Problem pomocou Backtracking
- Rozdelenie množiny na K podmnožiny s rovnakým súčtom
- Najdlhšia možná trasa v matici s prekážkami
- Nájdite najkratšiu bezpečnú cestu na ceste s nášľapnými mínami
- Vytlačte všetky palindromické oddiely reťazca
- Tlač všetkých riešení v probléme N-Queen
- Vytlačte všetky najdlhšie spoločné podsekvencie v lexikografickom poradí
Rýchle odkazy:
- Naučte sa dátovú štruktúru a algoritmy | Príručka DSA
- 20 najčastejších otázok na pohovor o algoritme spätného sledovania
- „Videá“ na Backtracking