110 likes | 306 Views
A Turing-gép. Ki az a Turing?. Alan Mathison Turing (1912-1954) 1912. június 23-án Paddingtonban (London) született, 14 éves koráig szülei Indiában laknak, ő pedig különböző rokonoknál él
E N D
Ki az a Turing? Alan Mathison Turing (1912-1954) 1912. június 23-án Paddingtonban (London) született, 14 éves koráig szülei Indiában laknak, ő pedig különböző rokonoknál él 1931-38.: Egyetemi tanulmányok és PhD (Cambridge, Princeton Egyetem USA) – első elméleti munkái (pl. Turing-gép) 1939-1945: a második világháború alatt a brit hadsereg német titkos kódok elemzésére szakosodott csoportjában dolgozoik. 1945-1947: Nemzeti Fizikai Laboratórium (London), Cambridge – számítógépeket tervez. Atletizál, fut – az 1948-as londoni olimpián sérülés miatt nem idnulhat. 1948-1954: főleg a számítógépes intelligenciák tesztelésével foglalkozik, fizikai és biológiai kutatásokat is végez. • : Nyíltan vállalt homoszexualitása miatt letartóztatják, pert indítanak ellene, majd a libidót semlegesítő orvosi beavatkozásnak vetik alá. 1954. június 7-én, ciánmérgezésben hal meg. A halottkém jelentése szerint öngyilkosság történt.
Turing koncepciója • Külsõ adat és tárolóterület: végtelen szalag, amelynek egymás után cellái vannak, amelyek vagy üresek, vagy jelöltek. • A gép egyszere egy cellával foglalkozik (Az író/olvasó feje egy cellán áll) • A szalagon tud jobbra-balra lépni, tud jelet olvasni, törölni és írni. Az „üres" szalagon nincs jel. A jelet a továbbiakban 1-gyel, az üres cellát 0-val jelöljük. • A bevitel, a számítás és a kivitel minden konkrét esetben véges marad, ezen túl a szalag üres.(0) • A gép belsõ állapotait jelöljük valamivel (pl. az ABC betűivel, számokkal, stb.) • A gép mûködését megadja egy explicit helyettesítési táblázat. Állapot, bemenet --> Állapot, kimenet, fejmozgás
A Turing-gép alapprogramja I. • A Turing-gép alapprogramja (az un. átmenetfüggvény) legegyszerûbben egy táblázattal adható meg, amelynek sorai a Turing-gép lehetséges állapotainak, oszlopai pedig a Turing-gép ábécéjének (a lehetséges beírható karakterek, bináris Turing-gép esetén ezek 0 és1) felelnek meg. A táblázat cellái azokat az utasításokat tartalmazzák, amelyek a Turing-gép egyes állapotainak és a Turing-gép ábécéjében levõ karaktereknek felelnek meg. • Például egy bináris Turing-gép esetén, amely a szalagon levõ bináris karaktersorozat komplementálását végzi el (0 helyett 1, 1 helyett 0 beírását a szalagra) : a Turing-gép lehetséges állapotai {s,p} ahol • s az un. kezdõállapot • p a "mûködési" állapot (most több állapotra nincs szükség) a Turing-gép ábécéje {> , 0, 1 , _ } ahol • > a start szimbólum • _ az üres karakter • 0 és 1 pedig bináris számjegyek
A Turing-gép alapprogramja III. A Turing-gép utasításai három részbõl állnak, amelyek az utasítás végrehajtása után meghatározzák • a Turing-gép új állapotát; ez lehet • a lehetséges állapotok közül valamelyik • a „h” megállási állapot (halt vagy stop állapot), amely a Turing-gép leállását eredményezi • a szalag aktuális cellájába beírándó új karaktert • az író-olvasó fej mozgatását; ez lehet • léptetés egy cellával balra • léptetés egy cellával jobbra • helyben maradás; ilyenkor a gép nem lépteti a fejet
Church - Turing tétel • Ha egy algoritmus elég mechanikus és világos, akkor bizonyára található olyan Turing-gép, amely azt végrehajtja. • A Turing gép korlátozottsága (egy jel, bináris, egy darab egydimenziós szalag) csak rossz hatásfokot eredményez, de mégis minden elérhetõ, amit elvileg el lehet érni. • A Turing gép definiáljamindazt, amit matematikailag algoritmikus eljárás alatt értünk. Minden más algoritmikus eljárást végrehajtó rendszer ekvivalens valamely Turing-géppel.
Problémák a Turing-gépekkel • A legtöbb számhoz tartozó Turing-gép semmi értelmeset nem csinál. (Nem meglepõ: a kódolt természetes nyelvi szövegeket tekintsük) • Van olyan, amelynek a leírása nem helyes, mert kerülhet olyan belsõ állapotba, amire nincs utasítása. • Vannak amelyek ugyanazt csinálják mint egy másik. • Vannak, amelyek soha nem állnak meg. • Lehetne javítani a kódoláson, hogy az átfedéseket és értelmetlenségeket csökkentsük. Ezt megtenni csak akkor érdemes, ha tényleg mindet ki tudjuk küszöbölni. (Ez viszont nem lehetséges.)
Konklúzió Az algoritmusok önmagukban nem döntik el a (matematikai) igazságot. Az algoritmusok érvényességét mindig külsõ eszközökkel kell megállapítani.