0% ont trouvé ce document utile (0 vote)
45 vues282 pages

Resolution

Transféré par

rihab saddem
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
45 vues282 pages

Resolution

Transféré par

rihab saddem
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Intelligence Artificielle

Résolution de Problèmes

Emmanuel ADAM

Université Polytechnique des Hauts-De-France

UPHF/INSA HdF

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 1 / 57


Plan
1 Introduction
2 Problèmes
Définition d’un problème
Types de problèmes
3 Toys Problems
4 Résolution
le Problème de la résolution
Méthodes de résolution constructive
Graphe d’états
Evaluation de la recherche
Type de recherches
Algorithme de résolution
5 Méthodes de recherche aveugles
Recherche en largeur
Recherche en profondeur
Recherche en profondeur limitée
Recherche par approfondissement itératif
6 Méthodes de recherche heuristiques
Notions d’heuristiques
Algorithme glouton (greedy)
Algorithme A*
Particularités et propriétés de la recherche par heuristique
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 2 / 57
Plan

Exemple de résolution par A*


Autres exemples avec A*

7 Recherche Tabou, Locale

8 Recherche Aléatoire

9 Recherche Exhaustive

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 3 / 57


Introduction

Introduction

Résolution de Problèmes
Définir les problèmes
Nature
Représentation des problèmes
Logique
Arbres et Graphes d’états
Algorithmes de résolution

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 4 / 57


Introduction

Introduction

Résolution de Problèmes
Définir les problèmes
Nature
Représentation des problèmes
Logique
Arbres et Graphes d’états
Algorithmes de résolution

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 4 / 57


Introduction

Introduction

Résolution de Problèmes
Définir les problèmes
Nature
Représentation des problèmes
Logique
Arbres et Graphes d’états
Algorithmes de résolution

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 4 / 57


Introduction

Introduction

Résolution de Problèmes
Définir les problèmes
Nature
Représentation des problèmes
Logique
Arbres et Graphes d’états
Algorithmes de résolution

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 4 / 57


Introduction

Introduction

Résolution de Problèmes
Définir les problèmes
Nature
Représentation des problèmes
Logique
Arbres et Graphes d’états
Algorithmes de résolution

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 4 / 57


Introduction

Introduction

Résolution de Problèmes
Définir les problèmes
Nature
Représentation des problèmes
Logique
Arbres et Graphes d’états
Algorithmes de résolution

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 4 / 57


Introduction

Introduction

Résolution de Problèmes
Définir les problèmes
Nature
Représentation des problèmes
Logique
Arbres et Graphes d’états
Algorithmes de résolution

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 4 / 57


Problèmes Définition d’un problème

Définition d’un problème I

Exemple de problème
Se rendre de son domicile (Onnaing) à un lieu précis (Arrivée)
d’une autre ville (Théâtre Lille), le plus rapidement possible, avant
une date donnée (obligation de passer par une ville étape B).
(exemple : de Onnaing au Théâtre L’antre 2 de Lille 2 avant 20h)

Définitions
Espace d’états : description (abstraction) du monde réel
définissant le problème
Exemple : réseau des bus, trams, metro . . .
Buts : sous ensemble de l’espace d’états
Exemple : Lille-Théâtre19h50
Action (opérateurs) : déplacement dans l’espace d’états

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 5 / 57


Problèmes Définition d’un problème

Définition d’un problème II

Définitions
Solution du problème : la séquence d’action menant de l’état
initial à l’état objectif
Algorithme de Recherche : procédure qui calcule une (ou
plusieurs) solution à partir d’un problème (état
initial, actions, états objectifs).

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 6 / 57


Problèmes Types de problèmes

Types de problèmes

Les types de problèmes


à état unique : déterministe, l’effet de chaque action est connu.
à états multiples : non déterministe, mais l’effet des actions est
globalement connu
à connaissances incompletes : monde partiellement connu ou
évolutif (besoin de "capter" les états)
d’exploration : espace d’états inconnu, à découvrir par exploration

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 7 / 57


Problèmes Types de problèmes

Types de problèmes

Les types de problèmes


à état unique : déterministe, l’effet de chaque action est connu.
à états multiples : non déterministe, mais l’effet des actions est
globalement connu
à connaissances incompletes : monde partiellement connu ou
évolutif (besoin de "capter" les états)
d’exploration : espace d’états inconnu, à découvrir par exploration

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 7 / 57


Problèmes Types de problèmes

Types de problèmes

Les types de problèmes


à état unique : déterministe, l’effet de chaque action est connu.
à états multiples : non déterministe, mais l’effet des actions est
globalement connu
à connaissances incompletes : monde partiellement connu ou
évolutif (besoin de "capter" les états)
d’exploration : espace d’états inconnu, à découvrir par exploration

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 7 / 57


Problèmes Types de problèmes

Types de problèmes

Les types de problèmes


à état unique : déterministe, l’effet de chaque action est connu.
à états multiples : non déterministe, mais l’effet des actions est
globalement connu
à connaissances incompletes : monde partiellement connu ou
évolutif (besoin de "capter" les états)
d’exploration : espace d’états inconnu, à découvrir par exploration

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 7 / 57


Problèmes Types de problèmes

Types de problèmes

Les types de problèmes


à état unique : déterministe, l’effet de chaque action est connu.
à états multiples : non déterministe, mais l’effet des actions est
globalement connu
à connaissances incompletes : monde partiellement connu ou
évolutif (besoin de "capter" les états)
d’exploration : espace d’états inconnu, à découvrir par exploration

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 7 / 57


Problèmes Types de problèmes

Espace d’états de l’exemple

Espace d’états de l’exemple


Action Etat Action Etat
A00 :Onnaing-bus18h00 E0.0 :Valenciennes18h20 A10 :train18h00 E1.0 :Lille18h40
A01 :Onnaing-bus18h10 E0.1 :Valenciennes18h30 A11 :train18h30 E1.1 :Lille19h10
A02 :Onnaing-bus18h20 E0.2 :Valenciennes18h40 A12 :train19h00 E1.2 :Lille19h40
A03 :Onnaing-bus18h30 E0.3 :Valenciennes18h50 A13 :train19h30 E1.3 :Lille20h10
A04 :Onnaing-bus18h40 E0.4 :Valenciennes19h00 A14 :train20h00 E1.4 :Lille20h40
A05 :Onnaing-bus18h50 E0.5 :Valenciennes19h10 A15 :train20h30 E1.5 :Lille21h10
Action Etat
A20 :metro18h50 E2.0 :Lille-Theatre19h10
A21 :metro19h05 E2.1 :Lille-Theatre19h25
A22 :metro19h20 E2.2 :Lille-Theatre19h40
A23 :metro19h35 E2.3 :Lille-Theatre19h55
A24 :metro19h50 E2.4 :Lille-Theatre20h10
A25 :metro20h05 E2.5 :Lille-Theatre20h25
Etat initial E0 = Onnaing ; Etat Final désiré EF = E2.3 :Lille-Theatre19h55

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 8 / 57


Problèmes Types de problèmes

Types de problèmes

Retour sur les types de problèmes


à état unique : recherche évidente
à états multiples : recherche facile
à connaissances incompletes : le type le plus courant ; recherche de
solution moins évidente, besoin de percevoir l’état en
cours ; possibilité de ramener en partie aux types
précédents
d’exploration : alternance de phases de génération d’états /
recherche

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 9 / 57


Problèmes Types de problèmes

Types de problèmes

Retour sur les types de problèmes


à état unique : recherche évidente
à états multiples : recherche facile
à connaissances incompletes : le type le plus courant ; recherche de
solution moins évidente, besoin de percevoir l’état en
cours ; possibilité de ramener en partie aux types
précédents
d’exploration : alternance de phases de génération d’états /
recherche

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 9 / 57


Problèmes Types de problèmes

Types de problèmes

Retour sur les types de problèmes


à état unique : recherche évidente
à états multiples : recherche facile
à connaissances incompletes : le type le plus courant ; recherche de
solution moins évidente, besoin de percevoir l’état en
cours ; possibilité de ramener en partie aux types
précédents
d’exploration : alternance de phases de génération d’états /
recherche

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 9 / 57


Problèmes Types de problèmes

Types de problèmes

Retour sur les types de problèmes


à état unique : recherche évidente
à états multiples : recherche facile
à connaissances incompletes : le type le plus courant ; recherche de
solution moins évidente, besoin de percevoir l’état en
cours ; possibilité de ramener en partie aux types
précédents
d’exploration : alternance de phases de génération d’états /
recherche

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 9 / 57


Problèmes Types de problèmes

Types de problèmes

Retour sur les types de problèmes


à état unique : recherche évidente
à états multiples : recherche facile
à connaissances incompletes : le type le plus courant ; recherche de
solution moins évidente, besoin de percevoir l’état en
cours ; possibilité de ramener en partie aux types
précédents
d’exploration : alternance de phases de génération d’états /
recherche

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 9 / 57


Toys Problems

Toys Problems

Exemple de Toys Problems


Les Toys Problems sont des problèmes types utilisés pour tester
des algorithmes. Parmi ceux-ci :
le taquin
le chien, la chèvre et le chou
le Wumpus
l’aspirateur
le voyageur de commerce
le labyrinthe
les mots croisés
l’arithmétique cryptée
les jeux d’échecs, de dames, . . .

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 10 / 57


Toys Problems

Toys Problems

Exemple de Toys Problems


Les Toys Problems sont des problèmes types utilisés pour tester
des algorithmes. Parmi ceux-ci :
le taquin
le chien, la chèvre et le chou
le Wumpus
l’aspirateur
le voyageur de commerce
le labyrinthe
les mots croisés
l’arithmétique cryptée
les jeux d’échecs, de dames, . . .

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 10 / 57


Toys Problems

Toys Problems

Exemple de Toys Problems


Les Toys Problems sont des problèmes types utilisés pour tester
des algorithmes. Parmi ceux-ci :
le taquin
le chien, la chèvre et le chou
le Wumpus
l’aspirateur
le voyageur de commerce
le labyrinthe
les mots croisés
l’arithmétique cryptée
les jeux d’échecs, de dames, . . .

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 10 / 57


Toys Problems

Toys Problems

Exemple de Toys Problems


Les Toys Problems sont des problèmes types utilisés pour tester
des algorithmes. Parmi ceux-ci :
le taquin
le chien, la chèvre et le chou
le Wumpus
l’aspirateur
le voyageur de commerce
le labyrinthe
les mots croisés
l’arithmétique cryptée
les jeux d’échecs, de dames, . . .

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 10 / 57


Toys Problems

Toys Problems

Exemple de Toys Problems


Les Toys Problems sont des problèmes types utilisés pour tester
des algorithmes. Parmi ceux-ci :
le taquin
le chien, la chèvre et le chou
le Wumpus
l’aspirateur
le voyageur de commerce
le labyrinthe
les mots croisés
l’arithmétique cryptée
les jeux d’échecs, de dames, . . .

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 10 / 57


Toys Problems

Toys Problems

Exemple de Toys Problems


Les Toys Problems sont des problèmes types utilisés pour tester
des algorithmes. Parmi ceux-ci :
le taquin
le chien, la chèvre et le chou
le Wumpus
l’aspirateur
le voyageur de commerce
le labyrinthe
les mots croisés
l’arithmétique cryptée
les jeux d’échecs, de dames, . . .

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 10 / 57


Toys Problems

Toys Problems

Exemple de Toys Problems


Les Toys Problems sont des problèmes types utilisés pour tester
des algorithmes. Parmi ceux-ci :
le taquin
le chien, la chèvre et le chou
le Wumpus
l’aspirateur
le voyageur de commerce
le labyrinthe
les mots croisés
l’arithmétique cryptée
les jeux d’échecs, de dames, . . .

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 10 / 57


Toys Problems

Toys Problems

Exemple de Toys Problems


Les Toys Problems sont des problèmes types utilisés pour tester
des algorithmes. Parmi ceux-ci :
le taquin
le chien, la chèvre et le chou
le Wumpus
l’aspirateur
le voyageur de commerce
le labyrinthe
les mots croisés
l’arithmétique cryptée
les jeux d’échecs, de dames, . . .

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 10 / 57


Toys Problems

Toys Problems

Exemple de Toys Problems


Les Toys Problems sont des problèmes types utilisés pour tester
des algorithmes. Parmi ceux-ci :
le taquin
le chien, la chèvre et le chou
le Wumpus
l’aspirateur
le voyageur de commerce
le labyrinthe
les mots croisés
l’arithmétique cryptée
les jeux d’échecs, de dames, . . .

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 10 / 57


Toys Problems

Toys Problems

Exemple de Toys Problems


Les Toys Problems sont des problèmes types utilisés pour tester
des algorithmes. Parmi ceux-ci :
le taquin
le chien, la chèvre et le chou
le Wumpus
l’aspirateur
le voyageur de commerce
le labyrinthe
les mots croisés
l’arithmétique cryptée
les jeux d’échecs, de dames, . . .

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 10 / 57


Résolution le Problème de la résolution

Une méthode de résolution

Une méthode de résolution ?


Il n’existe de pas de méthode générale de résolution de
problème
Nécessité
de décrire formellement le problème, les états, les actions
de procédure d’évaluation de solution
Résolution constructive = Proposer + Evaluer une solution

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 11 / 57


Résolution le Problème de la résolution

Une méthode de résolution

Une méthode de résolution ?


