Représentation sous forme de graphe d'états
Global Problem Solver
Algorithmes de Recherche Aveugles
Algorithmes de Recherche Informés
Depth First Search
Breadth First Search
Best First Search
A, A*
Fonction heuristique, Fonction heuristique admissible
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...Jean Rohmer
Ce papier explique en détail et de manière pédagogique comment résoudre des problèmes en intelligence artificielle à l'aide du langage Prolog. Les classiques du loup, chèvre et chou, et de la tour de Hanoï sont expliqués en détail. On décrit comment appliquer l'approche "general problem solver" en Prolog
Ce second cours d'algorithmique présente des techniques utilisées en intelligence artificielle pour trouver une solution à un problème de recherche. La première partie définit un problème de recherche : état, action, arbre d'exécution, espace d'états, cout, objectif et formalisation. La deuxième partie présente plusieurs algorithmes de recherche : non informé (BFS, UCS, DFS, DLS, ID-DFS, BS), informé (BFS, A*) et avec adversaire (Minimax, Alpha-Beta Pruning). Enfin, la troisième partie présente deux librairies Python qui implémentent des algorithmes de recherche.
Représentation sous forme de graphe d'états
Global Problem Solver
Algorithmes de Recherche Aveugles
Algorithmes de Recherche Informés
Depth First Search
Breadth First Search
Best First Search
A, A*
Fonction heuristique, Fonction heuristique admissible
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...Jean Rohmer
Ce papier explique en détail et de manière pédagogique comment résoudre des problèmes en intelligence artificielle à l'aide du langage Prolog. Les classiques du loup, chèvre et chou, et de la tour de Hanoï sont expliqués en détail. On décrit comment appliquer l'approche "general problem solver" en Prolog
Ce second cours d'algorithmique présente des techniques utilisées en intelligence artificielle pour trouver une solution à un problème de recherche. La première partie définit un problème de recherche : état, action, arbre d'exécution, espace d'états, cout, objectif et formalisation. La deuxième partie présente plusieurs algorithmes de recherche : non informé (BFS, UCS, DFS, DLS, ID-DFS, BS), informé (BFS, A*) et avec adversaire (Minimax, Alpha-Beta Pruning). Enfin, la troisième partie présente deux librairies Python qui implémentent des algorithmes de recherche.
Notions de base :
- programme
- programmation
- langages de programmation
Une petite introduction au langage C++ :
- Historique
- Place de C++ par rapport aux autres langages de programmation
Mettre en place les différents outils nécessaires pour pouvoir programmer en C++ :
- éditeur de texte
- compilateur
- débugger
les programmes « 3 in 1 » ou IDE - Environnement de Développement Intégré
Création et discussion de notre premier programme C++
Un cours d'initiation en Visual Basic.
Merci de me faire part de vos remarques et suggestions pour le parfaire et le perfectionner via mon email:
pr.azizdarouichi@gmail.com
Ce cours est le premier en lien avec l'algorithmique présente les algorithmes et fonctions récursives ainsi que le type abstrait de données arbre. La première partie revient sur les notions de problème, algorithhme et spécification. La deuxième partie présente la récursion et de nombreux exemples. Enfin, la troisième partie présente le type abstrait de données arbre qui permet d'organiser des données de manière hiérarchique. Le cours se termine avec une introduction aux notions de backtracking et lookahead.
Notions de base :
- programme
- programmation
- langages de programmation
Une petite introduction au langage C++ :
- Historique
- Place de C++ par rapport aux autres langages de programmation
Mettre en place les différents outils nécessaires pour pouvoir programmer en C++ :
- éditeur de texte
- compilateur
- débugger
les programmes « 3 in 1 » ou IDE - Environnement de Développement Intégré
Création et discussion de notre premier programme C++
Un cours d'initiation en Visual Basic.
Merci de me faire part de vos remarques et suggestions pour le parfaire et le perfectionner via mon email:
pr.azizdarouichi@gmail.com
Ce cours est le premier en lien avec l'algorithmique présente les algorithmes et fonctions récursives ainsi que le type abstrait de données arbre. La première partie revient sur les notions de problème, algorithhme et spécification. La deuxième partie présente la récursion et de nombreux exemples. Enfin, la troisième partie présente le type abstrait de données arbre qui permet d'organiser des données de manière hiérarchique. Le cours se termine avec une introduction aux notions de backtracking et lookahead.
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...RichardTerrat1
Le calcul récursif est fondé sur la composition des algorithmes (un algorithme peut invoquer le résultat calculé par un autre algorithme),utilisant la propriété que, sous certaines conditions, un algorithme peut, dans sa définition même, se composer avec lui-même.
Cet article n’aborde pas les aspects théoriques relevant de cette problématique et se veut une introduction par l’exemple aux possibilités calculatoires qu’elle offre. Il est destiné aux étudiants de niveau Licence ou Master en Informatique, notamment à ceux préparant un CAPES d’informatique, comme aux enseignants du secondaire qui souhaitent accompagner l’apparition de la discipline Informatique au lycée.
En particulier, après avoir discuté la composition d’un algorithme avec lui-même dans deux exemples aux résultats contradictoires et proposé une démarche pragmatique de conception et de première ana-lyse d’algorithmes récursifs, cet article présente une dizaine d’exemples pouvant inspirer des exercices à traiter sous forme de cours ou de séances de travaux dirigés
L'Autorité de la Concurrence présente son nouveau guide "Protéger son environnement numérique" pour aider les internautes à repérer facilement la désinformation et à agir contre les contenus potentiellement illégaux comme les discours de haine et les deep fakes.
cours Systèmes de Gestion des Identités.pdfHajer Boujezza
Ce cours enrichit vos connaissances en sécurité informatique au niveau du contrôle d'accès et gestion des identités. Dans ce cours nous présentons une étude complète de classification des IDMS dans le contexte de l'Internet des Objets: IoT
👉 [Bonne pratique] une Charte de Bonnes Pratiques informatique est un outil fondamental pour gérer de manière proactive les risques informatiques, optimiser les performances et promouvoir une culture de travail éthique et sécurisée au sein de l'organisation.
✅ Elle fournit un ensemble clair de procédures et de standards à suivre, assurant ainsi la cohérence dans les pratiques de travail et la gestion des ressources informatiques.
✅ En définissant des pratiques sécuritaires pour l'utilisation des systèmes et la gestion des données, la charte aide à prévenir les violations de sécurité, les pertes de données et les attaques informatiques.
✅ Elle sensibilise à l'importance de protéger les données sensibles et personnelles, conformément aux réglementations en vigueur (comme le RGPD en Europe), minimisant ainsi les risques de fuites d'informations et les conséquences légales qui pourraient en découler.
✅ La charte promeut une utilisation efficace et responsable des ressources informatiques, aidant à réduire les coûts et à éviter le gaspillage.
✅ Elle établit clairement les droits et les responsabilités de chaque utilisateur, promouvant une culture de responsabilité et d'engagement envers les pratiques informatiques éthiques et professionnelles.
✅ En fournissant des directives claires, la charte facilite la communication entre les utilisateurs, le personnel informatique et la direction sur les attentes et les procédures à suivre.
✅ Elle aide à prévenir les conflits en fournissant des directives claires sur l'utilisation acceptable des ressources informatiques, évitant ainsi les malentendus et les abus.
✅ La charte peut servir de base pour la formation des employés et des utilisateurs sur les bonnes pratiques informatiques, améliorant ainsi les compétences et la sensibilisation générales.
✅ En assurant la protection des données et la sécurité des systèmes, la charte contribue à maintenir une image positive de l'organisation, renforçant la confiance des clients, des partenaires et des employés.
✅ Elle aide les organisations à se conformer aux lois et réglementations en vigueur concernant l'utilisation des technologies de l'information et la protection des données.
Augmentez vos conversions en ligne : les techniques et outils qui marchent vr...OsharaInc
Au cours de cette session interactive, nos experts en marketing digital vous dévoileront les meilleures pratiques et les dernières tendances pour transformer vos visiteurs en clients.
3. 3
Introduction
™ Résoudre un pb c’est chercher un chemin
qui permet d’aller d’une situation initiale à
une situation finale (but)
Situation
initiale
Situation
Finale
? Trouver ce chemin
4. 4
Introduction
Pour résoudre un problème il arrive qu’on puisse le
décomposer en sous-problèmes puis décomposer
ceux-ci, etc.,
Æjusqu’à n’avoir plus que des problèmes dont la
solution est considérée comme immédiatement
accessible sans qu’il soit nécessaire de les
décomposer à leur tour.
™ L’ensemble des décompositions possibles peut être
représenté par un “ graphe des sous-problèmes ”.
ÆLa résolution d’un problème est alors ramenée à la
recherche d’un certain sous-graphe du graphe des
sous-problèmes.
5. 5
Introduction
Un graphe sans cycle Æ arbre
Certains sommets marquent une conjonction de sous problèmes dont la
résolution implique celle du problème décomposé.
D’autres sommets marquent une disjonction de décompositions possibles.
ET
OU
ET
OU
Arbre ET/OU
6. 6
Exemple
™ un état est une
configuration du
tableau 4x4
On distingue:
™ L’état initial
™ Un ou plusieurs états
finaux
1 3 14 5
9 11 4 12
6 10 2 8
7 13 15
13 3 5 15
9 4 12
6 10 2 8
7 11 1 14
6 3 14 5
9 12 4
1 10 2 8
7 11 13 15
3 14 15
9 11 4 12
6 10 2 1
5 8 13 7
Etat initial
7. 7
Représenter le problème
Le monde réel est excessivement complexe
l'espace d'états doit être une abstraction de la réalité
•Les états du problème (abstrait) = ensemble d'états réels
•L’objectif à atteindre: solution (abstraite) = ensemble de chemins-
solutions dans le monde réel
• Les opérateurs de transformations (abstrait) = combinaison
d'actions réelles (représentation par graphe)
Il faut définir:
8. 8
Types de problèmes
™ déterministe, accessible Æ problème à état unique
ƒ état exact connu
ƒ effets des actions connus
™ déterministe, inaccessible Æ problème à états multiples
ƒ un ensemble parmi plusieurs ensembles d'états
ƒ effets des actions connus
™ non déterministe, inaccessible Æ problème contingent
(perception limitée, algorithmes plus complexes)
ƒ besoin de percevoir durant l'exécution
ƒ solution a une structure d'arbre
ƒ souvent mélange entre recherche et exécution
ƒ effet conditionnel des actions
™ espace d'états inconnu Æ problème d'exploration ("online")
ƒ exécution révèle les états
ƒ besoin d'expérimenter pour trouver la solution
ƒ le plus difficile
9. 9
Formulation d'un problème à état unique
Un problème est défini par 4 éléments:
™ état initial
™ opérateurs (ou fonction successeur S(x))
™ Test-but: fonction applicable à un état qui
détermine si c'est l'état solution.
™ Coût-chemin: permet de déterminer quel est le
meilleur chemin menant à la solution si plusieurs
chemins existent.
une solution est une séquence d'opérateurs
menant de l'état initial à l'état final (solution)
10. 10
Exemple: assemblage automatique
• état initial: coordonnées des articulations du robot et pièces à assembler
• opérateurs: mouvements continus du bras robotique
• test-but: assemblage terminé, robot en position de repos
• coût-chemin: temps d'exécution
11. 11
Exemple : jeu de taquin (puzzle)
Configuration initiale
Etat initial
Configuration finale
Etat final
• état initial: positions des 8 plaquettes dans une des 9 cases
• opérateurs: déplacer la case vide
• test-but: état courant = état final
• coût-chemin: chaque déplacement coûte 1,
coût total = nombre de déplacements
12. 12
Opérateurs du jeu taquin
™ Un opérateur transforme un état en un autre
état.
™ Il existe quatre opérateurs pour le taquin:
ƒ déplacer la case vide en haut
ƒ déplacer la case vide en bas
ƒ déplacer la case vide à gauche
ƒ déplacer la case vide à droite
13. 13
Représentation par graphes d’états
L’application des opérateurs sur les états en
démarrant de l’état initial conduit à la
construction d’une arborescence
14. 14
Problème général de recherche
?
Représentation
par un arbre
Graphe d’état général
A
G
k
L
O
M
N
I
F
c
E
H
D
B
15. 15
États vs. noeuds
• Un état est une représentation d'une configuration physique
• un noeud est un élément d'une structure de donnée constitutive d'un
arbre de recherche; il possède les informations de:
– parent, enfants, profondeur, coût de chemin g(x)
16. 16
Méthodes de recherche
• Méthodes de recherche « aveugles » = Explorations non informées
– recherche en largeur
– recherche en profondeur
– recherche en profondeur limitée
– recherche par approfondissement itératif
• Méthodes de recherche heuristiques = Explorations informées
Stratégies d’exploration
17. 17
Critères d'évaluation
Les différentes méthodes de recherche sont évaluées selon les critères suivants:
• Complétude: est-ce que la méthode garantit de trouver une solution si elle existe?
• Complexité en temps: combien de temps faut-il pour trouver la solution?
• Complexité en espace: quel espace mémoire faut-il pour effectuer la recherche?
• Optimalité: est-ce que la méthode trouve la meilleure solution s'il en existe
plusieurs?
• Les complexités en temps et en espace sont mesurée en fonction de:
– b = facteur de branchement maximum de l'arbre de recherche
– d = profondeur à laquelle se trouve le (meilleur) noeud-solution
– m = profondeur maximum de l'espace de recherche (espace d'états ou
arbre de recherche) - peut être infini
18. 18
Exercice 1: problème du fermier
™ quartes acteurs le fermier(f), le loup(l), la chèvre (c) et le
chou (C) se trouvent sur la rive gauche d’une rivière.
™ On considère:
ƒ Un bateau qui peut transporter le fermier seul ou avec un des
trois acteurs restants de gauche à droite
ƒ Un bateau qui peut transporter le fermier seul ou avec un des
trois acteurs restants de droite à gauche
ƒ Le loup peut manger la chèvre sans présence du fermier
ƒ La chèvre peut manger le chou sans présence du fermier
Pb?
Comment faire pour passer les 4 acteurs à l’autre rive
20. 20
Principe de la recherche en largeur
™ L’expansion des noeuds les moins récemment engendrés
s’effectue en premier
™ L’arborescence est construite niveau après niveau et donc
de manière horizontale
™ Stratégie: étend le
noeud le moins
profond
™ Implémentation:
™ insertion des
successeurs à la fin
de la file d'attente
21. 21
Algorithme
1-Insérer le noeud initial s dans une liste appelée OPEN
2-Si OPEN est vide alors échec sinon continuer
3-Retirer le premier noeud de OPEN et l’insérer dans une liste
appelée CLOSED. Soit n ce noeud.
4-S’il n’existe pas de successeur alors aller à 2. Engendrer les
successeurs de n et les insérer à la queue de OPEN. Créer
un chaînage de ces noeuds vers n
5-Si parmi les successeurs, il existe un état final alors succès:
la solution est obtenue en suivant le chaînage arrière de ce
noeud vers la racine, sinon aller à 2
22. 22
Propriétés de la recherche en largeur
• Complétude Oui (si b est fini)
• Complexité en temps
1 + b + b2 + b3 + … + bd = O(bd) (exponentiel en d)
• Complexité en espace O(bd) (il faut garder
chaque noeud en mémoire)
• Optimalité Oui (si coût = 1 par étape )
en général pas optimal
23. 23
Exercice 2 : taquin 3x3
™Appliquer la recherche en largeur d’abord
sur la donnée suivante:
Configuration initiale
Etat initial
Configuration finale
Etat final
1 3
2
6
5
8
4
7
1 3
2
4
8
6 5
7
26. 26
Principe de recherche en profondeur
™ Stratégie: étend le noeud le plus profond
™ Implémentation: insertion des successeurs en tête de la
file d'attente
Attention aux cycles
infinis !
Il faut un espace de
recherche fini et sans
cycle,
nécessité d'éliminer
les nœuds déjà
rencontrés.
28. 28
Propriétés de la recherche en profondeur
• Complétude : Non
échoue dans les espaces infinis ou avec cycle
Æ complet dans les espaces finis acycliques
• Complexité en temps :
O(bm) = terrible si m est beaucoup plus grand que d
• Complexité en espace: O(b * m) linéaire!
• Optimalité : Non
• discussion: besoins modestes en espace
– pour b = 10, d = 12 et 100 octets/noeud:
• recherche en profondeur a besoin de 12 Koctets
• recherche en largeur a besoin de 111 Tera-octets
* 1010 !!!
31. 31
Principe de la recherche en
profondeur limitée
™ algorithme de recherche en profondeur avec une
limite de profondeur d'exploration L
Implémentation
™ les noeuds de profondeur L n'ont pas de successeurs
™ exemple avec L = 2
32. 32
Propriétés de la recherche en profondeur
limitée
™ Complétude: Oui si L ≥ d
™ Complexité en temps: O(bL)
™ Complexité en espace: O(b * L)
™ Optimalité: Non
33. 33
Exercice 3 : taquin 3x3
™Reprendre l’exercice 2 en appliquant la
recherche en profondeur limitée à 3 sur la
donnée suivante:
Configuration initiale
Etat initial
Configuration finale
Etat final
1 3
2
6
5
8
4
7
1 3
2
4
8
6 5
7
35. 35
Principe de la recherche
itérative en profondeur
Æ Le problème avec la recherche en profondeur limitée est
de fixer la bonne valeur de L
• approfondissement itératif = essayer toutes les valeurs
possibles de L à partir de L = 0 (en incrémentant la limite)
• combine les avantages de la recherche en largeur et en
profondeur
– optimal et complet comme la recherche en largeur
– économe en espace comme la recherche en profondeur
• c'est l'algorithme de choix si l'espace de recherche est grand
et si la profondeur de la solution est inconnue
39. 39
Introduction aux heuristiques
™ Les méthodes aveugles (non informées) sont des méthodes
systématiques peu efficaces
™ Il existe des limites pratiques sur le temps d’exécution et
l’espace mémoire pour appliquer ces méthodes sur une grande
catégorie de problèmes
™ Toute technique visant à accélérer la recherche est basée sur
une information appelée heuristique
™ Une heuristique signifie ‘aider à découvrir’
™ Ils utilisent des sources d’information supplémentaires. Ces
algorithmes parviennent ainsi à des performances meilleures
™ Les méthodes utilisant des heuristiques sont dites méthodes de
recherche heuristiques
40. 40
Implémentation des méthodes heuristiques
™ Utiliser un critère pour réordonner tous les
nœuds qui sont explorés (au lieu d’être mis dans
une pile ou file)
™ Une certaine mesure doit être établie pour
évaluer « la promesse » d’un nœud.
ÆCette mesure est appelée fonction
d’évaluation ou d’adéquation ou objective
41. 41
Fonction d’évaluation
™ La recherche ordonnée revient à choisir à développer le
meilleur nœud au sens d’un certain critère
Î centrée sur le nœud ayant les meilleurs chances de
mener au but
™ L’utilisation d’une heuristique est basée sur une
fonction d’évaluation pour ordonner la recherche
appelée fonction heuristique nommée
h(u)
™ h est la fonction heuristique qui estime le coût
du passage de l'état u à l'état final.
42. 42
Méthode d’évaluation
™ Soit f une fonction d’évaluation, f(n) exprime la
valeur de cette fonction pour le noeud n
™ f*(n) représente le coût idéal du chemin passant
par un nœud n pour arriver au but
I
B
n
f*(n)
g*(n)
h*(n)
f*(n) = g*(n) + h*(n)
Etat
initial
Etat
But
Nœud
n
43. 43
™Estimation de g*
™ g* peut être le coût du meilleur
Chemin déjà rencontré de I à n
™ Soit g cette fonction du coût on a
g(n) ≥ g* (n)
ÆLe choix de g est très dépendant
du domaine traité
ÆExemple pour le jeu de taquin
g(n) le nombre de jeton déplacé
(la longueur de la chaîne entre la
racine et n)
I
B
n
f*(n)
g*(n)
h*(n)
f*(n) = g*(n) + h*(n)
Etat
initial
Etat
But
Nœud
n
Méthode d’évaluation
44. 44
™ Estimation de h*
™ plus difficile car on connaît
pas de chemin de n Æ But
™ Il faut se référer à des informations
heuristiques sur le domaine
™ Æ l’algorithme se fondant sur f(n)
pour ordonner les nœud est nommé
l’Algorithme A
I
B
n
f*(n)
g*(n)
h*(n)
f*(n) = g*(n) + h*(n)
Etat
initial
Etat
But
Nœud
n
Méthode d’évaluation
•L’algorithme A* est une stratégie du meilleur en premier dans le cadre des
graphes OU et des problèmes de minimisation des coûts additifs.
•L’algorithme A* est chargé de calculer le plus court chemin menant de l’état
initial à l’état final.
45. 45
Exercice 4: Recherche heuristique avec A*
™f(n)=g(n) +h(n)
avec
™g : nombre de jetons déplacés
™h: nombre de jetons mal placés
Configuration initiale
Etat initial
Configuration finale
Etat final
1 3
2
6
5
8
4
7
1 3
2
4
8
6 5
7
46. 46
Exercice 5: recherche avec algorithme A*
Rappel
Mouvements légaux: Déplace le <blanc> vers:
- le haut - la droite
- le bas - la gauche
Contraintes: Les mouvements en diagonal sont interdits
Configuration initiale
Etat initial
Configuration finale
Etat final
2 3
8
6
5
1 4
7
1 3
2
4
8
6 5
7
47. 47
Votre tour..!
™ Dans la vie réelle on utilise aussi l’heuristique:
™ Exemple: Au supermarché, on choisit la
queue la moins longue ou alors on choisit la
queue dans laquelle les clients on le plus petit
nombre d’objets dans leur panier.
™ Avez-vous d’autres exemples?
48. 48
Votre tour..!
™Allez: et jouer et commenter
™http://www.dc.fi.udc.es/lidia/mariano/de
mos/8puzzle/EightPuzzle.htm
49. 49
Résumé
™ Les algorithmes de recherche sont une technologie de base
importante en Intelligence Artificielle.
™ Recherche d’arbres en profondeur d’abord: utilise peu de
mémoire, mais peut rater la solution optimale.
™ Recherche d’arbres en largeur d’abord: gourmande en
™ mémoire, mais trouve toujours la solution optimale.
™ Recherche heuristique: A* peut trouver la solution optimale
de manière efficace.