SlideShare a Scribd company logo
Chapter 8

Approximation Algorithms

1
Outline





Why approximation algorithms?
The vertex cover problem
The set cover problem
TSP

2
Why Approximation Algorithms ?







Many problems of practical significance are NPcomplete but are too important to abandon merely
because obtaining an optimal solution is intractable.
If a problem is NP-complete, we are unlikely to find
a polynomial time algorithm for solving it exactly, but
it may still be possible to find near-optimal solution
in polynomial time.
In practice, near-optimality is often good enough.
An algorithm that returns near-optimal solutions is
called an approximation algorithm.

3
Performance bounds for approximation
algorithms






i is an optimization problem instance
c(i) be the cost of solution produced by approximate
algorithm and c*(i) be the cost of optimal solution.
For minimization problem, we want c(i)/c*(i) to be as
small as possible.
For maximization problem, we want c*(i)/c(i) to be as
small as possible.
An approximation algorithm for the given problem
instance i, has a ratio bound of p(n) if for any input of
size n, the cost c of the solution produced by the
approximation algorithm is within a factor of p(n) of the
cost c* of an optimal solution. That is
max(c(i)/c*(i), c*(i)/c(i)) ≤ p(n)

4






Note that p(n) is always greater than or equal to 1.
If p(n) = 1 then the approximate algorithm is an
optimal algorithm.
The larger p(n), the worst algorithm
Relative error




We define the relative error of the approximate algorithm
for any input size as
|c(i) - c*(i)|/ c*(i)
We say that an approximate algorithm has a relative error
bound of ε(n) if
|c(i)-c*(i)|/c*(i)≤ ε(n)

5
1. The Vertex-Cover Problem







Vertex cover: given an undirected graph G=(V,E),
then a subset V'⊆V such that if (u,v)∈E, then u∈V'
or v ∈V' (or both).
Size of a vertex cover: the number of vertices in it.
Vertex-cover problem: find a vertex-cover of minimal
size.
This problem is NP-hard, since the related decision
problem is NP-complete

6
Approximate vertex-cover algorithm

The running time of this algorithm is O(E).

7
8
Theorem:




APPROXIMATE-VERTEX-COVER has a ratio
bound of 2, i.e., the size of returned vertex cover
set is at most twice of the size of optimal vertexcover.
Proof:




It runs in poly time
The returned C is a vertex-cover.
Let A be the set of edges picked in line 4 and C*
be the optimal vertex-cover.




Then C* must include at least one end of each edge in A
and no two edges in A are covered by the same vertex
in C*, so |C*|≥|A|.
Moreover, |C|=2|A|, so |C|≤2|C*|.
9
The Set Covering Problem




The set covering problem is an optimization problem that models
many resource-selection problems.
An instance (X, F) of the set-covering problem consists of a
finite set X and a family F of subsets of X, such that every
element of X belongs to at least one subset in F:

X =∪S
S∈F


We say that a subset S∈F covers its elements.
The problem is to find a minimum-size subset C ⊆ F whose
members cover all of X:

X =∪S
S∈C


We say that any C satisfying the above equation covers X.

10
Figure 6.2 An instance {X, F} of the set covering problem, where X
consists of the 12 black points and F = { S1, S2, S3, S4, S5, S6}. A
minimum size set cover is C = { S3, S4, S5}. The greedy algorithm
produces the set C’ = {S1, S4, S5, S3} in order.
11
Applications of Set-covering problem






Assume that X is a set of skills that are needed to
solve a problem and we have a set of people
available to work on it. We wish to form a team,
containing as few people as possible, s.t. for every
requisite skill in X, there is a member in the team
having that skill.
Assign emergency stations (fire stations) in a city.
Allocate sale branch offices for a company.
Schedule for bus drivers.

