Beskrivning
Sedan de allra första dagarna av datavetenskap - ett område känt för sitt metodiska förhållningssätt till problemlösning - har slumpmässighet spelat en viktig roll. Det första programmet som kördes på världens första allmänna elektroniska dator använde slumpmässighet för att simulera kärnprocesser. Liknande tillvägagångssätt har sedan dess använts inom astrofysik, klimatvetenskap och ekonomi. I alla dessa fall, koppla in slumpmässiga siffror vid vissa steg i algoritmen hjälper forskare att redogöra för osäkerhet om de många sätt som komplexa processer kan spela ut.
Men att lägga till slumpmässighet i en algoritm kan också hjälpa dig att beräkna rätt svar på otvetydiga sant-eller-falskt frågor. "Du säger bara 'OK, låt mig ge upp, låt mig inte försöka, låt mig bara välja något slumpmässigt'", sa Eric Blais, en datavetare vid University of Waterloo. "För alldeles för många problem blir det ett framgångsrikt tillvägagångssätt."
Låt oss säga att du vill avgöra om ett givet tal är primtal (endast delbart med 1 och sig själv) eller sammansatt (även delbart med andra heltal). Du kan helt enkelt försöka dividera det med alla möjliga faktorer, men för stora siffror är denna "brute force"-metod och andra factoringalgoritmer oerhört långsamma. Och om siffran visar sig vara sammansatt, berättar factoringalgoritmer dig värdena för dess divisorer - mer information än du bad om. Om du bara bryr dig om ett nummers "primalitet", finns det en mer effektiv algoritm?
Det finns om du använder slumpmässighet. Grundidén går tillbaka till ett resultat från den franske 17-talsmatematikern Pierre de Fermat, känd som hans "litet teorem.” Fermat ansåg två heltal — kalla dem N och x. Han bevisade att om N är alltså ett primtal xN - x är alltid en multipel av N, oavsett värdet på x. På motsvarande sätt, om xN - x är inte en multipel av Noch sedan N kan inte vara ett primtal. Men det omvända påståendet är inte alltid sant: Om xN - x är en multipel av Noch sedan N är vanligtvis men inte alltid prime.
För att förvandla Fermats lilla teorem till ett primathetstest, ta bara N som du är intresserad av, välj x slumpmässigt och koppla in de två siffrorna xN - x. Om resultatet inte är en multipel av N, då är du klar: Det vet du N är definitivt sammansatt. Om resultatet är en multipel av Noch sedan N är förmodligen prime. Välj nu en annan slumpmässig x och försök igen. I de flesta fall, efter några dussin försök, kan du med nästan säkerhet dra slutsatsen att N är ett primtal. "Du gör det här ett litet antal gånger," sa Blais, "och på något sätt nu är din sannolikhet att ha ett fel mindre än sannolikheten för att en asteroid träffar jorden mellan nu och när du tittar på svaret."
Den första primitet tester med hjälp av randomiserade algoritmer (baserade på förbättringar av Fermats lilla teorem) inledde en ny era. Problem efter problem visade sig vara mycket lättare att lösa med slumpmässighet än med icke-slumpmässiga, eller deterministiska, algoritmer. Nyckeln var att omformulera varje problem som ett som snabbt kunde lösas med ett lämpligt värde för något nummer x, och sedan bevisa att nästan vilken som helst x skulle göra. Lösningen fungerar även om forskare inte har någon aning om hur de ska avgöra om något specifikt val är bra. Matematiker har skämtat om att denna ovanliga utmaning är besläktad med hitta hö i en höstack.
Men dessa framgångar fick forskare att undra varför slumpmässighet skulle hjälpa till med problem som primalitetstestning, som handlar om att hitta dolda, icke-slumpmässiga mönster. "Det är något lite paradoxalt med det," sa Rahul Santhanam, en datavetare vid University of Oxford. "Ren slumpmässighet hjälper dig att få grepp om strukturen som löser problemet."
1994 kom datavetarna Noam Nisan och Avi Wigderson hjälpte till att lösa denna förvirring genom att visa att slumpmässighet, även om den är användbar, förmodligen inte är nödvändig. De visat att en av två saker måste vara sann: Antingen har alla problem som kan lösas effektivt med hjälp av slumpmässighet också snabba deterministiska algoritmer, eller så är många notoriskt svåra problem i hemlighet enkla. Datavetare anser att den andra möjligheten är mycket osannolik.
Faktum är att datavetare ofta tycker att det är lättare att utveckla en deterministisk algoritm genom att börja med en randomiserad version och sedan "avrandomisera" den. "När jag har det ser jag plötsligt ett mycket uppenbart sätt att göra det deterministiskt," sa Eli Upfal, en datavetare vid Brown University. "Men om jag inte tänkte på det på ett randomiserat sätt som en sannolikhetsfråga, skulle jag förmodligen inte tänka på det."
Nästan 30 år efter Nisan och Wigdersons landmärkesbevis är randomiserade algoritmer lika populära som någonsin, eftersom avrandomisering kan vara knepigt och deterministiska algoritmer ofta är effektiva bara i princip. Det var inte förrän 2002 som tre forskare hittade ett sätt att avrandomisera primatitetstestning, och i praktiken deras algoritm är mycket långsammare än de bästa randomiserade algoritmerna. För andra problem är det svårt att ens veta var man ska börja - den mest kända algoritmen har ett kyckling-och-ägg-problem som du bara kan fly genom slumpmässighet.
Det är fallet för ett nyligen genomfört genombrott inom grafteorin. Förra året utvecklades tre datavetare en snabb algoritm för att hitta den kortaste vägen genom en graf – en väv av noder sammankopplade med linjesegment – som fungerar även när vissa segment subtraherar från den totala väglängden istället för att lägga till den. Deras algoritm innebar att omvandla grafen till en enklare genom att radera vissa segment, lösa problemet för den förenklade grafen och sedan redovisa de raderade segmenten. De skulle kunna bevisa att algoritmen skulle köras snabbt om ingen kortaste väg passerade genom för många raderade segment - annars skulle det sista steget ta för lång tid.
Men hur bestämmer man vilka segment som ska tas bort i första hand? Det är inte bara svårt att hitta den ideala uppsättningen av segment deterministiskt – det är omöjligt. Uppsättningen beror på vilka vägar som är kortast, själva problemet som de tre forskarna försökte lösa. Men även om de inte kunde hitta den bästa uppsättningen av segment att radera, kunde de bevisa att de flesta slumpmässiga val skulle vara ganska bra, och det räckte för att bryta den självrefererande loopen. I de sällsynta fall där algoritmen gör ett olyckligt val och fastnar i det sista steget, kan de bara stanna och köra den igen.
"Slumpmässighet är i grunden ett sätt att säkerställa att något är sant om den optimala lösningen utan att veta den optimala lösningen," sa Aaron Bernstein, en av författarna till den nya algoritmen.
Randomness har hittat otaliga andra användningsområden inom datavetenskap, från kryptografi till spelteori till maskininlärning. Chansen är stor att den är här för att stanna.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. Tillgång här.
- Källa: https://www.quantamagazine.org/how-randomness-improves-algorithms-20230403/
- :är
- ][s
- $UPP
- 1
- 1994
- a
- Om oss
- om det
- AC
- Konto
- Redovisning
- Efter
- algoritm
- algoritmer
- Alla
- alltid
- och
- Annan
- svara
- tillvägagångssätt
- tillvägagångssätt
- lämpligt
- ÄR
- AS
- Asteroid
- At
- Författarna
- tillbaka
- baserat
- grundläggande
- I grund och botten
- BE
- därför att
- börja
- Där vi får lov att vara utan att konstant prestera,
- BÄST
- mellan
- Bit
- kört
- Ha sönder
- genombrott
- by
- beräkna
- Ring
- KAN
- vilken
- Vid
- fall
- vissa
- säkerhet
- utmanar
- chanser
- val
- val
- Välja
- Klimat
- komplex
- dator
- Datavetenskap
- avslutar
- förvirring
- anslutna
- Tänk
- anses
- kunde
- kryptografi
- Dagar
- beslutar
- definitivt
- demonstrera
- beror
- Bestämma
- utveckla
- utvecklade
- svårt
- ner
- dussin
- varje
- jord
- lättare
- Ekonomi
- effektiv
- effektivt
- antingen
- Elektronisk
- slutar
- tillräckligt
- säkerställa
- Era
- fel
- Även
- NÅGONSIN
- faktorer
- SNABB
- få
- fält
- hitta
- finna
- Förnamn
- För
- hittade
- franska
- från
- lek
- generell mening
- skaffa sig
- Ge
- ges
- Går
- god
- diagram
- hantera
- Hård
- Har
- har
- hjälpa
- hjälpte
- hjälpa
- hjälper
- här.
- dold
- slå
- Hur ser din drömresa ut
- How To
- HTTPS
- i
- Tanken
- idealisk
- med Esport
- omöjligt
- in
- informationen
- intresserad
- involverade
- IT
- DESS
- sig
- jpg
- Nyckel
- Vet
- Menande
- känd
- landmärke
- Large
- Efternamn
- Förra året
- inlärning
- Längd
- tycka om
- linje
- liten
- Lång
- se
- Maskinen
- maskininlärning
- gjord
- göra
- GÖR
- många
- matte
- metod
- metodisk
- mer
- mer effektiv
- mest
- multipel
- Nära
- nödvändigt för
- Nya
- noder
- nukleär
- antal
- nummer
- Uppenbara
- of
- on
- ONE
- optimala
- Övriga
- annat
- oxford
- Godkänd
- bana
- mönster
- plocka
- Pierre
- Plats
- plato
- Platon Data Intelligence
- PlatonData
- Spela
- spelat
- kontakt
- Populära
- Möjligheten
- möjlig
- praktiken
- pretty
- Prime
- Principen
- förmodligen
- Problem
- problemlösning
- problem
- processer
- Program
- bevis
- Bevisa
- visat
- Quantamagazin
- fråga
- frågor
- snabbt
- slumpmässig
- randomized
- slumpmässighet
- SÄLLSYNT
- snarare
- senaste
- Oavsett
- förblir
- forskare
- resultera
- Roll
- Körning
- Nämnda
- Vetenskap
- Forskare
- vetenskapsmän
- Andra
- segment
- in
- skall
- siam
- liknande
- förenklade
- helt enkelt
- eftersom
- långsam
- Small
- lösning
- LÖSA
- Löser
- Lösa
- några
- något
- specifik
- Starta
- .
- bo
- Steg
- Steg
- Sluta
- struktur
- framgångsrik
- Ta
- testa
- Testning
- den där
- Smakämnen
- Grafen
- deras
- Dem
- Dessa
- saker
- tre
- Genom
- gånger
- till
- alltför
- Totalt
- omvandla
- sann
- SVÄNG
- vände
- Osäkerhet
- universitet
- University of Oxford
- användning
- vanligen
- värde
- Värden
- version
- Sätt..
- sätt
- webb
- om
- som
- med
- utan
- fungerar
- Världens
- skulle
- år
- år
- Om er
- Din
- zephyrnet