📜  图形着色 |第一套(介绍和应用)

📅  最后修改于: 2022-05-13 01:57:54.090000             🧑  作者: Mango

图形着色 |第一套(介绍和应用)

图形着色问题是为受某些约束的图形的某些元素分配颜色。

顶点着色是最常见的图形着色问题。问题是,给定 m 种颜色,找到一种对图的顶点着色的方法,使得没有两个相邻的顶点使用相同的颜色着色。其他图形着色问题,如边缘着色(没有顶点与相同颜色的两条边发生关联)和面着色(地理地图着色)可以转化为顶点着色。

色数:为图形 G 着色所需的最小颜色数称为其色数。例如,以下可以着色最少 2 种颜色。

顶点着色

找到给定图的色数的问题是 NP Complete。

图形着色的应用:

图着色问题有大量的应用。

1)制定时间表或时间表:假设我们要为一所大学制定考试时间表。我们列出了不同的科目和注册每个科目的学生。许多科目会有共同的学生(同一批次,一些积压的学生等)。我们如何安排考试,以便不会同时安排一个普通学生的两次考试?安排所有考试最少需要多少时间段?这个问题可以表示为一个图,其中每个顶点都是一个主题,两个顶点之间的边意味着有一个共同的学生。所以这是一个图着色问题,其中最小时隙数等于图的色数。

2)移动无线电频率分配当频率分配给塔时,分配给同一位置的所有塔的频率必须不同。如何分配具有此约束的频率?最少需要多少个频率?这个问题也是图着色问题的一个例子,其中每个塔代表一个顶点,两个塔之间的边代表它们在彼此的范围内。

3)数独:数独也是图形着色问题的一种变体,其中每个单元代表一个顶点。如果两个顶点在同一行或同一列或同一块中,则它们之间存在一条边。

4)寄存器分配在编译器优化中,寄存器分配是将大量目标程序变量分配到少量CPU寄存器的过程。这个问题也是一个图形着色问题。

5)二分图:我们可以通过使用两种颜色对图进行着色来检查图是否为二分图。如果给定的图是 2-colorable 的,那么它是 Bipartite,否则不是。有关更多详细信息,请参阅此内容。

6)地图着色:国家或州的地理地图,没有两个相邻的城市不能被分配相同的颜色。四种颜色足以为任何地图着色(参见四色定理)

可以有更多的应用:例如下面的参考视频讲座在 1:18 有一个案例研究。
Akamai 运行由数千台服务器组成的网络,这些服务器用于在 Internet 上分发内容。他们几乎每周都会安装新软件或更新现有软件。不能同时在每台服务器上部署更新,因为可能必须关闭服务器才能进行安装。此外,更新不应该一次完成,因为这会花费很多时间。有几组服务器是不能一起拆的,因为它们有一定的关键功能。这是一个典型的图着色问题调度应用。事实证明,8 种颜色足以为 75000 个节点的图形着色。所以他们可以在 8 遍中安装更新。

我们很快将讨论解决图形着色问题的不同方法。
https://youtu.be/_sdVx_dWnlk
参考:
第 6 课 | MIT 6.042J 计算机科学数学,2010 年秋季 |视频讲座