【发布时间】:2018-06-17 05:11:07
【问题描述】:
我正在使用 OR-Tools 约束编程工具解决几何问题。
谁能告诉我创建自定义约束的过程? 我不太了解恶魔,模型访问者行为......
另外,可以插入任何类型的约束吗?
提前谢谢你
【问题讨论】:
-
请详细说明您的问题:您要添加什么样的约束?您尝试了哪些方法,得到了哪些反馈?
-
我使用 Or-tools 在某些约束下生成多边形。我想知道是否可以使用其他库的函数创建自定义约束(我认为尤其是在我的情况下是 Boost,尤其是 Boost 几何)。考虑 (Xi, Yi) 多边形点的坐标。我想创建这种类型的约束: void AreaConstraint (Solver * solver, IntVar * X1, IntVar * Y1, IntVar * X2, IntVar * Y2, IntVar * X3, IntVar * Y3, IntVar * X4, IntVar * Y4, IntVar * X5, IntVar * Y5, IntVar * X6 , IntVar * Y6)
-
int64 x [] = {X1 -> Value (), X2 -> Value (), X3 -> Value (), X4 -> Value (), X5 -> Value (), X6 -> 值()}; int64 y [] = {Y1->Value(),Y2->Value(),Y3->Value(),Y4->Value(),Y5->Value(),Y6->Value()}; -> 还有一个问题,我显然没有“权限”访问 Xi -> Value()。
-
我尝试创建一个与以下样式相同的类:class AllDifferentExcept : public Constraint { ....}
标签: constraint-programming or-tools