J'utilise SWI-Prolog avec la bibliothèque clpr pour résoudre les contraintes sur les nombres réels. Je fais cela en appelant SWI-Prolog du command line et en analysant la sortie par un autre programme.SWI-Prolog: Comment écrire une solution à la sortie de la ligne de commande?
Par exemple, pour résoudre quelque chose comme {F = 1.8 * C + 32}, {C = 25}.
je produis la commande suivante:
swipl \
-g "use_module(library(clpr))" \
-g "{F = 1.8 * C + 32}, {C = 25}, write(\"F -> \"), write(F), write(\"\\n\")" \
-g halt
Et la sortie de SWI-Prolog est:
F -> 77.0
Cela fonctionne très bien si le résultat est une plaine nombre mais pas si le résultat est à nouveau une contrainte (ou une solution plus complexe en général). Par exemple, pour {X > 3}, {Y < 5}, {X + Y = 10}.
, j'obtiens la solution {Y < 5.0, X = 10.0 - Y}
dans l'environnement SWI-Prolog mais je n'ai pas trouvé le moyen d'écrire ceci dans la sortie de la ligne de commande. Y a-t-il un moyen de faire cela?
Bien sûr, vous ne voulez pas utiliser [tag: CLPQ] à la place? clpr est criblé de problèmes numériques partout ... – false