[2] | 1 | %
|
---|
| 2 | % $Id: report.tex 571 2008-04-20 17:31:04Z rick $
|
---|
| 3 | %
|
---|
| 4 |
|
---|
| 5 | \documentclass[12pt,a4paper]{article}
|
---|
| 6 |
|
---|
| 7 | \frenchspacing
|
---|
| 8 | \usepackage[english,dutch]{babel}
|
---|
| 9 | \usepackage{amssymb,amsmath,amsthm}
|
---|
| 10 | \selectlanguage{dutch}
|
---|
| 11 |
|
---|
| 12 | \author{Rick van der Zwet, Universiteit Leiden}
|
---|
| 13 | \title{Complexiteit\\
|
---|
| 14 | \large{Derde huiswerkopgave}}
|
---|
| 15 | \author{Rick van der Zwet\\
|
---|
| 16 | \texttt{<hvdzwet@liacs.nl>}\\
|
---|
| 17 | \\
|
---|
| 18 | LIACS\\
|
---|
| 19 | Leiden University\\
|
---|
| 20 | Niels Bohrweg 1\\
|
---|
| 21 | 2333 CA Leiden\\
|
---|
| 22 | The Netherlands}
|
---|
| 23 | \date{\today}
|
---|
| 24 |
|
---|
| 25 |
|
---|
| 26 | \begin{document}
|
---|
| 27 | \appendix
|
---|
| 28 | \maketitle
|
---|
| 29 | \section*{Inleiding}
|
---|
| 30 | Het doel van deze huiswerkopgave is het begrijpen en toepassen van
|
---|
| 31 | niet-deterministische algoritmen en kennis maken met de begrippen
|
---|
| 32 | $NP$-compleet en $NP$-volledig. Deze kennis wordt opgedaan door te
|
---|
| 33 | kijken naar 2 verschillende problemen:
|
---|
| 34 |
|
---|
| 35 | \theoremstyle{definition} \newtheorem{sat}{SAT}
|
---|
| 36 | \newtheorem{mcis}{MaxColorIndependentSet (MCIS)}
|
---|
| 37 |
|
---|
| 38 | \begin{description}
|
---|
| 39 | \item[SAT] Gegeven is een logische expressie $\phi$ in de variablen
|
---|
| 40 | $x_1, x_2,..., x_n$ in CNF (dus een AND van clausules waarbij elke
|
---|
| 41 | clausule de OR van een willekeurig aantal literals is; een literal is
|
---|
| 42 | een $x_1$ of een $\neg x_1$). \\
|
---|
| 43 | Vraag: is er een waardering (waarheidstoekenning) van de $x_i$'s zodanig
|
---|
| 44 | dat $\phi$ wordt waargemaakt, dat wil zeggen dat per clausule minstens
|
---|
| 45 | \'e\'en literal waar is?
|
---|
| 46 | \item[MaxColorIndependentSet (MCIS)] Gegeven een ongerichte graaf
|
---|
| 47 | $G=V(,E)$, waarbij de knopen wit of zwart gekleurd zijn. $V$ bevat dus
|
---|
| 48 | de knopen m\`et hun kleur. \\
|
---|
| 49 | Vraag: bestaat er een maximaal onafhankelijke knoopverzameling $I (I
|
---|
| 50 | \subseteq V)$ die alleen zwarte knopen bevat? \\
|
---|
| 51 | Een deelverzameling $J$ van de knopen $V$ heet \emph{onafhankelijk} als
|
---|
| 52 | geldt: voor alle $i,j \in J$ is er \emph{geen} tak tussen $i$ en $j$.
|
---|
| 53 | Zo'n onafhankelijke verzameling is \emph{maximaal} als er geen knopen
|
---|
| 54 | meer aan kunnen worden toegevoegd zonder dat de
|
---|
| 55 | onafhankelijkheidseigenschap verloren gaat.
|
---|
| 56 | \end{description}
|
---|
| 57 |
|
---|
| 58 |
|
---|
| 59 | \section{\normalsize Laat zien dat MCIS $\in NP$ door een \emph{niet-deterministisch
|
---|
| 60 | polynomiaal} algoritme voor MCIS te geven.}
|
---|
| 61 | Het algoritme bestaat uit drie fases:
|
---|
| 62 | \begin{description}
|
---|
| 63 | \item[Fase 1 (gokfase)]
|
---|
| 64 | Genereer een random string $s$ gehele getallen welke als de volgende
|
---|
| 65 | syntax wordt geinterpeteerd $knoopnummer;kleur;lid MCIS;buren;$
|
---|
| 66 | \item[Fase 2 (verificatiefase)]
|
---|
| 67 | Er wordt gecontroleerd of $s$ daarwerkelijk een MCIS is:
|
---|
| 68 | \begin{enumerate}
|
---|
| 69 | \item controleer dat er precies $n$ knopen in staan: $O(\left|s\right|)$
|
---|
| 70 | \item controleer of kleurcode wit/zwart (1/0) is: $O(\left|s\right|)$
|
---|
| 71 | \item controleer of elke knoop tussen 0 en $n$ ligt: $O(\left|s\right|)$
|
---|
| 72 | \item controleer of alle knopen verschillend zijn: $O({\left|s\right|}^2)$
|
---|
| 73 | \item controleer of alle buren geldig zijn: $O({\left|s\right|}^2)$
|
---|
| 74 | \item controleer of knop welke lid is, zwart is: $O(\left|s\right|)$
|
---|
| 75 | \item controleer of alle buren van zwarte `lid' knoop niet lid zijn:
|
---|
| 76 | $O({\left|s\right|}^2)$
|
---|
| 77 | \item controleer of alle niet `lid' knopen, buren zijn van een `lid'
|
---|
| 78 | knoop: $O({\left|s\right|}^2)$
|
---|
| 79 | \end{enumerate}
|
---|
| 80 | Stap 1 t/m 5 zijn eigenlijk simpele controle stapjes om te kijken of de
|
---|
| 81 | invoer string voldoet aan de eisen die gesteld worden. De daadwerkelijke
|
---|
| 82 | intelligentie zit in de laatste stappen, welke kijkt of de eisen van de
|
---|
| 83 | zwarte MCIS voldaan worden. Dat wil zeggen zoveel mogelijk knopen die
|
---|
| 84 | geen buurtjes van elkaar zijn en geen witte knopen in de `leden' kring.
|
---|
| 85 |
|
---|
| 86 | \item[Fase 3]
|
---|
| 87 | Als Fase 2 True opleverd (e.g. alle punten goed doorlopen) wordt ``ja''
|
---|
| 88 | uitgevoerd, anders geen uitvoer.
|
---|
| 89 | \end{description}
|
---|
| 90 |
|
---|
| 91 | In de meeste stappen van het algoritme volstaat een keer doorlopen van
|
---|
| 92 | $s$ als voldoende, bijvoorbeeld bij controle kleur invoer. Bij het de
|
---|
| 93 | buren controle echter moet per item in $s$ de string nog een keer extra
|
---|
| 94 | worden doorlopen om te kijken of deze knoop daarwerkelijk voorkomt. Maar
|
---|
| 95 | in het totaal is $O({\left|s\right|}^2)$ voldoende.
|
---|
| 96 |
|
---|
| 97 | \section{\normalsize Laat zien dat de transformatie $T$ in polynomiaal begrensde
|
---|
| 98 | tijd uitgevoerd kan worden}
|
---|
| 99 | $T$ is hierbij de transformatie van SAT naar MCIS, waarbij $\phi$ een
|
---|
| 100 | logische expressie in de variablen $x_1, x_2,..., x_n$ in conjunctieve
|
---|
| 101 | normaalvorm (CNF). Daaruit wordt een een ongerichte graag $G_\phi$
|
---|
| 102 | geconstrueerd, waarvan de knopen zwart of wit gekleurd zijn. Maak 2$n$
|
---|
| 103 | zwarte knopen, corresponderd met de $n$ voorkomende variablen en hun
|
---|
| 104 | negaties (alle mogelijke literals dus). Voor elke in $\phi$ voorkomende
|
---|
| 105 | clausule komt een witte knoop. Elke witte knoop wordt verbonden met de
|
---|
| 106 | (zwarte) knopen die corresponderen met de in de betreffende clausule
|
---|
| 107 | voorkomende literals ($x_i$ and $\neg x_i$). Defineer nu $T(\phi) =
|
---|
| 108 | G_\phi$
|
---|
| 109 |
|
---|
| 110 | De stappen noodzakelijk zijn:
|
---|
| 111 | \begin{enumerate}
|
---|
| 112 | \item Alle clausulen tellen en witte knopen maken voor elke clausule:
|
---|
| 113 | $O(\phi)$
|
---|
| 114 | \item Door de clausulen lopen en zwarte knopen maken en hun negaties:
|
---|
| 115 | $O(\phi)$
|
---|
| 116 | \item Clausule knoop met literal knopen verbinden: $O(\phi)$
|
---|
| 117 | \item Tak aanleggen tussen aanwezige complementaire literals $O({\phi}^2)$
|
---|
| 118 | \end{enumerate}
|
---|
| 119 |
|
---|
| 120 | Dit allen is dus uit te voeren in $O({\phi}^2)$
|
---|
| 121 |
|
---|
| 122 | \section{\normalsize Bewijs: als er een waardering $w$ van de $x_i$ bestaat die
|
---|
| 123 | $\phi$ waarmaakt, dan heeft $G_\phi$ een maximale onafhankelijke
|
---|
| 124 | knoopverzameling die alleen uit zwarte knopen bestaat}
|
---|
| 125 |
|
---|
| 126 | Als $w$ waar is dan geld dat voor elke clausule $C_r$ een literal heeft die
|
---|
| 127 | minimal waargemaakt moet worden wil $\phi$ True worden. Alle
|
---|
| 128 | $l_i^r$ hebben een corresponderende knoop $v_i^r$ in $G_\phi$. Echter de
|
---|
| 129 | literals (zwarte knopen) kunnen niet met elkaar verbonden zijn, vanwege
|
---|
| 130 | de complementaire eigenschap. Dit betekend dat van een paar $l_i^r$ en
|
---|
| 131 | $\neg l_i^r$ slecht een enkele actief kan zijn.
|
---|
| 132 | Het maximale eigenschap wordt bereikt doordat knopen binnen dezelfde
|
---|
| 133 | clausule van elkaar gescheiden zijn van een $C$ (witte clausule) knoop.
|
---|
| 134 |
|
---|
| 135 |
|
---|
| 136 | \section{\normalsize Bewijs: als $G_\phi$ een maximale onafhankelijke
|
---|
| 137 | knoopverzameling $J$ heeft die alleen uit zwarte knopen bestaat, dat is
|
---|
| 138 | er een waardering $w$ van de $x_i$ die $\phi$ waarmaakt}
|
---|
| 139 |
|
---|
| 140 | Kies $w$ van de in $\phi$ voorkomende logische variablen die precies
|
---|
| 141 | True oplevert op litterals correspondered met de knopen in $G_\phi$. In
|
---|
| 142 | $w$ zullen $m$ clausulen voorkomen. Deze $m$ witte knopen zullen altijd
|
---|
| 143 | verbonden zijn met een knoop $\in J$.Doordat elke cluasule waar moet
|
---|
| 144 | zijn zal er altijd een knoop bevinden tussen de witte cluasule knopen en
|
---|
| 145 | minstens \'e\'en van de literals.
|
---|
| 146 |
|
---|
| 147 |
|
---|
| 148 |
|
---|
| 149 |
|
---|
| 150 | \end{document}
|
---|