Teoretisk og praktisk beregnelighed

Relaterede dokumenter
TALTEORI Wilsons sætning og Euler-Fermats sætning.

TALTEORI Wilsons sætning og Euler-Fermats sætning.

Funktionalligninger - løsningsstrategier og opgaver

TALTEORI Primfaktoropløsning og divisorer.

Secret Sharing. Olav Geil Institut for Matematiske Fag Aalborg Universitet URL: olav.

Gödels ufuldstændighedssætninger

Løsning af præmie- og ekstraopgave

Forslag til løsning af Opgaver til ligningsløsning (side172)

Polynomier et introforløb til TII

Variabel- sammenhænge

Induktion: fra naturlige tal til generaliseret skønhed Dan Saattrup Nielsen

DM02 opgaver ugeseddel 2

Retningslinjer for bedømmelsen. Georg Mohr-Konkurrencen runde

Python 3 Matematik Programmerings kursus:

Kryptografi Anvendt Matematik

Analyse 1, Prøve juni r+1. Men vi har øjensynligt, at 2. r r+1

Grafteori, Kirsten Rosenkilde, september Grafteori

Et udtryk på formena n kaldes en potens med grundtal a og eksponent n. Vi vil kun betragte potenser hvor grundtallet er positivt, altså a>0.

Divisorer. Introduktion. Divisorer og delelighed. Divisionsalgoritmen. Definition (Divisor) Lad d og n være hele tal. Hvis der findes et helt tal q så

DesignMat Uge 11 Vektorrum

Fermat, ABC og alt det jazz...

Arealer under grafer

Uendelige rækker og Taylor-rækker

Bogstavregning. Formler Reduktion Ligninger Bogstavregning Side 45

Om hvordan Google ordner websider

DesignMat Egenværdier og Egenvektorer

Ligninger med reelle løsninger

Opgave 1 Alle tallene er reelle tal, så opgaven er at finde den mindste talmængde, som resultaterne tilhører.

Gödels ufuldstændighedssætninger

Kort og godt om NemID. En ny og sikker adgang til det digitale Danmark

Differentiation af Logaritmer

Inverse funktioner. John V Petersen

Finde invers funktion til en 2-gradsfunktion - ved parallelforskydning. John V Petersen

Hashing. Hashing. Ordbøger. Ordbøger. Ordbøger Hægtet hashing Hashfunktioner Lineær probering. Ordbøger Hægtet hashing Hashfunktioner Lineær probering

Potens & Kvadratrod. Navn: Klasse: Matematik Opgave Kompendium. Opgaver: 22 Ekstra: 4 Point: Matematik / Potens & Kvadratrod

Sudoku. Jørgen Brandt. Sudoku 1

EKSEMPEL PÅ INTERVIEWGUIDE

Sølvkorn 11 Eksponentialfunktioner og logaritmer

Sorteringsmaskinen. Hej med dig!

Andengradspolynomier

Pendulbevægelse. Måling af svingningstid: Jacob Nielsen 1

Reelle tal. Symbolbehandlingskompetencen er central gennem arbejdet med hele kapitlet i elevernes arbejde med tal og regneregler.

Om at løse problemer En opgave-workshop Beregnelighed og kompleksitet

APV og trivsel APV og trivsel

Projekt 10.1 Er der huller i Euklids argumentation? Et moderne aksiomsystem (især for A)

Konsekvenser af direkte adgang til fysioterapeut

Afstand fra et punkt til en linje

Loven De 8 opgaver med løsninger

Service i rengøring. Service i rengøring. Daglig erhvervsrengøring

Spørgsmål: Må der - i forlængelse af ovenstående spørgsmål - være én projektleder pr. skole?

Hamilton-veje og kredse:

Miniprojekt 3: Fejlkorligerende køder Fejlkorrigerende koder

Netværksguide. sådan bruger du dit netværk. Danmarks måske stærkeste netværk

Den bedste dåse, en optimeringsopgave

Få helt styr på NemID

1. Send Digitalt knappen anvendes til at afsende meddelelsen til de valgte modtagere. (Alt- S)

