Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Chapitre 5

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 35

Intelligence Artificielle

chapitre 2

Résolution de problèmes
Résolution de problèmes
• Introduction
La résolution de problèmes est le processus qui consiste à
sélectionner et ordonnancer des actions élémentaires en
séquences afin d'atteindre des buts donnés en respectant les
contraintes d'un environnement donné.

Composition du processus :
– un état initial (le problème à résoudre),
– un état final (la solution au problème),
– un ensemble d'actions élémentaires permettant de passer
d'un état à un autre,
Objectif du processus :
– Trouver une séquence d'actions à exécuter pour passer de
l'état initial à l'état final
Résolution de problèmes
• Introduction
Complexité du processus :
– A partir d'un état donné, on peut effectuer plusieurs actions
élémentaires différentes qui débouchent sur des états différents.
La méthode qui consiste à essayer successivement toutes les
possibilités jusqu'à trouver une solution est une méthode de
recherche fortement combinatoire
– On est souvent amené à choisir entre plusieurs choix ou à choisir la
meilleur solution : problème d’optimisation combinatoire
Apport de l’IA :
– L’IA apporte une solution à ce problème : les “ heuristiques ” :
méthodes permettant de choisir en premier les actions ayant le plus
de chance d'aboutir
Résolution de problèmes
• Types de domaines

 La démonstration de théorèmes
 Les jeux de stratégies (échec, dame)
 La planification :
 robotique 
 allocations de ressources
 emploi du temps
Résolution de problèmes
• Exemple de problème
- Planification de chaîne de production
Chaîne de
production Atelier A Atelier B Atelier C Atelier D

Capacité de
production 5v/h/h 3v/h/h 2v/h/h 3v/h/h

Ressources - Op1 : 8h-13h - Op2 : 8h-13h - Op3 : 9h-13h- Op4 : 10h-15h

Etat initial 30v en 0v en 0v en 0v en


attente attente attente attente
à 8h à 8h à 8h à 8h
But Etablir l'emploi du temps indiquant heure par heure quels opérateurs sont affectés
à chaque atelier, de telle sorte que le maximum de voitures soient passées par les
4 ateliers à la fin de la journée
Résolution de problèmes
• Exemple de problème
- Le voyageur de commerce
Un voyageur de commerce partant d'une ville veut se
Ville A 120 Ville K rendre successivement dans un certain nombres de
villes sans repasser deux fois dans la même ville et
160 160 en revenant finalement à la ville de départ. On connaît
140 les distances de ville à ville. Quel trajet doit-il effectuer
150
Ville B de façon à minimiser la distance parcourue ?
100 99
80

Ville L
180 Ville D
140 70
Ville C 211
97 220

Ville E 101
Ville F
Résolution de problèmes
• Exemple de problème
- Le Taquin n n+1 carreaux numérotés et un carreau
"vide" sont disposés sur un damier dans une
configuration donnée. L'objectif du taquin est
de modifier la position des carreaux pour
arriver à une configuration finale donnée.
On autorise les changements de position seulement
par glissement d'un des carreaux sur le carreau vide
à partir d'une position adjacente orthogonale.
Le but du jeu est de trouver la séquence la plus courte
amenant à la configuration finale.
Initial Final
Résolution de problèmes
• Complexité

– Complexité d’un algorithme

* une mesure de temps (complexité en temps) ou d'espace mémoire


(complexité en espace ) utilisé par un algorithme en fonction de la taille
des données

* la complexité en temps d’un algorithme est le nombre d'étapes de


calcul qu ’il nécessite, et sa complexité en espace comme la taille de
mémoire nécessaire pour stocker les données intermédiaires au cours de
son exécution; ces grandeurs sont indiquées en fonction de la taille des
données du problème à résoudre, et généralement à une constante de
proportionnalité près

* seul l’ordre de grandeur du nombre d’opérations, noté O, est utilisé


pour exprimer la complexité : O(f(n))
Résolution de problèmes
• Représentation des problèmes

– Espace d’états
Un problème est défini par un espace d’états qui est l'ensemble des états
possibles de ce problèmes
Exemples d ’états :
* une configuration de pièces dans un jeu d ’échecs
* un calendrier partiel ou complet des matches de tennis
* une partie de preuve ou une preuve complète d'un démonstrateur de
théorèmes

– Opérateurs
Les états d’un problème sont reliés les uns aux autres par des opérateurs
qui transforment un état dans un autre
Résolution de problèmes
• Représentation des problèmes
– But

Dans la résolution d’un problème, on a un but qui décrit ce que


l'on cherche. Un but est un sous-ensemble d’états de l’espace d’états

Exemples de buts :

* dans le jeu d'échecs, le but est l'ensemble des configurations de pièces


qui mettent votre adversaire échec et mat

* Pour le démonstrateur de théorèmes ce sont toutes les preuves dont la


dernière ligne correspond à la formule à prouver
Résolution de problèmes
• Représentation des problèmes
- Graphe d’états et espace de recherche

* En IA, on utilise les graphes pour représenter l’espace d’états


