SlideShare a Scribd company logo
1 of 53
Approximation
   Algorithms

           presented by
       Nicolas Bettenburg



                            1
Many problems with practical significance
are NP-complete.


                 Unlikely to find a polynomial-time
                   solution algorithm (nobody knows).




                                                        2
Work around NP
 completeness

 • Small Inputs: stay with exponential
  algorithm!

 • Often special cases are solvable in
  polynomial time.

 • Find a near-optimal solution in
  polynomial time that is good enough.



                                         3
Approximation Algorithms


• For a lot of practical applications near-optimal
 solutions are perfectly acceptable.

• Algorithms that return near-optimal solutions for a
 problem are called approximation algorithms.

• Want to study polynomial time approximation
 algorithms for NP-complete problems.


                                                        4
What is ‘’good enough’’?

 For an approximation algorithm A
 of input of size n
 the cost of solution produced by A is C


    Approximation Ratio of A is p(n)
                C C∗
         max       ,
                  ∗ C
                         ≤ p(n)
                C

                                           5
An approximation algorithm with ratio p(n)
is called a p(n)-approximation algorithm.




                                                6
List of 21 Problems
that are NP-complete
Richard Karp, 1972

       .
       .
       .
   • CLIQUE
   • SET PACKING
   • VERTEX COVER
   • SET COVERING
   • FEEDBACK NODE SET
   • FEEDBACK ARC SET
   • KNAPSACK
   • PARTITION
   • MAX-CUT
       .
       .
       .
                         7
Vertex Cover Problem




                       8
Vertex Cover
a subset U of all vertices V, such
that every edge in E is covered.


         b            c              d



          a           e              f          g



Covered Edge
an edge e = (vi, vj) is covered if ei or ej is chosen.

                                                         9
Minimum Vertex Cover
         Problem

Input: a Graph G = (V, E)

Output: the smallest subset U ⊆ V
                   such that ∀e = (vi , vj ) ∈ E, i = j
                                 vi ∈ U   or   vj ∈ U




                                                          10
b   c              d



a   e              f   g




        Input: G


                           11
b   c   d



a   e   f   g




                12
b   c   d



a   e   f   g




                13
b       c          d



a       e          f        g




    Output: C = {b, d, e}


                                14
Greedy-Vertex-Cover(G)
1 C = {}
2     do chose v in V with max deg
3        C = C + {v}
4        remove v and every edge
5        adjacent to v
6     until all edges covered
7 return C



                                     15
b   c   d



a   e   f   g




                16
b   c   d



a   e   f   g




                17
b        c          d



a        e          f         g



    3 possible choices here
    determines the outcome

                                  18
b   c   d



a   e   f   g




                19
b   c   d



a   e   f   g




                20
b           c          d



a           e          f            g



    Goodness of solution depends
    on the (random) choices made.

                                        21
Approx-Vertex-Cover(G)
1    C = {}
2    E’ = E[G]
3    while E’ != {}
4       do let (u,v) be some e in E’
5           C = C + {u, v}
6          remove from E’ every edge
7          incident to either u or v
8       end do
9    end while
10   return C

                                       22
Approx-Vertex-Cover(G)
1    C = {}
2    E’ = E[G]
3    while E’ != {}
4       do let (u,v) be some e in E’
5           C = C + {u, v}
6          remove from E’ every edge
7          incident to either u or v
8       end do
9    end while
10   return C                 O(|V | + |E|)

                                              23
b             c            d



       a             e             f            g




C = {}
E = {(a-b), (b-c), (c-e), (c-d),(e-f),(e-d), (f-d), (d-g)}
                                                             24
b             c            d



      a             e             f            g




C = {}
E = {(a-b), (b-c), (c-e), (c-d),(e-f),(e-d), (f-d), (d-g)}
                                                             25
b             c             d



       a            e             f   g




C = {b, c}
E = {(e-f),(e-d), (f-d), (d-g)}
                                          26
b            c              d



      a            e              f   g




C = {b, c}
E = {(e-f),(e-d), (f-d), (d-g)}
                                          27
b           c   d



       a           e   f   g




C = {b, c, e, f}
E = {(d-g)}
                               28
b           c   d



       a           e   f   g




C = {b, c, e, f}
E = {(d-g)}
                               29