12
A greedy approximation algorithm
Greedy-Set-Cover(X, F)
1. U = X
2. C = ∅
3. while U != ∅ do
4.
select an S∈F that maximizes | S ∩ U|
5.
U=U–S
6.
C = C ∪ {S}
7. return C
The algorithm GREEDY-SET-COVER can easily be
implemented to run in time complexity in |X| and |F|. Since the
number of iterations of the loop on line 3-6 is at most min(|X|, |
F|) and the loop body can be implemented to run in time O(|
X|,|F|), there is an implementation that runs in time O(|X|,|F|
min(|X|,|F|) .

13
Ratio bound of Greedy-set-cover


Let denote the dth harmonic number
d

hd = Σi-11/i




Theorem: Greedy-set-cover has a ratio bound
H(max{|S|: S ∈F})
Corollary: Greedy-set-cover has a ratio bound of (ln|
X| +1)
(Refer to the text book for the proofs)

14
3. The Traveling Salesman Problem


Since finding the shortest tour for TSP requires so
much computation, we may consider to find a tour
that is almost as short as the shortest. That is, it
may be possible to find near-optimal solution.



Example: We can use an approximation algorithm
for the HCP. It's relatively easy to find a tour that is
longer by at most a factor of two than the optimal
tour. The method is based on



the algorithm for finding the minimum spanning tree and
an observation that it is always cheapest to go directly from
a vertex u to a vertex w; going by way of any intermediate
stop v can’t be less expensive.
C(u,w) ≤ C(u,v)+ C(v,w)
15
APPROX-TSP-TOUR

The algorithm computes a near-optimal tour of an
undirected graph G.
procedure APPROX-TSP-TOUR(G, c);
begin
select a vertex r ∈ V[G] to be the “root” vertex;
grow a minimum spanning tree T for G from root r, using
Prim’s algorithm;
apply a preorder tree walk of T and let L be the list of
vertices visited in the walk;
form the halmintonian cycle H that visits the vertices in
the order of L.
/* H is the result to return * /
end
A preorder tree walk recursively visits every vertex in the
tree, listing a vertex when its first encountered, before
any of its children are visited.


16
Thí dụ minh họa giải thuật APPROX-TSP-TOUR

17
The preorder tree walk is not simple tour, since a node be visited many
times, but it can be fixed, the tree walk visits the vertices in the order a,
b, c, b, h, b, a, d, e, f, e, g, e, d, a. From this order, we can arrive to the
hamiltonian cycle H: a, b, c, h, d, e ,f, g, a.

18
The optimal tour

The total cost of H is
approximately 19.074. An
optimal tour H* has the total
cost of approximately 14.715.

The running time of APPROX-TSP-TOUR is O(E) = O(V2),
since the input graph is a complete graph.
19
Ratio bound of APPROX-TSP-TOUR


Theorem: APPROX-TSP-TOUR is an approximation algorithm with a ratio bound of 2 for the TSP
with triangle inequality.



Proof: Let H* be an optimal tour for a given set of
vertices. Since we obtain a spanning tree by deleting
any edge from a tour, if T is a minimum spanning tree
for the given set of vertices, then
c(T) ≤ c(H*)
(1)
A full walk of T traverses every edge of T twice, we
have:
c(W) = 2c(T)
(2)
(1) and (2) imply that:
c(W) ≤ 2c(H*)
(3)



20
But W is not a tour, since it visits some vertices more
than once. By the triangle inequality, we can delete a
visit to any vertex from W. By repeatedly applying this
operation, we can remove from W all but the first visit to
each vertex.
 Let H be the cycle corresponding to this preorder walk. It
is a hamiltonian cycle, since every vertex is visited
exactly once. Since H is obtained by deleting vertices
from W, we have
c(H) ≤ c(W)
(4)
 From (3) and (4), we conclude:
c(H) ≤ 2c(H*)
So, APPROX-TSP-TOUR returns a tour whose cost is not
more than twice the cost of an optimal tour.


21
Appendix: A Taxonomy of Algorithm
Design Strategies
Strategy name
Examples
---------------------------------------------------------------------------------------Bruce-force
Sequential search, selection sort
Divide-and-conquer
Quicksort, mergesort, binary search
Decrease-and-conquer
Insertion sort, DFS, BFS
Transform-and-conquer
heapsort, Gauss elimination
Greedy
Prim’s, Dijkstra’s
Dynamic Programming
Floyd’s
Backtracking
Branch-and-Bound
Approximate algorithms
Heuristics
Meta-heuristics
22

More Related Content

PDF
Approximation Algorithms
Nicolas Bettenburg
 
PPTX
Introduction to Dynamic Programming, Principle of Optimality
Bhavin Darji
 
PPTX
Presentation of daa on approximation algorithm and vertex cover problem
sumit gyawali
 
PPT
Greedy method by Dr. B. J. Mohite
Zeal Education Society, Pune
 
PPTX
NP Complete Problems
Nikhil Joshi
 
PDF
Lecture28 tsp
Dr Sandeep Kumar Poonia
 
PPTX
Simulated Annealing
Joy Dutta
 
PPTX
Optimization Simulated Annealing
Uday Wankar
 
Approximation Algorithms
Nicolas Bettenburg
 
Introduction to Dynamic Programming, Principle of Optimality
Bhavin Darji
 
Presentation of daa on approximation algorithm and vertex cover problem
sumit gyawali
 
Greedy method by Dr. B. J. Mohite
Zeal Education Society, Pune
 
NP Complete Problems
Nikhil Joshi
 
Simulated Annealing
Joy Dutta
 
Optimization Simulated Annealing
Uday Wankar
 

What's hot (20)

PPTX
Problem reduction AND OR GRAPH & AO* algorithm.ppt
arunsingh660
 
PPTX
daa-unit-3-greedy method
hodcsencet
 
PPTX
Simulated Annealing - A Optimisation Technique
AUSTIN MOSES
 
PPTX
Graph coloring using backtracking
shashidharPapishetty
 
PPTX
Uncertainty in AI
Amruth Veerabhadraiah
 
PPTX
Theory of Computation Unit 1
Jena Catherine Bel D
 
PPT
Amortized Analysis of Algorithms
sathish sak
 
PPT
Greedy method1
Rajendran
 
PDF
Kmp
akruthi k
 
PPT
Hidden markov model ppt
Shivangi Saxena
 
PPTX
Knuth morris pratt string matching algo
sabiya sabiya
 
PPT
Max flow min cut
Mayank Garg
 
PPTX
Unit 3 random number generation, random-variate generation
raksharao
 
PPTX
Problem Formulation in Artificial Inteligence Projects
Dr. C.V. Suresh Babu
 
PPTX
Greedy Algorithm - Knapsack Problem
Madhu Bala
 
PPT
Arithmetic coding
Vikas Goyal
 
PDF
PAC Learning
Sanghyuk Chun
 
PPT
Np completeness
Rajendran
 
Problem reduction AND OR GRAPH & AO* algorithm.ppt
arunsingh660
 
daa-unit-3-greedy method
hodcsencet
 
Simulated Annealing - A Optimisation Technique
AUSTIN MOSES
 
Graph coloring using backtracking
shashidharPapishetty
 
Uncertainty in AI
Amruth Veerabhadraiah
 
Theory of Computation Unit 1
Jena Catherine Bel D
 
Amortized Analysis of Algorithms
sathish sak
 
Greedy method1
Rajendran
 
Hidden markov model ppt
Shivangi Saxena
 
Knuth morris pratt string matching algo
sabiya sabiya
 
Max flow min cut
Mayank Garg
 
Unit 3 random number generation, random-variate generation
raksharao
 
Problem Formulation in Artificial Inteligence Projects
Dr. C.V. Suresh Babu
 
Greedy Algorithm - Knapsack Problem
Madhu Bala
 
Arithmetic coding
Vikas Goyal
 
PAC Learning
Sanghyuk Chun
 
Np completeness
Rajendran
 
Ad

Similar to Chap8 new (20)

PPT
Giáo trình Phân tích và thiết kế giải thuật - CHAP 8
Nguyễn Công Hoàng
 
PDF
Daa chapter11
B.Kirron Reddi
 
PPT
Analysis of Algorithm
أحلام انصارى
 
PPTX
Design and Analysis of Algorithms Assignment Help
Programming Homework Help
 
PPTX
Design and Analysis of Algorithms Exam Help
Programming Exam Help
 
PPT
Approx
guest0264d3b
 
PPTX
Approximation
RiyaSingh235
 
PDF
04 greedyalgorithmsii 2x2
MuradAmn
 
PPTX
NP-Completeness - II
Amrinder Arora
 
PDF
Seminar Report (Final)
Aruneel Das
 
PPTX
Computer Network Homework Help
Computer Network Assignment Help
 
PDF
Unit 3 - Greedy Method
MaryJacob24
 
PDF
Unit 3 greedy method
MaryJacob24
 
PDF
fb69b412-97cb-4e8d-8a28-574c09557d35-160618025920
Karl Rudeen
 
PDF
Project Paper
Brian Whetter
 
PPTX
Minimum spanning tree
AhmedMalik74
 
PDF
Minimum Spanning Trees Artificial Intelligence
jiraf23341
 
PDF
Absorbing Random Walk Centrality
Michael Mathioudakis
 
PPTX
unit-4-dynamic programming
hodcsencet
 
PPTX
Vertex cover Problem
Gajanand Sharma
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 8
Nguyễn Công Hoàng
 
Daa chapter11
B.Kirron Reddi
 
Analysis of Algorithm
أحلام انصارى
 
Design and Analysis of Algorithms Assignment Help
Programming Homework Help
 
Design and Analysis of Algorithms Exam Help
Programming Exam Help
 
Approx
guest0264d3b
 
Approximation
RiyaSingh235
 
04 greedyalgorithmsii 2x2
MuradAmn
 
NP-Completeness - II
Amrinder Arora
 
Seminar Report (Final)
Aruneel Das
 
Computer Network Homework Help
Computer Network Assignment Help
 
Unit 3 - Greedy Method
MaryJacob24
 
Unit 3 greedy method
MaryJacob24
 
fb69b412-97cb-4e8d-8a28-574c09557d35-160618025920
Karl Rudeen
 
Project Paper
Brian Whetter
 
Minimum spanning tree
AhmedMalik74
 
Minimum Spanning Trees Artificial Intelligence
jiraf23341
 
Absorbing Random Walk Centrality
Michael Mathioudakis
 
unit-4-dynamic programming
hodcsencet
 
Vertex cover Problem
Gajanand Sharma
 
Ad

More from Loc Tran (13)

DOCX
đạI học quốc gia thành phố hồ chí minh
Loc Tran
 
PPT
Chap7 new
Loc Tran
 
PPT
Chap6 new
Loc Tran
 
PPT
Chap5 new
Loc Tran
 
PPT
Chap4 new
Loc Tran
 
PPT
Chap4 new (tran dai's conflicted copy 2013 04-02)
Loc Tran
 
PPT
Chap3 new
Loc Tran
 
PPT
Chap2 new
Loc Tran
 
PPT
Chap2 new (tran dai's conflicted copy 2013 04-02)
Loc Tran
 
PPT
Chap1 new (tran dai's conflicted copy 2013 04-02)
Loc Tran
 
PPT
Appendix b 2
Loc Tran
 
PPT
Appendix a 2
Loc Tran
 
PPT
Chap8 part ii
Loc Tran
 
đạI học quốc gia thành phố hồ chí minh
Loc Tran
 
Chap7 new
Loc Tran
 
Chap6 new
Loc Tran
 
Chap5 new
Loc Tran
 
Chap4 new
Loc Tran
 
Chap4 new (tran dai's conflicted copy 2013 04-02)
Loc Tran
 
Chap3 new
Loc Tran
 
Chap2 new
Loc Tran
 
Chap2 new (tran dai's conflicted copy 2013 04-02)
Loc Tran
 
Chap1 new (tran dai's conflicted copy 2013 04-02)
Loc Tran
 
Appendix b 2
Loc Tran
 
Appendix a 2
Loc Tran
 
Chap8 part ii
Loc Tran
 

Recently uploaded (20)

PDF
The Minister of Tourism, Culture and Creative Arts, Abla Dzifa Gomashie has e...
nservice241
 
PPTX
20250924 Navigating the Future: How to tell the difference between an emergen...
McGuinness Institute
 
PDF
BÀI TẬP TEST BỔ TRỢ THEO TỪNG CHỦ ĐỀ CỦA TỪNG UNIT KÈM BÀI TẬP NGHE - TIẾNG A...
Nguyen Thanh Tu Collection
 
DOCX
pgdei-UNIT -V Neurological Disorders & developmental disabilities
JELLA VISHNU DURGA PRASAD
 
PDF
Review of Related Literature & Studies.pdf
Thelma Villaflores
 
PPTX
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
PPTX
CDH. pptx
AneetaSharma15
 
PPTX
PROTIEN ENERGY MALNUTRITION: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
PPTX
Care of patients with elImination deviation.pptx
AneetaSharma15
 
PPTX
HISTORY COLLECTION FOR PSYCHIATRIC PATIENTS.pptx
PoojaSen20
 
PPTX
How to Apply for a Job From Odoo 18 Website
Celine George
 
PPTX
How to Close Subscription in Odoo 18 - Odoo Slides
Celine George
 
PDF
Antianginal agents, Definition, Classification, MOA.pdf
Prerana Jadhav
 
PPTX
Basics and rules of probability with real-life uses
ravatkaran694
 
PDF
Health-The-Ultimate-Treasure (1).pdf/8th class science curiosity /samyans edu...
Sandeep Swamy
 
PPTX
Introduction to pediatric nursing in 5th Sem..pptx
AneetaSharma15
 
PPTX
An introduction to Prepositions for beginners.pptx
drsiddhantnagine
 
PPTX
Command Palatte in Odoo 18.1 Spreadsheet - Odoo Slides
Celine George
 
PPTX
Python-Application-in-Drug-Design by R D Jawarkar.pptx
Rahul Jawarkar
 
PDF
Virat Kohli- the Pride of Indian cricket
kushpar147
 
The Minister of Tourism, Culture and Creative Arts, Abla Dzifa Gomashie has e...
nservice241
 
20250924 Navigating the Future: How to tell the difference between an emergen...
McGuinness Institute
 
BÀI TẬP TEST BỔ TRỢ THEO TỪNG CHỦ ĐỀ CỦA TỪNG UNIT KÈM BÀI TẬP NGHE - TIẾNG A...
Nguyen Thanh Tu Collection
 
pgdei-UNIT -V Neurological Disorders & developmental disabilities
JELLA VISHNU DURGA PRASAD
 
Review of Related Literature & Studies.pdf
Thelma Villaflores
 
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
CDH. pptx
AneetaSharma15
 
PROTIEN ENERGY MALNUTRITION: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
Care of patients with elImination deviation.pptx
AneetaSharma15
 
HISTORY COLLECTION FOR PSYCHIATRIC PATIENTS.pptx
PoojaSen20
 
How to Apply for a Job From Odoo 18 Website
Celine George
 
How to Close Subscription in Odoo 18 - Odoo Slides
Celine George
 
Antianginal agents, Definition, Classification, MOA.pdf
Prerana Jadhav
 
Basics and rules of probability with real-life uses
ravatkaran694
 
Health-The-Ultimate-Treasure (1).pdf/8th class science curiosity /samyans edu...
Sandeep Swamy
 
Introduction to pediatric nursing in 5th Sem..pptx
AneetaSharma15
 
An introduction to Prepositions for beginners.pptx
drsiddhantnagine
 
Command Palatte in Odoo 18.1 Spreadsheet - Odoo Slides
Celine George
 
Python-Application-in-Drug-Design by R D Jawarkar.pptx
Rahul Jawarkar
 
Virat Kohli- the Pride of Indian cricket
kushpar147
 

Chap8 new

  • 2. Outline     Why approximation algorithms? The vertex cover problem The set cover problem TSP 2
  • 3. Why Approximation Algorithms ?     Many problems of practical significance are NPcomplete but are too important to abandon merely because obtaining an optimal solution is intractable. If a problem is NP-complete, we are unlikely to find a polynomial time algorithm for solving it exactly, but it may still be possible to find near-optimal solution in polynomial time. In practice, near-optimality is often good enough. An algorithm that returns near-optimal solutions is called an approximation algorithm. 3
  • 4. Performance bounds for approximation algorithms      i is an optimization problem instance c(i) be the cost of solution produced by approximate algorithm and c*(i) be the cost of optimal solution. For minimization problem, we want c(i)/c*(i) to be as small as possible. For maximization problem, we want c*(i)/c(i) to be as small as possible. An approximation algorithm for the given problem instance i, has a ratio bound of p(n) if for any input of size n, the cost c of the solution produced by the approximation algorithm is within a factor of p(n) of the cost c* of an optimal solution. That is max(c(i)/c*(i), c*(i)/c(i)) ≤ p(n) 4
  • 5.     Note that p(n) is always greater than or equal to 1. If p(n) = 1 then the approximate algorithm is an optimal algorithm. The larger p(n), the worst algorithm Relative error   We define the relative error of the approximate algorithm for any input size as |c(i) - c*(i)|/ c*(i) We say that an approximate algorithm has a relative error bound of ε(n) if |c(i)-c*(i)|/c*(i)≤ ε(n) 5
  • 6. 1. The Vertex-Cover Problem     Vertex cover: given an undirected graph G=(V,E), then a subset V'⊆V such that if (u,v)∈E, then u∈V' or v ∈V' (or both). Size of a vertex cover: the number of vertices in it. Vertex-cover problem: find a vertex-cover of minimal size. This problem is NP-hard, since the related decision problem is NP-complete 6
  • 7. Approximate vertex-cover algorithm The running time of this algorithm is O(E). 7
  • 8. 8
  • 9. Theorem:   APPROXIMATE-VERTEX-COVER has a ratio bound of 2, i.e., the size of returned vertex cover set is at most twice of the size of optimal vertexcover. Proof:    It runs in poly time The returned C is a vertex-cover. Let A be the set of edges picked in line 4 and C* be the optimal vertex-cover.   Then C* must include at least one end of each edge in A and no two edges in A are covered by the same vertex in C*, so |C*|≥|A|. Moreover, |C|=2|A|, so |C|≤2|C*|. 9
  • 10. The Set Covering Problem   The set covering problem is an optimization problem that models many resource-selection problems. An instance (X, F) of the set-covering problem consists of a finite set X and a family F of subsets of X, such that every element of X belongs to at least one subset in F: X =∪S S∈F  We say that a subset S∈F covers its elements. The problem is to find a minimum-size subset C ⊆ F whose members cover all of X: X =∪S S∈C  We say that any C satisfying the above equation covers X. 10
  • 11. Figure 6.2 An instance {X, F} of the set covering problem, where X consists of the 12 black points and F = { S1, S2, S3, S4, S5, S6}. A minimum size set cover is C = { S3, S4, S5}. The greedy algorithm produces the set C’ = {S1, S4, S5, S3} in order. 11
  • 12. Applications of Set-covering problem     Assume that X is a set of skills that are needed to solve a problem and we have a set of people available to work on it. We wish to form a team, containing as few people as possible, s.t. for every requisite skill in X, there is a member in the team having that skill. Assign emergency stations (fire stations) in a city. Allocate sale branch offices for a company. Schedule for bus drivers. 12
  • 13. A greedy approximation algorithm Greedy-Set-Cover(X, F) 1. U = X 2. C = ∅ 3. while U != ∅ do 4. select an S∈F that maximizes | S ∩ U| 5. U=U–S 6. C = C ∪ {S} 7. return C The algorithm GREEDY-SET-COVER can easily be implemented to run in time complexity in |X| and |F|. Since the number of iterations of the loop on line 3-6 is at most min(|X|, | F|) and the loop body can be implemented to run in time O(| X|,|F|), there is an implementation that runs in time O(|X|,|F| min(|X|,|F|) . 13
  • 14. Ratio bound of Greedy-set-cover  Let denote the dth harmonic number d hd = Σi-11/i   Theorem: Greedy-set-cover has a ratio bound H(max{|S|: S ∈F}) Corollary: Greedy-set-cover has a ratio bound of (ln| X| +1) (Refer to the text book for the proofs) 14
  • 15. 3. The Traveling Salesman Problem  Since finding the shortest tour for TSP requires so much computation, we may consider to find a tour that is almost as short as the shortest. That is, it may be possible to find near-optimal solution.  Example: We can use an approximation algorithm for the HCP. It's relatively easy to find a tour that is longer by at most a factor of two than the optimal tour. The method is based on   the algorithm for finding the minimum spanning tree and an observation that it is always cheapest to go directly from a vertex u to a vertex w; going by way of any intermediate stop v can’t be less expensive. C(u,w) ≤ C(u,v)+ C(v,w) 15
  • 16. APPROX-TSP-TOUR The algorithm computes a near-optimal tour of an undirected graph G. procedure APPROX-TSP-TOUR(G, c); begin select a vertex r ∈ V[G] to be the “root” vertex; grow a minimum spanning tree T for G from root r, using Prim’s algorithm; apply a preorder tree walk of T and let L be the list of vertices visited in the walk; form the halmintonian cycle H that visits the vertices in the order of L. /* H is the result to return * / end A preorder tree walk recursively visits every vertex in the tree, listing a vertex when its first encountered, before any of its children are visited.  16
  • 17. Thí dụ minh họa giải thuật APPROX-TSP-TOUR 17
  • 18. The preorder tree walk is not simple tour, since a node be visited many times, but it can be fixed, the tree walk visits the vertices in the order a, b, c, b, h, b, a, d, e, f, e, g, e, d, a. From this order, we can arrive to the hamiltonian cycle H: a, b, c, h, d, e ,f, g, a. 18
  • 19. The optimal tour The total cost of H is approximately 19.074. An optimal tour H* has the total cost of approximately 14.715. The running time of APPROX-TSP-TOUR is O(E) = O(V2), since the input graph is a complete graph. 19
  • 20. Ratio bound of APPROX-TSP-TOUR  Theorem: APPROX-TSP-TOUR is an approximation algorithm with a ratio bound of 2 for the TSP with triangle inequality.  Proof: Let H* be an optimal tour for a given set of vertices. Since we obtain a spanning tree by deleting any edge from a tour, if T is a minimum spanning tree for the given set of vertices, then c(T) ≤ c(H*) (1) A full walk of T traverses every edge of T twice, we have: c(W) = 2c(T) (2) (1) and (2) imply that: c(W) ≤ 2c(H*) (3)  20
  • 21. But W is not a tour, since it visits some vertices more than once. By the triangle inequality, we can delete a visit to any vertex from W. By repeatedly applying this operation, we can remove from W all but the first visit to each vertex.  Let H be the cycle corresponding to this preorder walk. It is a hamiltonian cycle, since every vertex is visited exactly once. Since H is obtained by deleting vertices from W, we have c(H) ≤ c(W) (4)  From (3) and (4), we conclude: c(H) ≤ 2c(H*) So, APPROX-TSP-TOUR returns a tour whose cost is not more than twice the cost of an optimal tour.  21
  • 22. Appendix: A Taxonomy of Algorithm Design Strategies Strategy name Examples ---------------------------------------------------------------------------------------Bruce-force Sequential search, selection sort Divide-and-conquer Quicksort, mergesort, binary search Decrease-and-conquer Insertion sort, DFS, BFS Transform-and-conquer heapsort, Gauss elimination Greedy Prim’s, Dijkstra’s Dynamic Programming Floyd’s Backtracking Branch-and-Bound Approximate algorithms Heuristics Meta-heuristics 22