diff --git a/graphes/leaudibidon/Water_jug(en_xz).tar b/graphes/leaudibidon/Water_jug(en_xz).tar new file mode 100644 index 0000000..dae43c7 Binary files /dev/null and b/graphes/leaudibidon/Water_jug(en_xz).tar differ diff --git a/graphes/leaudibidon/Water_jug.py b/graphes/leaudibidon/Water_jug.py index 8398243..8911541 100644 --- a/graphes/leaudibidon/Water_jug.py +++ b/graphes/leaudibidon/Water_jug.py @@ -311,8 +311,36 @@ def main(): print(affichage_chemin(chemin)) print("--------------------------------------") +def question1(): + + print("Non pas tous les quantités de litres peuvent être représenter comme 6l.") +def question2(): + for i in range(10): + resolutions = atteindre(i,creer_water_jug(3,5),None, True) + for (sommet_final, nb_etapes, chemin) in resolutions: + print(f"sommet atteint: {sommet_final}, en {nb_etapes} etapes") + print(affichage_chemin(chemin)) + print("--------------------------------------") +def question3(): + solution = atteindre(4,creer_water_jug(3,5),None,True) + for (sommet_final, nb_etapes, chemin) in solution: + print(f"sommet atteint: {sommet_final}, en {nb_etapes} etapes") + print(affichage_chemin(chemin)) + print("--------------------------------------") + +def question4(): + solution = atteindre(1,creer_water_jug(3,5,9),None,True) + for (sommet_final, nb_etapes, chemin) in solution: + print(f"sommet atteint: {sommet_final}, en {nb_etapes} etapes") + print(affichage_chemin(chemin)) + print("--------------------------------------") + if __name__ == "__main__": import doctest doctest.testmod(verbose=True) main() + question1() + question2() + question3() + question4() diff --git a/graphes/monday_homework.py b/graphes/monday_homework.py index a890570..b50e4d4 100644 --- a/graphes/monday_homework.py +++ b/graphes/monday_homework.py @@ -1,13 +1,13 @@ def construire_bfs(graphe: dict, origine: str) -> dict: """ - Construit un arbre BFS (Breadth-First Search) à partir d'un graphe donné et d'un sommet d'origine. + Construit un arbre BFS à partir de graphe et d'un sommet d'origine. Args: graphe (dict): Un dictionnaire représentant le graphe, où les clés sont les sommets et les valeurs sont des listes de sommets adjacents. origine (str): Le sommet de départ pour la recherche en largeur. Returns: - dict: Un dictionnaire représentant l'arbre BFS, où les clés sont les sommets et les valeurs sont des tuples contenant la distance depuis l'origine et le parent du sommet dans l'arbre BFS. + dict: Un dictionnaire représentant l'arbre BFS, où les clés sont les sommets et les valeurs sont des tuples contenant la distance depuis l'origine et le sommet precédent. Examples: >>> graphe = { @@ -52,14 +52,14 @@ def construire_bfs(graphe: dict, origine: str) -> dict: def construire_dfs(graphe: dict, origine: str) -> dict: """ - Construit un arbre DFS (Depth-First Search) à partir d'un graphe donné et d'un sommet d'origine. + Construit un arbre DFS à partir de graphe et d'un sommet d'origine. Args: graphe (dict): Un dictionnaire représentant le graphe, où les clés sont les sommets et les valeurs sont des listes de sommets adjacents. origine (str): Le sommet de départ pour la recherche en profondeur. Returns: - dict: Un dictionnaire représentant l'arbre DFS, où les clés sont les sommets et les valeurs sont des tuples contenant la distance depuis l'origine et le parent du sommet dans l'arbre DFS. + dict: Un dictionnaire représentant l'arbre DFS. Examples: >>> graphe = {