约束满足问题的介绍

约束满足问题

  约束满足问题在人工智能领域有着广泛的应用。比如新的学期教室的规划分配,飞机场跑道的占用情况,它们都涉及了约束条件。我们所熟知的经典的皇后问题、幻方问题都属于约束满足问题。约束满足问题可以分为二元约束满足问题和多元约束满足问题。其中,多元约束满足问题可以被划分为等价的二元约束满足问题。因而,研究二元约束满足问题是一个重要的研究方向。在已有的约束传播技术中,弧相容(AC)出现的最早,在求解中也应用的最为广泛。在BT算法中,维持弧相容算法(maintaining arc consistency,简称MAC)也被认为是处理大规模难解问题的最有效的一般方法。


 

约束可满足问题)约束可满足问题(CSP)<X, D, C> 包括3部分:
  变量集X= { x_1, x_2, ... x_n } 由n个变量组成;
  论域集D= { D(x_1), D(x_2), ... D(x_n) } 是变量域构成的集合,其中D(x_i)表示变量x_i对应的变量域;
  约束集合C= { c_1, c_2, ... c_e } 是由e个约束组成的约束集合。


如下为一个约束满足问题的示例:

<?xml version="1.0" encoding="UTF-8"?>

-<instance>

<presentation nbSolutions="?" name="?" maxConstraintArity="10" format="XCSP 2.0">This is a random instance generated from RBGenerator.</presentation>


-<domains nbDomains="1">

<domain name="D0" nbValues="3">1..3</domain>

</domains>


-<variables nbVariables="3">

<variable name="V0" domain="D0"/>

<variable name="V1" domain="D0"/>

<variable name="V2" domain="D0"/>

</variables>


-<relations nbRelations="2">

<relation name="R0" semantics="conflicts" nbTuples="6" arity="2">1 2|1 3|2 1|2 3|3 1|3 2|</relation>

<relation name="R1" semantics="conflicts" nbTuples="6" arity="2">1 1|2 1|2 2|3 1|3 2|3 3|</relation>

</relations>


-<constraints nbConstraints="2">

<constraint name="C0" arity="2" scope="V0 V1" reference="R0"/>

<constraint name="C1" arity="2" scope="V1 V2" reference="R1"/>

</constraints>

</instance>


此约束满足问题中有3个变量:x0,x1,x2

其中:x0的论域是{1,2,3}

            x1的论域是{1,2,3}

            x2的论域是{1,2,3}

约束由元组的形式给出,support给出的是支持元组,confilct给出的是不支持元组。

            约束c0={(1,2),(1,3),(2,1),(2,3),(3,1),(3,2)}

            约束c1={(1,1),(2,1),(2,2),(3,1),(3,2),(3,3)}

            c0和c1表示的都是不支持的元组


图示为此CSP。















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值