分支限界法求解迷宫问题

本文介绍了分支限界法的概念、设计思想,并详细阐述了如何运用该方法解决迷宫问题。通过构建合适的限界函数和活结点表,以广度优先策略搜索最优解。具体解题过程中,涉及了队列式和优先队列式两种策略,并提供了实际的迷宫题目及解题思路,最后总结了分支限界法在寻找最优解问题中的应用价值。
摘要由CSDN通过智能技术生成

分支限界法

定义

分支限界法类似与回溯法,也是一种在问题的解空间树上搜索问题的解法。但后者的目标是找到满足约束条件的所有解,而前者要求找到某种意义下的最优解(极大值、极小值)。
分支限界法采用广度优先的策略,依次搜索活结点的所有分支,也就是所有相邻结点。

设计思想

  1. 设计合适的限界函数,排除该活结点不可能产生最优解的孩子结点,来提高搜索效率。
  2. 组织活结点表,可采用队列式分枝限界法和优先队列式分枝限界法。
    (1)队列式:
    a.将根结点加入活结点队列
    b.从活结点队中取出队头结点,作为当前扩展结点
    c.对当前扩展结点,从左到右的产生它的所有孩子结点,用约束条件检查,把所有满足约束条件的孩子结点加入活结点队列
    d.重复步骤b和c,直到找到一个解或活结点队列为空为止
    (2)优先队列式:
    与(1)相似,每次先计算起始结点的优先级再将它加入优先队列
  3. 确定最优解的解向量
    方法一:对每个扩展节点保存从根节点到该结点的路径
    方法二:在搜索过程中构建搜所经过的树结构,利用双亲结点指针来实现对该树结构的保存

题目介绍

题目内容

定义一个二维数组,例如:

int maze[5][5] = {
0, 1, 0, 0, 0,
0, 1, 0, 1, 0,
0, 0, 0, 0, 0,
0,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值