Il n’existe de pas de méthode générale de résolution de
problème
Nécessité
de décrire formellement le problème, les états, les actions
de procédure d’évaluation de solution
Résolution constructive = Proposer + Evaluer une solution

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 11 / 57


Résolution le Problème de la résolution

Une méthode de résolution

Une méthode de résolution ?


Il n’existe de pas de méthode générale de résolution de
problème
Nécessité
de décrire formellement le problème, les états, les actions
de procédure d’évaluation de solution
Résolution constructive = Proposer + Evaluer une solution

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 11 / 57


Résolution le Problème de la résolution

Une méthode de résolution

Une méthode de résolution ?


Il n’existe de pas de méthode générale de résolution de
problème
Nécessité
de décrire formellement le problème, les états, les actions
de procédure d’évaluation de solution
Résolution constructive = Proposer + Evaluer une solution

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 11 / 57


Résolution le Problème de la résolution

Une méthode de résolution

Une méthode de résolution ?


Il n’existe de pas de méthode générale de résolution de
problème
Nécessité
de décrire formellement le problème, les états, les actions
de procédure d’évaluation de solution
Résolution constructive = Proposer + Evaluer une solution

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 11 / 57


Résolution le Problème de la résolution

Une méthode de résolution

Une méthode de résolution ?


Il n’existe de pas de méthode générale de résolution de
problème
Nécessité
de décrire formellement le problème, les états, les actions
de procédure d’évaluation de solution
Résolution constructive = Proposer + Evaluer une solution

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 11 / 57


Résolution le Problème de la résolution

Le problème des 8 reines

8
0ZQZ0Z0Z
7
Z0Z0ZQZ0
6
0Z0L0Z0Z
5
ZQZ0Z0Z0
4
0Z0Z0Z0L
3
Z0Z0L0Z0
2
0Z0Z0ZQZ
1
L0Z0Z0Z0
a b c d e f g h

Le problème des 8 reines


But : placer 8 reines sur un échiquier de 8 × 8, sans attaque possible
état initial : échiquier vide
actions/opérateurs : ajouter une reine sur l’échiquier
Résoudre des solutions partielles :
Placer la première reine, puis placer les suivantes dans les cases
restantes de l’échiquier
Complexité : O(n!)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 12 / 57
Résolution le Problème de la résolution

Le problème des 8 reines

8
0ZQZ0Z0Z
7
Z0Z0ZQZ0
6
0Z0L0Z0Z
5
ZQZ0Z0Z0
4
0Z0Z0Z0L
3
Z0Z0L0Z0
2
0Z0Z0ZQZ
1
L0Z0Z0Z0
a b c d e f g h

Le problème des 8 reines


But : placer 8 reines sur un échiquier de 8 × 8, sans attaque possible
état initial : échiquier vide
actions/opérateurs : ajouter une reine sur l’échiquier
Résoudre des solutions partielles :
Placer la première reine, puis placer les suivantes dans les cases
restantes de l’échiquier
Complexité : O(n!)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 12 / 57
Résolution le Problème de la résolution

Le problème des 8 reines

8
0ZQZ0Z0Z
7
Z0Z0ZQZ0
6
0Z0L0Z0Z
5
ZQZ0Z0Z0
4
0Z0Z0Z0L
3
Z0Z0L0Z0
2
0Z0Z0ZQZ
1
L0Z0Z0Z0
a b c d e f g h

Le problème des 8 reines


But : placer 8 reines sur un échiquier de 8 × 8, sans attaque possible
état initial : échiquier vide
actions/opérateurs : ajouter une reine sur l’échiquier
Résoudre des solutions partielles :
Placer la première reine, puis placer les suivantes dans les cases
restantes de l’échiquier
Complexité : O(n!)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 12 / 57
Résolution le Problème de la résolution

Le problème des 8 reines

8
0ZQZ0Z0Z
7
Z0Z0ZQZ0
6
0Z0L0Z0Z
5
ZQZ0Z0Z0
4
0Z0Z0Z0L
3
Z0Z0L0Z0
2
0Z0Z0ZQZ
1
L0Z0Z0Z0
a b c d e f g h

Le problème des 8 reines


But : placer 8 reines sur un échiquier de 8 × 8, sans attaque possible
état initial : échiquier vide
actions/opérateurs : ajouter une reine sur l’échiquier
Résoudre des solutions partielles :
Placer la première reine, puis placer les suivantes dans les cases
restantes de l’échiquier
Complexité : O(n!)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 12 / 57
Résolution le Problème de la résolution

Le problème des 8 reines

8
0ZQZ0Z0Z
7
Z0Z0ZQZ0
6
0Z0L0Z0Z
5
ZQZ0Z0Z0
4
0Z0Z0Z0L
3
Z0Z0L0Z0
2
0Z0Z0ZQZ
1
L0Z0Z0Z0
a b c d e f g h

Le problème des 8 reines


But : placer 8 reines sur un échiquier de 8 × 8, sans attaque possible
état initial : échiquier vide
actions/opérateurs : ajouter une reine sur l’échiquier
Résoudre des solutions partielles :
Placer la première reine, puis placer les suivantes dans les cases
restantes de l’échiquier
Complexité : O(n!)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 12 / 57
Résolution le Problème de la résolution

Le taquin-8

4 3 5 1 2 3
1 6 2 → 4 5 6
7 8 . 7 8 .

Le problème du taquin 8
But : agencer les pièces en ordre croissant en un coût
minimum
état initial grille de 8 pièces désordonnées, plus une case vide
Actions/opérateurs : déplacer la case vide à gauche (L), à
droite (R), en haut (U), en bas (D)
coût : 1 point par déplacement
Résoudre par solutions partielles
complexité : NP (polynomial non-déterministe)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 13 / 57


Résolution le Problème de la résolution

Le taquin-8

4 3 5 1 2 3
1 6 2 → 4 5 6
7 8 . 7 8 .

Le problème du taquin 8
But : agencer les pièces en ordre croissant en un coût
minimum
état initial grille de 8 pièces désordonnées, plus une case vide
Actions/opérateurs : déplacer la case vide à gauche (L), à
droite (R), en haut (U), en bas (D)
coût : 1 point par déplacement
Résoudre par solutions partielles
complexité : NP (polynomial non-déterministe)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 13 / 57


Résolution le Problème de la résolution

Le taquin-8

4 3 5 1 2 3
1 6 2 → 4 5 6
7 8 . 7 8 .

Le problème du taquin 8
But : agencer les pièces en ordre croissant en un coût
minimum
état initial grille de 8 pièces désordonnées, plus une case vide
Actions/opérateurs : déplacer la case vide à gauche (L), à
droite (R), en haut (U), en bas (D)
coût : 1 point par déplacement
Résoudre par solutions partielles
complexité : NP (polynomial non-déterministe)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 13 / 57


Résolution le Problème de la résolution

Le taquin-8

4 3 5 1 2 3
1 6 2 → 4 5 6
7 8 . 7 8 .

Le problème du taquin 8
But : agencer les pièces en ordre croissant en un coût
minimum
état initial grille de 8 pièces désordonnées, plus une case vide
Actions/opérateurs : déplacer la case vide à gauche (L), à
droite (R), en haut (U), en bas (D)
coût : 1 point par déplacement
Résoudre par solutions partielles
complexité : NP (polynomial non-déterministe)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 13 / 57


Résolution le Problème de la résolution

Le taquin-8

4 3 5 1 2 3
1 6 2 → 4 5 6
7 8 . 7 8 .

Le problème du taquin 8
But : agencer les pièces en ordre croissant en un coût
minimum
état initial grille de 8 pièces désordonnées, plus une case vide
Actions/opérateurs : déplacer la case vide à gauche (L), à
droite (R), en haut (U), en bas (D)
coût : 1 point par déplacement
Résoudre par solutions partielles
complexité : NP (polynomial non-déterministe)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 13 / 57


Résolution le Problème de la résolution

Le taquin-8

4 3 5 1 2 3
1 6 2 → 4 5 6
7 8 . 7 8 .

Le problème du taquin 8
But : agencer les pièces en ordre croissant en un coût
minimum
état initial grille de 8 pièces désordonnées, plus une case vide
Actions/opérateurs : déplacer la case vide à gauche (L), à
droite (R), en haut (U), en bas (D)
coût : 1 point par déplacement
Résoudre par solutions partielles
complexité : NP (polynomial non-déterministe)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 13 / 57


Résolution le Problème de la résolution

Le taquin-8

4 3 5 1 2 3
1 6 2 → 4 5 6
7 8 . 7 8 .

Le problème du taquin 8
But : agencer les pièces en ordre croissant en un coût
minimum
état initial grille de 8 pièces désordonnées, plus une case vide
Actions/opérateurs : déplacer la case vide à gauche (L), à
droite (R), en haut (U), en bas (D)
coût : 1 point par déplacement
Résoudre par solutions partielles
complexité : NP (polynomial non-déterministe)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 13 / 57


Résolution Méthodes de résolution constructive

Deux méthodes de résolution constructive

Deux méthodes de résolution constructive


Avancer par étapes, par solutions partielles
Exemple : pour le voyage : trouver les états liés directement à
l’arrivée, trouver les états menant à ces états, . . ., jusqu’à
l’état initial
Décomposer en sous-problèmes
Exemple : Tours de Hanoï

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 14 / 57


Résolution Méthodes de résolution constructive

Deux méthodes de résolution constructive

Deux méthodes de résolution constructive


Avancer par étapes, par solutions partielles
Exemple : pour le voyage : trouver les états liés directement à
l’arrivée, trouver les états menant à ces états, . . ., jusqu’à
l’état initial
Décomposer en sous-problèmes
Exemple : Tours de Hanoï

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 14 / 57


Résolution Méthodes de résolution constructive

Deux méthodes de résolution constructive

Deux méthodes de résolution constructive


Avancer par étapes, par solutions partielles
Exemple : pour le voyage : trouver les états liés directement à
l’arrivée, trouver les états menant à ces états, . . ., jusqu’à
l’état initial
Décomposer en sous-problèmes
Exemple : Tours de Hanoï

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 14 / 57


Résolution Méthodes de résolution constructive

Deux méthodes de résolution constructive

Deux méthodes de résolution constructive


Avancer par étapes, par solutions partielles
Exemple : pour le voyage : trouver les états liés directement à
l’arrivée, trouver les états menant à ces états, . . ., jusqu’à
l’état initial
Décomposer en sous-problèmes
Exemple : Tours de Hanoï

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 14 / 57


Résolution Méthodes de résolution constructive

Deux méthodes de résolution constructive

Deux méthodes de résolution constructive


Avancer par étapes, par solutions partielles
Exemple : pour le voyage : trouver les états liés directement à
l’arrivée, trouver les états menant à ces états, . . ., jusqu’à
l’état initial
Décomposer en sous-problèmes
Exemple : Tours de Hanoï

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 14 / 57


Résolution Graphe d’états

Représentation par graphe d’états

Graphe d’états
Représentation par graphe des états du problème :
Les nœuds représentent les états
Un arc (i,j) représentent l’opération/l’action permettant de
l’état i à l’état j
Solution = chemin entre l’état initial et l’état final
Recherche de Solution = Recherche du/d’un chemin entre
l’état initial et l’état final

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 15 / 57


Résolution Graphe d’états

Représentation par graphe d’états

Graphe d’états
Représentation par graphe des états du problème :
Les nœuds représentent les états
Un arc (i,j) représentent l’opération/l’action permettant de
l’état i à l’état j
Solution = chemin entre l’état initial et l’état final
Recherche de Solution = Recherche du/d’un chemin entre
l’état initial et l’état final

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 15 / 57


Résolution Graphe d’états

Représentation par graphe d’états

Graphe d’états
Représentation par graphe des états du problème :
Les nœuds représentent les états
Un arc (i,j) représentent l’opération/l’action permettant de
l’état i à l’état j
Solution = chemin entre l’état initial et l’état final
Recherche de Solution = Recherche du/d’un chemin entre
l’état initial et l’état final

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 15 / 57


Résolution Graphe d’états

Représentation par graphe d’états

Graphe d’états
Représentation par graphe des états du problème :
Les nœuds représentent les états
Un arc (i,j) représentent l’opération/l’action permettant de
l’état i à l’état j
Solution = chemin entre l’état initial et l’état final
Recherche de Solution = Recherche du/d’un chemin entre
l’état initial et l’état final

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 15 / 57


Résolution Graphe d’états

Représentation par graphe d’états

Graphe d’états
Représentation par graphe des états du problème :
Les nœuds représentent les états
Un arc (i,j) représentent l’opération/l’action permettant de
l’état i à l’état j
Solution = chemin entre l’état initial et l’état final
Recherche de Solution = Recherche du/d’un chemin entre
l’état initial et l’état final

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 15 / 57


Résolution Graphe d’états

Importance du choix de représentation

Choix de Graphe d’états


Reprenons le problèmes des 8 reines sur un échiquier 8 × 8
Si 1 état = 1 case
posReinei ∈ [1, 64] donne 1, 78.1014 états possibles
64 × 63 × 62 × 61 × 60 × 59 × 58 × 57 = 64! − 56!
Action/Opérateur : placerReine(reinei , lignej , colonnek )
Test : validationFinale(echiquier )

