esittely
Algoritmeista on tullut kaikkialla. He optimoivat työmatkamme, käsittelevät maksuja ja koordinoivat Internet-liikenteen virtausta. Näyttää siltä, että jokaiselle täsmällisesti matemaattisesti ilmaistulle ongelmalle on olemassa algoritmi, joka voi ratkaista sen, ainakin periaatteessa.
Mutta näin ei ole – joitain näennäisesti yksinkertaisia ongelmia ei voida koskaan ratkaista algoritmisesti. Uraauurtava tietotekniikan tutkija Alan Turing osoittautui tällaisten "laskemattomien" ongelmien olemassaolosta lähes sata vuotta sitten, samassa paperissa, jossa hän muotoili laskennan matemaattinen malli joka käynnisti modernin tietojenkäsittelytieteen.
Turing osoitti tämän uraauurtavan tuloksen käyttämällä intuitiivista strategiaa: Hän määritteli ongelman, joka yksinkertaisesti hylkää kaikki yritykset ratkaista se.
"Kysyn sinulta mitä teet, ja sitten sanon: 'Ei, aion tehdä jotain erilaista'", sanoi Rahul Ilango, Massachusetts Institute of Technologyn jatko-opiskelija, joka opiskelee tietojenkäsittelyteoriaa.
Turingin strategia perustui matemaattiseen tekniikkaan, jota kutsutaan diagonalisaatioksi ja jolla on ansiokas historia. Tässä on yksinkertaistettu kuvaus hänen todisteensa takana olevasta logiikasta.
Säieteoria
Diagonalisointi johtuu näppärästä tempusta, jolla ratkaistaan arkipäiväinen ongelma, joka sisältää bittijonoja, joista jokainen voi olla joko 0 tai 1. Voitko luoda uuden merkkijonon, joka ei ole bittijonossa, kun otetaan huomioon luettelo tällaisista merkkijonoista, jotka ovat kaikki yhtä pitkiä. lista?
Yksinkertaisin strategia on harkita jokaista mahdollista merkkijonoa vuorotellen. Oletetaan, että sinulla on viisi merkkijonoa, joista jokainen on viisi bittiä pitkä. Aloita etsimällä luettelosta numero 00000. Jos se ei ole siellä, voit lopettaa; jos on, siirryt numeroon 00001 ja toistat prosessin. Tämä on tarpeeksi yksinkertaista, mutta se on hidasta pitkille pitkien merkkijonojen luetteloille.
Diagonalisointi on vaihtoehtoinen lähestymistapa, joka rakentaa puuttuvan merkkijonon pala kerrallaan. Aloita luettelon ensimmäisen merkkijonon ensimmäisestä bitistä ja käännä se – se on uuden merkkijonosi ensimmäinen bitti. Käännä sitten toisen merkkijonon toinen bitti käänteiseksi ja käytä sitä uuden merkkijonon toisena bittinä ja toista, kunnes pääset luettelon loppuun. Kääntämäsi bitit varmistavat, että uusi merkkijono eroaa jokaisesta alkuperäisen luettelon merkkijonosta ainakin yhdessä paikassa. (Ne muodostavat myös diagonaalisen viivan merkkijonoluettelon läpi ja antavat tekniikalle sen nimen.)
Diagonalisoinnin tarvitsee tutkia vain yksi bitti kustakin listan merkkijonosta, joten se on usein paljon nopeampi kuin muut menetelmät. Mutta sen todellinen voima piilee siinä, kuinka hyvin se leikkii äärettömyyden kanssa.
”Jot voivat nyt olla äärettömät; lista voi olla loputon – se toimii edelleen”, sanoi Ryan Williams, teoreettinen tietojenkäsittelytieteilijä MIT:ssä.
Ensimmäinen henkilö, joka valjastti tämän voiman, oli joukkoteorian matemaattisen osakentän perustaja Georg Cantor. Vuonna 1873 Cantor käytti diagonalisointia todistaakseen, että jotkut äärettömät ovat suurempia kuin muut. Kuusi vuosikymmentä myöhemmin Turing mukautti Cantorin diagonalisoinnin version laskentateoriaan ja antoi sille selvästi ristiriitaisen maun.
Rajoituspeli
Turing halusi todistaa matemaattisten ongelmien olemassaolon, joita mikään algoritmi ei pysty ratkaisemaan – toisin sanoen ongelmia, joissa tulot ja lähdöt ovat hyvin määriteltyjä, mutta ei idioottivarmaa menettelyä syötteestä ulostuloon siirtymiseksi. Hän teki tästä epämääräisestä tehtävästä hallittavamman keskittymällä yksinomaan päätösongelmiin, joissa syöte voi olla mikä tahansa merkkijono 0 ja 1 ja tulos on joko 0 tai 1.
Sen määrittäminen, onko luku alkuluku (jaollinen vain 1:llä ja itsellään) on yksi esimerkki päätösongelmasta – jos lukua edustava syötemerkkijono on annettu, oikea tulos on 1, jos luku on alkuluku ja 0, jos se ei ole. Toinen esimerkki on tietokoneohjelmien tarkistaminen syntaksivirheiden varalta (vastaa kielioppivirheitä). Siellä syötemerkkijonot edustavat eri ohjelmien koodia – kaikki ohjelmat voidaan esittää tällä tavalla, koska niin ne tallennetaan ja suoritetaan tietokoneissa – ja tavoitteena on tulostaa 1, jos koodi sisältää syntaksivirheen ja 0, jos se ei sisällä. t.
Algoritmi ratkaisee ongelman vain, jos se tuottaa oikean lähdön jokaiselle mahdolliselle syötteelle – jos se epäonnistuu edes kerran, se ei ole yleiskäyttöinen algoritmi kyseiselle ongelmalle. Tavallisesti määrität ensin ongelman, jonka haluat ratkaista, ja yrität sitten löytää algoritmin, joka ratkaisee sen. Turing, etsiessään ratkaisemattomia ongelmia, käänsi tämän logiikan päälaelleen – hän kuvitteli äärettömän luettelon kaikista mahdollisista algoritmeista ja käytti diagonalisointia rakentaakseen itsepäisen ongelman, joka tekisi tyhjäksi jokaisen luettelon algoritmin.
Kuvittele 20 kysymyksestä koostuva peli, jossa vastaaja keksii tekosyyn sanoa ei jokaiselle kysymykselle sen sijaan, että aloittaisi tietystä kohteesta. Pelin loppuun mennessä he ovat kuvanneet esineen, joka on määritelty kokonaan sen puuttuvien ominaisuuksien perusteella.
Turingin diagonalisointitodistus on versio tästä pelistä, jossa kysymykset kulkevat läpi loputtoman luettelon mahdollisista algoritmeista kysyen toistuvasti: "Voiko tämä algoritmi ratkaista ongelman, jonka haluamme todistaa laskemattomaksi?"
"Se on eräänlaisia "äärettömyyden kysymyksiä", Williams sanoi.
Pelin voittamiseksi Turingin täytyi luoda ongelma, jossa vastaus on ei jokaiselle algoritmille. Tämä tarkoitti sellaisen syötteen tunnistamista, joka saa ensimmäisen algoritmin tulostamaan väärän vastauksen, toisen syötteen, joka saa toisen epäonnistumaan, ja niin edelleen. Hän löysi nämä erityiset syötteet käyttämällä temppua, joka on samanlainen kuin Kurt Gödel, jota äskettäin käytti todistaa että itseään viittaavat väitteet, kuten "tämä väite on todistamaton", merkitsivät ongelmia matematiikan perusteille.
Keskeinen oivallus oli, että jokainen algoritmi (tai ohjelma) voidaan esittää 0:n ja 1:n merkkijonona. Tämä tarkoittaa, kuten virheentarkistusohjelman esimerkissä, että algoritmi voi ottaa syötteeksi toisen algoritmin koodin. Algoritmi voi periaatteessa ottaa syötteeksi jopa oman koodinsa.
Tämän näkemyksen avulla voimme määritellä laskemattoman ongelman, kuten Turingin todistuksessa: "Annetaan syötemerkkijono, joka edustaa algoritmin koodia, tulos 1, jos algoritmi tuottaa 0, kun sen oma koodi on syöte; muussa tapauksessa lähtö 0." Jokainen algoritmi, joka yrittää ratkaista tämän ongelman, tuottaa väärän lähdön ainakin yhdelle tulolle – nimittäin omaa koodiaan vastaavalle tulolle. Tämä tarkoittaa, että tätä perverssiä ongelmaa ei voida ratkaista millään algoritmilla.
Mitä negatiivisuus ei voi tehdä
Tietojenkäsittelytieteilijät eivät vielä olleet läpi diagonalisoinnissa. Vuonna 1965 Juris Hartmanis ja Richard Stearns mukauttivat Turingin argumentin todistaa että kaikki laskettavat ongelmat eivät ole samanarvoisia - jotkut ovat luonnostaan vaikeampia kuin toiset. Tämä tulos käynnisti laskennallisen monimutkaisuusteorian kentän, joka tutkii laskennallisten ongelmien vaikeutta.
Mutta monimutkaisuusteoria paljasti myös Turingin päinvastaisen menetelmän rajat. Vuonna 1975 Theodore Baker, John Gill ja Robert Solovay osoittautui että monia avoimia kysymyksiä kompleksisuusteoriassa ei voida koskaan ratkaista pelkällä diagonalisoinnilla. Näistä tärkein on kuuluisa P versus NP -tehtävä, joka kysyy, ovatko kaikki helposti tarkistettavissa olevien ratkaisujen ongelmat myös helppoja ratkaista oikealla nerokkaalla algoritmilla.
Diagonalisoinnin kuolleet pisteet ovat suora seuraus korkeasta abstraktiosta, joka tekee siitä niin voimakkaan. Turingin todistus ei sisältänyt mitään laskennallista ongelmaa, joka voisi syntyä käytännössä – sen sijaan se keksi sellaisen ongelman lennossa. Muut diagonalisointitodistukset ovat yhtä kaukana todellisesta maailmasta, joten ne eivät pysty ratkaisemaan kysymyksiä, joissa tosielämän yksityiskohdilla on merkitystä.
"He käsittelevät laskennan etäältä", Williams sanoi. "Kuvittelen kaverin, joka käsittelee viruksia ja pääsee käsiksi niihin jonkin hansikaslokeron kautta."
Diagonalisoinnin epäonnistuminen oli varhainen osoitus siitä, että P vs. NP -ongelman ratkaiseminen olisi pitkä matka. Mutta rajoituksistaan huolimatta diagonalisointi on edelleen yksi monimutkaisuusteoreetikkojen arsenaalin tärkeimmistä työkaluista. Vuonna 2011 Williams käytti sitä yhdessä monien muiden tekniikoiden kanssa todistaa että tietty rajoitettu laskentamalli ei pystynyt ratkaisemaan joitain poikkeuksellisen vaikeita ongelmia – tulos, joka oli ollut tutkijoilta poissa 25 vuoden ajan. Se oli kaukana P:n ja NP:n ratkaisemisesta, mutta se edusti silti suurta edistystä.
Jos haluat todistaa, että jokin ei ole mahdollista, älä aliarvioi pelkän ei sanomisen voimaa.
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- PlatoData.Network Vertical Generatiivinen Ai. Vahvista itseäsi. Pääsy tästä.
- PlatoAiStream. Web3 Intelligence. Tietoa laajennettu. Pääsy tästä.
- PlatoESG. Autot / sähköautot, hiili, CleanTech, energia, ympäristö, Aurinko, Jätehuolto. Pääsy tästä.
- PlatonHealth. Biotekniikan ja kliinisten kokeiden älykkyys. Pääsy tästä.
- ChartPrime. Nosta kaupankäyntipeliäsi ChartPrimen avulla. Pääsy tästä.
- BlockOffsets. Ympäristövastuun omistuksen nykyaikaistaminen. Pääsy tästä.
- Lähde: https://www.quantamagazine.org/alan-turing-and-the-power-of-negative-thinking-20230905/
- :on
- :On
- :ei
- :missä
- ][s
- $ YLÖS
- 1
- 20
- 2011
- 25
- a
- abstraktio
- Tili
- sitten
- Alan
- Alan Turing
- algoritmi
- algoritmien
- algoritmit
- Kaikki
- yksin
- Myös
- keskuudessa
- an
- ja
- Toinen
- vastaus
- Kaikki
- lähestymistapa
- OVAT
- perustelu
- nousta
- Arsenal
- AS
- kysyä
- At
- leipuri
- perustua
- BE
- tulevat
- takana
- Bitti
- Laatikko
- rakentaa
- mutta
- by
- nimeltään
- Cambridge
- CAN
- tapaus
- Century
- tietty
- tarkkailun
- päällikkö
- koodi
- monimutkaisuus
- laskeminen
- tietokone
- Tietojenkäsittelyoppi
- tietokoneet
- Harkita
- rakentaa
- sisältää
- päinvastainen
- koordinoida
- korjata
- vastaava
- veneet
- luotu
- tekemisissä
- vuosikymmeninä
- päätös
- määritellä
- määritelty
- on kuvattu
- Huolimatta
- yksityiskohdat
- eri
- vaikeus
- ohjata
- etäisyys
- hienostunut
- do
- ei
- tekee
- Dont
- kukin
- Varhainen
- helposti
- helppo
- myöskään
- loppu
- tarpeeksi
- varmistaa
- täysin
- yhtäläinen
- yhtä
- Vastaava
- virhe
- virheet
- Jopa
- Joka
- tutkia
- esimerkki
- yksinomaan
- teloitettiin
- olemassaolo
- erittäin
- FAIL
- epäonnistuu
- Epäonnistuminen
- kuuluisa
- paljon
- Far Cry
- nopeampi
- ala
- Löytää
- Etunimi
- viisi
- Kääntää
- virtaus
- tarkennus
- varten
- muoto
- löytyi
- Perustukset
- perustaja
- alkaen
- peli
- yleinen tarkoitus
- tuottaa
- saada
- saada
- tietty
- Antaminen
- tavoite
- menee
- valmistua
- uraauurtava
- Kaveri
- HAD
- kahva
- Kova
- kovemmin
- valjaat
- Olla
- he
- pää
- Korkea
- hänen
- historia
- Miten
- HTTPS
- i
- tunnistaminen
- IEEE
- if
- kuvitella
- kuvitellut
- in
- osoitus
- Ääretön
- äärettömyys
- panos
- tuloa
- tietoa
- sen sijaan
- Instituutti
- Internet
- itsessään
- aiheuttaa
- IT
- SEN
- itse
- Johannes
- vain
- avain
- Kurt
- myöhemmin
- käynnistettiin
- vähiten
- Taso
- piilee
- pitää
- rajoitus
- rajoitukset
- rajat
- linja
- Lista
- Listat
- logiikka
- Pitkät
- tehty
- aikakauslehti
- merkittävä
- TEE
- hallittavissa
- monet
- Massachusetts
- Massachusettsin Teknologian Instituutti
- matemaattinen
- matematiikka
- asia
- välineet
- tarkoitti
- menetelmä
- menetelmät
- ehkä
- mielessä
- puuttuva
- virheitä
- MIT
- malli
- Moderni
- lisää
- eniten
- liikkua
- paljon
- nimi
- nimittäin
- lähes
- tarvitaan
- tarpeet
- negatiivinen
- ei ikinä
- Uusi
- Nro
- nyt
- numero
- objekti
- of
- usein
- on
- kerran
- ONE
- vain
- avata
- Optimoida
- or
- alkuperäinen
- Muut
- Muuta
- muuten
- meidän
- ulostulo
- oma
- Paperi
- erityinen
- maksut
- henkilö
- uraauurtava
- Paikka
- Platon
- Platonin tietotieto
- PlatonData
- soittaa
- mahdollinen
- teho
- voimakas
- harjoitusta.
- tarkka
- tärkein
- periaate
- Ongelma
- ongelmia
- menettelyt
- prosessi
- tuottaa
- tuottaa
- Ohjelma
- Ohjelmat
- Edistyminen
- todiste
- todisteet
- todistaa
- osoittautui
- ominaisuuksia
- Kvantamagatsiini
- kysymys
- kysymykset
- pikemminkin
- todellinen
- todellinen maailma
- äskettäin
- jäännökset
- toistaa
- TOISTUVASTI
- edustaa
- edustettuina
- edustavat
- Tutkijat
- ratkaistu
- ratkaiseminen
- rajoitettu
- johtua
- Revealed
- Richard
- väärennetty
- oikein
- ROBERT
- ajaa
- Said
- sama
- sanoa
- sanonta
- skannaus
- tiede
- Tiedemies
- tutkijat
- Haku
- Toinen
- näennäisesti
- näyttää
- setti
- Siam
- samankaltainen
- samalla lailla
- Yksinkertainen
- yksinkertaistettu
- yksinkertaisesti
- koska
- SIX
- hidas
- So
- Ratkaisumme
- SOLVE
- Ratkaisee
- Solving
- jonkin verran
- jotain
- erityinen
- spots
- Alkaa
- Aloita
- Lausunto
- varret
- Yhä
- stop
- tallennettu
- suora
- Strategia
- jono
- opiskelija
- opinnot
- Opiskelu
- niin
- syntaksi
- ottaa
- Tehtävä
- tekniikat
- Elektroniikka
- ehdot
- kuin
- että
- -
- Niitä
- sitten
- teoreettinen
- teoria
- Siellä.
- Nämä
- ne
- Ajattelu
- tätä
- ne
- Kautta
- estää
- että
- yhdessä
- työkalut
- liikenne
- ongelmia
- totta
- yrittää
- Turing
- VUORO
- Sorvatut
- kaikkialla läsnä oleva
- asti
- käyttää
- käytetty
- käyttämällä
- versio
- Vastaan
- virukset
- haluta
- halusi
- oli
- Tapa..
- we
- WebP
- HYVIN
- tarkkarajainen
- Mitä
- kun
- onko
- joka
- KUKA
- tulee
- Williams
- voittaa
- with
- toimii
- maailman-
- olisi
- Väärä
- vuotta
- vielä
- Voit
- Sinun
- zephyrnet