[informatica] backtracking

Moderators: ArcherBarry, Fuzzwood

Reageer
Berichten: 12

backtracking

Beste
 
Heeft iemand een algemeen stappenplan dat gevolg kan worden voor backtracking(in python) ? Want ik heb volgend week daar examen van en ik snap het eerlijk gezegd nog niet zo goed, recursie gaat beter maar ook nog moeilijkheden mee.
 
 
 
 
 
alvast bedankt!
 
 
 

Berichten: 12

Re: backtracking

niemand?

Gebruikersavatar
Berichten: 778

Re: backtracking

Wat weet je er zelf wel over?
 
Een algemeen stappenplan kan zijn:
"Als je op een keuzepunt staat, maak je een keuze, en probeer je of de gekozen route naar een oplossing leidt. Loop je bij de gekozen route vast, dan ga je terug naar je keuzepunt, en maak je een andere keuze."

Gebruikersavatar
Berichten: 2.609

Re: backtracking

Zoals hierboven gezegd ben je inderdaad nogal vaag.
De uitleg van Back2Basics in pseudocode zou er als volgt uitzien:
 
Stel dat we een puzzel willen oplossen. Een puzzel heeft een zekere staat (configuratie van de elementen) en een zekere oplossing (eindconfiguratie die we willen bereiken). In een bepaalde staat proberen we 1 voor 1 alle mogelijke moves uit in die staat en we roepen de DFS functie recursief op. Als een oplossing gevonden wordt dan moeten er geen andere moves meer uitgevoerd worden. Indien er geen oplossing gevonden werd, dan maken we de move ongedaan en proberen we een andere move uit. Als geen enkele van de moves tot een oplossing leidde, dan returnen we False. De code zal backtracken tot het al dan niet een oplossing vindt.

Code: Selecteer alles

def DFS(staat):
  if isOplossing(staat):
      return True
  for move in mogelijkeMoves(staat):
    pasMoveToe(staat, move)
    check = DFS(staat)
    if check:
        return True
    else:
        maakMoveOngedaan(staat, move)
  return False
 
DFS(beginstaat)
DFS staat voor "depth first search". Met die zoekterm vind je op het internet eventueel meer info en voorbeelden.

Reageer