8
0Z0Z0Z0Z 8
0Z0Z0Z0Z 8
0Z0Z0Z0Z
7
Z0Z0Z0Z0 7
Z0Z0Z0Z0 7
Z0Z0Z0Zq
6
0Z0Z0Z0Z 6
0Z0Z0Z0Z 6
0Z0Z0Z0Z
5
Z0Z0Z0Z0 5
Z0Z0Z0Z0 5
Z0Z0Z0Z0
4
0Z0Z0Z0Z 4
qZ0Z0Z0Z 4
qZ0Z0Z0Z
3
Z0Z0Z0Z0 3
Z0Z0Z0Z0 3
Z0Z0Z0Z0
2
0l0Z0Z0Z 2
0l0Z0Z0Z 2
0l0Z0Z0Z
1
Z0Z0Z0Z0 1
Z0Z0Z0Z0 1
Z0Z0Z0Z0
a b c d e f g h a b c d e f g h a b c d e f g h

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 16 / 57


Résolution Graphe d’états

Importance du choix de représentation

Choix de Graphe d’états


Reprenons le problèmes des 8 reines sur un échiquier 8 × 8
Si 1 état = 1 position dans une ligne
ligneReinei ∈ [1, 8] donne 40320 états possibles :
8 × 7 × 6 × · · · × 1 = 8!
Action/Opérateur : placerReineDansLigne(reinei , lignej )
Test : validationFinale(echiquier )

8
0Z0Z0Z0Z 8
0Z0Z0Z0Z 8
0Z0Z0Z0Z
7
Z0Z0Z0Z0 7
Z0Z0Z0Z0 7
Z0Z0Z0Z0
6
0Z0Z0Z0Z 6
0Z0Z0Z0Z 6
0Z0Z0Z0Z
5
Z0Z0Z0Z0 5
Z0Z0Z0Z0 5
Z0Z0Z0Z0
4
0Z0Z0Z0Z 4
0Z0Z0Z0Z 4
0Z0Z0Z0Z
3
Z0Z0Z0Z0 3
Z0Z0Z0Z0 3
Z0l0Z0Z0
2
0Z0Z0Z0Z 2
0l0Z0Z0Z 2
0l0Z0Z0Z
1
l0Z0Z0Z0 1
l0Z0Z0Z0 1
l0Z0Z0Z0
a b c d e f g h a b c d e f g h a b c d e f g h

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 17 / 57


Résolution Graphe d’états

Importance du choix de l’action

Choix de l’action
Sur le problèmes des 8 reines sur un échiquier 8 × 8
Avec 1 état = 1 position dans une ligne
Action/Opérateur : placerReineDansLigneLibre(reinei , lignej )
Test : placementImpossible(reinei ), toutesReinesPlacees()

8
0Z0Z0Z0Z
7
Z0Z0Z0Z0
6
0Z0Z0Z0Z
5
Z0l0Z0Z0
4
0Z0Z0Z0Z
3
ZqZ0Z0Z0
2
0Z0l0Z0Z
1
l0Z0Z0Z0
a b c d e f g h

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 18 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Critères d’évaluation
Complétude : si une solution existe, la méthode de recherche la
trouve toujours
Complexité en temps : temps nécessaire pour trouver la solution
Complexité en espace : espace mémoire nécessaire pour effectuer
la recherche
Optimalité : la solution retenue est la meilleure

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 19 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Critères d’évaluation
Complétude : si une solution existe, la méthode de recherche la
trouve toujours
Complexité en temps : temps nécessaire pour trouver la solution
Complexité en espace : espace mémoire nécessaire pour effectuer
la recherche
Optimalité : la solution retenue est la meilleure

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 19 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Critères d’évaluation
Complétude : si une solution existe, la méthode de recherche la
trouve toujours
Complexité en temps : temps nécessaire pour trouver la solution
Complexité en espace : espace mémoire nécessaire pour effectuer
la recherche
Optimalité : la solution retenue est la meilleure

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 19 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Critères d’évaluation
Complétude : si une solution existe, la méthode de recherche la
trouve toujours
Complexité en temps : temps nécessaire pour trouver la solution
Complexité en espace : espace mémoire nécessaire pour effectuer
la recherche
Optimalité : la solution retenue est la meilleure

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 19 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Critères d’évaluation
Complétude : si une solution existe, la méthode de recherche la
trouve toujours
Complexité en temps : temps nécessaire pour trouver la solution
Complexité en espace : espace mémoire nécessaire pour effectuer
la recherche
Optimalité : la solution retenue est la meilleure

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 19 / 57


Résolution Evaluation de la recherche

Analyse de l’arbre de recherche

Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞

e0

e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 20 / 57


Résolution Evaluation de la recherche

Analyse de l’arbre de recherche

Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞

e0

e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 20 / 57


Résolution Evaluation de la recherche

Analyse de l’arbre de recherche

Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞

e0

e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 20 / 57


Résolution Evaluation de la recherche

Analyse de l’arbre de recherche

Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞

e0

e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 20 / 57


Résolution Evaluation de la recherche

Analyse de l’arbre de recherche

Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞

e0

e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 20 / 57


Résolution Evaluation de la recherche

Analyse de l’arbre de recherche

Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞

e0

e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 20 / 57


Résolution Evaluation de la recherche

Analyse de l’arbre de recherche

Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞

e0

e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 20 / 57


Résolution Evaluation de la recherche

Analyse de l’arbre de recherche

Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞

e0

e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 20 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Questions sur la complexité


Comment évaluer le temps indépendemment de la machine ?
On note T (n) le temps de calcul d’un algorithme en fonction
de la taille des données d’entrées.
utiliser de préférence :
l’ordre de grandeur du temps de calcul
son évolution en fonction des données entrées
le pire cas

Ordre général de croissance de l’arbre de recherche


Le temps de calcul T (n) est fonction du taux de croissance de
l’arbre de recherche
ex : pour un arbre doublant ses branches à chaque étape, T (n) = O(2n )
ex : pour une recherche dichotomique, T (n) = O(log2 (n))

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 21 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Questions sur la complexité


Comment évaluer le temps indépendemment de la machine ?
On note T (n) le temps de calcul d’un algorithme en fonction
de la taille des données d’entrées.
utiliser de préférence :
l’ordre de grandeur du temps de calcul
son évolution en fonction des données entrées
le pire cas

Ordre général de croissance de l’arbre de recherche


Le temps de calcul T (n) est fonction du taux de croissance de
l’arbre de recherche
ex : pour un arbre doublant ses branches à chaque étape, T (n) = O(2n )
ex : pour une recherche dichotomique, T (n) = O(log2 (n))

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 21 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Questions sur la complexité


Comment évaluer le temps indépendemment de la machine ?
On note T (n) le temps de calcul d’un algorithme en fonction
de la taille des données d’entrées.
utiliser de préférence :
l’ordre de grandeur du temps de calcul
son évolution en fonction des données entrées
le pire cas

Ordre général de croissance de l’arbre de recherche


Le temps de calcul T (n) est fonction du taux de croissance de
l’arbre de recherche
ex : pour un arbre doublant ses branches à chaque étape, T (n) = O(2n )
ex : pour une recherche dichotomique, T (n) = O(log2 (n))

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 21 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Questions sur la complexité


Comment évaluer le temps indépendemment de la machine ?
On note T (n) le temps de calcul d’un algorithme en fonction
de la taille des données d’entrées.
utiliser de préférence :
l’ordre de grandeur du temps de calcul
son évolution en fonction des données entrées
le pire cas

Ordre général de croissance de l’arbre de recherche


Le temps de calcul T (n) est fonction du taux de croissance de
l’arbre de recherche
ex : pour un arbre doublant ses branches à chaque étape, T (n) = O(2n )
ex : pour une recherche dichotomique, T (n) = O(log2 (n))

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 21 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Questions sur la complexité


Comment évaluer le temps indépendemment de la machine ?
On note T (n) le temps de calcul d’un algorithme en fonction
de la taille des données d’entrées.
utiliser de préférence :
l’ordre de grandeur du temps de calcul
son évolution en fonction des données entrées
le pire cas

Ordre général de croissance de l’arbre de recherche


Le temps de calcul T (n) est fonction du taux de croissance de
l’arbre de recherche
ex : pour un arbre doublant ses branches à chaque étape, T (n) = O(2n )
ex : pour une recherche dichotomique, T (n) = O(log2 (n))

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 21 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Questions sur la complexité


Comment évaluer le temps indépendemment de la machine ?
On note T (n) le temps de calcul d’un algorithme en fonction
de la taille des données d’entrées.
utiliser de préférence :
l’ordre de grandeur du temps de calcul
son évolution en fonction des données entrées
le pire cas

Ordre général de croissance de l’arbre de recherche


Le temps de calcul T (n) est fonction du taux de croissance de
l’arbre de recherche
ex : pour un arbre doublant ses branches à chaque étape, T (n) = O(2n )
ex : pour une recherche dichotomique, T (n) = O(log2 (n))

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 21 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Questions sur la complexité


Comment évaluer le temps indépendemment de la machine ?
On note T (n) le temps de calcul d’un algorithme en fonction
de la taille des données d’entrées.
utiliser de préférence :
l’ordre de grandeur du temps de calcul
son évolution en fonction des données entrées
le pire cas

Ordre général de croissance de l’arbre de recherche


Le temps de calcul T (n) est fonction du taux de croissance de
l’arbre de recherche
ex : pour un arbre doublant ses branches à chaque étape, T (n) = O(2n )
ex : pour une recherche dichotomique, T (n) = O(log2 (n))

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 21 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Questions sur la complexité


Comment évaluer le temps indépendemment de la machine ?
On note T (n) le temps de calcul d’un algorithme en fonction
de la taille des données d’entrées.
utiliser de préférence :
l’ordre de grandeur du temps de calcul
son évolution en fonction des données entrées
le pire cas

Ordre général de croissance de l’arbre de recherche


Le temps de calcul T (n) est fonction du taux de croissance de
l’arbre de recherche
ex : pour un arbre doublant ses branches à chaque étape, T (n) = O(2n )
ex : pour une recherche dichotomique, T (n) = O(log2 (n))

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 21 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Questions sur la complexité


Comment évaluer le temps indépendemment de la machine ?
On note T (n) le temps de calcul d’un algorithme en fonction
de la taille des données d’entrées.
utiliser de préférence :
l’ordre de grandeur du temps de calcul
son évolution en fonction des données entrées
le pire cas

Ordre général de croissance de l’arbre de recherche


Le temps de calcul T (n) est fonction du taux de croissance de
l’arbre de recherche
ex : pour un arbre doublant ses branches à chaque étape, T (n) = O(2n )
ex : pour une recherche dichotomique, T (n) = O(log2 (n))

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 21 / 57


Résolution Evaluation de la recherche

Evaluation de la recherche

Questions sur la complexité


Comment évaluer le temps indépendemment de la machine ?
On note T (n) le temps de calcul d’un algorithme en fonction
de la taille des données d’entrées.
utiliser de préférence :
l’ordre de grandeur du temps de calcul
son évolution en fonction des données entrées
le pire cas

Ordre général de croissance de l’arbre de recherche


Le temps de calcul T (n) est fonction du taux de croissance de
l’arbre de recherche
ex : pour un arbre doublant ses branches à chaque étape, T (n) = O(2n )
ex : pour une recherche dichotomique, T (n) = O(log2 (n))

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 21 / 57


Résolution Evaluation de la recherche

Evolution du temps de recherche

On suppose 1 action = 1µs = 10−6 s.

T (n)|n 10 20 30 40 50 60
n 10µs 20µs 30µs 40µs 50µs 60µs
log n 2.3µs 3µs 3.4µs 3.7µs 3.9µs 4.1µs
log2 n 3.3µs 4.3µs 4.9µs 5.3µs 5.6µs 5.9µs
n log n 23µs 60µs 102µs 147µs 195µs 245µs
n2 100µs 400µs 900µs 1.6 ms 2.5 ms 3.6 ms
n3 1 ms 8 ms 27 ms 64 ms 125 ms 216 ms
2n 1 ms 1s 18 mn 13 jours 36 ans 366 siècles
Pour un algo de complexité 2n , comme celui résolvant les “Tours de Hanoï”,
si le déplacement d’un disque coûte 1µs,
cela nécessite 13 jours pour déplacer la pile de 40 disques !

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 22 / 57


Résolution Type de recherches

Type de recherches

Type de recherches
Méthodes de recherche aveugles, sans utilisation de
connaissances sur le problème :
recherche en largeur
recherche en profondeur
recherche en profondeur limitée
recherche par approfondissement itératif
Méthodes de recherche informées (heuristiques)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 23 / 57


Résolution Type de recherches

Type de recherches

Type de recherches
Méthodes de recherche aveugles, sans utilisation de
connaissances sur le problème :
recherche en largeur
recherche en profondeur
recherche en profondeur limitée
recherche par approfondissement itératif
Méthodes de recherche informées (heuristiques)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 23 / 57


Résolution Type de recherches

Type de recherches

Type de recherches
Méthodes de recherche aveugles, sans utilisation de
connaissances sur le problème :
recherche en largeur
recherche en profondeur
recherche en profondeur limitée
recherche par approfondissement itératif
Méthodes de recherche informées (heuristiques)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 23 / 57


Résolution Type de recherches

Type de recherches

Type de recherches
Méthodes de recherche aveugles, sans utilisation de
connaissances sur le problème :
recherche en largeur
recherche en profondeur
recherche en profondeur limitée
recherche par approfondissement itératif
Méthodes de recherche informées (heuristiques)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 23 / 57


Résolution Type de recherches

Type de recherches

Type de recherches
Méthodes de recherche aveugles, sans utilisation de
connaissances sur le problème :
recherche en largeur
recherche en profondeur
recherche en profondeur limitée
recherche par approfondissement itératif
Méthodes de recherche informées (heuristiques)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 23 / 57


