问题描述:
对如图 1 所示的图,采用局部搜索算法,求其对应的 3 着色方案。
问题分析:
题目的目标是用3种颜色,将图1中的每个节点着色,且保证相邻节点间颜色不同;
a) 首先我们可以建立一个颜色集合 c o l o r [ 9 ] color[9] color[9],存储每个节点的颜色
b) 从前向后遍历每个节点,让每个节点从3种颜色中选择一种颜色,判断是否与其相邻节点冲突;若冲突,则选则下一种颜色,没有颜色可选时,回溯至上一节点,更改其颜色
c) 当所有节点都着色,则结束程序
伪代码:
i n p u t : g [ 9 ] [ 9 ] ← N o d e S e t , K = 3 input:g[9][9]←Node Set,K=3 input:g[9][9]←NodeSet,K=3
o u t p u t : c o l o r [ 9 ] output:color[9] output:color[9]
f o r e a c h foreach foreach n o d e node node i n in in N N N
c h o o s e choose