31.07.2013 Views

Denkende Machines -- Computers, rekenen, redeneren - CWI

Denkende Machines -- Computers, rekenen, redeneren - CWI

Denkende Machines -- Computers, rekenen, redeneren - CWI

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.4. REKENTIJDEN 87<br />

3.4.4 Een Open Kwestie: P versus NP<br />

We hebben gezien dat we het oorspronkelijke kwadratische algoritme voor het beroemdheidsprobleem<br />

konden vervangen door een lineair algoritme. De vraag rijst nu of er niet ook een beter<br />

(polynomiaal) algoritme bestaat voor het vervulbaarheidsprobleem van de propositielogica. Dit<br />

blijkt een bijzonder moeilijke en diepe vraag te zijn. De enige bekende algoritmen gedragen zich<br />

allemaal exponentieel, en het is tot op de dag van vandaag niet bekend of er een polynomiale<br />

oplossing bestaat. De tijdscomplexiteit van het vervulbaarheidsprobleem is daarmee onbekend.<br />

Er bestaat wel een nauwkeurige benadering met betrekking tot zogenaamde non-deterministische<br />

algoritmen. Dit zijn algoritmen waarbij ook door de uitvoerder zelf keuzes gemaakt mogen<br />

worden (zonder een test). Een zeer simpel voorbeeld van zo’n non-deterministisch algoritme voor<br />

het vervulbaarheidsprobleem is de volgende methode:<br />

Kies een instelling van de bits (zoals in Figuur 3.10) en kijk of het lampje brandt.<br />

De non-deterministische complexiteit van een probleem is gedefinieerd als het snelste nondeterministische<br />

algoritme waarbij tijdens de uitvoering de meest optimale keuzes worden gemaakt.<br />

Als in het hierboven gedefinieerde vervulbaarheidsalgoritme met maximaal geluk gekozen<br />

wordt, dan zal in het geval van een vervulbare propositie een instelling gekozen worden waarbij<br />

het lampje gaat branden, want als het lampje in zo’n geval niet zou gaan branden, dan moet<br />

de uitvoerder niet optimaal geweest zijn in zijn keuze. Natuurlijk kost het de van zijn optimaal<br />

geluk overtuigde uitvoerder slechts polynomiaal veel tijd om op basis van dit algoritme met een<br />

juist antwoord te komen. Deze non-deterministische tijdscomplexiteit wordt aangeduid met NP,<br />

terwijl P staat voor deterministische polynomiale complexiteit.<br />

Non-deterministische tijdscomplexiteit lijkt een tamelijk academisch en onpraktisch begrip.<br />

De praktijk leert immers dat non-deterministische keuzen (willekeurige keuzen) niet altijd gouden<br />

grepen hoeven te zijn. Het begrip wordt veel natuurlijker als we het als volgt omschrijven:<br />

problemen in NP zijn de problemen waarvoor de beste aanpak die tot op heden is bedacht<br />

neerkomt op systematisch alle mogelijkheden uitproberen, terwijl het controleren of een oplossing<br />

de goede is juist heel efficiënt kan gebeuren. Kijken of bij een bepaalde stand van de bits<br />

(schakelaars) in Figuur 3.10 het lampje gaat branden kost slechts polynomiaal veel tijd. De complexiteitskarakterisering<br />

NP wordt dan ook veel gebruikt in de theoretische informatica. Veel<br />

combinatorische lastige rekenproblemen blijken zich net zo te gedragen als het vervulbaarheidsprobleem.<br />

Ze behoren allemaal tot de NP-klasse, maar P-algoritmen ervoor zijn niet bekend.<br />

Daarmee onderscheiden ze zich van problemen waarvan aangetoond is dat ze zich alleen maar<br />

met een exponentieel algoritme laten oplossen.<br />

Het vervulbaarheidsprobleem voor de propositielogica speelt een centrale rol in de NP-klasse.<br />

Het blijkt zo te zijn dat, als een P-algoritme voor dit probleem gevonden wordt, dat dan alle<br />

NP-problemen een P-algoritme moeten hebben. Elk probleem in NP laat zich namelijk vertalen<br />

naar het vervulbaarheidsprobleem, en die vertaling neemt maar polynomiaal veel tijd in beslag.<br />

Met een vertaling bedoelen we dat we een probleem A? kunnen omzetten, zodat het kan dienen<br />

als invoer van een vervulbaarheidsalgoritme, om vervolgens de uitvoer weer te vertalen naar een<br />

bevredigend antwoord op de vraag A?. Natuurlijk is voor deze omzetting van invoer en uitvoer<br />

weer rekentijd nodig, maar men is erin geslaagd te bewijzen dat voor elk NP-probleem een<br />

vertaling naar het vervulbaarheidsprobleem te geven is waarvan de rekentijd zich polynomiaal<br />

verhoudt tot de invoeromvang. In Figuur 3.11 is deze situatie weergegeven. Hieraan kun je zien

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!