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)
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.