b             c   d



       a             e   f   g




C = {b, c, e, f, d, g}
E = {}
                                 30
C = {b, c, e, f, d, g}
|C| = 6 = 2 · 3 ≤ 2 · |C ∗ |
the algorithm found a 2-approximation.


  b              c             d



  a              e             f   g




                                         31
Approx-Vertex-Cover(G)

1    C = {}
2    E’ = E[G]
3    while E’ != {}
4       do let (u,v) be some e in E’
5           C = C + {u, v}
6          remove from E’ every edge
7          incident to either u or v
8       end do
9    end while
10   return C




             C is a vertex cover of G
             Proof:
              The algorithm loops until every edge in E’ = E[G] has been
              covered (removed) by some vertex in C.




                                                                           32
Approx-Vertex-Cover(G)

1    C = {}
2    E’ = E[G]
3    while E’ != {}
4       do let (u,v) be some e in E’
5           C = C + {u, v}
6          remove from E’ every edge
7          incident to either u or v
8       end do
9    end while
10   return C




             C is at most 2 times C*
             Proof:
              Let A be the set of edges picked by algorithm step 4. C*
              must include at least one endpoint of each edge in set A. No
              two edges share an endpoint, since all adjacent edges are
              deleted after picking in line 6. Thus no two edges in A are
              covered by the same vertex in C*.


                                       |C ∗ | ≥ |A|

                                                                             33
Approx-Vertex-Cover(G)

1    C = {}
2    E’ = E[G]
3    while E’ != {}
4       do let (u,v) be some e in E’
5           C = C + {u, v}
6          remove from E’ every edge
7          incident to either u or v
8       end do
9    end while
10   return C




             C is at most 2 times C*
             Proof:
              Each execution of line 4 picks an edge for which neither of
              the endpoints are in C already.



                                       |C| = 2 · |A|
                                       |C ∗ | ≥ |A|

                                                                            34
Can we do better?




                    35
Maximal Matching


      b          c          d



      a          e          f         g


Input:  a graph G=(V, E)
Output: a maximal subset E’ of E, such that
        no two edges share a common
        vertex.
                                              36
The approximation algorithm
produces a maximal matching




                          37
Alternative Formulation
     of Vertex Cover

     b          c         d



     a          e         f         g



Input:  a graph G=(V, E)
Output: the endpoints of a maximal matching

                                              38
In Bipartite Graphs:

Maximal Matching = Minimal Vertex Cover

         Stated as König’s Theorem in 1914,
                  proven in 1916.




                                              39
Complete bipartite Graph with n vertices
                                           40
Is a tight example, has maximal matching of n.
                                                 41
Hence |C| = 2n. So 2 is a tight bound!
                                         42
No better algorithm than the 2-approximation
  algorithm for computing the vertex cover
     in polynomial time is known so far.




                                               43
A parallel algorithm to compute the 2-approximate
        minimum vertex cover in O(log3|E|)
with O(|V|+|E|) processors was discovered in 2006.


                                                     44
Set Cover Problem




                    45
The Set Cover Problem


Input:    a finite Set X
Output: a family F of subsets of X,
        such that every element of X
        belongs to at least one subset in F: X = ∪S∈F S




                                                      46
Set X


S1


          S4      S2

          S6
    S3                S5
Subsets S1, S2, S3, S4, S5, S6


                                 47
Set X


  S1


          S4     S2

          S6
      S3           S5
Minimum-Size Cover: S3, S4, S5


                                 48
Greedy-Set-Cover(G)
1 U = X
2 C = {}
3     while U != {} do
4        select an S in F
5        that maximizes |S ∩U|
6        U = U-S
7        C = C ∪{S}
8     end while
9 return C
                       O(|X| · |F |)

                                       49
Greedy-Set-Cover is an
(ln |X|+1)-approximation algorithm.




                                      50
Can we do better?




                    51
Open research
  question



                52
Discussion




             53

More Related Content

What's hot (20)

Tsp branch and-bound
Tsp branch and-boundTsp branch and-bound
Tsp branch and-bound
 
Greedy algorithms
Greedy algorithmsGreedy algorithms
Greedy algorithms
 
Splay Tree
Splay TreeSplay Tree
Splay Tree
 
