Auto urgent commit.

This commit is contained in:
2025-01-21 09:48:14 +01:00
parent a19185c2c2
commit 52de54a105

View File

@@ -69,16 +69,19 @@ def construire_chemins(graphe, depart):
:effet de bord: Aucun :effet de bord: Aucun
""" """
visited = set() resultat = dict()
queue = Deque([depart]) file = [depart]
visited.add(depart) resultat[depart] = (0,None) # Ajout du départ qui n'a aucun predecesseur
while queue: while len(file) == 0:
vertex = queue.popleft() sommet = file.pop(0)
for voisin in graphe.voisins[sommet]:
if voisin not in resultat:
distance = resultat[sommet][0] + 1 # resultat[sommet][0] donne la distance a partir du sommet donner et +1 pour l sommet d'après
resultat[voisin] = (distance,sommet)
file.append(voisin)
return resultat
for neighbor in graphe[vertex]:
if neighbor not in visited:
visited.add(neighbor)
queue.append(neighbor)
def reconstruire_chemin_vers(dico_chemins, *arrivee): def reconstruire_chemin_vers(dico_chemins, *arrivee):
@@ -91,7 +94,14 @@ def reconstruire_chemin_vers(dico_chemins, *arrivee):
(si vide, on considère tous les sommets) (si vide, on considère tous les sommets)
:return resultat list: liste des chemins ie des listes de sommets traversés :return resultat list: liste des chemins ie des listes de sommets traversés
""" """
chemins = list()
cibles = [arrivee]
if not cibles:
return dico_chemins.keys()
for sommet in cibles:
sommet
#todo
return []
def affichage_chemin(chemin): def affichage_chemin(chemin):
""" """
@@ -123,6 +133,7 @@ def remplir(numero, etat, capacites):
:param numero INT: index du bidon :param numero INT: index du bidon
:param etat tuple: etat des bidons avant l'opération :param etat tuple: etat des bidons avant l'opération
:param capacites tuple: capacités des bidons
:return tuple: nouvel etat aprés opération :return tuple: nouvel etat aprés opération
:effet de bord: aucun :effet de bord: aucun
""" """
@@ -159,7 +170,7 @@ def produit_cartesien(*listes):
:param *listes: un nombre quelconque de listes de tuples :param *listes: un nombre quelconque de listes de tuples
:return list: une liste des tuples concaténés :return list: une liste des tuples concaténés
Exemple : Exemple
-------- --------
>>> produit_cartesien([(1,2), (3, 4)], [(5, 6), (7, 8,)]) >>> produit_cartesien([(1,2), (3, 4)], [(5, 6), (7, 8,)])
[(1, 2, 5, 6), (1, 2, 7, 8), (3, 4, 5, 6), (3, 4, 7, 8)] [(1, 2, 5, 6), (1, 2, 7, 8), (3, 4, 5, 6), (3, 4, 7, 8)]
@@ -185,6 +196,7 @@ def creer_water_jug(*capacites):
:effet de bord: Aucun :effet de bord: Aucun
""" """
nb_bidons = len(capacites) nb_bidons = len(capacites)
print(len(capacites))
assert nb_bidons >= 2, "Pas assez de bidons" assert nb_bidons >= 2, "Pas assez de bidons"
resultat = Graphe_Oriente() resultat = Graphe_Oriente()
# CREATION DES SOMMETS # CREATION DES SOMMETS
@@ -253,7 +265,13 @@ def atteindre(quantite, graphe_water_jug, depart = None, plus_court=False):
return [element for element in resultat if element[1]==mini] return [element for element in resultat if element[1]==mini]
def main(): def main():
pass for sommet in graphe.sommet:
affichage_chemin(list(creer_water_jug(3,5)))
if __name__ == "__main__": if __name__ == "__main__":
main() main()