Számítástörténet

Turing-gépek és kiszámíthatóság-elmélet

Turing-gépek és kiszámíthatóság-elmélet

A Turing-gép a számítástechnika központi elméleti konstrukciója. A Turing-gép a számítás absztrakt matematikai modellje. A Turing-gépek használata az úgynevezett „kiszámítható funkciók elhatárolásával segít megmagyarázni, mi is a számítás.”

Alan Turing korai logikai kutatása egy híres megoldatlan problémára összpontosított, az Entscheidungsproblem néven. Az Entscheidungsproblémát (nagyjából németül döntési problémának fordítva) David Hilbert filozófus és matematikus javasolta 1928-ban. A probléma azt kérdezte, hogy létezik-e olyan algoritmus, amely minden állítást hivatalos nyelven döntene el.

A hivatalos nyelv az axiómák és a következtetési szabályok rendszere, például számtani vagy elsőrendű logikában. Az axiómák tetszőleges szimbólumok lehetnek, a következtetési szabályok pedig a szimbólumok manipulálásának szabályai.  A „minden állítás eldöntése” azt jelentette, hogy vagy azt állítottuk ki, hogy az állítás igaz / hamis, vagy azt, hogy az állítás levezethető / alulértékelhető-e. Kurt Godel teljességi tétele bebizonyította, hogy az érvényességet eldöntő algoritmus egyenértékű a deriválhatóságot eldöntő hatékony eljárással. Alan Turing 1936-os írása „A számolható számokról, az Entscheidungsproblem alkalmazásával” negatív eredményt mutatott, hogy lehetetlen algoritmikusan eldönteni minden állítást egy hivatalos rendszerben.

Alan Turing

Az Entscheidungsprobléma negatív eredményének bizonyításához Turingnek formalizálnia kellett egy algoritmus fogalmát. Turing algoritmusának formalizálása a számítás matematikai modellje volt, amely később Turing-gépként vált ismertté. Egy Turing-gépnek véges halmaza van, amelyben a gép tartózkodhat. A Turing-gépnek végtelen hosszú szalagja van, négyzetekre osztva. A szalag minden négyzetén található egy szimbólum, amelyet a szimbólumok véges halmazából rajzolnak ki. A számítás bármely pillanatában a Turing-gép felolvassa a szimbólumot a szalag egyik négyzetén. A Turing-gép helyettesítheti ezt a szimbólumot egy másik szimbólummal, és elmozdulhat a jobbra vagy a balra. A Turing-gép által végrehajtott műveletet automatikusan a gép állapota határozza meg. Miután megtörtént a csere szimbólum és egy másik négyzetre lépés, a Turing-gép más állapotba léphet. Minden egyes államnak más és más szabályrendszere van a szimbólumok helyettesítésével és a mozgás irányával kapcsolatban.

A Turing Machine Design ritka fizikai megvalósítása (végtelen szalag nélkül)

A Turing-gép kanonikus megfogalmazása általában bináris ábécéből áll, amely kizárólag 0 és 1 karaktereket tartalmaz. Ez a megfogalmazás megfelel a modern számítógépes programozók intuíciójának, tekintettel arra, hogy az összes modern számítógép binárisan működik. Valójában a Turing-gépek semlegesek a szimbólumok ábécéjének méretét illetően. A Turing-gép bármilyen szimbólumot használhat, akár számot, akár bármilyen más ábécét, például képi szimbólumot vagy latin ábécét. Minden lehetséges véges ábécé bármilyen megfogalmazása bizonyíthatóan bináris Turing-géppé redukálható.

A Turing-gépek feltételezik, hogy végtelen mennyiségű memória áll rendelkezésre. Ezt a Turing-gépi követelményt egyetlen valódi fizikailag példányos gép sem tudja teljesíteni. A Turing-gép azt is feltételezi, hogy egy végtelen sok időt lehet eltölteni a funkció kiszámításával. Ezeket a feltételezéseket arra a célra hoztuk létre, hogy a lehető legkiterjedtebb osztályt hozzuk létre a függvények Turing-féle meghatározásához. A Turing kiszámítható funkciói minden olyan funkció, amelyet egy Turing gép kiszámíthat. Ezen kiszámítható funkciók közül sokakat soha nem lehet kiszámítani egyetlen fizikailag példányosított gép esetében sem, mert túl sok idő vagy memória szükséges.

