算法 | 剪枝函数以及几种形式回溯法和分支限界法的区别算法特性分支限界法的思想分支限界法的基本步骤Prim和Kruscal回溯法的效率

devtools/2024/12/24 11:43:43/

what is 剪枝函数?

是对该问题能否得到最优解或者可行解的约束

限界函数:最优解

约束函数:可行解


回溯法和分支限界法的区别:

异:

回溯法分支限界法
一次生成/扩展一个结点一次生成所有的孩子结点
BFSDFS/最小耗费优先
找到所有解找到最优解

同:

均需要定义解空间,解空间的组织结构一般是树或者是图
在解空间图上搜索问题的解
在搜索前需要确定判断条件,该条件用来判断该结点是否为可行解
在搜索的过程中,对生成的结点需要进行判断,满足判断条件的保留,不满足的就舍弃

算法特性

输入、输出、确定、可行、有限 


分支限界法的思想:

从根开始,常以广度优先搜索的方式或者是最小耗费优先的方式搜索问题的解空间树,首先把根节点放入活节点表中,然后从活节点表中取出根节点,使其成为扩展节点,一次性生成扩展节点的孩子结点,舍弃那些导致不可行解或者不是最优解的节点,把其他合适的节点放入活节点表中,然后从活节点表中选取下一个扩展节点,一直搜索,直到找到解或者是活节点表为空。


分支限界法的基本步骤

  • 定义解空间
  • 确定解空间的组织结构(一般是树或者是图)
  • 搜索解空间(确定限界函数和约束函数),如果采用优先级队列分支限界法,还要确定优先级确定方式 

Prim和Kruscal

Prim:稠密图

Kruscal:稀疏图,边数较小


回溯法的效率

不依赖于:确定解空间的时间

依赖于:满足显约束的值的个数

计算约束函数的时间

计算限界函数的时间


http://www.ppmy.cn/devtools/48240.html

相关文章

Linux crontabs定时执行任务

文章目录 前言一、安装二、服务1. 启动crond服务2. 关闭crond服务3. 重启crond服务4.设置crond开机启动5. 禁用crond开机启动6. 查看crond是否开机启动7. 重新载入配置8. 查看crond运行状态 三、使用1. 查看当前用户的crontab2. 编辑用户的crontab3. 删除用户的crontab的内容 四…

假期抢票难?程序员手写一个超强抢票脚本,轻松购得出行票!

距离五一假期只剩几天的时间,据央视财经报道,从4月17日开始,5月1日的火车票就可以通过铁路12306网站核车站售票窗口购买了,售票通道一打开,5月1日上午的热门目的地车票,几乎瞬间售罄。 有平台预计&#xff…

二叉树小结

目录 简介 二叉树的种类 在实际开发中 评估二叉树的性能 搜索二叉树代码实现 二叉树堆的实现 红黑树简介 简介 二叉树是一种特殊的树,每个节点最多有两个子节点,通常被称为左子节点和右子节点。它是计算机科学中的一种基础且重要的树形结构&…

MongoDB使用$addToSet向数组中添加元素

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第66篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关…

扩展知识:RocketMQ 如何开启 ACL 验证

扩展知识:RocketMQ 如何开启 ACL 验证 RocketMQ 在 4.4.0 版本开始支持 ACL 功能,ACL 验证的主要作用就是保证消息的安全性,实现权限控制功能,比如控制可以发送和订阅消息的群体,如某些主题只能被订阅,某些…

【机器学习】机器学习引领AI:重塑人类社会的新纪元

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀机器学习引领AI 📒1. 引言📕2. 人工智能(AI)🌈人工智能的发展🌞应用领…

无码高清?Stable DIffusion教程 | 如何利用 Stable Diffusion webui 将图片变得更清晰?全方位对比4种放大方法!

大家好,我是大师兄 1、引言 “高分放大”(有时候也叫“超分放大”或“高清修复”)描述了在确保图像清晰度的前提下提升图片分辨率的过程。例如,将一张512 x 512的图片放大四倍,得到的就是2048 x 2048分辨率的图片&am…

为什么要选择AWS?AWS的优势有哪些?

亚马逊云服务器(Amazon Web Services,AWS)是全球领先的云计算服务提供商之一,其提供的云服务器是在全球范围内可用的弹性计算服务。对于很多用户来说,他们可能会担心亚马逊云服务器是否会对服务器的使用进行限制。以下…