Hvor vanskelig kan det være? Om teoretiske og reelle begrensninger på hva vi kan forvente oss av datamaskiner

Like dokumenter
Forelesning 30: Kompleksitetsteori

Om mulige og tilsynelatende umulige programmeringsoppgaver

MAT1030 Diskret Matematikk

Forelesning 29: Kompleksitetsteori

Forelesning 31. Dag Normann mai Informasjon. Kompleksitetsteori

MAT1030 Forelesning 30

Turingmaskiner en kortfattet introduksjon. Christian F Heide

Oppsummering av Uke 3. MAT1030 Diskret matematikk. Binære tall. Oppsummering av Uke 3

MAT1030 Diskret Matematikk

Kapittel 5: Mengdelære

Mer om representasjon av tall

INF oktober Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet

Forelesning 14. Rekursjon og induksjon. Dag Normann februar Oppsummering. Oppsummering. Beregnbare funksjoner

Kapittel 5: Mengdelære

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Eksempel

MAT1030 Forelesning 14

Kapittel 6: Funksjoner

MAT1030 Forelesning 10

MAT1030 Diskret Matematikk

Valg av kontaktpersoner/tillitsvalgte. MAT1030 Diskret matematikk. Oppsummering av kapittel 2. Representasjon av hele tall

MAT1030 Diskret matematikk

Sist forelesning snakket vi i hovedsak om trær med rot, og om praktisk bruk av slike. rot. barn

MAT1030 Diskret matematikk

MAT1030 Diskret Matematikk

I Kapittel 2 lærte vi om tall i alternative tallsystemer, i hovedsak om binære tall, oktale tall og heksadesimale tall.

MAT1030 Diskret matematikk

KONTROLLSTRUKTURER. MAT1030 Diskret matematikk. Kontrollstrukturer. Kontrollstrukturer. Eksempel (Ubegrenset while-løkke)

Forelesning 2. Flere pseudokoder. Representasjoner av tall. Dag Normann januar 2008 KONTROLLSTRUKTURER. Kontrollstrukturer. Kontrollstrukturer

Forelesning 30. Kompleksitetsteori. Dag Normann mai Informasjon. Oppsummering

Kapittel 3: Litt om representasjon av tall

MAT1030 Forelesning 28

INF2220: Time 8 og 9 - Kompleksitet, beregnbarhet og kombinatorisk søk

Turingmaskiner en kortfattet introduksjon. Christian F Heide

Venn-diagrammer. MAT1030 Diskret matematikk. Venn-diagrammer. Venn-diagrammer. Eksempel. Forelesning 10: Mengdelære

Forelesning 10. Mengdelære. Dag Normann februar Venn-diagrammer. Venn-diagrammer. Venn-diagrammer. Venn-diagrammer

MAT1030 Diskret matematikk. Kompleksitetsteori. Forelesning 29: Kompleksitetsteori. Dag Normann KAPITTEL 13: Kompleksitetsteori. 7.

MAT1030 Forelesning 3

MAT1030 Diskret Matematikk

Generell induksjon og rekursjon. MAT1030 Diskret matematikk. Generell induksjon og rekursjon. Generell induksjon og rekursjon.

MAT1030 Forelesning 19

TALLÆRE UKE 34. Rest. Hvis vi deler a med b og det ikke går opp har vi rest som er mindre enn b.

MAT1030 Diskret Matematikk

Kapittel 4: Logikk (fortsettelse)

MAT1030 Forelesning 2

2.3 Delelighetsregler

Forelesning 23. Grafteori. Dag Normann april Oppsummering. Oppsummering. Oppsummering. Digresjon: Firefarveproblemet

MAT1030 Diskret Matematikk

Kapittel 5: Relasjoner

MAT1030 Diskret Matematikk

MAT1030 Forelesning 4

MAT1030 Forelesning 11

Kapittel 5: Relasjoner

MAT1030 Diskret matematikk

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Forelesning 23: Grafteori

Kapittel 6: Funksjoner

Reelle tall på datamaskin

MAT1030 Diskret Matematikk

MAT1030 Forelesning 14

Forelesning 24 mandag den 10. november

