250 likes | 454 Views
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:
E N D
Certifying algorithms Algorithms and Networks
Certifying algorithms • What is it? • Examples: • Euler tour • Bipartite graphs • Flow • Planarity Certifying algorithms
Certifying algorithms • Type of algorithm design, introduced by Mehlhorn and others • No formal definition here Certifying algorithms
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
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
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
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
Euler tour • Certificate for Euler tour program • YES: the Euler tour itseld • NO: … Certifying algorithms
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
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
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
Bipartite certificate • Yes: bipartition • No: odd cycle in G Certifying algorithms
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
Flow • Input: flow network (G, s, t, c) • Output: maximum flow f • So, what is a certificate? Certifying algorithms
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
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
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
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
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
Subdivision • Add vertices on edges Certifying algorithms
Wagner Theorem (Wagner) A graph is planar, if and only if it does not contain K5 or K3,3 as a minor Certifying algorithms
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
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
Certifying algorithm for planarity • Either output Schnyder embedding OR • Output minor Certifying algorithms
Conclusions • Certifying algorithms • Useful for reliability of software • Some examples … • Implemented in some packages nowadays, e.g., LEDA Certifying algorithms