d’un problème (graphe d’états)
– chaque nœud représente un état
– chacun des arcs représente un opérateur (une transition) faisant
passer d'un état à un autre
– le but est un nœud particulier du graphe

* La résolution d’un problème revient à explorer Le graphe dans


la recherche du nœud but (l’espace de recherche)
Résolution de problèmes
• Représentation des problèmes
- Réduction de problèmes et graphe ET/OU

* Lorsque on a un problème principal qui peut se décomposer en sous problèm


plus faciles à résoudre, résoudre ce problème principal revient à résoudre tous
les sous problèmes qu’il le compose

* La technique qui consiste à résoudre un but en résolvant ses sous-buts est


appelé réduction de problème
* certains buts ne peuvent être atteints que si leurs sous-buts immédiats
le sont tous (nœud ET)
* les autres buts sont atteints si l'un au moins de leurs sous-buts immédiats
est atteint (nœud OU)
* le graphe formé de nœuds ET et OU est appelé graphe ET/OU
Résolution de problèmes
• Représentation des problèmes

Composition d’un système de résolution


- Des structures de données organisés en arbre ou en graphe
– Des opérateurs définies par leurs conditions d'application et
leur action
– Une structure de contrôle mettant en œuvre la stratégie
de recherche dans l’arbre ou le graphe (méthodes de recherche
ou de résolution)
Résolution de problèmes
• Méthodes de recherche

– Méthodes aveugles : énumération


exhaustive de tous les états de l’espace de
recherche
– Heuristiques : construction de chemins
minimaux dans l ’exploration de l ’espace de
recherche basée sur des critères, des
principes, ou des méthodes permettant de
faire les choix les plus efficaces pour
atteindre le but fixé
Résolution de problèmes
• Méthodes de recherche

– Méthodes aveugles :
• Recherche en profondeur
• Recherche en largeur
• Recherche en profondeur limitée
• Recherche en approfondissement itératif
– Méthodes heuristiques :
• Recherche en profondeur ordonné
• Recherche du meilleur d ’abord
• Algorithme A*
Résolution de problèmes
• Méthodes de recherche E0
aveugle 1 13
– Profondeur d ’abord 7

(LIFO) :
– Principe : la priorité est donné
E1 E2 E3
aux nœuds de niveaux les plus 14
profonds du graphe de
recherche 2 5 6 8 9 12

E4 E5 E6 E7 E8 E9 E10

Exemple 3 4 10 11

E11 E12 E13 E14


14 situations explorées
Résolution de problèmes
• Méthodes de recherche aveugle
– Profondeur d ’abord :
– Algorithme :

Début
1 empiler la racine
2 répéter
Si sommet de pile <>nœud but alors
- dépiler le premier élément
- empiler ses fils s'il en a du plus à droite au plus à gauche
Sinon ne rien faire
Jusqu'à ce que la pile soit vide ou sommet pile =nœud but
3 la recherche aboutit si lenœud but a été atteint.
Fin
Résolution de problèmes
• Méthodes de recherche E0
aveugle 1 3
– Largeur d’abord 2

(FIFO) :
– Principe : la priorité est donné
E1 E2 E3
aux nœuds de niveaux les 10
moins profonds du graphe
de recherche 4 5 6 7 8 9

E4 E5 E6 E7 E8 E9 E10

10 situations explorées
Exemple
Résolution de problèmes
• Méthodes de recherche aveugle
– Largeur d ’abord :
– Algorithme :

Début
1 empiler la racine
2 répéter
Si sommet de pile <>nœud but alors
- dépiler le premier élément
- empiler ses fils s'il en a du plus à gauche au plus à droite
Sinon ne rien faire
Jusqu'à ce que la pile soit vide ou sommet pile =nœud but
3 la recherche aboutit si lenœud but a été atteint.
Fin
Résolution de problèmes
• Méthodes de recherche E0
aveugle 1 9
– Profondeur limitée : 5
– Principe : idem que profondeur
d ’abord avec une limite de E1 E2 E3
profondeur d ’exploration L
10
2 3 4 6 7 8

E4 E5 E6 E7 E8 E9 E10
Exemple avec
une profondeur
limitée L=2
Résolution de problèmes
• Méthodes de recherche aveugle
– Profondeur Limitée :
– Algorithme :

Début
1 empiler la racine
2 répéter
Si sommet de pile <>nœud but alors
- dépiler le premier élément
- empiler ses fils s'il en a du plus à droite au plus à gauche
Sinon ne rien faire
Jusqu'à ce que la pile soit vide ou sommet pile =nœud but ou
limite profondeur atteinte
3 la recherche aboutit si le nœud but a été atteint.
Fin
Résolution de problèmes
• Méthodes de recherche E0

aveugle 1,4
2,8
3,12
– Approfondissement
itératif : E1 E2 E3
– Principe : recherche en
profondeur, limitée à la 13
profondeur 1, puis 2, ... 5 6 7 9 10 11
jusqu'à l'obtention d'une
solution (ou l'échec de la
recherche) E4 E5 E6 E7 E8 E9 E10

Exemple
Résolution de problèmes
• Méthodes de recherche heuristique
– Fonction heuristique

