Problem der exakten Überdeckung

Das Problem der exakten Überdeckung (englisch Exact cover) ist ein Entscheidungsproblem der Kombinatorik. Es gehört zu den 21 klassischen NP-vollständigen Problemen, von denen Richard M. Karp 1972 gezeigt hat, dass sie NP-vollständig sind.

Ein alltägliches Beispiel

Für ein Projekt soll ein Team zusammengestellt werden. In dem Team sollen Kompetenzen auf den Gebieten Architektur, Bauphysik, Chemie, Datenverarbeitung, Elektrotechnik und Finanzierung vertreten sein. Dabei kann ein Teammitglied mehrere Kompetenzen mitbringen. Außerdem soll keine Kompetenz mehrfach vertreten sein, denn das wäre eine Vergeudung von Humanressourcen. Zur Verfügung stehen folgende fünf Personen:

Anna ist kompetent für Architektur und Bauphysik, Boris für Architektur, Bauphysik und Chemie, Charlotte für Chemie und Elektrotechnik, Dennis für Datenverarbeitung und Finanzierung, Emma für Elektrotechnik und Finanzierung. Wie soll das Team nun aussehen? Wenn man Boris nimmt, scheidet Charlotte für die Abdeckung der Elektrotechnik aus, da dann die Chemie doppelt vertreten wäre. Also muss man zur Abdeckung der Elektrotechnik Emma heranziehen, was wegen der Finanzierung Dennis ausschließt, so dass die Datenverarbeitung nicht mehr abgedeckt werden kann. Also kann man von Anfang an Boris nicht verwenden. Das Problem ist aber lösbar, indem man das Team aus Anna, Charlotte und Dennis bildet. Das ist die so genannte exakte Überdeckung, hier von Teamkompetenzen durch Teammitglieder.

Es ist kein Zufall, dass die Argumentationsweise an das Sudoku-Lösen erinnert. Auch Sudoku ist ein Exact-cover-Problem.

Mathematische Formulierung

Gegeben sind eine Menge X {\displaystyle X} und eine Menge S {\displaystyle S} von nichtleeren Teilmengen von X {\displaystyle X} , also S P ( X ) {\displaystyle S\subseteq {\mathcal {P}}(X)} , wobei P ( X ) {\displaystyle {\mathcal {P}}(X)} die Potenzmenge von X {\displaystyle X} bezeichnet.

Gesucht ist eine Teilmenge U {\displaystyle U} von S {\displaystyle S} , deren disjunkte Vereinigung X {\displaystyle X} ist:

X = Y U ˙ Y {\displaystyle X={\dot {\bigcup _{Y\in U}}}Y} .

Das heißt: Jedes Element in X {\displaystyle X} soll in genau einer der Mengen in U {\displaystyle U} vorkommen. Die Mengen in U {\displaystyle U} bilden also eine exakte Überdeckung von X {\displaystyle X} ( U {\displaystyle U} ist eine Partition von X {\displaystyle X} ).

Grafische Darstellung des Beispiels (die exakte Überdeckung ist rot eingezeichnet)

Zum Beispiel sei

X = { a , b , c , d , e , f } {\displaystyle X=\{a,b,c,d,e,f\}} und
S = { { a , b } , { a , b , c } , { c , e } , { d , f } , { e , f } } {\displaystyle S=\{\{a,b\},\{a,b,c\},\{c,e\},\{d,f\},\{e,f\}\}} .

Die Menge

U = { { a , b } , { c , e } , { d , f } } {\displaystyle U=\{\{a,b\},\{c,e\},\{d,f\}\}}

zeigt, dass eine exakte Überdeckung existiert.

Dieses Beispiel entspricht genau dem oben genannten alltäglichen Beispiel.

Siehe auch

  • Mengenzerlegungsproblem

Erfüllbarkeitsproblem der Aussagenlogik | Cliquenproblem | Mengenpackungsproblem | Knotenüberdeckungsproblem | Mengenüberdeckungsproblem | Feedback Arc Set | Feedback Vertex Set | Hamiltonkreisproblem | Integer Linear Programming | 3-SAT | graph coloring problem | Covering by cliques | Problem der exakten Überdeckung | 3-dimensional matching | Steinerbaumproblem | Hitting set | Rucksackproblem | Job sequencing | Partitionsproblem | Maximaler Schnitt