什么是Constraint Programming(CP)

约束规划(CP)是一种用于处理离散变量约束满足和优化问题的技术,它扩展了逻辑编程的能力,通过演绎推理减少搜索空间。CP涉及使用数学/逻辑模型编码约束,并允许应用定制的搜索策略来寻找解决方案。约束满足问题(CSP)关注的是在一组变量和约束中找到满足所有条件的解,变量可以是布尔型、整数型等,约束则包括数学运算、关系等。解决CSP时,目标是为每个变量分配合适的值以满足所有约束。
摘要由CSDN通过智能技术生成

约束规划(Constraint Programming)

  • 一种用于制定和解决离散变量约束满足或约束优化问题的方法,该方法系统地采用演绎推理来减少搜索空间并允许各种各样的约束。
  • CP通过应用更强大的搜索策略和使用特定问题知识控制其设计的能力,扩展了逻辑编程(logic programming)的能力。

CP涉及使用数学/逻辑建模语言对公式进行编码,并允许用户应用广泛的搜索策略,包括用于查找解决方案的定制搜索技术。CP在公式化能力和解决方案方法方面非常灵活,但需要声明式逻辑编程和开发良好搜索策略的技能。

 

CP的核心——约束满足问题(Constraint Satisfcation Problem)

  • 给定一组离散变量,加上有限域,以及涉及这些变量的一组约束,可以找到满足所有约束的解。
  • 在约束满足问题中,变量可以采用不同的类型,包括:布尔型、整数型、符号型、集合元素和集合子集。
  • 约束的种类:
    • 数学运算:C = s + p (completion time= start time+ processing time)
    • 析取:tasks J and K must be done at different times
    • 关系型:at most five jobs to be allocated at machine R5O
    • 直率表示:only jobs A, B, and E can be processed on machine Y5O
  • 一个CSP可以包含各种各样的运算符:
    • =,<,>,≥,≤,≠
    • subset, superset, union, member
    • (Boolean OR), (Boolean AND)
    • (implies), (iff)
    • 除了这些约束之外,CP研究人员还开发了特殊目的的约束,可以有效地实现上述类型的约束的组合
  • CSP的(可行)解决方案是将其域中的值分配给每个变量,以满足问题的每个约束。在处理CSP时,我们可能只想确定一个或多个解决方案。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值