线性规划和约束满足问题的思考

本文探讨了线性规划和约束满足问题的区别与应用。线性规划用于寻找最优解,常见算法包括单纯形法;约束满足问题则侧重于找到所有满足条件的解,常用搜索算法如回溯法。CSP问题可通过开源库如Choco解决,而线性规划可借助GLPK等工具。两者目标不同,算法选择各异,适用于不同的优化和约束场景。
摘要由CSDN通过智能技术生成

本文写给对线性规划和约束满足问题的使用有困惑的朋友,如果你曾经在这方面存在一些疑问,这篇文章对你来说就再适合不过了,如果有对线性规划的解法感兴趣,那么也推荐你看一看我的思考~
*注:之前一直以为约束满足问题线性规划问题是一样的,才发现其实不是这样的,仔细想想我之前的理解原来存在着那么大的误会。虽然也不能说他们完全不一样,因为基本上模型一样,具体的算法却是不一样的。为什么呢,因为这两类问题的目标不一样。约束满足问题,一般用于求解满足约束问题的所有解,所以使用搜索算法比较好,而线性规划或者整数规划问题,一般用于找出满足某个条件的最优解,一般使用单纯形法和分支定界法等。

约束满足问题

约束满足问题的定义:

约束满足问题(CSP)是一类数学问题,它的定义为一组状态必须满足于若干约束或限制的对象(object)。 CSPs表示的是问题中的实体,有限数量、同类型的约束加之于变量之上, 这类问题通过 约束满足 方法解决。CSPs是人工智能和运筹学的热门主题, 这是因为它们公式中的规律提供了一个分析和解决很多不相关问题的共同基础。 CSPs通常表现出高复杂性, 需要结合启发式搜索 和联合搜索 方法来在合理的时间内解决问题。 —wiki

TSP旅行商问题在很长一段时间内的研究都被建模为约束满足问题,很多解法都是基于启发式搜索的。

CSPs的解决方案
确定域上的约束满足问题通常是利用搜索方法来解决的。 最常用的技术是回溯、约束传递,以及局部搜索的变种,这些算法也能很有效的解决则一类问题。

软件世界里是有很多用来解决约束满足问题的软件的,比如java库提供的开源choco引擎:

Choco is a Free Open-Source Java library dedicated to Constraint Programming.The user models its problem in a declarative way by stating the set of constraints that need to be satisfied in every solution.Then, the problem is solved by alternating constraint filtering algorithms with a search mechanism.

由上面的讲解可见choco的解题思路是基于搜索算法的。Choco是一个解决约束满足问题(CSP:Constraint Satisfaction Problems)的java库,用于解决约束规划。Choco的历史要追朔到1999年,一个叫做OCRE的项目,当时还是C+

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值