Allan Turing
Esittely
Alan Turing (23.6.1912 Lontoo – 7.6.1954) oli brittiläinen matemaatikko ja loogikko, joka on luonnut pohjan tietojenkäsittelytieteessä tunnetun Turingin kone käsitteelle.[1][2] Hän opiskeli Cambridgen yliopiston King’s Collegessa, matematiikka pääaineenaan. Hänen läpimurtonsa tieteellisessä maailmassa alkoi, kun hän analysoida mitä ihminen tekee, kun hän koittaa ratkaista tarkasti ohjeistettua matemaattista tehtävää. Hän todisti siis tutkimuksiensa avulla sen, että mikä tahansa matemaattinen ongelma voidaan ratkaista koneella, jos se voitaisiin esittää algoritminä. Tarkasti ohjetta seuraavan henkilön pystyisi hänen mukaansa korvata koneella. [1][3][4] Turing oli myös homoseksuaali, jonka vuoksi häntä vainottiin. Hänelle tehtiin myöhemmin kemiallinen kastraatio. Lopulta hän teki itsemurhan syanidilla täytetyn omenan syönnillä.[5]
Toisen maailmansodan aikana hän toimi salausanalyytikkona Britannian tiedustelupalvelussa Bletchley Parkissa. Hänen suurimpia saavutuksia oli saksalaisen Enigma-salakirjoituksen murtaminen, jolla oli suuri merkitys sodan kulkuun. [6] Tätä varten Turing suunnitteli Bombe -nimisen salauksenpurkulaiteteen, jonka avulla britit ratkoivat natsi-Saksan Enigma-salauslaitteen viestejä. Mitä nopeammin saksalaisten salausviestejä saatiin murrettua sitä tuoreempaa tietoa brittiläisillä oli. Keskimäärin britit ratkoivat saksalaisten viestejä kolmessa tunnissa ja parhaimmillaan jopa 15 minuutissa. Turing ei ehtinyt saada tunnustusta Bombesta, sillä sen tietoja pidettiin pitkään sotasalaisuuksina. [7][4] On kerrottu, että toinen maailmansota lyheni kahdesta neljään vuotta Turingin toimien ansiosta [4].
Sodan jälkeen Turing keskittyi tietotekniikan tutkimiseen ja alkoi suunnitella tietokonetta, jonka älykkyys vastaisi jopa ihmisen tasoa. Hänen ACE -tietokoneen suunnitelma ei lopulta toteutunut, ja lisäksi nykyaikaisen tietokoneen kehittämisestä kunnian on saanut yhdysvaltalainen John Von Neuman, vaikka Turing oli tuonnut keskeiset ideat esille jo raportoidessaan Turingin koneesta. Turingin töistä elämään jäi Turingin testi, ja se on luonut perustan tekoälytutkimukseen. Testin mukaan tietokone on älykäs, jos sitä ei erota koneeksi, kun sen kanssa keskustelee. Turingin sanottiin olevan huono tuomaan itseään ja ideoitaan esille, jotka vaikuttivat hänen tunnettavuuteen ja ideoiden kauppaamiseen. [4][3] Vasta hänen kuolemansa jälkeen hänen ansioitaan alettiin tunnustamaan ja kunnioittamaan[5] .
Turingin testi
Turingin testissä on tarkoitus mitata tekoälyn ihmisyyttä asettamalla ihminen keskustelemaan tietokoneen kanssa. Yksinkertaisuudessa tämä tarkoittaa sitä, että jos ihminen ei pysty erottamaan vastapuolen olevan tietokone, voidaan pitää testi onnistuneena. Älä sekoita Turingin testi Turingin koneeseen.
Allan Turing on kirjoittanut vuonna 1950 Computing machinery and intelligence -artikkelinssa Mind-lehteen, jossa hän esitteli testinsä kysymällä ”Can machines think?”. Alkuperäiseltä nimeltä tunnettu Imitation game eli matkimispeli sai siitä alkunsa.[8] Turingin itse käytti sitä nimeä testistään. Nykyään tunnettu ja käytetty Turingin testi nimeä alettiin käyttämään vasta Turingin kuoltua 1954.
Käytännössä testi toimii siten, että siihen osallistuu kolme osanottajaa: tarkkailija (ihminen) sekä pelaaja A (mies) ja pelaaja B (nainen), jotka istuvat seinän toisella puolella. Tarkkailijan sukupuolella ei ole väliä. A ja B tehtävänä on todistaa tarkkailijalle olevansa nainen. Testi toteutetaan kirjallisena ja kirjoitetut lauseet tulostetaan näyttöpäätteelle. Tällä yritetään pitää testi mahdollisimman uskottavana asettamatta sille viestintään perustuvia ehtoja. Matkimispelissään Turing ehdottaakin asettamaan A:n paikalle tietokoneen ja yrittää suoriutua tehtävästään. Testi voidaan pitää onnistuneena, jos tarkkailija ei onnistu kertomaan kumpi on tietokone.
Turingin testi saavutti melkoisen virstanpylvään tietojenkäsittelytieteessä ja sitä pidetään tänäkin päivänä melko varteenotettavana testinä, josta ei moni tietokone ole vieläkään selvinnyt. Se on tänä päivänä tekoälytutkimuksissa käytettävä testi. Viimeisin koe ja julkisuuteen päässyt ohjelma / chatbotti oli nimeltä Eugene Goostman, jonka suoritti Royal Society of London -tiedeakatemia. Eugene Goostam esitti olevansa 13-vuotias ja se vakuutti osan arvioijista olevansa ihmismäinen.[9]
Kryptografia
Ehkäpä yksi Alan Turingin suurimmista saavutuksista liittyy kryptografian maailmaan ja mitä Turing pystyi tuomaan kyseiselle tieteenalalle. Kryptografia voidaan määritellä viestien ja tulkintojen salaukseksi niin, että vain näiden viestien ja tulkintojen vastaanottaja pystyy määrittämään niiden sanoman [10]. Tätä salausprosessia kutsutaan myös kryptaukseksi. Salattavaa viestiä perusmuodossaan kutsutaan usein selväkielitekstiksi ja matemaattinen algoritmi muuttaa tämän salakirjoitukseksi. Kryptauksen vastakohtana käytetään kryptoanalyysia, minkä avulla yritetään selvittää ja murtaa salakirjoituksia. [11][12]. Salakirjoituksia voidaan luokitella monin eri tavoin. Yleisimmän määrittelyn mukaan salakirjoituksia on kahdenlaisia: viestejä minkä kryptaamiseen ja purkamiseen voidaan käyttää samaa, symmetristä avainta sekä viestejä missä avain on eri sekä kryptaamisen että purkamisen osalta. Kummassakin tavassa on sekä hyviä puolia että ongelmia. Jos avain on symmetrinen, se pitää olla kummankin osapuolen (lähettäjä-vastaanottaja) tiedossa ennen kuin viesti salataan. Oikeassa maailmassa vastaanottajia on kuitenkin yleensä useampi, joten viestin pitäminen salassa voi osoittautua ongelmalliseksi jos sen voin avata samalla avaimella. Jos osapuolia on vain kaksi, symmetrinen salaus voi osoittautua hyväksi keinoksi. Epäsymmetrisessä kirjoituksessa avain on eri viestin salaamiseen ja purkamiseen: kryptaukseen käytettävää avainta kutsutaan julkiseksi avaimeksi ja kryptoanalyysissa käytettävää avainta taas yksityiseksi avaimeksi. Julkinen avain voi nimensä mukaan olla julkinen kaikille, mutta yksityistä avainta ei voi paljastaa riskeeraamatta viestin paljastumista [13]. Alan Turing toimi toisen maailmansodan aikana keskeisenä johtohahmona salaisten koodien rikkojana ja ratkaisijana Iso-Britannialle. Turingin tehtävänä oli murtaa natsien lähettämiä salaisia viestejä. Natsit käyttivät omissa kryptauksissaan Enigma-nimistä konetta, jonka viestien purkamisesta tuli Turingin tärkein tehtävä toisen maailmansodan aikana [14].
Turingin kone
Turingin kone on Alan Turingin vuonna 1936[15] kehittämä laskennan malli, jonka tarkoituksena oli auttaa algoritmin määrittelyssä ja tarjota apua matemaattisen logiikan tarpeisiin. Turingin kone on vielä nykypäivänä mielekäs keino ymmärtää tietokoneiden toimintaa, vaikka yhtään ohjelmoitavaa tietokonetta ei ollut vielä rakennettu ennen Turingin koneen keksimistä.
Turingin koneeseen kuuluu seuraavat komponentit[16]:
- Nauha, joka toimii koneen muistina
- Lukupää, joka lukee nauhalla olevia symboleita, kirjoittaa niihin uusia symboleita ja liikkuu nauhalla oikealle tai vasemmalle
- Tilarekisteri, joka sisältää koneen nykyisen tilan
- Siirtymäfunktio, joka sisältää tiedon millä logiikalla nykyisestä syötteestä päästään seuraavaan.
Turingin kone on siis käytännössä kone, joka aloittaa nauhalla aloituskohdassa ja etenee siirtymäfunktion avulla oikealle tai vasemmalle. Kone lukee nauhan kohdalla olevan symbolin ja kirjoittaa tähän uuden symbolin riippuen minkä symbolin kone on juuri lukenut ja mikä tila koneen tilarekisterissä on. Kone jatkaa liikkumista ja symbolien lukemista ja kirjoittamista kunnes tilarekisteriin tulee käsky pysäyttää kone.
Turingin koneen formaali määritelmä[17]:
M = (Q, Γ, B, Σ, δ, q0, F)
Q on tiloista koostuva äärellinen joukko.
Γ on hyväksyttävistä nauhasymboleista koostuva äärellinen joukko.
B on tyhjä symboli, se kuuluu joukkoon Γ
Σ on syöteaakkosto, joka kuuluu joukkoon Γ, mutta ei sisällä alkiota B
δ on funktio “seuraava liike”, δ on määritelty seuraavasti:
Q x Γ -> Q x Γ x {R, L}
Tietyllä tilalla Q ja tietyllä nauhasymbolilla Γ saamme uuden tilan Q, kirjoitamme nauhapaikalle uuden symbolin Γ ja lukupää siirtyy joko vasemmalle L tai oikealle R.
q0 on alkutila joka kuuluu joukkoon Q
F on lopputiloista koostuva äärellinen joukko, F kuuluu Q.
Esimerkki Turingin koneen ohjelmoinnista[18]
Nykyinen tila | Nauhapaikan arvo | Mikä arvo kirjoitetaan | Mihin suuntaan liikutaan | Mihin tilaan vaihdetaan |
---|---|---|---|---|
ALOITA | * | * | Vasen | LISÄÄ |
LISÄÄ | 0 | 1 | Oikea | PALAA |
LISÄÄ | 1 | 0 | Vasen | MUISTINUMERO |
LISÄÄ | * | * | Oikea | LOPETA |
MUISTINUMERO | 0 | 1 | Oikea | PALAA |
MUISTINUMERO | 1 | 0 | Vasen | MUISTINUMERO |
MUISTINUMERO | * | 1 | Vasen | YLIVUOTO |
YLIVUOTO | (epähuomioidaan) | * | Oikea | PALAA |
PALAA | 0 | 0 | Oikea | PALAA |
PALAA | 1 | 1 | Oikea | PALAA |
PALAA | * | * | Älä liiku | LOPETA |
Church-Turingin -teesit[19]
- Kaikki olemassa olevat, järkevät algoritmin määritelmät ovat keskenään ekvivalentteja.
- Myös tulevat, järkevät algoritmin määritelmät ovat ekvivalentteja olemassa olevien määritelmien kanssa.
Näiden teesien perusteella voimme tehdä muutamia johtopäätöksiä.
- Turingin kone on digitaalisen tietokoneen teoreettinen malli ja turingin kone pystyy suorittamaan kaikki laskettavat ongelmat.
- Algoritmi pystytään ilmaisemaan jollakin Turingin koneella, joka pysähtyy äärellisen ajan kuluessa.
Turingin konetta voidaan käyttää siis esittämään algoritmeja. Turingin koneesta on myös tehty fyysisiä laitteita, vaikka mallin on tarkoitus olla vain hypoteettinen. Turingin koneella voi siis laskea esimerkiksi manipuloida binäärilukuja.
Turing ja von Neumann
John Von Neumann oli monien merkittävien saavutustensa lisäksi myös yksi nykyaikaisen tietotekniikan isistä. Ensimmäinen toimiva suunnitelma todellisesta tietokoneesta oli EDVAC, jonka arkkitehtuuri on säilynyt tietotekniikassa tähän päivään asti. Von Neumannin arkkitehtuuriin pohjautuva tietokone sai ensimmäisen teoreettisen pohjansa Alan Turingin tutkielmasta ”On Computable Numbers”, jossa Turing esitteli Turingin koneen. Von Neumann ja Turing tunsivat toisensa Cambridgen yliopistosta, jossa Von Neumann oli professorina. Von Neumann ajautui kuitenkin tietokoneiden pariin vasta vuonna 1944 Manhattan-projektin myötätuulessa ollessaan Pennsylvanian yliopistossa, jossa ensimmäinen nykyisen tyyppinen tietokone ENIAC suunniteltiin John Mauchlyn ja Presper Eckertin toimesta. Turingin ideoiden ja ENIAC:in pohjalta Von Neumann kirjoitti 1945 raporttinsa ”First Draft of a Report on the EDVAC”. Ensimmäinen Von Neumannin arkkitehtuuria mukaileva tietokone EDSAC valmistui 1949 Cambridgessä. [20]
Von Neumannin Arkkitehtuurin komponentit (teoreettinen malli)[21] :
CPU
Sisältää kolme osaa: kontrolliyksikön (Control Unit), aritmeettis-loogisen yksikön (ALU) ja rekisterit.
Kontrolliyksikkö tahdistaa ja ohjaa käskyjen suoritusjärjestystä, ohjaa käskyjen ja datan noutoa muistista, tulkitsee käskyt ja tallentaa tulokset takaisin muistiin.
ALU suorittaa logiikkapiireillä matemaattiset ja loogiset laskut, joita ovat esim. yhteen- ja vähennyslaskut, sekä AND, OR ja NOT -operaatiot.
Rekisterit ovat nopeaa kiikuista rakennettua välimuistia kontrolliyksikön ja aritmeettis-loogisen yksikön lähellä, jotka ovat suoraan kytketty kontrolliyksikköön. Vähentää Von Neumannin pullonkaulan vaikutusta, jossa väylät ovat tiedonsiirron heikoin lenkki.
Muisti ja väylät
- Muisti tallentaa dataa, sekä ohjelmat. Muistin sisältämä tieto kulkee tietokoneessa väylien kautta.
I/O-laitteet:
- Syöttö- ja tulostuslaitteet mahdollistavat tietokoneelle datan vastaanottamisen ja esittämisen. Esim. hiiri, näppäimistö ja tietokoneen ruutu, sekä massamuistilaitteet.
Rajoitukset:
Von Neumannin pullonkaula
Arkkitehtuurin väylä on jaettu ohjelma- ja datamuistin kesken, joka rajoittaa datansiirtoa suorittimen ja muistin välillä. Data pääsee kulkemaan kerrallaan aina vain toiseen suuntaan kanavaa pitkin, jolloin suoritusteho kärsii. Nykyään merkittävä ongelma prosessoreiden nopeuden ja muistien kokojen kasvaessa. Vuonna 1977 tämä ongelma kuvailtiin ensimmäistä kertaa John Backuksen toimesta. Hän esitti ettei pullonkaula ole pelkästään käytännön, vaan myös intellektuaalinen ongelma. Von Neumannin pullonkaulan voisi ratkaista tarjoamalla välimuistin suorittimen ja päämuistin välille, erilliset välimuistit tai väylät datalle ja ohjeille tai käyttämällä rinnakkaislaskentaa. [22]
Enigma
Toisen maailmansodan aikaan Turing työskenteli Iso-Britannian valtiolle koodinmurtajana. Turingin tärkein tehtävä oli murtaa saksalaisten kehittelemä Enigma-koodauslaite ja sen lähettämät viestit. Saksalaiset sotavoimat lähettivät sodan aikana tuhansia kryptattuja viestejä päivittäin ja Enigma-laitteita oli käytännössä jokaisessa saksalaisten kehittelemässä sota-ajoneuvossa jossa tarvittiin salattua viestintää. Alan Turing käytti hyvin vahvaa matemaattista taustaansa kehittäessään mekaanisen tavan murtaa koodattuja viestejä tavoitteenaan haravoida kryptatuista viesteistä samankaltaisuuksia sanojen ja kirjainten osalta. Tämän koneen prosessi perustui useampaan samanaikaiseen Enigma-laitteen viestien simulointiin ja kopiointiin. Turing mm. huomasi, että kryptattujen viestien joukossa oli satunnaisesti samoja kirjainpareja saman viestin sisällä ja koneen tarkoitus oli kehitellä kirjainten välillä silmukoita jotta viesti saataisiin purettua. Kehitys oli huimaa: aloittaessaan vuonna 1940 Turingin tiimi pystyi ratkomaan noin 50 viestiä viikossa, vuoteen 1943 mennessä Turingin kehittelemä mekaniikka auttoi ratkomaan jo noin 3000 viestiä päivässä. Enigma-laitteen murtamista pidetään yleisesti yhtenä isona menestystekijänä liittoutuneiden sodankäynnissä toisen maailmansodan aikana [23] [24]. Britit osasivat käyttää Enigma-laitteen heikkouksia hyväkseen ilman että saksalaiset olisivat huomanneet sitä. Onkin syytä miettiä miksi saksalaiset yliarvioivat Enigma-laitteensa toimivuuden: on esitetty väitteitä, että saksalaiset eivät testanneet omia koodauslaitteitaan tarpeeksi kovaa tai niiden toimivuutta. Suurin yksittäinen syy on todennäköisesti kuitenkin se, että saksalaiset aliarvioivat brittien vaivannäön ja työn määrän Enigman ratkaisemiseen [25].
Pysähtymisongelma
Pysähtymisongelma eli Halting problem on Alan Turingin todistama ratkaisematon ongelma. Ongelmassa kysytään voiko ohjelma pysäyttää itsensä vai suorittaako ohjelma loputtomasti. Eli onko mahdollista tehdä ohjelma tai algoritmi joka ennustaa pysähtyykö ohjelma vai suorittaako se loputtomasti. Ongelman ratkaisemattomaksi todistamiseen riittää, että on olemassa yksi ohjelma tai algoritmi jota ei voida ennustaa. [26]
Ongelman todistaminen ristiriitaisuudella: Oletetaan, että on olemassa kone, joka ratkaisee ongelman. Koneelta kysytään pysähtyykö syöte I, vastaus on kyllä tai ei. Muuttamalla konetta vastaamaan päinvastoin kuin syötteen antama vastaus saadaan aikaan ristiriita. Syöte palauttaa vastauksen kyllä eli pysähtyy ja koneen vastaus on ikuinen silmukka: Vastauksella ei pysähdy syöte on ikuisessa silmukassa ja kone vastaa pysähtyy. Päädytään ristiriitaan, mikä todistaa ongelman ratkaisemattomaksi. Ei voida siis kehittää ohjelmaa, joka osaa ennustaa pysähtyykö syöte vai ei. [26]
Ongelman voi selittää myös yksinkertaistetulla ennustaja esimerkillä: Oletetaan, että on olemassa ennustaja joka väittää osaavansa ennustaa. Sanot ennustajalle sanovasi kymmenessä sekunnissa numeron yksi tai kaksi ja ennustajan pitää ennustaa kumman sanot. Ennustaja ennustaa sinun sanovan numeron yksi jolloin sinä sanot numeron kaksi tai päinvastoin. On siis mahdotonta ennustajalle eli “ohjelmalle” tietää kumman vaihtoehdon sinä eli “syöte” antaa.
Pseudokoodi esimerkki:
PYSÄHTYYKÖ_OHJELMA(ohjelma) { if (PYSÄHTYYKÖ(ohjelma, syöteI)) suorita_päättymätön_silmukka else pysähdy }
Alan Turing todisti pysähtymisongelman vuonna 1936 ja sen tiedetään olevan ensimmäisiä laskennalla ratkaisemattomiksi todistettuja ongelmia. Turingin Pysähtymisongelma perustui pitkälle hänen itse kehittämään Turingin koneeseen. Ongelmaa todistaessa oletetaan suoritettavalla ohjelmalla ja koneella olevan loputon määrä muistia jolloin loputon silmukka ei voi päättyä muistin loppumisen myötä. Tämä tarkoittaa, että ongelman ratkaisemiseen ei auta laskentatehon tai muistin kasvattaminen. [27]
N versus NP- ongelma
P = NP on tietojenkäsittelytieteessä yksi tunnetuimpia ratkaisemattomia ongelmia. Kysymyksenä on se, voidaanko laskennallinen ongelma ratkaista yhtä tehokkaasti kuin ratkaisun oikeellisuuden tarkastaminen. [28] Esimerkiksi sudokun ratkaiseminen on tällainen ongelma. Ratkaisu voidaan tarkastaa helposti polynomisessa ajassa, mutta ratkaisun toteuttaminen muodostuu ruudukon kasvaessa käytännössä mahdottomaksi. Toisin sanoen ratkaisu on aikavaativuudeltaan vaikeimmissa tapauksissa eksponentiaalinen.
Jos P = NP ratkaistaisiin todeksi, voitaisiin tämän ratkaisun avulla ratkaista moni muista ratkaisemattomista ongelmista, sillä monet niistä voidaan johtaa lähes identtiseksi ongelmaksi tämän kanssa. Huomion arvoisena esimerkiksi epäsymmetrinen salaus (julkinen avain) voitaisiin murtaa, jolloin koko internetin tietoturva jouduttaisiin uudistamaan. [29]
Yleisesti kuitenkin ajatellaan, että lause P = NP on epätosi, vaikka tätä ei ole onnistuttu todistamaan. [30]
Merkitys nykypäivänä
Alan Turingin keksinnöt edistivät tietojenkäsittelytieteen kehitystä. Vielä tänäkin päivänä tietokoneet pohjautuvat Von Neumannin arkkitehtuuriin, joka sai vaikutteita Turingin koneesta. Turingin konetta itseään käytetään nykyään opetuskeinona tietojenkäsittelytieteessä, sillä se on yksinkertainen tapa ymmärtää laskettavien algoritmien toimintaa tietokoneissa. Turingin näkemykset tekoälystä ovat inspiroineet ihmisiä kehittämään ja tutkimaan tekoälyä ja koneoppimista. Hän esitti "Computing machinery and intelligence"-artikkelissaan ongelmia koneoppimisessa, joita on tähän päivään mennessä ratkottu ja ratkotaan edelleen.[31]
Nykyinen Bayes-tilastotiede on saanut vaikutteita Alan Turingilta, kun hän työskenteli koodinmurtajana toisen maailmansodan aikaan. Hän tarvitsi tilastollisia menetelmiä kehittääkseen kryptoanalyyttisen menetelmän, banburismuksen, jota käytettiin Saksan merivoimien Enigma-laitteella lähetettyjen viestien selvittämiseen. Siltä ajalta on tullut mm. Good-Turing estimaatti, jota hän kehitti yhdessä assistenttinsa Jack Goodin kanssa.[32]
Vuonna 2015 Lontooseen perustettiin datatieteen ja tekoälyn tutkimukseen keskittyvä instituutti, joka sai nimensä Alan Turingin mukaan.[33] Hänen mukaansa on myös nimetty Turing-palkinto, joka annetaan vuosittain tietojenkäsittelytieteessä ansioittuneelle henkilölle.[34] Hänen työstään toisen maailmansodan kryptografian parissa on myös tehty elokuva The Imitation Game (2014).
Lähteet:
- ↑ 1,0 1,1 Turing, S. (2012). Alan M. Turing (Centenary ed.). Cambridge ; New York: Cambridge University Press.
- ↑ Cooper, S. B. & Leeuwen, J. v. (2013). Alan Turing: His work and impact. Amsterdam ; Boston: Elsevier.
- ↑ 3,0 3,1 Copeland, B. J. (2012). Alan Turing' s electronic brain: The struggle to build the ACE, the world's fastest computer. Oxford ; New York: Oxford University Press.
- ↑ 4,0 4,1 4,2 4,3 Kauppinen, T. 2012. Tietokoneen isän tuho. HS. Viitattu: 18.11.2018.
- ↑ 5,0 5,1 Broomfield, M. 2016. GCHQ apologises for 'horrifying' treatment of Alan Turing and discrimination against other LGBT people 16.4.2016. Independent. Viitattu: 18.11.2018
- ↑ Vilkko, R. 2001. Koodien ratkaisija ja tietokoneen isä Alan Turing (1912-1954). HS. Viitattu: 18.11.2018
- ↑ Copeland, J. 2012. Alan Turing: The codebreaker who saved 'millions of lives'. BBC News Technology. Viitattu 18.11.2018.
- ↑ http://www.jackhoy.com/artificial-intelligence/2015/03/22/summary-of-computing-machinery-and-intelligence-alan-turing.html
- ↑ http://time.com/2847900/eugene-goostman-turing-test/
- ↑ https://academic-eb-com.ezproxy.uef.fi:2443/levels/collegiate/article/cryptography/472150
- ↑ Kapoor, B. (2011). Cryptography. Kybernetes, 40(9/10), pp. 1422-1439
- ↑ Eskicioglu, A. (2001). Cryptography. Potentials, IEEE, 20(1), pp. 36-38.
- ↑ Eskicioglu, A. (2001). Cryptography. Potentials, IEEE, 20(1), pp. 36-38
- ↑ Sánchez Ron, J. M. (2013). Alan Turing: Person of the XXth century? Arbor: Ciencia, 189(764), p. a085
- ↑ https://www.wolframscience.com/prizes/tm23/turingmachine.html
- ↑ https://gyires.inf.unideb.hu/GyBITT/26/ch04.html
- ↑ https://archive.org/details/HopcroftUllman_cinderellabook/page/n155
- ↑ https://rosettacode.org/wiki/Universal_Turing_machine
- ↑ https://docplayer.fi/9154880-Ongelma-t-mika-on-turingin-kone-miten-turingin-kone-liittyy-funktioihin-ja-algoritmeihin-miten-turingin-kone-liittyy-tietokoneisiin.html
- ↑ https://www.cs.helsinki.fi/u/kerola/artikkelit/von_Neum_TTL40/vonNeumann.htm
- ↑ https://users.ics.aalto.fi/orponen/opetus/ttp/981006/luento/tsld005.htm
- ↑ https://en.wikipedia.org/wiki/Von_Neumann_architecture
- ↑ O' Connor, J. M. (2000). ALAN TURING-ENIGMA. British Heritage, 21(5), p. 14
- ↑ Cooper, S. B. & Leeuwen, J. v. (2013). Alan Turing: His work and impact. Amsterdam ; Boston: Elsevier
- ↑ Cooper, S. B. & Leeuwen, J. v. (2013). Alan Turing: His work and impact. Amsterdam ; Boston: Elsevier
- ↑ 26,0 26,1 Sipser, Michael (2006). "Section 4.2: The Halting Problem". Introduction to the Theory of Computation
- ↑ Halting problem - brilliant.org Viitattu 19.11.2018
- ↑ https://fi.wikipedia.org/wiki/P%3DNP
- ↑ Lance, Fortnow (2013). The Golden Ticket
- ↑ Lance, Fortnow (2013). The Golden Ticket
- ↑ http://www.doc.ic.ac.uk/~shm/Papers/TuringAI_1.pdf
- ↑ http://www.mathcomp.leeds.ac.uk/turing2012/Images/Turing_Statistics.pdf
- ↑ https://www.turing.ac.uk/about-us Viitattu 19.11.2018
- ↑ https://amturing.acm.org/call_for_nominations.cfm Viitattu 19.11.2018