Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 图着色算法的实现_Algorithm_Graph_Graph Coloring - Fatal编程技术网

Algorithm 图着色算法的实现

Algorithm 图着色算法的实现,algorithm,graph,graph-coloring,Algorithm,Graph,Graph Coloring,我开始知道图形着色算法是NP完全问题。尽管如此,我还是想知道是否可以使用启发式方法实现,特别是区分图着色?如果可能的话,是否有合适的资源来了解这一点?如以下章节所述: 像这样的约束求解器能够解决广泛的图形着色问题 此示例演示了以下各项的着色: % Petersen Graph set of int: Colors = 1..3; set of int: Nodes = 1..10; set of int: Edges = 1..15; array[Edges] of Nodes: aFrom

我开始知道图形着色算法是NP完全问题。尽管如此,我还是想知道是否可以使用启发式方法实现,特别是区分图着色?如果可能的话,是否有合适的资源来了解这一点?

如以下章节所述:

像这样的约束求解器能够解决广泛的图形着色问题

此示例演示了以下各项的着色:

%  Petersen Graph
set of int: Colors = 1..3;
set of int: Nodes = 1..10;
set of int: Edges = 1..15;
array[Edges] of Nodes: aFrom = [ 1, 2, 3, 4, 1, 1, 2, 3, 4,  5, 6,  7, 7,  8, 6 ];
array[Edges] of Nodes: aTo   = [ 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 8, 10, 9, 10, 9 ];

array[int] of string: colorName = [ "red", "green", "blue", "purple", "yellow", "brown", "black" ];

array[Nodes] of var Colors: nodeColor;

constraint
  forall(e in Edges) (
      nodeColor[aFrom[e]] != nodeColor[aTo[e]]
  );

solve satisfy;

output [ show(colorName[nodeColor[n]]) ++ "\n" | n in Nodes ];