SlideShare a Scribd company logo
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

Greedy Algorihm
Greedy AlgorihmGreedy Algorihm
Greedy Algorihm
Muhammad Amjad Rana
 
Np hard
Np hardNp hard
Np hard
jesal_joshi
 
Graph coloring using backtracking
Graph coloring using backtrackingGraph coloring using backtracking
Graph coloring using backtracking
shashidharPapishetty
 
Divide and Conquer
Divide and ConquerDivide and Conquer
Divide and Conquer
Dr Shashikant Athawale
 
Daa unit 1
Daa unit 1Daa unit 1
Daa unit 1
Abhimanyu Mishra
 
daa-unit-3-greedy method
daa-unit-3-greedy methoddaa-unit-3-greedy method
daa-unit-3-greedy method
hodcsencet
 
Forms of learning in ai
Forms of learning in aiForms of learning in ai
Forms of learning in ai
Robert Antony
 
Introduction to Approximation Algorithms
Introduction to Approximation AlgorithmsIntroduction to Approximation Algorithms
Introduction to Approximation Algorithms
Jhoirene Clemente
 
Greedy algorithms
Greedy algorithmsGreedy algorithms
Greedy algorithms
sandeep54552
 
Randomized Algorithms
Randomized AlgorithmsRandomized Algorithms
Randomized Algorithms
Ketan Kamra
 
Asymptotic Notations
Asymptotic NotationsAsymptotic Notations
Asymptotic Notations
Rishabh Soni
 
Divide and Conquer - Part 1
Divide and Conquer - Part 1Divide and Conquer - Part 1
Divide and Conquer - Part 1
Amrinder Arora
 
Shortest path algorithm
Shortest path algorithmShortest path algorithm
Shortest path algorithm
sana younas
 
Sets and disjoint sets union123
Sets and disjoint sets union123Sets and disjoint sets union123
Sets and disjoint sets union123Ankita Goyal
 
Daa notes 1
Daa notes 1Daa notes 1
Daa notes 1
smruti sarangi
 
Prim's algorithm
Prim's algorithmPrim's algorithm
Prim's algorithm
Pankaj Thakur
 
Sum of subsets problem by backtracking 
Sum of subsets problem by backtracking Sum of subsets problem by backtracking 
Sum of subsets problem by backtracking 
Hasanain Alshadoodee
 
Analysis and Design of Algorithms
Analysis and Design of AlgorithmsAnalysis and Design of Algorithms
Analysis and Design of Algorithms
Bulbul Agrawal
 

What's hot (20)

Greedy Algorihm
Greedy AlgorihmGreedy Algorihm
Greedy Algorihm
 
Np hard
Np hardNp hard
Np hard
 
Graph coloring using backtracking
Graph coloring using backtrackingGraph coloring using backtracking
Graph coloring using backtracking
 
Divide and Conquer
Divide and ConquerDivide and Conquer
Divide and Conquer
 
Daa unit 1
Daa unit 1Daa unit 1
Daa unit 1
 
daa-unit-3-greedy method
daa-unit-3-greedy methoddaa-unit-3-greedy method
daa-unit-3-greedy method
 
Forms of learning in ai
Forms of learning in aiForms of learning in ai
Forms of learning in ai
 
Introduction to Approximation Algorithms
Introduction to Approximation AlgorithmsIntroduction to Approximation Algorithms
Introduction to Approximation Algorithms
 
Greedy algorithms
Greedy algorithmsGreedy algorithms
Greedy algorithms
 
Np complete
Np completeNp complete
Np complete
 
Randomized Algorithms
Randomized AlgorithmsRandomized Algorithms
Randomized Algorithms
 
Asymptotic Notations
Asymptotic NotationsAsymptotic Notations
Asymptotic Notations
 
Disjoint sets
Disjoint setsDisjoint sets
Disjoint sets
 
Divide and Conquer - Part 1
Divide and Conquer - Part 1Divide and Conquer - Part 1
Divide and Conquer - Part 1
 
Shortest path algorithm
Shortest path algorithmShortest path algorithm
Shortest path algorithm
 
Sets and disjoint sets union123
Sets and disjoint sets union123Sets and disjoint sets union123
Sets and disjoint sets union123
 
Daa notes 1
Daa notes 1Daa notes 1
Daa notes 1
 
Prim's algorithm
Prim's algorithmPrim's algorithm
Prim's algorithm
 
Sum of subsets problem by backtracking 
Sum of subsets problem by backtracking Sum of subsets problem by backtracking 
Sum of subsets problem by backtracking 
 
Analysis and Design of Algorithms
Analysis and Design of AlgorithmsAnalysis and Design of Algorithms
Analysis and Design of Algorithms
 

Similar to Approximation Algorithms

Solution manual 9
Solution manual 9Solution manual 9
Solution manual 9
Rafi Flydarkzz
 
Complex analysis notes
Complex analysis notesComplex analysis notes
Complex analysis notes
Prakash Dabhi
 
parameterized complexity for graph Motif
parameterized complexity for graph Motifparameterized complexity for graph Motif
parameterized complexity for graph Motif
AMR koura
 
Escola naval 2015
Escola naval 2015Escola naval 2015
Escola naval 2015
KalculosOnline
 
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
 
Ppt 1
Ppt 1Ppt 1
Topological Sort
Topological SortTopological Sort
Topological Sort
Dr Sandeep Kumar Poonia
 
Efoom 2020
Efoom 2020Efoom 2020
Efoom 2020
KalculosOnline
 
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 Graphs
IJMIT JOURNAL
 
Minimum spanning tree
Minimum spanning treeMinimum spanning tree
Minimum spanning tree
Amit Kumar Rathi
 
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 solution
NaeemAhmad289736
 
10.1.1.92.3502
10.1.1.92.350210.1.1.92.3502
10.1.1.92.3502
wildanowitzki
 
Chapter 03 drill_solution
Chapter 03 drill_solutionChapter 03 drill_solution
Chapter 03 drill_solution
khalil ur rehman marwat
 
Topological sorting
Topological sortingTopological sorting
Topological sorting
Amit Kumar Rathi
 

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
 
Topological Sort
Topological SortTopological Sort
Topological Sort
 
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
 

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 Models
Nicolas 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 Code
Nicolas 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 Data
Nicolas 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 Quality
Nicolas 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 Level
Nicolas 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
 
Fuzzy Logic in Smart Homes
Fuzzy Logic in Smart HomesFuzzy Logic in Smart Homes
Fuzzy Logic in Smart Homes
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 Changes
Nicolas Bettenburg
 
Cloning Considered Harmful Considered Harmful
Cloning Considered Harmful Considered HarmfulCloning Considered Harmful Considered Harmful
Cloning Considered Harmful Considered Harmful
Nicolas Bettenburg
 
Predictors of Customer Perceived Quality
Predictors of Customer Perceived QualityPredictors of Customer Perceived Quality
Predictors of Customer Perceived Quality
Nicolas 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'07
Nicolas 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

Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
DeeptiGupta154
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
BhavyaRajput3
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
joachimlavalley1
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Po-Chuan Chen
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
Atul Kumar Singh
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
MIRIAMSALINAS13
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
Special education needs
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
EduSkills OECD
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
SACHIN R KONDAGURI
 

Recently uploaded (20)

Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
 

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