Forelesning 13. Funksjoner. Dag Normann februar Opphenting. Opphenting. Opphenting. Opphenting

MAT1030 Diskret matematikk

IN2010: Forelesning 11. Kombinatorisk søking Beregnbarhet og kompleksitet

MAT1030 Diskret matematikk

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper

MAT1030 Diskret Matematikk

Forelesning 9. Mengdelære. Dag Normann februar Mengder. Mengder. Mengder. Mengder OVER TIL KAPITTEL 5

MAT1030 Forelesning 22

Kapittel 3: Litt om representasjon av tall

Telle med 0,3 fra 0,3

MAT1030 Forelesning 24

Rekurrens. MAT1030 Diskret matematikk. Rekurrens. Rekurrens. Eksempel. Forelesning 16: Rekurrenslikninger. Dag Normann

Kapittel 5: Mengdelære

Grafteori. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 24: Grafer og trær. Dag Normann

6. kurskveld Ila, 7. juni - 06 Statistikk og sannsynlighet

Legg merke til at summen av sannsynlighetene for den gunstige hendelsen og sannsynligheten for en ikke gunstig hendelse, er lik 1.

Forelesning 27. MAT1030 Diskret Matematikk. Bevistrær. Bevistrær. Forelesning 27: Trær. Roger Antonsen. 6. mai 2009 (Sist oppdatert: :28)

MAT1030 Diskret Matematikk

Kapittel 4: Mer predikatlogikk

MAT1030 Diskret matematikk. Mengder. Mengder. Forelesning 9: Mengdelære. Dag Normann OVER TIL KAPITTEL februar 2008

Løsningsforslag til eksamenen i MAT103, våren 2016

Vi var midt i et eksempel, som vi tar opp igjen her, da tiden var ute.

MAT1030 Forelesning 22

Sammensatte utsagn, sannhetsverditabeller. MAT1030 Diskret matematikk. Sammensatte utsagn, sannhetsverditabeller

Introduksjon. MAT1030 Diskret matematikk. Søkealgoritmer for grafer. En graf

MAT1030 Diskret matematikk

Introduksjon. MAT1030 Diskret Matematikk. Introduksjon. En graf. Forelesning 22: Grafteori. Roger Antonsen

Kvantorer. MAT1030 Diskret matematikk. Kvantorer. Kvantorer. Eksempel. Eksempel (Fortsatt) Forelesning 8: Predikatlogikk, bevisføring

MAT1030 Diskret matematikk

Vektede grafer. MAT1030 Diskret matematikk. En kommunegraf. En kommunegraf. Oppgave

24. AUGUST Diskret matematikk. onsdag 23. august 2017

I Kapittel 3 så vi på hvordan data, som hele tall og reelle tall, kan representeres som bitsekvenser

Hovedområder og kompetansemål fra kunnskapsløftet:

Tall Vi på vindusrekka

MAT1030 Diskret Matematikk

Repetisjon. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 15: Rekursjon og induksjon. Roger Antonsen

Konvertering mellom tallsystemer

Forelesning 1 mandag den 18. august

Forelesning 14 torsdag den 2. oktober

Posisjonsystemet FRA A TIL Å

Transkript:

Hvor vanskelig kan det være? Om teoretiske og reelle begrensninger på hva vi kan forvente oss av datamaskiner Dag Normann The University of Oslo Department of Mathematics 31.10.2013 Faglig-pedagogisk dag 31.10.2013-1

Innledning Det har lenge vært påstått at IT-industrien fordobler kapasiteten på sine produkter i løpet av 18 måneder. Tolket bokstavelig betyr dette at om vi har et problem som det med dagens teknologi tar ti år å løse, kan vi få en raskere løsning ved å vente et par år. Om tre år arbeider maskinene fire ganger raskere og bruker to og et halvt år på problemet vårt. Vi kan faktisk få en løsning tidligere enn om fem og et halvt år, og det vil være en fin elevoppgave å beregne hvor raskt det er mulig å løse et problem som pr. i dag krever 10 år. Faglig-pedagogisk dag 31.10.2013-2

