J'ai un simple ensemble de contraintes qui Z3 est pas en mesure de faire face à:Z3 retourne inconnu
est-il un moyen de modifier les contraintes afin d'obtenir le résultat? Ceci est un exemple simple d'un plus grand ensemble de contraintes (milliers) mais Je suis en quelque sorte troublé qu'il ne fonctionne pas même sur un tel exemple simple
Merci d'avance !!
Levent est correct, le problème est l'utilisation d'un nombre entier mixte et d'une arithmétique non linéaire réelle. Je vois deux solutions de contournement possibles. Nous pouvons remplacer toutes les variables entières par des variables réelles, cela est correct, car les variables entières peuvent seulement supposer des valeurs 0 ou 1 dans votre problème (voici la solution: http://rise4fun.com/Z3Py/ICFA). Dans ce cas, le nouveau solveur nlsat de Z3 sera utilisé. Une autre option consiste à remplacer les variables entières par des variables booléennes et à linéariser le problème en utilisant 'If's. Voici le lien pour cette solution http://rise4fun.com/Z3Py/egCe. La deuxième solution devrait mieux évoluer. –