Bài giảng Phân tích và thiết kế giải thuật - Chương 8: Approximation Algorithms - Dương Tuấn Anh

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 NP-  
complete 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 vertex-  
cover.  
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 approxima-  
tion 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  
Tải về để xem bản đầy đủ
pdf 22 trang myanh 23960 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phân tích và thiết kế giải thuật - Chương 8: Approximation Algorithms - Dương Tuấn Anh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_phan_tich_va_thiet_ke_giai_thuat_chuong_8_approxim.pdf