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)

2 comentários:

  1. Interessantes considerações sobre re-uso e linguagens funcionais em Programming for a culture approaching singularity (Luke Palmer):

    http://lukepalmer.wordpress.com/2010/07/22/programming-for-a-culture-approaching-singularity/

    Com referência a Kurzweil, The Law of Accelerating Returns.

    http://www.kurzweilai.net/the-law-of-accelerating-returns

    Kurzweil fantasiou e generalizou demais, a partir de um modelo simplório do cérebro. Pesquisas mostraram que a quantidade de genes é diferente do que se pensava, e que não é tão diferente entre o homem e outros animais (http://www.agencia.fapesp.br/materia/12804/motor-da-evolucao.htm). Também mostraram que há tantas células gliais quanto neurônios e que elas não são puramente estruturais, devem ter uma função. Enfim, sabe-se muito pouco, não se tem um modelo seguro de funcionamento do cérebro.

    A idéia de singularidade não é ruim, mas Kurzweil chega a conclusões grandiosas de forma fácil demais. O artigo de Chazelle é de certa forma uma resposta a Kurzweil. Parte da lei de Moore, mas com uma visão crítica da lei de Moore. Aponta uma singularidade, quando se esgotarem as possibilidade físicas do chip de silício. E dá a resposta, que está em outro lugar e outro plano: o algoritmo.

    Luke Palmer, feitas suas considerações, volta a programação funcional. Uma boa direção para o problema do re-uso.

    ResponderExcluir
  2. In The Algorithm: Idiom of Modern Science,

    "Abstraction is the ability to choose the zoom factor"

    ResponderExcluir