Résolution Type de recherches

Type de recherches

Type de recherches
Méthodes de recherche aveugles, sans utilisation de
connaissances sur le problème :
recherche en largeur
recherche en profondeur
recherche en profondeur limitée
recherche par approfondissement itératif
Méthodes de recherche informées (heuristiques)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 23 / 57


Résolution Type de recherches

Type de recherches

Type de recherches
Méthodes de recherche aveugles, sans utilisation de
connaissances sur le problème :
recherche en largeur
recherche en profondeur
recherche en profondeur limitée
recherche par approfondissement itératif
Méthodes de recherche informées (heuristiques)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 23 / 57


Résolution Algorithme de résolution

Algorithme de résolution générique

Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 24 / 57


Résolution Algorithme de résolution

Algorithme de résolution générique

Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 24 / 57


Résolution Algorithme de résolution

Algorithme de résolution générique

Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 24 / 57


Résolution Algorithme de résolution

Algorithme de résolution générique

Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 24 / 57


Résolution Algorithme de résolution

Algorithme de résolution générique

Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 24 / 57


Résolution Algorithme de résolution

Algorithme de résolution générique

Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 24 / 57


Résolution Algorithme de résolution

Algorithme de résolution générique

Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 24 / 57


Résolution Algorithme de résolution

Algorithme de résolution générique

Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 24 / 57


Résolution Algorithme de résolution

Algorithme de résolution générique

Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 24 / 57


Résolution Algorithme de résolution

Algorithme de résolution générique

Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 24 / 57


Résolution Algorithme de résolution

Algorithme de résolution générique

Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 24 / 57


Résolution Algorithme de résolution

Algorithme de résolution générique

procedure Recherche
noeudsLibres ← etatInitial
noeudsClos ← ∅
succes ← faux
while noeudsLibres 6= ∅ ∧ (non(succes)) do
n ← prendrePremier(noeudsLibres)
if estFinal(n) then
succes ← vrai
else
noeudsLibres ← noeudsLibres − {n}
noeudsClos ← noeudsClos ∪ {n}
for all s ∈ [Link] do
if s ∈/ noeudsLibres ∨ s ∈
/ noeudsClos then
ajouterNoeudLibre(noeudsLibres, s)
[Link] ← n
end if
end for
end if
end while
if succes then
afficherChemin(n)
end if
end procedure

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 25 / 57


Méthodes de recherche aveugles Recherche en largeur

Recherche en largeur

Recherche en largeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en fin de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue niveau par niveau
Complétude : Oui (si b (branchement) est fini)
Complexité : 1 + b + b × b + · · · + b d → en O(b d )
Optimalité : Oui le chemin trouvé de l’état initial à l’état final
est le plus court

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 26 / 57


Méthodes de recherche aveugles Recherche en largeur

Recherche en largeur

Recherche en largeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en fin de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue niveau par niveau
Complétude : Oui (si b (branchement) est fini)
Complexité : 1 + b + b × b + · · · + b d → en O(b d )
Optimalité : Oui le chemin trouvé de l’état initial à l’état final
est le plus court

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 26 / 57


Méthodes de recherche aveugles Recherche en largeur

Recherche en largeur

Recherche en largeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en fin de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue niveau par niveau
Complétude : Oui (si b (branchement) est fini)
Complexité : 1 + b + b × b + · · · + b d → en O(b d )
Optimalité : Oui le chemin trouvé de l’état initial à l’état final
est le plus court

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 26 / 57


Méthodes de recherche aveugles Recherche en largeur

Recherche en largeur

Recherche en largeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en fin de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue niveau par niveau
Complétude : Oui (si b (branchement) est fini)
Complexité : 1 + b + b × b + · · · + b d → en O(b d )
Optimalité : Oui le chemin trouvé de l’état initial à l’état final
est le plus court

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 26 / 57


Méthodes de recherche aveugles Recherche en largeur

Recherche en largeur

Recherche en largeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en fin de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue niveau par niveau
Complétude : Oui (si b (branchement) est fini)
Complexité : 1 + b + b × b + · · · + b d → en O(b d )
Optimalité : Oui le chemin trouvé de l’état initial à l’état final
est le plus court

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 26 / 57


Méthodes de recherche aveugles Recherche en largeur

Recherche en largeur

Recherche en largeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en fin de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue niveau par niveau
Complétude : Oui (si b (branchement) est fini)
Complexité : 1 + b + b × b + · · · + b d → en O(b d )
Optimalité : Oui le chemin trouvé de l’état initial à l’état final
est le plus court

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 26 / 57


Méthodes de recherche aveugles Recherche en largeur

Recherche en largeur

Recherche en largeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en fin de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue niveau par niveau
Complétude : Oui (si b (branchement) est fini)
Complexité : 1 + b + b × b + · · · + b d → en O(b d )
Optimalité : Oui le chemin trouvé de l’état initial à l’état final
est le plus court

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 26 / 57


Méthodes de recherche aveugles Recherche en largeur

Recherche en largeur : Exemple d’arbre de recherche

1 e0

2 3 4

6 7 8 9

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 27 / 57


Méthodes de recherche aveugles Recherche en profondeur

Recherche en profondeur

Recherche en profondeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en tête de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
bout de l’arbre
Complétude : Oui (si espaces d’états finis et acycliques)
Complexité : en O(b m )
Optimalité : non

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 28 / 57


Méthodes de recherche aveugles Recherche en profondeur

Recherche en profondeur

Recherche en profondeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en tête de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
bout de l’arbre
Complétude : Oui (si espaces d’états finis et acycliques)
Complexité : en O(b m )
Optimalité : non

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 28 / 57


Méthodes de recherche aveugles Recherche en profondeur

Recherche en profondeur

Recherche en profondeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en tête de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
bout de l’arbre
Complétude : Oui (si espaces d’états finis et acycliques)
Complexité : en O(b m )
Optimalité : non

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 28 / 57


Méthodes de recherche aveugles Recherche en profondeur

Recherche en profondeur

Recherche en profondeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en tête de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
bout de l’arbre
Complétude : Oui (si espaces d’états finis et acycliques)
Complexité : en O(b m )
Optimalité : non

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 28 / 57


Méthodes de recherche aveugles Recherche en profondeur

Recherche en profondeur

Recherche en profondeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en tête de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
bout de l’arbre
Complétude : Oui (si espaces d’états finis et acycliques)
Complexité : en O(b m )
Optimalité : non

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 28 / 57


Méthodes de recherche aveugles Recherche en profondeur

Recherche en profondeur

Recherche en profondeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en tête de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
bout de l’arbre
Complétude : Oui (si espaces d’états finis et acycliques)
Complexité : en O(b m )
Optimalité : non

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 28 / 57


Méthodes de recherche aveugles Recherche en profondeur

Recherche en profondeur

Recherche en profondeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en tête de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
bout de l’arbre
Complétude : Oui (si espaces d’états finis et acycliques)
Complexité : en O(b m )
Optimalité : non

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 28 / 57


Méthodes de recherche aveugles Recherche en profondeur

Recherche en profondeur : Exemple d’arbre de recherche

1 e0

2 8 10
11 13
5
3 4 6 7
9 12

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 29 / 57


Méthodes de recherche aveugles Recherche en profondeur limitée

Recherche en profondeur limitée

Recherche en profondeur limitée


Stratégie :
prendre un nœud, si son niveau est < L, en générer les fils et
les ajouter en tête de la liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
niveau L
Complétude : Non (solution trouvée ssi L ≤ d)
Complexité : en O(b L )
Optimalité : non

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 30 / 57


Méthodes de recherche aveugles Recherche en profondeur limitée

Recherche en profondeur limitée

Recherche en profondeur limitée


Stratégie :
prendre un nœud, si son niveau est < L, en générer les fils et
les ajouter en tête de la liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
niveau L
Complétude : Non (solution trouvée ssi L ≤ d)
Complexité : en O(b L )
Optimalité : non

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 30 / 57


Méthodes de recherche aveugles Recherche en profondeur limitée

Recherche en profondeur limitée

Recherche en profondeur limitée


Stratégie :
prendre un nœud, si son niveau est < L, en générer les fils et
les ajouter en tête de la liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
niveau L
Complétude : Non (solution trouvée ssi L ≤ d)
Complexité : en O(b L )
Optimalité : non

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 30 / 57


Méthodes de recherche aveugles Recherche en profondeur limitée

Recherche en profondeur limitée

Recherche en profondeur limitée


Stratégie :
prendre un nœud, si son niveau est < L, en générer les fils et
les ajouter en tête de la liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
niveau L
Complétude : Non (solution trouvée ssi L ≤ d)
Complexité : en O(b L )
Optimalité : non

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 30 / 57


Méthodes de recherche aveugles Recherche en profondeur limitée

Recherche en profondeur limitée

Recherche en profondeur limitée


Stratégie :
prendre un nœud, si son niveau est < L, en générer les fils et
les ajouter en tête de la liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
niveau L
Complétude : Non (solution trouvée ssi L ≤ d)
Complexité : en O(b L )
Optimalité : non

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 30 / 57


Méthodes de recherche aveugles Recherche en profondeur limitée

Recherche en profondeur limitée

Recherche en profondeur limitée


Stratégie :
prendre un nœud, si son niveau est < L, en générer les fils et
les ajouter en tête de la liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
niveau L
Complétude : Non (solution trouvée ssi L ≤ d)
Complexité : en O(b L )
Optimalité : non

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 30 / 57


Méthodes de recherche aveugles Recherche en profondeur limitée

Recherche en profondeur limitée

Recherche en profondeur limitée


Stratégie :
prendre un nœud, si son niveau est < L, en générer les fils et
les ajouter en tête de la liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
niveau L
Complétude : Non (solution trouvée ssi L ≤ d)
Complexité : en O(b L )
Optimalité : non

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 30 / 57


Méthodes de recherche aveugles Recherche par approfondissement itératif

Recherche par approfondissement itératif

Recherche par approfondissement itératif


Stratégie :
recherche en profondeur limité en incrémentant L dès que la
profondeur L est atteinte
combine donc recherche en largeur et recherche en profondeur
Complétude : Oui
Complexité : en O(b d )
Optimalité : oui (si L ≤ d)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 31 / 57


Méthodes de recherche aveugles Recherche par approfondissement itératif

Recherche par approfondissement itératif

Recherche par approfondissement itératif


Stratégie :
recherche en profondeur limité en incrémentant L dès que la
profondeur L est atteinte
combine donc recherche en largeur et recherche en profondeur
Complétude : Oui
Complexité : en O(b d )
Optimalité : oui (si L ≤ d)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 31 / 57


Méthodes de recherche aveugles Recherche par approfondissement itératif

Recherche par approfondissement itératif

Recherche par approfondissement itératif


Stratégie :
recherche en profondeur limité en incrémentant L dès que la
profondeur L est atteinte
combine donc recherche en largeur et recherche en profondeur
Complétude : Oui
Complexité : en O(b d )
Optimalité : oui (si L ≤ d)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 31 / 57


Méthodes de recherche aveugles Recherche par approfondissement itératif

Recherche par approfondissement itératif

Recherche par approfondissement itératif


Stratégie :
recherche en profondeur limité en incrémentant L dès que la
profondeur L est atteinte
combine donc recherche en largeur et recherche en profondeur
Complétude : Oui
Complexité : en O(b d )
Optimalité : oui (si L ≤ d)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 31 / 57


Méthodes de recherche aveugles Recherche par approfondissement itératif

Recherche par approfondissement itératif

Recherche par approfondissement itératif


Stratégie :
recherche en profondeur limité en incrémentant L dès que la
profondeur L est atteinte
combine donc recherche en largeur et recherche en profondeur
Complétude : Oui
Complexité : en O(b d )
Optimalité : oui (si L ≤ d)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 31 / 57


Méthodes de recherche aveugles Recherche par approfondissement itératif

Recherche par approfondissement itératif

Recherche par approfondissement itératif


Stratégie :
recherche en profondeur limité en incrémentant L dès que la
profondeur L est atteinte
combine donc recherche en largeur et recherche en profondeur
Complétude : Oui
Complexité : en O(b d )
Optimalité : oui (si L ≤ d)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 31 / 57


Méthodes de recherche aveugles Recherche par approfondissement itératif

Recherche par approfondissement itératif

Recherche par approfondissement itératif


Stratégie :
recherche en profondeur limité en incrémentant L dès que la
profondeur L est atteinte
combine donc recherche en largeur et recherche en profondeur
Complétude : Oui
Complexité : en O(b d )
Optimalité : oui (si L ≤ d)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 31 / 57


Méthodes de recherche aveugles Recherche par approfondissement itératif

Recherche par approfondissement itératif : Exemple d’arbre


de recherche avec L=2

1 e0

2 4 5
6 7
3

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 32 / 57


Méthodes de recherche heuristiques Notions d’heuristiques

Heuristiques

Notion d’heuristiques
Méthodes en aveugle trop gourmandes en mémoire et/ou en
temps
Une solution : orienter la recherche par une information
heuristique
Une heuristique doit guider le choix des états à tester et les
ordonner selon leurs ‘promesses de rapprocher d’un but’.
Une heuristique dépend fortement du problème à traiter
Une heuristique pauvre basée sur des propriétés trop simples
du problème sera peu efficace,
Une heuristique riche basée sur des propriétés approfondies du
problème sera efficace, mais est difficile à établir.

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 33 / 57


Méthodes de recherche heuristiques Notions d’heuristiques

Heuristiques

