Avgjørbarhet / Uavgjørbarhet

Like dokumenter
UNIVERSITETET I OSLO

Turingmaskiner en kortfattet introduksjon. Christian F Heide

Kompleksitet. IN algoritmer og datastrukturer Plenumstime / repetisjon

Kompleksitet og Beregnbarhet

Turingmaskiner en kortfattet introduksjon. Christian F Heide

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

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

INF oktober Stein Krogdahl. Altså: Hva kan ikke gjøres raskt (med mindre P = NP)

INF3/4130 PRØVE-EKSAMEN MED SVARFORSLAG Gjennomgås 1/ , (lille aud.)

UNIVERSITETET I OSLO. Med svar-forslag

UNIVERSITETET I OSLO

Kompleksitetsteori reduksjoner

INF Stein Krogdahl. NB: Det som under forelesningen ble kalt et vitne er nå omdøpt til et sertifikat.

IN2080. Oppgave 1. Oppgave 2. Eksamen. Vår Den nondeterministiske endelige automaten A er gitt ved (Q, Σ, δ, q 0, F ) der

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

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

Følger Sipsers bok tett både i stoff og oppgaver.

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

MAT1030 Plenumsregning 1

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode

Øvingsforelesning 1 Python (TDT4110)

MAT1030 Diskret Matematikk

Øvingsforelesning 5 Python (TDT4110)

MAT1030 Forelesning 19

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel

Øvingsforelesning 5 Python (TDT4110)

MA3301 Beregnbarhets- og kompleksitetsteori Høsten

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF1820 INF Arne Skjærholt INF1820. Arne Skjærholt

Visual Basic. Repetisjon fra mandag

MAT1030 Diskret matematikk

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

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

løsningsforslag-uke5.txt

LØSNINGSFORSLAG EKSAMEN V06, MA0301

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF INF1820. Arne Skjærholt. Terza lezione INF1820. Arne Skjærholt. Terza lezione

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

Øvingsforelesning 3 Python (TDT4110)

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) IN 211 Programmeringsspråk

Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/ Legger ut en oppgave til kap. 4 (se beskjed).

Fasit til eksamen høst 2002, applikasjonsutvikling

Analyse av Algoritmer

Programmering Høst 2017

INF Algoritmer: Design og effektivitet

Prøveeksamen 2006 med svarforslag

INF2820 Datalingvistikk V2012. Jan Tore Lønning

Løsningsforslag til eksamen i INF1000

MAT1030 Diskret matematikk

MAT1030 Forelesning 25

INF / Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO

MAT1030 Diskret matematikk

TDT4100 Objektorientert programmering

INF1010 MVC i tekstbaserte programmer

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2014. Jan Tore Lønning

INF3140 Modeller for parallellitet INF3140/4140: Programanalyse

KONTINUASJONSEKSAMEN I TMA4140 LØSNINGSFORSLAG

Hash-funksjoner. Introduksjon. Steg 1: Strekkoder. Eksempel. Skrevet av: Martin Strand

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Roger Antonsen

Løsnings forslag i java In115, Våren 1996

NP-kompletthet. «Hvordan gjøre noe lett for å vise at noe annet er vanskelig»

INF Logikk og analysemetoder Forslag til løsning på oppgave fra læreboken

UNIVERSITETET I OSLO

TDT Øvingsforelesning 1. Tuesday, August 28, 12

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Legg bort skilpaddene dine, i dag skal vi lære hvordan vi kan sende hemmelige beskjeder!

INF120: Oblig 3. Yngve Mardal Moe

HØGSKOLEN I SØR-TRØNDELAG

Hvordan skrive Flok og Flass kode? I mange tilfelle er det svært enkelt:

TDT4110 IT Grunnkurs Høst 2015

File: C:\My Documents\fagprove\tp\klokke.txt , 08:42:20

Semantisk Analyse del I

INF2820 Datalingvistikk V2012. Jan Tore Lønning

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

Databaser fra et logikkperspektiv

Læringsmål og pensum. if (be): else (not_to_be):

INF 4130 Svarforslag til «Midterm», 01/

Hvor gammel er du? Hvor gammel er du? Del 1: Skrive ut til skjerm. Gjøre selv. Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim

INF2820 Datalingvistikk V2017 Forelesning 2, 23.1 Jan Tore Lønning

UNIVERSITETET I OSLO

INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker

Finne ut om en løsning er helt riktig og korrigere ved behov

Dynamisk programmering

INF1000. Marit Nybakken 10. februar 2004

Python: Input og output

INF 1000 høsten 2011 Uke september

INF1000 undervisningen INF 1000 høsten 2011 Uke september

