Vous êtes sur la page 1sur 3

IA 2

Travaux Pratiques 0
Installation

1 Installation de Touist
TouIST (Toulouse Integrated Satisfiability Tool) permet d’encoder des problèmes formulés en logique
propositionelle 1 , à l’aide d’un langage riche. Ce dernier permet, entre autres, de quantifier des connecteurs
logiques sur des ensembles finis. Par exemple, la formule propositionnelle suivante
^ _ ^ ^
(pi,j,n → ¬pi,j,m )
i∈[1..9] j∈[1..9] n∈[1..9] m∈[1..9]
m̸=n

peut être encodée par TouIST de la façon suivante :

bigand $ i in [ 1 . . 9 ] :
bigor $ j in [ 1 . . 9 ] :
bigand $n , $m in [ 1 . . 9 ] , [ 1 . . 9 ] when $m != $n :
p ( $ i , $j , $n ) => not p ( $ i , $j , $m)
end
end
end

Le logiciel peut être téléchargé au lien suivant :

https://www.irit.fr/TouIST/download/

TouIST dispose d’une interface graphique en Java (qui intègre l’outil de ligne de commande). Elle peut
être téléchargée sur la page des versions et est disponible pour Linux, Windows et macOS. Deux options sont
disponibles : le plain jar pour toute plate-forme ou la version native non signée pour macOS et Windows 2 .
Sous macOS Sierra, la version native de TouIST.app affichera un message d’erreur. Vous devez exécuter
sudo spctl −master−disable qui activera l’application.
Sous Windows 10, le fichier natif TouIST.exe ne peut être ouvert que si la fonction SmartScreen de
Windows Defender est désactivée. Vous pouvez toujours utiliser la version jar.

Afin de tester si votre installation fonctionne, vous pouvez lancer TouIST et son interface Java, entrer la
ligne suivante, représentant la formule p ∨ q, et vérifier, en appuyant sur le bouton "Solve" en bas à droite,
que le logiciel parvient à trouver trois modèles différents.
1. TouIST propose aussi d’encoder des problèmes de type QBF ou SMT
2. Attention ! Sous Windows et Mac, TouIST.jar ne fonctionne qu’avec Java <= 8

1
p or q

Alternativement, TouIST peut s’exécuter en ligne de commande. Une fois installé, un ficher de type
. touistl peut être exécuté et résolu avec la commande suivante, qui énumère tous les modèles de la formule :

$ t o u i s t tp1 . t o u i s t l −−s o l v e −−l i m i t 0

2
2 Installation de Fast Downward
Fast Downward est un planificateur automatique classique largement utilisé. Dans le cadre de ce cours,
il nous permettra de résoudre des problèmes de planification encodés dans le langage PDDL.
Le logiciel peut être trouvé au lien suivant :

https://www.fast-downward.org

Toutefois, dans la suite de ce document, nous vous proposons une installation du logiciel au travers de
Vagrant, disponible à l’adresse suivante :

https://www.vagrantup.com/downloads

Vagrant est un logiciel facilitant la virtualisation d’environnements de développement. A ce titre, il permet


une installation facile de Fast Downward, sans avoir à s’encombrer de satisfaire manuellement les différentes
dépendances.
Une fois téléchargé, ouvrez un invité de commande dans un dossier créé pour l’occasion, et placez-y le
fichier Vagrantfile fourni avec ce sujet.
Pour installer la machine virtuelle, il suffit d’exécuter la commande suivante :

$ v a g r a n t up

Remarque : Si une erreur concernant une connexion à libvirt apparaît, nous vous conseillons d’installer
à la place VirtualBox (par exemple avec sudo apt−get install virtualbox). Vous pouvez ensuite utiliser la
commande suivante pour lancer, la première fois, la machine virtuelle :

$ v a g r a n t up −−p r o v i d e r v i r t u a l b o x

Si la machine a été lancée correctement, alors vous pouvez vous y connecter en ssh à l’aide de la com-
mande :

$ vagrant ssh

Vous pouvez placer les fichiers que vous souhaitez transmettre entre votre machine et la machine vir-
tuelle au dossier dans lequel se trouve le fichier Vagrantfile. Ces fichiers peuvent ensuite se retrouver, sur la
machine virtuelle, au chemin /vagrant. En particulier, c’est là que vous placerez les fichiers .pddl à fournir
au planificateur.
Afin de chercher une solution à un problème encodé en PDDL, vous pouvez utiliser la commande suivante,
à exécuter dans le dossier ~/ :

$ downward/ f a s t −downward . py −− a l i a s lama− f i r s t / v a g r a n t / domain . pddl


/ v a g r a n t / problem . pddl

Vous aimerez peut-être aussi