回溯法----图的着色问题
图的着色问题
1、问题描述
图的m-着色判定问题——给定无向连通图G和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色,是否有一种着色法使G中任意相邻的2个顶点着不同颜色?
图的m-着色优化问题——若一个图最少需要m种颜色才能使图中任意相邻的2个顶点着不同颜色,则称这个数m为该图的色数。求一个图的最小色数m的问题称为m-着色优化问题
2、找一个图的所有m-着色方案
procedure MCOLORING( k ) ∥这是图着色的一个递归回溯算法。图G 用它的布尔邻接矩阵GRAP H(1∶n , 1∶ n)表示∥ ∥它计算并打印出符合以下要求的全部解, 把整数1 , 2 , ⋯ ,m 分配给图中∥ ∥各个结点且使相邻近的结点的有不同的整数。k 是下一个要着色结点的下标∥ global integer m, n , X(1∶ n) boolean GRAPH (1∶n , 1∶n) integer k loop ∥产生对X( k)所有的合法赋值∥
repeat end MCOLORING |
在最初调用callMCOLORING(1)之前, 应对图的邻接矩阵置初值并对数组X置0值。在确定了X(1)到X(k-1)的颜色之后,过程NEXTVALUE从这m种颜色中挑选一种符合要求的颜色, 并把它分配给X(k) , 若无可用的颜色, 则返回X(k) = 0。
3、获取下一种颜色
procedure NEXTVALUE( k)
end NEXTVALUE |
4、例子
转载于:https://my.oschina.net/wangshengzhuang/blog/785140
回溯法----图的着色问题相关推荐
- 回溯法-图的m着色问题
本文参考https://blog.csdn.net/kevin_cyj/article/details/50385575 问题描述与思想概述 (1).问题的提出 给定无向连通图G和m种不 ...
- 回溯法求解图着色问题
回溯法求解图着色问题 #include <iostream> #include <cstdlib> using namespace std; #define n 5 #defi ...
- 图着色问题回溯法(最通俗易懂)
图着色问题描述: 对于给定无向连通图G=(V,E),求至少用多少种颜色对G中的顶点进行着色,使得任意两个顶点的着色不同. 回溯法描述: 回溯法的本质其实就是一种蛮力法,只是通过一定的方法可以使得蛮力法 ...
- 图的m着色问题——回溯法及其优化(变量排序MRV, 值排序MCV, 前向检查ForwardChecking, 智能回溯, 边相容,K阶相容)python C++实现
文章目录 图的m着色问题背景 背景知识 问题描述 回溯法的原理及其实现 回溯法基本思想 朴素回溯法解决图的m着色问题 回溯优化策略 回溯法优化--变量排序MRV 回溯法优化--值排序MCV 回溯法优化 ...
- DSt:数据结构的最强学习路线之数据结构知识讲解与刷题平台、刷题集合、问题为导向的十大类刷题算法(数组和字符串、栈和队列、二叉树、堆实现、图、哈希表、排序和搜索、动态规划/回溯法/递归/贪心/分治)总
DSt:数据结构的最强学习路线之数据结构知识讲解与刷题平台.刷题集合.问题为导向的十大类刷题算法(数组和字符串.栈和队列.二叉树.堆实现.图.哈希表.排序和搜索.动态规划/回溯法/递归/贪心/分治)总 ...
- 回溯法求解K图染色问题(java版)
回溯法:K图着色问题 问题描述: 问题分析: 伪代码: 局限性 具体实现 问题描述: 对如图 1 所示的图,采用局部搜索算法,求其对应的 3 着色方案. 问题分析: 题目的目标是用3种颜色,将图1中的 ...
- python回溯方法的模板_实例讲解Python基于回溯法子集树模板实现图的遍历功能
这篇文章主要介绍了Python基于回溯法子集树模板实现图的遍历功能,结合实例形式分析了Python使用回溯法子集树模板针对图形遍历问题的相关操作技巧与注意事项,需要的朋友可以参考下 本文实例讲述了Py ...
- 回溯法采用的搜索策略_17图的搜索算法之回溯法
回 溯 法 回溯算法实际是一个类似枚举的搜索尝试方法,它的主题思想是在搜索尝试中找问题的解,当不满足求解条件就"回溯"返回,尝试别的路径.回溯算法是尝试搜索算法中最为基本的一种算法 ...
- 【算法分析】实验 4. 回溯法求解0-1背包等问题
目录 实验内容 实验目的 实验结果 步骤1:描述与分析 步骤2:策略以及数据结构 步骤3 步骤4 步骤5 步骤6 实验总结 实验内容 本实验要求基于算法设计与分析的一般过程(即待求解问题的描述.算法设 ...
最新文章
- 新年新气象,2008年是我创业关键的一年!
- figure diagram illustrate exemplify profile
- boost::graph模块使用breadth_first_search()实现GGCL算法的测试程序
- SQL注入:4、数据库可写
- android 底部弹窗失效,Android实现从底部弹出Dialog(和PopWindow实现的效果同样)
- 【iOS】使用storyboard界面跳转报错:unrecognized selector sent to instance 0x7
- 《视觉开发专题》之 OpenGL 概述
- HDU1013 POJ1519 Digital Roots(解法三)【废除!!!】
- 【第一部分】04Leetcode刷题
- Java Socket聊天室
- php实现幻灯片效果,flash幻灯片切换效果代码,超简单超实用
- 参数构造错误 微信_微信公众号开发常见问题
- 大数据开发超高频面试题!大厂面试必看!包含Hadoop、zookeeper、Hive、flume、kafka、Hbase、flink、spark、数仓等
- centos 8 使用 nmcli 配置网桥Bridge(最后有踩坑过程)
- 给图像添加相框、圆形圆角显示图片、图像合成知识
- 码农:用git怕丢代码,每次都备份,同事:不学习的人真可怕!
- 5.5 jmeter组件—取样器
- FastDDS Getting Started (1) 运行HelloWorldExample并创建Fast DDS publisher
- 再现“换桥奇迹”|人大金仓助力大型运营商完成营销系统国产化升级
- Android Socket(ClientServer)