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

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

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



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

【简介】

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

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

在这里插入图片描述

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

【分支限界法】

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

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

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

[解题秘籍]

① 定义解空间。

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

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

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

③ 搜索解空间。

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






推荐阅读
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • CSWS_E_ROB深度估计方法
    论文链接:https:arxiv.orgpdf1708.02287.pdf正文翻译概述……首先,我们把深度估计看做一种多类别的密集标记任务,然后与基于公式的 ... [详细]
  • 最近在看GitHub上的一个很火的项目是:ImageSharp。这是一个纯.netcore的图像处理库,没有使用其他的任何依赖。在看这个项目过程中激发了我对图像文件编码解码的兴趣。 ... [详细]
  • 本文探讨了异步编程的发展历程,从最初的AJAX异步回调到现代的Promise、Generator+Co以及Async/Await等技术。文章详细分析了Promise的工作原理及其源码实现,帮助开发者更好地理解和使用这一重要工具。 ... [详细]
  • 知识图谱与图神经网络在金融科技中的应用探讨
    本文详细介绍了融慧金科AI Lab负责人张凯博士在2020爱分析·中国人工智能高峰论坛上的演讲,探讨了知识图谱与图神经网络模型如何在金融科技领域发挥重要作用。 ... [详细]
  • MySQL InnoDB 存储引擎索引机制详解
    本文深入探讨了MySQL InnoDB存储引擎中的索引技术,包括索引的基本概念、数据结构与算法、B+树的特性及其在数据库中的应用,以及索引优化策略。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • 深入探讨:Actor模型如何解决并发与分布式计算难题
    在现代软件开发中,高并发和分布式系统的设计面临着诸多挑战。本文基于Akka最新文档,详细探讨了Actor模型如何有效地解决这些挑战,并提供了对并发和分布式计算的新视角。 ... [详细]
  • 负载均衡基础概念与技术解析
    随着互联网应用的不断扩展,用户流量激增,业务复杂度显著提升,单一服务器已难以应对日益增长的负载需求。负载均衡技术应运而生,通过将请求合理分配到多个服务器,有效提高系统的可用性和响应速度。本文将深入探讨负载均衡的基本概念和技术原理,分析其在现代互联网架构中的重要性及应用场景。 ... [详细]
  • 深入解析OSI七层架构与TCP/IP协议体系
    本文详细探讨了OSI七层模型(Open System Interconnection,开放系统互连)及其与TCP/IP协议体系的关系。OSI模型将网络通信过程划分为七个层次,每个层次负责不同的功能,从物理层到应用层逐步实现数据传输和处理。通过对比分析,本文揭示了OSI模型与TCP/IP协议在结构和功能上的异同,为理解现代网络通信提供了全面的视角。 ... [详细]
  • 在探讨设计模式六大原则之二——里氏替换原则时,许多初学者可能会对其名称感到困惑。实际上,这一原则强调的是子类应当能够完全替代其基类,而不会影响程序的正确性。通过深入解析这一原则,我们可以更好地理解其在面向对象设计中的重要性和应用方法。本文将详细探讨里氏替换原则的理论基础及其在实际开发中的具体实践,帮助读者掌握这一关键设计模式原则。 ... [详细]
  • 模糊神经网络的训练策略与学习算法优化
    本文探讨了模糊神经网络的训练策略与学习算法优化,详细分析了基于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社区 版权所有