热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

搜索技术【广度优先搜索】简介分支限界法

搜索技术【广度优先搜索】-简介&分支限界法【简介】在图的应用中已讲过图的广度优先搜索,树上的广度优先搜索实际上就是层次遍历。首先遍历第1层,然后第



搜索技术【广度优先搜索】 - 简介 & 分支限界法

【简介】

在图的应用中已讲过图的广度优先搜索,树上的广度优先搜索实际上就是层次遍历。

首先遍历第1层,然后第2层……同一层按照从左向右的顺序访问,直到最后一层。一棵树如下图所示,

在这里插入图片描述

首先遍历第1层A;然后遍历第2层,从左向右遍历B、C;再遍历第3层,从左向右遍历D、E、F;再遍历第4层G。

【分支限界法】

分支限界法通常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。

首先将根节点加入活节点表中,接着从活节点表中取出根节点,使其成为当前扩展节点,一次性生成其所有孩子节点,判断对孩子节点是舍弃还是保留,舍弃那些得不到可行解或最优解的节点,将其余节点保留在活节点表中。再从活节点表中取出一个活节点作为当前扩展节点。重复上述过程,直到找到所需的解或活节点表为空时为止。每一个活节点最多只有一次机会成为扩展节点。活节点表的实现通常有两种形式:一种是普通的队列,即先进先出队列;另一种是优先级队列,按照某种优先级决定哪个节点为当前扩展节点。

根据活节点表的不同,分支限界法分为以下两种:队列式分支限界法和优先队列式分支限界法。

[解题秘籍]

① 定义解空间。

解空间的大小对搜索效率有很大的影响,首先要定义合适的解空间,确定解空间包括解的组织形式和显约束。解的组织形式规范为一个n 元组{x 1 ,x 2 ,…,xn },具体问题表达的含义不同。显约束是对解分量的取值范围的限定。

② 确定解空间的组织结构。

对解空间的组织结构通常用解空间树形象地表达,根据解空间树的不同,解空间分为子集树、排列树、m叉树等。

③ 搜索解空间。

分支限界法指按照广度优先搜索策略,一次性生成所有孩子节点,根据约束函数和限界函数判定对孩子节点是舍弃还是保留,如果保留,则将其依次放入活节点表中,活节点表是普通队列或优先队列。然后从活节点表中取出一个节点,继续扩展,直到找到所需的解或活节点表为空时为止。如果对该问题只求可行解,则只需设定约束函数即可;如果求最优解,则需要设定约束函数和限界函数。在优先队列分支限界法中还有一个关键问题,即优先级的设定:选择什么值作为优先级?如何定义优先级?因为优先级的设计直接决定算法的效率。






推荐阅读
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 深入解析国内AEB应用:摄像头和毫米波雷达融合技术的现状与前景
    本文作者程建伟,武汉极目智能技术有限公司CEO,入选武汉市“光谷3551人才计划”。文章详细探讨了国内自动紧急制动(AEB)系统中摄像头与毫米波雷达融合技术的现状及未来前景。通过分析当前技术的应用情况、存在的挑战以及潜在的解决方案,作者指出,随着传感器技术的不断进步和算法优化,AEB系统的性能将大幅提升,为交通安全带来显著改善。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • CSWS_E_ROB深度估计方法
    论文链接:https:arxiv.orgpdf1708.02287.pdf正文翻译概述……首先,我们把深度估计看做一种多类别的密集标记任务,然后与基于公式的 ... [详细]
  • 最近在看GitHub上的一个很火的项目是:ImageSharp。这是一个纯.netcore的图像处理库,没有使用其他的任何依赖。在看这个项目过程中激发了我对图像文件编码解码的兴趣。 ... [详细]
  • 双指针法在链表问题中应用广泛,能够高效解决多种经典问题,如合并两个有序链表、合并多个有序链表、查找倒数第k个节点等。本文将详细介绍这些应用场景及其解决方案。 ... [详细]
  • 本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • POJ3669题目解析:基于广度优先搜索的详细解答
    POJ3669(http://poj.org/problem?id=3669)是一道典型的广度优先搜索(BFS)问题。由于陨石的降落具有时间属性,导致地图状态会随时间动态变化。因此,可以利用结构体来记录每个陨石的降落时间和位置,从而有效地进行状态更新和路径搜索。 ... [详细]
  • 算法学习心得与经验总结
    在算法学习的过程中,我总结了一些宝贵的心得和经验。本文将重点探讨莫比乌斯反演技巧的应用,并提供详细的实例解析。通过不断的学习和实践,我逐步掌握了这一复杂但强大的工具。此外,文章还将分享一些实用的学习资源和参考资料,帮助读者更好地理解和应用这些算法。希望本文能为算法学习者提供有价值的参考和指导。 ... [详细]
  • 在探讨设计模式六大原则之二——里氏替换原则时,许多初学者可能会对其名称感到困惑。实际上,这一原则强调的是子类应当能够完全替代其基类,而不会影响程序的正确性。通过深入解析这一原则,我们可以更好地理解其在面向对象设计中的重要性和应用方法。本文将详细探讨里氏替换原则的理论基础及其在实际开发中的具体实践,帮助读者掌握这一关键设计模式原则。 ... [详细]
  • 模糊神经网络的训练策略与学习算法优化
    本文探讨了模糊神经网络的训练策略与学习算法优化,详细分析了基于FPGA和MATLAB的实现方法。通过改进的学习算法,提高了模糊神经网络在复杂环境下的适应性和准确性,为相关领域的研究者提供了有价值的参考和技术支持。 ... [详细]
  • Panabit应用层流量管理解决方案
    Panabit是一款国内领先的应用层流量管理解决方案,提供高度开放且免费的专业服务,尤其擅长P2P应用的精准识别与高效控制。截至2009年3月25日,该系统已实现对多种网络应用的全面支持,有效提升了网络资源的利用效率和安全性。 ... [详细]
  • 中文分词_中文分词技术小结几大分词引擎的介绍与比较
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了中文分词技术小结几大分词引擎的介绍与比较相关的知识,希望对你有一定的参考价值。笔者想说:觉得英文与中文分词有很大的区别, ... [详细]
author-avatar
wtc21232
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有