20.08.2013 Views

Kan computere gætte? - datalogiens million-dollar ... - Viden (JP)

Kan computere gætte? - datalogiens million-dollar ... - Viden (JP)

Kan computere gætte? - datalogiens million-dollar ... - Viden (JP)

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.

A k t u e l N a t u r v i d e n s k a b | 3 | 2 0 0 1<br />

<strong>Kan</strong> <strong>computere</strong> <strong>gætte</strong>?<br />

- <strong>datalogiens</strong> <strong>million</strong>-<strong>dollar</strong> spørgsmål<br />

Hvad har computerspillet “Minestryger”,<br />

stillingen i Superligaen, moderne<br />

kryptografi, skemaplanlægning og<br />

puslespil med hinanden at gøre?<br />

Bag disse ting gemmer sig et centralt<br />

spørgsmål som har optaget matemati-<br />

kere og dataloger i tre årtier.<br />

Af Rasmus Pagh<br />

Et af <strong>datalogiens</strong> store uløste<br />

problemer er, populært sagt,<br />

hvorvidt <strong>computere</strong> kan programmeres<br />

til effektivt at lave et<br />

“godt gæt” på f.eks. løsningen<br />

til et skemaplanlægningsproblem,<br />

et svært puslespil eller<br />

en hemmelig kryptografisk<br />

nøgle. Man kan selvfølgelig<br />

finde en løsning ved at søge alle<br />

muligheder igennem, men kan<br />

man finde metoder, som er væsentligt<br />

mere effektive?<br />

Algoritmer der samler<br />

brikkerne<br />

Enhver, der har prøvet at lægge<br />

puslespil, ved, at det er langt<br />

lettere at overbevise sig om, at<br />

puslespillet er lagt korrekt end<br />

faktisk at lægge det. Dette gælder<br />

i særdeleshed typer af puslespil,<br />

hvor der er mange mulig-<br />

Eternity Puzzle © 1999, Christopher Monckton.<br />

heder for hvordan brikker kan<br />

placeres ved siden af hinanden.<br />

Nogle husker måske de puslespil,<br />

der var på mode i<br />

1980erne, hvor man skal lægge<br />

9 kvadratiske brikker i et stort<br />

kvadrat, således at illustrationerne<br />

på brikker, der grænser<br />

op til hinanden, passer sammen.<br />

Ofte kan man lægge de<br />

første 6-8 brikker for så at opdage,<br />

at de sidste brikker ikke<br />

passer, og man må prøve en ny<br />

måde at lægge brikkerne på. Et<br />

puslespil af helt andre dimensioner,<br />

det såkaldte Eternity<br />

Puzzle med over 200 brikker,<br />

blev frigivet i 1999. Sværhedsgraden<br />

understreges af, at der<br />

blev udlovet en præmie på en<br />

<strong>million</strong> engelske pund til den<br />

der kunne lægge puslespillet (se<br />

foto). Sidste år lykkedes det to<br />

unge engelske matematikere at<br />

lægge puslespillet ved hjælp af<br />

en avanceret computer-søgeteknik.<br />

Når man angriber problemer<br />

som for eksempel Eternity<br />

Puzzle på computer sker det<br />

ved at man udformer en algoritme,<br />

altså en “opskrift på beregning”,<br />

der løser problemet. I<br />

modsætning til ovenstående tilfælde<br />

er man oftest ikke interesseret<br />

i et konkret problem, men<br />

snarere i at løse problemer af en<br />

bestemt type. Brugeren af et<br />

program kan så specificere det<br />

konkrete problem når det opstår.<br />

Det er her ønskeligt at algoritmen<br />

kan løse selv store og<br />

komplicerede problemer inden<br />

for rimelig tid. At dette ikke altid<br />

er tilfældet kan illustreres<br />

ved følgende “opskrift” på en<br />

D A T A L O G I<br />

To unge englændere vandt en <strong>million</strong> pund ved at lægge dette puslespil.<br />

lille skål blå chokoladepastiller:<br />

»Tag en pose chokoladepastiller<br />

med blandede farver, ryst den,<br />

og hæld den ønskede mængde i<br />

en skål. Er de alle blå, er skålen<br />

færdig. Ellers hældes indholdet<br />

tilbage i posen og der begyndes<br />

forfra.«<br />

Som man kan forestille sig, er<br />

