logo

Paluualgoritmi

Paluualgoritmit ovat kuin ongelmanratkaisustrategioita, jotka auttavat tutkimaan erilaisia ​​vaihtoehtoja parhaan ratkaisun löytämiseksi. He työskentelevät kokeilemalla eri polkuja, ja jos yksi ei toimi, he perääntyvät ja yrittävät toista, kunnes löytävät oikean. Se on kuin palapelin ratkaisemista testaamalla eri palasia, kunnes ne sopivat täydellisesti yhteen.

Perääntyminen

pete davidsonin ikä

Sisällysluettelo



Mikä on backtracking-algoritmi?

Perääntyminen on ongelmanratkaisualgoritminen tekniikka, joka sisältää ratkaisun etsimisen asteittain yrittämällä erilaisia ​​vaihtoehtoja ja kumoaminen jos ne johtavat a umpikuja .

Sitä käytetään yleisesti tilanteissa, joissa sinun on tutkittava useita mahdollisuuksia ratkaista ongelma, kuten etsiä polkua sokkelosta tai ratkaista pulmia, kuten Sudoku . Kun umpikuja saavutetaan, algoritmi palaa edelliseen päätöspisteeseen ja tutkii eri polkua, kunnes ratkaisu löytyy tai kaikki mahdollisuudet on käytetty.

kat timpf sisko

Kuinka paluualgoritmi toimii?

A paluualgoritmi toimii tutkimalla rekursiivisesti kaikkia mahdollisia ratkaisuja ongelmaan. Se alkaa valitsemalla alkuperäinen ratkaisu, ja sitten se tutkii kaikki mahdolliset tämän ratkaisun laajennukset. Jos laajennus johtaa ratkaisuun, algoritmi palauttaa kyseisen ratkaisun. Jos laajennus ei johda ratkaisuun, algoritmi palaa edelliseen ratkaisuun ja yrittää toista laajennusta.

Seuraavassa on yleiskuvaus siitä, kuinka paluualgoritmi toimii:

  1. Valitse ensimmäinen ratkaisu.
  2. Tutustu kaikkiin nykyisen ratkaisun mahdollisiin laajennuksiin.
  3. Jos laajennus johtaa ratkaisuun, palauta se.
  4. Jos laajennus ei johda ratkaisuun, palaa edelliseen ratkaisuun ja kokeile toista laajennusta.
  5. Toista vaiheita 2-4, kunnes kaikki mahdolliset ratkaisut on tutkittu.

Esimerkki paluualgoritmista

Esimerkki: Lyhimmän polun löytäminen sokkelon läpi

Syöte: 2D-taulukkona esitetty sokkelo, jossa 0 edustaa avointa tilaa ja 1 edustaa seinää.

Algoritmi:

  1. Aloita lähtöpisteestä.
  2. Yritä liikkua jokaisessa neljässä mahdollisessa suunnassa (ylös, alas, vasemmalle, oikealle).
  3. Jos liikkuminen tähän suuntaan johtaa päätepisteeseen, palauta valittu polku.
  4. Jos siihen suuntaan liikkuminen ei johda päätepisteeseen, palaa edelliseen asentoon ja kokeile toista suuntaa.
  5. Toista vaiheita 2-4, kunnes päätepiste on saavutettu tai kaikki mahdolliset polut on tutkittu.

Milloin paluualgoritmia käytetään?

Paluualgoritmeja käytetään parhaiten ratkaisemaan ongelmia, joilla on seuraavat ominaisuudet:

  • Ongelmaan on useita mahdollisia ratkaisuja.
  • Ongelma voidaan jakaa pienempiin osaongelmiin.
  • Aliongelmat voidaan ratkaista itsenäisesti.

Backtracking-algoritmin sovellukset

Paluualgoritmeja käytetään monenlaisissa sovelluksissa, mukaan lukien:

kuinka Android-kehittäjätila poistetaan käytöstä
  • pulmien ratkaiseminen (esim. Sudoku, ristisanatehtävät)
  • Lyhimmän polun löytäminen sokkelon läpi
  • Aikatauluongelmat
  • Resurssien allokointiongelmat
  • Verkon optimointiongelmat

Backtracking-algoritmin perusteet:

  • Ero Backtracking- ja Branch-N-Bound -tekniikan välillä
  • Mitä eroa on backtrackingilla ja rekursiolla?

Peruutusalgoritmin vakioongelmat:

  • Ritarin kiertueen ongelma
  • Rotta sokkelossa
  • N Queen Ongelma | Paluu-3
  • Osajoukon summa -ongelma
  • m Väritysongelma
  • Hamiltonin sykli
  • Sudoku | Paluu-7
  • Magneettinen palapeli
  • Poista virheelliset sulut
  • Perääntyvä lähestymistapa n bitin harmaakoodin luomiseen
  • Kirjoita ohjelma, joka tulostaa tietyn merkkijonon kaikki permutaatiot

Helpot ongelmat paluualgoritmissa:

  • Palaa takaisin löytääksesi kaikki osajoukot
  • Tarkista, onko annettu merkkijono summamerkkijono
  • Laske kaikki mahdolliset polut kahden kärjen välillä
  • Etsi kaikki tietyn joukon erilliset osajoukot
  • Selvitä, onko lähteestä yli k pituinen polku
  • Tulosta kaikki polut tietystä lähteestä määränpäähän
  • Tulosta kaikki mahdolliset merkkijonot, jotka voidaan tehdä välilyönnillä

Keskipitkät ongelmat paluualgoritmissa:

  • Köydenveto
  • 8 kuningatar ongelma
  • Yhdistelmäsumma
  • Warnsdorffin algoritmi Knightin kiertueen ongelmaan
  • Etsi polkuja kulmasolusta keskisoluun sokkelosta
  • Etsi suurin mahdollinen määrä tekemällä enintään K vaihtoa
  • Rotta sokkelossa, jossa on useita askeleita tai hyppy sallittu
  • N Kuningatar O(n)-tilassa

Vaikeita ongelmia paluualgoritmissa:

  • Tehosarja leksikografisessa järjestyksessä
  • Word Break -ongelma Backtracking-toiminnolla
  • Joukon jakaminen K osajoukoksi yhtä suurella summalla
  • Pisin mahdollinen reitti matriisissa esteiden kanssa
  • Etsi lyhin turvallinen reitti polulla, jossa on maamiinoja
  • Tulosta kaikki merkkijonon palindromiset osiot
  • Tulostetaan kaikki ratkaisut N-Queen-ongelmassa
  • Tulosta kaikki pisimmät yhteiset alajaksot leksikografisessa järjestyksessä

Pikalinkit:

  • Opi tietorakenne ja algoritmit | DSA opetusohjelma
  • 20 parasta paluualgoritmin haastattelukysymystä
  • 'Videot' Backtrackingista