VEJLEDNING SPAMFILTERET. 1. Udgave, august 2015 Tilpasset FirstClass version 12.1, Dansk

Tal, funktioner og grænseværdi

Oplæg til debat. Hvem mangler i jeres menighedsråd?

Matematik projekt 4. Eksponentiel udvikling. Casper Wandrup Andresen 2.F Underskrift:

Temaopgave: Parameterkurver Form: 6 timer med vejledning Januar 2010

BILAG A SPØRGESKEMA. I denne At-vejledning præsenteres et kort spørgeskema med i alt 44 spørgsmål fordelt på otte skalaer.

Manual til TI-89. Af: Martin Kyhl og Andreas Kristansen. Med denne i hånden til eksamen burde de fleste opgaver kunne løses på få minutter.

Ikke-lineære funktioner

Ugens emner. Regulære sprog og digitale billeder. Adressering af områder. Et alfabet. Dette billede: kan repræsenteres af en FA med 832 tilstande

MATEMATIK A-NIVEAU. Eksempel på løsning af matematik A eksamenssæt STX143-MAT/A Matematik A, STX. Anders Jørgensen & Mark Kddafi

Frank Villa. 15. juni 2012

Tilstandsligningen for ideale gasser

Multipel Lineær Regression. Polynomiel regression Ikke-lineære modeller og transformation Multi-kolinearitet Auto-korrelation og Durbin-Watson test

Videopoint. Vejledning til simpelt brug

P vs. NP. Niels Grønbæk Matematisk Institut Københavns Universitet 3. feb. 2012

Picasa Web. En ressource i SkoleIntra. Version: August 2012

Dynamisk programmering

Hvordan ligger verdenshjørnerne i forhold til den måde, du ønsker huset placeret?

Oversigt [LA] 6, 7, 8

F O A S A R B E J D S L Ø S H E D S K A S S E. Juni for dig under 30

Solaris Værdigrundlag

Spørgsmål og svar om håndtering af udenlandsk udbytteskat marts 2016

Bilag 1b Vejledning til udfyldelse af ESPD

Gode råd om læsning i 3. klasse på Løjtegårdsskolen

Spørgeskema på HVAL.DK

Matematik B. Højere forberedelseseksamen

Arduino kursus lektion 4:

FAQ. Waoo! Web TV på computeren. Fiberbredbånd TV Telefoni

BESKÆFTIGELSESMINISTERIET 31. august kontor Sag nr Opgave nr. lml

Fredericia på forkant

Det er altså muligt at dele lige på to kvalitativt forskellige måder: Deling uden forståelse af helheden Deling med forståelse af helheden

L: Præsenterer og spørger om han har nogle spørgsmål inden de går i gang. Det har han ikke.

Partikelbevægelser i magnetfelter

Lederadfærdsanalyse II egen opfattelse af ledelsesstil

Login til den digitale ansøgningsportal

Projekt Guidet egenbeslutning og epilepsi. Refleksionsark. Tilpasset fra: Vibeke Zoffmann: Guidet Egen-Beslutning, 2004.

19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse.

I af 12. december 2013 har I klaget over Kommunens overkørselstilladelse af 18. november 2013 til ejendommen O vej 36A.

Potensfunktioner, Eksponentialfunktioner og Logaritmer

Dynamisk programmering

t a l e n t c a m p d k Matematik Intro Mads Friis, stud.scient 27. oktober 2014 Slide 1/25

KUNSTIG INTELLIGENS. - Menneskelig bevidsthed: en beregnelig egenskab?

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Dokumentation. Udbyder : sms1919.dk Service : sms-dialog Version : v1.01

Transkript:

Teoretisk og praktisk beregnelighed Thomas Bolander, DTU Informatik Matematik: Videnskaben om det uendelige 2 Folkeuniversitetet i København, efteråret 2011 Thomas Bolander, FUKBH 11 s. 1/28

