1. n个学生对m个宣讲会中的若干个感兴趣,如何安排宣讲会的时间(每个宣讲会持续的时间相同),使得每个学生对自己感兴趣的宣讲会时间不冲突,且宣讲会的总时间最短?
此问题可以转化成顶点着色问题。
把每个宣讲会看作是一些散布的点,对于每个学生,把他感兴趣的宣讲会之间两两相连,如:
学生A希望参加宣讲会1、2、3
学生B希望参加宣讲会1、3、4 则:
设宣讲会1、2、3、4的着色分别为c1、c2、c3、c2,4与2着同样的颜色,则可以这样安排宣讲会的时间,假设持续时间为一小时,宣讲会1在1点开,2在2点开,3在3点开,4与2时间一样在2点开。
2. 对N个区间进行着色,有重叠的区间不能着同样的颜色。
可转化为顶点着色问题,但顶点着色问题是NP的,至今没有一个已知的好算法,所以对图的色数进行估计以及在寻找使用的颜色数“不太大”的情形下顶点着色的某些方法又有非常重要的意义。于是顶点着色的贪婪算法应运而生。
顶点着色的贪婪算法是按顺序取第一个可用的颜色而忽略对以后的顶点可能会产生的后果。使用正整数对顶点着色,因此可以谈论一种颜色小于另一种颜色了。
(1) 色数
设G =(V,E)是一个图,G的顶点着色就是G的每个顶点指定一种颜色,且使得相邻顶点有不同的颜色。如果这些颜色选自于一个 k 种颜色的集合而不管 k 种颜色是否都用到,那么顶点着色称为 k-顶点着色,简称为k-着色</