Greedy algorithms
Greedy algorithmsGreedy algorithms
Greedy algorithms
 
Informed search
Informed searchInformed search
Informed search
 
Graph coloring problem
Graph coloring problemGraph coloring problem
Graph coloring problem
 
Topological Sorting
Topological SortingTopological Sorting
Topological Sorting
 
Dinive conquer algorithm
Dinive conquer algorithmDinive conquer algorithm
Dinive conquer algorithm
 
Recursion tree method
Recursion tree methodRecursion tree method
Recursion tree method
 
Travelling salesman problem
Travelling salesman problemTravelling salesman problem
Travelling salesman problem
 
Traveling salesman problem
Traveling salesman problemTraveling salesman problem
Traveling salesman problem
 
Vertex cover problem
Vertex cover problemVertex cover problem
Vertex cover problem
 
Heap Sort in Design and Analysis of algorithms
Heap Sort in Design and Analysis of algorithmsHeap Sort in Design and Analysis of algorithms
Heap Sort in Design and Analysis of algorithms
 
String matching algorithms
String matching algorithmsString matching algorithms
String matching algorithms
 
Greedy Algorithm
Greedy AlgorithmGreedy Algorithm
Greedy Algorithm
 
5.1 greedy
5.1 greedy5.1 greedy
5.1 greedy
 
Shortest Path in Graph
Shortest Path in GraphShortest Path in Graph
Shortest Path in Graph
 
Breadth first search and depth first search
Breadth first search and  depth first searchBreadth first search and  depth first search
Breadth first search and depth first search
 
Nondeterministic Finite Automata
Nondeterministic Finite AutomataNondeterministic Finite Automata
Nondeterministic Finite Automata
 
CLOSEST PAIR (Final)
CLOSEST PAIR (Final)CLOSEST PAIR (Final)
CLOSEST PAIR (Final)
 

Similar to Approximation Algorithms

Complex analysis notes
Complex analysis notesComplex analysis notes
Complex analysis notesPrakash Dabhi
 
parameterized complexity for graph Motif
parameterized complexity for graph Motifparameterized complexity for graph Motif
parameterized complexity for graph MotifAMR koura
 
Scalable Global Alignment Graph Kernel Using Random Features: From Node Embed...
Scalable Global Alignment Graph Kernel Using Random Features: From Node Embed...Scalable Global Alignment Graph Kernel Using Random Features: From Node Embed...
Scalable Global Alignment Graph Kernel Using Random Features: From Node Embed...seijihagawa
 
MinFill_Presentation
MinFill_PresentationMinFill_Presentation
MinFill_PresentationAnna Lasota
 
Directed Acyclic Graph
Directed Acyclic Graph Directed Acyclic Graph
Directed Acyclic Graph AJAL A J
 
New Families of Odd Harmonious Graphs
New Families of Odd Harmonious GraphsNew Families of Odd Harmonious Graphs
New Families of Odd Harmonious GraphsIJMIT JOURNAL
 
Important Cuts and (p,q)-clustering
Important Cuts and (p,q)-clusteringImportant Cuts and (p,q)-clustering
Important Cuts and (p,q)-clusteringASPAK2014
 
Complex Analysis And ita real life problems solution
Complex Analysis And ita real life problems solutionComplex Analysis And ita real life problems solution
Complex Analysis And ita real life problems solutionNaeemAhmad289736
 
Trilinear embedding for divergence-form operators
Trilinear embedding for divergence-form operatorsTrilinear embedding for divergence-form operators
Trilinear embedding for divergence-form operatorsVjekoslavKovac1
 

Similar to Approximation Algorithms (20)

Solution manual 9
Solution manual 9Solution manual 9
Solution manual 9
 
Complex analysis notes
Complex analysis notesComplex analysis notes
Complex analysis notes
 
parameterized complexity for graph Motif
parameterized complexity for graph Motifparameterized complexity for graph Motif
parameterized complexity for graph Motif
 
Escola naval 2015
Escola naval 2015Escola naval 2015
Escola naval 2015
 
Scalable Global Alignment Graph Kernel Using Random Features: From Node Embed...
Scalable Global Alignment Graph Kernel Using Random Features: From Node Embed...Scalable Global Alignment Graph Kernel Using Random Features: From Node Embed...
Scalable Global Alignment Graph Kernel Using Random Features: From Node Embed...
 
