gpt4 book ai didi

java - Choco 中的解决方案之间可以创建约束吗?

转载 作者:行者123 更新时间:2023-12-01 04:21:58 26 4
gpt4 key购买 nike

我有这个问题:

在字母表 W = { A,C,G,T } 上查找长度为 8 的字符串(单词)集合 S,具有以下属性:

  1. S 中的每个单词都有来自 { C,G }

    的 4 个符号
  2. S 中的每对不同单词至少有 4 个位置不同。

我做了第一点。我说8个变量取值在1和4之间并且1和2必须出现在4个地方:

V = {x1, x2, x3, x4, x5, x6, x7, x8}
D = {1, 2, 3, 4}
C = {1 and 2 must appear in 4 places; I uses `ICF.among()` function}

现在,对于第二点,我不知道。也许我开始的方式是错误的。我不知道是否可以在解决方案之间创建约束。

我使用了choco3,代码如下:

Solver s = new Solver("My pb");
IntVar[] var = new IntVar[8];

for(int i=0;i<8;i++)


var[i]=VariableFactory.bounded("Letter"+i, 1, 4, s);

IntVar o = VariableFactory.bounded("Occurence", 4, 4, s);
int[] ind = {1,2};
int[] ind1={3,4};

s.post(ICF.among(o, var, ind));
s.findSolution();
do{
for(int i=0;i<8;i++){
System.out.print(s.getVar(i)+" ");
}
System.out.println();
}while(s.nextSolution());

最佳答案

当然,您可以在搜索过程中添加约束。甚至可以指定是否希望它们在回溯时被删除。

关于java - Choco 中的解决方案之间可以创建约束吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18814488/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com