Notion d’heuristiques
Méthodes en aveugle trop gourmandes en mémoire et/ou en
temps
Une solution : orienter la recherche par une information
heuristique
Une heuristique doit guider le choix des états à tester et les
ordonner selon leurs ‘promesses de rapprocher d’un but’.
Une heuristique dépend fortement du problème à traiter
Une heuristique pauvre basée sur des propriétés trop simples
du problème sera peu efficace,
Une heuristique riche basée sur des propriétés approfondies du
problème sera efficace, mais est difficile à établir.

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 33 / 57


Méthodes de recherche heuristiques Notions d’heuristiques

Heuristiques

Notion d’heuristiques
Méthodes en aveugle trop gourmandes en mémoire et/ou en
temps
Une solution : orienter la recherche par une information
heuristique
Une heuristique doit guider le choix des états à tester et les
ordonner selon leurs ‘promesses de rapprocher d’un but’.
Une heuristique dépend fortement du problème à traiter
Une heuristique pauvre basée sur des propriétés trop simples
du problème sera peu efficace,
Une heuristique riche basée sur des propriétés approfondies du
problème sera efficace, mais est difficile à établir.

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 33 / 57


Méthodes de recherche heuristiques Notions d’heuristiques

Heuristiques

Notion d’heuristiques
Méthodes en aveugle trop gourmandes en mémoire et/ou en
temps
Une solution : orienter la recherche par une information
heuristique
Une heuristique doit guider le choix des états à tester et les
ordonner selon leurs ‘promesses de rapprocher d’un but’.
Une heuristique dépend fortement du problème à traiter
Une heuristique pauvre basée sur des propriétés trop simples
du problème sera peu efficace,
Une heuristique riche basée sur des propriétés approfondies du
problème sera efficace, mais est difficile à établir.

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 33 / 57


Méthodes de recherche heuristiques Notions d’heuristiques

Heuristiques

Notion d’heuristiques
Méthodes en aveugle trop gourmandes en mémoire et/ou en
temps
Une solution : orienter la recherche par une information
heuristique
Une heuristique doit guider le choix des états à tester et les
ordonner selon leurs ‘promesses de rapprocher d’un but’.
Une heuristique dépend fortement du problème à traiter
Une heuristique pauvre basée sur des propriétés trop simples
du problème sera peu efficace,
Une heuristique riche basée sur des propriétés approfondies du
problème sera efficace, mais est difficile à établir.

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 33 / 57


Méthodes de recherche heuristiques Notions d’heuristiques

Heuristiques

Notion d’heuristiques
Méthodes en aveugle trop gourmandes en mémoire et/ou en
temps
Une solution : orienter la recherche par une information
heuristique
Une heuristique doit guider le choix des états à tester et les
ordonner selon leurs ‘promesses de rapprocher d’un but’.
Une heuristique dépend fortement du problème à traiter
Une heuristique pauvre basée sur des propriétés trop simples
du problème sera peu efficace,
Une heuristique riche basée sur des propriétés approfondies du
problème sera efficace, mais est difficile à établir.

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 33 / 57


Méthodes de recherche heuristiques Notions d’heuristiques

Heuristiques

Notion d’heuristiques
Méthodes en aveugle trop gourmandes en mémoire et/ou en
temps
Une solution : orienter la recherche par une information
heuristique
Une heuristique doit guider le choix des états à tester et les
ordonner selon leurs ‘promesses de rapprocher d’un but’.
Une heuristique dépend fortement du problème à traiter
Une heuristique pauvre basée sur des propriétés trop simples
du problème sera peu efficace,
Une heuristique riche basée sur des propriétés approfondies du
problème sera efficace, mais est difficile à établir.

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 33 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Avance par gourmandise


A chaque nœud, on choisit le nœud suivant offrant le meilleur
gain
Il faut donc pouvoir évaluer les nœuds
Algorithme optimal, dans certains cas
Exemples classiques :
Transformer un nb rationnel en somme de nb rationnels de la
forme 1/n (fractions unitaires, égyptiennes)
Maximiser le nb d’activités réalisables en un temps donné
Rendre la monnaie en minimisant le nb de pièces/billets

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 34 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Avance par gourmandise


A chaque nœud, on choisit le nœud suivant offrant le meilleur
gain
Il faut donc pouvoir évaluer les nœuds
Algorithme optimal, dans certains cas
Exemples classiques :
Transformer un nb rationnel en somme de nb rationnels de la
forme 1/n (fractions unitaires, égyptiennes)
Maximiser le nb d’activités réalisables en un temps donné
Rendre la monnaie en minimisant le nb de pièces/billets

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 34 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Avance par gourmandise


A chaque nœud, on choisit le nœud suivant offrant le meilleur
gain
Il faut donc pouvoir évaluer les nœuds
Algorithme optimal, dans certains cas
Exemples classiques :
Transformer un nb rationnel en somme de nb rationnels de la
forme 1/n (fractions unitaires, égyptiennes)
Maximiser le nb d’activités réalisables en un temps donné
Rendre la monnaie en minimisant le nb de pièces/billets

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 34 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Avance par gourmandise


A chaque nœud, on choisit le nœud suivant offrant le meilleur
gain
Il faut donc pouvoir évaluer les nœuds
Algorithme optimal, dans certains cas
Exemples classiques :
Transformer un nb rationnel en somme de nb rationnels de la
forme 1/n (fractions unitaires, égyptiennes)
Maximiser le nb d’activités réalisables en un temps donné
Rendre la monnaie en minimisant le nb de pièces/billets

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 34 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Avance par gourmandise


A chaque nœud, on choisit le nœud suivant offrant le meilleur
gain
Il faut donc pouvoir évaluer les nœuds
Algorithme optimal, dans certains cas
Exemples classiques :
Transformer un nb rationnel en somme de nb rationnels de la
forme 1/n (fractions unitaires, égyptiennes)
Maximiser le nb d’activités réalisables en un temps donné
Rendre la monnaie en minimisant le nb de pièces/billets

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 34 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Avance par gourmandise


A chaque nœud, on choisit le nœud suivant offrant le meilleur
gain
Il faut donc pouvoir évaluer les nœuds
Algorithme optimal, dans certains cas
Exemples classiques :
Transformer un nb rationnel en somme de nb rationnels de la
forme 1/n (fractions unitaires, égyptiennes)
Maximiser le nb d’activités réalisables en un temps donné
Rendre la monnaie en minimisant le nb de pièces/billets

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 34 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Avance par gourmandise


A chaque nœud, on choisit le nœud suivant offrant le meilleur
gain
Il faut donc pouvoir évaluer les nœuds
Algorithme optimal, dans certains cas
Exemples classiques :
Transformer un nb rationnel en somme de nb rationnels de la
forme 1/n (fractions unitaires, égyptiennes)
Maximiser le nb d’activités réalisables en un temps donné
Rendre la monnaie en minimisant le nb de pièces/billets

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 34 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Avance par gourmandise


A chaque nœud, on choisit le nœud suivant offrant le meilleur
gain
Il faut donc pouvoir évaluer les nœuds
Algorithme optimal, dans certains cas
Exemples classiques :
Transformer un nb rationnel en somme de nb rationnels de la
forme 1/n (fractions unitaires, égyptiennes)
Maximiser le nb d’activités réalisables en un temps donné
Rendre la monnaie en minimisant le nb de pièces/billets

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 34 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Fractions égyptiennes
P 1
Objectif : n = a
=

b i di
P  
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
 
Exemple : transformer n = 14
15

15 , on note 2 et n ← 15 − 2  = 30
1
≤ 14 1 14 1
 13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1

La suite est évidente, 4 , . . . , 10 sont testées


1 1

15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1


E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 35 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Fractions égyptiennes
P 1
Objectif : n = a
=

b i di
P  
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
 
Exemple : transformer n = 14
15

15 , on note 2 et n ← 15 − 2  = 30
1
≤ 14 1 14 1
 13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1

La suite est évidente, 4 , . . . , 10 sont testées


1 1

15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1


E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 35 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Fractions égyptiennes
P 1
Objectif : n = a
=

b i di
P  
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
 
Exemple : transformer n = 14
15

15 , on note 2 et n ← 15 − 2  = 30
1
≤ 14 1 14 1
 13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1

La suite est évidente, 4 , . . . , 10 sont testées


1 1

15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1


E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 35 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Fractions égyptiennes
P 1
Objectif : n = a
=

b i di
P  
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
 
Exemple : transformer n = 14
15

15 , on note 2 et n ← 15 − 2  = 30
1
≤ 14 1 14 1
 13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1

La suite est évidente, 4 , . . . , 10 sont testées


1 1

15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1


E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 35 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Fractions égyptiennes
P 1
Objectif : n = a
=

b i di
P  
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
 
Exemple : transformer n = 14
15

15 , on note 2 et n ← 15 − 2  = 30
1
≤ 14 1 14 1
 13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1

La suite est évidente, 4 , . . . , 10 sont testées


1 1

15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1


E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 35 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Fractions égyptiennes
P 1
Objectif : n = a
=

b i di
P  
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
 
Exemple : transformer n = 14
15

15 , on note 2 et n ← 15 − 2  = 30
1
≤ 14 1 14 1
 13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1

La suite est évidente, 4 , . . . , 10 sont testées


1 1

15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1


E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 35 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Fractions égyptiennes
P 1
Objectif : n = a
=

b i di
P  
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
 
Exemple : transformer n = 14
15

15 , on note 2 et n ← 15 − 2  = 30
1
≤ 14 1 14 1
 13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1

La suite est évidente, 4 , . . . , 10 sont testées


1 1

15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1


E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 35 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Fractions égyptiennes
P 1
Objectif : n = a
=

b i di
P  
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
 
Exemple : transformer n = 14
15

15 , on note 2 et n ← 15 − 2  = 30
1
≤ 14 1 14 1
 13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1

La suite est évidente, 4 , . . . , 10 sont testées


1 1

15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1


E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 35 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Fractions égyptiennes
P 1
Objectif : n = a
=

b i di
P  
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
 
Exemple : transformer n = 14
15

15 , on note 2 et n ← 15 − 2  = 30
1
≤ 14 1 14 1
 13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1

La suite est évidente, 4 , . . . , 10 sont testées


1 1

15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1


E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 35 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Fractions égyptiennes
P 1
Objectif : n = a
=

b i di
P  
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
 
Exemple : transformer n = 14
15

15 , on note 2 et n ← 15 − 2  = 30
1
≤ 14 1 14 1
 13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1

La suite est évidente, 4 , . . . , 10 sont testées


1 1

15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1


E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 35 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Fractions égyptiennes
P 1
Objectif : n = a
=

b i di
P  
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
 
Exemple : transformer n = 14
15

15 , on note 2 et n ← 15 − 2  = 30
1
≤ 14 1 14 1
 13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1

La suite est évidente, 4 , . . . , 10 sont testées


1 1

15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1


E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 35 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Fractions égyptiennes
P 1
Objectif : n = a
=

b i di
P  
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
 
Exemple : transformer n = 14
15

15 , on note 2 et n ← 15 − 2  = 30
1
≤ 14 1 14 1
 13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1

La suite est évidente, 4 , . . . , 10 sont testées


1 1

15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1


E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 35 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Maximiser le nb d’actes
Objectif : A partir d’une liste d’actes de dates et de durées
variables,
maximiser le nb d’actes réalisables sans chevauchement
Algorithme glouton :
trier les actes par date de départ
meilleur choix = prendre le plus court réalisable au plus tôt
Exemple : à partir de l’ensemble d’actes initial, 3 actes sont
réalisables sans chevauchement

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 36 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Maximiser le nb d’actes
Objectif : A partir d’une liste d’actes de dates et de durées
variables,
maximiser le nb d’actes réalisables sans chevauchement
Algorithme glouton :
trier les actes par date de départ
meilleur choix = prendre le plus court réalisable au plus tôt
Exemple : à partir de l’ensemble d’actes initial, 3 actes sont
réalisables sans chevauchement

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 36 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Maximiser le nb d’actes
Objectif : A partir d’une liste d’actes de dates et de durées
variables,
maximiser le nb d’actes réalisables sans chevauchement
Algorithme glouton :
trier les actes par date de départ
meilleur choix = prendre le plus court réalisable au plus tôt
Exemple : à partir de l’ensemble d’actes initial, 3 actes sont
réalisables sans chevauchement

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 36 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Maximiser le nb d’actes
Objectif : A partir d’une liste d’actes de dates et de durées
variables,
maximiser le nb d’actes réalisables sans chevauchement
Algorithme glouton :
trier les actes par date de départ
meilleur choix = prendre le plus court réalisable au plus tôt
Exemple : à partir de l’ensemble d’actes initial, 3 actes sont
réalisables sans chevauchement

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 36 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Maximiser le nb d’actes
Objectif : A partir d’une liste d’actes de dates et de durées
variables,
maximiser le nb d’actes réalisables sans chevauchement
Algorithme glouton :
trier les actes par date de départ
meilleur choix = prendre le plus court réalisable au plus tôt
Exemple : à partir de l’ensemble d’actes initial, 3 actes sont
réalisables sans chevauchement

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 36 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Maximiser le nb d’actes
Objectif : A partir d’une liste d’actes de dates et de durées
variables,
maximiser le nb d’actes réalisables sans chevauchement
Algorithme glouton :
trier les actes par date de départ
meilleur choix = prendre le plus court réalisable au plus tôt
Exemple : à partir de l’ensemble d’actes initial, 3 actes sont
réalisables sans chevauchement

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 36 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec le rendu de monnaie