Ppt 1
Ppt 1Ppt 1
Ppt 1
 
Efoom 2020
Efoom 2020Efoom 2020
Efoom 2020
 
1452 86301000013 m
1452 86301000013 m1452 86301000013 m
1452 86301000013 m
 
MinFill_Presentation
MinFill_PresentationMinFill_Presentation
MinFill_Presentation
 
Directed Acyclic Graph
Directed Acyclic Graph Directed Acyclic Graph
Directed Acyclic Graph
 
New Families of Odd Harmonious Graphs
New Families of Odd Harmonious GraphsNew Families of Odd Harmonious Graphs
New Families of Odd Harmonious Graphs
 
Minimum spanning tree
Minimum spanning treeMinimum spanning tree
Minimum spanning tree
 
Important Cuts and (p,q)-clustering
Important Cuts and (p,q)-clusteringImportant Cuts and (p,q)-clustering
Important Cuts and (p,q)-clustering
 
10.1.1.226.4381
10.1.1.226.438110.1.1.226.4381
10.1.1.226.4381
 
Complex Analysis And ita real life problems solution
Complex Analysis And ita real life problems solutionComplex Analysis And ita real life problems solution
Complex Analysis And ita real life problems solution
 
Isograph
IsographIsograph
Isograph
 
10.1.1.92.3502
10.1.1.92.350210.1.1.92.3502
10.1.1.92.3502
 
Chapter 03 drill_solution
Chapter 03 drill_solutionChapter 03 drill_solution
Chapter 03 drill_solution
 
Topological sorting
Topological sortingTopological sorting
Topological sorting
 
Trilinear embedding for divergence-form operators
Trilinear embedding for divergence-form operatorsTrilinear embedding for divergence-form operators
Trilinear embedding for divergence-form operators
 

More from Nicolas Bettenburg

10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...
10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...
10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...Nicolas Bettenburg
 
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...Nicolas Bettenburg
 
Think Locally, Act Gobally - Improving Defect and Effort Prediction Models
Think Locally, Act Gobally - Improving Defect and Effort Prediction ModelsThink Locally, Act Gobally - Improving Defect and Effort Prediction Models
Think Locally, Act Gobally - Improving Defect and Effort Prediction ModelsNicolas Bettenburg
 
Mining Development Repositories to Study the Impact of Collaboration on Softw...
Mining Development Repositories to Study the Impact of Collaboration on Softw...Mining Development Repositories to Study the Impact of Collaboration on Softw...
Mining Development Repositories to Study the Impact of Collaboration on Softw...Nicolas Bettenburg
 
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source CodeUsing Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source CodeNicolas Bettenburg
 
A Lightweight Approach to Uncover Technical Information in Unstructured Data
A Lightweight Approach to Uncover Technical Information in Unstructured DataA Lightweight Approach to Uncover Technical Information in Unstructured Data
A Lightweight Approach to Uncover Technical Information in Unstructured DataNicolas Bettenburg
 
Managing Community Contributions: Lessons Learned from a Case Study on Andro...
Managing Community Contributions:  Lessons Learned from a Case Study on Andro...Managing Community Contributions:  Lessons Learned from a Case Study on Andro...
Managing Community Contributions: Lessons Learned from a Case Study on Andro...Nicolas Bettenburg
 
Studying the impact of Social Structures on Software Quality
Studying the impact of Social Structures on Software QualityStudying the impact of Social Structures on Software Quality
Studying the impact of Social Structures on Software QualityNicolas Bettenburg
 
An Empirical Study on Inconsistent Changes to Code Clones at Release Level
An Empirical Study on Inconsistent Changes to Code Clones at Release LevelAn Empirical Study on Inconsistent Changes to Code Clones at Release Level
An Empirical Study on Inconsistent Changes to Code Clones at Release LevelNicolas Bettenburg
 
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...Nicolas Bettenburg
 
Finding Paths in Large Spaces - A* and Hierarchical A*
Finding Paths in Large Spaces - A* and Hierarchical A*Finding Paths in Large Spaces - A* and Hierarchical A*
Finding Paths in Large Spaces - A* and Hierarchical A*Nicolas Bettenburg
 