dette en meget langsommelig<br />

proces, hvis man ønsker mere<br />

end ganske få chokoladepastiller.<br />

Problemet er med andre<br />

ord, at tiden, det tager at<br />

udføre opskriften, vokser voldsomt<br />

med størrelsen af det konkrete<br />

problem (altså skålens<br />

størrelse). I dette tilfælde er det<br />

ikke svært at komme på en<br />

mere effektiv opskrift, men der<br />

findes beregningsproblemer<br />

hvor det er et åbent spørgsmål,<br />

hvorvidt man kan undgå, at<br />

17


18<br />

A k t u e l N a t u r v i d e n s k a b | 3 | 2 0 0 1<br />

D A T A L O G I<br />

Beregningers vækst i tid<br />

Ved en effektiv algoritme forstås<br />

en algoritme hvis udførelsestid<br />

ikke vokser for voldsomt når man<br />

øger "størrelsen" af det problem,<br />

den bliver anvendt på. "Størrelsen"<br />

er længden af en tekst der<br />

beskriver problemet. Det kunne<br />

for eksempel være en liste over<br />

aktiviteter som skal skemalægges<br />

inden for en vis periode,<br />

med angivelse af ting der ikke<br />

må skemalægges samtidig, eller<br />

en beskrivelse af spilleplanen i<br />

Minestryger med angivelse af<br />

hvilke felter som er ryddet, og<br />

hvor mange miner de grænser<br />

op til. Som nævnt ovenfor vokser<br />

tiden for kendte skemaplanlægningsprogrammer<br />

i værste<br />

fald eksponentielt med størrelsen<br />

af problemet.<br />

Eksempler på eksponentiel<br />

vækst er funktioner som 2 n og 3 n .<br />

Hvis tiden højst vokser som f.eks.<br />

n 2 eller n 3 er der tale om en meget<br />

mere fornuftig vækst, som illustreret<br />

i grafen til højre. Vækst af<br />

funktioner som n 2 , n 3 , n 4 , etc. kaldes<br />

polynomiel. Klassen af problemer<br />

som har algoritmer med<br />

polynomiel vækst i tid kaldes P.<br />

Eksempler på beregningsproblemer<br />

i P er sortering og søgning<br />

i en tekst. Erfaringsmæssigt<br />

er de problemer man støder på i P<br />

også i praksis håndterlige, mens<br />

beregningstiden vokser eksplosivt<br />

med problemstørrelsen.<br />

Kryptografi<br />

Kryptografi spiller i dag en stor<br />

rolle på Internettet, f.eks. når<br />

følsomme data som betalingsoplysninger<br />

skal beskyttes. Ikke<br />

desto mindre ved man faktisk<br />

ikke, om de mest udbredte metoder<br />

er sikre! Sikkerheden baseres<br />

på en formodning om, at<br />

gode gæt på hemmelige krypteringsnøgler<br />

ikke kan laves effektivt<br />

på computer, og at det derfor<br />

vil tage tusinder eller <strong>million</strong>er<br />

af år at bryde koderne. Selv<br />

om man hidtil ikke har fundet<br />

effektive måder at lave gode gæt<br />

på, har det vist sig svært at be-<br />

10 20<br />

10 15<br />

en billion<br />

en milliard<br />

en <strong>million</strong><br />

1000<br />

n n<br />

2 4 8 16 32 64 128 256 512<br />

n<br />

1024<br />

Det største problem der kan løses på en time<br />

Algoritmens tid med nutidens med en der er med en der er<br />

vokser som <strong>computere</strong> 100 gange 1000 gange<br />

hurtigere hurtigere<br />

n A 100 A 1000 A<br />

n2 B 10 B 31,6B<br />

2n C C + 6,64 C + 9,97<br />

algoritmer der har hurtigere end<br />

polynomiel vækst i tid oftest ikke<br />

er praktiske. Det er derfor almin-<br />

vise, at sådanne metoder ikke<br />

eksisterer.<br />

Mens kryptologerne håber og<br />

tror, at visse beregninger tager<br />

lang tid at udføre på computer,<br />

er der andre der ville ønske, at<br />

det hele var lidt lettere. Det<br />

gælder for eksempel folk, der<br />

beskæftiger sig med skemaplanlægning.<br />

Der kendes ikke<br />

