* 第8章 流塑法 8.2.1 图着色问题 8.2.1 图着色问题 图着色问题描述为:给定无向连通图G V, E 和正整数m,求最小的整数m,使得用m种颜色对G中的顶点着色,使得任意两个相邻顶点着色不同。 由于用m种颜色为无向图G V, E 着色,其中,V的顶点个数为n,可以用一个n元组C c1, c2, …, cn 来描述图的一种可能着色,其中,ci∈ 1, 2, …, m 1≤i≤n 表示赋予顶点i的颜色。 例如,5元组 1, 2, 2, 3, 1 表示对具有5个顶点的无向图的一种着色,顶点1着颜色1,顶点2着颜色2,顶点3着颜色2,如此等等。 如果在n元组C中,所有相邻顶点都不会着相同颜色,就称此n元组为可行解,否则为无效解。 流塑法求解图着色问题,首先把所有顶点的颜色初始化为0,然后依次为每个顶点着色。在图着色问题的解空间树中,如果从根结点到当前结点对应一个部分解,也就是所有的颜色指派都没有冲突,则在当前结点处选择第一棵子树继续搜索,也就是为下一个顶点着颜色1,否则,对当前子树的兄弟子树继续搜索,也就是为当前顶点着下一个颜色,如果所有m种颜色都已尝试过并且都发生冲突,则流塑到当前结点的父结点处,上一个顶点的颜色被改变,依此类推。 设数组color[n]表示顶点的着色情况,流塑法求解m着色问题的算法如下: 算法8.1——图着色问题 1.将数组color[n
原创力文档

文档评论(0)