Automatic Identification of Bug Introducing Changes
Automatic Identification of Bug Introducing ChangesAutomatic Identification of Bug Introducing Changes
Automatic Identification of Bug Introducing ChangesNicolas Bettenburg
 
Cloning Considered Harmful Considered Harmful
Cloning Considered Harmful Considered HarmfulCloning Considered Harmful Considered Harmful
Cloning Considered Harmful Considered HarmfulNicolas Bettenburg
 
Predictors of Customer Perceived Quality
Predictors of Customer Perceived QualityPredictors of Customer Perceived Quality
Predictors of Customer Perceived QualityNicolas Bettenburg
 
Extracting Structural Information from Bug Reports.
Extracting Structural Information from Bug Reports.Extracting Structural Information from Bug Reports.
Extracting Structural Information from Bug Reports.Nicolas Bettenburg
 
Computing Accuracy Precision And Recall
Computing Accuracy Precision And RecallComputing Accuracy Precision And Recall
Computing Accuracy Precision And RecallNicolas Bettenburg
 
Duplicate Bug Reports Considered Harmful ... Really?
Duplicate Bug Reports Considered Harmful ... Really?Duplicate Bug Reports Considered Harmful ... Really?
Duplicate Bug Reports Considered Harmful ... Really?Nicolas Bettenburg
 
The Quality of Bug Reports in Eclipse ETX'07
The Quality of Bug Reports in Eclipse ETX'07The Quality of Bug Reports in Eclipse ETX'07
The Quality of Bug Reports in Eclipse ETX'07Nicolas Bettenburg
 

More from Nicolas Bettenburg (20)

10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...
10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...
10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...
 
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
 
Think Locally, Act Gobally - Improving Defect and Effort Prediction Models
Think Locally, Act Gobally - Improving Defect and Effort Prediction ModelsThink Locally, Act Gobally - Improving Defect and Effort Prediction Models
Think Locally, Act Gobally - Improving Defect and Effort Prediction Models
 
Mining Development Repositories to Study the Impact of Collaboration on Softw...
Mining Development Repositories to Study the Impact of Collaboration on Softw...Mining Development Repositories to Study the Impact of Collaboration on Softw...
Mining Development Repositories to Study the Impact of Collaboration on Softw...
 
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source CodeUsing Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
 
A Lightweight Approach to Uncover Technical Information in Unstructured Data
A Lightweight Approach to Uncover Technical Information in Unstructured DataA Lightweight Approach to Uncover Technical Information in Unstructured Data
A Lightweight Approach to Uncover Technical Information in Unstructured Data
 
Managing Community Contributions: Lessons Learned from a Case Study on Andro...
Managing Community Contributions:  Lessons Learned from a Case Study on Andro...Managing Community Contributions:  Lessons Learned from a Case Study on Andro...
Managing Community Contributions: Lessons Learned from a Case Study on Andro...
 
Mud flash
Mud flashMud flash
Mud flash
 
Studying the impact of Social Structures on Software Quality
Studying the impact of Social Structures on Software QualityStudying the impact of Social Structures on Software Quality
Studying the impact of Social Structures on Software Quality
 
An Empirical Study on Inconsistent Changes to Code Clones at Release Level
An Empirical Study on Inconsistent Changes to Code Clones at Release LevelAn Empirical Study on Inconsistent Changes to Code Clones at Release Level
An Empirical Study on Inconsistent Changes to Code Clones at Release Level
 
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
 
Fuzzy Logic in Smart Homes
Fuzzy Logic in Smart HomesFuzzy Logic in Smart Homes
Fuzzy Logic in Smart Homes
 
Finding Paths in Large Spaces - A* and Hierarchical A*
Finding Paths in Large Spaces - A* and Hierarchical A*Finding Paths in Large Spaces - A* and Hierarchical A*
Finding Paths in Large Spaces - A* and Hierarchical A*
 
Automatic Identification of Bug Introducing Changes
Automatic Identification of Bug Introducing ChangesAutomatic Identification of Bug Introducing Changes
Automatic Identification of Bug Introducing Changes
 
Cloning Considered Harmful Considered Harmful
Cloning Considered Harmful Considered HarmfulCloning Considered Harmful Considered Harmful
Cloning Considered Harmful Considered Harmful
 
