Beskrivning
Algoritmer har blivit allestädes närvarande. De optimerar våra pendlingar, behandlar betalningar och samordnar flödet av internettrafik. Det verkar som att för varje problem som kan formuleras i exakta matematiska termer, finns det en algoritm som kan lösa det, åtminstone i princip.
Men så är inte fallet - vissa till synes enkla problem kan aldrig lösas algoritmiskt. Den banbrytande datavetaren Alan Turing visat förekomsten av sådana "oberäkneliga" problem för nästan ett sekel sedan, i samma tidning där han formulerade matematisk beräkningsmodell som lanserade modern datavetenskap.
Turing bevisade detta banbrytande resultat med en kontraintuitiv strategi: Han definierade ett problem som helt enkelt avvisar varje försök att lösa det.
"Jag frågar dig vad du gör, och sedan säger jag, 'Nej, jag ska göra något annat'", sa jag Rahul Ilango, en doktorand vid Massachusetts Institute of Technology som studerar teoretisk datavetenskap.
Turings strategi baserades på en matematisk teknik som kallas diagonalisering som har en framstående historia. Här är en förenklad redogörelse för logiken bakom hans bevis.
Strängteorin
Diagonalisering härrör från ett smart knep för att lösa ett vardagligt problem som involverar strängar av bitar, som var och en kan vara antingen 0 eller 1. Givet en lista med sådana strängar, alla lika långa, kan du skapa en ny sträng som inte finns på lista?
Den enklaste strategin är att överväga varje möjlig sträng i tur och ordning. Anta att du har fem strängar, var och en fem bitar lång. Börja med att skanna listan efter 00000. Om den inte finns där kan du sluta; om det är så går du vidare till 00001 och upprepar processen. Detta är enkelt nog, men det är långsamt för långa listor med långa strängar.
Diagonalisering är ett alternativt tillvägagångssätt som bygger upp en saknad sträng bit för bit. Börja med den första biten av den första strängen på listan och invertera den - det blir den första biten i din nya sträng. Invertera sedan den andra biten i den andra strängen och använd den som den andra biten i den nya strängen, och upprepa tills du kommer till slutet av listan. Bitarna du vänder säkerställer att den nya strängen skiljer sig från varje sträng på originallistan på minst ett ställe. (De bildar också en diagonal linje genom listan över strängar, vilket ger tekniken dess namn.)
Diagonalisering behöver bara undersöka en bit från varje sträng på listan, så det är ofta mycket snabbare än andra metoder. Men dess sanna kraft ligger i hur väl den spelar med oändligheten.
”Strängarna kan nu vara oändliga; listan kan vara oändlig – den fungerar fortfarande”, sa Ryan Williams, en teoretisk datavetare vid MIT.
Den första personen att utnyttja denna kraft var Georg Cantor, grundaren av mängdlärans matematiska delfält. År 1873 använde Cantor diagonalisering för att bevisa att vissa oändligheter är det större än andra. Sex decennier senare anpassade Turing Cantors version av diagonalisering till teorin om beräkning, vilket gav den en distinkt kontrarisk smak.
Begränsningsspelet
Turing ville bevisa existensen av matematiska problem som ingen algoritm kan lösa - det vill säga problem med väldefinierade in- och utdata men ingen idiotsäker procedur för att ta sig från ingång till utdata. Han gjorde denna vaga uppgift mer hanterbar genom att enbart fokusera på beslutsproblem, där input kan vara vilken sträng som helst med 0:or och 1:or och utdata är antingen 0 eller 1.
Att avgöra om ett tal är primtal (endast delbart med 1 och sig själv) är ett exempel på ett beslutsproblem — givet en ingångssträng som representerar ett tal, är den korrekta utmatningen 1 om talet är primtal och 0 om det inte är det. Ett annat exempel är att kontrollera datorprogram för syntaxfel (motsvarigheten till grammatiska misstag). Där representerar inmatningssträngar kod för olika program — alla program kan representeras på detta sätt, eftersom det är så de lagras och exekveras på datorer — och målet är att mata ut 1 om koden innehåller ett syntaxfel och 0 om det gör det. t.
En algoritm löser ett problem endast om den producerar rätt utdata för varje möjlig ingång - om den misslyckas ens en gång, är det inte en allmän algoritm för det problemet. Vanligtvis skulle du först specificera problemet du vill lösa och sedan försöka hitta en algoritm som löser det. Turing, på jakt efter olösliga problem, vände denna logik på huvudet - han föreställde sig en oändlig lista över alla möjliga algoritmer och använde diagonalisering för att konstruera ett envist problem som skulle omintetgöra varje algoritm på listan.
Föreställ dig ett riggat spel med 20 frågor, där svararen hittar på en ursäkt för att tacka nej till varje fråga istället för att börja med ett visst objekt i åtanke. I slutet av spelet har de beskrivit ett objekt som helt och hållet definieras av de egenskaper det saknar.
Turings diagonaliseringsbevis är en version av det här spelet där frågorna löper genom den oändliga listan över möjliga algoritmer, och upprepade gånger frågar sig: "Kan den här algoritmen lösa problemet som vi skulle vilja visa att det inte går att beräkna?"
"Det är typ av "oändlighetsfrågor", sa Williams.
För att vinna spelet behövde Turing skapa ett problem där svaret är nej för varje algoritm. Det innebar att man identifierade en viss ingång som gör att den första algoritmen matar ut fel svar, en annan ingång som gör att den andra misslyckas och så vidare. Han hittade de speciella ingångarna med hjälp av ett trick som liknar ett Kurt Gödel nyligen hade använt sig av bevisa att självrefererande påståenden som "det här påståendet är obevisbart" stavade problem för matematikens grunder.
Den viktigaste insikten var att varje algoritm (eller program) kan representeras som en sträng av 0:or och 1:or. Det betyder, som i exemplet med felkontrollprogrammet, att en algoritm kan ta koden för en annan algoritm som indata. I princip kan en algoritm till och med ta sin egen kod som indata.
Med denna insikt kan vi definiera ett oberäkneligt problem som det i Turings bevis: ”Given en ingångssträng som representerar koden för en algoritm, utgång 1 om den algoritmen matar ut 0 när dess egen kod är ingången; annars, mata ut 0." Varje algoritm som försöker lösa detta problem kommer att producera fel utdata på minst en ingång - nämligen ingången som motsvarar dess egen kod. Det betyder att detta perversa problem inte kan lösas med någon som helst algoritm.
Vad negation inte kan göra
Datavetare var ännu inte klara med diagonalisering. 1965 anpassade Juris Hartmanis och Richard Stearns Turings argument till bevisa att inte alla beräkningsbara problem skapas lika - vissa är i sig svårare än andra. Det resultatet lanserade fältet beräkningskomplexitetsteori, som studerar svårigheten med beräkningsproblem.
Men komplexitetsteorin avslöjade också gränserna för Turings motsatta metod. 1975, Theodore Baker, John Gill och Robert Solovay visat att många öppna frågor inom komplexitetsteorin aldrig kan lösas enbart genom diagonalisering. Främst bland dessa är det berömda P kontra NP-problemet, som frågar om alla problem med lätt kontrollerbara lösningar också är lätta att lösa med rätt genialisk algoritm.
Diagonaliseringens blinda fläckar är en direkt följd av den höga abstraktionsnivån som gör den så kraftfull. Turings bevis involverade inte några oberäkningsbara problem som kan uppstå i praktiken - istället kom det fram ett sådant problem i farten. Andra diagonaliseringsbevis är på liknande sätt distanserade från den verkliga världen, så de kan inte lösa frågor där verkliga detaljer spelar roll.
"De hanterar beräkningar på avstånd," sa Williams. "Jag föreställer mig en kille som har att göra med virus och kommer åt dem genom något handskfack."
Misslyckandet med diagonalisering var en tidig indikation på att lösningen av P kontra NP-problemet skulle vara en lång resa. Men trots dess begränsningar förblir diagonalisering ett av nyckelverktygen i komplexitetsteoretikers arsenal. 2011 använde Williams den tillsammans med en mängd andra tekniker för att bevisa att en viss begränsad beräkningsmodell inte kunde lösa några utomordentligt svåra problem - ett resultat som hade gäckat forskare i 25 år. Det var långt ifrån att lösa P kontra NP, men det representerade fortfarande stora framsteg.
Om du vill bevisa att något inte är möjligt, underskatta inte kraften i att bara säga nej.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Fordon / elbilar, Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- ChartPrime. Höj ditt handelsspel med ChartPrime. Tillgång här.
- BlockOffsets. Modernisera miljökompensation ägande. Tillgång här.
- Källa: https://www.quantamagazine.org/alan-turing-and-the-power-of-negative-thinking-20230905/
- : har
- :är
- :inte
- :var
- ][s
- $UPP
- 1
- 20
- 2011
- 25
- a
- abstraktion
- Konto
- sedan
- Alan
- Alan Turing
- algoritm
- algoritm
- algoritmer
- Alla
- ensam
- också
- bland
- an
- och
- Annan
- svara
- vilken som helst
- tillvägagångssätt
- ÄR
- Argumentet
- stiga upp
- Arsenal
- AS
- be
- At
- bagare
- baserat
- BE
- blir
- bakom
- Bit
- Box
- bygger
- men
- by
- kallas
- cambridge
- KAN
- Vid
- Århundrade
- vissa
- kontroll
- chef
- koda
- Komplexiteten
- beräkning
- dator
- Datavetenskap
- datorer
- Tänk
- konstruera
- innehåller
- motsats
- samordna
- korrekt
- Motsvarande
- farkoster
- skapas
- som handlar om
- årtionden
- Beslutet
- definiera
- definierade
- beskriven
- Trots
- detaljer
- olika
- Svårighet
- rikta
- avstånd
- Distingerad
- do
- inte
- gör
- inte
- varje
- Tidig
- lätt
- lätt
- antingen
- änden
- tillräckligt
- säkerställa
- helt
- lika
- lika
- Motsvarande
- fel
- fel
- Även
- Varje
- undersöka
- exempel
- uteslutande
- exekveras
- Förekomsten
- utomordentligt
- MISSLYCKAS
- misslyckas
- Misslyckande
- kända
- långt
- Far Cry
- snabbare
- fält
- hitta
- Förnamn
- fem
- Flip
- flöda
- fokusering
- För
- formen
- hittade
- Stiftelser
- grundare
- från
- lek
- generell mening
- generera
- skaffa sig
- få
- ges
- Ge
- Målet
- kommer
- uppgradera
- banbrytande
- Guy
- hade
- hantera
- Hård
- hårdare
- sele
- Har
- he
- huvud
- Hög
- hans
- historia
- Hur ser din drömresa ut
- HTTPS
- i
- identifiera
- IEEE
- if
- bild
- inbillade
- in
- indikation
- Oändlig
- Oändlighet
- ingång
- ingångar
- insikt
- istället
- Institute
- Internet
- i sig själv
- engagera
- IT
- DESS
- sig
- John
- bara
- Nyckel
- kurt
- senare
- lanserades
- t minst
- Nivå
- ligger
- tycka om
- begränsning
- begränsningar
- gränser
- linje
- Lista
- listor
- Logiken
- Lång
- gjord
- magasinet
- större
- GÖR
- hanterlig
- många
- massachusetts
- Massachusetts Institute of Technology
- matematisk
- matematik
- Materia
- betyder
- menas
- metod
- metoder
- kanske
- emot
- saknas
- misstag
- MIT
- modell
- Modern Konst
- mer
- mest
- flytta
- mycket
- namn
- nämligen
- nästan
- behövs
- behov
- negativ
- aldrig
- Nya
- Nej
- nu
- antal
- objektet
- of
- Ofta
- on
- gång
- ONE
- endast
- öppet
- Optimera
- or
- ursprungliga
- Övriga
- Övrigt
- annat
- vår
- produktion
- egen
- Papper
- särskilt
- betalningar
- personen
- Banbrytande
- Plats
- plato
- Platon Data Intelligence
- PlatonData
- spelar
- möjlig
- kraft
- den mäktigaste
- praktiken
- exakt
- Prime
- Principen
- Problem
- problem
- förfaranden
- process
- producera
- producerar
- Program
- Program
- Framsteg
- bevis
- korrektur
- Bevisa
- visat
- kvaliteter
- Quantamagazin
- fråga
- frågor
- snarare
- verklig
- verkliga världen
- nyligen
- resterna
- upprepa
- UPPREPAT
- representerar
- representerade
- representerar
- forskare
- löst
- lösa
- begränsad
- resultera
- avslöjade
- Richard
- riggade
- höger
- ROBERT
- Körning
- Nämnda
- Samma
- säga
- säger
- scanning
- Vetenskap
- Forskare
- vetenskapsmän
- Sök
- Andra
- till synes
- verkar
- in
- siam
- liknande
- Liknande
- Enkelt
- förenklade
- helt enkelt
- eftersom
- SEX
- långsam
- So
- Lösningar
- LÖSA
- Löser
- Lösa
- några
- något
- speciell
- fläckar
- starta
- Starta
- .
- stjälkar
- Fortfarande
- Sluta
- lagras
- okomplicerad
- Strategi
- Sträng
- student
- studier
- Studerar
- sådana
- syntax
- Ta
- uppgift
- tekniker
- Teknologi
- villkor
- än
- den där
- Smakämnen
- Dem
- sedan
- teoretiska
- Teorin
- Där.
- Dessa
- de
- Tänkande
- detta
- de
- Genom
- omintetgöra
- till
- tillsammans
- verktyg
- trafik
- problem
- sann
- prova
- turing
- SVÄNG
- vände
- allmänt förekommande
- tills
- användning
- Begagnade
- med hjälp av
- version
- Kontra
- virus
- vill
- ville
- var
- Sätt..
- we
- webp
- VÄL
- väldefinierad
- Vad
- när
- om
- som
- VEM
- kommer
- Williams
- vinna
- med
- fungerar
- världen
- skulle
- Fel
- år
- ännu
- Om er
- Din
- zephyrnet