logo

Algoritmus zpětného sledování

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?

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
  1. Vyberte počáteční řešení.
  2. Prozkoumejte všechna možná rozšíření aktuálního řešení.
  3. Pokud rozšíření vede k řešení, vraťte toto řešení.
  4. Pokud rozšíření nevede k řešení, vraťte se k předchozímu řešení a zkuste jiné rozšíření.
  5. 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:

  1. Začněte ve výchozím bodě.
  2. Pro každý ze čtyř možných směrů (nahoru, dolů, doleva, doprava) se zkuste pohybovat tímto směrem.
  3. Pokud pohyb v tomto směru vede ke koncovému bodu, vraťte se po zvolené cestě.
  4. Pokud pohyb tímto směrem nevede ke koncovému bodu, vraťte se do předchozí pozice a zkuste jiný směr.
  5. 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