Beregnelighed: Repetition Repetition omkring beregnelighed: En funktion f kaldes beregnelig hvis der findes en Turing-maskine (et computer-program) som, når vi giver x som input, giver f (x) som output. Ækvivalent (når f er en funktion på de naturlige tal): Funktionen er rekursiv. Eksempler på beregnelige funktioner: 1. Funktionen f (x) = x + 2. 2. Funktionen som afbilder ethvert andengradspolynomium ax 2 + bx + c over i dets reelle rødder. 3. Ackermann-funktionen. x Turing-maskine f (x) Thomas Bolander, FUKBH 11 s. 2/28

Repetition omkring afgørbarhed: Afgørbarhed: Repetition En egenskab E kaldes afgørbar hvis der findes en Turing-maskine (et computer-program) som, når vi giver x som input, svarer ja hvis x har egenskaben E og ellers nej. Ækvivalent (når det er en egenskab ved naturlige tal): Funktionen f defineret ved { 1 hvis x har egenskaben E f (x) = 0 hvis x har ikke egenskaben E er rekursiv. x Turing-maskine ja/nej Thomas Bolander, FUKBH 11 s. 3/28

Eksempler med afgørbarhed Eksempler på egenskaber som er afgørbare: 1. Givet et naturligt tal x, er x et primtal? 2. Givet et andengradspolynomium ax 2 + bx + c og et tal y, er y rod i polynomiet? 3. Givet en Diophantisk ligning og et tal y, er y løsning til ligningen? Eksempler på egenskaber som ikke er afgørbare: 1. Om en Diophantisk ligning har en (heltallig) løsning (Yuri Matiyasevich, 1973). 2. Om en formel i Peano-aritmetik er bevisbar (Alonzo Church, 1936). Sidstnævnte viser at computere ikke umiddelbart kan gøre matematikere arbejdsløse! Thomas Bolander, FUKBH 11 s. 4/28

Halting-problemet: Termination Et af de mest berømte uafgørbare problemer er Halting-problemet (Turing, 1936). Det er relateret til hvorvidt en Turing-maskine (computer-program) terminerer eller ej: dvs. om den stopper eller ender med at gå i uendelig løkke. Eksempel. En algoritme (computer-program) til at beregne fakultetsfunktionen f (x) = x!: Fakultet(n) 1 fak 1 2 while n 0 3 do fak fak n 4 n n 1 5 return fak Terminerer denne algoritme for alle heltals-input? Thomas Bolander, FUKBH 11 s. 5/28

Halting-problemet: Formulering af problemet Halting-problem: Givet en Turing-maskine (et computer-program) M og et input x, vil Turing-maskinen M terminere når den gives input x? Spørgsmål: Er Halting-problemet afgørbart? Præcisering af spørgsmålet: Findes der en Turing-maskine (et computer-program) Halting(M, x) som for alle Turing-maskiner M og alle inputs x til M opfylder: 1. Programmet Halting(M, x) returnerer ja hvis M terminerer når den gives input x. 2. Programmet Halting(M, x) returnerer nej hvis M ikke terminerer når den gives input x. Halting(M, x) er altså et program som kan afgøre om et vilkårligt andet program vil terminere eller ej. Ville være rart at have på sin computer! Thomas Bolander, FUKBH 11 s. 6/28

Halting-problemet: Eksempel Husk på programmet for fakultetsfunktionen: Fakultet(n) 1 fak 1 2 while n 0 3 do fak fak n 4 n n 1 5 return fak Antag programmet Halting beskrevet ovenfor findes. Da ville vi f.eks. have: 1. Halting(Fakultet, n) returnerer ja for alle n 0. 2. Halting(Fakultet, n) returnerer nej for all n < 0. Thomas Bolander, FUKBH 11 s. 7/28

Halting-problemet: Uafgørbarhed Desværre er Halting-problemet uafgørbart. Bevis. Antag for at opnå en modstrid at algoritmen Halting(M, x) eksisterer. Da kan vi definere følgende program: Finurlig(A) 1 if Halting(A, A) returnerer nej 2 then terminér 3 else gå i uendelig løkke Vi kan nu forsøge at give programmet Finurlig som input til sig selv! Da fås: Finurlig(Finurlig) terminerer Halting(Finurlig, Finurlig) returnerer nej Finurlig(Finurlig) terminerer ikke Dette er en modstrid. Thomas Bolander, FUKBH 11 s. 8/28

Halting-problemet og selvreference Beviset involverer åbenlyst selvreference: Vi giver et program sig selv som input! Turing-maskine Turing-maskine??? Men det burde måske ikke overraske (længere): Også selvreference på spil i uafgørbarheden af Peano aritmetik og Diophantiske ligninger...... og i Gödels ufuldstændighedssætning og Russells paradoks og andre centrale begrænsningsresultater i matematikken. Thomas Bolander, FUKBH 11 s. 9/28

Rice s Sætning Det bliver endnu værre: Kald en egenskab for partielle funktioner ikke-triviel hvis det en egenskab som nogen partielle funktioner har og andre ikke har. Rice s sætning. Enhver ikke-triviel egenskab ved partielle funktioner er uafgørbar. Korollar. Enhver ikke-triviel egenskab ved Turing-maskiner er uafgørbar. Eksempler på konsekvenser af Rice s teorem: 1. Der findes ikke et computerprogram, som kan afgøre om andre computerprogrammer er virusfrie. 2. Der findes ikke et computerprogram, som kan afgøre om andre computerprogrammer kan simplificeres. Sidstnævnte betyder at f.eks. optimal datakompression er uberegneligt (zip, tiff, flac, etc.). Thomas Bolander, FUKBH 11 s. 10/28

Mere uafgørbarhed: Puslespil Et andet uafgørbart problem er følgende: Puslespilsproblemet: Givet et endeligt antal forskellige typer af puslespilsbrikker, kan planen udfyldes med disse brikker? Thomas Bolander, FUKBH 11 s. 11/28

Penrose tilings Uafgørbarheden af puslespilsproblemet betyder at visse puslespil aldrig bliver periodiske, dvs. de bliver ved med at transformere sig. Hvordan kan man vide det? Roger Penrose Texas A&M University Thomas Bolander, FUKBH 11 s. 12/28

Uafgørbarhed af puslespilsproblemet Spørgsmål: Hvordan beviser man at puslespilsproblemet er uafgørbart (at man ikke generelt kan sige om puslespillet kan udfylde planen eller ej)? Svar: Matematikkens finurligheder vil ingen ende tage: Givet en Turing-maskine M og et input x, kan vi bygge et sæt semi-kvadratiske puslespilsbrikker ( ) sådan at den n te række i puslespillet indkoder indholdet af Turing-maskinens bånd i det n te beregningsskridt. Thomas Bolander, FUKBH 11 s. 13/28

Om at vise uafgørbarhed: Reduktion Bevis for uafgørbarhed af puslespilsproblemet: Vi indkoder Turing-maskiner som puslespil. Dette er en specialtilfælde af en generel strategi til at vise uafgørbarhed: At vise uafgørbarhed af egenskaben E: Vis, at for hver Turing-maskine M og input x kan vi danne et objekt y M,x, sådan at y M,x har egenskaben E hvis og kun hvis M terminerer på input x. Heraf følger: Hvis egenskaben E er afgørbar, er Halting-problemet afgørbart. Men Halting-problemet er jo ikke afgørbart, og dermed heller ikke E. Kaldes: En reduktion fra Halting-problemet til egenskaben E. Meget udbredt teknik. Næste slide viser eksempel indenfor egen forskning (publiceret 2011). Thomas Bolander, FUKBH 11 s. 14/28

Reduktion og uafgørbarhed i egen forskning Sætning 1. Antag følgende om en robot: 1. Den befinder sig i en verden bestående af endeligt mange fysiske objekter. 2. Der er ingen andre robotter i verden. 3. Den har endeligt mange forskellige handlinger til sin rådighed. Følgende problem er afgørbart: Givet en opgave som robotten skal udføre, findes der en endelig sekvens af handlinger som løser opgaven? Sætning 2. Antag samme som ovenstående, pånær: 2 Der er mindst én anden robot i verden. Samme problem som ovenfor er nu uafgørbart. Thomas Bolander, FUKBH 11 s. 15/28

Fra teoretisk beregnelighed til praktisk beregnelighed Det generelle puslespilsproblem er uafgørbart. Men uendelige puslespil er lidt ambitiøse. Hvad med endelige puslespil? Det endelige puslespilsproblem: Givet n forskellige typer af puslespilsbrikker for et n > 0, kan jeg lave et n n puslespil af dem? Vi antager her at alle brikker er semi-kvadratiske. Hvordan ses det at dette må være et afgørbart problem? Afgørbare problemer kan principielt set set altid løses. Spørgsmål: Men gælder det også i praksis? For at kunne svare, må vi se nærmere på sværhedsgraden af de forskellige afgørbare problemer... Thomas Bolander, FUKBH 11 s. 16/28

Beregningsskridt og kompleksitet Sværhedsgraden af et problem måles i en abstrakt størrelse, antal beregningsskridt. Antallet af beregningsskridt afhænger typisk af problemstørrelsen, f.eks. n i det endelige puslespilsproblem. Kompleksiteten af et problem: Antal nødvendige beregningsskridt som funktion af problemstørrelsen. Problemstørrelsen betegnes altid med n. Hvor mange beregningsskridt skal der højst til for at løse puslespilsproblemet for et givet n? (Angiv svaret som funktion af n). Thomas Bolander, FUKBH 11 s. 17/28

Tårnene i Hanoi Tårnene i Hanoi-problemet: At flytte n skiver fra venstre til højre pind via midterpinden uden at nogen skive undervejs kommer til at ligge på en mindre skive. Kompleksiteten af problemet: Det kræver 2 n 1 flytninger af flytte n skiver. Altså vil vi sige at kompleksiteten er 2 n 1 (idet vi identificerer beregningsskridt med flytninger). Vi siger også at problemet kræver eksponentiel tid, fordi kompleksiteten er en eksponentialfunktion. Thomas Bolander, FUKBH 11 s. 18/28

Kompleksitetsklasser Man skelner typisk imellem en række kompleksitetsklasser: faktisk kompleksitet uafhængig af n højst kn for et k 1 højst n p for et p > 1 højst b n for et b > 1 kompleksitetsklasse konstant tid lineær tid polynomiel tid (P) eksponentiel tid (EXPTIME) Tårnene i Hanoi tilhører kompleksitetsklassen EXPTIME. Hvilken kompleksitetsklasse tilhører det endelige puslespilsproblem? Thomas Bolander, FUKBH 11 s. 19/28

Kompleksiteten er afgørende! Antag at ét beregningsskridt tager 1 nanosekund (svarer til 1 beregningsskridt per 5 clock-cykler på en 5 GHz processor). Hvor stor kan n være for at man kan udføre f (n) beregningsskridt i et givet tidsinterval: f (n) 1 sekund 1 dag 1 år n n = 1 mia. n = 86.400 mia. n = 31 10 15 n 3 n = 1000 n = 44.210 n = 315.930 2 n n = 29 n = 46 n = 54 For en given værdi af n, hvor lang tid tager det at udføre f (n) beregningsskridt: f (n) n = 10 n = 100 n = 10 000 n 10ns 100ns 10µs n 3 1µs 1ms 16 minutter 2 n 1µs 3000 gange univ. alder?? Thomas Bolander, FUKBH 11 s. 20/28

Uhåndterbare problemer Konklusion: Problemer for hvilke de mest effektive algoritmer kører i eksponentiel tid er i praksis uløselige (sværhedsgrad vokser for hurtigt med inputstørrelse). Sådanne problemer kaldes uhåndterbare (eng.: intractable). Problemer som ligger i kompleksitetsklassen P kaldes derimod håndterbare. Et problem kan altså godt være principielt løsbart (afgørbart), men praktisk set uløsbart (uhåndterbart). Er det endelige puslespilsproblem uhåndterbart? Thomas Bolander, FUKBH 11 s. 21/28

Betragt igen spørgsmålet: Milliondollarspørgsmålet Er det endelige puslespilsproblem uhåndterbart? Det er i bogstaveligste forstand et million dollar question. Den der svarer får udbetalt en pris på 1.000.000 US$ fra Clay Mathematics Institute i Cambridge, Massachusetts. Men hvordan kan et sådant lille spørgsmål være så vigtigt, at nogen vil sætte en million dollars på højkant? Svaret kræver lidt nye begreber... Thomas Bolander, FUKBH 11 s. 22/28

P=NP? Ny kompleksitetsklasse: Et problem tilhører klassen NP hvis det i polynomiel tid kan afgøres om en foreslået løsning er korrekt eller ej. Nu skal vi altså ikke finde løsninger, men blot tjekke løsninger. Det burde være lettere? Nej, det vides faktisk ikke. Mere præcist vides det ikke om der gælder: P = NP? Dette er et af de allerstørste åbne problemer i matematik og datalogi. Tilhører det endelige puslespilsproblem klassen NP? Thomas Bolander, FUKBH 11 s. 23/28

Fra puslespil til P=NP Det endelige puslespilsproblem ligger i klassen NP. Det kan vises at være mindst lige så svært som et hvilket som helst andet problem i klassen: Alle andre problemer i klassen kan reduceres til puslespilsproblemet. Sådanne problemer kaldes NP-komplette. Derfor: Hvis vi kan afgøre om puslespilsproblemet ligger i P (kan løses i polynomiel tid), så kan vi også afgøre spørgsmålet P = NP. Og det er spørgsmålet P = NP som er 1.000.000 US$ værd. reduktion Problem 1 Problem 2 løsning Thomas Bolander, FUKBH 11 s. 24/28

P=NP og kryptografi RSA-kryptering er en af de mest udbredte former for kryptografi (datasikkerhed). Man indkoder beskeder med et stort tal m, som er offentligt (den offentlige nøgle). Man afkoder beskeder med m s primfaktorer (privat nøgle). Virker kun fordi primfaktorisering af store tal er svært, i praksis umuligt. Primtalsfaktorisering er oplagt et NP-problem. Hvorfor? Hvis P = NP må der eksistere en håndterbar algoritme til at faktorisere primtal. En sådan algoritme ville bryde alle eksisterende RSA-kryptografiske systemer! m Oprindelige besked Krypteret besked m s primfaktorer Thomas Bolander, FUKBH 11 s. 25/28

Masser af NP-komplethed En masse velkendte og vigtige problemer er NP-komplette: Postmandsproblemet: Find den korteste rute igennem n givne punkter (byer, husstande). Sudoku: Find en løsning til en n n Sudoku. Streng-matching: Givet to strenge af længde n, hvad er den længste fælles delstreng. Vigtigt i biologisk sekvensanalyse (DNA-matching). Pakning: Givet n kasser af forskellige størrelse, hvordan skal de pakkes så de fylder så lidt som muligt? Thomas Bolander, FUKBH 11 s. 26/28

Postmandsproblemet Største instanser af postmandsproblemet løst: 1954: n = 49. 1992: n = 3038 (en printplade). Tog halvandet CPU-år. 2004: n = 24.978 (rundtur i Sveriges byer). 2006: n = 85.900. Tog 136 CPU-år. Thomas Bolander, FUKBH 11 s. 27/28

Opsummering Afgørbarhed af et problem: Findes der en computer som i princippet kan løse problemet? Eksempler på uafgørbarhed: løsning af Diophantiske ligninger; bevisbarhed i Peano aritmetik; Halting-problemet; puslespilsproblemet; alle ikke-trivielle egenskaber ved computerprogrammer (Rice). Men principiel beregnelighed medfører ikke automatisk praktisk beregnelighed. De i praksis håndterbare problemer er dem som ligger i klassen P. Mange problemer ved vi slet ikke om ligger i P: postmandsproblemet; Sudoku; streng-matching, pakning, primtalsfaktorisering. Om disse ligger i P eller ej er et af de største åbne problemer i matematik og datalogi. Kaldes P = NP-problemet. Thomas Bolander, FUKBH 11 s. 28/28