当前课程知识点:算法设计与分析 > 8 NP and Computational Intractability > 8.8 Numerical Problems > Numerical Problems
我们再来看几个关于数的问题
先来看子集和问题
它定义为给定一些自然数w_1,…,w_n
和一个整数W
是否存在一个子集其中元素和为W
比如给定集合中包含了10个数
W=3754
可以验证
1+16+64+256+1040+1093+1284=3754
因此 这是一个是实例
需要注意的是
对于算数问题
输入的整数用2进制进行编码
我们的规约
必须可由输入规模的多项式所控制
我们证明
3-SAT问题多项式规约为子集和问题
给定3-SAT问题的实例Φ
我们构建子集和问题的实例使得
它是是实例当且仅当Φ是适定的
令3-SAT问题的实例Φ有n个变量
k个分句
我们构建2n+2k个10进制整数
每个整数有n+k位
构建的过程我们通过一个例子来展示
Φ有3个变量x,y,z
3个分句C_1, C_2, C_3
我们建立一个12×6的表格
前3列对应3个变量
后3列对应3个分句
前6行对应变量和它的not
再来介绍表格中元素的值
以第3行为例
令(y,y)的位置为1
(y,x)和(y,z)的位置都是0
当y=1时
只有第一个分句可以满足
令(y,C_1)位置为1
(y,C_2)和(y,C_3)位置为0
依此类推
后6行中
前3列的元素都是0
后3列中每列有一个1和2
如图所示的方式出现
令每行中出现的数字
从左到右构成一个10进制的数
令W=111444
这个实例中输入数值不超过102n+2k
其输入规模不超过(2n+2k)log10
是一个多项式规约
我们证明Φ是适定的
当且仅当上例中存在一个子集和为W
我们还是以上面的例子来证明
一般的情况是同理的
先证必要性
当Φ是适定的
在真值分配中
如果x=1
那么取x行对应的数
如果x=0
那么取x not行对应的数
那么最高位一定取到一个1
其它以此类推
由我们的构造可知
对于分句所对应的列
一定至少取到一个1
最多三个1
不足4的部分
可由后面6行对应的数来补足
我们一定可以找到一组数
其和为W
再证充分性
对于上例中存在一个子集的和为W
那么由我们的构造可知
我们所选的数字进行加法时
每一位上都没有进位
因此每个变量和它的not必选中之一
这对应变量的赋值
对于后3列
后六行中的元素加起来等于3
因此前六行中至少要取一个1
对应为相应的变量赋值
使得该分句得到满足
因此我们得到了一组真值分配
再来看划分问题
给定一些自然数v_1,…,v_m
是否可以把它们划分为两个和相等的子集
我们证明子集和问题多项式规约为划分问题
令子集和问题的输入为w_1,…,w_n和W
构造划分问题的实例
它有m=n+2个元素
其中前n个元素v_1=w_1,v_2=w_2,…,v_n=w_n
还有2个元素 v_n+1=2Σw_i-W, v_n+2=Σw_i+W
容易看出
划分问题是是实例
当且仅当v_n+1和v_n+2
被分入不同的子集
并且其它元素被分入两个子集使得和相等
简单的计算可知
与v_n+1分入同一个子集的元素和恰为W
即当且仅当子集和问题的实例为是实例
Cook和levin在1971年左右
给出了第一个NP完全问题
随后Karp在1973年
证明了21个基础性的问题是NP完全的
目前 大量的问题被纳入了NP完全类
还有许多问题
有待我们进一步的研究和探索
-1.1 Introduction
-1.2 A First Problem: Stable Matching
--A First Problem: Stable Matching
-1.3 Gale-Shapley Algorithm
-1.4 Understanding Gale-Shapley Algorithm
--Understanding Gale-Shapley Algorithm
-Homework1
-Lecture note 1
--Lecture note 1 Introduction of Algorithm
-2.1 Computational Tractability
-2.2 Asymptotic Order of Growth
-2.3 A Survey of Common Running Times
--A Survey of Common Running Times
-Homework2
-Lecture note 2
--Lecture note 2 Basics of Algorithm Analysis
-3.1 Basic Definitions and Applications
--Basic Definitions and Applications
-3.2 Graph Traversal
-3.3 Testing Bipartiteness
-3.4 Connectivity in Directed Graphs
--Connectivity in Directed Graphs
-3.5 DAG and Topological Ordering
--DAG and Topological Ordering
-Homework3
-Lecture note 3
-4.1 Coin Changing
-4.2 Interval Scheduling
-4.3 Interval Partitioning
-4.4 Scheduling to Minimize Lateness
--Scheduling to Minimize Lateness
-4.5 Optimal Caching
-4.6 Shortest Paths in a Graph
-4.7 Minimum Spanning Tree
-4.8 Correctness of Algorithms
-4.9 Clustering
-Homework4
-Lecture note 4
--Lecture note 4 Greedy Algorithms
-5.1 Mergesort
-5.2 Counting Inversions
-5.3 Closest Pair of Points
-5.4 Integer Multiplication
-5.5 Matrix Multiplication
--Video
-5.6 Convolution and FFT
-5.7 FFT
--FFT
-5.8 Inverse DFT
-Homework5
-Lecture note 5
--Lecture note 5 Divide and Conquer
-6.1 Weighted Interval Scheduling
--Weighted Interval Scheduling
-6.2 Segmented Least Squares
-6.3 Knapsack Problem
-6.4 RNA Secondary Structure
-6.5 Sequence Alignment
-6.6 Shortest Paths
-Homework6
-Lecture note 6
--Lecture note 6 Dynamic Programming
-7.1 Flows and Cuts
-7.2 Minimum Cut and Maximum Flow
--Minimum Cut and Maximum Flow
-7.3 Ford-Fulkerson Algorithm
-7.4 Choosing Good Augmenting Paths
--Choosing Good Augmenting Paths
-7.5 Bipartite Matching
-Homework7
-Lecture note 7
-8.1 Polynomial-Time Reductions
-8.2 Basic Reduction Strategies I
--Basic Reduction Strategies I
-8.3 Basic Reduction Strategies II
--Basic Reduction Strategies II
-8.4 Definition of NP
-8.5 Problems in NP
-8.6 NP-Completeness
-8.7 Sequencing Problems
-8.8 Numerical Problems
-8.9 co-NP and the Asymmetry of NP
--co-NP and the Asymmetry of NP
-Homework8
-Lecture note 8
--Lecture note 8 NP and Computational Intractability
-9.1 Load Balancing
-9.2 Center Selection
-9.3 The Pricing Method: Vertex Cover
--The Pricing Method: Vertex Cover
-9.4 LP Rounding: Vertex Cover
-9.5 Knapsack Problem
-Homework9
-Lecture note 9
--Lecture note 9 Approximation Algorithms
-10.1 Landscape of an Optimization Problem
--Landscape of an Optimization Problem
-10.2 Maximum Cut
-10.3 Nash Equilibria
-10.4 Price of Stability
-Homework10
-Lecture note 10
--Lecture note 10 Local Search
-11.1 Contention Resolution
-11.2 Linearity of Expectation
-11.3 MAX 3-SAT
-11.4 Chernoff Bounds
-Homework11
-Lecture note 11
--Lecture note 11 Randomized Algorithms
-Exam