Daa chapter11

B.Kirron Reddi
B.Kirron ReddiSenior Lecturer em College

Design and Analysis of Algorithms

Approximation Algorithms
Many problems of practical significance are NP-complete but are
too important to abandon nearly because obtaining an optimal solution is
intractable. If a problem is NP-complete it is unlikely to find a polynomial time
algorithm for solving it exactly.
There are 3 approaches to getting around NP-completeness:
I. If the actual inputs are small an algorithm with exponential
running time may be perfectly satisfactory.
II. We may be able to isolate important special cases that are solvable
in polynomial time.
III. It may be possible to find near optimal solutions in polynomial time either
in the worst case or an average.
An algorithm that returns near optimal solution is called an approximation
algorithm.
Performance ratio for approximation algorithms:
Suppose we are working on an optimization problem in which
each potential solution has a positive cost and we wish to find a near optimal
solution. Depending on the problem an optimal solution may be defined as one
with minimum possible cost. That is a problem may be either a minimization or
maximization problem.
While there is no efficient way of finding the optimal solution to several of
them, e.g. traveling salesman, there are ways to efficiently find approximate
solutions. It is interesting that while we may not know the optimal value, we can
know how far (worst case) our approximate solution is from the optimal.
Performance Ratio
We define a quantity ρ(n) known as the approximation ratio as
This ratio measures the ratio between the approximate solution and the
optimal solution. Clearly the optimal solution has ρ(n) = 1. Thus if we can show a
particular performance ratio for an approximation algorithm, we can say that the
approximate solution is within a factor of ρ(n) of the optimal (again without
knowing what the optimal value is). Such a solution is known as a ρ(n)-
approximation algorithm.
3.3.1. Approximate Vertex Cover
The first problem we will find an approximate solution to is vertex cover.
As a review, the vertex cover problem is to find the minimum subset of vertices that
touch every edge in a graph.
The following algorithm can find an approximate vertex cover that contains
no more than twice the minimum number of vertices, i.e. is a 2-approximation
algorithm.
Algorithm
APPROX-VERTEX-COVER(G)
1. C = ∅
2. E' = G.E
3. while E' ≠ ∅
4. let (u,v) be an arbitrary edge of E'
5. C = C ∪ {u,v}
6. remove from E' every edge incident on either u or v
7. return C
The algorithm simply selects an edge (adding the endpoints to the vertex
cover) and removes any other edges incident on its endpoints (since these are
covered by the endpoints). It repeats this process until there are no more edges to
remove. Clearly this algorithm runs in polynomial time (O(E)).
Proof
Clearly when the algorithm terminates, the set C will be a vertex cover (since all
edges will be touched by a vertex). Assume line 4 of the algorithm keeps the set of
edges A. To cover these edges, any vertex cover (including the optimal one C*)
needs to contain at least one endpoint for each edge. However in A, no two edges
share an endpoint since once an edge is selected in line 4, all other edges incident to
its endpoints are removed. Therefore, no two edges in A are covered by the same
vertex from C* giving
|C*| ≥ |A|
Because the algorithm selects edges with endpoints not currently in the set C,
clearly (since every edge will have 2 distinct vertices)
|C| = 2 |A|
Combining these two equations gives
|C*| ≥ |C| / 2
⇒ |C| ≤ 2 |C*|
Hence the algorithm returns a vertex cover with no more than twice the number of
vertices in an optimal vertex cover.
Example
Consider the following graph
Iteration 1: Arbitrarily choose edge (1,2) so that C = {1, 2} (removing edges (1,4),
(2,3) and (2,5))
Iteration 2: Arbitrarily choose edge (5,6) so that C = {1, 2, 5, 6} (removing edges
(2,5) and (3,5))
Iteration 3: Arbitrarily choose edge (3,7) so that C = {1, 2, 5, 6, 3, 7} (removing
edge (3,6))
Hence the approximate vertex cover C = {1, 2, 5, 6, 3, 7} of size 6.
The optimal vertex cover (of size 3) is C* = {1, 3, 5} as shown below
3.3.2. Approximate Traveling Salesman
Another NP-complete problem that can be solved by a 2-approximation
algorithm is traveling salesman. The traveling salesman problem is given a
complete graph with nonnegative weight edge costs c(u, v), find a minimum weight
simple tour (i.e. path that touches each vertex exactly once except for the endpoint).
A special case of traveling salesman is a complete graph that satisfies the triangle
inequality that for all vertices u, v, and w ∈ V
c(u, v) ≤ c(u, w) + c(w, v)
basically that it is faster to go directly between two points than through an
intermediate vertex. It can be shown that even by imposing this constraint on the
graph that this version of traveling salesman is still NP-complete (and also that
without this constraint that there is no good approximation algorithm
unless P = NP).
The following algorithm, which utilizes Prim's algorithm for finding MST,
can find a tour of weight no more than twice the optimal.
A preorder tree walk simply recursively visits vertices in the tree based on when
they were discovered. This approximation algorithm runs in O(V2).
Proof
Let H* be an optimal tour with cost c(H*). Since we can construct a
spanning tree from a tour by simply removing any edge (which for TSP is
nonnegative), the cost of the MST T must be a lower bound on the cost of the
optimal tour
c(T) ≤ c(H*)
Consider a full walk W that visits each vertex both upon the initial
recursion and whenever the tour revisits the vertex as recursive branches are
completed. Therefore each edge of T will be traversed exactly twice for W giving
c(W) = 2 c(T)
Combining the above two equations gives
c(W) ≤ 2 c(H*)
However since the walk W visits some vertices more than once, it is not a
tour. But since the graph satisfies the triangle inequality, removing any vertex from
the walk will not increase the cost of the walk (since it will be lower cost to go
direct). By repeatedly removing all but the first visit to each vertex, we obtain the
preordered walk (that contains all the vertices once except for the root) giving a
hamiltonian tour H. Since we only removed vertices from W (not increasing the
cost at any step by the triangle inequality)
c(H) ≤ c(W)
Finally combining this inequality with the previous one gives
c(H) ≤ 2 c(H*)
Thus the tour found by the algorithm will have cost at worst twice the optimal
value.
Example
Consider the following (complete) graph where the edge weights are simply
the Euclidean distances between the vertices (which clearly satisfies the triangle
inequality)
Running Prim's algorithm on this graph (starting with vertex 1) gives the
following MST with the vertices labeled in order of removal from the priority queue
(i.e. the order in which they were added to the MST).
The full walk for this tree would be the path <1, 2, 3, 2, 8, 2, 1, 4, 5, 6, 5, 7,
5, 4, 1> shown below
Removing vertices according to the preorder walk (when the vertex is first
visited) gives the tour <1, 2, 3, 8, 4, 5, 6, 7, 1> shown below
The optimal tour is shown below in red. The approximate tour has cost ≈ 19.1
whereas the optimal tour has cost ≈ 14.7.
3.3.4. Subset Sum Problem
The subset-sum problem finds a subset of a given set A = {a1, . . . , an}
of n positive integers whose sum is equal to a given positive integer d. For
example, for A = {1, 2, 5, 6, 8} and d = 9, there are two solutions: {1, 2, 6} and
{1, 8}. Of course, some instances of this problem may have no solutions.
It is convenient to sort the set’s elements in increasing order. So, we
will assume that a1< a2 < . . . < an.
A = {3, 5, 6, 7} and d = 15 of the subset-sum problem. The number
inside a node is the sum of the elements already included in the subsets
represented by the node. The inequality below a leaf indicates the reason for its
termination.
Complete state-space tree of the backtracking algorithm applied to the
instance
Example:
 The state-space tree can be constructed as a binary tree like that in Figure
