最大独立集问题

By sayhello 2018年8月5日

Given N sets of integers, remove some sets so that the remaining all sets are disjoint with one 另独身。 Find the optimal solution so that the number of sets remaining at the end is 最大值。 please explain your algorithm properly rather than pasting code .

辨析

信头布置的数学模型不普通的简略。,每一组都被以为是独身点。,万一两组说话中肯数字同一的,以后两组的点小眼面衔接。终极的,它将身材独身无向图。,咱们执意召唤为了图的最大孤独集。召唤独身图的最大孤独集执意求其补图的最团块。

最团块

在这里引见一下最团块

指定的独身无向图g=(v),E),万一你属于E,任性地,v)属于U,同时它属于E,U是G的完整子图。 G的完整子图U是G的最团块当且仅当U不计入在G的更大的完整子图中,即U执意最大的完整子图。

如下图:

此图的最团块有:

 

咱们怎样才能找到独身用图表现的?普通搜索将是N*2 ^ n的工夫复杂性。,因而你必要修剪,记载已确定的声明,DP DFS的思惟。先写法典。

#define SIZE 102
int 垫子[衡量] [面积]  /*图矩阵*/
int 面积[面积]
int mx;
int 堆栈[主体] [主体]
void 国际标准化组织 N,int num,int 提议)

    if(num==0){
        万一(提议) > MX)
            mx=step;
        }
        return ;
    }

    为(int) i=0;i=0;i--){
        int sz =0;
        为(int) j=i+1;j

上面简略地说一下思绪(混合物下标是从0开端的):
dp[i]表现从i到n-1说话中肯最团块的混合物数。
细目每个混合物,看一眼为了混合物,什么数字大于它的混合物。,记载这些混合物,以后递归式地处置混合物。。。。
什么修剪?
万一X混合物是组声明,K混合物的处置,判别
x+n-k <= mx

x+dp[k] <= mx
两个需要量。只不得不独身设置,何苦持续沉下。。

最大孤独集

最大孤独集执意其补图的最团块
poj1419是独身很一直的求最大孤独集的成绩,你可以试着去做

二分图的最大孤独集

图是独身二分图,这么它的最大孤独集执意由2字以上组成的学名工夫可以处理的成绩了 |最大孤独集| = |V|-|最大婚配数|
使宣誓:
设最大孤独插曲为U,最大婚配数为M,M发育的顶峰集中是EM。。
使宣誓u=v v-m m,咱们有两个提议来使宣誓u<=|V|-|M|和|U|>=|V|-|M|
1 先使宣誓 |U|<=|V|-|M|
M说话中肯两个起点站衔接起来。,各种的m金中都有独身点缺点U集。,因而M<=|V|-|U|
2 再次使宣誓u>v v-μm
授予(X),Y属于M
率先,咱们晓得必然的有独身Uü>=Ⅴ-ε。,这么,咱们能把M集中说话中肯起点站放到U中吗?
授予在(A),x),(b,y),(a,B)茫然的EM搜集
万一(a),B)衔接,有附近更大的竞赛。,否认
万一(a),B)断线,A->X-> Y-> B有条款新的提高路途,因而有独身更大的竞赛,否认
因而咱们可以担心将M说话中肯起点站放弃到U中必定不克衔接到无论哪些点。,因而|U|>=|V|-|EM|+|M|=|V|-|M|
因而,|U|=|V|-|M|

两部图的最小顶峰发育

界限:

寻觅点集,故,图中无论哪些边的至多独身起点站都状态该图中。。二分图的|最点缀集|=|最大婚配|

使宣誓:
战场界限,执意最大婚配说话中肯每个婚配的独身混合物执意最点缀集。
万一两个起点站茫然的打发,那最大婚配就会使发生|M|+1,发生否认。这么最点缀集<=|最大婚配|
咱们现时只看最大婚配M,万一最点缀集不足m,因而必然的有独身不克不及沾手的小眼面,故|最点缀集|>=|最大婚配|
因而有|最点缀集|=|最大婚配|
朝着普通图,NP 难点,朝着两部图,它可以是由2字以上组成的学名可解的。

最小手段和财力发育

界限:

独身有向无圈图,必要用最小的不削减的简略手段和财力发育各种的混合物。。

构图:

安排二分图,将原始详细规划说话中肯各种的混合物划分为两个把正式送入精神病院(x集中为i),y集中是i′,万一原始图中有I ->j的有向边,在两部图中,I->J的有向边是确立或使安全的。。终极最小手段和财力发育度=ⅤⅤ-μm

使宣誓:

上图中,对应左边的的DAG安排了向右的二分图,可以找到二分图的独身最大婚配M:1->3'' 3->4'',这么M的这两个婚配边什么对应于手段和财力说话中肯边?
两把正式送入精神病院图的边对应于DAG说话中肯有向边。:1 -3'对应于左图说话中肯1~3。,以这种方式,DAG的1具有吵闹混合物(3 Ma的独特的后续混合物)。,由于两个图的独身顶峰与独身边中间定位。!),因而1不克译成DAG路途的起点。,同一,3 -4'对应于左图说话中肯3~4。,3不克是完毕的起点,故,原始图中有4个顶峰。,负2个陆续顶峰,平静两个顶峰,DAG手段和财力的起点站,每个顶峰对应于独身手段和财力。。二分图中寻觅最大婚配M,执意找到了对应DAG说话中肯非手段和财力定局顶峰的最大数量,DAG是DAG最小的起点。,DAG的最小手段和财力数。
接下来,编译独身两点婚配图。递归式方式的法典:

#define SIZE 100

int 垫子[衡量] [面积]  /*图矩阵*/

int match1[SIZE];
int 婚配[面积]

int 色[面积]

bool 国际标准化组织 N,int u){
    为(int) i=0;i

再写独身二分图最大婚配的非递归式方式

#define SIZE 100

int 垫子[衡量] [面积] /*图矩阵*/

int match1[SIZE];
int 婚配[面积]

int 队列[主体]
int head,tail;

int 预[面积]

int maxMatch(int N){
    int ret = 0;
    memset(match1,-1,sizeof(match1));
    memset(match2,-1,sizeof(match2));

    为(int) i=0;i=0;j=t){
                            MatCH2[j]=k=PR[ J ]
                            t=match1[k];
                            match1[k]=j;
                        }
                    }
                }
        }
    }
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注