Denkende Machines -- Computers, rekenen, redeneren - CWI
Denkende Machines -- Computers, rekenen, redeneren - CWI
Denkende Machines -- Computers, rekenen, redeneren - CWI
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
84 HOOFDSTUK 3. MODELLEN VAN BEREKENING<br />
Figuur 3.10: Het vervulbaarheidsprobleem: is het circuit zo dat het lampje bij de uitgang gaat<br />
branden voor een bepaalde stand van de bits, of blijft het altijd uit?<br />
1<br />
0<br />
circuit<br />
0 0 1 0 1 0<br />
praktijk wordt de meetlat dan ook lager gelegd dan de berekenbaarheidsgrens van Turing, en<br />
worden algoritmen, de rekenmethodes die ten grondslag liggen aan een programma, ook kritisch<br />
bekeken op zogenaamd combinatorisch explosief gedrag.<br />
Een goed voorbeeld van combinatorische explosie is de waarheidstabellenmethode voor propositielogica<br />
uit het vorige hoofdstuk. Als we willen weten of een propositie vervulbaar is, dan<br />
moeten we de hele tabel door<strong>rekenen</strong> en kijken of in de laatst in te vullen kolom een 1 voorkomt.<br />
We kunnen dezelfde methode voor een circuit toepassen: zo’n circuit correspondeert met een<br />
propositie en de bits met de propositieletters. De vervulbaarheidsvraag is dan of een lampje<br />
dat we bij de uitgang van het circuit hangen gaat branden voor een of andere instelling van<br />
de bits, zoals dat getekend is in Figuur 3.10. De waarheidstabellenmethode gaat netjes alle<br />
mogelijkheden af, en dat levert bijvoorbeeld in Figuur 3.10 in het ergste geval dat we 2 9 = 512<br />
keer de bits moeten instellen en kijken of het lampje gaat branden.<br />
De combinatorische explosie van deze methode bestaat eruit dat met maar een enkel bitje<br />
extra de rekentijd twee keer zo lang wordt. Zo moet je voor een circuit met 50 bits meer dan een<br />
biljard mogelijkheden door<strong>rekenen</strong> (om precies te zijn 1125899906842624, en dat is inderdaad<br />
wat meer dan 10 15 ), en in het geval 100 bits meer dan een biljard keer een biljard (meer dan 10 30 ).<br />
In plaats van ‘explosief’ wordt in de complexiteitstheorie, een discipline binnen de theoretische<br />
informatica, zo’n algoritme exponentieel genoemd, omdat de verhouding tussen rekentijd en de<br />
omvang van de invoer exponentieel is. In de tabel hieronder staat deze verhouding in de kolom<br />
helemaal links. Als de invoeromvang met een enkele stap toeneemt, dan wordt de wachttijd een<br />
bepaalde constante factor langer.<br />
Exponentieel Polynomiaal Lineair<br />
tijd ∼ constante |invoer| tijd ∼ |invoer| constante tijd ∼ constante · |invoer|<br />
De opdracht voor programmeur of informaticus is nu om algoritmen te ontwerpen om de variabele<br />
invoeromvang uit de exponent te krijgen. Een voor de praktijk zeer acceptabele wachtverhouding