INFO0049-1, Représentation de la connaissance
(2011-2012)
Notes de cours :
Répétitions :
- Répétition 1 (20/09)
- Répétition 2 (26/09)
- Répétition 3 (03/10)
- Répétition 4 (10/10)
-> table.pl
- Répétition 5 (17/10)
- Répétition 6 (24/10)
-> search.pl,
queens.pl,
thief.pl
- Répétition 7 (07/11)
-> sliding.pl,
train.pl,
astar.pl,
idastar.pl,
rbfs.pl,
shortest.pl
- Répétition 8 (14/11)
-> andor.pl,
path.pl,
hanoi.pl,
minimax.pl,
tictactoe.pl
- Répétition 9 (21/11)
-> fisher.pl
- Répétition 10 (28/11)
-> constraints.pl,
queensCSP.pl,
sudokuCSP.pl
- Répétition 11 (05/12)
-> magic.pl
- Répétition 12 (12/12)
-> tennis,
tennis_sols
Astuces :
- Pour afficher des résultats non tronqué avec SWI-Prolog, utiliser la commande suivante au début de vos fichiers :
:- set_prolog_flag(toplevel_print_options, [quoted(true), portray(true),
max_depth(0), attributes(portray)]).
Projet implémentation d'une IA pour le jeu Awalé (2011-2012) :
- Projet à rendre pour le
16/12 => 23/12 au plus tard !
- Travail à réaliser individuellement !
- On vous demande d'implémenter les règles de la World Oware Federation disponibles sur la page Wikipedia
Infos :
- Pas de cours le 19 décembre 2011.
- Délai supplémentaire d'une semaine pour la remise des travaux ! La partie de cartes ainsi que votre implémentation du jeu Awalé
seront donc à rendre pour le 23/12 au plus tard.
- Énoncé du projet énigme de la partie de cartes : Cartes.txt (-> projet à rendre pour le
16/12 => 23/12 au plus tard !)
- Modification de l'horaire ! Le cours se donnera dorénavant le lundi de 8h30 à 12h30 (B28 1.123).
- Horaire: 1er quadrimestre, mardi de 14h00 à 18h00 (B28 R.21).
Liens utiles :
Interface C/C++ <-> SWI-Prolog :
- Pré-requis : (obsolète?)
1. Vérifier que les fichiers SWI-Prolog.h et SWI-cpp.h
sont bien présent dans le dossier "/usr/include/pl/".
-> Fedora : Installer le paquet pl-devel en plus du paquet pl.
2. Remplacer la ligne "#include <SWI-Prolog.h>" par "#include <pl/SWI-Prolog.h>"
dans le fichier SWI-cpp.h.
- Exemple 1 (Embedded SWI-Prolog in C Program) - Tester si un nombre est premier :
-> prime.c,
prime.pl
Exécuter la commande plld -o prime prime.c prime.pl pour compiler.
- Exemple 2 (Embedded SWI-Prolog in C++ Program) - Tester si un nombre est premier :
-> prime.cc,
prime.pl
Exécuter la commande plld -o prime prime.cc prime.pl pour compiler.
(plld appelle g++ à la place de gcc si les fichiers ont pour extension *.cc|*.C|*.cxx|*.cpp)
- Exemple 3 (SWI-Prolog calling a C function predicate) : (à venir)
- Exemple 4 (SWI-Prolog calling a C++ function predicate) : (à venir)
- Exemple 5 (avec des listes) - Trier une liste en utilisant le prédicat prédéfini msort :
-> sort.c ou sort.cc
Exécuter la commande plld -o sort sort.c ou plld -o sort sort.cc pour compiler.
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth. (A. Conan Doyle)
|