Innledning Det vi, litt overfladisk, skal se på i denne forelesningen er matematiske modeller for hva som i teorien kan utføres av datamaskiner, og matematiske modeller for hvilke problemer som kan løses i realistisk tid. Modellen for hva som er teoretisk mulig er ganske robust, mens vi vil se at ikke alt som i teorien er praktisk gjennomførbart i henhold til modellen faktisk er det. Faglig-pedagogisk dag 31.10.2013-3

I grenseland Det finnes et grenseland, oppgaver som matematikerne tror at ikke kan løses i realistisk tid, men hvor ingen pr. i dag har greid å bevise at faktisk er så vanskelige. Det knytter seg selvfølgelig en enorm faglig interesse til denne klassen av problemer, og vi skal se på noen eksempler i denne forelesningen. Før vi gjør det, skal vi diskutere noen mere lettforståelige regneoppgaver. Faglig-pedagogisk dag 31.10.2013-4

Datasikkerhet Hvorfor er det viktig å ha en teori for hvor grensen for datamaskiners yteevne går? Det er selvfølgelig viktig å ha raske maskiner, og vi vet av egen erfaring at økningen i "regnehastighet" har ført til at vi kan bruke digital teknologi i et omfang, og på en måte, som var utenkelig for 20 år siden. Den økte bruken har imidlertid også gjort oss mere sårbare. Faglig-pedagogisk dag 31.10.2013-5

Datasikkerhet Vi har behov for å sikre oss mot at uvedkommende kommer inn i systemene våre, leser vår kommunikasjon med banken eller på andre måter opptrer uønsket. Datasikkerhet er viktig. Hvis vi kan lage brannmurer som det vil være umulig å trenge gjennom med realistisk tidsbruk i overskuelig fremtid, vil det være en stor fordel. Faglig-pedagogisk dag 31.10.2013-6

Faktorisering Prøv å faktoriser 15, 121, 899, 5183. Felles for alle disse tallene er at de er produkter av to primtall. 15 = 3 5, 121 = 11 11, 899 = 29 31, 5183 = 71 73. Selv 5183 er det overkommelig å faktorisere i hodet, men hvis vi får oss tildelt et tall med hundre sifre, og får vite at dette tallet er et produkt av to primtall med 50 sifre hver, vil vi få problemer med å finne faktorene, ikke bare i hodet, men også om vi har kraftige maskiner til hjelp. Hvorfor er dette viktig? Og hvordan kan vi underkaste denne typen spørsmål en matematisk analyse? Faglig-pedagogisk dag 31.10.2013-7

Litt historie I 1936 publiserte Alan Turing en artikkel hvor han utviklet en matematisk modell for hvordan menneskelige "beregnere" arbeider, hvordan de kan løse problemer og utføre beregninger rent mekanisk. Han utviklet en form for abstrakte maskiner som regner, etter faste regler, på et éndimensjonalt ruteark. Hans mål var å løse et grunnlagsproblem for matematikken: Det finnes ingen mekanisk prosedyre for å løse ethvert matematisk problem. Faglig-pedagogisk dag 31.10.2013-8

Alan Turing Turing s analyse ble av sam- og ettertiden regnet som så overbevisende at vi sier at "det finnes ingen metode for å løse en type problem" når vi kan bevise at ingen av Turing s maskiner kan løse dem. Turing s analyse ble en viktig inspirasjon for utviklingen av de første datamaskinene under, og kort etter, 2. verdenskrig. Vi skal ikke glemme Charles Babbage, John von Neumann og andre pionerer, men det var Turing som skaffet oss forståelsen av hva en universell datamaskin kan være. Faglig-pedagogisk dag 31.10.2013-9

Gödel og Turing Turing var inspirert av Gödels ufullstendighetsteorem. Vi kan sammenstille Gödels teorem og Turings analyse til følgende populærform Hvis man prøver å redusere matematikken til et spill med symboler, vil det hver gang finnes en matematisk erkjennelse som ikke fanges opp av spillet. Forutsetningen er at spillet har testbare regler, hvor riktig bruk av reglene kan kontrolleres (i teorien) av en datamaskin. Faglig-pedagogisk dag 31.10.2013-10