Objectif : donner le minimum de pièces/billets correspondant
à une somme s = i pi , pi ∈ {10, 5, 2, 1}
P

Algorithme glouton : s − i pi = 0
P

retirer de s les pièces les plus élevées


Exemple :
36 = 3 × (10) + 1 × (5) + 1 × (1), optimal de 5 pièces atteint
MAIS algo non optimal selon les pièces/billets possibles
Exemple :
si pi ∈ {4, 3, 1} et s = 6,
l’algo donne 6 = 1 × (4) + 2 × (1) donc 3 pièces
mais l’optimal est 6 = 2 × (3) donc 2 pièces

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 37 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec le rendu de monnaie


Objectif : donner le minimum de pièces/billets correspondant
à une somme s = i pi , pi ∈ {10, 5, 2, 1}
P

Algorithme glouton : s − i pi = 0
P

retirer de s les pièces les plus élevées


Exemple :
36 = 3 × (10) + 1 × (5) + 1 × (1), optimal de 5 pièces atteint
MAIS algo non optimal selon les pièces/billets possibles
Exemple :
si pi ∈ {4, 3, 1} et s = 6,
l’algo donne 6 = 1 × (4) + 2 × (1) donc 3 pièces
mais l’optimal est 6 = 2 × (3) donc 2 pièces

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 37 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec le rendu de monnaie


Objectif : donner le minimum de pièces/billets correspondant
à une somme s = i pi , pi ∈ {10, 5, 2, 1}
P

Algorithme glouton : s − i pi = 0
P

retirer de s les pièces les plus élevées


Exemple :
36 = 3 × (10) + 1 × (5) + 1 × (1), optimal de 5 pièces atteint
MAIS algo non optimal selon les pièces/billets possibles
Exemple :
si pi ∈ {4, 3, 1} et s = 6,
l’algo donne 6 = 1 × (4) + 2 × (1) donc 3 pièces
mais l’optimal est 6 = 2 × (3) donc 2 pièces

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 37 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec le rendu de monnaie


Objectif : donner le minimum de pièces/billets correspondant
à une somme s = i pi , pi ∈ {10, 5, 2, 1}
P

Algorithme glouton : s − i pi = 0
P

retirer de s les pièces les plus élevées


Exemple :
36 = 3 × (10) + 1 × (5) + 1 × (1), optimal de 5 pièces atteint
MAIS algo non optimal selon les pièces/billets possibles
Exemple :
si pi ∈ {4, 3, 1} et s = 6,
l’algo donne 6 = 1 × (4) + 2 × (1) donc 3 pièces
mais l’optimal est 6 = 2 × (3) donc 2 pièces

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 37 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec le rendu de monnaie


Objectif : donner le minimum de pièces/billets correspondant
à une somme s = i pi , pi ∈ {10, 5, 2, 1}
P

Algorithme glouton : s − i pi = 0
P

retirer de s les pièces les plus élevées


Exemple :
36 = 3 × (10) + 1 × (5) + 1 × (1), optimal de 5 pièces atteint
MAIS algo non optimal selon les pièces/billets possibles
Exemple :
si pi ∈ {4, 3, 1} et s = 6,
l’algo donne 6 = 1 × (4) + 2 × (1) donc 3 pièces
mais l’optimal est 6 = 2 × (3) donc 2 pièces

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 37 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec le rendu de monnaie


Objectif : donner le minimum de pièces/billets correspondant
à une somme s = i pi , pi ∈ {10, 5, 2, 1}
P

Algorithme glouton : s − i pi = 0
P

retirer de s les pièces les plus élevées


Exemple :
36 = 3 × (10) + 1 × (5) + 1 × (1), optimal de 5 pièces atteint
MAIS algo non optimal selon les pièces/billets possibles
Exemple :
si pi ∈ {4, 3, 1} et s = 6,
l’algo donne 6 = 1 × (4) + 2 × (1) donc 3 pièces
mais l’optimal est 6 = 2 × (3) donc 2 pièces

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 37 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec le rendu de monnaie


Objectif : donner le minimum de pièces/billets correspondant
à une somme s = i pi , pi ∈ {10, 5, 2, 1}
P

Algorithme glouton : s − i pi = 0
P

retirer de s les pièces les plus élevées


Exemple :
36 = 3 × (10) + 1 × (5) + 1 × (1), optimal de 5 pièces atteint
MAIS algo non optimal selon les pièces/billets possibles
Exemple :
si pi ∈ {4, 3, 1} et s = 6,
l’algo donne 6 = 1 × (4) + 2 × (1) donc 3 pièces
mais l’optimal est 6 = 2 × (3) donc 2 pièces

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 37 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec le rendu de monnaie


Objectif : donner le minimum de pièces/billets correspondant
à une somme s = i pi , pi ∈ {10, 5, 2, 1}
P

Algorithme glouton : s − i pi = 0
P

retirer de s les pièces les plus élevées


Exemple :
36 = 3 × (10) + 1 × (5) + 1 × (1), optimal de 5 pièces atteint
MAIS algo non optimal selon les pièces/billets possibles
Exemple :
si pi ∈ {4, 3, 1} et s = 6,
l’algo donne 6 = 1 × (4) + 2 × (1) donc 3 pièces
mais l’optimal est 6 = 2 × (3) donc 2 pièces

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 37 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec le rendu de monnaie


Objectif : donner le minimum de pièces/billets correspondant
à une somme s = i pi , pi ∈ {10, 5, 2, 1}
P

Algorithme glouton : s − i pi = 0
P

retirer de s les pièces les plus élevées


Exemple :
36 = 3 × (10) + 1 × (5) + 1 × (1), optimal de 5 pièces atteint
MAIS algo non optimal selon les pièces/billets possibles
Exemple :
si pi ∈ {4, 3, 1} et s = 6,
l’algo donne 6 = 1 × (4) + 2 × (1) donc 3 pièces
mais l’optimal est 6 = 2 × (3) donc 2 pièces

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 37 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec le rendu de monnaie


Objectif : donner le minimum de pièces/billets correspondant
à une somme s = i pi , pi ∈ {10, 5, 2, 1}
P

Algorithme glouton : s − i pi = 0
P

retirer de s les pièces les plus élevées


Exemple :
36 = 3 × (10) + 1 × (5) + 1 × (1), optimal de 5 pièces atteint
MAIS algo non optimal selon les pièces/billets possibles
Exemple :
si pi ∈ {4, 3, 1} et s = 6,
l’algo donne 6 = 1 × (4) + 2 × (1) donc 3 pièces
mais l’optimal est 6 = 2 × (3) donc 2 pièces

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 37 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec le rendu de monnaie


Objectif : donner le minimum de pièces/billets correspondant
à une somme s = i pi , pi ∈ {10, 5, 2, 1}
P

Algorithme glouton : s − i pi = 0
P

retirer de s les pièces les plus élevées


Exemple :
36 = 3 × (10) + 1 × (5) + 1 × (1), optimal de 5 pièces atteint
MAIS algo non optimal selon les pièces/billets possibles
Exemple :
si pi ∈ {4, 3, 1} et s = 6,
l’algo donne 6 = 1 × (4) + 2 × (1) donc 3 pièces
mais l’optimal est 6 = 2 × (3) donc 2 pièces

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 37 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec les graphes


Objectif : trouver le chemin le plus court
Algorithme glouton : à partir d’un point donné, prendre l’arc
le plus court
La figure montre un exemple simple la non optimalité de
l’algorithme glouton pour ce cas
le plus court chemin a une longueur de 6 unités
l’algo glouton trouve une longueur de 8.6 unités !

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 38 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec les graphes


Objectif : trouver le chemin le plus court
Algorithme glouton : à partir d’un point donné, prendre l’arc
le plus court
La figure montre un exemple simple la non optimalité de
l’algorithme glouton pour ce cas
le plus court chemin a une longueur de 6 unités
l’algo glouton trouve une longueur de 8.6 unités !

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 38 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec les graphes


Objectif : trouver le chemin le plus court
Algorithme glouton : à partir d’un point donné, prendre l’arc
le plus court
La figure montre un exemple simple la non optimalité de
l’algorithme glouton pour ce cas
le plus court chemin a une longueur de 6 unités
l’algo glouton trouve une longueur de 8.6 unités !

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 38 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec les graphes


Objectif : trouver le chemin le plus court
Algorithme glouton : à partir d’un point donné, prendre l’arc
le plus court
La figure montre un exemple simple la non optimalité de
l’algorithme glouton pour ce cas
le plus court chemin a une longueur de 6 unités
l’algo glouton trouve une longueur de 8.6 unités !

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 38 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec les graphes


Objectif : trouver le chemin le plus court
Algorithme glouton : à partir d’un point donné, prendre l’arc
le plus court
La figure montre un exemple simple la non optimalité de
l’algorithme glouton pour ce cas
le plus court chemin a une longueur de 6 unités
l’algo glouton trouve une longueur de 8.6 unités !

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 38 / 57


Méthodes de recherche heuristiques Algorithme glouton (greedy)

Algorithme glouton (greedy)

Non optimal avec les graphes


Objectif : trouver le chemin le plus court
Algorithme glouton : à partir d’un point donné, prendre l’arc
le plus court
La figure montre un exemple simple la non optimalité de
l’algorithme glouton pour ce cas
le plus court chemin a une longueur de 6 unités
l’algo glouton trouve une longueur de 8.6 unités !

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 38 / 57


Méthodes de recherche heuristiques Algorithme A*

Recherche Heuristique par A*

Définitions pour la recherche par heuristique


Soit n un nœud du graphe
g ∗ (n) est le coût minimum entre le nœud de départ n0 et le nœud n
h∗ (n) est le coût minimal des chemins du nœud n à un nœud
solution ns .
f ∗ (n) = g ∗ (n) + h∗ (n) est le coût du chemin solution optimal de n0
à ns passant par n.
Il est donc nécessaire de définir :
une heuristique h(n) qui estime h∗ (n)
g(n) le coût effectif du meilleur chemin connu pour aller de n0 à n
pour poser f (n) = g(n) + h(n) , la fonction d’évaluation du nœud n

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 39 / 57


Méthodes de recherche heuristiques Algorithme A*

Recherche Heuristique par A*

Définitions pour la recherche par heuristique


Soit n un nœud du graphe
g ∗ (n) est le coût minimum entre le nœud de départ n0 et le nœud n
h∗ (n) est le coût minimal des chemins du nœud n à un nœud
solution ns .
f ∗ (n) = g ∗ (n) + h∗ (n) est le coût du chemin solution optimal de n0
à ns passant par n.
Il est donc nécessaire de définir :
une heuristique h(n) qui estime h∗ (n)
g(n) le coût effectif du meilleur chemin connu pour aller de n0 à n
pour poser f (n) = g(n) + h(n) , la fonction d’évaluation du nœud n

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 39 / 57


Méthodes de recherche heuristiques Algorithme A*

Recherche Heuristique par A*

Définitions pour la recherche par heuristique


Soit n un nœud du graphe
g ∗ (n) est le coût minimum entre le nœud de départ n0 et le nœud n
h∗ (n) est le coût minimal des chemins du nœud n à un nœud
solution ns .
f ∗ (n) = g ∗ (n) + h∗ (n) est le coût du chemin solution optimal de n0
à ns passant par n.
Il est donc nécessaire de définir :
une heuristique h(n) qui estime h∗ (n)
g(n) le coût effectif du meilleur chemin connu pour aller de n0 à n
pour poser f (n) = g(n) + h(n) , la fonction d’évaluation du nœud n

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 39 / 57


Méthodes de recherche heuristiques Algorithme A*

Recherche Heuristique par A*

Définitions pour la recherche par heuristique


Soit n un nœud du graphe
g ∗ (n) est le coût minimum entre le nœud de départ n0 et le nœud n
h∗ (n) est le coût minimal des chemins du nœud n à un nœud
solution ns .
f ∗ (n) = g ∗ (n) + h∗ (n) est le coût du chemin solution optimal de n0
à ns passant par n.
Il est donc nécessaire de définir :
une heuristique h(n) qui estime h∗ (n)
g(n) le coût effectif du meilleur chemin connu pour aller de n0 à n
pour poser f (n) = g(n) + h(n) , la fonction d’évaluation du nœud n

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 39 / 57


Méthodes de recherche heuristiques Algorithme A*

Recherche Heuristique par A*

Définitions pour la recherche par heuristique


Soit n un nœud du graphe
g ∗ (n) est le coût minimum entre le nœud de départ n0 et le nœud n
h∗ (n) est le coût minimal des chemins du nœud n à un nœud
solution ns .
f ∗ (n) = g ∗ (n) + h∗ (n) est le coût du chemin solution optimal de n0
à ns passant par n.
Il est donc nécessaire de définir :
une heuristique h(n) qui estime h∗ (n)
g(n) le coût effectif du meilleur chemin connu pour aller de n0 à n
pour poser f (n) = g(n) + h(n) , la fonction d’évaluation du nœud n

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 39 / 57


Méthodes de recherche heuristiques Algorithme A*

Recherche Heuristique par A*

Définitions pour la recherche par heuristique


Soit n un nœud du graphe
g ∗ (n) est le coût minimum entre le nœud de départ n0 et le nœud n
h∗ (n) est le coût minimal des chemins du nœud n à un nœud
solution ns .
f ∗ (n) = g ∗ (n) + h∗ (n) est le coût du chemin solution optimal de n0
à ns passant par n.
Il est donc nécessaire de définir :
une heuristique h(n) qui estime h∗ (n)
g(n) le coût effectif du meilleur chemin connu pour aller de n0 à n
pour poser f (n) = g(n) + h(n) , la fonction d’évaluation du nœud n

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 39 / 57


