回溯法【2-5】

news2024/11/19 14:51:00

假设一个推销员问题由下图定义,用回溯法求解
从1号结点出发的相应最短巡回路径(每个顶点刚好到达一次)。若用bestL表示搜索过程中产生的当前最优解,剪枝函数 L 设计为:

L = 已走过的路径长度 + 当前结点相关的最短边 + 所有未访问结点的相关最短边之和。

在这里插入图片描述

那么,走过结点:1->3->2时 ,bestL和 L的值分别是:A (如果先从2结点开始深度搜索的话)
A. 30和25

B. 30和28

C. 27和25

D. 27和28

在这里插入图片描述

回溯法是一种解决问题的递归算法。在回溯法中,我们尝试解决问题的每一部分,如果在解决当前部分时发现存在无法满足问题条件的情况,则回溯到上一步并尝试其他解决方案,直到问题被解决为止。在寻找最短路径时,我们可以将问题建模为一个图,其中每个点表示一个城市,每条边表示两个城市之间的距离。推销员需要从一个起点出发,经过所有城市后最终回到起点,所要走的路径就是我们需要寻找的最短路径。

对于剪枝函数L,它可以帮助我们在搜索过程中避免探索到不必要的路径,从而提高搜索效率。该函数的计算方式为:已走过的路径长度 + 当前结点相关的最短边 + 所有未访问结点的相关最短边之和。其中已走过的路径长度和当前结点相关的最短边都可以通过动态规划的方式进行计算,而所有未访问结点的相关最短边可以通过使用Dijkstra算法计算得出。

回溯法是一种搜索算法,可以在问题的解空间内找到满足特定限制条件的所有解。在搜索过程中,每次扩展一个子节点,会对当前状态进行判断,看看是否满足问题的限制条件。如果满足条件,则进行下一步扩展;如果不满足,则进行回溯,回退到上一个状态并重新选择其他路径继续搜索。

在回溯法中,当前最优解的定义是指:
在搜索过程中已经找到的所有解中,最接近目标解的解。
这个解不一定是全局最优解,但是对于当前搜索状态而言是最优的。
在搜索过程中,我们会不断尝试找到更加优秀的解,在找到更优解的同时也可能改变当前最优解的定义。
因此,在回溯法中,当前最优解是一个动态的概念。

具体来说,当我们在搜索过程中找到了一个新的解决方案时,我们会将其与当前最优解进行比较。如果新的解决方案更优,则更新当前最优解;否则,我们继续搜索其他可能的解决方案。

在某些情况下,我们可以使用剪枝技术来提高回溯法的效率。例如,在搜索过程中,如果当前正在搜索的解已经比当前最优解要差,那么我们可以直接跳过这个解,从而避免不必要的搜索。

回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/554098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT提示工程课程,吴恩达OpenAI

Principle 1: Write clear and specific instructions 使用明确的分隔符,是LLM知道这个某个单独的字段。 前提设置: import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv()) # read local .env fileopena…

LeetCode·每日一题·1080. 根到叶路径上的不足节点·递归

作者:小迅 链接:https://leetcode.cn/problems/insufficient-nodes-in-root-to-leaf-paths/solutions/2279048/di-gui-zhu-shi-chao-ji-xiang-xi-by-xun-g-7rfd/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系…

如何使用 VSCode 软件运行C代码

VSCode 的下载和扩展的配置可以参考文章:VSCode 的安装与插件配置。 VSCode 是很好用的编辑器,通过给其配置 MinGW-w64 插件就可以在它上面编译运行C代码了。 在没有配置 MinGW-w64 插件时,在 VSCode 中运行下面的代码后打印如下图所示。 这…

【C语言】C的编译过程预处理

目录 一、 程序的翻译环境和执行环境1、翻译环境预处理编译汇编链接 2、执行环境 二、预处理详解1、预定义符号2、#define#define 语法#define 定义宏#define 替换规则 3、#和##4、宏和函数对比 一、 程序的翻译环境和执行环境 在ANSI C的任何一种实现中,存在两个不…

为什么我们拥有庞大的语言模型,而Vision Transformers的规模却很小?

编者按:本文探讨了语言模型为何会比视觉模型的参数数量大得多的原因,并详细介绍了传统ViT训练方法在扩展时出现不稳定性的问题。 为此,本文介绍了如何改进架构以实现扩展,并讨论了实现模型最优状态的方法。同时,如何在…

Docker部署skywalking9.2版本

注意使用docker部署skywalking和使用tar包部署有点不一样OAP和UI需要分别部署原因是: SkyWalking UI 和 OAP 是 SkyWalking 的两个主要组件,它们之间的关系是前端和后端的关系。SkyWalking UI 是一个 Web 应用程序,它提供了一个漂亮的 UI 界面…

