Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Minizinc 可以有多个';求解';是否应用于微量锌?_Minizinc - Fatal编程技术网

Minizinc 可以有多个';求解';是否应用于微量锌?

Minizinc 可以有多个';求解';是否应用于微量锌?,minizinc,Minizinc,我尝试在单个mzn文件中应用以下结构: define Variables; %% first set of constraints constraint ...; constraint ...; solve satisfy; %% second set of constraints constraint ...; constraint ...; solve satisfy; 其中第二组约束是应用于第一组求解的结果的约束,单独执行操作将减少搜索空间,从而减少计算时间,这就是我首先提出此结构的

我尝试在单个
mzn
文件中应用以下结构:

define Variables;

%% first set of constraints
constraint ...;
constraint ...;
solve satisfy;

%% second set of constraints
constraint ...;
constraint ...;
solve satisfy;
其中第二组约束是应用于第一组
求解的结果的约束,单独执行操作将减少搜索空间,从而减少计算时间,这就是我首先提出此结构的原因


有没有办法实现这种依赖结构?由于Minizing不允许两个
解算

,正如您提到的,Minizing在一个模型中只需要一个
解算

根据问题的不同,还有其他方法

1) 用另一种编程语言编写程序,运行第一个Minizin模型并获取结果。然后,您可以制作(运行时)另一个Minizing模型,该模型使用之前的结果运行。这是我自己可能会使用的方法

Minizing的开发版本包括一个Python接口,这可能会使它变得非常简单。然而,我还没有测试过这个

2) 在很大程度上取决于具体问题,可能会在同一个模型中组合这两个版本。例如,如果问题有两个目标,那么您可以在模型中同时包含两个子问题,并将这两个目标结合起来,在目标上增加权重,以确定每个子问题目标的重要性。这是处理多目标(多目标)的“标准”方法,如线性规划。但是,Minizing中没有对此的特殊支持

(我想在Minizing中拥有的一个相关功能是支持一个模型,该模型首先解决一个目标,然后生成满足该目标的所有解决方案。这在今天的Minizing中是不可能的。然而,Minizing的实验性MiniSearch扩展可能使这成为可能,至少据开发人员说。尽管我从来没有让它工作过……)