Az egyház-türingi tézis a számítható függvények és a Turing-gép által kiszámítható függvények egyenértékűségét állítja. Ez azt jelenti, hogy minden olyan funkciót, amelyet a Turing-gépek nem tudnak kiszámítani, más módszerrel nem lehet kiszámítani. David Hilbert pozitív választ várt az Entscheidungsproblem-re, ami azt jelentené, hogy minden probléma kiszámítható. Turing eredménye sok számolhatatlan probléma felfedezéséhez vezetett.

A leghíresebb, kiszámíthatatlan probléma a leállási probléma. A leállítási probléma egy olyan algoritmus létrehozásának a problémája, amely általános esetben eldöntheti, hogy egy számítógépes program a bemenetével leáll-e vagy örökké folytatódik-e. Bár vannak olyan esetek, amikor a leállítási probléma megoldható, nem megoldható minden számítógépes program számára, bármilyen bemenettel. Ez az eredmény fontos következményekkel járt a számítógépes programozás szempontjából, mivel a számítógépes programozóknak tisztában kell lenniük a végtelen hurkok lehetőségével és az összes végtelen hurok észlelésének lehetetlenségével a programok futtatása előtt.

A Turing-gép másik vonzata az univerzális Turing-gépek lehetősége. A Turing tervezésében implicit módon az a program tárolható, amely az adatokat az általa módosított adatok mellett módosítja. Ez felvetette az általános célú és újraprogramozható számítógépek lehetőségét. A modern számítógépek tipikusan univerzális Turing-gépek abban az értelemben, hogy bármilyen algoritmus futtatására programozhatók. Ez kiküszöbölte az egyes potenciális számítógépes programokhoz szükséges különféle hardverek szükségességét, és bevezette a hardver / szoftver különbséget.

A Turing-gépi modell közvetlenül a számítógépek feltalálásához vezetett, de ez nem ugyanaz a terv, amelyet a modern számítógépek megtervezéséhez használtak. A modern számítógépek tervrajzaként használt von Neumann-architektúra a Turing-gép modelljében implicit módon használja a tárolt programkoncepciót, de számos fontos szempontból eltér a Turing-gép többi modelljétől. A legnagyobb különbség az, hogy a von Neumann architektúra nem használ író-író fejet, és ehelyett több regisztert, véletlen hozzáférési memóriát, adat buszokat, egy kis alapvető gépi utasítást és több bites feldolgozási képességet tartalmaz. A von Neumann architektúra kifejezetten lehetővé teszi speciális beviteli és kimeneti eszközök, például billentyűzetek és monitorok használatát is.

A számítás első matematikai modellje a Turing-gépi modell volt. Közvetlenül fizikai számítógépek feltalálásához vezetett. A fizikai számítógépek ugyanolyan képességekkel rendelkeznek, mint a Turing-gépek, korlátozott memóriát és időbeli korlátokat feltételezve a tényleges számításhoz. A Turing megfogalmazása továbbra is központi szerepet játszik a számítás tanulmányozásában. Az informatikusok továbbra is aktívan részt vesznek annak vizsgálatában, hogy a Turing-gépek kiszámíthatják-e az egyes funkciókat.

AppyMouse képernyős Trackpad és egérmutató a Windows táblagépekhez
A táblagép-felhasználók gyakran hiányolják az egérmutatót, különösen akkor, ha szokták használni a laptopokat. Az érintőképernyős okostelefonok és táb...
Az egér középső gombja nem működik a Windows 10 rendszerben
A középső egérgomb segít átgörgetni a hosszú weboldalakat és a sok adatot tartalmazó képernyőket. Ha ez leáll, akkor a billentyűzet segítségével görge...
Hogyan lehet megváltoztatni a bal és jobb egérgombokat a Windows 10 PC-n
Elég általános, hogy az összes számítógépes egéreszközt ergonómikusan a jobbkezes felhasználók számára tervezték. De vannak olyan egéreszközök, amelye...