solution qui fonctionne a la question 2
This commit is contained in:
parent
a51b467a4f
commit
ee935490b5
1 changed files with 31 additions and 4 deletions
|
@ -105,21 +105,48 @@ def depthFirstSearch(problem):
|
|||
if(problem.isGoalState(noeudCourant)):
|
||||
# print "Nous avons atteint le but !"
|
||||
return listeDirections
|
||||
break
|
||||
# Effectuer la recherche
|
||||
# Effectuer la recherche de successeurs
|
||||
for s in problem.getSuccessors(noeudCourant):
|
||||
# Decomposer le tuple pour faciliter la lecture
|
||||
succNoeudCourant, succDirection, succCost = s
|
||||
# Verifier si le noeud n'est pas deja visite
|
||||
# Verifier si le noeud n'est pas deja visite et n'est pas dans la pile
|
||||
if (succNoeudCourant not in maListeFermee):
|
||||
# Dans ce cas, ajouter le noeud et le chemin pour s'y rendre a la pile
|
||||
# print "Ajout du noeud à la pile: ", succNoeudCourant
|
||||
# print "Ajout du noeud a la pile: ", succNoeudCourant
|
||||
maPile.push((succNoeudCourant,listeDirections+[succDirection]))
|
||||
print "pas de solution"
|
||||
util.raiseNotDefined()
|
||||
|
||||
def breadthFirstSearch(problem):
|
||||
"""Search the shallowest nodes in the search tree first."""
|
||||
"*** YOUR CODE HERE ***"
|
||||
maFile = util.Queue()
|
||||
maListeFermee = []
|
||||
# Verifier si le depart est un but
|
||||
if problem.isGoalState(problem.getStartState()):
|
||||
return []
|
||||
# Mettre le premier noeud et un chemin vide dans la file
|
||||
maFile.push((problem.getStartState(),list()))
|
||||
while (not maFile.isEmpty()):
|
||||
# Extraire le noeud courant
|
||||
noeudCourant, listeDirections = maFile.pop()
|
||||
print "Noeud courant: ", noeudCourant
|
||||
# La marquer comme visite
|
||||
maListeFermee.append(noeudCourant)
|
||||
# Verifier si c'est un but
|
||||
if(problem.isGoalState(noeudCourant)):
|
||||
print "Nous avons atteint le but !"
|
||||
return listeDirections
|
||||
# Effectuer la recherche de successeurs
|
||||
for s in problem.getSuccessors(noeudCourant):
|
||||
# Decomposer le tuple pour faciliter la lecture
|
||||
succNoeudCourant, succDirection, succCost = s
|
||||
# Verifier si le noeud n'est pas deja visite et n'est pas dans la file
|
||||
if (succNoeudCourant not in maListeFermee+[i[0] for i in maFile.list]):
|
||||
# Dans ce cas, ajouter le noeud et le chemin pour s'y rendre a la file
|
||||
print "Ajout du noeud a la file: ", succNoeudCourant
|
||||
maFile.push((succNoeudCourant,listeDirections+[succDirection]))
|
||||
print "pas de solution"
|
||||
util.raiseNotDefined()
|
||||
|
||||
def uniformCostSearch(problem):
|
||||
|
|
Loading…
Add table
Reference in a new issue