许多组合优化问题都可以通过图论知识求解,现将图论中的基本概念进行梳理:
完全图:若一个图的每一对不同顶点恰有一条边相连,则称为完全图。
团:对于给定图G=(V,E)。V是图G的顶点集,E是图G的边集。图G的团就是一个两两之间有边的顶点集合。简单地说,团是G的一个完全子图。
极大团:如果一个团不被其他任一团所包含,即它不是其他任一团的真子集,则称该团为图G的极大团(maximal clique)。
最大团:顶点最多的极大团,称之为图G的最大团(maximum clique)。
独立集:独立集是指图G=(V,E)中两两互不相邻的顶点构成的集合。
极大独立集:如果K是G的独立集,且不是任何其他独立集的真子集,就为极大独立集。
最大独立集:极大独立集中元素最多的集合为最大独立集。
补图:图G的补图,通俗的来讲就是完全图Kn去除G的边集后得到的图Kn-G。
最大独立集中顶点数量= 补图的最大团中顶点数量。
最近需要求解最大独立集的程序:
matlab程序链接:
Bron-Kerbosch maximal independent set and maximal clique algorithms
点击打开链接顶点数大于40,就很难计算出来。因为这个算法时间复杂度很高。
Heuristic Algorithm for finding Maximum Independent Set
此算法采用了启发式算法,能够很快算出最大独立集。但是在某些环境下,得到的结果可能并不最优值。
JAVA图论工具箱
JGraphT