Introducere
Algoritmii au devenit omniprezenti. Ne optimizează naveta, procesează plățile și coordonează fluxul de trafic pe internet. Se pare că pentru fiecare problemă care poate fi articulată în termeni matematici precisi, există un algoritm care o poate rezolva, cel puțin în principiu.
Dar nu este cazul – unele probleme aparent simple nu pot fi niciodată rezolvate algoritmic. Pionierul informatician Alan Turing s-au dovedit existența unor astfel de probleme „necalculabile” cu aproape un secol în urmă, în aceeași lucrare în care a formulat model matematic de calcul care a lansat informatica modernă.
Turing a demonstrat acest rezultat inovator folosind o strategie contraintuitivă: a definit o problemă care pur și simplu respinge orice încercare de a o rezolva.
„Te întreb ce faci și apoi spun: „Nu, o să fac ceva diferit”, a spus. Rahul Ilango, un student absolvent la Institutul de Tehnologie din Massachusetts care studiază informatica teoretică.
Strategia lui Turing s-a bazat pe o tehnică matematică numită diagonalizare care are o istorie distinsă. Iată o prezentare simplificată a logicii din spatele dovezii sale.
Teoria corzilor
Diagonalizarea provine dintr-un truc inteligent pentru rezolvarea unei probleme banale care implică șiruri de biți, fiecare dintre acestea putând fi fie 0, fie 1. Având în vedere o listă de astfel de șiruri, toate la fel de lungi, puteți genera un șir nou care nu se află pe listă?
Strategia cea mai simplă este să luați în considerare fiecare șir posibil pe rând. Să presupunem că aveți cinci șiruri, fiecare lungime de cinci biți. Începeți prin a scana lista pentru 00000. Dacă nu este acolo, puteți opri; dacă este, treci la 00001 și repeți procesul. Acest lucru este destul de simplu, dar este lent pentru liste lungi de șiruri lungi.
Diagonalizarea este o abordare alternativă care formează un șir lipsă bit cu bit. Începeți cu primul bit al primului șir din listă și inversați-l - acesta va fi primul bit al noului șir. Apoi inversează al doilea bit al celui de-al doilea șir și folosește-l ca al doilea bit al noului șir și repetă până ajungi la sfârșitul listei. Biții pe care îi răsturnați asigură că noul șir diferă de fiecare șir din lista originală în cel puțin un loc. (De asemenea, formează o linie diagonală prin lista de șiruri, dând tehnicii numele.)
Diagonalizarea trebuie să examineze doar un bit din fiecare șir din listă, deci este adesea mult mai rapidă decât alte metode. Dar adevărata sa putere constă în cât de bine se joacă cu infinitul.
„Corzile pot fi acum infinite; lista poate fi infinită – încă funcționează”, a spus Ryan Williams, un informatician teoretic la MIT.
Prima persoană care a valorificat această putere a fost Georg Cantor, fondatorul subdomeniului matematic al teoriei mulțimilor. În 1873, Cantor a folosit diagonalizarea pentru a demonstra că unele infinitate sunt mai mare decât altele. Șase decenii mai târziu, Turing a adaptat versiunea lui Cantor a diagonalizării la teoria calculului, dându-i o aromă distinctă contrară.
Jocul cu limitare
Turing a vrut să demonstreze existența unor probleme matematice pe care niciun algoritm nu le poate rezolva - adică probleme cu intrări și ieșiri bine definite, dar nicio procedură sigură pentru trecerea de la intrare la ieșire. El a făcut această sarcină vagă mai ușor de gestionat concentrându-se exclusiv pe probleme de decizie, unde intrarea poate fi orice șir de 0 și 1, iar rezultatul este fie 0, fie 1.
Determinarea dacă un număr este prim (divizibil doar cu 1 și cu el însuși) este un exemplu de problemă de decizie - având în vedere un șir de intrare care reprezintă un număr, rezultatul corect este 1 dacă numărul este prim și 0 dacă nu este. Un alt exemplu este verificarea programelor de calculator pentru erori de sintaxă (echivalentul greșelilor gramaticale). Acolo, șirurile de intrare reprezintă cod pentru diferite programe - toate programele pot fi reprezentate în acest fel, deoarece așa sunt stocate și executate pe computere - și scopul este de a scoate 1 dacă codul conține o eroare de sintaxă și 0 dacă are. t.
Un algoritm rezolvă o problemă numai dacă produce ieșirea corectă pentru fiecare intrare posibilă - dacă eșuează chiar și o singură dată, nu este un algoritm de uz general pentru acea problemă. De obicei, trebuie să specificați mai întâi problema pe care doriți să o rezolvați și apoi să încercați să găsiți un algoritm care să o rezolve. Turing, în căutarea unor probleme de nerezolvat, a dat peste cap această logică - și-a imaginat o listă infinită de toți algoritmii posibili și a folosit diagonalizarea pentru a construi o problemă obstinată care ar zădărnici fiecare algoritm de pe listă.
Imaginați-vă un joc trucat de 20 de întrebări, în care, în loc să înceapă cu un anumit obiect în minte, cel care răspunde inventează o scuză pentru a spune nu fiecărei întrebări. Până la sfârșitul jocului, au descris un obiect definit în întregime prin calitățile care îi lipsesc.
Dovada de diagonalizare a lui Turing este o versiune a acestui joc în care întrebările parcurg lista infinită de algoritmi posibili, întrebând în mod repetat: „Poate acest algoritm să rezolve problema pe care am dori să o dovedim incalculabilă?”
„Sunt un fel de „întrebări la infinit”, a spus Williams.
Pentru a câștiga jocul, Turing trebuia să creeze o problemă în care răspunsul este nu pentru fiecare algoritm. Asta însemna identificarea unei anumite intrări care face ca primul algoritm să dea un răspuns greșit, o altă intrare care îl face pe al doilea să eșueze și așa mai departe. A găsit acele intrări speciale folosind un truc similar cu cel cu care Kurt Gödel obișnuise recent dovedi că afirmațiile autoreferențiale precum „această afirmație este de nedemonstrat” au creat probleme pentru bazele matematicii.
Perspectiva cheie a fost că fiecare algoritm (sau program) poate fi reprezentat ca un șir de 0 și 1. Asta înseamnă, ca în exemplul programului de verificare a erorilor, că un algoritm poate lua codul altui algoritm ca intrare. În principiu, un algoritm poate lua chiar și propriul cod ca intrare.
Cu această perspectivă, putem defini o problemă necalculabilă precum cea din demonstrația lui Turing: „Dat un șir de intrare care reprezintă codul unui algoritm, ieșiți 1 dacă acel algoritm scoate 0 când propriul cod este intrarea; în caz contrar, ieșire 0.” Fiecare algoritm care încearcă să rezolve această problemă va produce o ieșire greșită pe cel puțin o intrare - și anume, intrarea corespunzătoare propriului cod. Asta înseamnă că această problemă perversă nu poate fi rezolvată de niciun algoritm.
Ceea ce negația nu poate face
Informaticienii nu au terminat încă diagonalizarea. În 1965, Juris Hartmanis și Richard Stearns au adaptat argumentul lui Turing dovedi că nu toate problemele calculabile sunt create egale - unele sunt intrinsec mai dificile decât altele. Acest rezultat a lansat domeniul teoriei complexității computaționale, care studiază dificultatea problemelor computaționale.
Dar teoria complexității a relevat și limitele metodei contrare a lui Turing. În 1975, Theodore Baker, John Gill și Robert Solovay s-au dovedit că multe întrebări deschise în teoria complexității nu pot fi niciodată rezolvate doar prin diagonalizare. Principala dintre acestea este celebra problemă P versus NP, care se întreabă dacă toate problemele cu soluții ușor de verificat sunt, de asemenea, ușor de rezolvat cu algoritmul ingenios potrivit.
Punctele moarte ale diagonalizării sunt o consecință directă a nivelului ridicat de abstractizare care o face atât de puternică. Dovada lui Turing nu a implicat nicio problemă incalculabilă care ar putea apărea în practică - în schimb, a inventat o astfel de problemă din mers. Alte dovezi de diagonalizare sunt la fel de îndepărtate de lumea reală, așa că nu pot rezolva întrebări în care detaliile din lumea reală contează.
„Ei se ocupă de calcul la distanță”, a spus Williams. „Îmi imaginez un tip care se confruntă cu viruși și îi accesează printr-o torpedou.”
Eșecul diagonalizării a fost un indiciu timpuriu că rezolvarea problemei P versus NP ar fi o calatorie lunga. Dar, în ciuda limitărilor sale, diagonalizarea rămâne unul dintre instrumentele cheie în arsenalul teoreticienilor complexității. În 2011, Williams l-a folosit împreună cu o serie de alte tehnici dovedi că un anumit model restrâns de calcul nu ar putea rezolva unele probleme extraordinar de grele - un rezultat care a ocolit cercetătorilor timp de 25 de ani. A fost departe de a rezolva P versus NP, dar a reprezentat totuși un progres major.
Dacă vrei să demonstrezi că ceva nu este posibil, nu subestima puterea de a spune nu.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoData.Network Vertical Generative Ai. Împuterniciți-vă. Accesați Aici.
- PlatoAiStream. Web3 Intelligence. Cunoștințe amplificate. Accesați Aici.
- PlatoESG. Automobile/VE-uri, carbon, CleanTech, Energie, Mediu inconjurator, Solar, Managementul deșeurilor. Accesați Aici.
- PlatoHealth. Biotehnologie și Inteligență pentru studii clinice. Accesați Aici.
- ChartPrime. Crește-ți jocul de tranzacționare cu ChartPrime. Accesați Aici.
- BlockOffsets. Modernizarea proprietății de compensare a mediului. Accesați Aici.
- Sursa: https://www.quantamagazine.org/alan-turing-and-the-power-of-negative-thinking-20230905/
- :are
- :este
- :nu
- :Unde
- ][p
- $UP
- 1
- 20
- 2011
- 25
- a
- abstracție
- Cont
- în urmă
- Alan
- Alan Turing
- Algoritmul
- algoritmic
- algoritmi
- TOATE
- singur
- de asemenea
- printre
- an
- și
- O alta
- răspunde
- Orice
- abordare
- SUNT
- argument
- apărea
- Arsenal
- AS
- cere
- At
- brutar
- bazat
- BE
- deveni
- în spatele
- Pic
- Cutie
- construiește
- dar
- by
- denumit
- Cambridge
- CAN
- caz
- Secol
- sigur
- control
- şef
- cod
- complexitate
- calcul
- calculator
- Informatică
- Calculatoare
- Lua în considerare
- construi
- conține
- contrar
- coordona
- corecta
- Corespunzător
- ambarcaţiunilor
- a creat
- abuzive
- zeci de ani
- decizie
- defini
- definit
- descris
- În ciuda
- detalii
- diferit
- Dificultate
- direcționa
- distanţă
- Distins
- do
- Nu
- face
- Dont
- fiecare
- Devreme
- cu ușurință
- uşor
- oricare
- capăt
- suficient de
- asigura
- în întregime
- egal
- la fel de
- Echivalent
- eroare
- Erori
- Chiar
- Fiecare
- examina
- exemplu
- exclusiv
- executat
- existenţă
- extraordinar
- FAIL
- eșuează
- Eșec
- celebru
- departe
- Far Cry
- mai repede
- camp
- Găsi
- First
- cinci
- Flip
- debit
- concentrându-se
- Pentru
- formă
- găsit
- Fundații
- fondator
- din
- joc
- scop general
- genera
- obține
- obtinerea
- dat
- Oferirea
- scop
- merge
- absolvent
- inovatoare
- Tip
- HAD
- manipula
- Greu
- Mai tare
- valorifica
- Avea
- he
- cap
- Înalt
- lui
- istorie
- Cum
- HTTPS
- i
- identificarea
- IEEE
- if
- imagina
- imaginat
- in
- indicaţie
- Infinit
- Infinit
- intrare
- intrări
- înţelegere
- in schimb
- Institut
- Internet
- intrinsec
- implica
- IT
- ESTE
- în sine
- Ioan
- doar
- Cheie
- kurt
- mai tarziu
- a lansat
- cel mai puțin
- Nivel
- se află
- ca
- limitare
- limitări
- Limitele
- Linie
- Listă
- liste
- logică
- Lung
- făcut
- revistă
- major
- FACE
- flexibil
- multe
- Massachusetts
- Institutul de tehnologie din Massachusetts
- matematic
- matematică
- materie
- mijloace
- a însemnat
- metodă
- Metode
- ar putea
- minte
- dispărut
- greşeli
- MIT
- model
- Modern
- mai mult
- cele mai multe
- muta
- mult
- nume
- și anume
- aproape
- necesar
- nevoilor
- negativ
- nu
- Nou
- Nu.
- acum
- număr
- obiect
- of
- de multe ori
- on
- dată
- ONE
- afară
- deschide
- Optimizați
- or
- original
- Altele
- Altele
- in caz contrar
- al nostru
- producție
- propriu
- Hârtie
- special
- plăți
- persoană
- pionierat
- Loc
- Plato
- Informații despre date Platon
- PlatoData
- joacă
- posibil
- putere
- puternic
- practică
- precis
- Prim
- principiu
- Problemă
- probleme
- procedură
- proces
- produce
- produce
- Program
- Programe
- Progres
- dovadă
- dovezi
- Dovedi
- s-au dovedit
- calităţi
- Quantamagazina
- întrebare
- Întrebări
- mai degraba
- real
- lumea reală
- recent
- rămășițe
- repeta
- REPETAT
- reprezenta
- reprezentate
- reprezentând
- cercetători
- hotărât
- rezolvarea
- limitat
- rezultat
- Dezvăluit
- Richard
- trucat
- dreapta
- ROBERT
- Alerga
- Said
- acelaşi
- Spune
- spunând
- scanare
- Ştiinţă
- Om de stiinta
- oamenii de stiinta
- Caută
- Al doilea
- aparent
- pare
- set
- Siamului
- asemănător
- asemănător
- simplu
- simplificată
- pur şi simplu
- întrucât
- SIX
- încetini
- So
- soluţii
- REZOLVAREA
- rezolvă
- Rezolvarea
- unele
- ceva
- special
- pete
- Începe
- Pornire
- Declarație
- tulpini
- Încă
- Stop
- stocate
- simplu
- Strategie
- Şir
- student
- studiu
- Studiu
- astfel de
- sintaxă
- Lua
- Sarcină
- tehnici de
- Tehnologia
- termeni
- decât
- acea
- Lor
- apoi
- teoretic
- teorie
- Acolo.
- Acestea
- ei
- Gândire
- acest
- aceste
- Prin
- contracara
- la
- împreună
- Unelte
- trafic
- necaz
- adevărat
- încerca
- Turing
- ÎNTORCĂ
- transformat
- omniprezent
- până la
- utilizare
- utilizat
- folosind
- versiune
- Impotriva
- viruși
- vrea
- dorit
- a fost
- Cale..
- we
- WebP
- BINE
- bine definit
- Ce
- cand
- dacă
- care
- OMS
- voi
- Williams
- câştiga
- cu
- fabrică
- lume
- ar
- Greșit
- ani
- încă
- Tu
- Ta
- zephyrnet