Arv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {

Dagens tema: 12 gode råd for en kompilatorskriver

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

Syntax/semantics - I INF 3110/ /29/2005 1

Transkript:

Avgjørbarhet / Uavgjørbarhet For å kunne snakke om avgjørbarhet/uavgjørbarhet trenger vi Turingmaskiner og for å snakke om Turingmaskiner trenger vi formelle språk, og strenger og alfabeter. Pluss litt til Våre Turingmaskiner erdefinert slik M = (Q,Σ,Γ,δ): Σ Γ Q tilstandene (inkl. start ogstoppetilstanden), Σ inputalfabet, p, Γ tapesymboler (inkl. b [blank]), δ overgangsfunksjonen. Turingmaskinene jobber på strengen som står på tapen. Når maskinen starter er input en streng skrevet med alfabetet Σ, når den stopper er output skrevet med alfabetet Γ. (Σ må jo være en delmengde av Γ, input kan jo stå på tapen.) Turingmaskin: http://www.youtube.com/watch?v=e3kelemwfhy

Avgjørbarhet / Uavgjørbarhet Turingmaskin (generell) input: streng skrevet med alfabetet Σ (inputalfabetet), output: streng skrevet med alfabetet Γ (tapealfabetet). Det vil si at en Turingmaskin M egentlig er en funksjon fra strenger i Σ*tilstrengeriΓ*, vi skriver: M: Σ* Γ* som jo betyr noe ala output = M(input) med input Σ*, output Γ*. Ofte vil vi at våre Turingmaskiner bare skal svare JA eller NEI (Y/N): Turingmaskin (JA/NEI) input: streng skrevet med alfabetet Σ (inputalfabetet), output: Y eller N, Y og N må da være med i Γ (tapealfabetet). M: Σ* Y,N

Avgjørbarhet / Uavgjørbarhet Vi begrenser oss altså til å se på desisjonsproblemer (svare JA eller NEI). NårvibrukerTuringmaskinertilåløsedesisjonsproblemerberegnervialtså funksjoner av typen M: Σ* Y,N. Da vil det jo være noen strenger i Σ* som gir svaret Y, og noen som gir svaret N. Σ* Formelt språk Y N JA instanser (og NEI ) Desisjonsproblemer Avgjøre

Avgjørbarhet / Uavgjørbarhet Et formelt språk L er en samling strenger (fra et gitt alfabet). Strengene har (som regel) en slags tolkning,f.eks Hamiltonske grafer. Formelle språk svarer til problemer, nemlig å svare på om en streng er med i språket eller ei. Ser vi på eksempelet med Hamiltonske grafer, vil det formelle språket bestå av alle (strenger som beskriver) Hamiltonske grafer, det korresponderende desisjonsproblemet vil være å avgjøre om en gitt graf er Hamiltonsk eller ei (svare JA/NEI), og språket kan avgjøres av en Turingmaskin (men trolig ikke i polynomisk tid). De strengene (den input) vi svarer JA på kalles altså JA instanser (evt. positive instanser),ogdevisvarerneipåfornei instanser (negative). Det formelle språket definerer altså hva som er JA instanser for det korresponderende problemet; resten av strengene som kan lages med inputalfabetet blir NEI instanser.

3b Er følgende språk avgjørbart? L 1 = Σ* (where Σ* is the set of all possible strings over the alphabet Σ). Her skal vi altså avgjøre om inputstrengen vår er kun er laget med tegn fra et alfabet Σ. (JegantardetikkeermentatΣ skal være inputalfabetet da er jo alle strenger lovlige, men det er også en mulig tolkning, bare svar JA.) PROC check (string S) BOOLEAN isok = TRUE FOR <all s in S> DO IF <s Sigma> THEN isok = FALSE RETURN(isOK) L 1 er avgjørbart. ML1 = (Q,Σ,Γ,δ) Σ = Σ U X (maskinens inputalfabet Σ er Σ U X, hvor X er de ulovlige tegnene) Γ = Σ U b (vi kan også skrive blank på tapen, men trenger ikke andre symboler her) Q = qs, qe, h (vi klarer oss med tre tilstander, start tilstanden s er også OK tilstanden.) δ = (qs, s Σ) (qs,b,r) Leser symbol i Σ, blir i qs (OK), overskriv med blank, gå til neste. (qs, s Σ) (qe,b,r) Leser symbol ikke i Σ, går til qe (ikke OK), overskiv, gå til neste. (qs, b) (h,y, ) Kommet til enden (leser blank), er i qs, stopp med YES. (qe, s Σ ) (qe,b,r) Uansett hva vi leser (unntatt b) forblir vi i qe når vi først har error. (qe, b) (h,n, ) Kommet til enden med error, stopp med NO. s Σ (s X) s Σ * qs qe b h b Y N

3b Er følgende språk avgjørbart? L 2 = M M decides L 1. L 2 er ikke avgjørbart. Ser vi igjen på Turingmaskiner som funksjoner, er det generelt ikke mulig å svare på spørsmål om denne funksjonen (her: om funksjonen avgjør L 1 ). Vi bruker standardreduksjonen fra HALTING og transformerer en HALTINGinstans (M,x) til en L 2 instans (M ) på følgende måte: HALTING L MACHINE M (input) 2 input: M,x M simuler M på x ML1(input) M,x M M r ML 2 M h Y N

3b Så hvorfor virker dette? Hva er det vi har gjort? Vi har vist hvordan vi kan oversette alle HALTING instanser (all mulig HALTINGinput) til L 2 instanser (ved å lage M ). Transformasjonen oversetter JA instanser til JA instanser, og NEI instanser til NEI instanser, slik at svaret vi får fra en maskin for L 2 vil være det samme som fra en for HALTING (på korresponderende instanser). At en JA instans av HALTING blir til en JA instans av L 2 ser vi lett: simuleringen (av M på x) vil stoppe, og M er da i praksis ML1 (en maskin for L 1 ). At en NEI instans av HALTING blir til en NEI instans av L 2 er nesten enda lettere: simuleringen stopper aldri, så vi kommer aldri til ML1 delen, M går bare i evig løkke og er ikke en maskin for noe som helst (annet enn å gå i løkke, da ). For å kunne svare på om en maskin (av typen M ) M)er en maskin for L 1 må vi altså også kunne svare på om M på x stopper. Det kan vi ikke. L 2 er altså uavgjørbart. (ML 2 i den skjematiske fremstillingen av reduksjonen på forrige side kan altså ikke eksistere, siden vi vet at M h ikke gjør det.)

