Vous êtes sur la page 1sur 41

Reprsentation et rsolution de problme en IA

Asma BENMESSAOUD
Universit Mhamed Bougara Boumerdes (UMBB)

Email: a_bemessaoud@esi.dz

Reprsentation et rsolution de problmes en IA

Graphes dtats Graphes de sous-problmes Problmes de satisfaction de contraintes

Plan
Introduction Reprsentation et rsolution de problmes par graphe dtats Reprsentation et rsolutions de problmes par graphes de sous-problmes Problmes de satisfaction de contraintes

Quels problmes ?
Pas de mthode de rsolution adapte Description formelle du problme Procdure pour tester une solution propose On peut engendrer et numrer les solutions potentielles Enumration + test = Procdure constructive de rsolution

Deux mthodes de rsolution constructives


Augmenter des solutions partielles
Exemple : Problme des huit reines

Dcomposer le problme en sous-problmes.


Exemple : Tours de Hanoi

Problme des huit reines


Problme:
Placer 8 reines sans prise sur un chiquier

Mthode de rsolution:
Placer un kime reine sur un chiquier o figurent dj K-1 reines

Dmonstration

Les tours de Hanoi

Dmonstration

Problme de lchiquier corn

Reprsenter le problme
Il faut dfinir:

Les tats du problme Lobjectif atteindre Les oprateurs de transformation


- Extension de solutions partielles Reprsentation par graphe dtats - Dcomposition en sous-problmes Reprsentation par graphe de sous-problmes

Reprsentation par graphes dtats


On reprsente lensemble des tats dun problme par un graphe orient tiquet:
- Les sommets sont les tats du problme - Il existe un arc (u,v) si un oprateur transforme ltat u en tat v, tiquette (u,v) = oprateur

Recherche dune solution


- Recherche dun chemin entre le nud initial et un nud terminal

Solution
- Cest la squence des oprateurs tiquetant les arcs de ce chemin

Reprsentation par graphes dtats

Exemple:
Le comportement dune machine laver

Choisir une bonne reprsentation des tats


Problme des huit reines:
1. Etat : chiquier (i,j) {vide, reine} Oprateur : placer-reine(i,j) : si chiquier(i,j)=vide alors chiquier(i,j) := reine Tests: chiquier-sans-prise, chiquier-complet 264 tats, dont de nombreux inutiles Intgrer une partie des contraintes du problme la reprsentation 2. Ligne(i) = j si la ime ligne a une reine en colonne j Ligne(i) = 0 si cette ligne est vide

Algorithmes de recherche en IA
Un grand nombre de problmes IA ne sont pas spcifis par une procdure effective, mais par des critres de succs. Par exemple: infrence logique: chercher une infrence qui remplit les conditions buts. planification: chercher la bonne squence doprateurs pour atteindre un but. conception: chercher une structure qui atteint les spcifications. casse-ttes: trouver les oprations pour remettre en ordre le Rubics cube.

Dans ce cas, on doit rechercher la solution parmi un ensemble dalternatives algorithmes de recherche.

Elments dun systme de recherche

Nuds de recherche
Fonction de successeur Critre de succs

Nud de recherche

Dcrit lenvironnement courant. Exemples:

Solution abstraite: structure partiellement dtaille qui permet potentiellement datteindre les spcifications Solution partielle: tats intermdiaires du Rubics cube

Fonction de gnration de successeurs

Succ(n) = liste des nuds atteignables de n

Exemples: Infrence logique: application des rgles dans un moteur dinfrence Planification: gnration des situations atteignables par application des actions disponibles Conception: Elaboration de dtails dune structure Casse-tte: complter la solution partielle dun casse-tte

La recherche commence avec un ou plusieurs nuds initiaux, et se termine avec un nud qui remplit la condition de terminaison, appele le nud final.

Critres de succs

Le nud initial et la fonction de successeurs succ(n) dfinissent un espace de recherche. Il sagit dun graphe dirig dont les arcs reprsentent les nuds atteignables par la fonction succ(n). Un algorithme de recherche effectue une exploration locale du graphe de manire trouver la solution avec un temps de calcul minimal.

Normalement, on cherche une seule solution.

Graphe de recherche

Algorithmes gnraux pour trouver le nud final dans un temps minimal

Exemple: infrence logique

Loptimalit dans la recherche

La solution peut tre:

Le nud final : par exemple, dans un systme dinfrence ou de conception Le chemin au nud final: par exemple, dans un systme de planification Le cot

Stratgies dorganisation de la recherche

1. Dveloppement dtat: chaque tape, ltat choisi sera: - compltement dvelopp - partiellement dvelopp

2. Organisation des alternatives: Lensemble des tats dvelopper est organis dans - une pile recherche en profondeur - une file recherche en largeur - une liste selon un cot croissant

La recherche en profondeur dabord (DFS)


