Chapitre I : la résolution des problèmes par la recherche
Master 1 SIC/MID
Belabed Amine
Université De Tlemcen – Faculté des sciences, Département d’Informatique
2019-2020
1/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 1 / 45
Introduction
Un problème : une situation devant laquelle on ne voit pas directement les étapes permettant de dépasser la situation et obtenir la solution.
2/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 2 / 45
Résoudre un problème : revient à chercher un chemin qui mène d’une situation initiale à une autre finale pour atteindre un but.
Exemples : les jeux, planification , la preuve de théorèmes , · · ·
La démarche d’IA :
L’algorithme doit être "neutre" sur le domaine concerné
Les connaissances de description du problème et de sa résolution doivent être clairement séparés de l’algorithme.
Introduction
Un problème : une situation devant laquelle on ne voit pas directement les étapes permettant de dépasser la situation et obtenir la solution.
Résoudre un problème : revient à chercher un chemin qui mène d’une situation initiale à une autre finale pour atteindre un but.
2/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 2 / 45
Exemples : les jeux, planification , la preuve de théorèmes , · · ·
La démarche d’IA :
L’algorithme doit être "neutre" sur le domaine concerné
Les connaissances de description du problème et de sa résolution doivent être clairement séparés de l’algorithme.
Introduction
Un problème : une situation devant laquelle on ne voit pas directement les étapes permettant de dépasser la situation et obtenir la solution.
Résoudre un problème : revient à chercher un chemin qui mène d’une situation initiale à une autre finale pour atteindre un but.
Exemples : les jeux, planification , la preuve de théorèmes , · · ·
2/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 2 / 45
La démarche d’IA :
L’algorithme doit être "neutre" sur le domaine concerné
Les connaissances de description du problème et de sa résolution doivent être clairement séparés de l’algorithme.
Introduction
Un problème : une situation devant laquelle on ne voit pas directement les étapes permettant de dépasser la situation et obtenir la solution.
Résoudre un problème : revient à chercher un chemin qui mène d’une situation initiale à une autre finale pour atteindre un but.
Exemples : les jeux, planification , la preuve de théorèmes , · · ·
La démarche d’IA :
2/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 2 / 45
L’algorithme doit être "neutre" sur le domaine concerné
Les connaissances de description du problème et de sa résolution doivent être clairement séparés de l’algorithme.
Introduction
Un problème : une situation devant laquelle on ne voit pas directement les étapes permettant de dépasser la situation et obtenir la solution.
Résoudre un problème : revient à chercher un chemin qui mène d’une situation initiale à une autre finale pour atteindre un but.
Exemples : les jeux, planification , la preuve de théorèmes , · · ·
La démarche d’IA :
L’algorithme doit être "neutre" sur le domaine concerné
2/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 2 / 45
Les connaissances de description du problème et de sa résolution doivent être clairement séparés de l’algorithme.
Introduction
Un problème : une situation devant laquelle on ne voit pas directement les étapes permettant de dépasser la situation et obtenir la solution.
Résoudre un problème : revient à chercher un chemin qui mène d’une situation initiale à une autre finale pour atteindre un but.
Exemples : les jeux, planification , la preuve de théorèmes , · · ·
La démarche d’IA :
L’algorithme doit être "neutre" sur le domaine concerné
Les connaissances de description du problème et de sa résolution doivent être clairement séparés de l’algorithme.
2/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 2 / 45
Comment définir un problème ?
Un problème peut être définit par 5 composants :
1 Définir l’espace des états .
3/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 3 / 45
2
3
Définir l’état initial : l’état de départ ;
Définir les opérateurs
4
5
Une fonction de test :permettant de savoir que la solution est trouvée.
Une fonction de coût :Associe un coût au chemin de la solution.
Fonction successeur : permettant de retourner l’ensemble des états atteignables par une action particulière.
L’état initial + l’ensemble des états atteignables : l’espace des états.
Un chemin dans l’espace des états est une séquence d’états connectés par une séquence d’actions (opérations).
Une solution optimale est une solution qui minimise la fonction de coût.
Comment définir un problème ?
Un problème peut être définit par 5 composants :
1 Définir l’espace des états .
2 Définir l’état initial : l’état de départ ;
3/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 3 / 45
3
Définir les opérateurs
4
5
Une fonction de test :permettant de savoir que la solution est trouvée.
Une fonction de coût :Associe un coût au chemin de la solution.
Fonction successeur : permettant de retourner l’ensemble des états atteignables par une action particulière.
L’état initial + l’ensemble des états atteignables : l’espace des états.
Un chemin dans l’espace des états est une séquence d’états connectés par une séquence d’actions (opérations).
Une solution optimale est une solution qui minimise la fonction de coût.
Comment définir un problème ?
Un problème peut être définit par 5 composants :
1 Définir l’espace des états .
2
3
Définir l’état initial : l’état de départ ;
Définir les opérateurs
3/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 3 / 45
4
5
Fonction successeur : permettant de retourner l’ensemble des états atteignables par une action particulière.
L’état initial + l’ensemble des états atteignables : l’espace des états.
Un chemin dans l’espace des états est une séquence d’états connectés par une séquence d’actions (opérations).
Une fonction de test :permettant de savoir que la solution est trouvée.
Une fonction de coût :Associe un coût au chemin de la solution.
Une solution optimale est une solution qui minimise la fonction de coût.
Comment définir un problème ?
Un problème peut être définit par 5 composants :
1 Définir l’espace des états .
2
3
Définir l’état initial : l’état de départ ;
Définir les opérateurs
Fonction successeur : permettant de retourner l’ensemble des états atteignables par une action particulière.
3/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 3 / 45
4
5
L’état initial + l’ensemble des états atteignables : l’espace des états.
Un chemin dans l’espace des états est une séquence d’états connectés par une séquence d’actions (opérations).
Une fonction de test :permettant de savoir que la solution est trouvée.
Une fonction de coût :Associe un coût au chemin de la solution.
Une solution optimale est une solution qui minimise la fonction de coût.
Comment définir un problème ?
Un problème peut être définit par 5 composants :
1 Définir l’espace des états .
2
3
Définir l’état initial : l’état de départ ;
Définir les opérateurs
Fonction successeur : permettant de retourner l’ensemble des états atteignables par une action particulière.
L’état initial + l’ensemble des états atteignables : l’espace des états.
3/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 3 / 45
4
5
Un chemin dans l’espace des états est une séquence d’états connectés par une séquence d’actions (opérations).
Une fonction de test :permettant de savoir que la solution est trouvée.
Une fonction de coût :Associe un coût au chemin de la solution.
Une solution optimale est une solution qui minimise la fonction de coût.
Comment définir un problème ?
Un problème peut être définit par 5 composants :
1 Définir l’espace des états .
2
3
Définir l’état initial : l’état de départ ;
Définir les opérateurs
Fonction successeur : permettant de retourner l’ensemble des états atteignables par une action particulière.
L’état initial + l’ensemble des états atteignables : l’espace des états.
Un chemin dans l’espace des états est une séquence d’états connectés par une séquence d’actions (opérations).
3/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 3 / 45
4
5
Une fonction de test :permettant de savoir que la solution est trouvée.
Une fonction de coût :Associe un coût au chemin de la solution.
Une solution optimale est une solution qui minimise la fonction de coût.
Comment définir un problème ?
Un problème peut être définit par 5 composants :
1 Définir l’espace des états .
2
3
4
Définir l’état initial : l’état de départ ;
Définir les opérateurs
Fonction successeur : permettant de retourner l’ensemble des états atteignables par une action particulière.
L’état initial + l’ensemble des états atteignables : l’espace des états.
Un chemin dans l’espace des états est une séquence d’états connectés par une séquence d’actions (opérations).
Une fonction de test :permettant de savoir que la solution est trouvée.
3/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 3 / 45
5
Une fonction de coût :Associe un coût au chemin de la solution.
Une solution optimale est une solution qui minimise la fonction de coût.
Comment définir un problème ?
Un problème peut être définit par 5 composants :
1 Définir l’espace des états .
2
3
4
5
Définir l’état initial : l’état de départ ;
Définir les opérateurs
Fonction successeur : permettant de retourner l’ensemble des états atteignables par une action particulière.
L’état initial + l’ensemble des états atteignables : l’espace des états.
Un chemin dans l’espace des états est une séquence d’états connectés par une séquence d’actions (opérations).
Une fonction de test :permettant de savoir que la solution est trouvée.
Une fonction de coût :Associe un coût au chemin de la solution.
3/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 3 / 45
Une solution optimale est une solution qui minimise la fonction de coût.
Comment définir un problème ?
Un problème peut être définit par 5 composants :
1 Définir l’espace des états .
2
3
4
5
Définir l’état initial : l’état de départ ;
Définir les opérateurs
Fonction successeur : permettant de retourner l’ensemble des états atteignables par une action particulière.
L’état initial + l’ensemble des états atteignables : l’espace des états.
Un chemin dans l’espace des états est une séquence d’états connectés par une séquence d’actions (opérations).
Une fonction de test :permettant de savoir que la solution est trouvée.
Une fonction de coût :Associe un coût au chemin de la solution.
Une solution optimale est une solution qui minimise la fonction de coût.
3/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 3 / 45
Comment définir un problème ?
Exemple : Le jeu de taquin
L’espace des états et état initial : ?
les Actions (opérateurs) ?
Test du but ?
Le coût d’une Action ?
4/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 4 / 45
Comment définir un problème ?
Exemple : Le jeu de taquin
L’espace des états et état initial : chaque état est une disposition de chiffres.
5/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 5 / 45
Les Actions (opérateurs) : déplacer le blanc à gauche, à droite, en haut ou en bas.
Test du but : l’etat final est donné.
Le coût d’une Action : 1 / mouvement.
Comment définir un problème ?
Exemple : Le jeu de taquin
L’espace des états et état initial : chaque état est une disposition de chiffres.
Les Actions (opérateurs) : déplacer le blanc à gauche, à droite, en haut ou en bas.
5/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 5 / 45
Test du but : l’etat final est donné.
Le coût d’une Action : 1 / mouvement.
Comment définir un problème ?
Exemple : Le jeu de taquin
L’espace des états et état initial : chaque état est une disposition de chiffres.
Les Actions (opérateurs) : déplacer le blanc à gauche, à droite, en haut ou en bas.
Test du but : l’etat final est donné.
5/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 5 / 45
Le coût d’une Action : 1 / mouvement.
Comment définir un problème ?
Exemple : Le jeu de taquin
5/45
L’espace des états et état initial : chaque état est une disposition de chiffres.
Les Actions (opérateurs) : déplacer le blanc à gauche, à droite, en haut ou en bas.
Test du but : l’etat final est donné.
Le coût d’une Action : 1 / mouvement.
A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 5 / 45
Comment définir un problème ?
Exemple : Le jeu de taquin (Espace des états)
6/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 6 / 45
Comment définir un problème ?
Exemple : Le jeu de taquin, un problème difficile.
8-puzzle a 9 ! états possibles.
15-puzzle a environ de 1.3 x 10
12
états.
24-puzzle a 10
25
états ! ! !
7/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 7 / 45
Critères d’évaluation d’un algorithme de résolution
La complétude : lorsque la méthode garantit de trouver une solution si elle existe ;
8/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 8 / 45
L’optimalité : ce critère concerne l’optimalité de la solution trouvée, en se basant sur une fonction de coût ;
La complexité en temps : Combien de temps faut-il pour trouver une solution ;
La complexité en espace : combien l’algorithme utilise de la mémoire pour trouver une solution.
Critères d’évaluation d’un algorithme de résolution
La complétude : lorsque la méthode garantit de trouver une solution si elle existe ;
L’optimalité : ce critère concerne l’optimalité de la solution trouvée, en se basant sur une fonction de coût ;
8/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 8 / 45
La complexité en temps : Combien de temps faut-il pour trouver une solution ;
La complexité en espace : combien l’algorithme utilise de la mémoire pour trouver une solution.
Critères d’évaluation d’un algorithme de résolution
La complétude : lorsque la méthode garantit de trouver une solution si elle existe ;
L’optimalité : ce critère concerne l’optimalité de la solution trouvée, en se basant sur une fonction de coût ;
La complexité en temps : Combien de temps faut-il pour trouver une solution ;
8/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 8 / 45
La complexité en espace : combien l’algorithme utilise de la mémoire pour trouver une solution.
Critères d’évaluation d’un algorithme de résolution
La complétude : lorsque la méthode garantit de trouver une solution si elle existe ;
L’optimalité : ce critère concerne l’optimalité de la solution trouvée, en se basant sur une fonction de coût ;
La complexité en temps : Combien de temps faut-il pour trouver une solution ;
La complexité en espace : combien l’algorithme utilise de la mémoire pour trouver une solution.
8/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 8 / 45
Critères d’évaluation d’un algorithme de résolution
−→ Le Big O (Borne supérieure asymptotique)
Définit la limite supérieure (en temps ou en espace) d’un algorithme.
Définit la grandeur d’une fonction (comportement à l’infini).
Big O
On dit qu’une fonction f est un grand O d’une fonction g si et seulement si : ∃ c > 0, ∃ n
0
> 0 tel que ∀ n > n
0
, f ( n ) < c × g ( n )
Exemples :
9/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 9 / 45
Si f ( n ) = 4 alors f ( n ) = O (1) , prendre par exemple c=5 et n0=0.
Si f ( n ) = 3 n + 2 alors f ( n ) = O ( n ) , prendre par exemple c=4 et n0=2.
Si f ( n ) = n 2 + 3 alors f ( n ) = O ( n 2 ) , prendre par exemple c=3 et n0=1.
Critères d’évaluation d’un algorithme de résolution
−→ Le Big O (Borne supérieure asymptotique)
Définit la limite supérieure (en temps ou en espace) d’un algorithme.
Définit la grandeur d’une fonction (comportement à l’infini).
Big O
On dit qu’une fonction f est un grand O d’une fonction g si et seulement si : ∃ c > 0, ∃ n
0
> 0 tel que ∀ n > n
0
, f ( n ) < c × g ( n )
Exemples :
Si f ( n ) = 4 alors f ( n ) = O (1) , prendre par exemple c=5 et n0=0.
9/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 9 / 45
Si f ( n ) = 3 n + 2 alors f ( n ) = O ( n ) , prendre par exemple c=4 et n0=2.
Si f ( n ) = n 2 + 3 alors f ( n ) = O ( n 2 ) , prendre par exemple c=3 et n0=1.
Critères d’évaluation d’un algorithme de résolution
−→ Le Big O (Borne supérieure asymptotique)
Définit la limite supérieure (en temps ou en espace) d’un algorithme.
Définit la grandeur d’une fonction (comportement à l’infini).
Big O
On dit qu’une fonction f est un grand O d’une fonction g si et seulement si : ∃ c > 0, ∃ n
0
> 0 tel que ∀ n > n
0
, f ( n ) < c × g ( n )
Exemples :
Si f ( n ) = 4 alors f ( n ) = O (1) , prendre par exemple c=5 et n0=0.
Si f ( n ) = 3 n + 2 alors f ( n ) = O ( n ) , prendre par exemple c=4 et n0=2.
9/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 9 / 45
Si f ( n ) = n 2 + 3 alors f ( n ) = O ( n 2 ) , prendre par exemple c=3 et n0=1.
Critères d’évaluation d’un algorithme de résolution
−→ Le Big O (Borne supérieure asymptotique)
Définit la limite supérieure (en temps ou en espace) d’un algorithme.
Définit la grandeur d’une fonction (comportement à l’infini).
Big O
On dit qu’une fonction f est un grand O d’une fonction g si et seulement si : ∃ c > 0, ∃ n
0
> 0 tel que ∀ n > n
0
, f ( n ) < c × g ( n )
Exemples :
Si f ( n ) = 4 alors f ( n ) = O (1) , prendre par exemple c=5 et n0=0.
Si f ( n ) = 3 n + 2 alors f ( n ) = O ( n ) , prendre par exemple c=4 et n0=2.
Si f ( n ) = n 2 + 3 alors f ( n ) = O ( n 2 ) , prendre par exemple c=3 et n0=1.
9/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 9 / 45
Critères d’évaluation d’un algorithme de résolution
−→ Le Big O (Borne supérieure asymptotique)
Complexité de quelques algorithmes :
10/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 10 / 45
Accès à un tableau : O (1) ,complexité constante.
Recherche dichotomique : O ( log ( n ) , complexité logarithmique.
Parcours d’une liste : O ( n ) , complexité linéaire.
Parcours de tableau 2D : O ( n 2 ) , complexité quadratique (polynomiale).
Problème du sac à dos (brute force) : O (2 poly ( n ) ) , complexité exponentielle.
Critères d’évaluation d’un algorithme de résolution
−→ Le Big O (Borne supérieure asymptotique)
Complexité de quelques algorithmes :
Accès à un tableau : O (1) ,complexité constante.
10/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 10 / 45
Recherche dichotomique : O ( log ( n ) , complexité logarithmique.
Parcours d’une liste : O ( n ) , complexité linéaire.
Parcours de tableau 2D : O ( n 2 ) , complexité quadratique (polynomiale).
Problème du sac à dos (brute force) : O (2 poly ( n ) ) , complexité exponentielle.
Critères d’évaluation d’un algorithme de résolution
−→ Le Big O (Borne supérieure asymptotique)
Complexité de quelques algorithmes :
Accès à un tableau : O (1) ,complexité constante.
Recherche dichotomique : O ( log ( n ) , complexité logarithmique.
10/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 10 / 45
Parcours d’une liste : O ( n ) , complexité linéaire.
Parcours de tableau 2D : O ( n 2 ) , complexité quadratique (polynomiale).
Problème du sac à dos (brute force) : O (2 poly ( n ) ) , complexité exponentielle.
Critères d’évaluation d’un algorithme de résolution
−→ Le Big O (Borne supérieure asymptotique)
Complexité de quelques algorithmes :
Accès à un tableau : O (1) ,complexité constante.
Recherche dichotomique : O ( log ( n ) , complexité logarithmique.
Parcours d’une liste : O ( n ) , complexité linéaire.
10/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 10 / 45
Parcours de tableau 2D : O ( n 2 ) , complexité quadratique (polynomiale).
Problème du sac à dos (brute force) : O (2 poly ( n ) ) , complexité exponentielle.
Critères d’évaluation d’un algorithme de résolution
−→ Le Big O (Borne supérieure asymptotique)
Complexité de quelques algorithmes :
Accès à un tableau : O (1) ,complexité constante.
Recherche dichotomique : O ( log ( n ) , complexité logarithmique.
Parcours d’une liste : O ( n ) , complexité linéaire.
Parcours de tableau 2D : O ( n 2 ) , complexité quadratique (polynomiale).
10/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 10 / 45
Problème du sac à dos (brute force) : O (2 poly ( n ) ) , complexité exponentielle.
Critères d’évaluation d’un algorithme de résolution
−→ Le Big O (Borne supérieure asymptotique)
10/45
Complexité de quelques algorithmes :
Accès à un tableau : O (1) ,complexité constante.
Recherche dichotomique : O ( log ( n ) , complexité logarithmique.
Parcours d’une liste : O ( n ) , complexité linéaire.
Parcours de tableau 2D : O ( n 2 ) , complexité quadratique (polynomiale).
Problème du sac à dos (brute force) : O (2 poly ( n ) ) , complexité exponentielle.
A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 10 / 45
Critères d’évaluation d’un algorithme de résolution
La complexité est exprimée en utilisant les quantités suivantes : b , le facteur de branchement : le nombre maximum de successeurs à un nœud ; si elle existe ;
11/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 11 / 45 d , la profondeur du nœud but le moins profond (profondeur de la solution) ; m : la longueur maximale d’un chemin dans l’espace d’états
(profondeur maximum de l’arbre de recherche).
Critères d’évaluation d’un algorithme de résolution
La complexité est exprimée en utilisant les quantités suivantes : b , le facteur de branchement : le nombre maximum de successeurs à un nœud ; si elle existe ; d , la profondeur du nœud but le moins profond (profondeur de la solution) ;
11/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 11 / 45 m : la longueur maximale d’un chemin dans l’espace d’états
(profondeur maximum de l’arbre de recherche).
Critères d’évaluation d’un algorithme de résolution
La complexité est exprimée en utilisant les quantités suivantes : b , le facteur de branchement : le nombre maximum de successeurs à un nœud ; si elle existe ; d , la profondeur du nœud but le moins profond (profondeur de la solution) ; m : la longueur maximale d’un chemin dans l’espace d’états
(profondeur maximum de l’arbre de recherche).
11/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 11 / 45
Stratégies de recherche de solution
Deux types de stratégies ont été développés :
L’exploration non informée : ne dispose pas d’information sur les
états. Elle peut générer des successeurs et distinguer un état final d’un état non final.
12/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 12 / 45
L’exploration informée : elle est capable de déterminer si un état non final est plus prometteur qu’un autre.
Stratégies de recherche de solution
Deux types de stratégies ont été développés :
L’exploration non informée : ne dispose pas d’information sur les
états. Elle peut générer des successeurs et distinguer un état final d’un état non final.
L’exploration informée : elle est capable de déterminer si un état non final est plus prometteur qu’un autre.
12/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 12 / 45
Les algorithmes de recherche non informés
13/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 13 / 45
Les algorithmes de recherche non informés
1 Recherche en largeur d’abord ( Breadth-first search, BFS ).
14/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 14 / 45
2
3
4
5
Recherche en profondeur d’abord ( Depth-first search, DFS ).
Recherche en profondeur limitée ( Depth-limited search, DLS ).
Recherche en profondeur itérative ( Iterative deepening depth-first search, IDS ).
Recherche à cout uniforme ( Uniform-cost search UCS ).
Les algorithmes de recherche non informés
1
2
Recherche en largeur d’abord ( Breadth-first search, BFS ).
Recherche en profondeur d’abord ( Depth-first search, DFS ).
14/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 14 / 45
3
4
5
Recherche en profondeur limitée ( Depth-limited search, DLS ).
Recherche en profondeur itérative ( Iterative deepening depth-first search, IDS ).
Recherche à cout uniforme ( Uniform-cost search UCS ).
Les algorithmes de recherche non informés
1
2
3
Recherche en largeur d’abord ( Breadth-first search, BFS ).
Recherche en profondeur d’abord ( Depth-first search, DFS ).
Recherche en profondeur limitée ( Depth-limited search, DLS ).
14/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 14 / 45
4
5
Recherche en profondeur itérative ( Iterative deepening depth-first search, IDS ).
Recherche à cout uniforme ( Uniform-cost search UCS ).
Les algorithmes de recherche non informés
1
2
3
4
Recherche en largeur d’abord ( Breadth-first search, BFS ).
Recherche en profondeur d’abord ( Depth-first search, DFS ).
Recherche en profondeur limitée ( Depth-limited search, DLS ).
Recherche en profondeur itérative ( Iterative deepening depth-first search, IDS ).
14/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 14 / 45
5
Recherche à cout uniforme ( Uniform-cost search UCS ).
Les algorithmes de recherche non informés
1
2
3
4
5
Recherche en largeur d’abord ( Breadth-first search, BFS ).
Recherche en profondeur d’abord ( Depth-first search, DFS ).
Recherche en profondeur limitée ( Depth-limited search, DLS ).
Recherche en profondeur itérative ( Iterative deepening depth-first search, IDS ).
Recherche à cout uniforme ( Uniform-cost search UCS ).
14/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 14 / 45
Structure générale d’un algorithme de recherche
Set Open= { E
0
} ;
Set Closed= {} ; repeat if Open= {} then fin avec echec; else choisir un noeud n de Open ( supprimer de Open save to
Closed ) ; if n ∈ But (état final) then fin avec succès ; else générer les successeurs m de n (utilisation des opérations);
Insérer les dans Open ( seulement si m / Open ∪ Closed } ); end end until ;
Algorithme 1 : Algorithme générale de recherche
15/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 15 / 45
Recherche en largeur d’abord (Breadth-first search, BFS).
Principe : On examine d’abord l’état initial, puis ses successeurs, puis les successeurs des successeurs, etc.
Analyse de l’algorithme de recherche en largeur d’abord :
Complétude : oui pour les espaces d‘états finis et acycliques
16/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 16 / 45
Complexité en temps : exponentielle, O ( b d
) ( O ( b d +1
)) où d est la profondeur et b est le facteur de branchement.
Complexité en espace : exponentielle , O ( b d
).
Optimalité : non.
Recherche en largeur d’abord (Breadth-first search, BFS).
Principe : On examine d’abord l’état initial, puis ses successeurs, puis les successeurs des successeurs, etc.
Analyse de l’algorithme de recherche en largeur d’abord :
Complétude : oui pour les espaces d‘états finis et acycliques
Complexité en temps : exponentielle, O ( b d
) ( O ( b d +1
)) où d est la profondeur et b est le facteur de branchement.
16/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 16 / 45
Complexité en espace : exponentielle , O ( b d
).
Optimalité : non.
Recherche en largeur d’abord (Breadth-first search, BFS).
Principe : On examine d’abord l’état initial, puis ses successeurs, puis les successeurs des successeurs, etc.
Analyse de l’algorithme de recherche en largeur d’abord :
Complétude : oui pour les espaces d‘états finis et acycliques
Complexité en temps : exponentielle, O ( b d
) ( O ( b d +1
)) où d est la profondeur et b est le facteur de branchement.
Complexité en espace : exponentielle , O ( b d
).
16/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 16 / 45
Optimalité : non.
Recherche en largeur d’abord (Breadth-first search, BFS).
Principe : On examine d’abord l’état initial, puis ses successeurs, puis les successeurs des successeurs, etc.
Analyse de l’algorithme de recherche en largeur d’abord :
Complétude : oui pour les espaces d‘états finis et acycliques
Complexité en temps : exponentielle, O ( b d
) ( O ( b d +1
)) où d est la profondeur et b est le facteur de branchement.
Complexité en espace : exponentielle , O ( b d
).
Optimalité : non.
16/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 16 / 45
Recherche en profondeur d’abord (Depth-first search, DFS)
Principe : On examine d’abord l’état initial, puis le premier fils, puis le fils du fils, etc.
Analyse de l’algorithme :
Complétude : oui pour les espaces d‘états finis et acycliques
17/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 17 / 45
Complexité en temps : exponentielle, O ( b m
).
Complexité en espace : O ( b ∗ m ) (linéaire).
Optimalité : non.
Discussion : pour b=10, d=m=12 et 100 octets/noeud :
Recherche en profondeur : 12 Ko.
Recherche en largeur 111 Tera-octets.
Recherche en profondeur d’abord (Depth-first search, DFS)
Principe : On examine d’abord l’état initial, puis le premier fils, puis le fils du fils, etc.
Analyse de l’algorithme :
Complétude : oui pour les espaces d‘états finis et acycliques
Complexité en temps : exponentielle, O ( b m
).
17/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 17 / 45
Complexité en espace : O ( b ∗ m ) (linéaire).
Optimalité : non.
Discussion : pour b=10, d=m=12 et 100 octets/noeud :
Recherche en profondeur : 12 Ko.
Recherche en largeur 111 Tera-octets.
Recherche en profondeur d’abord (Depth-first search, DFS)
Principe : On examine d’abord l’état initial, puis le premier fils, puis le fils du fils, etc.
Analyse de l’algorithme :
Complétude : oui pour les espaces d‘états finis et acycliques
Complexité en temps : exponentielle, O ( b m
).
Complexité en espace : O ( b ∗ m ) (linéaire).
17/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 17 / 45
Optimalité : non.
Discussion : pour b=10, d=m=12 et 100 octets/noeud :
Recherche en profondeur : 12 Ko.
Recherche en largeur 111 Tera-octets.
Recherche en profondeur d’abord (Depth-first search, DFS)
Principe : On examine d’abord l’état initial, puis le premier fils, puis le fils du fils, etc.
Analyse de l’algorithme :
Complétude : oui pour les espaces d‘états finis et acycliques
Complexité en temps : exponentielle, O ( b m
).
Complexité en espace : O ( b ∗ m ) (linéaire).
Optimalité : non.
17/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 17 / 45
Discussion : pour b=10, d=m=12 et 100 octets/noeud :
Recherche en profondeur : 12 Ko.
Recherche en largeur 111 Tera-octets.
Recherche en profondeur d’abord (Depth-first search, DFS)
Principe : On examine d’abord l’état initial, puis le premier fils, puis le fils du fils, etc.
Analyse de l’algorithme :
Complétude : oui pour les espaces d‘états finis et acycliques
Complexité en temps : exponentielle, O ( b m
).
Complexité en espace : O ( b ∗ m ) (linéaire).
Optimalité : non.
Discussion : pour b=10, d=m=12 et 100 octets/noeud :
17/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 17 / 45
Recherche en profondeur : 12 Ko.
Recherche en largeur 111 Tera-octets.
Recherche en profondeur d’abord (Depth-first search, DFS)
Principe : On examine d’abord l’état initial, puis le premier fils, puis le fils du fils, etc.
Analyse de l’algorithme :
Complétude : oui pour les espaces d‘états finis et acycliques
Complexité en temps : exponentielle, O ( b m
).
Complexité en espace : O ( b ∗ m ) (linéaire).
Optimalité : non.
Discussion : pour b=10, d=m=12 et 100 octets/noeud :
Recherche en profondeur : 12 Ko.
17/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 17 / 45
Recherche en largeur 111 Tera-octets.
Recherche en profondeur d’abord (Depth-first search, DFS)
Principe : On examine d’abord l’état initial, puis le premier fils, puis le fils du fils, etc.
Analyse de l’algorithme :
Complétude : oui pour les espaces d‘états finis et acycliques
Complexité en temps : exponentielle, O ( b m
).
Complexité en espace : O ( b ∗ m ) (linéaire).
Optimalité : non.
Discussion : pour b=10, d=m=12 et 100 octets/noeud :
Recherche en profondeur : 12 Ko.
Recherche en largeur 111 Tera-octets.
17/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 17 / 45
Recherche en profondeur limitée (Depth-limited search,
DLS)
Principe : algorithme de recherche en profondeur avec une limite de profondeur d’exploration L.
Les noeuds de profondeur L n’ont pas de successeurs
Analyse de l’algorithme :
Complétude : Oui si L ≥ d
18/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 18 / 45
Complexité en temps : exponentielle, O ( b
L
).
Complexité en espace : O ( b ∗ L ) (linéaire).
Optimalité : non.
Recherche en profondeur limitée (Depth-limited search,
DLS)
Principe : algorithme de recherche en profondeur avec une limite de profondeur d’exploration L.
Les noeuds de profondeur L n’ont pas de successeurs
Analyse de l’algorithme :
Complétude : Oui si L ≥ d
Complexité en temps : exponentielle, O ( b
L
).
18/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 18 / 45
Complexité en espace : O ( b ∗ L ) (linéaire).
Optimalité : non.
Recherche en profondeur limitée (Depth-limited search,
DLS)
Principe : algorithme de recherche en profondeur avec une limite de profondeur d’exploration L.
Les noeuds de profondeur L n’ont pas de successeurs
Analyse de l’algorithme :
Complétude : Oui si L ≥ d
Complexité en temps : exponentielle, O ( b
L
).
Complexité en espace : O ( b ∗ L ) (linéaire).
18/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 18 / 45
Optimalité : non.
Recherche en profondeur limitée (Depth-limited search,
DLS)
Principe : algorithme de recherche en profondeur avec une limite de profondeur d’exploration L.
Les noeuds de profondeur L n’ont pas de successeurs
Analyse de l’algorithme :
Complétude : Oui si L ≥ d
Complexité en temps : exponentielle, O ( b
L
).
Complexité en espace : O ( b ∗ L ) (linéaire).
Optimalité : non.
18/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 18 / 45
Recherche en profondeur itérative (Iterative deepening depth-first search, IDS)
Principe : Approfondissement itératif = répéter DLS pour toutes les valeurs possibles de L=0,1, 2... jusqu’à trouver une solution.
Analyse de l’algorithme :
Complétude : Oui.
19/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 19 / 45
Complexité en temps : exponentielle, O ( b d
).
Complexité en espace : linéaire, O ( b ∗ d ) .
Optimalité : non (Oui si coût unitaire).
Recherche en profondeur itérative (Iterative deepening depth-first search, IDS)
Principe : Approfondissement itératif = répéter DLS pour toutes les valeurs possibles de L=0,1, 2... jusqu’à trouver une solution.
Analyse de l’algorithme :
Complétude : Oui.
Complexité en temps : exponentielle, O ( b d
).
19/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 19 / 45
Complexité en espace : linéaire, O ( b ∗ d ) .
Optimalité : non (Oui si coût unitaire).
Recherche en profondeur itérative (Iterative deepening depth-first search, IDS)
Principe : Approfondissement itératif = répéter DLS pour toutes les valeurs possibles de L=0,1, 2... jusqu’à trouver une solution.
Analyse de l’algorithme :
Complétude : Oui.
Complexité en temps : exponentielle, O ( b d
).
Complexité en espace : linéaire, O ( b ∗ d ) .
19/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 19 / 45
Optimalité : non (Oui si coût unitaire).
Recherche en profondeur itérative (Iterative deepening depth-first search, IDS)
Principe : Approfondissement itératif = répéter DLS pour toutes les valeurs possibles de L=0,1, 2... jusqu’à trouver une solution.
Analyse de l’algorithme :
Complétude : Oui.
Complexité en temps : exponentielle, O ( b d
).
Complexité en espace : linéaire, O ( b ∗ d ) .
Optimalité : non (Oui si coût unitaire).
19/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 19 / 45
Recherche à coût uniforme (Uniform-Cost Search)
Principe : la priorité est donnée aux nœuds ayant le coût le plus bas.
La structure de données utilisée est une file triée selon le coût.
Est équivalente à la méthode largeur d’abord si le coût des actions est toujours le même.
Analyse de l’algorithme :
Complétude : Oui.
20/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 20 / 45
Complexité en temps : exponentielle, ( O ( b d
)), O ( b
C
∗
ε
).
Complexité en espace : exponentielle , O ( b d
) .
Optimalité : Oui.
C
∗
: le coût optimal d’une solution ; ε : le coût minimum.
Recherche à coût uniforme (Uniform-Cost Search)
Principe : la priorité est donnée aux nœuds ayant le coût le plus bas.
La structure de données utilisée est une file triée selon le coût.
Est équivalente à la méthode largeur d’abord si le coût des actions est toujours le même.
Analyse de l’algorithme :
Complétude : Oui.
Complexité en temps : exponentielle, ( O ( b d
)), O ( b
C
∗
ε
).
20/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 20 / 45
C
∗
: le coût optimal d’une solution ; ε : le coût minimum.
Complexité en espace : exponentielle , O ( b d
) .
Optimalité : Oui.
Recherche à coût uniforme (Uniform-Cost Search)
Principe : la priorité est donnée aux nœuds ayant le coût le plus bas.
La structure de données utilisée est une file triée selon le coût.
Est équivalente à la méthode largeur d’abord si le coût des actions est toujours le même.
Analyse de l’algorithme :
Complétude : Oui.
Complexité en temps : exponentielle, ( O ( b d
)), O ( b
C
∗
ε
).
C
∗
: le coût optimal d’une solution ; ε : le coût minimum.
20/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 20 / 45
Complexité en espace : exponentielle , O ( b d
) .
Optimalité : Oui.
Recherche à coût uniforme (Uniform-Cost Search)
Principe : la priorité est donnée aux nœuds ayant le coût le plus bas.
La structure de données utilisée est une file triée selon le coût.
Est équivalente à la méthode largeur d’abord si le coût des actions est toujours le même.
Analyse de l’algorithme :
Complétude : Oui.
Complexité en temps : exponentielle, ( O ( b d
)), O ( b
C
∗
ε
).
C
∗
: le coût optimal d’une solution ; ε : le coût minimum.
Complexité en espace : exponentielle , O ( b d
) .
20/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 20 / 45
Optimalité : Oui.
Recherche à coût uniforme (Uniform-Cost Search)
Principe : la priorité est donnée aux nœuds ayant le coût le plus bas.
La structure de données utilisée est une file triée selon le coût.
Est équivalente à la méthode largeur d’abord si le coût des actions est toujours le même.
Analyse de l’algorithme :
Complétude : Oui.
Complexité en temps : exponentielle, ( O ( b d
)), O ( b
C
∗
ε
).
C
∗
: le coût optimal d’une solution ; ε : le coût minimum.
Complexité en espace : exponentielle , O ( b d
) .
Optimalité : Oui.
20/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 20 / 45
Les algorithmes de recherches informés (heuristiques)
21/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 21 / 45
La notion d’heuristique
Une heuristique : un critère ou une méthode permettant de déterminer parmi plusieurs choix de solutions celle qui promet d’être la plus efficace pour atteindre un but.
22/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 22 / 45
Une fonction (notée h ) qui associer à chaque état une estimation du coût pour atteindre l’état final a partir de cet état.
Exemple : pour le jeu de taquin
Le nombre de plaquettes mal placées, h(n)= ?.
La somme de distances de Manhattan (nombre de déplacement pour atteindre l’état final) : h(n)= ?.
La notion d’heuristique
Une heuristique : un critère ou une méthode permettant de déterminer parmi plusieurs choix de solutions celle qui promet d’être la plus efficace pour atteindre un but.
Une fonction (notée h ) qui associer à chaque état une estimation du coût pour atteindre l’état final a partir de cet état.
22/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 22 / 45
Exemple : pour le jeu de taquin
Le nombre de plaquettes mal placées, h(n)= ?.
La somme de distances de Manhattan (nombre de déplacement pour atteindre l’état final) : h(n)= ?.
La notion d’heuristique
Une heuristique : un critère ou une méthode permettant de déterminer parmi plusieurs choix de solutions celle qui promet d’être la plus efficace pour atteindre un but.
Une fonction (notée h ) qui associer à chaque état une estimation du coût pour atteindre l’état final a partir de cet état.
Exemple : pour le jeu de taquin
22/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 22 / 45
Le nombre de plaquettes mal placées, h(n)= ?.
La somme de distances de Manhattan (nombre de déplacement pour atteindre l’état final) : h(n)= ?.
La notion d’heuristique
Une heuristique : un critère ou une méthode permettant de déterminer parmi plusieurs choix de solutions celle qui promet d’être la plus efficace pour atteindre un but.
Une fonction (notée h ) qui associer à chaque état une estimation du coût pour atteindre l’état final a partir de cet état.
Exemple : pour le jeu de taquin
Le nombre de plaquettes mal placées, h(n)= ?.
22/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 22 / 45
La somme de distances de Manhattan (nombre de déplacement pour atteindre l’état final) : h(n)= ?.
La notion d’heuristique
Une heuristique : un critère ou une méthode permettant de déterminer parmi plusieurs choix de solutions celle qui promet d’être la plus efficace pour atteindre un but.
Une fonction (notée h ) qui associer à chaque état une estimation du coût pour atteindre l’état final a partir de cet état.
Exemple : pour le jeu de taquin
Le nombre de plaquettes mal placées, h(n)= ?.
La somme de distances de Manhattan (nombre de déplacement pour atteindre l’état final) : h(n)= ?.
22/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 22 / 45
Heuristique : caractéristiques
Une heuristique est dite admissible si elle ne surestime jamais le coût pour atteindre le but :
∀ n : h ( n ) ≤ h
∗
( n )
Avec h
∗
( n ) : le coût réel depuis l’état n jusqu’a l’état final.
23/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 23 / 45
Deux heuristiques admissibles h
1 et h
2
, on dit que h
1 domine h
2 si :
∀ n : h
1
( n ) ≥ h
2
( n )
Une fonction heuristique est consistante si :
∀ n , ∀ n
0
∈ { succ ( n ) } : h ( n ) ≤ C ( n , n
0
) + h ( n
0
)
Avec C ( n , n
0
) le coût depuis l’état n jusqu’a l’état n
0
Heuristique : caractéristiques
Une heuristique est dite admissible si elle ne surestime jamais le coût pour atteindre le but :
∀ n : h ( n ) ≤ h
∗
( n )
Avec h
∗
( n ) : le coût réel depuis l’état n jusqu’a l’état final.
Deux heuristiques admissibles h
1 et h
2
, on dit que h
1 domine h
2 si :
∀ n : h
1
( n ) ≥ h
2
( n )
23/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 23 / 45
Une fonction heuristique est consistante si :
∀ n , ∀ n
0
∈ { succ ( n ) } : h ( n ) ≤ C ( n , n
0
) + h ( n
0
)
Avec C ( n , n
0
) le coût depuis l’état n jusqu’a l’état n
0
Heuristique : caractéristiques
Une heuristique est dite admissible si elle ne surestime jamais le coût pour atteindre le but :
∀ n : h ( n ) ≤ h
∗
( n )
Avec h
∗
( n ) : le coût réel depuis l’état n jusqu’a l’état final.
Deux heuristiques admissibles h
1 et h
2
, on dit que h
1 domine h
2 si :
∀ n : h
1
( n ) ≥ h
2
( n )
Une fonction heuristique est consistante si :
∀ n , ∀ n
0
∈ { succ ( n ) } : h ( n ) ≤ C ( n , n
0
) + h ( n
0
)
Avec C ( n , n
0
) le coût depuis l’état n jusqu’a l’état n
0
23/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 23 / 45
Recherche meilleur d’abord
Permet d’explorer les nœuds dans l’ordre (croissant/décroissant) de la valeur d’une fonction f .
24/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 24 / 45
Deux cas particuliers existent :
L’algorithme de recherche avare (greedy, gourmand).
l’algorithme A* ( variantes : Iterative Deepening A* (IDA*), memory-bounded A* (MA*), . . .
) .
Recherche meilleur d’abord
Permet d’explorer les nœuds dans l’ordre (croissant/décroissant) de la valeur d’une fonction f .
Deux cas particuliers existent :
24/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 24 / 45
L’algorithme de recherche avare (greedy, gourmand).
l’algorithme A* ( variantes : Iterative Deepening A* (IDA*), memory-bounded A* (MA*), . . .
) .
Recherche meilleur d’abord
Permet d’explorer les nœuds dans l’ordre (croissant/décroissant) de la valeur d’une fonction f .
Deux cas particuliers existent :
L’algorithme de recherche avare (greedy, gourmand).
24/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 24 / 45 l’algorithme A* ( variantes : Iterative Deepening A* (IDA*), memory-bounded A* (MA*), . . .
) .
Recherche meilleur d’abord
Permet d’explorer les nœuds dans l’ordre (croissant/décroissant) de la valeur d’une fonction f .
Deux cas particuliers existent :
L’algorithme de recherche avare (greedy, gourmand).
l’algorithme A* ( variantes : Iterative Deepening A* (IDA*), memory-bounded A* (MA*), . . .
) .
24/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 24 / 45
La recherche avare (greedy search)
Principe : L’objectif est de minimiser le coût estimé pour atteindre le but (la fonction h ).
Le nœud qui semble être le plus proche du but sera exploré en priorité.
Exemple :
25/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 25 / 45
La recherche avare (greedy search)
Analyse de l’algorithme :
Complétude : Complet, si l’espace de recherche fini et s’il y a absence de boucle ;
26/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 26 / 45
Complexité en temps : exponentielle, O ( b m
).
Complexité en espace : exponentielle , O ( b m
).
Optimalité : non.
La recherche avare (greedy search)
Analyse de l’algorithme :
Complétude : Complet, si l’espace de recherche fini et s’il y a absence de boucle ;
Complexité en temps : exponentielle, O ( b m
).
26/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 26 / 45
Complexité en espace : exponentielle , O ( b m
).
Optimalité : non.
La recherche avare (greedy search)
Analyse de l’algorithme :
Complétude : Complet, si l’espace de recherche fini et s’il y a absence de boucle ;
Complexité en temps : exponentielle, O ( b m
).
Complexité en espace : exponentielle , O ( b m
).
26/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 26 / 45
Optimalité : non.
La recherche avare (greedy search)
Analyse de l’algorithme :
Complétude : Complet, si l’espace de recherche fini et s’il y a absence de boucle ;
Complexité en temps : exponentielle, O ( b m
).
Complexité en espace : exponentielle , O ( b m
).
Optimalité : non.
26/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 26 / 45
l’algorithme A*
Principe : L’idée est de combiner les deux méthodes de recherche, avare et coût uniforme.
Chaque noeud n est évalué selon une fonction : f ( n ) = g ( n ) + h ( n ) g ( n ) est le coût de l’état initial au nœud n.
h ( n ) est un estimé du coût du nœud n à l’état final (heuristique).
Le nœud qui minimise la fonction f sera visité en premier.
Exemple :
27/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 27 / 45
l’algorithme A*
Analyse de l’algorithme :
Complétude : Complet, si l’espace de recherche fini ;
28/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 28 / 45
Complexité en temps : exponentielle.
Complexité en espace : exponentielle .
Optimalité :oui, si h est admissible.
l’algorithme A*
Analyse de l’algorithme :
Complétude : Complet, si l’espace de recherche fini ;
Complexité en temps : exponentielle.
28/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 28 / 45
Complexité en espace : exponentielle .
Optimalité :oui, si h est admissible.
l’algorithme A*
Analyse de l’algorithme :
Complétude : Complet, si l’espace de recherche fini ;
Complexité en temps : exponentielle.
Complexité en espace : exponentielle .
28/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 28 / 45
Optimalité :oui, si h est admissible.
l’algorithme A*
Analyse de l’algorithme :
Complétude : Complet, si l’espace de recherche fini ;
Complexité en temps : exponentielle.
Complexité en espace : exponentielle .
Optimalité :oui, si h est admissible.
28/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 28 / 45
l’algorithme A*
Quelques Propriétés :
Si h est cohérente : h est aussi admissible.
29/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 29 / 45
Si h est cohérente : un noeud ne sera jamais revisité.
Si h n’est pas admissible et soit B la borne supérieur sur la surestimation du coût : h ( n ) ≤ h
∗
( n ) + B . A* retourne une solution dont le coût est au plus B de plus que le coût optimal.
l’algorithme A*
Quelques Propriétés :
Si h est cohérente : h est aussi admissible.
Si h est cohérente : un noeud ne sera jamais revisité.
29/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 29 / 45
Si h n’est pas admissible et soit B la borne supérieur sur la surestimation du coût : h ( n ) ≤ h
∗
( n ) + B . A* retourne une solution dont le coût est au plus B de plus que le coût optimal.
l’algorithme A*
Quelques Propriétés :
Si h est cohérente : h est aussi admissible.
Si h est cohérente : un noeud ne sera jamais revisité.
Si h n’est pas admissible et soit B la borne supérieur sur la surestimation du coût : h ( n ) ≤ h
∗
( n ) + B . A* retourne une solution dont le coût est au plus B de plus que le coût optimal.
29/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 29 / 45
l’algorithme A*
Poroblème d’utilisation de la Mémoire :
Breadthfirst d = 1 d = 2 d = 3 d = 4
Expand by depth-layers
A* f1 f2 f3 f4
Expands by f-contours
30/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 30 / 45
Iterative Deepening A* (IDA*)
Principe : C’est un IDS en utilisant une valeur de fonction f comme limite.
31/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 31 / 45
Établir la limite : initialement, L = f ( E ) (avec E = E
0
état initial).
générer tous les successeurs succ de E .
enregistrer le min f ( succ ) > f ( E ).
continuer avec min f ( succ ) au lieu de f ( E ).
Iterative Deepening A* (IDA*)
Principe : C’est un IDS en utilisant une valeur de fonction f comme limite.
Établir la limite :
31/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 31 / 45 initialement, L = f ( E ) (avec E = E
0
état initial).
générer tous les successeurs succ de E .
enregistrer le min f ( succ ) > f ( E ).
continuer avec min f ( succ ) au lieu de f ( E ).
Iterative Deepening A* (IDA*)
Principe : C’est un IDS en utilisant une valeur de fonction f comme limite.
Établir la limite : initialement, L = f ( E ) (avec E = E
0
état initial).
31/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 31 / 45 générer tous les successeurs succ de E .
enregistrer le min f ( succ ) > f ( E ).
continuer avec min f ( succ ) au lieu de f ( E ).
Iterative Deepening A* (IDA*)
Principe : C’est un IDS en utilisant une valeur de fonction f comme limite.
Établir la limite : initialement, L = f ( E ) (avec E = E
0
état initial).
générer tous les successeurs succ de E .
31/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 31 / 45 enregistrer le min f ( succ ) > f ( E ).
continuer avec min f ( succ ) au lieu de f ( E ).
Iterative Deepening A* (IDA*)
Principe : C’est un IDS en utilisant une valeur de fonction f comme limite.
Établir la limite : initialement, L = f ( E ) (avec E = E
0
état initial).
générer tous les successeurs succ de E .
enregistrer le min f ( succ ) > f ( E ).
31/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 31 / 45 continuer avec min f ( succ ) au lieu de f ( E ).
Iterative Deepening A* (IDA*)
Principe : C’est un IDS en utilisant une valeur de fonction f comme limite.
Établir la limite : initialement, L = f ( E ) (avec E = E
0
état initial).
générer tous les successeurs succ de E .
enregistrer le min f ( succ ) > f ( E ).
continuer avec min f ( succ ) au lieu de f ( E ).
31/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 31 / 45
Iterative Deepening A* (IDA*)
Exemple :
32/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 32 / 45
Iterative Deepening A* (IDA*)
A* :
33/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 33 / 45
Iterative Deepening A* (IDA*)
IDA* itération 1 : explorer les nœuds avec L0<=6 ; L1=7.
34/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 34 / 45
Iterative Deepening A* (IDA*)
IDA* itération 2 : explorer les nœuds avec L1<=7 ; L2=9.
35/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 35 / 45
Iterative Deepening A* (IDA*)
IDA* itération 3 : explorer les nœuds avec L2<=9 ; L3=10.
36/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 36 / 45
Iterative Deepening A* (IDA*)
IDA* itération 4 : explorer les nœuds avec L3<=10 ; But trouvé.
37/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 37 / 45
Iterative Deepening A* (IDA*)
Analyse de l’algorithme :
Complétude : Complet, si l’espace de recherche fini ;
38/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 38 / 45
Complexité en temps : exponentielle.
Complexité en espace : linéaire O ( b ∗ d ) .
Optimalité :oui, si h est admissible.
Iterative Deepening A* (IDA*)
Analyse de l’algorithme :
Complétude : Complet, si l’espace de recherche fini ;
Complexité en temps : exponentielle.
38/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 38 / 45
Complexité en espace : linéaire O ( b ∗ d ) .
Optimalité :oui, si h est admissible.
Iterative Deepening A* (IDA*)
Analyse de l’algorithme :
Complétude : Complet, si l’espace de recherche fini ;
Complexité en temps : exponentielle.
Complexité en espace : linéaire O ( b ∗ d ) .
38/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 38 / 45
Optimalité :oui, si h est admissible.
Iterative Deepening A* (IDA*)
Analyse de l’algorithme :
Complétude : Complet, si l’espace de recherche fini ;
Complexité en temps : exponentielle.
Complexité en espace : linéaire O ( b ∗ d ) .
Optimalité :oui, si h est admissible.
38/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 38 / 45
Définition générique de f
On peut définir la fonction f comme suit : f ( n ) = (1 − w ) × g ( n ) + w ∗ h ( n )
Où w est un nombre réel : 0 ≤ w ≤ 1.
39/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 39 / 45
On obtient différents algorithmes de recherche selon la valeur de w : w = 0 : f ( n ) = g ( n ), recherche à côut uniforme.
w = 1 : f ( n ) = h ( n ), recherche avare (greedy) .
w = 0 .
5 : f ( n ) = g ( n ) + h ( n ), A* .
Définition générique de f
On peut définir la fonction f comme suit : f ( n ) = (1 − w ) × g ( n ) + w ∗ h ( n )
Où w est un nombre réel : 0 ≤ w ≤ 1.
On obtient différents algorithmes de recherche selon la valeur de w :
39/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 39 / 45 w = 0 : f ( n ) = g ( n ), recherche à côut uniforme.
w = 1 : f ( n ) = h ( n ), recherche avare (greedy) .
w = 0 .
5 : f ( n ) = g ( n ) + h ( n ), A* .
Définition générique de f
On peut définir la fonction f comme suit : f ( n ) = (1 − w ) × g ( n ) + w ∗ h ( n )
Où w est un nombre réel : 0 ≤ w ≤ 1.
On obtient différents algorithmes de recherche selon la valeur de w : w = 0 : f ( n ) = g ( n ), recherche à côut uniforme.
39/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 39 / 45 w = 1 : f ( n ) = h ( n ), recherche avare (greedy) .
w = 0 .
5 : f ( n ) = g ( n ) + h ( n ), A* .
Définition générique de f
On peut définir la fonction f comme suit : f ( n ) = (1 − w ) × g ( n ) + w ∗ h ( n )
Où w est un nombre réel : 0 ≤ w ≤ 1.
On obtient différents algorithmes de recherche selon la valeur de w : w = 0 : f ( n ) = g ( n ), recherche à côut uniforme.
w = 1 : f ( n ) = h ( n ), recherche avare (greedy) .
39/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 39 / 45 w = 0 .
5 : f ( n ) = g ( n ) + h ( n ), A* .
Définition générique de f
On peut définir la fonction f comme suit : f ( n ) = (1 − w ) × g ( n ) + w ∗ h ( n )
Où w est un nombre réel : 0 ≤ w ≤ 1.
On obtient différents algorithmes de recherche selon la valeur de w : w = 0 : f ( n ) = g ( n ), recherche à côut uniforme.
w = 1 : f ( n ) = h ( n ), recherche avare (greedy) .
w = 0 .
5 : f ( n ) = g ( n ) + h ( n ), A* .
39/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 39 / 45
Recherche Locale
40/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 40 / 45
Recherche Locale
Dans de nombreux problemes d’optimisation, le chemin qui mene vers une solution n’est pas important ;
41/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 41 / 45
L’etat lui-même est la solution ;
Idée : Modifier l’etat en l’ameliorant au fur et à mesure.
Besoin de definir une fonction qui mesure l’utilité d’un etat.
Recherche Locale
Dans de nombreux problemes d’optimisation, le chemin qui mene vers une solution n’est pas important ;
L’etat lui-même est la solution ;
41/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 41 / 45
Idée : Modifier l’etat en l’ameliorant au fur et à mesure.
Besoin de definir une fonction qui mesure l’utilité d’un etat.
Recherche Locale
Dans de nombreux problemes d’optimisation, le chemin qui mene vers une solution n’est pas important ;
L’etat lui-même est la solution ;
Idée : Modifier l’etat en l’ameliorant au fur et à mesure.
41/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 41 / 45
Besoin de definir une fonction qui mesure l’utilité d’un etat.
Recherche Locale
Dans de nombreux problemes d’optimisation, le chemin qui mene vers une solution n’est pas important ;
L’etat lui-même est la solution ;
Idée : Modifier l’etat en l’ameliorant au fur et à mesure.
Besoin de definir une fonction qui mesure l’utilité d’un etat.
41/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 41 / 45
Recherche Locale
Exemple :
42/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 42 / 45
Recherche Locale
Problème :
43/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 43 / 45
Recherche Locale : Hill climbing
Principe : examine les nœuds voisins un à un et sélectionne le premier nœud voisin qui optimise le coût actuel en tant que nœud suivant.
Algorithme
Étape 1 : Évaluez l’état initial. S’il s’agit d’un état d’objectif, arrêtez et renvoyez le succès. Sinon, définissez l’état initial sur l’état actuel.
44/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 44 / 45
Étape 2 : boucle jusqu’à ce que l’état de la solution soit trouvé ou jusqu’à ce qu’aucun nouvel opérateur ne puisse être appliqué à l’état actuel.
Si l’état actuel est un état but, arrêtez et renvoyez le résultat.
S’il est meilleur que l’état actuel, alors le mettre comme état actuel et continuez.
S’il n’est pas meilleur que l’état actuel, continuez dans la boucle jusqu’à ce qu’une solution soit trouvée.
Recherche Locale : Hill climbing
Principe : examine les nœuds voisins un à un et sélectionne le premier nœud voisin qui optimise le coût actuel en tant que nœud suivant.
Algorithme
Étape 1 : Évaluez l’état initial. S’il s’agit d’un état d’objectif, arrêtez et renvoyez le succès. Sinon, définissez l’état initial sur l’état actuel.
Étape 2 : boucle jusqu’à ce que l’état de la solution soit trouvé ou jusqu’à ce qu’aucun nouvel opérateur ne puisse être appliqué à l’état actuel.
44/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 44 / 45
Si l’état actuel est un état but, arrêtez et renvoyez le résultat.
S’il est meilleur que l’état actuel, alors le mettre comme état actuel et continuez.
S’il n’est pas meilleur que l’état actuel, continuez dans la boucle jusqu’à ce qu’une solution soit trouvée.
Recherche Locale : Hill climbing
Principe : examine les nœuds voisins un à un et sélectionne le premier nœud voisin qui optimise le coût actuel en tant que nœud suivant.
Algorithme
Étape 1 : Évaluez l’état initial. S’il s’agit d’un état d’objectif, arrêtez et renvoyez le succès. Sinon, définissez l’état initial sur l’état actuel.
Étape 2 : boucle jusqu’à ce que l’état de la solution soit trouvé ou jusqu’à ce qu’aucun nouvel opérateur ne puisse être appliqué à l’état actuel.
Si l’état actuel est un état but, arrêtez et renvoyez le résultat.
44/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 44 / 45
S’il est meilleur que l’état actuel, alors le mettre comme état actuel et continuez.
S’il n’est pas meilleur que l’état actuel, continuez dans la boucle jusqu’à ce qu’une solution soit trouvée.
Recherche Locale : Hill climbing
Principe : examine les nœuds voisins un à un et sélectionne le premier nœud voisin qui optimise le coût actuel en tant que nœud suivant.
Algorithme
Étape 1 : Évaluez l’état initial. S’il s’agit d’un état d’objectif, arrêtez et renvoyez le succès. Sinon, définissez l’état initial sur l’état actuel.
Étape 2 : boucle jusqu’à ce que l’état de la solution soit trouvé ou jusqu’à ce qu’aucun nouvel opérateur ne puisse être appliqué à l’état actuel.
Si l’état actuel est un état but, arrêtez et renvoyez le résultat.
S’il est meilleur que l’état actuel, alors le mettre comme état actuel et continuez.
44/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 44 / 45
S’il n’est pas meilleur que l’état actuel, continuez dans la boucle jusqu’à ce qu’une solution soit trouvée.
Recherche Locale : Hill climbing
Principe : examine les nœuds voisins un à un et sélectionne le premier nœud voisin qui optimise le coût actuel en tant que nœud suivant.
Algorithme
Étape 1 : Évaluez l’état initial. S’il s’agit d’un état d’objectif, arrêtez et renvoyez le succès. Sinon, définissez l’état initial sur l’état actuel.
Étape 2 : boucle jusqu’à ce que l’état de la solution soit trouvé ou jusqu’à ce qu’aucun nouvel opérateur ne puisse être appliqué à l’état actuel.
Si l’état actuel est un état but, arrêtez et renvoyez le résultat.
S’il est meilleur que l’état actuel, alors le mettre comme état actuel et continuez.
S’il n’est pas meilleur que l’état actuel, continuez dans la boucle jusqu’à ce qu’une solution soit trouvée.
44/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 44 / 45
En savoir plus
Artificial Intelligence : A Modern Approach, by Stuart Russell and
Peter Norvig (Third Edition), chapitre II.
Intelligent Systems, A Modern Approach, Crina Grosan and Ajith
Abraham, chapitres 2 et 3.
http ://www.aispace.org.
https ://heuristicswiki.wikispaces.com/
45/45 A. Belabed (Univ Tlemcen)
Chapitre I : la résolution des problèmes par la recherche
2019-2020 45 / 45