greedy algorithms
DESCRIPTION
Pasi Fränti. Greedy Algorithms. 8.10.2013. Greedy algorithm. Coin problem Minimum spanning tree Generalized knapsack problem Traveling salesman problem. Coin problem. Task: Given a coin set, pay the required amount (36 snt) using least number of coins. 25. 10. 1. - PowerPoint PPT PresentationTRANSCRIPT
Greedy Algorithms
Pasi Fränti28.9.2015
Greedy algorithm
1. Coin problem2. Minimum spanning tree3. Generalized knapsack problem4. Traveling salesman problem
Task: Given a coin set, pay the required amount (36 snt) using least number of coins.
Coin problem
25 110
Coin problemAnother coin set
Amount to be paid: 30
Greedy:
Optimal:
Blank space for notes
Minimum spanning treeWhen greedy works
Input: GraphOutput: Sub-graph
Tree No cyclesSpanning tree All nodes reachableMinimum Sum of weights minimum
Prim(V, E): RETURN T
Select (u,v)E with min weightSS{u,v}; PP{(u,v)}; EE\{(u,v)};
REPEATSelect (u,v) with min weight (u,v)E, uS,
vSSS{v}; PP{(u,v)}; EE\{(u,v)};
UNTIL S=V
Return P;
Minimum spanning treePrim’s algorithm
136
170315
148 78
231
234
12089
131109
116
86
246
182
216110
117
199
121142
24279
191178
191
126149
17051 112
90163
59
14373
63 53
27135
10558
116
72
79
Example of Prim
Proof of optimalityGeneral properties of spanning trees
• Spanning tree includes N-1 links
• There are no cycles• Minimum spanning tree is
the one with the smallest weights
AB
C
AB
CRemoveLink BC
Cycle No cycle
Proof of optimalityCase: minimum link
2
AB
C
21
2
AB
C
21
• Link AB is minimum• Suppose it is not in MST• Path A→B must exist
Add AB
• Adding AB we can remove another link (e.g. AC)
• Path A→C exists• All nodes reached from
C can now be reached from B
Proof of optimalityInduction step
A
B
C
4
3 E
D
ReplaceCD by CE
MST solved forSubset S
• Suppose CE is minimum connecting S outside• Path D→E must exist and is outside S
Proof of optimalityInduction step
A
B
C
4
3 E
D
MST solved forSubset S
• Path D→E still exist as before• All nodes reachable via D
can now be reached via C→E→D
Source of data just for fun
Minimum spanning treeKruskal’s algorithm
Kruskal(V, E): RETURN T
FOR ALL vVCreateSet(v);
P; SORT(E); // according to decreasing weights
FOR each eE DOIF FindSet(u)FindSet(v) THEN
UNION(u,v);PP{(u,v)};
Return P;
Blank space for notes
Cardiff
Sheffield
Nottingham
Oxford
Southampton
Bristol
Shrewsbury
Liverpool
Aberystwyth
B/ham
Manchester
50
40
40
30
80
7080
50
90
50
110
70
120
110 70 100
Cardiff
Sheffield
Nottingham
Oxford
Southampton
Bristol
Shrewsbury
Liverpool
Aberystwyth
B/ham
Manchester
50
40
40
30
80
7080
50
90
50
110
70
120
110 70 100
Cardiff
Sheffield
Nottingham
Oxford
Southampton
Bristol
Shrewsbury
Liverpool
Aberystwyth
B/ham
Manchester
50
40
40
30
80
7080
50
90
50
110
70
120
110 70 100
Cardiff
Sheffield
Nottingham
Oxford
Southampton
Bristol
Shrewsbury
Liverpool
Aberystwyth
B/ham
Manchester
50
40
40
30
80
7080
50
90
50
110
70
120
110 70 100
Cardiff
Sheffield
Nottingham
Oxford
Southampton
Bristol
Shrewsbury
Liverpool
Aberystwyth
B/ham
Manchester
50
40
40
30
80
7080
50
90
50
110
70
120
110 70 100
Cardiff
Sheffield
Nottingham
Oxford
Southampton
Bristol
Shrewsbury
Liverpool
Aberystwyth
B/ham
Manchester
50
40
40
30
80
7080
50
90
50
110
70
120
110 70 100
Cardiff
Sheffield
Nottingham
Oxford
Southampton
Bristol
Shrewsbury
Liverpool
Aberystwyth
B/ham
Manchester
50
40
40
30
80
7080
50
90
50
110
70
120
110 70 100
Cardiff
Sheffield
Nottingham
Oxford
Southampton
Bristol
Shrewsbury
Liverpool
Aberystwyth
B/ham
Manchester
50
40
40
30
80
7080
50
90
50
110
70
120
110 70 100
Cardiff
Sheffield
Nottingham
Oxford
Southampton
Bristol
Shrewsbury
Liverpool
Aberystwyth
B/ham
Manchester
50
40
40
30
80
7080
50
90
50
110
70
120
110 70 100
Cardiff
Sheffield
Nottingham
Oxford
Southampton
Bristol
Shrewsbury
Liverpool
Aberystwyth
B/ham
Manchester
50
40
40
30
80
7080
50
90
50
110
70
120
110 70 100
Cardiff
Sheffield
Nottingham
Oxford
Southampton
Bristol
Shrewsbury
Liverpool
Aberystwyth
B/ham
Manchester
50
40
40
30
80
7080
50
90
50
110
70
120
110 70 100
Blank space for notes
Input: Weight of N items {w1, w2, ..., wn}
Cost of N items {c1, c2, ..., cn}Knapsack limit S
Output: Selection for knapsack: {x1,x2,…xn}
where xi {0,1}. Sample input:
wi={1,1,2,4,12}
ci ={1,2,2,10,4}
S=15
Knapsack problemProblem definition
Skipped this year
Generalized Knapsack problem
Semi-blank space
Traveling salesman problem
Exercise task
Greedy algorithms
1. Coin problem2. Minimum spanning tree3. Generalized knapsack problem4. Traveling salesman problem
Solved
Not
SolvedNot