26 Dag Normann Normat 1/2005
2. For å bevise at det er mulig å dele en gitt tallmengde i to delmengder med
samme sum, er det tilstrekkelig å gjette på en god oppdeling og deretter
verifisere at summene blir de samme.
3. For å bevise at vi ikke har sikker informasjon om en gitt rute i en gitt mine-
sveiperstilling er det tilstrekkelig å gjette på to fordelinger av miner som er
forskjellige for den aktuelle ruten og så bekrefte at de er i overenstemmelse
med opplysningene så langt.
For å avkrefte hvert av tilfellene må vi vise at det er umulig å gjette rett.
NP står for Nondeterministic Polynomial og henspeiler på at vi kan bevise en
påstand ved hjelp av heldig gjetning. En deterministisk prosess er en prosess som
følger forhåndsbestemte regler, mens en ikke-deterministisk prosess kan ha skritt
som ikke er forhåndsbestemt. De kan eksempelvis være bestemt av terningkast
eller gjetning. NP vil bestå av familier av problemer hvor vi kan svare positivt i de
tilfellene hvor svaret er JA ved hjelp av gjetning og verifisering som samlet bruker
et antall regneskritt begrenset av et polynom, men hvor antall mulige gjetninger
vokser eksponensialt med størrelsen på det aktuelle problemet, slik at vi i det
minste tilsynelatende ikke kan vise i rimelig tid at svaret er NEI, selv om vi er
heldige. Det å skulle bevise at et NP-problem har positiv løsning kan sammenliknes
med å spille lotto. Vi gjetter på en rekke og må bevise at dette er vinnerrekken.
Sammenlikningen halter litt fordi det ikke alltid blir trukket ut en vinnerrekke i
NP-spillene.
Problemet om P = NP eller ikke er et av de syv milleniumsproblemene, proble-
mer som ble betraktet som en spesiell utfordring ved starten av det nye årtusenet,
og som pengesterke folk satte en dusør på en million dollar stykket på. Hvis NP-
problemene hadde begrenset seg til slike sære problemer som vi har sett på, hadde
det vært uforståelig at P = NP-problemet hadde blitt betraktet som viktig. I et litt
større perspektiv kan imidlertid den handelsreisendes problem sees på som et pro-
blem om effektiv utnyttelse av ressurser, noe som selvfølgelig har stor praktisk og
økonomisk betydning. Et annet område hvor NP-problemer oppstår er ved verifi-
kasjon av logiske kretser eller integrerte kretser. En moderne datamaskin er bygget
opp av kretser, hvor signalene som skal komme ut er bestemt på et komplisert vis
av signalene som sendes inn. Problemet om det er en feil ved en slik krets, om det
finnes måter å sende signalene inn på slik at vi ikke får det ønskede signalet ut,
er et typisk NP-problem. Den amerikanske matematikeren/informatikeren Stephen
Cook brukte nettopp logiske kretser, eller mer presist spørsmålet om en gitt formel i
utsagnslogikken kan gjøres sann, som et eksempel på et NP-komplett problem. Kan
vi løse ett NP-komplett problem i polynomisk tid kan vi løse alle NP-problemer i
p olynomisk tid. De tre problemfamiliene vi har sett på er NP-komplette. Richard
Kaye viste at en logisk krets kan omstruktureres til et minesveiperbrett slik at
om vi avgjør problemer om minesveiperbrettet i polynomisk tid avgjør vi samtidig
relevante problemer om den logiske kretsen. Detaljene er tilgjengelige i [1].
Nå skal vi ikke overdrive den praktiske betydningen av å få løst P = NP-problemet.
For mange viktige NP-problemer finnes det gode og raske programmer som gir
oss et godt svar som ikke nødvendigvis er det teoretisk sett beste (når det gjelder
ressursutnyttelse) eller e t svar som er rett med stor grad av sannsynlighet om vi ber
om et JA/NEI-svar. Lærdommen er likevel at NP-problemer forekommer ofte, og
normann.tex,v 1.7