用于约束解决方案分析的Prolog程序结构

时间:2018-07-12 17:26:04

标签: prolog constraints constraint-programming

我有一个具有以下结构的SWI-PROLOG程序:

% various predicates
...
...
...

main :-
   % constraints
   ...
   ...
   ...
   % labeling of about 50 variables
   label([........]),
   % additional conditions and constraints:
   condition1
   condition2
   ...
   conditionN
   % output
   write(Interesting_var),nl.

约束求解器可以相当快地工作(约10秒),并找到许多答案。然后,我可以借助condition1,...,conditionN过滤答案并打印Interesting_var

问题1:我必须使用不同的condition1,...,conditionN运行多次。因此,每次运行该程序时,我都会对其进行修改。但是,如果不是在10秒钟之内而是在10分钟或10个小时内解决了约束,该怎么办?如何记住约束的所有解,然后问一些有关约束中约50个有趣变量的值的具体问题。

问题2:我目前大约有50个有趣的变量。但是我一直在增加新的变量和新的约束。 main谓词越来越长...如何使我的程序更具模块化。从语义上讲,这些变量可以分为几个“域”,但是在我的程序中,它们都被定义在一个地方。

0 个答案:

没有答案