Turings modell Turing hevdet at mekanisk regning, også utført av mennesker, består av - Lesing, og midlertidig memorering, av en avgrenset del av regnestykket. - Flytting av oppmerksomheten mot en annen avgrenset del av regnestykket. - Omskrivning av en avgrenset del av regnestykket. alt etter på forhånd bestemte regler. Tenk på hvordan du vil organisere utregningen av 10 10! Du vet at du kan regne ut dette hvis du vil, men også at du må planlegge prosessen nøye for ikke å rote deg bort underveis. Faglig-pedagogisk dag 31.10.2013-11

Turings modell En Turingmaskin er en (matematisk) maskin som kan utføre akkurat denne typen operasjoner. Den består av et rutebånd hvor vi kan skrive symboler fra et alfabet, gjerne bare 0 og 1. Den har også en regneenhet som kan lese det som står skrevet i en rute, flytte seg langs båndet og erstatte et symbol i en rute med et annet. Regneenheten vil til enhver tid være i én av endelig mange tilstander. Tilstanden, og det enheten leser, bestemmer om den skal skrive noe nytt eller ikke, og om den skal bevege seg én rute til høyre eller til venstre. Når en Turingmaskin arbeider, kan vi telle antall skritt, og det gir oss et mål på tidsbruk. Faglig-pedagogisk dag 31.10.2013-12

Tilbake til faktorisering Hva har så dette med faktorisering å gjøre? Det er ingen problemer med å lage en Turingmaskin som faktoriserer så store tall som helst, eksempelvis løser oppgaven Finn faktorene i 10 n! + 1. Problemet er at om vi ber maskinen om å finne faktorene til 10 101! + 1 risikerer vi at den arbeider til solen slukner, og da har vi liten bruk for svaret. Selv om vi brukte mer realistiske maskiner enn Turingmaskiner ville vi ikke kunne redusere tidsbruken til mindre enn noe sånt som en milliarddel av kubikkroten av antall regneskritt Turingmaskinen vil bruke, og dette vil ikke være nok. Faglig-pedagogisk dag 31.10.2013-13

Problemer med faktorisering Pr. i dag finnes det intet dataprogram og ingen datamaskin som kan faktorisere vilkårlige tall med hundretalls sifre innen normal levealder for et menneske (eller en sivilisasjon). Dette utnyttes i kryptografi. Faglig-pedagogisk dag 31.10.2013-14

Litt om kryptering Vi kan bruke produkter av store primtall til å kryptere en melding. Poenget er at dekrypteringen vil avhenge av at man kan kjenner faktorene. Dette er en anvendelse av enkel tallteori. Men er det så lett å finne store primtall da? Svaret er at det synes lettere enn å faktorisere, men egentlig fortsatt veldig vanskelig, og da er vi vel like langt? Vi skal prøve å forklare noen begreper som belyser dette, og diskutere hva "lett" og "vanskelig" måtte bety. Vi kommer tilbake til primtallene etterhvert. Faglig-pedagogisk dag 31.10.2013-15

Polynomer Vi skiller mellom polynomisk tid, eksponensiell tid og hypereksponensiell tid. Vi vil begrense oss til polynomfunksjoner f (x) = a n x n + + a 1 x + a 0 hvor alle a 0,..., a n er ikke-negative heltall. Vi forestiller oss at en funksjon som er begrenset av en slik polynomfunksjon vokser langsomt. Dette i motsetning til funksjoner med et eksponentledd a x hvor a > 1. Disse vokser fort. Faglig-pedagogisk dag 31.10.2013-16

Polynomisk beregnbarhet Vi sier at en algoritme arbeider i polynomisk tid hvis vi har en polynomfunksjon f slik at for alle relevante input x på digital form har at t(x) f (bit(x)), hvor bit(x) er antall bit i x og t(x) er tiden algoritmen bruker. Eksempler: Kan vi tegne figuren med én strek uten å løfte blyanten. Er det Per eller Pål som vil vinne dette fyrstikspillet? Er n et kvadrat-tall eller ikke? Faglig-pedagogisk dag 31.10.2013-17