Predictors of Customer Perceived Quality
Predictors of Customer Perceived QualityPredictors of Customer Perceived Quality
Predictors of Customer Perceived Quality
 
Extracting Structural Information from Bug Reports.
Extracting Structural Information from Bug Reports.Extracting Structural Information from Bug Reports.
Extracting Structural Information from Bug Reports.
 
Computing Accuracy Precision And Recall
Computing Accuracy Precision And RecallComputing Accuracy Precision And Recall
Computing Accuracy Precision And Recall
 
Duplicate Bug Reports Considered Harmful ... Really?
Duplicate Bug Reports Considered Harmful ... Really?Duplicate Bug Reports Considered Harmful ... Really?
Duplicate Bug Reports Considered Harmful ... Really?
 
The Quality of Bug Reports in Eclipse ETX'07
The Quality of Bug Reports in Eclipse ETX'07The Quality of Bug Reports in Eclipse ETX'07
The Quality of Bug Reports in Eclipse ETX'07
 

Recently uploaded

Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfUmakantAnnand
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting DataJhengPantaleon
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 

Recently uploaded (20)

Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 

Approximation Algorithms

  • 1. Approximation Algorithms presented by Nicolas Bettenburg 1
  • 2. Many problems with practical significance are NP-complete. Unlikely to find a polynomial-time solution algorithm (nobody knows). 2
  • 3. Work around NP completeness • Small Inputs: stay with exponential algorithm! • Often special cases are solvable in polynomial time. • Find a near-optimal solution in polynomial time that is good enough. 3
  • 4. Approximation Algorithms • For a lot of practical applications near-optimal solutions are perfectly acceptable. • Algorithms that return near-optimal solutions for a problem are called approximation algorithms. • Want to study polynomial time approximation algorithms for NP-complete problems. 4
  • 5. What is ‘’good enough’’? For an approximation algorithm A of input of size n the cost of solution produced by A is C Approximation Ratio of A is p(n) C C∗ max , ∗ C ≤ p(n) C 5
  • 6. An approximation algorithm with ratio p(n) is called a p(n)-approximation algorithm. 6
  • 7. List of 21 Problems that are NP-complete Richard Karp, 1972 . . . • CLIQUE • SET PACKING • VERTEX COVER • SET COVERING • FEEDBACK NODE SET • FEEDBACK ARC SET • KNAPSACK • PARTITION • MAX-CUT . . . 7
  • 9. Vertex Cover a subset U of all vertices V, such that every edge in E is covered. b c d a e f g Covered Edge an edge e = (vi, vj) is covered if ei or ej is chosen. 9
  • 10. Minimum Vertex Cover Problem Input: a Graph G = (V, E) Output: the smallest subset U ⊆ V such that ∀e = (vi , vj ) ∈ E, i = j vi ∈ U or vj ∈ U 10
  • 11. b c d a e f g Input: G 11
  • 12. b c d a e f g 12
  • 13. b c d a e f g 13
  • 14. b c d a e f g Output: C = {b, d, e} 14
  • 15. Greedy-Vertex-Cover(G) 1 C = {} 2 do chose v in V with max deg 3 C = C + {v} 4 remove v and every edge 5 adjacent to v 6 until all edges covered 7 return C 15
  • 16. b c d a e f g 16
  • 17. b c d a e f g 17
  • 18. b c d a e f g 3 possible choices here determines the outcome 18
  • 19. b c d a e f g 19
  • 20. b c d a e f g 20
  • 21. b c d a e f g Goodness of solution depends on the (random) choices made. 21
  • 22. Approx-Vertex-Cover(G) 1 C = {} 2 E’ = E[G] 3 while E’ != {} 4 do let (u,v) be some e in E’ 5 C = C + {u, v} 6 remove from E’ every edge 7 incident to either u or v 8 end do 9 end while 10 return C 22
  • 23. Approx-Vertex-Cover(G) 1 C = {} 2 E’ = E[G] 3 while E’ != {} 4 do let (u,v) be some e in E’ 5 C = C + {u, v} 6 remove from E’ every edge 7 incident to either u or v 8 end do 9 end while 10 return C O(|V | + |E|) 23
  • 24. b c d a e f g C = {} E = {(a-b), (b-c), (c-e), (c-d),(e-f),(e-d), (f-d), (d-g)} 24
  • 25. b c d a e f g C = {} E = {(a-b), (b-c), (c-e), (c-d),(e-f),(e-d), (f-d), (d-g)} 25
  • 26. b c d a e f g C = {b, c} E = {(e-f),(e-d), (f-d), (d-g)} 26
  • 27. b c d a e f g C = {b, c} E = {(e-f),(e-d), (f-d), (d-g)} 27
  • 28. b c d a e f g C = {b, c, e, f} E = {(d-g)} 28
  • 29. b c d a e f g C = {b, c, e, f} E = {(d-g)} 29
  • 30. b c d a e f g C = {b, c, e, f, d, g} E = {} 30
  • 31. C = {b, c, e, f, d, g} |C| = 6 = 2 · 3 ≤ 2 · |C ∗ | the algorithm found a 2-approximation. b c d a e f g 31
  • 32. Approx-Vertex-Cover(G) 1 C = {} 2 E’ = E[G] 3 while E’ != {} 4 do let (u,v) be some e in E’ 5 C = C + {u, v} 6 remove from E’ every edge 7 incident to either u or v 8 end do 9 end while 10 return C C is a vertex cover of G Proof: The algorithm loops until every edge in E’ = E[G] has been covered (removed) by some vertex in C. 32
  • 33. Approx-Vertex-Cover(G) 1 C = {} 2 E’ = E[G] 3 while E’ != {} 4 do let (u,v) be some e in E’ 5 C = C + {u, v} 6 remove from E’ every edge 7 incident to either u or v 8 end do 9 end while 10 return C C is at most 2 times C* Proof: Let A be the set of edges picked by algorithm step 4. C* must include at least one endpoint of each edge in set A. No two edges share an endpoint, since all adjacent edges are deleted after picking in line 6. Thus no two edges in A are covered by the same vertex in C*. |C ∗ | ≥ |A| 33
  • 34. Approx-Vertex-Cover(G) 1 C = {} 2 E’ = E[G] 3 while E’ != {} 4 do let (u,v) be some e in E’ 5 C = C + {u, v} 6 remove from E’ every edge 7 incident to either u or v 8 end do 9 end while 10 return C C is at most 2 times C* Proof: Each execution of line 4 picks an edge for which neither of the endpoints are in C already. |C| = 2 · |A| |C ∗ | ≥ |A| 34
  • 35. Can we do better? 35
  • 36. Maximal Matching b c d a e f g Input: a graph G=(V, E) Output: a maximal subset E’ of E, such that no two edges share a common vertex. 36
  • 37. The approximation algorithm produces a maximal matching 37
  • 38. Alternative Formulation of Vertex Cover b c d a e f g Input: a graph G=(V, E) Output: the endpoints of a maximal matching 38
  • 39. In Bipartite Graphs: Maximal Matching = Minimal Vertex Cover Stated as König’s Theorem in 1914, proven in 1916. 39
  • 40. Complete bipartite Graph with n vertices 40
  • 41. Is a tight example, has maximal matching of n. 41
  • 42. Hence |C| = 2n. So 2 is a tight bound! 42
  • 43. No better algorithm than the 2-approximation algorithm for computing the vertex cover in polynomial time is known so far. 43
  • 44. A parallel algorithm to compute the 2-approximate minimum vertex cover in O(log3|E|) with O(|V|+|E|) processors was discovered in 2006. 44
  • 46. The Set Cover Problem Input: a finite Set X Output: a family F of subsets of X, such that every element of X belongs to at least one subset in F: X = ∪S∈F S 46
  • 47. Set X S1 S4 S2 S6 S3 S5 Subsets S1, S2, S3, S4, S5, S6 47
  • 48. Set X S1 S4 S2 S6 S3 S5 Minimum-Size Cover: S3, S4, S5 48
  • 49. Greedy-Set-Cover(G) 1 U = X 2 C = {} 3 while U != {} do 4 select an S in F 5 that maximizes |S ∩U| 6 U = U-S 7 C = C ∪{S} 8 end while 9 return C O(|X| · |F |) 49
  • 50. Greedy-Set-Cover is an (ln |X|+1)-approximation algorithm. 50
  • 51. Can we do better? 51
  • 52. Open research question 52