随机收缩算法
最近学习Tim Roughgarden 的Algorithm课程,就写一下笔记吧。
一些基本定义
图(graph)
一个图由两部分组成:顶点(vertex)和边(edge)。顶点集用V表示,边集用E表示。
图可以分为有向图和无向图。
割(cut)
一个图(V,E)的割指的是对图(V,E)的顶点集的一个分割,使得顶点集V分为两个非空子集A和B。
一个连通图的割的数量为 22 – 2个。
连接边(crossing edge)
- 对无向图来说,连接边指的是边的两个顶点分别在A或B中。
- 对有向图来说,连接边指的是头在B中,尾在A中。
最小割问题
输入:一个无向图G=(V,E).
输出:图的一种割法,使得连接边的数量最少。
Random Contraction Algorithm
如其名,这是一个随机算法,由Karger在上世纪90年代初提出。其基本思想如下: