问题描述
我正在解决这个问题。我有两个决策变量 x 和 y。对于 x 中的相同值以及 y 中相应的相同值,我必须计算该值在 y 中的出现次数。 我试图实现它。但我怀疑功能是否符合预期。
我的代码
set of int: x = 1..4;
set of int: y = 1..3;
set of int: a = 1..10;
set of int: b = 1..5;
%Decision variables
array[x,y] of var a: recordA;
array[x,y] of var b: recordB;
constraint forall(i in x ) (
alldifferent([recordB[i,j] | j in y])
);
constraint forall(i in x ) (
alldifferent([recordA[i,j] | j in y])
);
%constraint forall(i,k in x,j in y where i<k /\ recordB[i,j]=recordB[k,j]) (
% forall(i,j in y where recordA[i,j]=recordA[k,j])(
% count(recordA,recordA[i,j])
%);
OR
%Maybe something like this
%constraint forall(i in x,j in y,m in b)(
% count(col(recordA,j),count(col(recordB,m))
% );
这个想法是对于每个 recorB 和每个 recordA,遍历所有的 y(对于所有的 x)并计算有多少值出现在对应的相同 recordA 的相同 recordB 中。
例如-对于记录B中的值r1->记录A中出现的值r2的计数。
在这种情况下,recordB 在 recordB[1]、recordB[6] 和 recordB[11] 处出现了 3 次值为 4 相应地,recordA 在 recordA[1]、recordA[6] 处有两次值 5,但在 recordA[11] 处值为 1。
我想在记录A对应的记录B中计算这些相同值的出现次数。
并且recordA的每一行都是唯一的 而recordB的每一行都是唯一的
感谢您的建议
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)