fzn2smt工具允许通过Yices求解flatzinc公式。
当我尝试运行它时,求解器会回答UNKNOWN
我测试的每个公式。例如:
~$ java -Xmx4096M fzn2smt -ce "./yices-2.5.2/bin/yices -f" -i 2DPacking.fzn
Time1:170
=====UNKNOWN=====
但是,在给定的示例中,它似乎正确地2DPacking.fzn.smt
在文件的同一目录中创建了实例2DPacking.fzn
:
~$ ls
2DPacking.fzn.smt 2DPacking.fzn 2DPacking.mzn 2DPacking.ozn
如果我手动运行Yices
公式smt
,我会得到一个肯定的结果:
~$ yices-smt -f 2DPacking.fzn.smt
sat
(= x____00002_6_ 0)
...
IMPLICANT:
(>= x____00003_4_ 0)
...
问:有没有其他人有经验fzn2smt
并知道如何解决这个问题?
为了确定我遇到的问题不是由于安装部分,我将在这里分享:
main_dir
main_dir/fzn2smt-2-0-02 # unpacked fzn2smt files
main_dir/antlr # unpacked antlr-runtime-3.5 files
main_dir/yices-2.5.2 # unpacked yices files
我还按照工具说明的要求修改了环境变量:
PATH=${main_dir}/yices-2.5.2/bin/:${PATH}
PATH=${main_dir}/fzn2smt-2-0-02/:${PATH}
CLASSPATH=${main_dir}:${CLASSPATH}
CLASSPATH=${main_dir}/antlr:${CLASSPATH}
CLASSPATH=${main_dir}/fzn2smt-2-0-02:${CLASSPATH}