当前课程知识点:算法设计与分析 >  8 NP and Computational Intractability >  8.8 Numerical Problems >  Numerical Problems

返回《算法设计与分析》慕课在线视频课程列表

Numerical Problems在线视频

Numerical Problems

下一节:co-NP and the Asymmetry of NP

返回《算法设计与分析》慕课在线视频列表

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 Introduction of Algorithm

-1.1 Introduction

--Introduction

-1.2 A First Problem: Stable Matching

--A First Problem: Stable Matching

-1.3 Gale-Shapley Algorithm

--Gale-Shapley Algorithm

-1.4 Understanding Gale-Shapley Algorithm

--Understanding Gale-Shapley Algorithm

-Homework1

-Lecture note 1

--Lecture note 1 Introduction of Algorithm

2 Basics of Algorithm Analysis

-2.1 Computational Tractability

--Computational Tractability

-2.2 Asymptotic Order of Growth

--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 Graph

-3.1 Basic Definitions and Applications

--Basic Definitions and Applications

-3.2 Graph Traversal

--Graph Traversal

-3.3 Testing Bipartiteness

--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

--Lecture note 3 Graph

4 Greedy Algorithms

-4.1 Coin Changing

--Coin Changing

-4.2 Interval Scheduling

--Interval Scheduling

-4.3 Interval Partitioning

--Interval Partitioning

-4.4 Scheduling to Minimize Lateness

--Scheduling to Minimize Lateness

-4.5 Optimal Caching

--Optimal Caching

-4.6 Shortest Paths in a Graph

--Shortest Paths in a Graph

-4.7 Minimum Spanning Tree

--Minimum Spanning Tree

-4.8 Correctness of Algorithms

--Correctness of Algorithms

-4.9 Clustering

--Clustering

-Homework4

-Lecture note 4

--Lecture note 4 Greedy Algorithms

5 Divide and Conquer

-5.1 Mergesort

--Mergesort

-5.2 Counting Inversions

--Counting Inversions

-5.3 Closest Pair of Points

--Closest Pair of Points

-5.4 Integer Multiplication

--Integer Multiplication

-5.5 Matrix Multiplication

--Video

-5.6 Convolution and FFT

--Convolution and FFT

-5.7 FFT

--FFT

-5.8 Inverse DFT

--Inverse DFT

-Homework5

-Lecture note 5

--Lecture note 5 Divide and Conquer

6 Dynamic Programming

-6.1 Weighted Interval Scheduling

--Weighted Interval Scheduling

-6.2 Segmented Least Squares

--Segmented Least Squares

-6.3 Knapsack Problem

--Knapsack Problem

-6.4 RNA Secondary Structure

--RNA Secondary Structure

-6.5 Sequence Alignment

--Sequence Alignment

-6.6 Shortest Paths

--Shortest Paths

-Homework6

-Lecture note 6

--Lecture note 6 Dynamic Programming

7 Network Flow

-7.1 Flows and Cuts

--Flows and Cuts

-7.2 Minimum Cut and Maximum Flow

--Minimum Cut and Maximum Flow

-7.3 Ford-Fulkerson Algorithm

--Ford-Fulkerson Algorithm

-7.4 Choosing Good Augmenting Paths

--Choosing Good Augmenting Paths

-7.5 Bipartite Matching

--Bipartite Matching

-Homework7

-Lecture note 7

--Lecture note 7 Network Flow

8 NP and Computational Intractability

-8.1 Polynomial-Time Reductions

--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

--Definition of NP

-8.5 Problems in NP

--Problems in NP

-8.6 NP-Completeness

--NP-Completeness

-8.7 Sequencing Problems

--Sequencing Problems

-8.8 Numerical Problems

--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 Approximation Algorithms

-9.1 Load Balancing

--Load Balancing

-9.2 Center Selection

--Center Selection

-9.3 The Pricing Method: Vertex Cover

--The Pricing Method: Vertex Cover

-9.4 LP Rounding: Vertex Cover

--LP Rounding: Vertex Cover

-9.5 Knapsack Problem

--Knapsack Problem

-Homework9

-Lecture note 9

--Lecture note 9 Approximation Algorithms

10 Local Search

-10.1 Landscape of an Optimization Problem

--Landscape of an Optimization Problem

-10.2 Maximum Cut

--Maximum Cut

-10.3 Nash Equilibria

--Nash Equilibria

-10.4 Price of Stability

--Price of Stability

-Homework10

-Lecture note 10

--Lecture note 10 Local Search

11 Randomized Algorithms

-11.1 Contention Resolution

--Contention Resolution

-11.2 Linearity of Expectation

--Linearity of Expectation

-11.3 MAX 3-SAT

--MAX 3-SAT

-11.4 Chernoff Bounds

--Chernoff Bounds

-Homework11

-Lecture note 11

--Lecture note 11 Randomized Algorithms

Exam

-Exam

Numerical Problems笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。