Polynomisk beregnbarhet Ofte kan det være beregningsoppgaver som ikke innebærer at man løser et problem: Eksempler Ordne en liste ord alfabetisk eller en liste av tall etter størrelse. Omforme en Latex-fil til en pdf-fil. Finne slektstreet til en person ved hjelp av et sett (digitaliserte) kirkebøker og data fra folkeregisteret. Felles for disse eksemplene er at det er lett å se at de kan utføres i polynomisk tid, men oppgavene kan likevel løses mer eller mindre effektivt. Faglig-pedagogisk dag 31.10.2013-18

Polynomisk beregnbarhet Det er vanlig å regne "polynomisk beregnbarhet" som den matematiske modellen for hva som er realistisk gjennomførbart. Dette skyldes at vi erfaringsmessig vil finne polynomer av tilstrekkelig lav grad hvis vi kan vise at noe slikt finnes overhode. Det er også slik at om det finnes én maskinmodell som kan løse et problem i polynomisk tid, vil en ettbånds Turingmaskin også kunne gjøre det. Det betyr at polynomisk tid betyr det samme for alle praktiserte måter å regne på, og det gjør definisjonen robust. Faglig-pedagogisk dag 31.10.2013-19

Torner blant rosene Interessant nok er problemet om et tall er et primtall eller ikke et eksempel på at verden ikke er så enkel. Er polynom-begrensningen av tilstrekkelig høy grad, hjelper det lite at vi vet at et program vil arbeide i polynomisk tid, det kan likevel bruke for lang tid til å være nyttig. Vi skal se på primtallene igjen senere, men først se på et annet eksempel fra virkeligheten. Faglig-pedagogisk dag 31.10.2013-20

En loddselger En sommer for omtrent et kvart århundre siden ble jeg ringt opp av en mann som hadde et matematisk problem. Han skulle organisere et stort loddsalg, med 3.500.000 lodd. Hovedlotteriet skulle baseres på lodd-nummeret, men han ville ha mulighet for tilleggsgevinst basert på tverrsummen av loddnummeret. Det han ba meg om var om å regne ut hvor mange loddnummer som ville ha hver av de mulige tverrsummene. Faglig-pedagogisk dag 31.10.2013-21

Tverrsummer Jeg ba en derværende stipendiat som var flink til å programmere om å skrive et program som gjennomløp alle tallene mellom én og tre og en halv million, regnet ut tverrsummen og merket av i et register at den hadde funnet et nytt tall med den aktuelle tverrsummen. Regnetiden vil være cirka proposjonal men antall lodd, mere presist proposjonal med x log x. Gruppen vår hadde en, til å være på den tiden, kraftig Xerox-maskin til en kvart million, men etter en time hadde den ikke kommet seg gjennom mer en et par hundre tusen lodd. Etter å ha forbedret algoritmen fikk vi svaret på under to sekunder, med en algoritme av kompleksitet (log x) 2. Faglig-pedagogisk dag 31.10.2013-22

En lang reise Vi skal nå se på en klasse problemer som for matematikere synes mer interessante enn det å faktorisere. Tenk deg at du skal undersøke stemningen for kommunesammenslåinger i Norge. Du vil i sakens anledning legge ut på en reise hvor du vil besøke samtlige av landets ordførere. Hvordan vil du gå frem for å sikre at reisen blir kortest mulig? Hvis du vil gjøre et tilsvarende sammenliknende studium for Sverige, Finnland, Polen og Russland, hvordan vil du da finne den korteste reiseruten? Dette er en type oppgaver som kalles Den Handelsreisendes Problem. Faglig-pedagogisk dag 31.10.2013-23

Den Handelsreisendes Problem Hvis vi har gitt n byer B 1,... B n og avstanden A(i, j) mellom byene B i og B j målt i antall kilometer, hvor vanskelig er det å finne ut av om det er mulig å besøke alle byene med en samlet reiselengde på under m kilometer. Hvis det er mulig, og vi har flaks, kan vi prøve å sette opp en reiserute, legge sammen avstandene og finne ut at reisen er kortere enn m kilometer. Hvis det er umulig kan vi imidlertid risikere å måtte se på veldig mange reiseruter for med sikkerhet å kunne påstå at det er umulig. Faglig-pedagogisk dag 31.10.2013-24

