Objectif général : Acquérir les bases méthodologiques de la résolution d'un problème conduisant à la réalisation d'un programme informatique
Objectifs opérationnels :
- Connaître les étapes de résolution d’un problème
- Stocker et traiter des données simples
- Permettre à un programme de communiquer avec l’extérieur
- Contrôler le flux d’exécution des instructions
- Traiter des données composites
- Définir et utiliser des procédures et des fonctions
Objectif général : Acquérir les bases méthodologiques de la résolution d'un problème conduisant à la réalisation d'un programme informatique
Objectifs spécifiques :
Connaître les étapes de résolution d’un problème
Stocker et traiter des données simples
Permettre à un programme de communiquer avec l’extérieur
Contrôler le flux d’exécution des instructions
Traiter des données composites
Définir et utiliser des procédures et des fonctions
Objectif général : Acquérir les bases méthodologiques de la résolution d'un problème conduisant à la réalisation d'un programme informatique
Objectifs opérationnels :
- Connaître les étapes de résolution d’un problème
- Stocker et traiter des données simples
- Permettre à un programme de communiquer avec l’extérieur
- Contrôler le flux d’exécution des instructions
- Traiter des données composites
- Définir et utiliser des procédures et des fonctions
Objectif général : Acquérir les bases méthodologiques de la résolution d'un problème conduisant à la réalisation d'un programme informatique
Objectifs spécifiques :
Connaître les étapes de résolution d’un problème
Stocker et traiter des données simples
Permettre à un programme de communiquer avec l’extérieur
Contrôler le flux d’exécution des instructions
Traiter des données composites
Définir et utiliser des procédures et des fonctions
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.
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.
Alternative - Complément au Tramway et 3ème lien de la ville de Québec Daniel Bedard
An update of this presentation has been done with Slide 16 that has been updated and 17 has been added, only.
Cette présentation a été ajournée avec la diapo 16 qui a été modifié et la 17 qui a été ajouté.
Voir ici
https://www.slideshare.net/slideshow/alternative-au-tramway-de-la-ville-de-quebec-rev1-sum-pdf/269691794
CDPQ Infra dévoile un plan de mobilité de 15 G$ sur 15 ans pour la région de Québec. Une alternative plus économique et rapide, ne serait-elle pas posssible?
- Valoriser les infrastructures ferroviaires du CN, en créant un Réseau Express Métropolitain (REM) plutôt qu'un nouveau tramway ou une combinaison des 2.
- Optimiser l'utilisation des rails pour un transport combiné des marchandises et des personnes, en accordant une priorité aux déplacements des personnes aux heures de pointes.
- Intégrer un téléphérique transrives comme 3ème lien urbain dédiés aux piétons et cyclistes avec correspondance avec le REM.
- Le 3 ème lien routier est repensé en intégrant un tunnel routier qui se prolonge avec le nouveau pont de l'Île d'Orléans et quelques réaménagemet de ses chausées.
https://www.linkedin.com/in/bedarddaniel/
English:
CDPQ Infra unveils a $15 billion, 15-year mobility plan for the Quebec region. Wouldn't a more economical and faster alternative be possible?
Leverage CN's railway infrastructure by creating a Metropolitan Express Network (REM) instead of a new tramway or a combination of both.
Optimize the use of rails for combined freight and passenger transport, giving priority to passenger travel during peak hours.
Integrate a cross-river cable car as a third urban link dedicated to pedestrians and cyclists, with connections to the REM.
Rethink the third road link by integrating a road tunnel that extends with the new Île d'Orléans bridge and some reconfiguration of its lanes.
https://www.linkedin.com/in/bedarddaniel/
2. 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
3. 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
4. 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
5. 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
attente
à 8h
0v en
attente
à 8h
0v en
attente
à 8h
0v en
attente
à 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
6. Résolution de problèmes
• Exemple de problème
- Le voyageur de commerce
140
99
211
80
97
Ville B
Ville C
Ville D
Ville E
Ville F
Ville A
101
Ville K
Ville L
120
150
100
140 70
160 160
180
220
Un voyageur de commerce partant d'une ville veut se
rendre successivement dans un certain nombres de
villes sans repasser deux fois dans la même ville et
en revenant finalement à la ville de départ. On connaît
les distances de ville à ville. Quel trajet doit-il effectuer
de façon à minimiser la distance parcourue ?
7. 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
8. 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))
9. 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
10. 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
11. 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)
12. 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èmes 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
13. 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)
14. • 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
15. • 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
16. E7 E8 E9
E4 E5 E6
E13 E14
8 12
10 11
E11 E12
3 4
14 situations explorées
E0
1
7
13
9
E10
E1 E2 E3
14
2 5 6
• Méthodes de recherche
aveugle
– Profondeur d ’abord
(LIFO) :
– Principe : la priorité est donné
aux nœuds de niveaux les plus
profonds du graphe de
recherche
Exemple
Résolution de problèmes
17. • 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
18. E7 E8 E9
E4 E5 E6
7 9
10 situations explorées
E0
1
2
3
8
E10
E1 E2 E3
10
4 5 6
• Méthodes de recherche
aveugle
– Largeur d’abord
(FIFO) :
– Principe : la priorité est donné
aux nœuds de niveaux les
moins profonds du graphe
de recherche
Exemple
Résolution de problèmes
19. • 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
20. E7 E8 E9
E4 E5 E6
6 8
E0
1
5
9
7
E10
E1 E2 E3
10
2 3 4
• Méthodes de recherche
aveugle
– Profondeur limitée :
– Principe : idem que profondeur
d ’abord avec une limite de
profondeur d ’exploration L
Exemple avec
une profondeur
limitée L=2
Résolution de problèmes
21. • 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
22. E7 E8 E9
E4 E5 E6
9 11
E0
1,4
2,8
3,12
10
E10
E1 E2 E3
13
5 6 7
• Méthodes de recherche
aveugle
– Approfondissement
itératif :
– Principe : recherche en
profondeur, limitée à la
profondeur 1, puis 2, ...
jusqu'à l'obtention d'une
solution (ou l'échec de la
recherche)
Exemple
Résolution de problèmes
23. • 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
Résolution de problèmes
e1 e2 e3
A
h(e1) = 0.8
h(e2) = 2
h(e3) = 1.6
24. • 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
25. Résolution de problèmes
VA
VB
VK VL
VA VM VC VD
VF
152
329
374 250
366 380 178
190
0
366
Heuristique : distance à vol d’oiseau
VE
50
70
• Méthodes de recherche
heuristique
– Profondeur ordonnée :
– Principe : Approfondissement des
branches jusqu'a leur extrémité,
dans l'ordre inverse de leur
distance au but
Meilleur chemin : VA>VB>VC>VF
26. • 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
27. Résolution de problèmes
Heuristique : proximité du but
• 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
28. • 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
29. 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)
31. 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
32. • 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
33. Résolution de problèmes
• Programmes de jeux de stratégie
Exemple de jeu : les échecs Situation courante
Quel coup choisir ?
? ?
34. 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