Java code to implement hitting set algorithm
Suppose F is a collection of sets. An edge-labeled and nodelabeled
tree T is an HS-tree for F iff it is a smallest tree with the following
properties:
(1) Its root is labeled by "X/'' if F is empty. Otherwise, its root is labeled by
a set of F.
(2) If n is a node of T, define H(n) to be the set of edge labels on the path in
T from the root node to n. If n is labeled by ~/, it has no successor nodes in T.
If n is labeled by a set ~ of F, then for each o" @ ~, n has a successor node n~
joined to n by an edge labeled by or. The label for n~ is a set S E F such that
S fq H(n~) = { } if such a set S exists. Otherwise, n~ is labeled by ~/.
Java code to implement hitting set algorithm
===

Suppose F is a collection of sets. An edge-labeled and nodelabeled
tree T is an HS-tree for F iff it is a smallest tree with the following
properties:
(1) Its root is labeled by "X/'' if F is empty. Otherwise, its root is labeled by
a set of F.
(2) If n is a node of T, define H(n) to be the set of edge labels on the path in
T from the root node to n. If n is labeled by ~/, it has no successor nodes in T.
If n is labeled by a set ~ of F, then for each o" @ ~, n has a successor node n~
joined to n by an edge labeled by or. The label for n~ is a set S E F such that
S fq H(n~) = { } if such a set S exists. Otherwise, n~ is labeled by ~/.