Jammen, kan vi ikke? Kan vi ikke bare sette «Simuler M på x» foran hva som helst og bevise at det er uavgjørbart? Også noe som er egentlig avgjørbart?? Nei. Det vil si, man kan sette «Simuler M på x» foran hva som helst, men det beviser ikke at dette hva som helst er uavgjørbart. (Se hva vi gjorde med L 1 og L 2 ). La oss ta et nytt eksempel på noe avgjørbart å sjekke om en Turingmaskin bare består av en overgangsregel. Det kan besvares med maskinen (programmet) M eks under: MACHINE M eks ( MACHINE M i = (Q i,σ i,γ i,δ i ) ) IF δ i = 1 THEN RETURN(Y) ELSE RETURN(N)

Jammen, kan vi ikke? Og så kjører vi på med standardreduksjonen HALTING L? input: M,x M MACHINE M (M i ) simuler M på x M eks (M i ) JA instanser av HALTING blir til maskiner M som svarer på om maskiner den får som input har en overgangsregel (ved å bruke koden fra M eks ), NEI instanserav av HALTING blir til maskiner M som aldrisvarer. Hvilke språk var det egentlig som ble avgjørbare og uavgjørbare her nå? Og hvilke maskiner hører til hvilket språk? Språk Maskin Avgjørbarhet. L eks =M Mharen overgangsregel M eks, og delvis M Avgjørbart (med M eks ). L? =M MavgjørL eks M? (hypotetisk) Uavgjørbart.

3b Er følgende språk avgjørbart? L 3 = M M decides L 2. L 3 er avgjørbart.deterlettåseomenmaskinerenmaskinforetuavgjørbart språk (når vi vet at språket er uavgjørbart). Et uavgjørbart språk har ingen maskiner. Dtf Det formellespråket L 3 er tomtl 3 =,ogkank avgjøres av en maskin som alltid svarer NEI. Kommer noen til deg med en Turingmaskin og spør om det er en maskin for HALTING, kan du alltid svare nei. Tilsvarende for L 2, du kan alltid svare nei for all input. Det er ikke en maskin for L 2 vedkommende har. Σ* MACHINE ML3(M i ) Y N RETURN(N)

3b alt. tolkning Tolker vi oppgaven slik at alle symboler i input er lovlige for L 1 (at den Σ som menes i oppgaveteksen faktisk er inputalfabetet til en Turingmaskin M = (Q,Σ,Γ,δ)), får jooppgavenenslagsoppgaven elegant symmetri : L 1 :avgjørbart MACHINE ML1(S) RETURN(Y) L 2 :uavgjørbart HALTING L 2 (som før) L 3 :avgjørbart MACHINE ML3(M) RETURN(N)