Download presentation
Presentation is loading. Please wait.
Published byLee Onion Modified over 9 years ago
1
Certifying algorithms Algorithms and Networks
2
Certifying algorithms What is it? Examples: –Euler tour –Bipartite graphs –Flow –Planarity Certifying algorithms2
3
Type of algorithm design, introduced by Mehlhorn and others No formal definition here Certifying algorithms3
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 algorithms4
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 algorithms5
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 algorithms6
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 algorithms7
8
Euler tour Certificate for Euler tour program YES: the Euler tour itseld NO: … Certifying algorithms8
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 algorithms9
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 algorithms10
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 algorithms11
12
Bipartite certificate Yes: bipartition No: odd cycle in G Certifying algorithms12
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 algorithms13
14
Flow Input: flow network (G, s, t, c) Output: maximum flow f So, what is a certificate? Certifying algorithms14
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 algorithms15
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 algorithms16
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 algorithms17
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 algorithms18
19
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 Certifying algorithms19
20
Subdivision Add vertices on edges Certifying algorithms20
21
Wagner Theorem (Wagner) A graph is planar, if and only if it does not contain K 5 or K 3,3 as a minor Certifying algorithms21
22
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 Certifying algorithms22
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 algorithms23
24
Certifying algorithm for planarity Either output Schnyder embedding OR Output minor Certifying algorithms24
25
Conclusions Certifying algorithms Useful for reliability of software Some examples … Implemented in some packages nowadays, e.g., LEDA Certifying algorithms25
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.