Algoritmi probabilistici (randomizzati) prima che apparisse l'informatica "moderna"


27

Modifica: ho scelto la risposta con il punteggio più alto entro il 06 dicembre 2012.

Questa è una domanda delicata.

Il concetto di algoritmi (deterministici) risale al BC. E gli algoritmi probabilistici?

In questa voce wiki , l'algoritmo di Rabin per il problema di coppia più vicino nella geometria computazionale è stato dato come il primo algoritmo randomizzato (anno ???). Lipton introdusse l'algoritmo di Rabin come l'inizio dell'era moderna degli algoritmi casuali qui , ma non come il primo. Conosco anche molti algoritmi per automi probabilistici finiti (un modello computazionale molto semplice) scoperti negli anni '60.

Conosci qualche algoritmo (o metodo) probabilistico / randomizzato anche prima degli anni '60?

o

Quale scoperta può essere vista come il primo algoritmo probabilistico / randomizzato?


25
L'idea secolare di assaggiare un cucchiaio di zuppa bollente per verificare se ha il sapore giusto è essenzialmente un campionamento casuale, un algoritmo probabilistico con garanzie dimostrabili.
Arnab,

3
L'algoritmo di Rabin fu pubblicato nel 1976, molto tempo dopo che la "moderna" informatica era ben consolidata.
Jeffε,

Potresti forse chiarire se ci sono dei criteri che vorresti imporre agli "algoritmi", al fine di chiarire se pensi, ad esempio, che i fenomeni naturali che precedono l'umanità di miliardi di anni rappresentino "algoritmi", come suggerito da alcune delle risposte sotto?
Niel de Beaudrap,

@NieldeBeaudrap: Nella mia mente c'erano alcuni algoritmi matematicamente ben definiti. (Ma, personalmente, mi piace molto la risposta di arnab :))
Abuzer Yakaryilmaz,

Risposte:


33

Questo è discusso un po 'nel mio articolo con HC Williams, "Factoring Integers before Computers"

In un articolo del 1917, HC Pocklington discusse un algoritmo per trovare sqrt (a), modulo p, che dipendeva dalla scelta casuale di elementi per ottenere un non residuo di una determinata forma. In esso, ha detto, "Dobbiamo fare questo [trova il non residuo] per processo, usando la Legge della reciprocità quadratica, che è un difetto nel metodo. Ma per quanto riguarda ogni valore di te la metà dei valori di t sono adatti, non dovrebbe esserci alcuna difficoltà a trovarne uno ".

Quindi questa è una delle prime menzioni esplicite di un algoritmo randomizzato.


3
Questo è un riferimento davvero carino. L'algoritmo di Pocklington da allora è stato derandomizzato? Tangenzialmente, adoro il tuo lavoro - sia dentro che fuori CS - in particolare il tuo algoritmo per la congettura di Bachet (il documento è stato difficile da trovare una copia però!) Ma anche il tuo lavoro per le libertà civili. Hai visto "Mr. Death?" Di Errol Morris
Ross Snider,

interessante. ricorda i test di primalità randomizzati
Sasho Nikolov,

3
E anche un algoritmo di Las Vegas! Bel riferimento.
David Eppstein,

Riferimento molto bello.
Jérémie,

parlando del factoring prima dei computer, qualcuno sa cosa sapeva Lehmer dell'algoritmo di Pocklington o di altri algoritmi randomizzati, o se Lehmer lo avesse mai effettivamente implementato sul suo computer di factoring con setaccio ? i due apparentemente hanno qualche connessione con il test di primalità di Pocklington-Lehmer secondo wikipedia
vzn

28

Algoritmo dell'ago di Buffons per stimare π , fondamentalmente un metodo Monte Carlo , risale alla pubblicazione nel 1777. si noti che i metodi Monte Carlo risalgono agli anni '40 con il progetto "Manhattan" statunitense della bomba atomica e furono coniati da Ulam, Von Neumann e Metropolis.


8
In realtà questo è legato a una domanda che ho posto . Nessuno sa esattamente chi abbia ideato l'algoritmo che molte persone considerano l'ago di Buffon al giorno d'oggi.
Jérémie,

