  An instance of a strongly stable matching problem (SSMP) is an undirected
bipartite graph $G=(A \cup B, E)$, with an adjacency list of each vertex being
a linearly ordered list of ties, which are subsets of vertices equally good for
a given vertex. Ties are disjoint and may contain one vertex. A matching $M$ is
a set of vertex-disjoint edges. An edge $(x,y) \in E \setminus M$ is a {\em
blocking edge} for $M$ if $x$ is either unmatched or strictly prefers $y$ to
its current partner in $M$, and $y$ is either unmatched or strictly prefers $x$
to its current partner in $M$ or is indifferent between them. A matching is
{\em strongly stable} if there is no blocking edge with respect to it. We
present an algorithm for the generation of all strongly stable matchings, thus
solving an open problem already stated in the book by Gusfield and Irving
\cite{GI}. It has previously been shown that strongly stable matchings form a
distributive lattice and although the number of strongly stable matchings can
be exponential in the number of vertices, we show that there exists a partial
order with $O(m)$ elements representing all strongly stable matchings, where
$m$ denotes the number of edges in the graph. We give two algorithms that
construct two such representations: one in $O(nm^2)$ time and the other in
$O(nm)$ time, where $n$ denotes the number of vertices in the graph. Note that
the construction of the second representation has the same time complexity as
that of computing a single strongly stable matching.