metoder til at lægge de sværeste<br />

skemaer inden for rimelig tid.<br />

Faktisk vokser tiden eksponentielt<br />

med antallet af ting, der<br />

skal skemalægges. En konsekvens<br />

af dette er, at en moderne<br />

PC inden for et givet tidsrum<br />

kun kan lægge skemaer med et<br />

beskedent antal flere elementer<br />

end de første personlige com-<br />

2 n<br />

1,2 n<br />

n 5<br />

n 3<br />

5n<br />

deligt at betragte P som klassen af<br />

problemer der kan håndteres effektivt<br />

på computer.<br />

putere, på trods af at den udfører<br />

sine beregninger 1000 gange<br />

hurtigere. Når hastigheden en<br />

gang i fremtiden igen er steget<br />

med en faktor 1000 vil det kun<br />

give samme lille forbedring.<br />

Der er altså tale om en fundamental<br />

begrænsning i vores<br />

regnekraft, som kun i lille omfang<br />

afhjælpes ved fremkomsten<br />

af hurtigere hardware (se<br />

tabel i boks).<br />

Minestryger<br />

Computerspillet Minestryger<br />

(se boks) er kendt fra operativsystemet<br />

Windows. Hvis du<br />

nogen sinde er blevet svimmel<br />

af at forsøge at lokalisere alle<br />

miner i spillet, kan du trøste<br />

antal mikrosekunder<br />

siden Big Bang<br />

antal mikrosekunder<br />

på et døgn<br />

dig med at det faktisk er nøjagtig<br />

lige så svært som skemaplanlægning!<br />

Det skyldes, at<br />

man har en effektiv metode til<br />

at omforme skemaplanlægningsproblemer<br />

til Minestryger-problemer,<br />

således at<br />

man ved at løse Minestrygerproblemet<br />

kan få svar på det<br />

oprindelige skemaplanlægningsproblem.<br />

Med andre ord: hvis<br />

du kan finde en effektiv metode<br />

til at spille Minestryger optimalt,<br />

vil det medføre at skemaplanlæggernes<br />

trængsler er ovre.<br />

Faktisk vil en lang række vigtige<br />

optimeringsproblemer pludselig<br />

kunne håndteres effektivt –<br />

med enorme besparelser til<br />

følge. På den videnskabelige


front ville matematisk orienteret<br />

forskning formentlig ændres<br />

radikalt, til i høj grad at være<br />

computer-assisteret, da det er<br />

let at bekræfte beviser når de<br />

først er "<strong>gætte</strong>t".<br />

Der er altså tale om et problem<br />

hvor en positiv løsning<br />

ville have revolutionerende<br />

virkning på en række områder.<br />

Omvendt ville den efterlade<br />

store dele af moderne<br />

kryptografi i ruiner, så forhør<br />

dig lige ved din lokale efterretningstjeneste<br />

inden du bringer<br />

nationens sikkerhed i fare!<br />

Gæt og bekræft<br />

Som bekendt er bagklogskab<br />

lettere at besidde end klogskab.<br />

Samme fænomen gør sig gældende<br />

for de beregningsproblemer<br />

vi har set på her.<br />

Med en skemaplan i hånden er<br />

det let at bekræfte, at den overholder<br />

hvad den skal. Og hvis<br />

du fejlagtigt tror, at der ikke<br />

kan være en mine på et bestemt<br />

sted i Minestryger, overbeviser<br />

<strong>computere</strong>n dig let om det<br />

modsatte ved at vise dig en placering<br />

af miner der bevidner at<br />

du tager fejl. På samme vis er<br />

det let at checke, om en bestemt<br />

serie af fodboldresultater<br />

for resten af sæsonen vil give<br />

AB mesterskabet, men det er<br />

ikke nødvendigvis let at finde<br />

serien af resultater. Et andet eksempel<br />

er problemet at finde en<br />

måde at placere familien rundt<br />

om bordet til familiefesten, således<br />

at dem, der ikke kan<br />

holde hinanden ud, ikke kommer<br />

til at sidde ved siden af<br />

hinanden!<br />

Klassen af beregningsproblemer,<br />

der regnes for praktisk<br />

løsbare, kaldes P (se boks<br />

næste side). En tilsyneladende<br />

større klasse er de beregningsproblemer,<br />

der let kan besvares<br />