连续降税、人民币结算,巴西潜力爆发!开发细节见内!

本文内容 /CONTENT 01/中巴贸易现状 02/主要进口类别 03/通关和贸易政策 04/市场商业环境 05/本地公司的注册程序 06/巴西的主要节日 最近巴西降低关税,宣布人民币结算。想转市场的朋友不妨考虑巴西。 巴西作为南美洲最大的国家,当地人口占53%(…

ios音频焦点

音频焦点 两个或者两个以上的app可以同时向同一输出流播放音频。系统会将所有音频流混合在一起,但这样会给用户带来很大的困扰。为了避免所有音乐app同时播放,ios引入了“音频焦点”的概念。在ios中,音频焦点是操作系统为了管理音频硬件而引…

uvc驱动ioctl分析上

uvc驱动ioctl分析上 文章目录 uvc驱动ioctl分析上uvc_ioctl_querycap查询设备的能力uvc_ioctl_enum_fmt处理V4L2设备的枚举格式(enum_fmt)的ioctl操作uvc_ioctl_enum_fmt_vid_out枚举视频输出格式uvc_ioctl_enum_fmt_vid_cap枚举视频捕获格式 uvc_v4l2_g…

低代码到底有多爽?解放双手,推荐一款C端的低代码产品

前言引入 低代码(LowCode)就是一种可视化搭建系统,从字面意思来讲,一是可视化;二是少写代码。由此可见,低代码的出现是为了减轻和降低开发者的负担,让开发者减少重复劳动,避免资源和…

基于Angular+Nginx+Java+Spring开发的医院信息系统(HIS)源码

基于云计算技术的SaaS服务的医院信息系统源码 云HIS系统有效实现医疗数据共享与交换,解决数据重复采集及信息孤岛等问题。重构管理服务流程,重建统一的信息架构体系,重造病人服务环境,向不同类型的医疗机构提供SaaS化HIS服务解决…

如何在不损失质量的情况下压缩优化图像大小

您是否知道在将图像上传到 WordPress 之前对其进行优化会对您的网站速度产生巨大影响? 在开始时,许多初学者只是简单地上传图片,而没有针对网络对其进行优化。这些大图像文件会使您的网站变慢。 您可以通过将图像优化最佳实践作为常规博客程…

如何对高压功率放大器进行初步故障排查?

在使用测试仪器仪表进行实验检测的过程中,可能多少都遇到过这种情况:仪器开不了机无法点亮、设备幅值与理论值有较大差距、输出电压波形失真、设备异常过载、设备异响异味等等.... 作为测试仪器仪表的一种,功率放大器也可能会出现这种情况&a…

基于Java+SpringMvc+vue+element实现高效学生社团平台管理

基于JavaSpringMvcvueelement实现高效学生社团平台管理 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式…

基于Java+Springmvc+vue+element实现高校心理健康系统详细设计和实现

基于JavaSpringmvcvueelement实现高校心理健康系统详细设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源…

将java项目导出jar包,转成在windows上的可执行文件(没有java运行环境的电脑也可以)

前言 提示:直接将java运行环境一起打包没有java运行环境的电脑也可以: 近期在做一个java串口项目,需要将完整的项目导出.exe文件在没有java环境的电脑上运行,下面是详细的操作步骤以及遇到各种问题的解决办法.。 说明&#xff1…

HTTPS加密的简单介绍

前言 假设客户端给服务器发送HTTP请求,此时的数据都是明文的,如果黑客在这个过程中截取到了数据,进行篡改是非常容易的,这样就会造成严重后果. HTTPS和HTTP一样,都是应用层协议.只不过HTTPS在HTTP的基础上又加了一个加密层,保证传输数据的安全性. 下面我们就来探讨一下HTTPS是…

档案八防设备之新型产品多合一恒湿净化一体机

档案馆档案库房用加湿除湿除尘除酸净化一体机【囊括加湿机、除湿机、消毒机、净化机功能】 集成:加湿、除湿、消毒、净化四合一的智能一体机 一、简介 北京盛世宏博科技有限公司档案库房系列加湿除湿除尘除酸净化一体机是档案库房恒湿、和净化式,HB-670…

Oracle数据库中了locked1勒索病毒,用友nchome配置文件损坏该如何解除

随着互联网技术的不断发展,网络安全问题也越来越受到人们的关注。其中,勒索病毒是一种比较常见的网络安全威胁。最近很多集团企业在使用Oracle数据库的过程中,遭遇到了locked1勒索病毒的攻击,导致企业的用友nchome配置文件损坏&am…

Word控件Aspose.Words教程:在 PowerPoint 中使用变形过渡

Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。 Aspose API支持流行文件格式处理,并…