Algoritmy zpětného sledování jsou jako strategie řešení problémů, které pomáhají prozkoumat různé možnosti k nalezení nejlepšího řešení. Fungují tak, že zkoušejí různé cesty, a pokud jedna nefunguje, ustupují a zkoušejí další, dokud nenajdou tu správnou. Je to jako řešit hádanku zkoušením různých dílků, dokud do sebe dokonale nezapadnou.
Zpětné sledování
Obsah
- Co je to Backtracking Algorithm?
- Jak funguje algoritmus zpětného sledování?
- Příklad algoritmu Backtracking
- Kdy použít algoritmus zpětného sledování?
- Aplikace algoritmu Backtracking
- Základy algoritmu Backtracking
- Standardní problémy na algoritmu zpětného sledování
- Snadné problémy s algoritmem zpětného sledování
- Střední problémy s algoritmem zpětného sledování
- Těžké problémy s algoritmem zpětného sledování
Co je to Backtracking Algorithm?
Zpětné sledování je algoritmická technika pro řešení problémů, která zahrnuje postupné hledání řešení pokusem různé možnosti a zkáza pokud vedou k a slepá ulička .
Běžně se používá v situacích, kdy potřebujete prozkoumat více možností k vyřešení problému, jako je hledání cesty v bludišti nebo řešení hádanek jako sudoku . Když je dosaženo slepé uličky, algoritmus se vrátí k předchozímu rozhodovacímu bodu a prozkoumá jinou cestu, dokud není nalezeno řešení nebo vyčerpány všechny možnosti.
arraylist seřazený java
Jak funguje algoritmus zpětného sledování?
A algoritmus zpětného sledování funguje tak, že rekurzivně prozkoumává všechna možná řešení problému. Začíná výběrem počátečního řešení a poté zkoumá všechna možná rozšíření tohoto řešení. Pokud rozšíření vede k řešení, algoritmus toto řešení vrátí. Pokud rozšíření nevede k řešení, algoritmus se vrátí k předchozímu řešení a zkouší jiné rozšíření.
Níže je uveden obecný přehled toho, jak funguje algoritmus zpětného sledování:
kolik nula za milion
- Vyberte počáteční řešení.
- Prozkoumejte všechna možná rozšíření aktuálního řešení.
- Pokud rozšíření vede k řešení, vraťte toto řešení.
- Pokud rozšíření nevede k řešení, vraťte se k předchozímu řešení a zkuste jiné rozšíření.
- Opakujte kroky 2-4, dokud neprozkoumáte všechna možná řešení.
Příklad algoritmu Backtracking
Příklad: Hledání nejkratší cesty bludištěm
Vstup: Bludiště reprezentované jako 2D pole, kde 0 představuje otevřený prostor a 1 představuje zeď.
Algoritmus:
- Začněte ve výchozím bodě.
- Pro každý ze čtyř možných směrů (nahoru, dolů, doleva, doprava) se zkuste pohybovat tímto směrem.
- Pokud pohyb v tomto směru vede ke koncovému bodu, vraťte se po zvolené cestě.
- Pokud pohyb tímto směrem nevede ke koncovému bodu, vraťte se do předchozí pozice a zkuste jiný směr.
- Opakujte kroky 2-4, dokud nedosáhnete koncového bodu nebo dokud neprozkoumáte všechny možné cesty.
Kdy použít algoritmus zpětného sledování?
Algoritmy zpětného sledování se nejlépe používají k řešení problémů, které mají následující vlastnosti:
- Existuje více možných řešení problému.
- Problém lze rozdělit na menší dílčí problémy.
- Dílčí problémy lze řešit nezávisle.
Aplikace algoritmu Backtracking
Algoritmy zpětného sledování se používají v celé řadě aplikací, včetně:
- Řešení hádanek (např. sudoku, křížovky)
- Hledání nejkratší cesty bludištěm
- Problémy s plánováním
- Problémy s alokací zdrojů
- Problémy s optimalizací sítě
Základy algoritmu Backtracking:
- Rozdíl mezi technikou Backtracking a Branch-N-Bound
- Jaký je rozdíl mezi Backtrackingem a Rekurzí?
Standardní problémy s algoritmem zpětného sledování:
- Problém Rytířského turné
- Krysa v bludišti
- N Queen Problém | Backtracking-3
- Problém s podmnožinou součtu
- m Problém s barvením
- Hamiltonovský cyklus
- Sudoku | Backtracking-7
- Magnetické puzzle
- Odstraňte neplatné závorky
- Zpětný přístup ke generování n bitových šedých kódů
- Napište program pro tisk všech permutací daného řetězce
Snadné problémy s algoritmem zpětného sledování:
- Backtracking k nalezení všech podmnožin
- Zkontrolujte, zda je daný řetězec součtovým řetězcem
- Spočítejte všechny možné cesty mezi dvěma vrcholy
- Najděte všechny odlišné podmnožiny dané množiny
- Zjistěte, zda od zdroje existuje cesta delší než k
- Vytiskněte všechny cesty z daného zdroje do cíle
- Vytiskněte všechny možné řetězce, které lze vytvořit umístěním mezer
Střední problémy s algoritmem zpětného sledování:
- Přetahování lanem
- 8 problém s královnou
- Kombinační součet
- Warnsdorffův algoritmus pro problém Knightova turné
- Najděte cesty z rohové buňky do střední buňky v bludišti
- Najděte maximální možný počet provedením maximálně K swapů
- Krysa v bludišti s vícenásobnými kroky nebo povolenými skoky
- N Queen v prostoru O(n).
Těžké problémy s algoritmem zpětného sledování:
- Power Set v lexikografickém pořadí
- Word Break Problém pomocí Backtracking
- Rozdělení množiny na K podmnožiny se stejným součtem
- Nejdelší možná trasa v matici s překážkami
- Najděte nejkratší bezpečnou cestu v cestě s nášlapnými minami
- Vytiskněte všechny palindromické oddíly řetězce
- Tisk všech řešení v problému N-Queen
- Vytiskněte všechny nejdelší společné podsekvence v lexikografickém pořadí
Rychlé odkazy :
- Naučte se datovou strukturu a algoritmy | Výukový program DSA
- 20 nejčastějších otázek k rozhovoru s algoritmem backtracking
- „Videa“ na Backtracking