Méthodes de recherche heuristiques Algorithme A*

Recherche Heuristique par A*

Définitions pour la recherche par heuristique


Soit n un nœud du graphe
g ∗ (n) est le coût minimum entre le nœud de départ n0 et le nœud n
h∗ (n) est le coût minimal des chemins du nœud n à un nœud
solution ns .
f ∗ (n) = g ∗ (n) + h∗ (n) est le coût du chemin solution optimal de n0
à ns passant par n.
Il est donc nécessaire de définir :
une heuristique h(n) qui estime h∗ (n)
g(n) le coût effectif du meilleur chemin connu pour aller de n0 à n
pour poser f (n) = g(n) + h(n) , la fonction d’évaluation du nœud n

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 39 / 57


Méthodes de recherche heuristiques Algorithme A*

Exemple d’algorithme A* I

procedure RechercheA*
neudsLibres ← etatInitial
noeudsClos ← ∅
succes ← faux
while noeudsLibres 6= ∅ ∧ (non(succes)) do
. Choisir n dans les noeudsLibres tel que f(n) est minimum
n ← choisirnœudHeuristique(noeudsLibres)
if estFinal(n) then
succes ← vrai
else
noeudsLibres ← noeudsLibres − {n}
noeudsClos ← noeudsClos ∪ {n}
for all s ∈ [Link] do
if s ∈/ noeudsLibres ∨ s ∈
/ noeudsClos then
noeudsLibres ← noeudsLibres ∪ {s}
[Link] ← n
g(s) ← g(n) + cout(n, s)
else

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 40 / 57


Méthodes de recherche heuristiques Algorithme A*

Exemple d’algorithme A* II

if g(s) ≥ g(n) + cout(n, s) then


[Link] ← n
g(s) ← g(n) + cout(n, s)
if s ∈ n÷udsClos then
noeudsLibres ← noeudsLibres ∪ {s}
noeudsClos ← noeudsClos − {s}
end if
end if
end if
end for
end if
end while
end procedure

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 41 / 57


Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique

Propriétés de la recherche par heuristique


Particularités
Cas particuliers :
si ∀n, h(n) = 0, alors f(n)=g(n) ; l’algorithme est équivalent à
une recherche en largeur ;
si ∀n, f (n) = h(n), l’algorithme est équivalent à une recherche
en profondeur

Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique

Propriétés de la recherche par heuristique


Particularités
Cas particuliers :
si ∀n, h(n) = 0, alors f(n)=g(n) ; l’algorithme est équivalent à
une recherche en largeur ;
si ∀n, f (n) = h(n), l’algorithme est équivalent à une recherche
en profondeur

Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique

Propriétés de la recherche par heuristique


Particularités
Cas particuliers :
si ∀n, h(n) = 0, alors f(n)=g(n) ; l’algorithme est équivalent à
une recherche en largeur ;
si ∀n, f (n) = h(n), l’algorithme est équivalent à une recherche
en profondeur

Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique

Propriétés de la recherche par heuristique


Particularités
Cas particuliers :
si ∀n, h(n) = 0, alors f(n)=g(n) ; l’algorithme est équivalent à
une recherche en largeur ;
si ∀n, f (n) = h(n), l’algorithme est équivalent à une recherche
en profondeur

Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique

Propriétés de la recherche par heuristique


Particularités
Cas particuliers :
si ∀n, h(n) = 0, alors f(n)=g(n) ; l’algorithme est équivalent à
une recherche en largeur ;
si ∀n, f (n) = h(n), l’algorithme est équivalent à une recherche
en profondeur

Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique

Propriétés de la recherche par heuristique


Particularités
Cas particuliers :
si ∀n, h(n) = 0, alors f(n)=g(n) ; l’algorithme est équivalent à
une recherche en largeur ;
si ∀n, f (n) = h(n), l’algorithme est équivalent à une recherche
en profondeur

Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique

Propriétés de la recherche par heuristique


Particularités
Cas particuliers :
si ∀n, h(n) = 0, alors f(n)=g(n) ; l’algorithme est équivalent à
une recherche en largeur ;
si ∀n, f (n) = h(n), l’algorithme est équivalent à une recherche
en profondeur

Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique

Propriétés de la recherche par heuristique


Particularités
Cas particuliers :
si ∀n, h(n) = 0, alors f(n)=g(n) ; l’algorithme est équivalent à
une recherche en largeur ;
si ∀n, f (n) = h(n), l’algorithme est équivalent à une recherche
en profondeur

Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique

Propriétés de la recherche par heuristique


Particularités
Cas particuliers :
si ∀n, h(n) = 0, alors f(n)=g(n) ; l’algorithme est équivalent à
une recherche en largeur ;
si ∀n, f (n) = h(n), l’algorithme est équivalent à une recherche
en profondeur

Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*

Recherche du plus court chemin par A*


d’après "A* Pathfinding for Beginners" (Patrick Lester)

But : Se rendre de la case verte à la case rouge en évitant les case


bleues

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 43 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Initialisation de la recherche du plus court chemin par A*


d’après "A* Pathfinding for Beginners" (Patrick Lester)

Analyse du problème
Définir l’espace d’états
Décomposition de la zone en grille, l’espace est constitué des
cellules
Etat initial = cellule verte A en c(1,2)
Etat but/final = cellule rouge B en c(5,2)
Branchement = 8 :chaque cellule est liée à ses 8 cellules
voisines
Action = se déplacer d’une case (H, B, D, G, HG, HD, BD,
BG) si possible

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 44 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Initialisation de la recherche du plus court chemin par A*


d’après "A* Pathfinding for Beginners" (Patrick Lester)

Analyse du problème
Définir l’espace d’états
Décomposition de la zone en grille, l’espace est constitué des
cellules
Etat initial = cellule verte A en c(1,2)
Etat but/final = cellule rouge B en c(5,2)
Branchement = 8 :chaque cellule est liée à ses 8 cellules
voisines
Action = se déplacer d’une case (H, B, D, G, HG, HD, BD,
BG) si possible

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 44 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Initialisation de la recherche du plus court chemin par A*


d’après "A* Pathfinding for Beginners" (Patrick Lester)

Analyse du problème
Définir l’espace d’états
Décomposition de la zone en grille, l’espace est constitué des
cellules
Etat initial = cellule verte A en c(1,2)
Etat but/final = cellule rouge B en c(5,2)
Branchement = 8 :chaque cellule est liée à ses 8 cellules
voisines
Action = se déplacer d’une case (H, B, D, G, HG, HD, BD,
BG) si possible

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 44 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Initialisation de la recherche du plus court chemin par A*


d’après "A* Pathfinding for Beginners" (Patrick Lester)

Analyse du problème
Définir l’espace d’états
Décomposition de la zone en grille, l’espace est constitué des
cellules
Etat initial = cellule verte A en c(1,2)
Etat but/final = cellule rouge B en c(5,2)
Branchement = 8 :chaque cellule est liée à ses 8 cellules
voisines
Action = se déplacer d’une case (H, B, D, G, HG, HD, BD,
BG) si possible

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 44 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Initialisation de la recherche du plus court chemin par A*


d’après "A* Pathfinding for Beginners" (Patrick Lester)

Analyse du problème
Définir l’espace d’états
Décomposition de la zone en grille, l’espace est constitué des
cellules
Etat initial = cellule verte A en c(1,2)
Etat but/final = cellule rouge B en c(5,2)
Branchement = 8 :chaque cellule est liée à ses 8 cellules
voisines
Action = se déplacer d’une case (H, B, D, G, HG, HD, BD,
BG) si possible

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 44 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Initialisation de la recherche du plus court chemin par A*


d’après "A* Pathfinding for Beginners" (Patrick Lester)

Analyse du problème
Définir l’espace d’états
Décomposition de la zone en grille, l’espace est constitué des
cellules
Etat initial = cellule verte A en c(1,2)
Etat but/final = cellule rouge B en c(5,2)
Branchement = 8 :chaque cellule est liée à ses 8 cellules
voisines
Action = se déplacer d’une case (H, B, D, G, HG, HD, BD,
BG) si possible

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 44 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Initialisation de la recherche du plus court chemin par A*


d’après "A* Pathfinding for Beginners" (Patrick Lester)

Analyse du problème
Définir l’espace d’états
Décomposition de la zone en grille, l’espace est constitué des
cellules
Etat initial = cellule verte A en c(1,2)
Etat but/final = cellule rouge B en c(5,2)
Branchement = 8 :chaque cellule est liée à ses 8 cellules
voisines
Action = se déplacer d’une case (H, B, D, G, HG, HD, BD,
BG) si possible

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 44 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Coût et Heuristiques de la recherche du plus court chemin


par A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Définir les coûts et heuristiques


Définir f = g + h
g(C ) : détermine le coût du trajet de A vers C en suivant le
chemin généré
h(C ) : coût estimé du mouvement de C vers le but B
Choix effectué pour
g(C ) : coût du trajet entre√cases adjacentes = 10 ; en
diagonale = 14 (int(10 × 2))
h(C ) : |xC − xB | + |yC − yB |

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 45 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Coût et Heuristiques de la recherche du plus court chemin


par A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Définir les coûts et heuristiques


Définir f = g + h
g(C ) : détermine le coût du trajet de A vers C en suivant le
chemin généré
h(C ) : coût estimé du mouvement de C vers le but B
Choix effectué pour
g(C ) : coût du trajet entre√cases adjacentes = 10 ; en
diagonale = 14 (int(10 × 2))
h(C ) : |xC − xB | + |yC − yB |

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 45 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Coût et Heuristiques de la recherche du plus court chemin


par A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Définir les coûts et heuristiques


Définir f = g + h
g(C ) : détermine le coût du trajet de A vers C en suivant le
chemin généré
h(C ) : coût estimé du mouvement de C vers le but B
Choix effectué pour
g(C ) : coût du trajet entre√cases adjacentes = 10 ; en
diagonale = 14 (int(10 × 2))
h(C ) : |xC − xB | + |yC − yB |

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 45 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Coût et Heuristiques de la recherche du plus court chemin


par A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Définir les coûts et heuristiques


Définir f = g + h
g(C ) : détermine le coût du trajet de A vers C en suivant le
chemin généré
h(C ) : coût estimé du mouvement de C vers le but B
Choix effectué pour
g(C ) : coût du trajet entre√cases adjacentes = 10 ; en
diagonale = 14 (int(10 × 2))
h(C ) : |xC − xB | + |yC − yB |

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 45 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Coût et Heuristiques de la recherche du plus court chemin


par A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Définir les coûts et heuristiques


Définir f = g + h
g(C ) : détermine le coût du trajet de A vers C en suivant le
chemin généré
h(C ) : coût estimé du mouvement de C vers le but B
Choix effectué pour
g(C ) : coût du trajet entre√cases adjacentes = 10 ; en
diagonale = 14 (int(10 × 2))
h(C ) : |xC − xB | + |yC − yB |

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 45 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Coût et Heuristiques de la recherche du plus court chemin


par A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Définir les coûts et heuristiques


Définir f = g + h
g(C ) : détermine le coût du trajet de A vers C en suivant le
chemin généré
h(C ) : coût estimé du mouvement de C vers le but B
Choix effectué pour
g(C ) : coût du trajet entre√cases adjacentes = 10 ; en
diagonale = 14 (int(10 × 2))
h(C ) : |xC − xB | + |yC − yB |

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 45 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Coût et Heuristiques de la recherche du plus court chemin


par A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Définir les coûts et heuristiques


Définir f = g + h
g(C ) : détermine le coût du trajet de A vers C en suivant le
chemin généré
h(C ) : coût estimé du mouvement de C vers le but B
Choix effectué pour
g(C ) : coût du trajet entre√cases adjacentes = 10 ; en
diagonale = 14 (int(10 × 2))
h(C ) : |xC − xB | + |yC − yB |

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 45 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Recherche du plus court chemin par A*


d’après "A* Pathfinding for Beginners" (Patrick Lester)

Valeurs de f , g, h autour de A
valeur de f dans le coin gauche-haut, valeur de g dans le coin gauche-bas et
valeur de h dans le coin bas-droite

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 46 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*

Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*

Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*

Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*

Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*

Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*

Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*

Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*

Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*

Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)

Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*

Recherche du plus court chemin par A*


d’après "A* Pathfinding for Beginners" (Patrick Lester)

Sélection du second nœud intéressant


Seuls 2 nœuds libres ajoutés (la diagonale bas-droite est impossible
à cause du mur)

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 48 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Recherche du plus court chemin par A*


d’après "A* Pathfinding for Beginners" (Patrick Lester)

Répétition de l’algorithme jusqu’au but

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 49 / 57


Méthodes de recherche heuristiques Exemple de résolution par A*

Recherche du plus court chemin par A*


d’après "A* Pathfinding for Beginners" (Patrick Lester)

Etablissement de la solution à partir de l’arrivée par suivi du nœud


père

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 50 / 57


Méthodes de recherche heuristiques Autres exemples avec A*

Autres exemples avec A*

Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 51 / 57


Méthodes de recherche heuristiques Autres exemples avec A*

Autres exemples avec A*

Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 51 / 57


Méthodes de recherche heuristiques Autres exemples avec A*

Autres exemples avec A*

Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 51 / 57


