solution qui fonctionne a la question 2

This commit is contained in:
François Pelletier 2019-02-03 19:33:51 -05:00
parent a51b467a4f
commit ee935490b5

View file

@ -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):