1 / 25

Certifying algorithms

Certifying algorithms. Algorithms and Networks. Certifying algorithms. What is it? Examples: Euler tour Bipartite graphs Flow Planarity. Certifying algorithms. Type of algorithm design, introduced by Mehlhorn and others No formal definition here. Correctness of programs. Program:

cala
Download Presentation

Certifying algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Certifying algorithms Algorithms and Networks

  2. Certifying algorithms • What is it? • Examples: • Euler tour • Bipartite graphs • Flow • Planarity Certifying algorithms

  3. Certifying algorithms • Type of algorithm design, introduced by Mehlhorn and others • No formal definition here Certifying algorithms

  4. Correctness of programs • Program: • Input • (Working of program): Hidden to user • Output • But ... how do we know there is no bug? Why is the program correct? Certifying algorithms

  5. Example • Euler tour algorithm • Input: Graph G=(V,E) • Output: • An Euler tour if it exists • “NO”, if there is no Euler tour Certifying algorithms

  6. Example • Euler tour algorithm • Input: Graph G=(V,E) • Output: • An Euler tour if it exists • This, we can check! • “NO”, if there is no Euler tour • But how do we know if this answer is correct? Certifying algorithms

  7. Certifying algorithm • Program • Input • (Working of program): still hidden to user • Output + proof (certificate) that output is correct! • Plus: easy way to check these proofs Certifying algorithms

  8. Euler tour • Certificate for Euler tour program • YES: the Euler tour itseld • NO: … Certifying algorithms

  9. Euler theorem • A graph G=(V,E) has an Euler tour, if and only if the following two conditions hold: • Every vertex has even degree • G is connected Certifying algorithms

  10. No-Certificate for Euler tour • A vertex of odd degree • Or • A set of vertices W that forms a connected component • Verify: W has less than n vertices, and all neighbors of all vertices in W belong to W Certifying algorithms

  11. Bipartite graphs • A graph G=(V,E) is bipartite if we can partition V into sets X and Y such that each edge in E has one endpoint in X and one endpoint in Y • So … what would be a certificate for Bipartiteness? Certifying algorithms

  12. Bipartite certificate • Yes: bipartition • No: odd cycle in G Certifying algorithms

  13. Algorithm • Make a depth first search spanning forest of G • Color the vertices on odd levels red and on even levels blue • Is there an edge between two vertices of the same color? Then: take the path between these in the tree, and add the edge: odd cycle Certifying algorithms

  14. Flow • Input: flow network (G, s, t, c) • Output: maximum flow f • So, what is a certificate? Certifying algorithms

  15. Certificate for flow • Pair: • The flow function f • And, the corresponding maximum cut • See (the proof of) the max flow min cut theorem Certifying algorithms

  16. Bipartite Matching • Input: Bipartite graph G=(V U W,E) • Output: A maximum matching in G • What is a certificate for the matching? Certifying algorithms

  17. Certificate for bipartite matching • Look at the flow model from bipartite matching, and a minimum cut. You get: • A vertex cover C with the property that |C|=|M| • I.e., each edge has one endpoint in C • Details on the board Certifying algorithms

  18. Planarity • Planar graphs: can be drawn on the plane without crossing edges • Many applications! • Complicated linear time algorithms for checking planarity • Tarjan, 1976: linear time for checking planarity • Chiba et al, 1985: linear time algorithm that finds a planar embedding Certifying algorithms

  19. Kuratowski Theorem (Kuratowski) A graph is planar, if and only if it does not contain a subgraph that is a subdivision of K5 or K3,3 Certifying algorithms

  20. Subdivision • Add vertices on edges Certifying algorithms

  21. Wagner Theorem (Wagner) A graph is planar, if and only if it does not contain K5 or K3,3 as a minor Certifying algorithms

  22. Certificate for nonplanarity • Hundack et al. 1987: linear time algorithm that finds a asubgraph that is a subdivision of K5 or K3,3 of a nonplanar graph Certifying algorithms

  23. Certificate for planarity • Schnyder 1990: • Finds in O(n) time an embedding of a graph in the plane, such that • Each vertex has integer coordinates between 1 and n – 2 • Each edge is a straight line • One can easily verify that such an embedding is indeed correct. Certifying algorithms

  24. Certifying algorithm for planarity • Either output Schnyder embedding OR • Output minor Certifying algorithms

  25. Conclusions • Certifying algorithms • Useful for reliability of software • Some examples … • Implemented in some packages nowadays, e.g., LEDA Certifying algorithms

More Related