Méthodes de résolution de problèmes
Site: | Campus Numérique UABT |
Cours: | Intelligence Artificielle |
Livre: | Méthodes de résolution de problèmes |
Imprimé par: | Visiteur anonyme |
Date: | samedi 23 novembre 2024, 12:43 |
1. Définition problème
- Identifier un état initial (donc choix d’un langage de description d’états du problème)
- Identifier les actions possibles par définition d’opérateurs de changement d’état (donc définition de l’ensemble des états possibles du problème)
- Problèmes de jeux : concis et bien défini comme le jeu du taquin, des n reines, leur modélisation est facile et il sont intéressant pour comparer les différentes stratégies de résolution.
- Problèmes du monde réel : complexes et très ouverts comme le calcul de routes, le voyageur de commerce, la navigation de robots. Il sont difficiles à résoudre dans le cas général (trop de paramètres) d’où l’importance de la modélisation.
2. Espace de recherche
- Formulation d’un but: un état à atteindre.
- Formulation d’un problème: les états et les actions à considérer.
- Exploration de solutions: examiner les différentes séquences d’actions menant à un état but et choisir la meilleure.
Exemple 2:
3. Résolution de problèmes
- On part du principe que tous les problèmes étudiés sont composés d’un ensemble de situations que l’on peut décrire à l’aide d’un ensemble de variables appelés variables d’états.
- L’état d’un problème est alors l’ensemble des valeurs prises par les variables à un instant donné. L’espace d’état d’un problème est l’ensemble de tous ses états possibles.
- Chaque état possède un ensemble d’états qui lui sont accessibles dans le problème. Les opérateurs permettent de définir cet ensemble, et c’est la stratégie de résolution qui donnera la façon de choisir parmi ces états accessibles celle menant à une solution.
- Un problème est défini pour un objectif particulier. On doit donc également définir une fonction de test de but atteint qui détermine si un état du problème correspond à un état but du problème.
- Une solution est une séquence d’actions permettant de passer de l’état initial vers un état but.
- On peut considérer que la résolution d’un problème est la découverte d’un état du problème ayant des caractéristiques données (la solution).
- La racine de l’arbre correspond à l’état initial du problème.
- Les feuilles de l’arbre correspondent à des états sans successeur dans l’arbre ou des nœuds qui n’ont pas encore été développés.
- Un chemin est une séquence de sommets partant du sommet à une feuille.
- Le coût d’un chemin est défini par la somme des coûts de chaque opérateur intervenant dans la construction du chemin.
3.1. Stratégies aveugles
- Pas d'information sur les états
- Générer des successeurs et distinguer état final / non final
- En largeur d'abord
- À coût uniforme
- En profondeur d'abord
- En profondeur limitée
- En profondeur itérative
- Chaque sommet choisi pour être exploré voit tous ses successeurs générés avant qu’un autre sommet ne soit exploré.
- Une recherche en profondeur peut se révéler dangereuse : l’algorithme risque de développer une branche infinie stérile sans que le mécanisme de retour en arrière puisse se déclencher.
- On ajoute dans ce cas une limite de profondeur.
3.2. Stratégies heuristiques
- Les stratégies informées ou heuristiques utilisent un ensemble de règles qui permettent d’évaluer la probabilité qu’un chemin allant du nœud courant au nœud solution soit meilleur que les autres.
- Cette information permet l’estimation des bénéfices des divers chemins avant de les parcourir améliore le processus de recherche.
- Les algorithmes de recherche heuristique utilisent des fonctions appelées fonctions heuristiques. h : E –>R
Heuristique:
- Une heuristique est une mesure associée à un état donné qu’on notera h(Ei).
- Une heuristique est un critère ou une méthode permettant de déterminer parmi plusieurs lignes de conduite celle qui promet d’être la plus efficace pour atteindre un but.
- Elle fournit rapidement une solution réalisable, pas nécessairement optimale, pour un problème d'optimisation difficile.
- Une
heuristique s'impose quand les algorithmes de résolution exacte sont
de complexité exponentielle.
- Méthodes constructives qui génèrent des solutions à partir d’une solution initiale en essayant d’en ajouter petit à petit des éléments jusqu’à ce qu’une solution complète soit obtenue.
- Méthodes de fouilles locales qui démarrent avec une solution initialement complète (probablement moins intéressante), et de manière répétitive essaie d’améliorer cette solution en explorant son voisinage.
En effet, dans certains cas, le prix à payer pour utiliser des méthodes de programmation mathématique peut être une très grande complexité mathématique qui se traduit par des temps de calculs souvent longs. Parce qu’en pratique, une solution à un problème décisionnel doit être proposée dans des temps raisonnables, on sacrifie en partie la qualité de la solution au sens purement mathématique pour accélérer le processus de résolution.
On cite quelques algorithmes informés:- Meilleur d'abord
- Algorithmes gloutons
- Algorithme A∗
- Coût uniforme
- Méta-heuristiques
3.3. Algorithme glouton (greedy algorithm)
- Un algorithme glouton fait, étape par étape, le choix d’un optimum local.
- A chaque itération, on fixe la valeur d'une des variables décrivant le problème sans remettre en cause les choix antérieurs.
- Le principe est donc de partir d'une solution incomplète que l'on complète de proche en proche en effectuant des choix définitifs : à chaque étape, on traite une partie des variables sur lesquelles on ne revient plus.
- Conception facile à mettre en œuvre.
- Rapides mais ne fournissent pas toujours la solution optimale au problème donné.
- Construit une solution pas à pas sans revenir sur ses décisions,
- Obtenir un résultat optimum global
- Effectue à chaque étape le choix qui semble le meilleur.
Les algorithmes gloutons utilisent une fonction d’évaluation f(n) pour chaque nœud
f(n) = h(n) (heuristique) où
- On va tout d'abord trier les types de pièces par valeurs décroissantes.
- Pour chaque valeur de pièce, maximiser le nombre de pièces choisies.
- Répéter le choix de la pièce de plus grande valeur qui ne dépasse pas la somme restante tant que celle-ci n’est pas nulle.
Donc, pour S=26 (3 pièces), on va obtenir:
- 1 pièce de 20
- 1 pièce de 5
- 1 pièce de 1
Maintenant, si on veut rendre la somme S = 26 en pièces de 7, 6, 1. Quelle est la solution optimale?
- 3 Pièces de 7
- 5 pièces de 1
- 2 pièces de 7
- 2 pièces de 6
3.4. Algorithme A*
g(n) = coût jusqu’à présent pour atteindre n
h(n) = coût estimé de n à un but
f(n) = coût total du chemin passant par n à un but
Exemple: Le voyageur de commerce en RoumaniEtape 1:
Etape 2:
Etape 3:
Etape 4: