Introduksjon
Siden de aller første dagene med informatikk - et felt kjent for sin metodiske tilnærming til problemløsning - har tilfeldighet spilt en viktig rolle. Det første programmet som ble kjørt på verdens første generelle elektroniske datamaskin brukte tilfeldighet for å simulere kjernefysiske prosesser. Lignende tilnærminger har siden blitt brukt innen astrofysikk, klimavitenskap og økonomi. I alle disse tilfellene, koble til tilfeldige tall på visse trinn i algoritmen hjelper forskere med å forklare usikkerhet om de mange måtene komplekse prosesser kan spille ut på.
Men å legge til tilfeldighet i en algoritme kan også hjelpe deg med å beregne det riktige svaret på utvetydige sant-eller-usant-spørsmål. "Du bare sier 'OK, la meg gi opp, la meg ikke prøve, la meg bare velge noe tilfeldig'," sa Eric Blais, en informatiker ved University of Waterloo. "For alt for mange problemer, ender det opp som en vellykket tilnærming."
La oss si at du vil bestemme om et gitt tall er primtall (bare delelig med 1 og seg selv) eller sammensatt (også delelig med andre heltall). Du kan ganske enkelt prøve å dele det med alle mulige faktorer, men for store tall er denne "brute force"-metoden og andre faktoriseringsalgoritmer uhyggelig trege. Og hvis tallet viser seg å være sammensatt, forteller faktoriseringsalgoritmer deg verdiene til divisorene - mer informasjon enn du ba om. Hvis du bare bryr deg om et talls "primalitet", er det en mer effektiv algoritme?
Det er hvis du bruker tilfeldighet. Grunnideen går tilbake til et resultat fra den franske matematikeren Pierre de Fermat fra 17-tallet, kjent som hans "lite teorem." Fermat vurderte to heltall - kall dem N og x. Han beviste at hvis N er altså et primtall xN - x er alltid et multiplum av N, uavhengig av verdien av x. Tilsvarende hvis xN - x er ikke et multiplum av N, deretter N kan ikke være et primtall. Men det omvendte utsagnet er ikke alltid sant: Hvis xN - x er et mangfold av N, deretter N er vanligvis, men ikke alltid, primtall.
For å gjøre Fermats lille teorem til en primalitetstest, ta bare N som du er interessert i, velg x tilfeldig, og koble de to tallene til xN - x. Hvis resultatet ikke er et multiplum av N, så er du ferdig: Det vet du N er definitivt sammensatt. Hvis resultatet er et multiplum av N, deretter N er sannsynligvis prime. Velg nå en annen tilfeldig x og prøv igjen. I de fleste tilfeller, etter noen dusin forsøk, kan du med nær sikkerhet konkludere med det N er et primtall. "Du gjør dette et lite antall ganger," sa Blais, "og nå er sannsynligheten din for å ha en feil mindre enn sannsynligheten for at en asteroide treffer jorden mellom nå og når du ser på svaret."
Den første primalitet tester ved hjelp av randomiserte algoritmer (basert på forbedringer av Fermats lille teorem) innledet en ny æra. Problem etter problem viste seg å være langt lettere å løse med tilfeldighet enn med ikke-tilfeldige, eller deterministiske, algoritmer. Nøkkelen var å omforme hvert problem som et problem som raskt kunne løses gitt en passende verdi for et tall x, og deretter bevise at omtrent alle x ville gjort. Løsningen fungerer selv om forskerne ikke aner hvordan de skal finne ut om et bestemt valg er bra. Matematikere har spøkt med at denne uvanlige utfordringen er beslektet med finne høy i en høystakk.
Men disse suksessene fikk forskere til å lure på hvorfor tilfeldighet skulle hjelpe med problemer som primalitetstesting, som handler om å finne skjulte, ikke-tilfeldige mønstre. "Det er noe litt paradoksalt med det," sa Rahul Santhanam, en informatiker ved University of Oxford. "Ren tilfeldighet hjelper deg å få kontroll på strukturen som løser problemet."
I 1994 ble dataviterne Noam Nisan og Avi Wigderson hjalp til med å løse denne forvirringen ved å demonstrere at tilfeldighet, selv om det er nyttig, sannsynligvis ikke er nødvendig. De beviste at en av to ting må være sann: Enten har alle problemer som kan løses effektivt ved hjelp av tilfeldighet også raske deterministiske algoritmer, eller så er mange notorisk vanskelige problemer hemmelig enkle. Dataforskere anser den andre muligheten som svært usannsynlig.
Faktisk finner informatikere ofte det lettere å utvikle en deterministisk algoritme ved å starte med en randomisert versjon og deretter "de-randomisere" den. "Når jeg har det, ser jeg plutselig en veldig åpenbar måte å gjøre det deterministisk," sa Eli Upfal, en informatiker ved Brown University. "Men hvis jeg ikke tenkte på det på en randomisert måte som et sannsynlighetsspørsmål, ville jeg sannsynligvis ikke tenkt på det."
Nesten 30 år etter Nisan og Wigdersons landemerkebevis, forblir randomiserte algoritmer like populære som alltid, fordi de-randomisering kan være vanskelig og deterministiske algoritmer ofte bare er effektive i prinsippet. Det var først i 2002 at tre forskere fant en måte å avrandomisere primalitetstesting, og i praksis algoritmen deres er langt tregere enn de beste randomiserte algoritmene. For andre problemer er det vanskelig selv å vite hvor du skal begynne - den best kjente algoritmen har et kylling-og-egg-problem som du bare kan unnslippe gjennom tilfeldighet.
Det er tilfellet for et nylig gjennombrudd innen grafteori. I fjor utviklet tre informatikere en rask algoritme for å finne den korteste veien gjennom en graf – en nett av noder forbundet med linjesegmenter – som fungerer selv når noen segmenter trekker fra den totale banelengden i stedet for å legge til den. Algoritmen deres innebar å transformere grafen til en enklere ved å slette visse segmenter, løse problemet for den forenklede grafen og deretter ta hensyn til de slettede segmentene. De kunne bevise at algoritmen ville løpe raskt hvis ingen korteste vei gikk gjennom for mange slettede segmenter - ellers ville det siste trinnet ta for lang tid.
Men hvordan bestemme hvilke segmenter som skal slettes i utgangspunktet? Det er ikke bare vanskelig å finne det ideelle settet med segmenter deterministisk – det er umulig. Settet avhenger av hvilke veier som er kortest, selve problemet de tre forskerne prøvde å løse. Men selv om de ikke fant det beste settet med segmenter å slette, kunne de bevise at de fleste tilfeldige valg ville være ganske bra, og det var nok til å bryte den selvrefererende løkken. I de sjeldne tilfellene der algoritmen tar et uheldig valg og blir fastlåst i det siste trinnet, kan de bare stoppe og kjøre den igjen.
"Tilfeldighet er i utgangspunktet en måte å sikre at noe er sant om den optimale løsningen uten å vite den optimale løsningen," sa Aaron Bernstein, en av forfatterne av den nye algoritmen.
Tilfeldighet har funnet utallige andre bruksområder innen informatikk, fra kryptografi til spillteori til maskinlæring. Sjansen er stor for at den er kommet for å bli.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. Tilgang her.
- kilde: https://www.quantamagazine.org/how-randomness-improves-algorithms-20230403/
- :er
- ][s
- $OPP
- 1
- 1994
- a
- Om oss
- om det
- AC
- Logg inn
- Regnskap og administrasjon
- Etter
- algoritme
- algoritmer
- Alle
- alltid
- og
- En annen
- besvare
- tilnærming
- tilnærminger
- hensiktsmessig
- ER
- AS
- Asteroide
- At
- forfattere
- tilbake
- basert
- grunnleggende
- I utgangspunktet
- BE
- fordi
- begynne
- være
- BEST
- mellom
- Bit
- fast
- Break
- gjennombrudd
- by
- beregne
- ring
- CAN
- hvilken
- saken
- saker
- viss
- visshet
- utfordre
- sjansene
- valg
- valg
- Velg
- Klima
- komplekse
- datamaskin
- informatikk
- konkluderer
- forvirring
- tilkoblet
- Vurder
- ansett
- kunne
- kryptografi
- Dager
- bestemme
- helt sikkert
- demonstrere
- avhenger
- Bestem
- utvikle
- utviklet
- vanskelig
- ned
- dusin
- hver enkelt
- jord
- enklere
- Økonomi
- effektiv
- effektivt
- enten
- elektronisk
- slutter
- nok
- sikre
- Era
- feil
- Selv
- NOEN GANG
- faktorer
- FAST
- Noen få
- felt
- Finn
- finne
- Først
- Til
- funnet
- Fransk
- fra
- spill
- generell
- få
- Gi
- gitt
- Går
- god
- graf
- håndtere
- Hard
- Ha
- å ha
- hjelpe
- hjulpet
- hjelpe
- hjelper
- her.
- skjult
- trykke
- Hvordan
- Hvordan
- HTTPS
- i
- Tanken
- ideell
- viktig
- umulig
- in
- informasjon
- interessert
- involvert
- IT
- DET ER
- selv
- jpg
- nøkkel
- Vet
- Knowing
- kjent
- landemerke
- stor
- Siste
- I fjor
- læring
- Lengde
- i likhet med
- linje
- lite
- Lang
- Se
- maskin
- maskinlæring
- laget
- gjøre
- GJØR AT
- mange
- math
- metode
- metodisk
- mer
- mer effektivt
- mest
- flere
- Nær
- nødvendig
- Ny
- noder
- kjernekraft
- Antall
- tall
- Åpenbare
- of
- on
- ONE
- optimal
- Annen
- ellers
- Oxford
- bestått
- banen
- mønstre
- plukke
- Pierre
- Sted
- plato
- Platon Data Intelligence
- PlatonData
- Spille
- spilt
- støpsel
- Populær
- mulighet
- mulig
- praksis
- pen
- Prime
- prinsipp
- sannsynligvis
- Problem
- problemløsning
- problemer
- Prosesser
- program
- bevis
- Bevis
- beviste
- Quantamagazin
- spørsmål
- spørsmål
- raskt
- tilfeldig
- randomisert
- tilfeldig
- SJELDEN
- heller
- nylig
- Uansett
- forbli
- forskere
- resultere
- Rolle
- Kjør
- Sa
- Vitenskap
- Forsker
- forskere
- Sekund
- segmenter
- sett
- bør
- siam
- lignende
- forenklet
- ganske enkelt
- siden
- langsom
- liten
- løsning
- LØSE
- løser
- løse
- noen
- noe
- spesifikk
- Start
- Uttalelse
- opphold
- Trinn
- Steps
- Stopp
- struktur
- vellykket
- Ta
- test
- Testing
- Det
- De
- Grafen
- deres
- Dem
- Disse
- ting
- tre
- Gjennom
- ganger
- til
- også
- Totalt
- transformere
- sant
- SVING
- snudde
- Usikkerhet
- universitet
- University of Oxford
- bruke
- vanligvis
- verdi
- Verdier
- versjon
- Vei..
- måter
- web
- om
- hvilken
- med
- uten
- virker
- Verdens
- ville
- år
- år
- Du
- Din
- zephyrnet