• h:E
- un état e  E (espace d'états) --> un nombre h(e)  
- h(e) est (généralement) une estimation du rapport
coût/bénéfice qu'il y a à étendre le chemin courant en passant
par e.
- contrainte : h(solution) = 0
A

h(e1) = 0.8
h(e2) = 2

h(e3) = 1.6 e1 e2 e3
Résolution de problèmes
• Méthodes de
recherche
heuristique
– Exemples de fonction
heuristique

– Problème du taquin
3x3

– Heuristique : nombre de carreaux


mal placés
Résolution de problèmes
VA
• Méthodes de recherche 366

heuristique 329
374 250
– Profondeur ordonnée :
– Principe : Approfondissement des
branches jusqu'a leur extrémité, VK VB VL
dans l'ordre inverse de leur
distance au but
366 380 190
178

VA VM VC VD
50
Heuristique : distance à vol d’oiseau
152 VE
Meilleur chemin : VA>VB>VC>VF
VF 70

0
Résolution de problèmes
• Méthodes de recherche heuristique
– Profondeur ordonnée :
– Algorithme :

Début
1 empiler la racine
2 répéter
Si sommet de pile <>nœud but alors
- dépiler le premier élément
- empiler ses fils s'il en a dans l ’ordre inverse de leur distance au
but
Sinon ne rien faire
Jusqu'à ce que la pile soit vide ou sommet pile = nœud but
3 la recherche aboutit si le nœud but a été atteint
Fin
Résolution de problèmes
• Méthodes de
recherche
heuristique
– Meilleur premier :
– Principe : Dès que l'on
rencontre
un chemin meilleur
qu'auparavant,
c'est celui là que l ’on
approfondit

Heuristique : proximité du but


Résolution de problèmes
• Méthodes de recherche heuristique
– Meilleur premier :
– Algorithme :

Début
1 empiler la racine
2 répéter
Si sommet de pile <>nœud but alors
- dépiler le premier élément
- empiler ses fils s'il en a dans la file et trier la pile entière par
ordre croissant des distances calculées au but
Sinon ne rien faire
Jusqu'à ce que la pile soit vide ou sommet pile = nœud but
3 la recherche aboutit si le nœud but a été atteint
Fin
Résolution de problèmes
• Méthodes de recherche
heuristique
– Algorithme A* :
– Principe : améliorer l’algorithme du “ Meilleur
premier ” en calculant le plus court chemin pour
passer d'un état initial à un état final
Soient :
* n0 : la racine du graphe
* G : le nœud solution
* c(ni,nj) : le coût pour aller du nœud ni au nœud nj

On définit
- g (n) = c(n0,n) : le coût pour aller du nœud racine n0 au
nœud n
- h (n) = c(n,G) : l ’estimation heuristique du coût pour
aller du nœud n au nœud solution G

On obtient alors la fonction d ’évaluation du coût du


chemin en passant par le noeud n : f(n) = g(n) + h(n)
Résolution de problèmes
• Méthodes de recherche
heuristique
– Algorithme A* :
– Exemple
Résolution de problèmes
• Méthodes de recherche
heuristique
– Algorithme A* :
– Définitions

- Heuristique consistante :
Pour tout x, pour tout y descendant de x :
h (x) <= h (y) + c (x,y)
- Heuristique admissible :
Pour tout x, h (x) <= h* (x)
où h* (x) est la valeur optimale de x à G
Résolution de problèmes
• Méthodes de recherche heuristique
– Algorithme A* :
– Algorithme :
Début
Initialement, la file des chemins partiels contient le chemin d'ordre zéro,
de longueur nulle et reliant la racine à nulle part
2. Repeter
si le premier chemin de la file n'aboutit pas au but alors
le supprimer de la file
former les nouveaux chemins obtenus en prolongeant d'un niveau le chemin
supprimé
insérer ces nouveaux chemins dans la file
le coût de chaque chemin étant la somme de la distance déjà parcourue et
d'une estimation minorante de la distance restant à parcourir.
trier la file par coûts croissants
si deux chemins ou plus atteignent le même noeud ne conserver
que celui ayant la longueur minimale
finsi
Jusqu'à ce que la file soit vide ou que le noeud but soit atteint
Résolution de problèmes
• Programmes de jeux de stratégie
Exemple de jeu : les échecs
Situation courante

? ?
Quel coup choisir ?
Résolution de problèmes
• Programmes de jeux de stratégie
Arbre de jeu :

- Arbre de jeu : une représentation explicite de toutes les actions


possibles de jeu (espace d’états)
- Nœud racine : position initiale du jeu
- Nœuds niveau 1 : positions que le premier joueur peut atteindre
en un déplacement
- Nœuds niveau 2 : positions résultant de la réplique du second
joueur
- Nœuds terminaux : représentent un nœud gagnant, un nœud
perdant ou un match nul
- Chemin racine ==>nœud terminal : une partie complète du jeu
Résolution de problèmes
• Programmes
de jeux de
stratégie
Arbre de jeu :

Vous aimerez peut-être aussi