Profondeur dabord (Depth-first): expansion du premier noeud trouv jusqu ce quil ny a plus de successeurs. retour en arrire (backtrack): retour un niveau suprieur et essai de la prochaine possibilit. Avantage: peu de mmoire requise: liste des nuds ouverts et de leurs successeurs encore non explors.

La recherche en largeur dabord (BFS)


Largeur dabord (breadth-first): gnration de larbre de recherche couche par couche. Trouve toujours le chemin le plus court. Exige beaucoup de mmoire pour stocker toutes les alternatives toutes les couches.

Algorithmes

Exemple dune recherche

La recherche en profondeur limite(DLS)


Faiblesse de la recherche en largeur dabord: exige une quantit de mmoire exponentielle. pas corrigeable! Faiblesse de la recherche en profondeur dabord: peut descendre trs loin dans un chemin inutile. limiter une profondeur maximale l: pour tout nud profondeur l, on ne considre pas ses successeurs.

Comment choisir la limite l?

La recherche de graphes
Un mme nud peut tre atteint par plusieurs chemins Duplication de travail

La recherche avec dtection de cycles

Notion dheuristiques

1. Rsolution de problmes par dveloppement et choix dune alternative combinatoire 2. Un algorithme de recherche doit guider la recherche dune solution en faisant des choix et en grant le retour sur ces choix tout en vitant lexplosion combinatoire 3. Une heuristique est un moyen de guider les choix que doit faire lalgorithme pour rduire sa complexit, en ordonnant la liste des successeurs dun tat

Exemple dheuristique: Le jeu du taquin

H1 : Nombre de pices mal places H2 : Somme des dplacements minimaux pour amener une pice sa place. H2 est plus efficace que H1

Recherche heuristique dans les graphes dtats


Pour tout nud u on dfinit: - g*(u) le minimum du cot des chemins de u0 u - h*(u) le minimum du cot des chemins de u un tat terminal quelconque - f*(u) = g*(u) + h*(u) le cot du chemin solution optimal passant par u

Pour ordonner la recherche on utilise: - une heuristique h(u) qui estime h*(u) - g(u) le cot du meilleur chemin connu pour aller jusqu u (estime g*(u)) - f (u) = g(u) + h(u) la fonction dvaluation

Lalgorithme A*

Lalgorithme A* utilise f pour ordonner les nuds dvelopper:


Si le graphe est fini, A* sarrte et fournit un chemin solution sil existe Si u, h(u) <= h*(u) , A* fournit la meilleure solution

Algorithme A*

Exemple dune recherche heuristique

Reprsentation par graphe de sousproblmes


Etat initial ou courant: problme rsoudre Oprateur: dcomposition en plusieurs sous-problmes Etats terminaux: problmes triviaux

Reprsentation par un graphe ET/OU sans circuit: - nuds OU associs aux problmes - nuds ET de dcomposition

Exemple de graphe Et / Ou

Principe de lalgorithme de recherche dun sous-graphe ET/OU


On dfinit - Des tats RESOLUS * Les tats terminaux * Les tats dont un connecteur a tous ses fils rsolus - Des tats INSOLUBLES * Les tats non terminaux sans successeurs * Les tats dont tous les connecteurs ont au moins un successeur insoluble On dveloppe en profondeur un sous-graphe reprsentant une solution partielle avec retour arrire en cas dchec

Amliorer lefficacit de la recherche


On peut introduire un seuil sur le rang des nuds pour rduire lespace explor

On peut exploiter une information heuristique pour: - Ordonner lexamen des connecteurs dun nud - Interrompre la rcursion sur des tats peu prometteurs en les rendant insolubles

Problme de satisfaction des contraintes


Dfinition : X = { X1, X2, ..., Xn} est l'ensemble des variables du problme On associe chaque variable Xi son domaine D(Xi), l'ensemble des valeurs que peut prendre Xi C = {C1, C2, ..., Ck} est l'ensemble des contraintes. Chaque contrainte Cj est une relation entre certaines variables de X, restreignant les valeurs que peuvent prendre simultanment ces variables Exemple : le problme des reines

Rsoudre un problme de satisfaction des contraintes


Rsoudre = affecter une valeur toutes les variables sans violer de contraintes Mthode gnrer et tester On construit une solution puis on vrifie que les contraintes sont satisfaites Dans lexemple : placer une reine sur chaque ligne puis vrifier quelles ne sont pas en prise

Rsoudre un problme de satisfaction des contraintes


Mthode retour arrire Ne pas dvelopper une solution partielle qui viole dj les contraintes Dans lexemple : chaque fois quon place une reine, on vrifie quelle nest en prise avec aucune autre, sinon on revient sur les derniers choix

Mthode filtrage rduire le domaine des variables chaque affection Dans lexemple : chaque fois quon place une reine, on limine la colonne choisie des colonnes possibles pour les reines restant placer
Utiliser une heuristique : par exemple commencer par affecter la variable dont le domaine est le plus petit