当前课程知识点:算法设计与分析 >  4 Greedy Algorithms >  4.4 Scheduling to Minimize Lateness >  Scheduling to Minimize Lateness

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

Scheduling to Minimize Lateness在线视频

Scheduling to Minimize Lateness

下一节:Optimal Caching

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

Scheduling to Minimize Lateness课程教案、知识点、字幕

还是排序问题

我们有一台生产设备

一个时刻能够处理一个工件

工件j需要t_j的加工时间

交工时间为d_j

如果工件j的开始时间为s_j的话

那么它的结束时间f_j

等于s_j加t_j

定义这个工件的延迟时间为

f_j-t_j与0这两个值取大

问题的目标为

对工件进行排序

使得工件的最大延迟时间最小

下面这个例子中

给定工件的加工时间和交工时间

按照这样的顺序进行加工

我们可以算出每个工件的结束时间

以及相应的延迟时间

可以看到 第4个工件的延迟时间为6

是最大的

这个算法对应的目标值为6

我们考虑用贪婪算法求解

这里有几种选择

我们可以把工件按照加工时间升序排列

可以把工件按照交工时间升序排列

考虑d_j-t_j

表示工件交工的急缓程度

也可以考虑把它按照升序进行排列

我们先来看几个例子

第一个例子中

我们采用最少加工时间优先的算法

算法会安排工件1加工

再安排工件2加工

对应的目标值为1

显然 这个例子的最优解是

先安排工件2加工

再安排工件1加工

目标值为零

如果考虑按照急缓程度进行排序的算法

看下面这个例子

贪婪算法会先安排工件2加工

再安排工件1加工

对应的目标值为9

这个例子的最优解是先安排工件1加工

再安排工件2加工

目标值为1

最后只剩下最早交工时间优先的算法

我们给出它的伪代码

我们把工件按照交工时间升序排列

然后依次在每个工件的结束时刻

安排下一个工件的加工

对于之前的例子

最早交工时间优先算法执行的结果如下

目标值为1

我们有一些简单的发现

一定存在没有空闲时间的最优排序

如果工件的加工之间有空闲出现的话

那么我们可以按照相同的顺序

把工件紧凑的安排加工

不会增加目标值

而我们的贪婪算法就是没有空闲时间的

在排序S中

我们定义逆序

一对工件i和j

满足i

但是j排在i的前面

我们就称它是一对逆序

贪婪算法所得到的解不存在逆序

如果一个排序存在逆序的话

那么一定存在着相邻的两个工件构成逆序

我们有这样的结论

交换相邻的逆序工件

会减少一个逆序

但是不会增加最大的延迟

令i,j构成一对相邻的逆序

l是交换之前的延迟

l'是交换之后的延迟

对于所有不等于i,j的工件k

交换前后的延迟是不变的

工件i的延迟显然不会增加

我们考虑工件j的延迟

交换后的延迟为它的完工时间f_j'-d_j

交换后j的完工时间

等于交换前工件i的结束时间

所以上式等于f_i-d_j

因为i=d_i

而这个值<=交换前的工件i的延迟

我们有所要的结论

最后我们来证明

贪婪算法是最优的

令S^*是一个最优排序

并且包含最少的逆序

我们来看看会发生什么

我们可以假设S^*没有空闲时间

如果S^*没有逆序的话

那么 它与我们算法返回的解是相同的

如果S^*有一个逆序

令i,j是一对相连的逆序

交换i和j

不会增加目标值

但是会严格下降逆序的数目

这与S^*的设定产生矛盾

通过这些例子我们可以看到

贪婪算法的一些特征

我们总是把一个问题分解为若干阶段

然后依次用一些

符合直觉的策略进行求解

最后返回问题的解

目前为止

我们设计和分析贪婪算法

采用了几种不同的方式

一种方式是

我们证明在算法执行的每一步

所得到的解不坏于其他任何的解

我们还采用交换的方法来证明

可以一步一步地把一个最优解

转换为我们贪婪算法所得到的解

而不影响解的质量

还有通过对问题结构的分析

我们分析解的边界

并证明算法得到的解达到了这个边界

从而是最优的

算法设计与分析课程列表:

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

Scheduling to Minimize Lateness笔记与讨论

也许你还感兴趣的课程:

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