首页 > 解决方案 > 约束满足问题公式化

问题描述

通过定义一组变量和一组对这些变量的约束,我得到了以下需要将其表述为 CSP 问题的要求。但是,我在为我的问题制定约束和变量时遇到了麻烦。

一些信息: 问题的解决方案是一个赋值列表:变量[Var, A1, A2, A3] 在哪里,,是有效赋值的有序序列。VarA1A2A3

要求:

可用约束:

至今:

附加信息:

标签: pythonsearchconstraintsbacktrackingconstraint-programming

解决方案


  • 我们可以使用一个NValues范围是所有变量的约束,域是每个可能的赋值(为每个赋值创建一个约束)。这可确保在设置为上限和下限为 1 时分配所有值。

  • 我们可以使用 useNeq约束并稍作修改,通过为其提供有效分配的元组来确保正确的排序。

  • 我们可以通过传递 1 的下限和domain的上限来再次使用NValues约束来确保需求。k_assignmentKK_assignments

  • 以同样的方式,我们可以将NValues约束与域一起problem.first_assignments()用于第一次分配。另一个用域problem.valid_assignments()来填补空白。


推荐阅读