4 -1
Chapter 3
The Greedy Method
4 -2
The greedy method
 Suppose that a problem can be solved by
a sequence of decisions. The greedy
method has that each decision is locally
optimal. These locally optimal solutions
will finally add up to a globally optimal
solution.
 Only a few optimization problems can be
solved by the greedy method.
4 -3
An simple example
 Problem: Pick k numbers out of n
numbers such that the sum of these k
numbers is the largest.
 Algorithm:
FOR i = 1 to k
pick out the largest number and
delete this number from the input.
ENDFOR
4 -4
Shortest paths on a special graph
 Problem: Find a shortest path from v0
to v3
.
 The greedy method can solve this problem.
 The shortest path: 1 + 2 + 4 = 7.
4 -5
Shortest paths on a multi-stage graph
 Problem: Find a shortest path from v0
to v3
in
the multi-stage graph.
 Greedy method: v0
v1,2
v2,1
v3
= 23
 Optimal: v0
v1,1
v2,2
v3
= 7
 The greedy method does not work.
4 -6
Solution of the above problem
 dmin(i,j): minimum distance between i and
j.
 This problem can be solved by the
dynamic programming method.
dmin(v0,v3)=min





3+dmin(v1,1,v3)
1+dmin(v1,2,v3)
5+dmin(v1,3,v3)
7+dmin(v1,4,v3)
4 -7
Minimum spanning trees
(MST)
 It may be defined on Euclidean space
points or on a graph.
 G = (V, E): weighted connected
undirected graph
 Spanning tree : S = (V, T), T ⊆ E,
undirected tree
 Minimum spanning tree(MST) : a
spanning tree with the smallest total
weight.
4 -8
An example of MST
 A graph and one of its minimum costs
spanning tree
4 -9
Kruskal’s algorithm for
finding MST
Step 1: Sort all edges into nondecreasing order.
Step 2: Add the next smallest weight edge to the
forest if it will not cause a cycle.
Step 3: Stop if n-1 edges. Otherwise, go to
Step2.
4 -10
An example of Kruskal’s algorithm
4 -11
The details for constructing MST
 How do we check if a cycle is formed when a
new edge is added?
 By the SET and UNION method.
 A tree in the forest is used to represent a
SET.
 If (u, v) ∈ E and u, v are in the same set, then
the addition of (u, v) will form a cycle.
 If (u, v) ∈ E and u∈S1
, v∈S2
, then perform
UNION of S1
and S2
.
4 -12
Time complexity
 Time complexity: O(|E| log|E|)
 Step 1: O(|E| log|E|)
 Step 2 & Step 3:
