Department of Computer Science | Institute of Theoretical Computer Science | CADMO
Prof. Emo Welzl and Prof. Bernd Gärtner
presented by Günter Rothe
A slight modification of the product algorithm for finding the sink in a
unique sink orientation will, for all orientations, find either a sink or a
certificate. Let
be an orientation of the d-dimensional cube
.
Choose k directions
of
.
This partitions
into 2k subcubes of dimension d-k, each subcube
corresponds to a vertex in the k-dimensional cube
.
Denote by
the subcube
corresponding to
.
We will solve the d-dimensional problem by applying a
k-dimensional algorithm to
with a (d-k)-dimensional
algorithm as oracle.
More precisely, for a vertex
we will
apply a (d-k)-dimensional algorithm to the corresponding subcube
.
Either this algorithm finds a certificate or a sink in
.
In the
first case, since a certificate in a subcube is a global certificate, the
product algorithm can stop and return this certificate. In the case it found
a sink w, this vertex w defines the orientations in v:
An edge from v in direction ij is outgoing iff the edge from w in
direction ij is outgoing with respect to
.
Now the k-dimensional algorithm either finds a sink or a certificate in
.
If it finds a sink, this has to be a global sink and can be
returned. If it finds a certificate, the sinks of the corresponding subcubes
are global certificates and it can return them.
The product algorithm gives a recursive formula of