秒懂算法 | 满m叉树模型——图的m可着色问题的回溯算法

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 实例图解该问题回溯算法求解过程。

image.png


实例图解该问题回溯算法求解过程。

01、实例构造

给定如图5-43所示的无向连通图和m=3。

image.png


图的m着色问题的搜索过程如图5-44~图5-49所示。从根节点A开始,节点A是当前的活节点,也是当前的扩展节点,它代表的状态是给定无向连通图中任何一个顶点还没有着色,如图5-44(a)所示。沿着x1=1分支扩展,满足约束条件,生成的节点B成为活节点,并且成为当前的扩展节点,如图5-44(b)所示。扩展节点B沿着x2=1分支扩展,不满足约束条件,生成的节点被剪掉。然后沿着x2=2分支扩展,满足约束条件,生成的节点C成为活节点,并且成为当前的扩展节点,如图5-44(c)所示。扩展节点C沿着x3=1,2分支扩展,均不满足约束条件,生成的节点被剪掉。然后沿着x3=3分支扩展,满足约束条件,生成的节点D成为活节点,并且成为当前的扩展节点,如图5-44(d)所示。

image.png


图5-44 图的m着色问题的搜索过程(一)

扩展节点D沿着x4=1分支扩展,满足约束条件,生成的节点E成为活节点,并且成为当前的扩展节点,如图5-45(a)所示。扩展节点E沿着x5=1,2分支扩展,均不满足约束条件,生成的节点被剪掉。然后沿着x5=3分支扩展,满足约束条件,生成的节点F是叶子节点。此时,找到了一种着色方案,如图5-45(b)所示。从叶子节点F回溯到活节点E,节点E的所有孩子节点已搜索完毕,因此它成为死节点。继续回溯到活节点D,节点D再次成为扩展节点,如图5-45(c)所示。

image.png


图5-45 图的m着色问题的搜索过程(二)

扩展节点D沿着x4=2和x4=3分支扩展,均不满足约束条件,生成的节点被剪掉。再回溯到活节点C。节点C的所有孩子节点搜索完毕,它成为死节点,继续回溯到活节点B,节点B再次成为扩展节点,如图5-46(a)所示。扩展节点B沿着x2=3分支继续扩展,满足约束条件,生成的节点G成为活节点,并且成为当前的扩展节点,如图5-46(b)所示。扩展节点G沿着x3=1分支扩展,不满足约束条件,生成的节点被剪掉;然后沿着x3=2分支扩展,满足约束条件,生成的节点H成为活节点,并且成为当前的扩展节点,如图5-46(c)所示。

image.png


图5-46 图的m着色问题的搜索过程(三)

扩展节点H沿着x4=1分支扩展,满足约束条件,生成的节点I成为活节点,并且成为当前的扩展节点,如图5-47(a)所示。扩展节点I沿着x5=1分支扩展,不满足约束条件,生成的节点被剪掉;然后沿着x5=2分支扩展,满足约束条件,J已经是叶子节点,找到第2种着色方案,如图5-47(b)所示。从叶子节点J回溯到活节点I,节点I再次成为扩展节点,如图5-47(c)所示。

image.png


图5-47 图的m着色问题的搜索过程(四)

沿着节点I的 x5=3分支扩展的节点不满足约束条件,被剪掉。此时节点I成为死节点。继续回溯到活节点H,节点H再次成为扩展节点,如图5-48(a)所示。沿着节点H的x4=2,3分支扩展的节点不满足约束条件,被剪掉。此时节点H成为死节点。继续回溯到活节点G,节点G再次成为扩展节点,如图5-48(b)所示。沿着节点G的x3=3分支扩展的节点不满足约束条件,被剪掉。此时节点G成为死节点。继续回溯到活节点B,节点B的孩子节点已搜索完毕,继续回溯到节点A,如图5-48(c)所示。

image.png


图5-48 图的m着色问题的搜索过程(五)

以此类推,扩展节点A沿着x1=2,3分支扩展的情况如图5-49所示。

image.png


图5-49 图的m着色问题的搜索过程(六)

最终找到6种着色方案,分别为根节点A到如图5-49(b)所示的叶子节点F、J、O、S、X、I的路径,即(1,2,3,1,3)、(1,3,2,1,2)、(2,1,3,2,3)、(2,3,1,2,1)、(3,1,2,3,2)和(3,2,1,3,1)。

目录
相关文章
|
7天前
|
算法
基于模糊PI控制算法的龙格库塔CSTR模型控制系统simulink建模与仿真
本项目基于MATLAB2022a,采用模糊PI控制算法结合龙格-库塔方法,对CSTR模型进行Simulink建模与仿真。通过模糊控制处理误差及变化率,实现精确控制。核心在于将模糊逻辑与经典数值方法融合,提升系统性能。
|
7天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
1月前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
数据结构与算法系列学习之串的定义和基本操作、串的储存结构、基本操作的实现、朴素模式匹配算法、KMP算法等代码举例及图解说明;【含常见的报错问题及其对应的解决方法】你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
80 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
83 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
1月前
|
算法
树的遍历算法有哪些?
不同的遍历算法适用于不同的应用场景。深度优先搜索常用于搜索、路径查找等问题;广度优先搜索则在图的最短路径、层次相关的问题中较为常用;而二叉搜索树的遍历在数据排序、查找等方面有重要应用。
36 2
|
1月前
|
机器学习/深度学习 人工智能 算法
青否数字人声音克隆算法升级,16个超真实直播声音模型免费送!
青否数字人的声音克隆算法全面升级,能够完美克隆真人的音调、语速、情感和呼吸。提供16种超真实的直播声音模型,支持3大AI直播类型和6大核心AIGC技术,60秒快速开播,助力商家轻松赚钱。AI讲品、互动和售卖功能强大,支持多平台直播,确保每场直播话术不重复,智能互动和真实感十足。新手小白也能轻松上手,有效规避违规风险。
|
1月前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习(8)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
1月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
1月前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!

热门文章

最新文章