Certifying algorithms Algorithms and Networks Certifying algorithms What

  • Slides: 25
Download presentation
Certifying algorithms Algorithms and Networks

Certifying algorithms Algorithms and Networks

Certifying algorithms • What is it? • Examples: – Euler tour – Bipartite graphs

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

Certifying algorithms • Type of algorithm design, introduced by Mehlhorn and others • No

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

Correctness of programs • Program: – Input – (Working of program): Hidden to user

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? 4 Certifying algorithms

Example • Euler tour algorithm • Input: Graph G=(V, E) • Output: – An

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

Example • Euler tour algorithm • Input: Graph G=(V, E) • Output: – An

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? 6 Certifying algorithms

Certifying algorithm • Program – Input – (Working of program): still hidden to user

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 7 Certifying algorithms

Euler tour • Certificate for Euler tour program • YES: the Euler tour itseld

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

Euler theorem • A graph G=(V, E) has an Euler tour, if and only

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 9 Certifying algorithms

No-Certificate for Euler tour • A vertex of odd degree • Or • A

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 10 Certifying algorithms

Bipartite graphs • A graph G=(V, E) is bipartite if we can partition V

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? 11 Certifying algorithms

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

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

Algorithm • Make a depth first search spanning forest of G • Color the

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 13 Certifying algorithms

Flow • Input: flow network (G, s, t, c) • Output: maximum flow f

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

Certificate for flow • Pair: – The flow function f – And, the corresponding

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

Bipartite Matching • Input: Bipartite graph G=(V U W, E) • Output: A maximum

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

Certificate for bipartite matching • Look at the flow model from bipartite matching, and

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 17 Certifying algorithms

Planarity • Planar graphs: can be drawn on the plane without crossing edges •

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 18 Certifying algorithms

Kuratowski Theorem (Kuratowski) A graph is planar, if and only if it does not

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

Subdivision • Add vertices on edges 20 Certifying algorithms

Subdivision • Add vertices on edges 20 Certifying algorithms

Wagner Theorem (Wagner) A graph is planar, if and only if it does not

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

Certificate for nonplanarity • Hundack et al. 1987: linear time algorithm that finds a

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

Certificate for planarity • Schnyder 1990: – Finds in O(n) time an embedding of

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. 23 Certifying algorithms

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

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

Conclusions • • 25 Certifying algorithms Useful for reliability of software Some examples …

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