hvis man som udgangspunkt er<br />

i besiddelse af et "godt gæt".<br />

Denne klasse, der kaldes NP,<br />

indeholder alle de problemer<br />

som er nævnt ovenfor. Betegnelsen<br />

skyldes, at man forestiller<br />

sig, at man Nondeterministisk,<br />

altså uden system eller metode,<br />

laver det "gode gæt" og<br />

derefter bekræfter det effektivt.<br />

Gættet kaldes for et "certifikat".<br />

Et certifikat skal findes hvis der<br />

er et positivt svar eller en løsning<br />

på problemet. Med et certifikat<br />

som "hjælpeinformation"<br />

skal det være praktisk<br />

løsbart at svare på problemet.<br />

Desuden skal det være praktisk<br />

løsbart at afvise et ugyldigt certifikat.<br />

For de nævnte problemer<br />

er certifikatet simpelthen<br />

en løsning på problemet, hvis<br />

en sådan findes. Der er andre<br />

tilfælde, hvor det ikke er så oplagt,<br />

at der findes et certifikat.<br />

For eksempel findes der for ethvert<br />

primtal et certifikat, der<br />

viser, at det ikke har nogen divisorer.<br />

Er P lig med NP?<br />

Det store uafklarede spørgsmål<br />

er om P=NP, dvs. hvorvidt det<br />

er praktisk løsbart at finde frem<br />

til et certifikat. Mens man ikke<br />

har været i stand til at besvare<br />

“P=NP?” spørgsmålet, er det<br />

lykkedes at identificere en<br />

række af de sværeste beregningsproblemer<br />

i NP. Mere<br />

Svære beregningsproblemer<br />

Minestryger problemet.<br />

Minestryger spilles på et gitter<br />

af felter bag hvilke der gemmer<br />

sig et antal miner. Opgaven er at<br />

"rydde" alle felter, hvor der ikke<br />

er miner. Når man rydder et felt<br />

(og ikke bliver sprængt i luften<br />

af en bagvedliggende mine!) viser<br />

der sig et tal, der angiver<br />

hvor mange miner der findes på<br />

de op til 8 nabofelter. Baseret<br />

på sådanne hints kan man ofte<br />

regne sig frem til nye felter, der<br />

kan ryddes.<br />

Betragt for eksempel de to<br />

felter markeret med pile i figuren.<br />

I begge tilfælde kan man<br />

rydde et nabofelt, da de nødvendigvis<br />

må indeholde miner. For<br />

det øverste felt er det let at se,<br />

da feltet til højre indeholder et<br />

1-tal og ikke har andre nabo-<br />

A k t u e l N a t u r v i d e n s k a b | 3 | 2 0 0 1<br />

D A T A L O G I<br />

Hvordan lægges brikkerne så der er ensfarvede trekanter ved alle<br />

samlinger?<br />

felter der kan indeholde en<br />

mine. For det andet felt skal der<br />

tænkes lidt mere, og man skal<br />

for eksempel indse, at der ikke<br />

kan være en mine lige under 2tallet<br />

længst til højre. <strong>Kan</strong> du<br />

regne minernes placering ud i<br />

konfigurationen til højre?<br />

Minestryger beregningsproblemet<br />

går ud på at afgøre, om<br />

det er muligt at et bestemt felt i<br />

en given konfiguration af et<br />

spillebræt skjuler en mine. Bemærk<br />

at algoritmen skal kunne<br />

håndtere vilkårligt store spillebrætter.<br />

Fodbold problemet<br />

Givet stillingen i en fodboldliga<br />

og en tabel over de resterende<br />

kampe (hvor en sejr giver 3 point<br />

og uafgjort 1 point), afgør om<br />

det er teoretisk muligt at et bestemt<br />

hold bliver mestre. Det tilsvarende<br />

problem for håndbold<br />

er i P. Dette skyldes, at antallet<br />

af point der spilles om i en håndboldkamp<br />

altid er 2, mens der i<br />

fodbold kan deles såvel 2 som 3<br />

point ud.<br />

Planlægningsproblemer<br />

Nogle af de vigtigste problemer i<br />

NP går ud på at lægge optimale<br />

planer. Det kunne for eksempel<br />

være at finde den korteste rejserute<br />

til en række byer for en handelsrejsende,<br />

at lave flyrute planer<br />