dichiarato in modo più preciso: esiste un algoritmo di aghi Buffon ben definito che comporta la caduta di aghi su strisce e un algoritmo "punto casuale vs cerchio" apparentemente molto diverso, come menzionato in quella domanda che alcune persone sembrano attribuire erroneamente a Buffon, con diversi, più origini moderne, ma incerte.
vzn,

19

L' algoritmo Metropolis-Hastings fu pubblicato nel 1953 e risale al progetto Manhattan, molto prima di Rabin. Come molti dei primi metodi randomizzati forniti in altre risposte, è un algoritmo Monte Carlo.

È possibile che l'affermazione sulla pagina di Wikipedia sia una forma confusa dell'affermazione che Rabin è stato il primo algoritmo di Las Vegas ?


11

La curva / distribuzione normale gaussiana delle statistiche può essere "calcolata" da molti processi fisici molto semplici. Uno dei più semplici è una scheda con una matrice di pin in una griglia triangolare (nota anche come "scatola di Galton" risalente al 1800) in cui i pin sono spostati di 1/2 distanza quadrata su file alternate. Far cadere ripetutamente le palle dalla stessa posizione, le palle si spostano casualmente a sinistra o a destra con probabilità 0,5. La distribuzione cumulativa registrata nelle posizioni inferiori produce la curva / normale gaussiana.


+1 solo perché sto attualmente progettando un logo per il nostro gruppo di ricerca sulle statistiche e la Galton Box è stata la nostra prima idea (ma risulta essere troppo complessa per un logo).
Konrad Rudolph,

10

Secondo me, l'evoluzione naturale è un algoritmo probabilistico buono e piuttosto vecchio :-)


1
+1 sebbene la descrizione del processo ci sia probabilistica molto più recente. ;-)
Konrad Rudolph,

7
"Algorithm" suggerisce che c'è un problema che sta cercando di risolvere; ma non lo è. Non sta nemmeno "tentando" di creare animali migliori per sopravvivere; la creazione di animali che si adattano al suo ambiente è solo un sottoprodotto (uno che non sempre si ottiene, come evidenziano gli eventi di estinzione ed estinzione di massa). A questo proposito, l'evoluzione non è più un algoritmo di quanto lo sia la gravità; è proprio questa cosa che succede.
Niel de Beaudrap,

MDB è morto! L'evoluzione è un algoritmo genetico che seleziona per l' idoneità evolutiva e la scienza sta ancora raggiungendo tutte le implicazioni di questo ... vale a dire che è un'area attiva di ricerca. non è stato sottolineato molto o ampiamente apprezzato, ma il fenomenale successo delle GA in CS è in realtà una forte evidenza matematica / scientifica della realtà della teoria dell'evoluzione biologica. tuttavia, ammetto che è decisamente diverso da altri "algoritmi" in alcuni modi chiave.
vzn,

2
@vzn: un "algoritmo genetico", innanzitutto, seleziona una funzione di fitness che imponiamo per uno scopo specifico. Usiamo l' evoluzione come strumento per fare qualcosa in quel caso. Ma ciò non significa che l'evoluzione biologica sia un algoritmo per fare qualsiasi cosa. Usando di nuovo l'analogia della gravità, c'è un senso significativo in cui tutte le cascate sono algoritmi, solo perché a volte usiamo le cascate per generare elettricità?
Niel de Beaudrap,

4
@vzn: Asserisco semplicemente che "un algoritmo" dovrebbe comportare parametri ben definiti di probabilità di successo, senza contare che dovrebbe esserci un agente che lo esegue . L'unico "agente" che si potrebbe dire che effettui "evoluzione" sarebbe un intero ecosistema. Cosa dovremmo dire che l'ecosistema sta "cercando" di raggiungere? Direi prontamente che sei una natura antropomorfizzante . Chiedo solo che "applicare un algoritmo" implichi una certa intenzionalità orientata agli obiettivi, applicata dall'uomo o no. In che senso un processo senza obiettivo può rappresentare un "algoritmo"?
Niel de Beaudrap,

6

C'è un documento sugli algoritmi randomizzati nelle culture "primitive" .

L'uso degli oracoli (ad es. Ossa di pollo, pietre) per decidere dove cacciare può essere visto come un algoritmo randomizzato. Si può sostenere che la randomizzazione dei terreni di caccia impedisce l'adattamento del gioco e la caccia eccessiva.


0

una delle carte "miracolose" di Einsteins del 1905 era sul moto browniano , un classico esempio fisico di camminata casuale e produce una formula (cioè, fondamentalmente un algoritmo, se il processo fisico è il "computer") per stimare / calcolare la particella (molecola) diametro dato altre costanti fisiche note e l'osservazione / misurazione dello spostamento (casuale) delle particelle nel tempo. questo documento è servito anche come prima prova teorica / sperimentale / fondamentale per la teoria atomica della materia.


4
Ancora una volta come con l'evoluzione: sebbene il movimento possa essere casuale e possa essere modellato da una camminata casuale, quale algoritmo rappresenta? Mentre alcuni algoritmi usano passeggiate casuali, ciò non significa che tutte le passeggiate casuali rappresentino algoritmi (non più di qualsiasi stringa di parole in inglese rappresenta la prosa solo perché tutta la prosa inglese è costituita da parole in inglese).
Niel de Beaudrap,

-4

nionio

la macchina ha anche una certa somiglianza con il motore differenziale Babbage (~ 1830s). non è del tutto inconcepibile che Babbage o Lovelace possano aver immaginato qualcosa di simile agli algoritmi probabilistici. le macchine possono certamente essere usate per implementare algoritmi probabilistici, prendendo in prestito la teoria moderna e sovrapponendola al passato.

[1] Lehmer factoring machine

[2] Motore di spazzatura


Lehmer mod n & macchina di factoring


1
Puoi descrivere il senso in cui calcolava le risposte probabilistiche per grandi numeri? Una rapida ricerca non sembra che non riesca a trovare alcun riferimento a quello online.
Niel de Beaudrap,

a quanto ho capito, è stato usato [tra gli altri scopi] per trovare fattori minori di grandi numeri di test simili al setaccio di eratostene. se il numero elevato è passato, è "probabilmente non composito" o "probabilmente primo" o "primo candidato". sfortunatamente Internet non è molto buono con riferimenti storici e origini [anche Wikipedia], i libri sono migliori. maggiori dettagli in fondo a questa pagina , "tipi di problemi che Lehmer stava tentando di risolvere" del Dr. Mike Williams, curatore capo del museo di storia del computer di CA
vzn,

1
le macchine possono certamente essere usate per implementare algoritmi probabilistici - Allora? Al contrario di altre macchine che non possono?
Jeffε,

2
anche se la terminologia al momento potrebbe non aver fatto riferimento a "algoritmi probabilistici", potrebbe essere stata utilizzata in tal modo in alcuni casi - [citazione necessaria] Se si ha la prova che "possibilmente prime" è un'affermazione formale sulla probabilità, e non semplicemente un descrizione euristica, per favore, citala. Altrimenti, smetti di speculare.
Jeffε,

n1*n2*n3*nXX

-6

qui ci sono alcuni casi di inizi e persino antichi / preistoria di concetti relativi ad algoritmi randomizzati.

  • n/2

  • i giochi d'azzardo e il gioco d'azzardo sono molto antichi. dalla teoria moderna, i giochi hanno forti somiglianze se non connessioni dirette agli algoritmi. i dadi di gioco d'azzardo / gioco sono noti per avere almeno cinque millenni .

  • i Greci e i Romani avevano anche il concetto di disegnare cannucce dove la persona che disegnava la cannuccia più corta perse. simile ai dadi, è in un certo senso l'algoritmo più semplice possibile per fare un'unica scelta casuale.

  • divulgazione completa, c'è una sfumatura di storia sanguinosa e connessione. in altre risposte MDB menziona l' evoluzione . parte dell'evoluzione è la selezione naturale che ha anche parallelismi con la guerra umana - apparentemente una parte intrinseca dell'evoluzione delle città / società umane. in un certo senso una guerra è un rozzo algoritmo semirandom per "qualcosa" che sociologi e storici discutono ancora su cause esatte. furto / saccheggio? allocare risorse? territorio? potere politico? schiavi? (ecc.) anche i romani avevano una terribile pratica chiamata decimazione(la parola moderna in realtà deriva dall'etimologia dall'antica!) in cui, come punizione per ammutinamento o codardia, ogni decimo soldato selezionato a caso veniva eseguito dai restanti soldati. potrebbe sembrare una pratica dimenticata e atavica, ma sembra avere un po 'di parallelismo con la roulette russa moderna , un "moderno" quasi-gioco randomizzato per suicidio.


