【讲座笔记】李宏博副教授:约束满足问题建模与求解 CCF-Talk

量子麻小
2024-09-20 10:50:48
运筹优化
论文精读与讲座笔记



讲座时间:2024年7月24日


讲座组织:中国计算机学会


主讲人:李宏博 副教授


 



问题实例


经典问题实例:n皇后问题



在一个n * n的国际象棋棋盘上,放置n个皇后,使得任意两个皇后之间不能互相攻击。横向、纵向、对角线、反对角线只能有一个皇后。


一般来说,手工求解,4皇后可以解出来;8皇后费点力气也可以解出来;但是100皇后基本上就无法手动求解了。


解决方法基本上就是一个个试。


经典问题实例:旅行商问题



给定n个城市和任意两个城市之间的距离,寻找一种周游方案从某个城市出发,最终回到这个城市,并且每个城市经过一次,使得旅行的总距离最短。


如何解决这个问题?


● 尝试所有的可能性


● n!种可行方案


● 在距离矩阵中每次选择距离最近的两个城市连接?


    ○ 012430距离37


    ○ 014230距离23


 


以上两个问题如何用同一套算法进行解决?


— —约束程序设计


 


约束程序设计



传统的程序设计


● 为解决某些特定问题,使用程序设计语言告诉计算机算法的每一个执行步骤


● 计算机执行程序,解决问题。


高级的约束程序设计


● 为解决某些特定问题,使用约束程序设计语言(建模)告诉计算机待解决的问题描述


● 计算机调用约束求解器来求解所描述的问题。


 



约束程序设计优点:


● 问题描述能力强:现有约束求解器可提供多种多样的约束类型。


● 约束程序设计是求解离散组合搜索问题的通用方法。


● 使用约束程序设计解决离散组合搜索问题,用户只关注如何将问题描述告诉计算机,即用户只关注问题建模


● 用户建模完成后,求解器进行自动求解。求解器的求解算法是由科研人员进行设计研究,即科研人员主要关注约束求解算法


 


求解算法


● 完备算法(也叫精确算法)


    ○ 回溯搜索:求解约束满足问题


    ○ 分支限界搜索:求解约束优化问题


● 非完备算法:主要使用启发式方法求解约束优化问题


    ○ 贪婪搜索


    ○ 局部搜索


    ○ 智能计算方法:遗传算法、蚁群算法......


:完备算法与非完备算法互补


 


完备算法 VS 非完备算法


● 完备算法


  ○ 约束满足问题


    ■ 若有解,算法终止时可找到可行解


    ■ 若无解,算法终止时可证明无解。


  ○ 约束优化问题


■ 算法终止时可找到最优解,并且证明解的最优性。


  算法可能无法在有效时间内终止


● 非完备算法:主要解决约束优化问题


 可能快速找到一个高质量解,甚至是最优解


  无法保证一定找到最优解,无法证明解的最优性


  ○ 当优化问题约束比较复杂,可行解难找,非完备算法可能无法找到可行解


对比来看,非完备算法可以找一个高质量的解,但不一定是最优解。那么如果找到最优解一定是使用完备算法,但是完备算法无法在有效时间终止的问题,如何解决呢?个人认为简单粗暴的一点,提高算力即可。比如说用传统计算机需要计算24个小时,用量子计算机的超高算力,可能毫秒级就可以出来结果。


 



分支限界搜索 与 向溯搜索


● 分支限界搜索


1.  先调用回溯搜索找到一个可行解S0,然后在问题中添加一个约束,使得下一个可行解的优化目标比obj(S0)更好;


2.  寻找新的可行解,重复1过程,直到某次更新上界后没有找到可行解;


3.  最后一次找到的可行解即是最优解。


● 举例说明旅行商问题


1.  不考虑优化目标,找一个可行方案S0,obj(So)=100


2.  加入约束条件,令obj<100,寻找下一个可行方案,得S1,obj(S1)=90。


3.  加入约束条件,令obj<90,寻找下一个可行方案Si:


4.  若有可行方案,重复3,若无可行方案,则上一个Si是最优解


 



 


约束满足问题




 


约束



 


全局约束举例



 


约束程序设计(8皇后问题)



 


约束传播


● 用户建模后的约束满足问题,有d"种可能的取值组合,其中n是变量个数,d是变量的值域大小。


● 回溯搜索算法本质上是穷举所有取值组合


● 约束传播算法通过推理对搜索过程进行剪枝,减少需探索的组合数。



 


约束传播与局部相容



 


四皇后问题穷举搜索树



 


四皇后问题的回溯搜索过程



 


约束求解


约束求解的核心技术


● 搜索策略


○ 理想情况下,每次为变量赋值时,恰好选到在解中的那个赋值


● 约束传播算法


○ 约束传播算法的剪枝能力


○ 约束传播算法本身的实现代价


● 冲突记录


● 重启搜索


 


搜索策略-失败优先原则


失败优先原则:尽量选择最有可能导致失败的变量进行赋值


● 最小值域(dom):每次选择值域最小(候选值最少)的变量进行赋值


● 最大度(deg):每次选择连接约束最多的变量进行赋值


● dom/deg:每次选择该比值最小的变量进行赋值


● 基于影响力的启发式、基于活跃度的启发式、基于冲突历史的启发式、失败加权度启发式、基于失败率的启发式......


 


约束求解的搜索策略




最小值域



 


失败加权度变量启发式



 


基于失败的变量启发式(李教授研究)



 



1742
1
0
1
关于作者
相关文章
  • 国内量子计算机完美求解D-wave应用案例(内含万能转化代码) ...
    D-Wave是全球首个商业量子计算机供应商,也堪称量子计算领域的龙头。截至 今年,已经开发了数百 ...
    了解详情 
  • 离散优化问题之三国招兵
    东汉末年分三国,烽火连天不休。刘关张桃园结义,招兵志平暴乱。 兵源 冯家村刘家村赵 ...
    了解详情 
在本版发帖返回顶部
快速回复 返回顶部 返回列表
玻色有奖小调研
填写问卷,将免费赠送您5个100bit真机配额
(单选) 您是从哪个渠道得知我们的?*
您是从哪个社交媒体得知我们的?*
您是通过哪个学校的校园宣讲得知我们的呢?
取消

提交成功

真机配额已发放到您的账户,可前往【云平台】查看