Bevezetés
Az algoritmusok mindenütt jelen vannak. Optimalizálják ingázásainkat, feldolgozzák a fizetéseket és koordinálják az internetes forgalom áramlását. Úgy tűnik, minden pontos matematikai kifejezéssel megfogalmazható problémára van egy algoritmus, amely legalább elvileg megoldja.
De ez nem így van – néhány egyszerűnek tűnő probléma soha nem oldható meg algoritmikusan. Az úttörő informatikus, Alan Turing bizonyított az ilyen „kiszámíthatatlan” problémák létezését közel egy évszázaddal ezelőtt, ugyanabban a lapban, ahol megfogalmazta a a számítás matematikai modellje amely elindította a modern számítástechnikát.
Turing ezt az úttörő eredményt egy ellentétes stratégiával bizonyította: olyan problémát határozott meg, amely egyszerűen elutasít minden megoldási kísérletet.
„Kérdezem, mit csinálsz, aztán azt mondom: „Nem, valami mást fogok csinálni” – mondta. Rahul Ilango, a Massachusetts Institute of Technology végzős hallgatója, elméleti számítástechnikát tanul.
Turing stratégiája a diagonalizációnak nevezett matematikai technikán alapult, amelynek előkelő története van. Íme egy leegyszerűsített leírás a bizonyítása mögött meghúzódó logikáról.
Húrelmélet
Az átlósítás egy okos trükkből fakad egy hétköznapi probléma megoldására, amely bitsorokat tartalmaz, amelyek mindegyike 0 vagy 1 lehet. Adott egy listát az ilyen karakterláncokról, amelyek mindegyike egyforma hosszú, generálhat-e olyan új karakterláncot, amely nem szerepel a lista?
A legegyszerűbb stratégia az, hogy minden lehetséges karakterláncot sorra veszünk figyelembe. Tegyük fel, hogy öt karakterlánca van, mindegyik öt bit hosszú. Kezdje a listában a 00000 keresésével. Ha nincs ott, leállíthatja; ha igen, akkor lépj tovább a 00001-re, és ismételd meg a folyamatot. Ez elég egyszerű, de lassú a hosszú karakterláncok hosszú listáihoz.
A diagonalizálás egy alternatív megközelítés, amely apránként építi fel a hiányzó karakterláncot. Kezdje a lista első karakterláncának első bitjével, és fordítsa meg – ez lesz az új karakterlánc első bitje. Ezután fordítsa meg a második karakterlánc második bitjét, és használja azt az új karakterlánc második bitjeként, és ismételje meg, amíg a lista végére nem ér. A megfordított bitek biztosítják, hogy az új karakterlánc legalább egy helyen eltérjen az eredeti listán szereplő összes karakterlánctól. (A húrok listáján átlós vonalat is alkotnak, adva a technikának a nevét.)
A diagonalizálásnak csak egy bitet kell megvizsgálnia a lista minden egyes karakterláncából, így gyakran sokkal gyorsabb, mint más módszerek. De az igazi ereje abban rejlik, hogy milyen jól játszik a végtelennel.
„A húrok most már végtelenek lehetnek; a lista végtelen lehet – még mindig működik” – mondta Ryan Williams, az MIT elméleti informatikusa.
Az első személy, aki kihasználta ezt az erőt, Georg Cantor volt, a halmazelmélet matematikai részterületének megalapítója. 1873-ban Cantor diagonalizálást használt annak bizonyítására, hogy bizonyos végtelenség nagyobb, mint mások. Hat évtizeddel később Turing a diagonalizáció Cantor-féle változatát adaptálta a számításelmélethez, ezzel kifejezetten ellentétes ízt adva annak.
A korlátozó játék
Turing be akarta bizonyítani olyan matematikai problémák létezését, amelyeket egyetlen algoritmus sem tud megoldani – vagyis olyan problémákat, amelyek jól definiált bemenetekkel és kimenetekkel rendelkeznek, de nincs hibabiztos eljárás a bemenetről a kimenetre való eljutáshoz. Ezt a homályos feladatot kezelhetőbbé tette azzal, hogy kizárólag a döntési problémákra összpontosított, ahol a bemenet tetszőleges 0 és 1 karakterlánc lehet, a kimenet pedig 0 vagy 1.
Annak meghatározása, hogy egy szám prím-e (csak 1-gyel és önmagával osztható-e), egy példa a döntési problémára – adott egy számot reprezentáló bemeneti karakterlánc, a helyes kimenet 1, ha a szám prím, és 0, ha nem. Egy másik példa a számítógépes programok szintaktikai hibák (a nyelvtani hibák megfelelője) ellenőrzése. Ott a bemeneti karakterláncok a különböző programok kódját jelentik – minden program ábrázolható így, hiszen így tárolódnak és futnak le a számítógépeken – és a cél az, hogy 1-et adjon ki, ha a kód szintaktikai hibát tartalmaz, és 0-t, ha nem. t.
Egy algoritmus csak akkor old meg egy problémát, ha minden lehetséges bemenethez a megfelelő kimenetet állítja elő – ha csak egyszer is meghiúsul, akkor nem általános célú algoritmus az adott problémára. Általában először meg kell adni a megoldani kívánt problémát, majd meg kell találni egy algoritmust, amely megoldja azt. Turing, a megoldhatatlan problémákat keresve, a feje tetejére állította ezt a logikát – elképzelte az összes lehetséges algoritmus végtelen listáját, és diagonalizálást használt egy olyan makacs probléma felépítésére, amely meghiúsít a listán szereplő összes algoritmust.
Képzeljünk el egy 20 kérdésből álló játékot, ahol a válaszoló ahelyett, hogy egy adott tárgyra gondolna, kitalál egy ürügyet, hogy nemet mondjon minden kérdésre. A játék végére leírtak egy tárgyat, amelyet teljes mértékben a hiányzó tulajdonságok határoznak meg.
A Turing-féle diagonalizációs bizonyítás ennek a játéknak egy olyan változata, ahol a kérdések végigfutnak a lehetséges algoritmusok végtelen listáján, és ismételten felteszik a kérdést: „Meg tudja ez az algoritmus megoldani azt a problémát, amelyet kiszámíthatatlannak szeretnénk bizonyítani?”
„Ez amolyan „végtelen kérdések” – mondta Williams.
A játék megnyeréséhez Turingnek olyan problémát kellett kidolgoznia, ahol a válasz minden algoritmusra nem. Ez azt jelentette, hogy azonosítani kell egy adott bemenetet, amely miatt az első algoritmus rossz választ ad ki, egy másik bemenetet, amely miatt a második sikertelen lesz, és így tovább. Ezeket a speciális bemeneteket egy Kurt Gödel által nemrégiben használt trükk segítségével találta meg bizonyítani hogy az olyan önreferenciális állítások, mint „ez az állítás bizonyíthatatlan”, bajt jelentenek a matematika alapjainak.
A legfontosabb meglátás az volt, hogy minden algoritmus (vagy program) ábrázolható 0-k és 1-ek karakterláncaként. Ez azt jelenti, mint a hibaellenőrző program példájában, hogy egy algoritmus bemenetként veheti egy másik algoritmus kódját. Elvileg egy algoritmus akár a saját kódját is használhatja bemenetként.
Ezzel a betekintéssel egy olyan kiszámíthatatlan problémát definiálhatunk, mint amilyen a Turing bizonyítása: „Adott egy bemeneti karakterlánc, amely egy algoritmus kódját reprezentálja, 1 kimenet, ha az algoritmus 0-t ad ki, amikor a saját kódja a bemenet; ellenkező esetben 0 kimenet.” Minden algoritmus, amely megpróbálja megoldani ezt a problémát, rossz kimenetet produkál legalább egy bemeneten – nevezetesen a saját kódjának megfelelő bemeneten. Ez azt jelenti, hogy ez a perverz probléma semmilyen algoritmussal nem oldható meg.
Amit a tagadás nem tud megtenni
Az informatikusok még nem végeztek az átlósítással. 1965-ben Juris Hartmanis és Richard Stearns adaptálta Turing érvelését bizonyítani hogy nem minden kiszámítható probléma egyenlő – némelyik eleve nehezebb, mint mások. Ez az eredmény elindította a számítási komplexitás elméletének területét, amely a számítási problémák nehézségét vizsgálja.
De a komplexitáselmélet feltárta Turing ellenkező módszerének korlátait is. 1975-ben Theodore Baker, John Gill és Robert Solovay bizonyított hogy a komplexitáselmélet számos nyitott kérdése soha nem oldható meg pusztán diagonalizálással. Ezek közül a legfõbb a híres P versus NP probléma, amely azt kérdezi, hogy minden könnyen ellenõrizhetõ megoldású probléma is könnyen megoldható-e a megfelelõ ötletes algoritmussal.
A diagonalizáció holtfoltjai az absztrakció magas szintjének közvetlen következményei, amely olyan erőssé teszi. Turing bizonyítása nem tartalmazott a gyakorlatban felmerülő kiszámíthatatlan problémát – ehelyett menet közben talált ki egy ilyen problémát. Más diagonalizációs bizonyítások hasonlóan távol állnak a valós világtól, így nem tudnak megoldani olyan kérdéseket, ahol a valós részletek számítanak.
„Távolról kezelik a számításokat” – mondta Williams. "Elképzelek egy srácot, aki vírusokkal küzd, és valamilyen kesztyűtartón keresztül éri el őket."
A diagonalizáció sikertelensége korai jele volt annak, hogy a P versus NP probléma megoldása lenne hosszú utazás. De korlátai ellenére a diagonalizálás továbbra is az egyik kulcsfontosságú eszköz a komplexitáselméletek arzenáljában. 2011-ben a Williams számos más technikával együtt alkalmazta bizonyítani hogy egy bizonyos korlátozott számítási modell nem tudott megoldani néhány rendkívül nehéz problémát – ez az eredmény 25 éven át elkerülte a kutatókat. Nagyon messze volt attól, hogy megoldja a P kontra NP-t, de még mindig jelentős előrelépést jelentett.
Ha be akarod bizonyítani, hogy valami nem lehetséges, ne becsüld alá a nemet mondás erejét.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- PlatoData.Network Vertical Generative Ai. Erősítse meg magát. Hozzáférés itt.
- PlatoAiStream. Web3 Intelligence. Felerősített tudás. Hozzáférés itt.
- PlatoESG. Autóipar / elektromos járművek, Carbon, CleanTech, Energia, Környezet, Nap, Hulladékgazdálkodás. Hozzáférés itt.
- PlatoHealth. Biotechnológiai és klinikai vizsgálatok intelligencia. Hozzáférés itt.
- ChartPrime. Emelje fel kereskedési játékát a ChartPrime segítségével. Hozzáférés itt.
- BlockOffsets. A környezetvédelmi ellentételezési tulajdon korszerűsítése. Hozzáférés itt.
- Forrás: https://www.quantamagazine.org/alan-turing-and-the-power-of-negative-thinking-20230905/
- :van
- :is
- :nem
- :ahol
- ][p
- $ UP
- 1
- 20
- 2011
- 25
- a
- absztrakció
- Fiók
- Augusztus
- Alan
- Alan Turing
- algoritmus
- algoritmikusan
- algoritmusok
- Minden termék
- kizárólag
- Is
- között
- an
- és a
- Másik
- válasz
- bármilyen
- megközelítés
- VANNAK
- érv
- felmerülhet
- fegyverraktár
- AS
- kérdez
- At
- pék
- alapján
- BE
- válik
- mögött
- Bit
- Doboz
- épít
- de
- by
- hívott
- Cambridge
- TUD
- eset
- Század
- bizonyos
- ellenőrzése
- fő
- kód
- bonyolultság
- számítás
- számítógép
- Computer Science
- számítógépek
- Fontolja
- konstrukció
- tartalmaz
- ellentétes
- koordináta
- kijavítására
- Megfelelő
- kézműves
- készítette
- foglalkozó
- évtizedek
- döntés
- meghatározott
- meghatározott
- leírt
- Ellenére
- részletek
- különböző
- Nehézség
- közvetlen
- távolság
- Kiváló
- do
- Nem
- Ennek
- ne
- minden
- Korai
- könnyen
- könnyű
- bármelyik
- végén
- elég
- biztosítására
- teljesen
- egyenlő
- egyaránt
- Egyenértékű
- hiba
- hibák
- Még
- Minden
- megvizsgálni
- példa
- kizárólagosan
- végrehajtott
- létezés
- rendkívüli módon
- FAIL
- nem sikerül
- Kudarc
- híres
- messze
- Far Cry
- gyorsabb
- mező
- Találjon
- vezetéknév
- öt
- Flip
- áramlási
- összpontosítás
- A
- forma
- talált
- Alapok
- alapító
- ból ből
- játék
- Általános rendeltetésű
- generál
- kap
- szerzés
- adott
- Giving
- cél
- megy
- diplomás
- úttörő
- Fickó
- kellett
- fogantyú
- Kemény
- nehezebb
- hám
- Legyen
- he
- fej
- Magas
- övé
- történelem
- Hogyan
- HTTPS
- i
- azonosító
- IEEE
- if
- kép
- képzelt
- in
- jelzés
- Végtelen
- Végtelenség
- bemenet
- bemenet
- Insight
- helyette
- Intézet
- Internet
- önmagában
- vonja
- IT
- ITS
- maga
- János
- éppen
- Kulcs
- kurt
- a későbbiekben
- indított
- legkevésbé
- szint
- fekszik
- mint
- korlátozás
- korlátozások
- határértékek
- vonal
- Lista
- listák
- logika
- Hosszú
- készült
- magazin
- fontos
- KÉSZÍT
- kezelhető
- sok
- Massachusetts
- Massachusetts Institute of Technology
- matematikai
- matematika
- Anyag
- eszközök
- jelentett
- módszer
- mód
- esetleg
- bánja
- hiányzó
- hibákat
- MIT
- modell
- modern
- több
- a legtöbb
- mozog
- sok
- név
- ugyanis
- közel
- szükséges
- igények
- negatív
- soha
- Új
- nem
- Most
- szám
- tárgy
- of
- gyakran
- on
- egyszer
- ONE
- csak
- nyitva
- Optimalizálja
- or
- eredeti
- Más
- Egyéb
- másképp
- mi
- teljesítmény
- saját
- Papír
- különös
- kifizetések
- person
- úttörő
- Hely
- Plató
- Platón adatintelligencia
- PlatoData
- játszik
- lehetséges
- hatalom
- erős
- gyakorlat
- pontos
- Első
- alapelv
- Probléma
- problémák
- eljárás
- folyamat
- gyárt
- termel
- Program
- Programok
- Haladás
- bizonyíték
- igazolások
- Bizonyít
- bizonyított
- tulajdonságok
- Quantamagazine
- kérdés
- Kérdések
- Inkább
- igazi
- való Világ
- nemrég
- maradványok
- ismétlés
- TÖBBSZÖR
- képvisel
- képviselők
- képviselő
- kutatók
- megoldódott
- megoldása
- korlátozott
- eredményez
- Revealed
- Richard
- manipulált
- jobb
- ROBERT
- futás
- Mondott
- azonos
- azt mondják
- mondás
- letapogatás
- Tudomány
- Tudós
- tudósok
- Keresés
- Második
- látszólag
- Úgy tűnik,
- készlet
- Sziám
- hasonló
- Hasonlóképpen
- Egyszerű
- egyszerűsített
- egyszerűen
- óta
- SIX
- lassú
- So
- Megoldások
- SOLVE
- Megoldja
- Megoldása
- néhány
- valami
- speciális
- foltok
- kezdet
- Kezdve
- nyilatkozat
- szárak
- Még mindig
- megáll
- memorizált
- egyértelmű
- Stratégia
- Húr
- diák
- tanulmányok
- Tanul
- ilyen
- szintaxis
- Vesz
- Feladat
- technikák
- Technológia
- feltételek
- mint
- hogy
- A
- Őket
- akkor
- elméleti
- elmélet
- Ott.
- Ezek
- ők
- Gondolkodás
- ezt
- azok
- Keresztül
- keresztben
- nak nek
- együtt
- szerszámok
- forgalom
- baj
- igaz
- megpróbál
- Turing
- FORDULAT
- Fordult
- mindenütt jelenlevő
- -ig
- használ
- használt
- segítségével
- változat
- Ellen
- vírusok
- akar
- kívánatos
- volt
- Út..
- we
- webp
- JÓL
- jól definiált
- Mit
- amikor
- vajon
- ami
- WHO
- lesz
- Williams
- nyer
- val vel
- művek
- világ
- lenne
- Rossz
- év
- még
- te
- A te
- zephyrnet