1
Non è quello che sto chiedendo; Sto chiedendo se hanno ragionato sulla frequenza relativa dei numeri compositi nel modo in cui descrivi.
Niel de Beaudrap,

1
Temo di non essere interessato a vaghe generalità e sembra abbastanza ovvio che non siamo fondamentalmente in disaccordo su cosa sia un "algoritmo". Sono interessato a qualcosa di più dei semplici "fenomeni". Altrimenti, potremmo anche citare tutti gli eventi meccanici quantistici dopo il Big Bang come esempi di "algoritmi randomizzati", il che rende banale l'intera materia.
Niel de Beaudrap,

1
"domanda debole" non significa una domanda con confini infinitamente flessibili; "panoramica storica" ​​non è la stessa del revisionismo storico.
Niel de Beaudrap,

2
Il tuo 'suggerimento' per me sull'evoluzione, né il fatto che tu mi abbia lasciato perdere tempo su una domanda che non mi piace, né la tua evasione della mia domanda precedente, sono stati rispettosi. E in effetti, la tua ipotesi che i Greci probabilmente sapessero di cosa stai parlando ma non si è preoccupato di scriverne è esattamente una delle cose a cui il "revisionismo storico" può fare riferimento. (Forse Archimede ha inventato la notazione decimale, ma non si è preoccupato di fare alcun disco; dopotutto, Sand Reckoner è abbastanza vicino alla notazione, ei Greci hanno usato un sistema simile alla base 10. Ma dovremmo prendere sul serio l'idea ? No.)
Niel de Beaudrap,

1
Concordo sul fatto che sia credibile, e che non sia nemmeno molto inverosimile - a parte, ovviamente, dal fatto che sembra che non abbiamo alcuna traccia dei Greci che parlano della probabilità in sé. Ma se c'è un vero record, dovresti essere in grado di segnalarlo. Altrimenti, è speculazione, non storia.
Niel de Beaudrap,

-7

JS menziona la teoria dei numeri. Fermat è accreditato con il test di primalità Fermat , un algoritmo probabilistico che risale al 1600 e funge da precursore di test di primalità più moderni come Solovay-Strassen e Miller-Rabin. [ci vorrebbe uno storico specializzato in matematica e teoria dei numeri per cercare di individuare esattamente ciò che Fermat sapeva al riguardo rispetto alla conoscenza moderna che è molto più completa sulla struttura dei suoi pseudoprimi (falsi positivi) ecc.]


2
Puoi citare Fermat come se avesse usato il suo test come un modo per filtrare numeri interi scelti a caso come non numeri primi (al contrario di una proprietà interessante che i numeri primi hanno)? O forse citare un primo autore che suggerisce di farlo?
Niel de Beaudrap,

come detto, i dettagli esatti sono meglio lasciati a uno storico professionista. tuttavia nota [addendum; avrebbe dovuto menzionarlo] il semplice fatto storico che il fermat è accreditato come il coinventore fondatore della teoria della probabilità insieme a Pascal, ponendo le basi in una serie di lettere a metà del 1600.
vzn,

2
non è proprio appropriato proporre risposte basate su ciò che ritieni possa essere mostrato da qualcun altro. Ancora una volta, questa è la speculazione.
Niel de Beaudrap,

3
@vzn: Se Fermat avesse capito che il Piccolo Teorema di Fermat era un buon test di primalità, avrebbe calcolato che il 5 ° numero di Fermat non era un numero primo . Ciò non è stato fatto fino a quando Eulero non l'ha presa in considerazione più di 60 anni dopo la morte di Fermat.
Peter Shor,

2
@vzn: [citazione necessaria]
Jeffε
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.