算法概论8.16题解

这里要分析的是算法概论第8章NPC的一道课后题。

题目

算法概论8.16题解_第1张图片
这里写图片描述

我的分析

  1. 题意
    答:这道题目是要求对于Experimental Cuisine问题可以在多项式时间解答是否可以表明3SAT问题也可以在多项式时间里面解决,Experimental Cuisine的案例中,我们可以从n种材料中选择材料进行搭配,其中 n×n 的矩阵表示了材料 i 和材料 j 搭配在一起的不和谐程度,越接近0即表示越能完美搭配,越接近1表示越不能搭配,最终的目的是在规定的不和谐程度的范围内,如何最大化的找到最多的可搭配的材料。

  2. 什么是3SAT?
    答:在3SAT中,问题的输入是一个子句(clause)的集合,每个子句包含不超过3个的文字(即变量,取值True或者False)。每个括号之间是合取(即取交集),括号里面是析取(即取并集),3SAT的问题核心在于,能否找到可满足赋值。

  3. 转换思路
    考虑怎么把一个3SAT实例转化成一个EXPERIMENTAL CUISINE问题,这里可以将独立集问题规约为Experimental Cuisine问题。

    规约过程:将Experimental Cuisine中的n种材料看作是图G中的 n 个点。令材料之间的不和谐程度变为0~1值,即0表示完美搭配,其余全为不搭配,不和谐程度矩阵变为01矩阵,不和谐程度值 p=0 ,那么独立集问题可以规约到Experimental Cuisine问题。

    证明过程:将 n×n 的不搭配矩阵看作是图G中各点的邻接情况如果 i j 不搭配,即两个点相邻,相应的矩阵中的值为1,如果两个点不相邻,即完美搭配,相应的矩阵中的值为0。给定一个图和整数g,独立集问题的目标就是求图中的g个相互独立的顶点,即任意两个这样的顶点间都不存在相连的边,那么令搭配材料的不和谐程度 p=0 ,那么求解的独立集的大小就是Experimental Cuisine 的最大可选材料数量,所以Experimental Cuisine即为独立集问题的规约问题,而独立集问题又是3SAT的规约问题,那么3SAT问题可以规约到Experimental Cuisine问题。如果Experimental Cuisine问题多项式时间可解,3SAT问题也可以。

你可能感兴趣的:(LeetCode)