der minimerer omkostninger<br />

til løn etc., eller at fylde flest muligt<br />

poser med æbler så alle poser<br />

indeholder mindst 1000<br />

gram. Ikke alle planlægningsproblemer<br />

er svære, selv om antallet<br />

af muligheder for planer<br />

kan være enormt. En vigtig klasse<br />

er i P, og kan løses effektivt<br />

ved en teknik der kaldes lineær<br />

programmering. Det gælder for<br />

eksempel hvis man skal planlægge<br />

hvilke klasser og fag som<br />

lærere på en skole skal have, ud<br />

fra oplysninger om hvilke klassetrin<br />

og fag de enkelte lærere har<br />

specialiseret sig i.<br />

19


20<br />

A k t u e l N a t u r v i d e n s k a b | 3 | 2 0 0 1<br />

D A T A L O G I<br />

Certifikatet stemmer!<br />

Hvis man får vist et "certifikat" for en mulig konfiguration i minestryger, kan man udelukke minernes positioner<br />

som sikre felter at rydde. Har man ingen sådan hjælp kendes ingen metode, der er meget bedre end<br />

simpelthen at afprøve alle muligheder for hvor minerne kan være.<br />

præcist gælder det, at hvis et af<br />

disse problemer er i P, så er alle<br />

problemer i NP også i P. Omvendt,<br />

hvis man for et af disse<br />

problemer kan vise at det ikke<br />

er i P, gælder det dem alle. De<br />

ovennævnte eksempler, bortset<br />

fra primtalsgenkendelse, falder<br />

alle i denne gruppe, dvs. de har<br />

samme sværhedsgrad som en<br />

række notorisk svære<br />

beregningsproblemer, der har<br />

modstået 30 års forsøg på at<br />

finde effektive algoritmer. På<br />

den anden side er der eksempler<br />

på beregningsproblemer,<br />

hvor man først efter årtiers ar-<br />

bejde er kommet frem til at de<br />

tilhører P. Den interesserede læser<br />

opfordres til at forsøge sig<br />

med et af de nævnte problemer!<br />

Hvem vil være <strong>million</strong>ær?<br />

Clay Mathematics Institute<br />

har, som omtalt i Aktuel Naturvidenskab<br />

3, 2000, for nylig<br />

udlovet en dusør på en<br />

<strong>million</strong> <strong>dollar</strong>s til den der besvarer<br />

'P=NP?' spørgsmålet.<br />

De fleste eksperter tror at<br />

spørgsmålet skal besvares negativt.<br />

Et sådant bevis for at P<br />

er forskellig fra NP, altså for<br />

at f.eks. Minestryger proble-<br />

met ikke er effektivt løsbart,<br />

synes vanskeligt fordi man<br />

skal tage højde for alle mulige<br />

algoritmer og vise, at de hver<br />

især nødvendigvis må have<br />

udførelsestid, der vokser voldsomt<br />

med problemstørrelsen.<br />

Vanskeligheden illustreres ved,<br />

at man trods stor indsats end<br />

ikke har bevis for at noget<br />

beregningsproblem i NP tager<br />

tid, der vokser hurtigere end lineært<br />

med problemstørrelsen.<br />

Meget tyder på, at der skal en<br />

helt ny angrebsvinkel til for at<br />

besvare <strong>datalogiens</strong> <strong>million</strong> <strong>dollar</strong><br />

spørgsmål.<br />

Om forfatteren<br />

Rasmus Pagh er<br />

ph.d.-studerende ved<br />

Datalogisk Institut<br />

Aarhus Universitet<br />

Email: pagh@daimi.au.dk<br />

Forfatteren er pt. tilknyttet<br />

Aktuel Naturvidenskab<br />

Ny Munkegade, Bygn. 520<br />

8000 Århus C<br />

Tlf.: 8942 5555<br />

Supplerende læsning<br />

Clay Mathematics Institute,<br />

http://www.claymath.org/<br />

D. Harel, Algorithmics: The<br />

Spirit of Computing, 2nd edition,<br />

Addison-Wesley 1992.<br />

C. Papadimitriou,<br />

Computational Complexity,<br />

Addison-Wesley 1994.<br />

I. Stewart, Million-Dollar<br />

Minesweeper, Scientific<br />

American, oktober 2000.

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

Saved successfully!

Ooh no, something went wrong!