Méthodes de recherche heuristiques Autres exemples avec A*

Autres exemples avec A*

Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 51 / 57


Méthodes de recherche heuristiques Autres exemples avec A*

Autres exemples avec A*

Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 51 / 57


Méthodes de recherche heuristiques Autres exemples avec A*

Autres exemples avec A*

Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 51 / 57


Méthodes de recherche heuristiques Autres exemples avec A*

Autres exemples avec A*

Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 51 / 57


Méthodes de recherche heuristiques Autres exemples avec A*

Autres exemples avec A*

Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 51 / 57


Méthodes de recherche heuristiques Autres exemples avec A*

Autres exemples avec A*

Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 51 / 57


Recherche Tabou, Locale

Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale

Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale

Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale

Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale

Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale

Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale

Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale

Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale

Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale

Recherche Locale, exemple sur n-reines

5
Z0l0l
4
0Z0Z0
3
l0Z0Z
2
0l0Z0
Placement de 5 reines au hasard 1
Z0ZqZ
a b c d e
Comptage des contraintes non respectées :
Qa = 2 ; Qb = 2 ; Qc = 2 ; Qd = 0 ; Qe = 2 ;
Meilleurs gains possibles aux autres positions pour Qa , Qb , Qc , Qe , :
Qa = 1 ; Qb = 0 ; Qc = 2 ; Qe = 1 ;
Qc prend une meilleure valeur

5
Z0Z0l
4
0ZqZ0
3
l0Z0Z
2
0l0Z0
1
Z0ZqZ
a b c d e

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 53 / 57


Recherche Tabou, Locale

Recherche Locale, exemple sur n-reines


Comptage des contraintes non respectées :
Qa = 1 ; Qb = 2 ; Qc = 0 ; Qd = 0 ; Qe = 1 ;
Meilleurs gains possibles aux autres positions pour Qa , Qb , Qe , :
Qa = 0 ; Qb = 1 ; Qe = 0 ;
seule b peut s’ôter 1 pb, elle se déplace

5
Z0Z0l
4
0ZqZ0
3
l0Z0Z
2
0Z0Z0
1
ZqZqZ
a b c d e
Comptage des contraintes non respectées : Qb = 1 ; Qd = 1 ;
Meilleurs gains possibles : Qb = 0, Qd = 1 : Qd est choisie

5
Z0Z0l
4
0ZqZ0
3
l0Z0Z
2
0Z0l0
1
ZqZ0Z FIN !
a b c d e

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 54 / 57


Recherche Aléatoire

Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire

Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire

Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire

Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire

Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire

Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire

Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire

Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire

Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire

Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire

Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire

Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire

Recherche Aléatoire

Exemple de résolution de compte


Etat initial : [1, 2, 6, 7, 25, 75]
Etat Final : 2016
Exécution n°1 : but atteint après 718 tests
25 − 1 = 24; 2 × 6 = 12; 12 × 7 = 84; 84 × 24 = 2016
Exécution n°2 : but atteint après 5508 tests
2 + 7 = 9; 75 + 9 = 84; 25 − 1 = 24; 24 × 84 = 2016
Exécution n°3 : but atteint après 730 tests
25 × 6 = 150; 75 − 1 = 74; 2 + 7 = 9; 74 + 150 =
224; 9 × 224 = 2016
Exécution n°4 : but atteint après 574 tests
25 − 1 = 24; 2 × 7 = 14; 24 × 14 = 336; 6 × 336 = 2016

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 56 / 57


Recherche Aléatoire

Recherche Aléatoire

Exemple de résolution de compte


Etat initial : [1, 2, 6, 7, 25, 75]
Etat Final : 2016
Exécution n°1 : but atteint après 718 tests
25 − 1 = 24; 2 × 6 = 12; 12 × 7 = 84; 84 × 24 = 2016
Exécution n°2 : but atteint après 5508 tests
2 + 7 = 9; 75 + 9 = 84; 25 − 1 = 24; 24 × 84 = 2016
Exécution n°3 : but atteint après 730 tests
25 × 6 = 150; 75 − 1 = 74; 2 + 7 = 9; 74 + 150 =
224; 9 × 224 = 2016
Exécution n°4 : but atteint après 574 tests
25 − 1 = 24; 2 × 7 = 14; 24 × 14 = 336; 6 × 336 = 2016

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 56 / 57


Recherche Aléatoire

Recherche Aléatoire

Exemple de résolution de compte


Etat initial : [1, 2, 6, 7, 25, 75]
Etat Final : 2016
Exécution n°1 : but atteint après 718 tests
25 − 1 = 24; 2 × 6 = 12; 12 × 7 = 84; 84 × 24 = 2016
Exécution n°2 : but atteint après 5508 tests
2 + 7 = 9; 75 + 9 = 84; 25 − 1 = 24; 24 × 84 = 2016
Exécution n°3 : but atteint après 730 tests
25 × 6 = 150; 75 − 1 = 74; 2 + 7 = 9; 74 + 150 =
224; 9 × 224 = 2016
Exécution n°4 : but atteint après 574 tests
25 − 1 = 24; 2 × 7 = 14; 24 × 14 = 336; 6 × 336 = 2016

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 56 / 57


Recherche Aléatoire

Recherche Aléatoire

Exemple de résolution de compte


Etat initial : [1, 2, 6, 7, 25, 75]
Etat Final : 2016
Exécution n°1 : but atteint après 718 tests
25 − 1 = 24; 2 × 6 = 12; 12 × 7 = 84; 84 × 24 = 2016
Exécution n°2 : but atteint après 5508 tests
2 + 7 = 9; 75 + 9 = 84; 25 − 1 = 24; 24 × 84 = 2016
Exécution n°3 : but atteint après 730 tests
25 × 6 = 150; 75 − 1 = 74; 2 + 7 = 9; 74 + 150 =
224; 9 × 224 = 2016
Exécution n°4 : but atteint après 574 tests
25 − 1 = 24; 2 × 7 = 14; 24 × 14 = 336; 6 × 336 = 2016

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 56 / 57


Recherche Aléatoire

Recherche Aléatoire

Exemple de résolution de compte


Etat initial : [1, 2, 6, 7, 25, 75]
Etat Final : 2016
Exécution n°1 : but atteint après 718 tests
25 − 1 = 24; 2 × 6 = 12; 12 × 7 = 84; 84 × 24 = 2016
Exécution n°2 : but atteint après 5508 tests
2 + 7 = 9; 75 + 9 = 84; 25 − 1 = 24; 24 × 84 = 2016
Exécution n°3 : but atteint après 730 tests
25 × 6 = 150; 75 − 1 = 74; 2 + 7 = 9; 74 + 150 =
224; 9 × 224 = 2016
Exécution n°4 : but atteint après 574 tests
25 − 1 = 24; 2 × 7 = 14; 24 × 14 = 336; 6 × 336 = 2016

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 56 / 57


Recherche Aléatoire

Recherche Aléatoire

Exemple de résolution de compte


Etat initial : [1, 2, 6, 7, 25, 75]
Etat Final : 2016
Exécution n°1 : but atteint après 718 tests
25 − 1 = 24; 2 × 6 = 12; 12 × 7 = 84; 84 × 24 = 2016
Exécution n°2 : but atteint après 5508 tests
2 + 7 = 9; 75 + 9 = 84; 25 − 1 = 24; 24 × 84 = 2016
Exécution n°3 : but atteint après 730 tests
25 × 6 = 150; 75 − 1 = 74; 2 + 7 = 9; 74 + 150 =
224; 9 × 224 = 2016
Exécution n°4 : but atteint après 574 tests
25 − 1 = 24; 2 × 7 = 14; 24 × 14 = 336; 6 × 336 = 2016

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 56 / 57


Recherche Aléatoire

Recherche Aléatoire

Exemple de résolution de compte


Etat initial : [1, 2, 6, 7, 25, 75]
Etat Final : 2016
Exécution n°1 : but atteint après 718 tests
25 − 1 = 24; 2 × 6 = 12; 12 × 7 = 84; 84 × 24 = 2016
Exécution n°2 : but atteint après 5508 tests
2 + 7 = 9; 75 + 9 = 84; 25 − 1 = 24; 24 × 84 = 2016
Exécution n°3 : but atteint après 730 tests
25 × 6 = 150; 75 − 1 = 74; 2 + 7 = 9; 74 + 150 =
224; 9 × 224 = 2016
Exécution n°4 : but atteint après 574 tests
25 − 1 = 24; 2 × 7 = 14; 24 × 14 = 336; 6 × 336 = 2016

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 56 / 57


Recherche Aléatoire

Recherche Aléatoire

Exemple de résolution de compte


Etat initial : [1, 2, 6, 7, 25, 75]
Etat Final : 2016
Exécution n°1 : but atteint après 718 tests
25 − 1 = 24; 2 × 6 = 12; 12 × 7 = 84; 84 × 24 = 2016
Exécution n°2 : but atteint après 5508 tests
2 + 7 = 9; 75 + 9 = 84; 25 − 1 = 24; 24 × 84 = 2016
Exécution n°3 : but atteint après 730 tests
25 × 6 = 150; 75 − 1 = 74; 2 + 7 = 9; 74 + 150 =
224; 9 × 224 = 2016
Exécution n°4 : but atteint après 574 tests
25 − 1 = 24; 2 × 7 = 14; 24 × 14 = 336; 6 × 336 = 2016

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 56 / 57


Recherche Aléatoire

Recherche Aléatoire

Exemple de résolution de compte


Etat initial : [1, 2, 6, 7, 25, 75]
Etat Final : 2016
Exécution n°1 : but atteint après 718 tests
25 − 1 = 24; 2 × 6 = 12; 12 × 7 = 84; 84 × 24 = 2016
Exécution n°2 : but atteint après 5508 tests
2 + 7 = 9; 75 + 9 = 84; 25 − 1 = 24; 24 × 84 = 2016
Exécution n°3 : but atteint après 730 tests
25 × 6 = 150; 75 − 1 = 74; 2 + 7 = 9; 74 + 150 =
224; 9 × 224 = 2016
Exécution n°4 : but atteint après 574 tests
25 − 1 = 24; 2 × 7 = 14; 24 × 14 = 336; 6 × 336 = 2016

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 56 / 57


Recherche Aléatoire

Recherche Aléatoire

Exemple de résolution de compte


Etat initial : [1, 2, 6, 7, 25, 75]
Etat Final : 2016
Exécution n°1 : but atteint après 718 tests
25 − 1 = 24; 2 × 6 = 12; 12 × 7 = 84; 84 × 24 = 2016
Exécution n°2 : but atteint après 5508 tests
2 + 7 = 9; 75 + 9 = 84; 25 − 1 = 24; 24 × 84 = 2016
Exécution n°3 : but atteint après 730 tests
25 × 6 = 150; 75 − 1 = 74; 2 + 7 = 9; 74 + 150 =
224; 9 × 224 = 2016
Exécution n°4 : but atteint après 574 tests
25 − 1 = 24; 2 × 7 = 14; 24 × 14 = 336; 6 × 336 = 2016

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 56 / 57


Recherche Aléatoire

Recherche Aléatoire

Exemple de résolution de compte


Etat initial : [1, 2, 6, 7, 25, 75]
Etat Final : 2016
Exécution n°1 : but atteint après 718 tests
25 − 1 = 24; 2 × 6 = 12; 12 × 7 = 84; 84 × 24 = 2016
Exécution n°2 : but atteint après 5508 tests
2 + 7 = 9; 75 + 9 = 84; 25 − 1 = 24; 24 × 84 = 2016
Exécution n°3 : but atteint après 730 tests
25 × 6 = 150; 75 − 1 = 74; 2 + 7 = 9; 74 + 150 =
224; 9 × 224 = 2016
Exécution n°4 : but atteint après 574 tests
25 − 1 = 24; 2 × 7 = 14; 24 × 14 = 336; 6 × 336 = 2016

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 56 / 57


Recherche Exhaustive

Recherche Exhaustive

Concept de Recherche Exhaustive


Pour certains problèmes, l’espace d’états est important, mais
il est nécessaire de balayer l’ensemble des combinaisons
Exemple : Le Scrabble
Pour le scrable, utilisation d’un arbre lexicographique généralisé
(cf. http ://[Link]/pages/algo/minmax/[Link])

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 57 / 57


Recherche Exhaustive

Recherche Exhaustive

Concept de Recherche Exhaustive


Pour certains problèmes, l’espace d’états est important, mais
il est nécessaire de balayer l’ensemble des combinaisons
Exemple : Le Scrabble
Pour le scrable, utilisation d’un arbre lexicographique généralisé
(cf. http ://[Link]/pages/algo/minmax/[Link])

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 57 / 57


Recherche Exhaustive

Recherche Exhaustive

Concept de Recherche Exhaustive


Pour certains problèmes, l’espace d’états est important, mais
il est nécessaire de balayer l’ensemble des combinaisons
Exemple : Le Scrabble
Pour le scrable, utilisation d’un arbre lexicographique généralisé
(cf. http ://[Link]/pages/algo/minmax/[Link])

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 57 / 57


Recherche Exhaustive

Recherche Exhaustive

Concept de Recherche Exhaustive


Pour certains problèmes, l’espace d’états est important, mais
il est nécessaire de balayer l’ensemble des combinaisons
Exemple : Le Scrabble
Pour le scrable, utilisation d’un arbre lexicographique généralisé
(cf. http ://[Link]/pages/algo/minmax/[Link])

E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 57 / 57

Vous aimerez peut-être aussi