分布式算法 3 最大独立集
2015-04-07 20:13
218 查看
独立集就是指:
图G=(V,E)中,I是G中的一个子集,如果I中任意两个点之间不存在e属于E,则I就是独立集。
如果无法加入G中的任意一个点使得I依然保持独立集,那么I就是最大独立集。(最大独立集并不要求其中包含的点要最多,也就是说一个图G可以有多个最大独立集,例子:下图,白色和黑色都是最大独立集)
计算最大独立集的算法lubyMIS算法:(一种随机化算法,有一定的概率(概率趋向于0)无法收敛)
多次迭代:每次迭代从G中选择出一个独立集 I` ,然后从图G中删除这个独立集的点和与这些点相邻接的点。然后重复这一过程,每次选出来的I`都合并入独立集I,直到G变为空。我们就得到了最大独立集I
每次选出独立集 I` 的算法:
假设有n个进程节点
每个进程都在0-n^4中选择一个数字,作为自己的val,(有较高的概率每个进程的val不同),并把这个数字发向相邻节点。
如果一个进程i,val(i)比自己的相邻节点的val都大,它就标记自己为winner。否则就标记自己为loser。
winner把自己是winner的消息发向自己的邻居,这样所有的loser就知道自己哪些邻居是winner
loser把自己是loser的消息发向自己的邻居,这样所有的winner就知道自己的哪些邻居是loser
所有的winner从图G中被删除,成为了 I` 。所有和winner相邻的loser以及相关的边也被从G中删除。
图G=(V,E)中,I是G中的一个子集,如果I中任意两个点之间不存在e属于E,则I就是独立集。
如果无法加入G中的任意一个点使得I依然保持独立集,那么I就是最大独立集。(最大独立集并不要求其中包含的点要最多,也就是说一个图G可以有多个最大独立集,例子:下图,白色和黑色都是最大独立集)
计算最大独立集的算法lubyMIS算法:(一种随机化算法,有一定的概率(概率趋向于0)无法收敛)
多次迭代:每次迭代从G中选择出一个独立集 I` ,然后从图G中删除这个独立集的点和与这些点相邻接的点。然后重复这一过程,每次选出来的I`都合并入独立集I,直到G变为空。我们就得到了最大独立集I
每次选出独立集 I` 的算法:
假设有n个进程节点
每个进程都在0-n^4中选择一个数字,作为自己的val,(有较高的概率每个进程的val不同),并把这个数字发向相邻节点。
如果一个进程i,val(i)比自己的相邻节点的val都大,它就标记自己为winner。否则就标记自己为loser。
winner把自己是winner的消息发向自己的邻居,这样所有的loser就知道自己哪些邻居是winner
loser把自己是loser的消息发向自己的邻居,这样所有的winner就知道自己的哪些邻居是loser
所有的winner从图G中被删除,成为了 I` 。所有和winner相邻的loser以及相关的边也被从G中删除。
相关文章推荐
- HDU 3829 - Cat VS Dog【二分图最大匹配最大独立集】
- 【POJ】2771 Guardian of Decency 最大独立集
- 【最大独立集】HDU - 3829 Cat VS Dog HDU - 3829
- hdu1569 方格取数(2) 最大点权独立集=总权和-最小点权覆盖集 (最小点权覆盖集=最小割=最大流)
- hdu 4859 最大点权独立集的变形(方格取数的变形)
- hdu1520 Anniversary party(最大独立集 树形dp)
- POJ 2771 Guardian of Decency【二分图最大独立集】
- HDU 1068 Girls and Boys 最大独立集
- HOJ 2713 Matrix1 [网络流] 最大点权独立集问题
- 【COGS】746 [网络流24题] 骑士共存 最大独立集
- POJ3398Perfect Service[树形DP 树的最大独立集变形]
- pku 1466 Girls and Boys 最大独立集 解题报告
- poj 2724 最大独立集
- [网络流24题] 方格取数问题 (最大权独立集---网络最小割)
- 无向图的最大独立集和最大团
- hdu1068 Girls and Boys(最大点独立集)
- 二分图中对最小顶点覆盖、最小边覆盖、最大独立集的理解
- HDU 3829 Cat VS Dog(二分图最大独立集)
- kuangbin专题十 HDU3829 二分图+最大独立集
- hdu 2458 Kindergarten (最大独立集)