quinta-feira, 28 de outubro de 2010

Receita de bolo é um algoritmo?

Quantas vezes você já ouviu falar que "uma receita de bolo" é um algoritmo?

Um algoritmo pode ser definido como uma sequência finita e não ambígua de instruções (computáveis) para solucionar um problema.

A NÃO ambiguidade implica dizer que cada instrução do algoritmo deve ser precisamente definida, sem permitir mais de uma interpretação de seu significado. Neste caso, algoritmos devem se basear no uso de um conjunto de instruções bem definido, que constituem um vocabulário de símbolos LIMITADO.

Pseudo-Algoritmos são aproximações de algoritmos, onde existe um grau de ambiguidade não nulo em sua definição. Na realização de tarefas cotidianas usamos implicitamente vários pseudo-algoritmos. Utilizamos um vocabulário de termos aberto para descrever os pseudo-algoritmos. Por isto eles não são algoritmos de fato, devido ao elevado grau de ambiguidade na forma aberta com que são definidos. Para fazê-los de forma precisa e não ambígua seria necessário definir toda a mecânica contida em cada uma das ações corriqueiras como fritar ovos, andar, falar, cozinhar, apertar um botão, etc. Isto tornaria a construção de algoritmos cotidianos extremamente extensa e provavelmente inútil, pois quando dispostos a cooperar, realizamos tais ações complexas (andar, falar, etc.) de forma automática, devido à nossa elevada capacidade e plasticidade cognitiva.

Logo, um algoritmo deve ser constituído de operações computáveis, ou seja, de operações que podem escritas em alguma linguagem de programação. Portanto, uma "receita de bolo" não pode ser considerada um algoritmo.

Eventualmente, usamos o termo algoritmo para designar conjuntamente os algoritmos "computáveis" e os pseudo-algoritmos, deixando implícito que atividades realizadas por humanos são de fato pseudo-algorítmos.

É comum professores utilizarem o exemplo de receita de bolo para introduzir o conceito de algoritmo. Mas uma vez que o aluno já tenha associado o conceito formal de algoritmo computacional, acredito que a associação com "receita de bolo" deva ser eliminada.

Quem sou eu

Minha foto
Professor Titular do Departamento de Informática da Universidade Estadual de Maringá - Paraná, foi pesquisador visitante na University of Nottingham, UK. Bolsista produtividade em desenvolvimento tecnológico e inovação pelo CNPq (órgão federal). Membro do conselho técnico do Núcleo de Inovação Tecnológica da UEM.