Where α is the inverse of Ackermann’s function.
|))||,(||(|O VEE α
4 -13
Ackermann’s function

⇒ A(p, q+1) > A(p, q), A(p+1, q) > A(p, q)
A(p, q) =





2q, p = 0
0, q = 0, p ≥ 1
2, p ≥ 1, q = 1
A(p-1, A(p, q-1)), p ≥ 1, q ≥ 2
A( , )3 4 222
2
=
 


65536 two’s
4 -14
Inverse of Ackermann’s function
 α(m, n) = min{Z≥1|A(Z,4m/n) > log2
n}
Practically, A(3,4) > log2
n
⇒α(m, n) ≤ 3
⇒α(m, n) is almost a constant.
4 -15
Prim’s algorithm for finding
MST
Step 1: x ∈ V, Let A = {x}, B = V - {x}.
Step 2: Select (u, v) ∈ E, u ∈ A, v ∈ B
such that (u, v) has the smallest weight
between A and B.
Step 3: Put (u, v) in the tree. A = A ∪ {v},
B = B - {v}
Step 4: If B = ∅, stop; otherwise, go to
Step 2.
 Time complexity : O(n2
), n = |V|.
(see the example on the next page)
4 -16
An example for Prim’s algorithm
4 -17
The single-source shortest
path problem
 shortest paths from v0
to all destinations
4 -18
Dijkstra’s algorithm
1 2 3 4 5 6 7 8
1 0
2 300 0
3 1000 800 0
4 1200 0
5 1500 0 250
6 1000 0 900 1400
7 0 1000
8 1700 0
Cost adjacency matrix.
All entries not shown
are +∞.
4 -19
 Time complexity : O(n2
)
Vertex
Iteration S Selected (1) (2) (3) (4) (5) (6) (7) (8)
Initial ----
1 5 6 +∞ +∞ +∞ 1500 0 250 +∞ +∞
2 5,6 7 +∞ +∞ +∞ 1250 0 250 1150 1650
3 5,6,7 4 +∞ +∞ +∞ 1250 0 250 1150 1650
4 5,6,7,4 8 +∞ +∞ 2450 1250 0 250 1150 1650
5 5,6,7,4,8 3 3350 +∞ 2450 1250 0 250 1150 1650
6 5,6,7,4,8,3 2 3350 3250 2450 1250 0 250 1150 1650
5,6,7,4,8,3,2 3350 3250 2450 1250 0 250 1150 1650
4 -20
 Can we use Dijkstra’s algorithm to find the
longest path from a starting vertex to an
ending vertex in an acyclic directed graph?
 There are 3 possible ways to apply Dijkstra’s
algorithm:
 Directly use “max” operations instead of “min”
operations.
 Convert all positive weights to be negative. Then
find the shortest path.
 Give a very large positive number M. If the weight
of an edge is w, now M-w is used to replace w.
Then find the shortest path.
 All these 3 possible ways would not work!
The longest path problem
4 -21
Activity On Edge (AOE) Networks
 Tasks (activities) : a0, a1,…
 Events : v0,v1,…
V0
V1
V2
V3
V4
V6
V7
V8
V5
finish
a0 = 6
start
a1 = 4
a2 = 5
a4 = 1
a3 = 1
a5 = 2
a6 = 9
a7 = 7
a8 = 4
a10 = 4
a9 = 2
Some definition:
 Predecessor
 Successor
 Immediate predecessor
 Immediate successor
4 -22
critical path
 A critical path is a path that has the
longest length. (v0, v1, v4, v7, v8)
V0
V1
V2
V3
V4
V6
V7
V8
V5
a0 = 6
a1 = 4
a2 = 5
a4 = 1
a3 = 1
a5 = 2
a6 = 9
a7 = 7
a8 = 4
a10 = 4
a9 = 2
start finish
6 + 1 + 7 + 4 = 18 (Max)
4 -23
The earliest time
 The earliest time of an activity, ai, can occur is the length
of the longest path from the start vertex v0 to ai’s start
vertex.
( Ex: the earliest time of activity a7 can occur is 7. )
 We denote this time as early(i) for activity ai.
∴ early(6) = early(7) = 7.
V0
V1
V2
V3
V4
V6
V7
V8
V5
finish
a0 = 6
start
a1 = 4
a2 = 5
a4 = 1
a3 = 1
a5 = 2
a6 = 9
a7 = 7
a8 = 4
a10 = 4
a9 = 2
6/?
0/?
7/? 16/?
0/?
5/?
7/?
14/?7/?4/?
0/?
18
4 -24
The latest time
 The latest time, late(i), of activity, ai, is defined to be the
latest time the activity may start without increasing the
project duration.
 Ex: early(5) = 5 & late(5) = 8; early(7) = 7 & late(7) = 7
V0
V1
V2
V3
V4
V6
V7
V8
V5
finish
a0 = 6
start
a1 = 4
a2 = 5
a4 = 1
a3 = 1
a5 = 2
a6 = 9
a7 = 7
a8 = 4
a10 = 4
a9 = 2
late(5) = 18 – 4 – 4 - 2 = 8
late(7) = 18 – 4 – 7 = 7
6/6
0/1
7/7 16/16
0/3
5/8
7/10
14/147/74/5
0/0
4 -25
Critical activity
 A critical activity is an activity for which
early(i) = late(i).
 The difference between late(i) and early(i) is
a measure of how critical an activity is.
Calculation
of
Latest Times
Calculation
of
Earliest Times
Finding
Critical path(s)
To solve
AOE Problem
4 -26
Calculation of Earliest Times
 Let activity ai is represented by edge (u, v).
 early (i) = earliest [u]
 late (i) = latest [v] – duration of activity ai
 We compute the times in two stages:
a forward stage and a backward stage.
 The forward stage:
 Step 1: earliest [0] = 0
 Step 2: earliest [j] = max {earliest [i] + duration of (i, j)}
i is in P(j)
P(j) is the set of immediate predecessors of j.
4 -27
 The backward stage:
 Step 1: latest[n-1] = earliest[n-1]
 Step 2: latest [j] = min {latest [i] - duration of (j, i)}
i is in S(j)
S(j) is the set of vertices adjacent from vertex j.
latest[8] = earliest[8] = 18
latest[6] = min{earliest[8] - 2} = 16
latest[7] = min{earliest[8] - 4} = 14
latest[4] = min{earliest[6] – 9; earliest[7] – 7} = 7
latest[1] = min{earliest[4] - 1} = 6
latest[2] = min{earliest[4] - 1} = 6
latest[5] = min{earliest[7] - 4} = 10
latest[3] = min{earliest[5] - 2} = 8
latest[0] = min{earliest[1] – 6; earliest[2] – 4; earliest[3] – 5} = 0
Calculation of Latest Times
4 -28
Graph with non-critical activities deleted
V0
V1
V2
V3
V4
V6
V7
V8
V5
finish
a0
start
a1
a2
a4
a3
a5
a6
a7
a8
a10
a9
V0
V1
V4
V6
V7
V8 finish
a0
start
a3 a6
a7 a10
a9
Activity Early Late L - E Critical
a0 0 0 0 Yes
a1 0 2 2 No
a2 0 3 3 No
a3 6 6 0 Yes
a4 4 6 2 No
a5 5 8 3 No
a6 7 7 0 Yes
a7 7 7 0 Yes
a8 7 10 3 No
a9 16 16 0 Yes
a10 14 14 0 Yes
4 -29
 The longest path(critical path) problem
can be solved by the critical path
method(CPM) :
Step 1:Find a topological ordering.
Step 2: Find the critical path.
(see [Horiwitz 1998].)
CPM for the longest path
problem
4 -30
The 2-way merging problem
 # of comparisons required for the linear 2-
way merge algorithm is m1
+ m2
-1 where m1
and m2
are the lengths of the two sorted lists
respectively.
 The problem: There are n sorted lists, each of
length mi
. What is the optimal sequence of
merging process to merge these n lists into
one sorted list ?
4 -31
 Extended Binary Tree Representing a 2-way
Merge
Extended binary trees
4 -32
An example of 2-way merging
 Example: 6 sorted lists with lengths 2,
3, 5, 7, 11 and 13.
4 -33
 Time complexity for
generating an optimal
extended binary
tree:O(n log n)
4 -34
Huffman codes
 In telecommunication, how do we represent a
set of messages, each with an access
frequency, by a sequence of 0’s and 1’s?
 To minimize the transmission and decoding
costs, we may use short strings to represent
more frequently used messages.
 This problem can by solved by using an
extended binary tree which is used in the 2-
way merging problem.
4 -35
An example of Huffman algorithm
 Symbols: A, B, C, D, E, F, G
freq. : 2, 3, 5, 8, 13, 15, 18
 Huffman codes:
A: 10100 B: 10101 C: 1011
D: 100 E: 00 F: 01
G: 11
A Huffman code Tree
4 -36
Chapter 4 Greedy method
Input(A[1…n])
Solution ←ψ
for i ← 1 to n do
X ← SELECT(A) ( 最好有一 data structure ,經 preprocessing 後可以很快的找
到 ( 包括 delete))
If FEASIBLE( solution, x)
then solution ← UNION( select, x)
endif
repeat
Output (solution)
特點
(1) 做一串 decision
(2) 每個 decision 只關心自己是不是 optimal 一部份與其它無關 ( 可以 local
check)
Note
(1) Local optimal 須是 global optimal
(2) 有時裡面隱含一個 sorting
4 -37
Knapsack problem
 Given positive integers P1, P2, …, Pn,
W1, W2, …, Wn and M.
 Find X1, X2, … ,Xn, 0≦Xi≦1 such that
is maximized.
 Subject to
∑=
n
1i
iiXP
∑=
≤
n
1i
ii MXW
4 -38
Knapsack Problem Example
 M = 20, (P1, P2, P3)=(25,24,15)
(W1, W2, W3) = (18, 15, 10)
 Four feasible solutions, 4 is optimal
(X1, X2, X3) ΣWiXi ΣPiX
1. (1/2,1/3,1/4) 16.5 24.25
2. (1,2/15,0) 20 28.2
3. (0, 2/3, 1) 20 31
4. (0, 1, 1/2) 20 31.5
4 -39
Job Sequencing with Deadlines
 Given n jobs. Associated with job I is an
integer deadline Di≧0. For any job I the profit
Pi is earned iff the job is completed by its
deadline. To complete a job, one has to
process the job on a machine for one unit of
time.
 A feasible solution is a subset J of jobs such
that each job in the subset can be completed
by its deadline. We want to maximize the
∑∈Ji iP
4 -40
 n = 4, (p1, p2, p3, p4) = (100,10,15,27)
(d1, d2, d3, d4) = (2, 1, 2, 1)
Feasible solution Processing
sequence
value
1 (1,2) 2,1 110
2 (1,3) 1,3 or 3, 1 115
3 (1,4) 4, 1 127
4 (2,3) 2, 3 25
5 (3,4) 4,3 42
6 (1) 1 100
7 (2) 2 10
8 (3) 3 15
9 (4) 4 27
4 -41
Optimal Storage on Tapes
 There are n programs that are to be stored
on a computer tape of length L. Associated
with each program i is a length Li.
 Assume the tape is initially positioned at
the front. If the programs are stored in the
order I = i1, i2, …, in, the time tj needed to
retrieve program ij
tj =
∑=
j
1k
ik
L
4 -42
Optimal Storage on Tapes
 If all programs are retrieved equally often,
then the
mean retrieval time (MRT) =
 This problem fits the ordering paradigm.
Minimizing the MRT is equivalent to
minimizing
d(I) =
∑=
n
1j
jt
n
1
∑∑= =
n
1j
j
1k
ik
L
4 -43
Example
 Let n = 3, (L1,L2,L3) = (5,10,3). 6 possible
orderings. The optimal is 3,1,2
Ordering I d(I)
1,2,3 5+5+10+5+10+3 = 38
1,3,2 5+5+3+5+3+10 = 31
2,1,3 10+10+5+10+5+3 = 43
2,3,1 10+10+3+10+3+5 = 41
3,1,2 3+3+5+3+5+10 = 29
3,2,1, 3+3+10+3+10+5 = 34

More Related Content

PPTX
Webinar : P, NP, NP-Hard , NP - Complete problems
PDF
Deterministic Finite Automata (DFA)
PDF
9. chapter 8 np hard and np complete problems
PPT
Backtracking
PPTX
NP completeness
PPTX
Lecture optimal binary search tree
PDF
P, NP, NP-Complete, and NP-Hard
PPTX
Greedy Algorithm - Knapsack Problem
Webinar : P, NP, NP-Hard , NP - Complete problems
Deterministic Finite Automata (DFA)
9. chapter 8 np hard and np complete problems
Backtracking
NP completeness
Lecture optimal binary search tree
P, NP, NP-Complete, and NP-Hard
Greedy Algorithm - Knapsack Problem

What's hot (20)

PPTX
Dynamic programming
PPTX
Job sequencing with Deadlines
PPTX
0/1 DYNAMIC PROGRAMMING KNAPSACK PROBLEM
PPT
Greedy Algorihm
PPTX
Automata theory - NFA ε to DFA Conversion
PPT
finding Min and max element from given array using divide & conquer
PPT
Dinive conquer algorithm
PPTX
DAA-Floyd Warshall Algorithm.pptx
PPTX
Compiler Chapter 1
PPTX
Greedy method
PPTX
Phases of compiler
PPTX
Graph coloring using backtracking
PPTX
Problem solving agents
PPT
Randomized algorithms ver 1.0
PDF
I.ITERATIVE DEEPENING DEPTH FIRST SEARCH(ID-DFS) II.INFORMED SEARCH IN ARTIFI...
PPT
Greedy algorithms
PPT
Turing Machine
PPTX
daa-unit-3-greedy method
PPTX
Divide and conquer
PPTX
Moore and mealy machines
Dynamic programming
Job sequencing with Deadlines
0/1 DYNAMIC PROGRAMMING KNAPSACK PROBLEM
Greedy Algorihm
Automata theory - NFA ε to DFA Conversion
finding Min and max element from given array using divide & conquer
Dinive conquer algorithm
DAA-Floyd Warshall Algorithm.pptx
Compiler Chapter 1
Greedy method
Phases of compiler
Graph coloring using backtracking
Problem solving agents
Randomized algorithms ver 1.0
I.ITERATIVE DEEPENING DEPTH FIRST SEARCH(ID-DFS) II.INFORMED SEARCH IN ARTIFI...
Greedy algorithms
Turing Machine
daa-unit-3-greedy method
Divide and conquer
Moore and mealy machines
Ad

Similar to 5.1 greedy (20)

PPT
Lecture#9
DOC
algorithm Unit 3
PPT
4b. DAC_Binary search and Strassen A.ppt
PPTX
Computer Network Homework Help
PPT
Mit15 082 jf10_lec01
PPT
Np cooks theorem
PPTX
Branch and bounding : Data structures
PPTX
Line Drawing Algorithms - Computer Graphics - Notes
DOC
Unit 3 daa
PDF
cgrchapter2version-1-200729063505 (1).pdf
PPT
Project Management Techniques
PDF
04 greedyalgorithmsii 2x2
PPTX
Ip 5 discrete mathematics
PPT
Lecture_10_Parallel_Algorithms_Part_II.ppt
PPT
Unit 3-Greedy Method
PPTX
Sorting and Searching - Data Structure - Notes
PPTX
Aaex4 group2(中英夾雜)
PPT
Lec-35Graph - Graph - Copy in Data Structure
PDF
ACM ICPC 2016 NEERC (Northeastern European Regional Contest) Problems Review
PPTX
Discrete Math IP4 - Automata Theory
Lecture#9
algorithm Unit 3
4b. DAC_Binary search and Strassen A.ppt
Computer Network Homework Help
Mit15 082 jf10_lec01
Np cooks theorem
Branch and bounding : Data structures
Line Drawing Algorithms - Computer Graphics - Notes
Unit 3 daa
cgrchapter2version-1-200729063505 (1).pdf
Project Management Techniques
04 greedyalgorithmsii 2x2
Ip 5 discrete mathematics
Lecture_10_Parallel_Algorithms_Part_II.ppt
Unit 3-Greedy Method
Sorting and Searching - Data Structure - Notes
Aaex4 group2(中英夾雜)
Lec-35Graph - Graph - Copy in Data Structure
ACM ICPC 2016 NEERC (Northeastern European Regional Contest) Problems Review
Discrete Math IP4 - Automata Theory
Ad

More from Krish_ver2 (20)

PPT
5.5 back tracking
PPT
5.5 back track
PPT
5.5 back tracking 02
PPT
5.4 randomized datastructures
PPT
5.4 randomized datastructures
PPT
5.4 randamized algorithm
PPT
5.3 dynamic programming 03
PPT
5.3 dynamic programming
PPT
5.3 dyn algo-i
PPT
5.2 divede and conquer 03
PPT
5.2 divide and conquer
PPT
5.2 divede and conquer 03
PPT
5.1 greedyyy 02
PPT
5.1 greedy 03
PPT
4.4 hashing02
PPT
4.4 hashing
PPT
4.4 hashing ext
PPT
4.4 external hashing
PPT
4.2 bst
PPT
4.2 bst 03
5.5 back tracking
5.5 back track
5.5 back tracking 02
5.4 randomized datastructures
5.4 randomized datastructures
5.4 randamized algorithm
5.3 dynamic programming 03
5.3 dynamic programming
5.3 dyn algo-i
5.2 divede and conquer 03
5.2 divide and conquer
5.2 divede and conquer 03
5.1 greedyyy 02
5.1 greedy 03
4.4 hashing02
4.4 hashing
4.4 hashing ext
4.4 external hashing
4.2 bst
4.2 bst 03

Recently uploaded (20)

PDF
MICROENCAPSULATION_NDDS_BPHARMACY__SEM VII_PCI .pdf
PDF
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
PPTX
Share_Module_2_Power_conflict_and_negotiation.pptx
PDF
FORM 1 BIOLOGY MIND MAPS and their schemes
PPTX
Module on health assessment of CHN. pptx
PPTX
B.Sc. DS Unit 2 Software Engineering.pptx
PDF
LEARNERS WITH ADDITIONAL NEEDS ProfEd Topic
PPTX
What’s under the hood: Parsing standardized learning content for AI
PPTX
Introduction to pro and eukaryotes and differences.pptx
PDF
LIFE & LIVING TRILOGY - PART (3) REALITY & MYSTERY.pdf
PDF
BP 505 T. PHARMACEUTICAL JURISPRUDENCE (UNIT 2).pdf
PDF
What if we spent less time fighting change, and more time building what’s rig...
PDF
Paper A Mock Exam 9_ Attempt review.pdf.
PDF
Uderstanding digital marketing and marketing stratergie for engaging the digi...
PDF
Journal of Dental Science - UDMY (2021).pdf
PDF
Environmental Education MCQ BD2EE - Share Source.pdf
PDF
LIFE & LIVING TRILOGY- PART (1) WHO ARE WE.pdf
PDF
MBA _Common_ 2nd year Syllabus _2021-22_.pdf
PDF
Skin Care and Cosmetic Ingredients Dictionary ( PDFDrive ).pdf
PDF
Mucosal Drug Delivery system_NDDS_BPHARMACY__SEM VII_PCI.pdf
MICROENCAPSULATION_NDDS_BPHARMACY__SEM VII_PCI .pdf
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
Share_Module_2_Power_conflict_and_negotiation.pptx
FORM 1 BIOLOGY MIND MAPS and their schemes
Module on health assessment of CHN. pptx
B.Sc. DS Unit 2 Software Engineering.pptx
LEARNERS WITH ADDITIONAL NEEDS ProfEd Topic
What’s under the hood: Parsing standardized learning content for AI
Introduction to pro and eukaryotes and differences.pptx
LIFE & LIVING TRILOGY - PART (3) REALITY & MYSTERY.pdf
BP 505 T. PHARMACEUTICAL JURISPRUDENCE (UNIT 2).pdf
What if we spent less time fighting change, and more time building what’s rig...
Paper A Mock Exam 9_ Attempt review.pdf.
Uderstanding digital marketing and marketing stratergie for engaging the digi...
Journal of Dental Science - UDMY (2021).pdf
Environmental Education MCQ BD2EE - Share Source.pdf
LIFE & LIVING TRILOGY- PART (1) WHO ARE WE.pdf
MBA _Common_ 2nd year Syllabus _2021-22_.pdf
Skin Care and Cosmetic Ingredients Dictionary ( PDFDrive ).pdf
Mucosal Drug Delivery system_NDDS_BPHARMACY__SEM VII_PCI.pdf

5.1 greedy

  • 1. 4 -1 Chapter 3 The Greedy Method
  • 2. 4 -2 The greedy method  Suppose that a problem can be solved by a sequence of decisions. The greedy method has that each decision is locally optimal. These locally optimal solutions will finally add up to a globally optimal solution.  Only a few optimization problems can be solved by the greedy method.
  • 3. 4 -3 An simple example  Problem: Pick k numbers out of n numbers such that the sum of these k numbers is the largest.  Algorithm: FOR i = 1 to k pick out the largest number and delete this number from the input. ENDFOR
  • 4. 4 -4 Shortest paths on a special graph  Problem: Find a shortest path from v0 to v3 .  The greedy method can solve this problem.  The shortest path: 1 + 2 + 4 = 7.
  • 5. 4 -5 Shortest paths on a multi-stage graph  Problem: Find a shortest path from v0 to v3 in the multi-stage graph.  Greedy method: v0 v1,2 v2,1 v3 = 23  Optimal: v0 v1,1 v2,2 v3 = 7  The greedy method does not work.
  • 6. 4 -6 Solution of the above problem  dmin(i,j): minimum distance between i and j.  This problem can be solved by the dynamic programming method. dmin(v0,v3)=min      3+dmin(v1,1,v3) 1+dmin(v1,2,v3) 5+dmin(v1,3,v3) 7+dmin(v1,4,v3)
  • 7. 4 -7 Minimum spanning trees (MST)  It may be defined on Euclidean space points or on a graph.  G = (V, E): weighted connected undirected graph  Spanning tree : S = (V, T), T ⊆ E, undirected tree  Minimum spanning tree(MST) : a spanning tree with the smallest total weight.
  • 8. 4 -8 An example of MST  A graph and one of its minimum costs spanning tree
  • 9. 4 -9 Kruskal’s algorithm for finding MST Step 1: Sort all edges into nondecreasing order. Step 2: Add the next smallest weight edge to the forest if it will not cause a cycle. Step 3: Stop if n-1 edges. Otherwise, go to Step2.
  • 10. 4 -10 An example of Kruskal’s algorithm
  • 11. 4 -11 The details for constructing MST  How do we check if a cycle is formed when a new edge is added?  By the SET and UNION method.  A tree in the forest is used to represent a SET.  If (u, v) ∈ E and u, v are in the same set, then the addition of (u, v) will form a cycle.  If (u, v) ∈ E and u∈S1 , v∈S2 , then perform UNION of S1 and S2 .
  • 12. 4 -12 Time complexity  Time complexity: O(|E| log|E|)  Step 1: O(|E| log|E|)  Step 2 & Step 3: Where α is the inverse of Ackermann’s function. |))||,(||(|O VEE α
  • 13. 4 -13 Ackermann’s function  ⇒ A(p, q+1) > A(p, q), A(p+1, q) > A(p, q) A(p, q) =      2q, p = 0 0, q = 0, p ≥ 1 2, p ≥ 1, q = 1 A(p-1, A(p, q-1)), p ≥ 1, q ≥ 2 A( , )3 4 222 2 =     65536 two’s
  • 14. 4 -14 Inverse of Ackermann’s function  α(m, n) = min{Z≥1|A(Z,4m/n) > log2 n} Practically, A(3,4) > log2 n ⇒α(m, n) ≤ 3 ⇒α(m, n) is almost a constant.
  • 15. 4 -15 Prim’s algorithm for finding MST Step 1: x ∈ V, Let A = {x}, B = V - {x}. Step 2: Select (u, v) ∈ E, u ∈ A, v ∈ B such that (u, v) has the smallest weight between A and B. Step 3: Put (u, v) in the tree. A = A ∪ {v}, B = B - {v} Step 4: If B = ∅, stop; otherwise, go to Step 2.  Time complexity : O(n2 ), n = |V|. (see the example on the next page)
  • 16. 4 -16 An example for Prim’s algorithm
  • 17. 4 -17 The single-source shortest path problem  shortest paths from v0 to all destinations
  • 18. 4 -18 Dijkstra’s algorithm 1 2 3 4 5 6 7 8 1 0 2 300 0 3 1000 800 0 4 1200 0 5 1500 0 250 6 1000 0 900 1400 7 0 1000 8 1700 0 Cost adjacency matrix. All entries not shown are +∞.
  • 19. 4 -19  Time complexity : O(n2 ) Vertex Iteration S Selected (1) (2) (3) (4) (5) (6) (7) (8) Initial ---- 1 5 6 +∞ +∞ +∞ 1500 0 250 +∞ +∞ 2 5,6 7 +∞ +∞ +∞ 1250 0 250 1150 1650 3 5,6,7 4 +∞ +∞ +∞ 1250 0 250 1150 1650 4 5,6,7,4 8 +∞ +∞ 2450 1250 0 250 1150 1650 5 5,6,7,4,8 3 3350 +∞ 2450 1250 0 250 1150 1650 6 5,6,7,4,8,3 2 3350 3250 2450 1250 0 250 1150 1650 5,6,7,4,8,3,2 3350 3250 2450 1250 0 250 1150 1650
  • 20. 4 -20  Can we use Dijkstra’s algorithm to find the longest path from a starting vertex to an ending vertex in an acyclic directed graph?  There are 3 possible ways to apply Dijkstra’s algorithm:  Directly use “max” operations instead of “min” operations.  Convert all positive weights to be negative. Then find the shortest path.  Give a very large positive number M. If the weight of an edge is w, now M-w is used to replace w. Then find the shortest path.  All these 3 possible ways would not work! The longest path problem
  • 21. 4 -21 Activity On Edge (AOE) Networks  Tasks (activities) : a0, a1,…  Events : v0,v1,… V0 V1 V2 V3 V4 V6 V7 V8 V5 finish a0 = 6 start a1 = 4 a2 = 5 a4 = 1 a3 = 1 a5 = 2 a6 = 9 a7 = 7 a8 = 4 a10 = 4 a9 = 2 Some definition:  Predecessor  Successor  Immediate predecessor  Immediate successor
  • 22. 4 -22 critical path  A critical path is a path that has the longest length. (v0, v1, v4, v7, v8) V0 V1 V2 V3 V4 V6 V7 V8 V5 a0 = 6 a1 = 4 a2 = 5 a4 = 1 a3 = 1 a5 = 2 a6 = 9 a7 = 7 a8 = 4 a10 = 4 a9 = 2 start finish 6 + 1 + 7 + 4 = 18 (Max)
  • 23. 4 -23 The earliest time  The earliest time of an activity, ai, can occur is the length of the longest path from the start vertex v0 to ai’s start vertex. ( Ex: the earliest time of activity a7 can occur is 7. )  We denote this time as early(i) for activity ai. ∴ early(6) = early(7) = 7. V0 V1 V2 V3 V4 V6 V7 V8 V5 finish a0 = 6 start a1 = 4 a2 = 5 a4 = 1 a3 = 1 a5 = 2 a6 = 9 a7 = 7 a8 = 4 a10 = 4 a9 = 2 6/? 0/? 7/? 16/? 0/? 5/? 7/? 14/?7/?4/? 0/? 18
  • 24. 4 -24 The latest time  The latest time, late(i), of activity, ai, is defined to be the latest time the activity may start without increasing the project duration.  Ex: early(5) = 5 & late(5) = 8; early(7) = 7 & late(7) = 7 V0 V1 V2 V3 V4 V6 V7 V8 V5 finish a0 = 6 start a1 = 4 a2 = 5 a4 = 1 a3 = 1 a5 = 2 a6 = 9 a7 = 7 a8 = 4 a10 = 4 a9 = 2 late(5) = 18 – 4 – 4 - 2 = 8 late(7) = 18 – 4 – 7 = 7 6/6 0/1 7/7 16/16 0/3 5/8 7/10 14/147/74/5 0/0
  • 25. 4 -25 Critical activity  A critical activity is an activity for which early(i) = late(i).  The difference between late(i) and early(i) is a measure of how critical an activity is. Calculation of Latest Times Calculation of Earliest Times Finding Critical path(s) To solve AOE Problem
  • 26. 4 -26 Calculation of Earliest Times  Let activity ai is represented by edge (u, v).  early (i) = earliest [u]  late (i) = latest [v] – duration of activity ai  We compute the times in two stages: a forward stage and a backward stage.  The forward stage:  Step 1: earliest [0] = 0  Step 2: earliest [j] = max {earliest [i] + duration of (i, j)} i is in P(j) P(j) is the set of immediate predecessors of j.
  • 27. 4 -27  The backward stage:  Step 1: latest[n-1] = earliest[n-1]  Step 2: latest [j] = min {latest [i] - duration of (j, i)} i is in S(j) S(j) is the set of vertices adjacent from vertex j. latest[8] = earliest[8] = 18 latest[6] = min{earliest[8] - 2} = 16 latest[7] = min{earliest[8] - 4} = 14 latest[4] = min{earliest[6] – 9; earliest[7] – 7} = 7 latest[1] = min{earliest[4] - 1} = 6 latest[2] = min{earliest[4] - 1} = 6 latest[5] = min{earliest[7] - 4} = 10 latest[3] = min{earliest[5] - 2} = 8 latest[0] = min{earliest[1] – 6; earliest[2] – 4; earliest[3] – 5} = 0 Calculation of Latest Times
  • 28. 4 -28 Graph with non-critical activities deleted V0 V1 V2 V3 V4 V6 V7 V8 V5 finish a0 start a1 a2 a4 a3 a5 a6 a7 a8 a10 a9 V0 V1 V4 V6 V7 V8 finish a0 start a3 a6 a7 a10 a9 Activity Early Late L - E Critical a0 0 0 0 Yes a1 0 2 2 No a2 0 3 3 No a3 6 6 0 Yes a4 4 6 2 No a5 5 8 3 No a6 7 7 0 Yes a7 7 7 0 Yes a8 7 10 3 No a9 16 16 0 Yes a10 14 14 0 Yes
  • 29. 4 -29  The longest path(critical path) problem can be solved by the critical path method(CPM) : Step 1:Find a topological ordering. Step 2: Find the critical path. (see [Horiwitz 1998].) CPM for the longest path problem
  • 30. 4 -30 The 2-way merging problem  # of comparisons required for the linear 2- way merge algorithm is m1 + m2 -1 where m1 and m2 are the lengths of the two sorted lists respectively.  The problem: There are n sorted lists, each of length mi . What is the optimal sequence of merging process to merge these n lists into one sorted list ?
  • 31. 4 -31  Extended Binary Tree Representing a 2-way Merge Extended binary trees
  • 32. 4 -32 An example of 2-way merging  Example: 6 sorted lists with lengths 2, 3, 5, 7, 11 and 13.
  • 33. 4 -33  Time complexity for generating an optimal extended binary tree:O(n log n)
  • 34. 4 -34 Huffman codes  In telecommunication, how do we represent a set of messages, each with an access frequency, by a sequence of 0’s and 1’s?  To minimize the transmission and decoding costs, we may use short strings to represent more frequently used messages.  This problem can by solved by using an extended binary tree which is used in the 2- way merging problem.
  • 35. 4 -35 An example of Huffman algorithm  Symbols: A, B, C, D, E, F, G freq. : 2, 3, 5, 8, 13, 15, 18  Huffman codes: A: 10100 B: 10101 C: 1011 D: 100 E: 00 F: 01 G: 11 A Huffman code Tree
  • 36. 4 -36 Chapter 4 Greedy method Input(A[1…n]) Solution ←ψ for i ← 1 to n do X ← SELECT(A) ( 最好有一 data structure ,經 preprocessing 後可以很快的找 到 ( 包括 delete)) If FEASIBLE( solution, x) then solution ← UNION( select, x) endif repeat Output (solution) 特點 (1) 做一串 decision (2) 每個 decision 只關心自己是不是 optimal 一部份與其它無關 ( 可以 local check) Note (1) Local optimal 須是 global optimal (2) 有時裡面隱含一個 sorting
  • 37. 4 -37 Knapsack problem  Given positive integers P1, P2, …, Pn, W1, W2, …, Wn and M.  Find X1, X2, … ,Xn, 0≦Xi≦1 such that is maximized.  Subject to ∑= n 1i iiXP ∑= ≤ n 1i ii MXW
  • 38. 4 -38 Knapsack Problem Example  M = 20, (P1, P2, P3)=(25,24,15) (W1, W2, W3) = (18, 15, 10)  Four feasible solutions, 4 is optimal (X1, X2, X3) ΣWiXi ΣPiX 1. (1/2,1/3,1/4) 16.5 24.25 2. (1,2/15,0) 20 28.2 3. (0, 2/3, 1) 20 31 4. (0, 1, 1/2) 20 31.5
  • 39. 4 -39 Job Sequencing with Deadlines  Given n jobs. Associated with job I is an integer deadline Di≧0. For any job I the profit Pi is earned iff the job is completed by its deadline. To complete a job, one has to process the job on a machine for one unit of time.  A feasible solution is a subset J of jobs such that each job in the subset can be completed by its deadline. We want to maximize the ∑∈Ji iP
  • 40. 4 -40  n = 4, (p1, p2, p3, p4) = (100,10,15,27) (d1, d2, d3, d4) = (2, 1, 2, 1) Feasible solution Processing sequence value 1 (1,2) 2,1 110 2 (1,3) 1,3 or 3, 1 115 3 (1,4) 4, 1 127 4 (2,3) 2, 3 25 5 (3,4) 4,3 42 6 (1) 1 100 7 (2) 2 10 8 (3) 3 15 9 (4) 4 27
  • 41. 4 -41 Optimal Storage on Tapes  There are n programs that are to be stored on a computer tape of length L. Associated with each program i is a length Li.  Assume the tape is initially positioned at the front. If the programs are stored in the order I = i1, i2, …, in, the time tj needed to retrieve program ij tj = ∑= j 1k ik L
  • 42. 4 -42 Optimal Storage on Tapes  If all programs are retrieved equally often, then the mean retrieval time (MRT) =  This problem fits the ordering paradigm. Minimizing the MRT is equivalent to minimizing d(I) = ∑= n 1j jt n 1 ∑∑= = n 1j j 1k ik L
  • 43. 4 -43 Example  Let n = 3, (L1,L2,L3) = (5,10,3). 6 possible orderings. The optimal is 3,1,2 Ordering I d(I) 1,2,3 5+5+10+5+10+3 = 38 1,3,2 5+5+3+5+3+10 = 31 2,1,3 10+10+5+10+5+3 = 43 2,3,1 10+10+3+10+3+5 = 41 3,1,2 3+3+5+3+5+10 = 29 3,2,1, 3+3+10+3+10+5 = 34