1 \subsection{Implementation of the hitting-set algorithm
}
2 \subsubsection{Task
12: Generate conflict
}
4 \caption{Generating conflict sets
}
5 \prologcode{./src/task12.pl
}
8 \subsubsection{Task
13: Define your data structure
}
10 \caption{Hitting set datastructure
}
11 \prologcode{./src/hs.pl
}
14 \tikzstyle{level
1}=
[level distance=
1cm, sibling distance=
1cm
]
15 \tikzstyle{level
2}=
[level distance=
1cm, sibling distance=
1cm
]
16 \tikzstyle{bag
} =
[text width=
4em, text centered
]
17 \tikzstyle{end
} =
[minimum width=
3pt, inner sep=
0pt
]
19 \caption{Examples of good hitting set trees
}
20 \begin{tikzpicture
} [grow=down
]
21 \node[bag
] {\
{$a, b\
}$
}
23 node
[end, label=below:$
\checkmark$
]{}
28 node
[end, label=below:$
\checkmark$
]{}
33 \begin{tikzpicture
} [grow=down
]
34 \node[bag
] {\
{$a, b\
}$
}
36 node
[bag
] {$\
{c, d\
}$
}
38 node
[end, label=below:$
\checkmark$
]{}
43 node
[end, label=below:$
\checkmark$
]{}
51 node
[end, label=below:$
\checkmark$
]{}
59 \caption{Examples of bad hitting set trees due to duplicate edge labels
}
60 \begin{tikzpicture
} [grow=down
]
61 \node[bag
] {\
{$a, b\
}$
}
63 node
[bag
] {$\
{c, a\
}$
}
65 node
[end, label=below:$
\checkmark$
]{}
70 node
[end, label=below:$
\checkmark$
]{}
78 node
[end, label=below:$
\checkmark$
]{}
85 \subsubsection{Task
14: Implementation
}
87 \caption{Code for generating a hitting set tree
}
88 \prologcode{./src/task14.pl
}