A origem dos termos computação / algoritmo “eficiente” e “viável”

13

Eu gostaria de saber sobre a história desses dois termos: " eficiente ", " viável ".

Quem os usou sobre computação / algoritmos pela primeira vez? (no sentido moderno desses termos, ou seja, século 20). Como eles se tornaram mainstream? Como esses dois termos começaram a ser usados ​​como sinônimos?

Eu sei que Cobham usou o termo "viável" na declaração de sua tese que se associava à computabilidade polinomial do tempo. Mas existe uma referência anterior? Não parece haver uma referência explícita a esses termos na carta de Godel a von Neumann . Não pude encontrar nenhum artigo relacionado anterior a 1960 (usando o Google Scholar ).

Outro ponto interessante é que o título do artigo de Cobham de 1965 é "A dificuldade computacional intrínseca das funções". Quando a "complexidade computacional" substituiu a "dificuldade computacional"?

Kaveh
fonte

Respostas:

11

Não conheço os termos "eficiente" e "viável". Como esses termos ainda hoje não têm significado técnico preciso, suspeito que o histórico de seu uso se torne obscuro, assim como o histórico da maioria das palavras na maioria dos idiomas é obscuro.

"Complexidade computacional" é um termo mais interessante. Com a ajuda do MathSciNet, acho que Juris Hartmanis parece ter sido o primeiro a popularizá-lo. O famoso artigo de 1965 de Hartmanis e Stearns usa o termo no título, mas mesmo antes disso, a Mathematics Review de Hartmanis do artigo de Michael Rabin "Computação em tempo real" ( Israel J. Math. 1 (1963), 203-211) diz:

Esse resultado é muito instrutivo e contribui com novas técnicas para a teoria emergente da complexidade computacional de seqüências e funções recursivas. Essa teoria preocupa-se principalmente com a classificação de problemas computáveis ​​pelo grau de dificuldade computacional, o estudo das propriedades dessas classes de complexidade, a relação entre si e a dependência dos dispositivos de computação (abstratos).

Observe que o próprio Rabin não usa o termo "complexidade computacional" neste artigo.

O MathSciNet também apresenta algumas revisões anteriores que usam o termo "complexidade computacional", mas essas parecem ocorrências espontâneas e esporádicas.

Timothy Chow
fonte
Obrigado, acho que isso responde à minha pergunta sobre "complexidade computacional". (Eu gostaria de esperar mais alguns dias para ver se alguém pode fornecer algumas informações sobre os dois primeiros termos.)
Kaveh
5

Outra frase a considerar é "exatamente solucionável", que é da física estatística e também corresponde às nossas noções atuais de eficiente / viável. A introdução neste artigo contém uma boa descrição histórica dessa frase com muitas referências.

Tyson Williams
fonte
Obrigado Tyson, que parece um artigo interessante (mas não parece responder às minhas perguntas).
Kaveh
3

Não foi exatamente o que você pediu, mas é muito longo para comentar.

A referência explícita mais antiga que conheço a um algoritmo inviável é no Memorando de Évariste Galois, sobre as condições de resolução de equações por rádio , escrito em 1830:

Se você não tiver uma pergunta sobre o que escolher, selecione seu nome e quem deseja que você conecte-se ou não seja solúvel por rádio, os norteamericanos diriam e faire-o-que-indique-a-resposta-a-pergunta-sem-voto carregador n moi ni personne de la faire. Um número de cálculos não é impraticável.

[Agora, se você me der uma equação que você escolheu a seu critério e quiser saber se é ou não passível de solução por radicais, só preciso lhe indicar o método necessário para responder sua pergunta, sem querer me fazer ou mais alguém o realiza. Em uma palavra, os cálculos são impraticáveis .]

Embora seja verdade que o algoritmo de Galois não é executado no tempo polinomial, Galois claramente significava algo muito menos preciso. Essa também é a referência mais antiga que conheço que considera a mera existência de um algoritmo significativo por si só.


Como Niel de Beaudrap menciona nos comentários, Gauss já discutiu a (in) eficiência de algoritmos para testes de primalidade em suas 1801 Disquisitiones Arithmeticae , quase 30 anos antes de Galois. Para completar, eis a passagem relevante do artigo 329:

Nihilominus fateri oportet, omnes methodos hucusque prolata and casus vlade special restringestris that, vel tam operous et prolixas , ut pro numeris talibus, qui tabularum varis meritis constructarum limit non excedunt, ie pro quibus methodi artificial supervacuae sunt, calculis etiam exercitati paciente fatigent, ad maior autem plerumque vix applicari possint. ... Ceterum in problemtis natura fundatum est, ut methodi quaecunquecontinuo prolixiores evadentes, maiores números suntários, e candidatos; attamen pro methodis sequentibus dificulta todos os tipos de números, números e seções, octos e outros tipos de figuras pluribus contínuas antes ou depois de felinos secundários sempre sucessivos em busca de um número, celeritate único, quam pro tantis numeris exspectare aequum est, quy secundum omnes métodos indiferentable calculators, laborator intolerabilem, requirerent.

[No entanto, devemos confessar que todos os métodos propostos até agora são restritos a casos muito especiais ou são tão trabalhosos e prolixos que, mesmo para números que não excedem os limites de tabelas construídas por homens estimados, ou seja , para números que não requerem métodos engenhosos, eles tentam a paciência até da calculadora mais praticada. E esses métodos dificilmente podem ser usados ​​para números maiores. ... É da natureza do problema que qualquerO método se tornará mais prolixo à medida que os números aos quais ele for aplicado aumentarem. No entanto, nos métodos a seguir, as dificuldades aumentam bastante lentamente, e números com sete, oito ou mais dígitos foram tratados com sucesso e velocidade além das expectativas, especialmente pelo segundo método. As técnicas conhecidas anteriormente exigiriam trabalho intolerável, mesmo para a calculadora mais incansável .]

Jeffε
fonte
2
Havia também uma resposta sobre outro tópico , sobre os problemas mais antigos de pesquisa aberta, nos quais Gauss reclamou em seu livro Disquitiones Arithmeticae, de 1801, de que todos os métodos conhecidos na época para testes de primalidade eram muito "trabalhosos e prolixos".
Niel de Beaudrap
Zp
P
-1

Editar: Resposta reescrita

Como ficou popular? provavelmente espalhando a idéia de comparar novas pesquisas com as mais antigas em termos de desempenho, com a suposição de que criar novas idéias é mais difícil.

labotsirc
fonte
Estou procurando um histórico real desses termos, não uma explicação para eles. Esta não é uma resposta para minha pergunta.
Kaveh
Não sei responder quem usou os termos pela primeira vez no CS, minha resposta foi mais orientada à sua segunda pergunta sobre por que ela se tornou popular.
labotsirc
Obrigado, mas não estou perguntando "por que", estou perguntando "como" (isto é, história).
Kaveh
reescrevi a resposta, é tudo o que sei + suposições. Atenciosamente, Cristobal.
labotsirc
1
Eixo de agradecimento, mas como eu disse, estou procurando uma história real , não prováveis ​​teorias sobre ela. Estou procurando referências / artigos / ... que usaram os termos e ajudaram a tornar-se mainstream.
Kaveh