L'origine dei termini "efficiente" e "fattibile" calcolo / algoritmo


13

Mi piacerebbe conoscere la storia di questi due termini: " efficiente ", " fattibile ".

Chi li ha usati per il calcolo / algoritmi la prima volta? (nel senso moderno di questi termini, cioè del 20 ° secolo). Come sono diventati mainstream? In che modo questi due termini hanno iniziato a essere usati come sinonimi?

So che Cobham ha usato il termine "fattibile" nell'affermazione della sua tesi che si associava alla calcolabilità del tempo polinomiale. Ma c'è un riferimento precedente? Non sembra esserci un riferimento esplicito a questi termini nella lettera di Godel a von Neumann . Non sono stato in grado di trovare alcun articolo correlato precedente al 1960 (utilizzando Google Scholar ).

Un altro punto interessante è che il titolo dell'articolo di Cobham del 1965 è "La intrinseca difficoltà computazionale delle funzioni". Quando la "complessità computazionale" ha sostituito la "difficoltà computazionale"?

Risposte:


11

Non conosco i termini "efficiente" e "fattibile". Dal momento che questi termini anche oggi non hanno un significato tecnico preciso, ho il sospetto che la storia del loro uso si rivelerà oscura, così come la storia della maggior parte delle parole nella maggior parte delle lingue è oscura.

"Complessità computazionale" è un termine più interessante. Con l'aiuto di MathSciNet, trovo che Juris Hartmanis sembra essere stato il primo a diffonderlo. Il famoso articolo del 1965 di Hartmanis e Stearns usa il termine nel titolo, ma ancor prima di ciò, la recensione matematica di Hartmanis del documento di Michael Rabin "Calcolo in tempo reale" ( Israel J. Math. 1 (1963), 203–211) dice:

Questo risultato è molto istruttivo e contribuisce con nuove tecniche alla teoria emergente della complessità computazionale di sequenze e funzioni ricorsive. Questa teoria si occupa principalmente della classificazione dei problemi calcolabili in base al loro grado di difficoltà computazionale, allo studio delle proprietà di queste classi di complessità, alla loro relazione reciproca e alla loro dipendenza dai dispositivi di calcolo (astratti).

Si noti che lo stesso Rabin non usa il termine "complessità computazionale" in questo documento.

MathSciNet presenta anche un paio di recensioni precedenti che usano il termine "complessità computazionale", ma queste sembrano essere eventi spontanei e sporadici.


Grazie, penso che questo risponda alla mia domanda sulla "complessità computazionale". (Vorrei aspettare ancora qualche giorno per vedere se qualcuno può fornire alcune informazioni sui primi due termini.)
Kaveh

5

Un'altra frase da considerare è "esattamente risolvibile", che deriva dalla fisica statistica e corrisponde anche alle nostre attuali nozioni di efficiente / fattibile. L'introduzione in questo documento contiene una bella descrizione storica di questa frase con molti riferimenti.


Grazie Tyson, sembra un documento interessante (ma non sembra rispondere alle mie domande).
Kaveh,

3

Questo non è esattamente quello che hai chiesto, ma è troppo lungo per un commento.

Il più antico riferimento esplicito che conosco per rendere impossibile un algoritmo è nel Mémoire di Évariste Galois sulle condizioni di solubilità delle radiazioni per radiografia , scritto nel 1830:

Se manutenant vous me donnez un'équation que you aurez choisie à votre gré et que vous wishz connaître si elle est oru is soluble for radicaux, je n'aurais rien à y faire que de vi indiquer the moyen de répondre à votre question, sans vouloir caricabatterie ni moi ni personne de la faire. In un certo senso i calcoli non sono impraticabili.

[Ora se mi dai un'equazione che hai scelto a tua discrezione e vuoi sapere se è risolvibile o meno dai radicali, ho solo bisogno di indicarti il ​​metodo necessario per rispondere alla tua domanda, senza voler farmi o chiunque altro lo realizzi. In una parola, i calcoli non sono pratici .]

Anche se è vero che l'algoritmo di Galois non funziona in tempi polinomiali, Galois ha chiaramente significato qualcosa di molto meno preciso. Questo è anche il riferimento più antico che conosco che considera la mera esistenza di un algoritmo significativo a sé stante.


Come Niel de Beaudrap menziona nei commenti, Gauss ha già discusso dell'efficienza (in) degli algoritmi per i test di primalità nelle sue Disquisitiones Arithmeticae del 1801 , quasi 30 anni prima di Galois. Per completezza, ecco il passaggio pertinente dell'articolo 329:

Nihilominus fateri oportet, omnes methodos hucusque prolata vel annuncio casus Vlade speciales restrictas esse, vel tam operosas et prolixas , ut iam pro numeris talibus, qui tabularum un Varis meritis constructarum limites non excedunt, cioè pro quibus methodI artificiales supervacuae sunt, calculatoris etiam exercitati patientiam affaticato, ma anche autem plerumque vix applicari possint. ... Ceterum in problematis natura fundatum est, ut methodi quaecunquecontinuo prolixiores evadant, quo maiores sunt numeri, ad quos richiedenteur; attamen pro methodis sequentibus difficultates perlente increscunt, numerique e Septem, octos vel ADEO adhuc pluribus figuris constantes praesertim per secundam Felici sempre successu tractati fuerunt, celeritate omnique, quam pro tantis numeris exspectare aequum est, qui secundum omnes methodos hactenus notas Laborem, etiam calculatori indefatigabili intollerabile, necessaria.

[Tuttavia, dobbiamo confessare che tutti i metodi proposti finora sono limitati a casi molto speciali o sono così laboriosi e prolissi che anche per i numeri che non superano i limiti delle tabelle costruite da uomini stimabili, vale a dire per i numeri che non lo fanno richiedono metodi ingegnosi, provano la pazienza anche del calcolatore più praticato. E questi metodi difficilmente possono essere usati per numeri più grandi. ... È nella natura del problema che esisteil metodo diventerà più prolisso man mano che i numeri a cui viene applicato diventano più grandi. Tuttavia, nei metodi seguenti le difficoltà aumentano piuttosto lentamente e i numeri con sette, otto o anche più cifre sono stati gestiti con successo e velocità oltre ogni aspettativa, specialmente con il secondo metodo. Le tecniche precedentemente conosciute richiederebbero un lavoro intollerabile anche per il calcolatore più infaticabile .]


2
C'era anche una risposta su un altro argomento , sui più antichi problemi di ricerca aperta, in cui Gauss si lamentava nel suo libro del 1801 Disquitiones Arithmeticae che tutti i metodi conosciuti all'epoca per i test di primalità erano molto "laboriosi e prolifici".
Niel de Beaudrap il

Zp

P

-1

Modifica: risposta riscritta

Come è diventato mainstream? probabilmente diffondendo l'idea di confrontare le nuove ricerche con quelle più vecchie in termini di prestazioni, con la supposizione che creare nuove idee sia più difficile.


Sto cercando la storia reale di questi termini, non una spiegazione per loro. Questa non è una risposta alla mia domanda.
Kaveh,

Non posso rispondere a chi ha usato i termini per la prima volta in CS, la mia risposta è stata più orientata alla tua seconda domanda sul perché è diventato mainstream.
labotsirc,

Grazie, ma non sto chiedendo "perché", sto chiedendo "come" (cioè la storia).
Kaveh,

ho riscritto la risposta, questo è tutto ciò che so + supposizioni. Saluti, Cristobal.
labotsirc,

1
Grazie asse, ma come ho detto sto cercando la storia attuale , non probabili teorie al riguardo. Sto cercando i primi riferimenti / documenti / ... che hanno usato i termini e l'hanno aiutato a diventare mainstream.
Kaveh,
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.