Den Handelsreisendes Problem Den Handelsreisendes problem tilhører en familie problemer hvor vi med flaks raskt kan bekrefte et svar i den ene retningen, men hvor vi (med dagens matematikk) ikke har noen metode som i polynomisk tid kan, med eller uten flaks, bekrefte det når svaret går i den andre retningen. Faglig-pedagogisk dag 31.10.2013-25

Logiske porter og integrerte kretser Den grunnleggende arkitekturen på datamaskiner har endret seg lite, selv om man har gått fra radiorør, via transistorer, til andre teknologiske metoder for å realisere logiske porter. Data er i sin grunnform en serie 0 er og 1 ere, og en datamaskin omformer én eller flere slike serier av bits til en ny serie. Til dette formålet er maskinen bygget opp av såkalte logiske porter, AND, OR, NAND, NOR, NOT. Faglig-pedagogisk dag 31.10.2013-26

Logiske porter og integrerte kretser Det er selvfølgelig viktig å kunne kontrollere om et nettverk av slike porter virker som meningen var. Med litt flaks kan man avsløre en eventuell feil ved en heldig test, men å få bekreftet at et nettverk eller en krets virker som den skal kan være vanskelig. Det er faktisk slik at selv om mye testing foregår maskinelt, er det også bruk for menneskelige testere med god intuisjon om hva som kan gå galt. Spesifikasjon av en integrert krets kan formuleres i utsagnslogikk, og spørsmålet om en utsagnslogisk formel alltid er sann eller ikke er, i en viss forstand, akkurat like vanskelig som spørsmålet om en handelsreise kan gjennomføres på m kilometer eller ikke. Faglig-pedagogisk dag 31.10.2013-27

Optimal ressursutnyttelse Vi kan tenke oss mange problemer som er beslektet med den handelsreisendes problem. Optimal utnyttelse av ressurser, eksempelvis lagerplass, transportfasiliteter, lærere ved en skole og liknende. Med litt flaks kan man finne en måte å utnytte lærerne på slik at alle elevene får ønskene sine oppfylt, såfremt dette er mulig. Det kan imidlertid være vanskelig å argumentere for at det er umulig i de tilfellene det faktisk er det. Faglig-pedagogisk dag 31.10.2013-28

P og NP De eksemplene vi har sett på nå tilhører problemer som ligger i klassen kjent som NP. NP står for Nondeterministic Polynomial. På norsk ville vi sagt "ikkedeterministisk polynomisk". Den matematiske definisjonen bruker såkalte ikke-deterministiske Turingmaskiner, men populært sagt kan vi si at en familie problemer er i NP hvis vi ved bruk av myntkast eller terning kan lage en test som virker i polynomisk tid slik at: Hvis problemet har positiv løsning finnes det en serie mynteller terningkast slik at testen svarer positivt. Hvis problemet har negativ løsning vil testen svare negativt uavhengig av hva mynten eller terningen viser underveis. Faglig-pedagogisk dag 31.10.2013-29

Milleniumsproblemet Det store problemet er om alle NP-problemer kan løses i polynomisk tid, det vil si, tilhører klassen P. Prislappen for å løse det er satt til én million dollar, og problemet er ett av en liste av såkalte milleniumsproblemer. De fleste som har beskjeftiget seg med problemet tror at det finnes NP-problemer som ikke kan løses i polynomisk tid. Bortsett fra at prislappen i seg selv er motiverende, og at matematikere elsker vanskelige problemer, er det ikke sikkert at problemet er så veldig viktig med tanke på praktiske anvendelser. Faglig-pedagogisk dag 31.10.2013-30

Tilbake til den handelsreisende Den handelsreisendes problem er såkalt NP-komplett. Det betyr at om dette problemet kan løses i polynomisk tid, kan alle andre NP-problemer også løses i polynomisk tid. Det finnes andre NP-komplette problemer som er viktige. For eksempel det å undersøke om en utsagnslogisk formel kan være sann. Mere kuriøst er teoremet om at minesveiperspillet krever at man løser NP-komplette problemer underveis. Faglig-pedagogisk dag 31.10.2013-31

