Constraing编程求解器(gecode)的图形建模

时间:2016-11-25 08:31:42

标签: constraint-programming gecode

问题:给定标记的(1..n)无向图,在Gecode中创建一个模型,用于查找具有给定序列度的超图:

困难:主要的困难是找到精确的模型来准确地表达它的度数:

为什么不选择邻接矩阵?因为图形往往很大而且稀疏

为什么不是边缘列表?我们要添加边缘,但是我们不知道它们中有多少,CP需要预定义数量的变量(我是对的吗?)

为什么不将邻接列表?建模问题作为集合列表我们需要为所有i推动约束,j :(在[i]< => i中的j在[ j])

1 个答案:

答案 0 :(得分:2)

使用"邻接列表提供的可能性"可能是最好的。

你担心的是你将需要许多传播者在这些集合之间进行通道;但是,Gecode包含一个特殊的通道传播器,用于在集合之间进行通道:http://www.gecode.org/doc-latest/reference/classGecode_1_1Set_1_1Channel_1_1ChannelSet.html。这个传播器完全按照你描述的方式进行通道,并且应该最大限度地减少保持集合一致的工作量。