Mostrando postagens com marcador Algoritmos. Mostrar todas as postagens
Mostrando postagens com marcador Algoritmos. Mostrar todas as postagens

domingo, 26 de setembro de 2010

Agoritmos = mudança de paradigma

Textos de Bernard Chazelle:

Lei de Moore deixará de funcionar por volta de 2050, por limitações físicas. De certa forma, uma boa notícia. Aí seremos obrigados a olhar os algoritmos, a nos preocupar com eficiência, a (re-)descobrir que se pode fazer muito mais com o que temos de potência de computação. Isto ao invés de desperdiçar memória e ciclos de CPU. Conhecido meu, brilhante desenvolvedor de software, fez um ERP que roda em máquinas desktop comuns consumindo no máximo 1 a 2% de CPU...

Computação, segundo Chazelle, é o ponto de encontro de 3 grandes idéias: universalidade, dualidade, auto-referência. Mais os conceitos de tratabilidade e o revolucionário paradigma do algoritmo.

Vamos analisar. Em itálico.

Universalidade: num computador há dados e programa, ambos representados como números (0 e 1). Há o contrôle, que lê o programa e executa suas instruções cegamente. O contrôle não sabe o que faz. Executa instruções. Só.

A idéia de separar programa (software) de contrôle (hardware) foi do Turing.

Fundamental é também a idéia de que programa e dados são a mesma coisa. Levada adiante por Von Neumann em sua máquina, que é o atual computador. Na mesma memória vão programa e dados.

Dualidade: sequências de 0 e 1 podem ser interpretadas de duas maneiras. Como forma, dados, ou como conteúdo, programa.

Isso do ponto de vista do contrôle.

Auto-referência: o programa pode referir a si próprio. Analogia aqui com DNA.

Isto é recursividade.

Tratabilidade (tractability*, fácil de tratar, de manejar, de persuadir): verificar se um teorema é válido é mais fácil do que provar o teorema. Problema P=NP. De verdade não sabemos (2010).

Assim como não sabemos se um problema é "programável", mas em geral achamos que sim, e se sua "programação" será simples ou não. Na prática, em problemas do dia a dia, digamos, administrativos, achamos que sim.

Algoritmo: "programa com cara humana", diz muito bem Chazelle. E diz mais: "Um algoritmo é, em essência, uma obra de literatura". Finaliza: "As ciências quantitativas do século XXI (genomica, neurobiologia por exemplo) completarão o destronar da fórmula cclocando o algoritmo no núcleo (core, coração) do modus operandi. O pensamento algorítmico causará provavelmente a mudança de paradigma mais radical (disruptive) na ciência desde a mecância quântica".

Muito mais que a mudança da mecânica quântica. O algoritmo, a máquina universal, são uma revolução no mínimo tão grande quanto a Renascença, quanto a Revolução Industrial, quanto o surgimento da Ciência Moderna. Rivalizam com o surgimento da Matemática.



Idéias semelhantes, importância do algoritmo na ciência moderna, em versão mais light: All Science is Computer Science no New York Times

* tractable:
1. Capable of being easily led, taught, or managed; docile; manageable; governable.
2. (obsolete) Capable of being handled or touched; palpable; practicable; feasible.
3. (mathematics) Sufficiently operationalizable or useful to allow a mathematical calculation to proceed toward a solution.
4. (computer science) Of a decision problem, algorithmically solvable fast enough to be practically relevant, typically in polynomial time.
(Wiktionnary)