Ufarlighet av problemet Omkostningene ved at vi ikke raskt kan løse de enkelte NP-komplette problemene er imidlertid ofte små. Hvis vi krever å finne den korteste reiseruten mellom landets ordførere, kan det ta mange dager, muligens år å finne ut av det, mens vi bare sparer noen få kilometer i forhold til hva reiseplanleggere som bare bruker minutter kan tilby. Faglig-pedagogisk dag 31.10.2013-32

NP-problemer For mange NP-problemer finnes det raske algoritmer som enten gir en løsning nær den optimale eller som svarer JA eller NEI med en stor grad av sannsynlighet. En metode som blir brukt er simulert herding. Når man varmer opp og avkjøler metall for å herde det, vil atomstrukturen naturlig finne de mest stabile formene. Ved å simulere dette på en maskin, vil en løsning på en oppgave nærme seg en optimal form. Her skal vi la detaljene ligge. Faglig-pedagogisk dag 31.10.2013-33

Tilbake til primtallene Det er ingen som vet om det vil være mulig å faktorisere store tall i polynomisk tid. Det kom imidlertid som en overaskelse da to indiske matematikere for noen år siden viste at det er mulig, i polynomisk tid, å avgjøre om et tall er et primtall eller ikke. Dette er matematisk interessant, men viste seg å ha liten praktisk betydning. Faglig-pedagogisk dag 31.10.2013-34

Tilbake til primtallene Det tar fortsatt alt for lang tid å kontrollere om et tall er et primtall eller ikke til at de som trenger primtall i sitt daglige virke har glede av det. Indernes algoritme hadde en kompleksitet av grad 6, med store tall som koeffisienter. Dette var et eksempel hvor polynomisk beregnbarhet ikke medfører praktisk beregnbarhet. Faglig-pedagogisk dag 31.10.2013-35

Primtall og kryptering Det er relativt få tall vi med sikkerhet vet at er primtall, selv om antallet slike selvfølgelig øker. Vi vet imidlertid at det er mange av dem, tettheten er proposjonal med antall siffre for store tall. Lenge før de indiske matematikerne kom med sitt resultat, hadde man probabilistiske algoritmer som til et vilkårlg valgt tall kan si NEI, og da er ikke tallet et primtall, eller si JA, og da er tallet et primtall med en overbevisende grad av sannsynlighet. Faglig-pedagogisk dag 31.10.2013-36

Primtall og kryptering Da kan man finne et vilkårlig primtall ved først å trekke 50 siffere helt tilfeldig, og så lete systematisk etter det neste tallet som sannsynligvis er et primtall. På en slik måte kan man oppnå trygg kryptering. Faglig-pedagogisk dag 31.10.2013-37

Kvantecomputere Noen har muligens hørt om kvantecomputere. Idéen er å lage regnemaskiner som baserer seg på kvantemekaniske prinsipper. En qubit vil, ved observasjon, ta verdien 0 eller 1 som en vanlig bit, men det vil være usikkert hvilken av de to verdiene vi vil observere. Faglig-pedagogisk dag 31.10.2013-38

Kvantecomputere Det vil føre for langt å gå nærmere inn på arkitekturen til kvantecomputere her. Det er imidlertid to forhold som er interessante i lys av temaet for denne forelesningen: 1. Det finnes kvantealgoritmer, for eksempel for faktorisering av store tall, som arbeider vesentlig raskere enn tradisjonelle algoritmer. 2. Det er ingen som har greid å konstruere en kvantecomputer som er så stor at den kan realisere disse algoritmene i et omfang ut over det teoretisk interessante. Det er imidlertid interessant at det foregår en omfattende forskning og produktutvikling som vil lede til at dagens prinsipper for datasikkerhet blir tilnærmet verdiløs. Faglig-pedagogisk dag 31.10.2013-39

SLUTT Faglig-pedagogisk dag 31.10.2013-40