for the instance A = {3, 5, 6, 7} and d = 15.
 The root of the tree represents the starting point, with no decisions about
the given elements made as yet.
 Its left and right children represent, respectively, inclusion and exclusion of
a1 in a set being sought. Similarly, going to the left from a node of the first
level corresponds to inclusion of a2 while going to the right corresponds to
its exclusion, and so on.
 Thus, a path from the root to a node on the ith level of the tree indicates
which of the first I numbers have been included in the subsets represented
by that node.
 We record the value of s, the sum of these numbers, in the node.
 If s is equal to d, we have a solution to the problem. We can either report
this result and stop or, if all the solutions need to be found, continue by
backtracking to the node’s parent.
General Remarks
From a more general perspective, most backtracking algorithms fit the
following escription. An output of a backtracking algorithm can be thought of
as an n-tuple (x1, x2, . . . , xn) where each coordinate xi is an element of some
finite lin early ordered set Si . For example, for the n-queens problem, each Si
is the set of integers (column numbers) 1 through n.
A backtracking algorithm generates, explicitly or implicitly, a state-
space tree; its nodes represent partially constructed tuples with the first i
coordinates defined by the earlier actions of the algorithm. If such a tuple (x1,
x2, . . . , xi) is not a solution, the algorithm finds the next element in Si+1 that is
consistent with the values of ((x1, x2, . . . , xi) and the problem’s constraints, and
adds it to the tuple as its (i + 1)st coordinate. If such an element does not exist,
the algorithm backtracks to consider the next value of xi, and so on.
Algorithm backtrack(x [1..i] )
//Gives a template of a generic backtracking algorithm
//Input: X[1..i] specifies first i promising components of a solution
//Output: All the tuples representing the problem’s solutions
if X[1..i] is a solution write∈X[1..i]
else //see Problem this section
for each element x Si+1 consistent with X[1..i] and
the constraints do X[i + 1] ← x
Backtrack(X[1..i + 1])

Recomendados

Chemistry Assignment Help por
Chemistry Assignment Help Chemistry Assignment Help
Chemistry Assignment Help Edu Assignment Help
25 visualizações27 slides
Computer Science Assignment Help por
Computer Science Assignment Help Computer Science Assignment Help
Computer Science Assignment Help Programming Homework Help
42 visualizações29 slides
Numerical Methods por
Numerical MethodsNumerical Methods
Numerical MethodsESUG
1.3K visualizações50 slides
01.02 linear equations por
01.02 linear equations01.02 linear equations
01.02 linear equationsAndres Mendez-Vazquez
95 visualizações189 slides
05 linear transformations por
05 linear transformations05 linear transformations
05 linear transformationsAndres Mendez-Vazquez
173 visualizações291 slides
01.01 vector spaces por
01.01 vector spaces01.01 vector spaces
01.01 vector spacesAndres Mendez-Vazquez
113 visualizações117 slides

Mais conteúdo relacionado

Mais procurados

Signal Processing Homework Help por
Signal Processing Homework HelpSignal Processing Homework Help
Signal Processing Homework HelpMatlab Assignment Experts
64 visualizações11 slides
Analysis of Algorithm por
Analysis of AlgorithmAnalysis of Algorithm
Analysis of Algorithmأحلام انصارى
3.6K visualizações89 slides
Beginning direct3d gameprogrammingmath03_vectors_20160328_jintaeks por
Beginning direct3d gameprogrammingmath03_vectors_20160328_jintaeksBeginning direct3d gameprogrammingmath03_vectors_20160328_jintaeks
Beginning direct3d gameprogrammingmath03_vectors_20160328_jintaeksJinTaek Seo
193 visualizações38 slides
Stochastic Assignment Help por
Stochastic Assignment Help Stochastic Assignment Help
Stochastic Assignment Help Statistics Assignment Help
28 visualizações10 slides
Chapter 12 vectors and the geometry of space merged por
Chapter 12 vectors and the geometry of space mergedChapter 12 vectors and the geometry of space merged
Chapter 12 vectors and the geometry of space mergedEasyStudy3
929 visualizações137 slides
Week 6 por
Week 6Week 6
Week 6EasyStudy3
236 visualizações81 slides

Mais procurados(20)

Beginning direct3d gameprogrammingmath03_vectors_20160328_jintaeks por JinTaek Seo
Beginning direct3d gameprogrammingmath03_vectors_20160328_jintaeksBeginning direct3d gameprogrammingmath03_vectors_20160328_jintaeks
Beginning direct3d gameprogrammingmath03_vectors_20160328_jintaeks
JinTaek Seo193 visualizações
Chapter 12 vectors and the geometry of space merged por EasyStudy3
Chapter 12 vectors and the geometry of space mergedChapter 12 vectors and the geometry of space merged
Chapter 12 vectors and the geometry of space merged
EasyStudy3929 visualizações
Week 6 por EasyStudy3
Week 6Week 6
Week 6
EasyStudy3236 visualizações
NUMERICAL METHODS MULTIPLE CHOICE QUESTIONS por naveen kumar
NUMERICAL METHODS MULTIPLE CHOICE QUESTIONSNUMERICAL METHODS MULTIPLE CHOICE QUESTIONS
NUMERICAL METHODS MULTIPLE CHOICE QUESTIONS
naveen kumar124.3K visualizações
Project in Calcu por patrickpaz
Project in CalcuProject in Calcu
Project in Calcu
patrickpaz398 visualizações
01.04 orthonormal basis_eigen_vectors por Andres Mendez-Vazquez
01.04 orthonormal basis_eigen_vectors01.04 orthonormal basis_eigen_vectors
01.04 orthonormal basis_eigen_vectors
Andres Mendez-Vazquez138 visualizações
01.03 squared matrices_and_other_issues por Andres Mendez-Vazquez
01.03 squared matrices_and_other_issues01.03 squared matrices_and_other_issues
01.03 squared matrices_and_other_issues
Andres Mendez-Vazquez99 visualizações
Presentation on application of numerical method in our life por Manish Kumar Singh
Presentation on application of numerical method in our lifePresentation on application of numerical method in our life
Presentation on application of numerical method in our life
Manish Kumar Singh18.6K visualizações
Numerical por 1821986
NumericalNumerical
Numerical
18219864.1K visualizações
THE CALCULUS INTEGRAL (Beta Version 2009) por briansthomson
THE CALCULUS INTEGRAL (Beta Version 2009)THE CALCULUS INTEGRAL (Beta Version 2009)
THE CALCULUS INTEGRAL (Beta Version 2009)
briansthomson4.9K visualizações
Newton cotes integration method por shashikant pabari
Newton cotes integration  methodNewton cotes integration  method
Newton cotes integration method
shashikant pabari9.4K visualizações

Similar a Daa chapter11

Giáo trình Phân tích và thiết kế giải thuật - CHAP 8 por
Giáo trình Phân tích và thiết kế giải thuật - CHAP 8Giáo trình Phân tích và thiết kế giải thuật - CHAP 8
Giáo trình Phân tích và thiết kế giải thuật - CHAP 8Nguyễn Công Hoàng
1.5K visualizações22 slides
Chap8 new por
Chap8 newChap8 new
Chap8 newLoc Tran
1.7K visualizações22 slides
Presentation of daa on approximation algorithm and vertex cover problem por
Presentation of daa on approximation algorithm and vertex cover problem Presentation of daa on approximation algorithm and vertex cover problem
Presentation of daa on approximation algorithm and vertex cover problem sumit gyawali
681 visualizações8 slides
Parallel algorithm in linear algebra por
Parallel algorithm in linear algebraParallel algorithm in linear algebra
Parallel algorithm in linear algebraHarshana Madusanka Jayamaha
1.3K visualizações26 slides
2016 - Nonlinear Eigenvalue Problems And Contour Integrals por
2016 - Nonlinear Eigenvalue Problems And Contour Integrals2016 - Nonlinear Eigenvalue Problems And Contour Integrals
2016 - Nonlinear Eigenvalue Problems And Contour IntegralsDereck Downing
19 visualizações15 slides
Cs6402 design and analysis of algorithms may june 2016 answer key por
Cs6402 design and analysis of algorithms may june 2016 answer keyCs6402 design and analysis of algorithms may june 2016 answer key
Cs6402 design and analysis of algorithms may june 2016 answer keyappasami
7.4K visualizações14 slides

Similar a Daa chapter11(20)

Giáo trình Phân tích và thiết kế giải thuật - CHAP 8 por Nguyễn Công Hoàng
Giáo trình Phân tích và thiết kế giải thuật - CHAP 8Giáo trình Phân tích và thiết kế giải thuật - CHAP 8
Giáo trình Phân tích và thiết kế giải thuật - CHAP 8
Nguyễn Công Hoàng1.5K visualizações
Chap8 new por Loc Tran
Chap8 newChap8 new
Chap8 new
Loc Tran1.7K visualizações
Presentation of daa on approximation algorithm and vertex cover problem por sumit gyawali
Presentation of daa on approximation algorithm and vertex cover problem Presentation of daa on approximation algorithm and vertex cover problem
Presentation of daa on approximation algorithm and vertex cover problem
sumit gyawali681 visualizações
2016 - Nonlinear Eigenvalue Problems And Contour Integrals por Dereck Downing
2016 - Nonlinear Eigenvalue Problems And Contour Integrals2016 - Nonlinear Eigenvalue Problems And Contour Integrals
2016 - Nonlinear Eigenvalue Problems And Contour Integrals
Dereck Downing19 visualizações
Cs6402 design and analysis of algorithms may june 2016 answer key por appasami
Cs6402 design and analysis of algorithms may june 2016 answer keyCs6402 design and analysis of algorithms may june 2016 answer key
Cs6402 design and analysis of algorithms may june 2016 answer key
appasami7.4K visualizações
test pre por farazch
test pretest pre
test pre
farazch458 visualizações
Conjugate Gradient Methods por MTiti1
Conjugate Gradient MethodsConjugate Gradient Methods
Conjugate Gradient Methods
MTiti110 visualizações
Series_Solution_Methods_and_Special_Func.pdf por mohamedtawfik358886
Series_Solution_Methods_and_Special_Func.pdfSeries_Solution_Methods_and_Special_Func.pdf
Series_Solution_Methods_and_Special_Func.pdf
mohamedtawfik3588862 visualizações
A New Heuristic Procedure To Solve The Traveling Salesman Problem por Jose Katab
A New Heuristic Procedure To Solve The Traveling Salesman ProblemA New Heuristic Procedure To Solve The Traveling Salesman Problem
A New Heuristic Procedure To Solve The Traveling Salesman Problem
Jose Katab2 visualizações
Unit 3- Greedy Method.pptx por MaryJacob24
Unit 3- Greedy Method.pptxUnit 3- Greedy Method.pptx
Unit 3- Greedy Method.pptx
MaryJacob2412 visualizações
Seminar Report (Final) por Aruneel Das
Seminar Report (Final)Seminar Report (Final)
Seminar Report (Final)
Aruneel Das574 visualizações
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGA por Ahmed Gamal Abdel Gawad
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGAScientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
Ahmed Gamal Abdel Gawad389 visualizações
Weighted graphs por Core Condor
Weighted graphsWeighted graphs
Weighted graphs
Core Condor3.7K visualizações
Dynamic programming1 por debolina13
Dynamic programming1Dynamic programming1
Dynamic programming1
debolina131.1K visualizações
Daa chapter 2 por B.Kirron Reddi
Daa chapter 2Daa chapter 2
Daa chapter 2
B.Kirron Reddi46 visualizações
An Analytical Approach For Solving Nonlinear Boundary Value Problems In Finit... por Stephen Faucher
An Analytical Approach For Solving Nonlinear Boundary Value Problems In Finit...An Analytical Approach For Solving Nonlinear Boundary Value Problems In Finit...
An Analytical Approach For Solving Nonlinear Boundary Value Problems In Finit...
Stephen Faucher2 visualizações
Unit 3 - Greedy Method por MaryJacob24
Unit 3  - Greedy MethodUnit 3  - Greedy Method
Unit 3 - Greedy Method
MaryJacob2495 visualizações

Mais de B.Kirron Reddi

What after graduation_-_mba por
What after graduation_-_mbaWhat after graduation_-_mba
What after graduation_-_mbaB.Kirron Reddi
95 visualizações14 slides
What after graduation_-_banks por
What after graduation_-_banksWhat after graduation_-_banks
What after graduation_-_banksB.Kirron Reddi
75 visualizações26 slides
What after graduation_-_mca por
What after graduation_-_mcaWhat after graduation_-_mca
What after graduation_-_mcaB.Kirron Reddi
64 visualizações10 slides
Daa chpater14 por
Daa chpater14Daa chpater14
Daa chpater14B.Kirron Reddi
32 visualizações13 slides
Daa chpater 12 por
Daa chpater 12Daa chpater 12
Daa chpater 12B.Kirron Reddi
22 visualizações16 slides
Daa chapter13 por
Daa chapter13Daa chapter13
Daa chapter13B.Kirron Reddi
22 visualizações8 slides

Mais de B.Kirron Reddi(17)

What after graduation_-_mba por B.Kirron Reddi
What after graduation_-_mbaWhat after graduation_-_mba
What after graduation_-_mba
B.Kirron Reddi95 visualizações
What after graduation_-_banks por B.Kirron Reddi
What after graduation_-_banksWhat after graduation_-_banks
What after graduation_-_banks
B.Kirron Reddi75 visualizações
What after graduation_-_mca por B.Kirron Reddi
What after graduation_-_mcaWhat after graduation_-_mca
What after graduation_-_mca
B.Kirron Reddi64 visualizações
Daa chpater14 por B.Kirron Reddi
Daa chpater14Daa chpater14
Daa chpater14
B.Kirron Reddi32 visualizações
Daa chpater 12 por B.Kirron Reddi
Daa chpater 12Daa chpater 12
Daa chpater 12
B.Kirron Reddi22 visualizações
Daa chapter13 por B.Kirron Reddi
Daa chapter13Daa chapter13
Daa chapter13
B.Kirron Reddi22 visualizações
Daa chapter10 por B.Kirron Reddi
Daa chapter10Daa chapter10
Daa chapter10
B.Kirron Reddi26 visualizações
Daa chapter9 por B.Kirron Reddi
Daa chapter9Daa chapter9
Daa chapter9
B.Kirron Reddi16 visualizações
Daa chapter8 por B.Kirron Reddi
Daa chapter8Daa chapter8
Daa chapter8
B.Kirron Reddi10 visualizações
Daa chapter7 por B.Kirron Reddi
Daa chapter7Daa chapter7
Daa chapter7
B.Kirron Reddi28 visualizações
Daa chapter6 por B.Kirron Reddi
Daa chapter6Daa chapter6
Daa chapter6
B.Kirron Reddi29 visualizações
Daa chapter5 por B.Kirron Reddi
Daa chapter5Daa chapter5
Daa chapter5
B.Kirron Reddi35 visualizações
Daa chapter4 por B.Kirron Reddi
Daa chapter4Daa chapter4
Daa chapter4
B.Kirron Reddi31 visualizações
Daa chapter 3 por B.Kirron Reddi
Daa chapter 3Daa chapter 3
Daa chapter 3
B.Kirron Reddi28 visualizações
Daa chapter 1 por B.Kirron Reddi
Daa chapter 1Daa chapter 1
Daa chapter 1
B.Kirron Reddi90 visualizações
Daa contents by B.Kirron Reddi por B.Kirron Reddi
Daa contents by B.Kirron ReddiDaa contents by B.Kirron Reddi
Daa contents by B.Kirron Reddi
B.Kirron Reddi38 visualizações
Searching and sorting by B kirron Reddi por B.Kirron Reddi
Searching and sorting by B kirron ReddiSearching and sorting by B kirron Reddi
Searching and sorting by B kirron Reddi
B.Kirron Reddi60 visualizações

Último

DISTILLATION.pptx por
DISTILLATION.pptxDISTILLATION.pptx
DISTILLATION.pptxAnupkumar Sharma
65 visualizações47 slides
MUET Newsletter Vol-IX, Issue-III, 2023 por
MUET Newsletter Vol-IX, Issue-III, 2023MUET Newsletter Vol-IX, Issue-III, 2023
MUET Newsletter Vol-IX, Issue-III, 2023Mehran University of Engineering & Technology, Jamshoro
139 visualizações16 slides
BUSINESS ETHICS MODULE 1 UNIT I_A.pdf por
BUSINESS ETHICS MODULE 1 UNIT I_A.pdfBUSINESS ETHICS MODULE 1 UNIT I_A.pdf
BUSINESS ETHICS MODULE 1 UNIT I_A.pdfDr Vijay Vishwakarma
40 visualizações25 slides
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37 por
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37MysoreMuleSoftMeetup
50 visualizações17 slides
Jibachha publishing Textbook.docx por
Jibachha publishing Textbook.docxJibachha publishing Textbook.docx
Jibachha publishing Textbook.docxDrJibachhaSahVetphys
54 visualizações14 slides
12.5.23 Poverty and Precarity.pptx por
12.5.23 Poverty and Precarity.pptx12.5.23 Poverty and Precarity.pptx
12.5.23 Poverty and Precarity.pptxmary850239
381 visualizações30 slides

Último(20)

DISTILLATION.pptx por Anupkumar Sharma
DISTILLATION.pptxDISTILLATION.pptx
DISTILLATION.pptx
Anupkumar Sharma65 visualizações
BUSINESS ETHICS MODULE 1 UNIT I_A.pdf por Dr Vijay Vishwakarma
BUSINESS ETHICS MODULE 1 UNIT I_A.pdfBUSINESS ETHICS MODULE 1 UNIT I_A.pdf
BUSINESS ETHICS MODULE 1 UNIT I_A.pdf
Dr Vijay Vishwakarma40 visualizações
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37 por MysoreMuleSoftMeetup
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
MysoreMuleSoftMeetup50 visualizações
Jibachha publishing Textbook.docx por DrJibachhaSahVetphys
Jibachha publishing Textbook.docxJibachha publishing Textbook.docx
Jibachha publishing Textbook.docx
DrJibachhaSahVetphys54 visualizações
12.5.23 Poverty and Precarity.pptx por mary850239
12.5.23 Poverty and Precarity.pptx12.5.23 Poverty and Precarity.pptx
12.5.23 Poverty and Precarity.pptx
mary850239381 visualizações
Career Building in AI - Technologies, Trends and Opportunities por WebStackAcademy
Career Building in AI - Technologies, Trends and OpportunitiesCareer Building in AI - Technologies, Trends and Opportunities
Career Building in AI - Technologies, Trends and Opportunities
WebStackAcademy45 visualizações
Class 9 lesson plans por TARIQ KHAN
Class 9 lesson plansClass 9 lesson plans
Class 9 lesson plans
TARIQ KHAN82 visualizações
Meet the Bible por Steve Thomason
Meet the BibleMeet the Bible
Meet the Bible
Steve Thomason78 visualizações
Education of marginalized and socially disadvantages segments.pptx por GarimaBhati5
Education of marginalized and socially disadvantages segments.pptxEducation of marginalized and socially disadvantages segments.pptx
Education of marginalized and socially disadvantages segments.pptx
GarimaBhati543 visualizações
Nelson_RecordStore.pdf por BrynNelson5
Nelson_RecordStore.pdfNelson_RecordStore.pdf
Nelson_RecordStore.pdf
BrynNelson546 visualizações
Creative Restart 2023: Leonard Savage - The Permanent Brief: Unearthing unobv... por Taste
Creative Restart 2023: Leonard Savage - The Permanent Brief: Unearthing unobv...Creative Restart 2023: Leonard Savage - The Permanent Brief: Unearthing unobv...
Creative Restart 2023: Leonard Savage - The Permanent Brief: Unearthing unobv...
Taste55 visualizações
Guess Papers ADC 1, Karachi University por Khalid Aziz
Guess Papers ADC 1, Karachi UniversityGuess Papers ADC 1, Karachi University
Guess Papers ADC 1, Karachi University
Khalid Aziz99 visualizações
Create a Structure in VBNet.pptx por Breach_P
Create a Structure in VBNet.pptxCreate a Structure in VBNet.pptx
Create a Structure in VBNet.pptx
Breach_P86 visualizações
Gross Anatomy of the Liver por obaje godwin sunday
Gross Anatomy of the LiverGross Anatomy of the Liver
Gross Anatomy of the Liver
obaje godwin sunday77 visualizações
INT-244 Topic 6b Confucianism por S Meyer
INT-244 Topic 6b ConfucianismINT-244 Topic 6b Confucianism
INT-244 Topic 6b Confucianism
S Meyer45 visualizações
EILO EXCURSION PROGRAMME 2023 por info33492
EILO EXCURSION PROGRAMME 2023EILO EXCURSION PROGRAMME 2023
EILO EXCURSION PROGRAMME 2023
info33492202 visualizações

Daa chapter11

  • 1. Approximation Algorithms Many problems of practical significance are NP-complete but are too important to abandon nearly because obtaining an optimal solution is intractable. If a problem is NP-complete it is unlikely to find a polynomial time algorithm for solving it exactly. There are 3 approaches to getting around NP-completeness: I. If the actual inputs are small an algorithm with exponential running time may be perfectly satisfactory. II. We may be able to isolate important special cases that are solvable in polynomial time. III. It may be possible to find near optimal solutions in polynomial time either in the worst case or an average. An algorithm that returns near optimal solution is called an approximation algorithm. Performance ratio for approximation algorithms: Suppose we are working on an optimization problem in which each potential solution has a positive cost and we wish to find a near optimal solution. Depending on the problem an optimal solution may be defined as one with minimum possible cost. That is a problem may be either a minimization or maximization problem. While there is no efficient way of finding the optimal solution to several of them, e.g. traveling salesman, there are ways to efficiently find approximate solutions. It is interesting that while we may not know the optimal value, we can know how far (worst case) our approximate solution is from the optimal. Performance Ratio We define a quantity ρ(n) known as the approximation ratio as This ratio measures the ratio between the approximate solution and the optimal solution. Clearly the optimal solution has ρ(n) = 1. Thus if we can show a particular performance ratio for an approximation algorithm, we can say that the
  • 2. approximate solution is within a factor of ρ(n) of the optimal (again without knowing what the optimal value is). Such a solution is known as a ρ(n)- approximation algorithm. 3.3.1. Approximate Vertex Cover The first problem we will find an approximate solution to is vertex cover. As a review, the vertex cover problem is to find the minimum subset of vertices that touch every edge in a graph. The following algorithm can find an approximate vertex cover that contains no more than twice the minimum number of vertices, i.e. is a 2-approximation algorithm. Algorithm APPROX-VERTEX-COVER(G) 1. C = ∅ 2. E' = G.E 3. while E' ≠ ∅ 4. let (u,v) be an arbitrary edge of E' 5. C = C ∪ {u,v} 6. remove from E' every edge incident on either u or v 7. return C The algorithm simply selects an edge (adding the endpoints to the vertex cover) and removes any other edges incident on its endpoints (since these are covered by the endpoints). It repeats this process until there are no more edges to remove. Clearly this algorithm runs in polynomial time (O(E)). Proof Clearly when the algorithm terminates, the set C will be a vertex cover (since all edges will be touched by a vertex). Assume line 4 of the algorithm keeps the set of edges A. To cover these edges, any vertex cover (including the optimal one C*) needs to contain at least one endpoint for each edge. However in A, no two edges share an endpoint since once an edge is selected in line 4, all other edges incident to its endpoints are removed. Therefore, no two edges in A are covered by the same vertex from C* giving |C*| ≥ |A|
  • 3. Because the algorithm selects edges with endpoints not currently in the set C, clearly (since every edge will have 2 distinct vertices) |C| = 2 |A| Combining these two equations gives |C*| ≥ |C| / 2 ⇒ |C| ≤ 2 |C*| Hence the algorithm returns a vertex cover with no more than twice the number of vertices in an optimal vertex cover. Example Consider the following graph Iteration 1: Arbitrarily choose edge (1,2) so that C = {1, 2} (removing edges (1,4), (2,3) and (2,5)) Iteration 2: Arbitrarily choose edge (5,6) so that C = {1, 2, 5, 6} (removing edges (2,5) and (3,5))
  • 4. Iteration 3: Arbitrarily choose edge (3,7) so that C = {1, 2, 5, 6, 3, 7} (removing edge (3,6)) Hence the approximate vertex cover C = {1, 2, 5, 6, 3, 7} of size 6. The optimal vertex cover (of size 3) is C* = {1, 3, 5} as shown below 3.3.2. Approximate Traveling Salesman Another NP-complete problem that can be solved by a 2-approximation algorithm is traveling salesman. The traveling salesman problem is given a complete graph with nonnegative weight edge costs c(u, v), find a minimum weight simple tour (i.e. path that touches each vertex exactly once except for the endpoint). A special case of traveling salesman is a complete graph that satisfies the triangle inequality that for all vertices u, v, and w ∈ V c(u, v) ≤ c(u, w) + c(w, v)
  • 5. basically that it is faster to go directly between two points than through an intermediate vertex. It can be shown that even by imposing this constraint on the graph that this version of traveling salesman is still NP-complete (and also that without this constraint that there is no good approximation algorithm unless P = NP). The following algorithm, which utilizes Prim's algorithm for finding MST, can find a tour of weight no more than twice the optimal. A preorder tree walk simply recursively visits vertices in the tree based on when they were discovered. This approximation algorithm runs in O(V2). Proof Let H* be an optimal tour with cost c(H*). Since we can construct a spanning tree from a tour by simply removing any edge (which for TSP is nonnegative), the cost of the MST T must be a lower bound on the cost of the optimal tour c(T) ≤ c(H*) Consider a full walk W that visits each vertex both upon the initial recursion and whenever the tour revisits the vertex as recursive branches are completed. Therefore each edge of T will be traversed exactly twice for W giving c(W) = 2 c(T) Combining the above two equations gives c(W) ≤ 2 c(H*) However since the walk W visits some vertices more than once, it is not a tour. But since the graph satisfies the triangle inequality, removing any vertex from the walk will not increase the cost of the walk (since it will be lower cost to go direct). By repeatedly removing all but the first visit to each vertex, we obtain the preordered walk (that contains all the vertices once except for the root) giving a hamiltonian tour H. Since we only removed vertices from W (not increasing the cost at any step by the triangle inequality) c(H) ≤ c(W) Finally combining this inequality with the previous one gives c(H) ≤ 2 c(H*) Thus the tour found by the algorithm will have cost at worst twice the optimal value. Example Consider the following (complete) graph where the edge weights are simply the Euclidean distances between the vertices (which clearly satisfies the triangle inequality)
  • 6. Running Prim's algorithm on this graph (starting with vertex 1) gives the following MST with the vertices labeled in order of removal from the priority queue (i.e. the order in which they were added to the MST). The full walk for this tree would be the path <1, 2, 3, 2, 8, 2, 1, 4, 5, 6, 5, 7, 5, 4, 1> shown below Removing vertices according to the preorder walk (when the vertex is first visited) gives the tour <1, 2, 3, 8, 4, 5, 6, 7, 1> shown below
  • 7. The optimal tour is shown below in red. The approximate tour has cost ≈ 19.1 whereas the optimal tour has cost ≈ 14.7. 3.3.4. Subset Sum Problem The subset-sum problem finds a subset of a given set A = {a1, . . . , an} of n positive integers whose sum is equal to a given positive integer d. For example, for A = {1, 2, 5, 6, 8} and d = 9, there are two solutions: {1, 2, 6} and {1, 8}. Of course, some instances of this problem may have no solutions. It is convenient to sort the set’s elements in increasing order. So, we will assume that a1< a2 < . . . < an. A = {3, 5, 6, 7} and d = 15 of the subset-sum problem. The number inside a node is the sum of the elements already included in the subsets represented by the node. The inequality below a leaf indicates the reason for its termination.
  • 8. Complete state-space tree of the backtracking algorithm applied to the instance Example:  The state-space tree can be constructed as a binary tree like that in Figure for the instance A = {3, 5, 6, 7} and d = 15.  The root of the tree represents the starting point, with no decisions about the given elements made as yet.  Its left and right children represent, respectively, inclusion and exclusion of a1 in a set being sought. Similarly, going to the left from a node of the first level corresponds to inclusion of a2 while going to the right corresponds to its exclusion, and so on.  Thus, a path from the root to a node on the ith level of the tree indicates which of the first I numbers have been included in the subsets represented by that node.  We record the value of s, the sum of these numbers, in the node.  If s is equal to d, we have a solution to the problem. We can either report this result and stop or, if all the solutions need to be found, continue by backtracking to the node’s parent. General Remarks From a more general perspective, most backtracking algorithms fit the following escription. An output of a backtracking algorithm can be thought of as an n-tuple (x1, x2, . . . , xn) where each coordinate xi is an element of some
  • 9. finite lin early ordered set Si . For example, for the n-queens problem, each Si is the set of integers (column numbers) 1 through n. A backtracking algorithm generates, explicitly or implicitly, a state- space tree; its nodes represent partially constructed tuples with the first i coordinates defined by the earlier actions of the algorithm. If such a tuple (x1, x2, . . . , xi) is not a solution, the algorithm finds the next element in Si+1 that is consistent with the values of ((x1, x2, . . . , xi) and the problem’s constraints, and adds it to the tuple as its (i + 1)st coordinate. If such an element does not exist, the algorithm backtracks to consider the next value of xi, and so on. Algorithm backtrack(x [1..i] ) //Gives a template of a generic backtracking algorithm //Input: X[1..i] specifies first i promising components of a solution //Output: All the tuples representing the problem’s solutions if X[1..i] is a solution write∈X[1..i] else //see Problem this section for each element x Si+1 consistent with X[1..i] and the constraints do X[i + 1] ← x Backtrack(X[1..i + 1])