Stéphane Lens
Teaching assistant

Computer Science and Artificial Intelligence

Université de Liège

INFO0049-1, Représentation de la connaissance

(2011-2012)

Notes de cours :



Répétitions :



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.
S. Lens - Valid XHTML 1.0 Strict
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth. (A. Conan Doyle)