Você está na página 1de 6

Algoritmos e Heurstica

Um algoritmo um conjunto definido de instrues computacionais sequenciais, utilizado para obter um determinado resultado a partir de dados fornecidos. As heursticas tambm so algoritmos, mas que se aplicam a problemas demasiado complexos para serem resolvidos explicitamente aqueles para os quais no h um "caminho" computacional para encontrar "a soluo". As heursticas so diretivas ou "regras por alto" de como resolver um problema. Utilizam-se heursticas para resolver problemas em que o meio demasiado complexo, mas tambm quando dinmico, enquadrando-se nesta ltima categoria aqueles em que o sistema est sujeito a interao com o meio exterior. Na vida real, um algoritmo "simples" pode ser uma linha de montagem de qualquer processo industrial; ou uma receita de culinria onde suposto no haver imprevistos; ou o processo de ir de um stio ao outro de comboio. Uma heurstica pode ser o projeto de arquitetura de uma fbrica, a resoluo de problemas de uma receita de culinria que deu errrado; ou ir de um stio para ou outro conduzindo um carro atravs do trnsito automvel. Nestes ltimos exemplos, h uma componente de "deciso" que escapa especificao procedimental. Em meios matemticos ou computacionais, utilizam-se algoritmos (do primeiro tipo) por exemplo no clculo estrutural de um edifcio. As heursticas utilizam-se por exemplo na elaborao um programa que "saiba" jogar o jogo de damas ou xadrez. Na implementao computacional de heursticas, tomamos o exemplo de um jogo de xadrez, no basta que o jogo saiba mexer as peas e como so capturadas, que saiba que o objetivo "ganhar" e que ganha o primeiro jogador que faa um cheque ao Rei sem resposta possvel. Nem h avaliaes qualitativas como as que o crebro humano realiza. preciso que o jogo tenha um algoritmo (uma "funo posicional"), que a partir de uma dada configurao de peas no tabuleiro, e de um conjunto de ponderaes internas, devolva valores numricos que sirvam para alimentar o sistema de deciso. Para um determinado tabuleiro, o programa determina quais so as suas jogadas "legais". Para cada uma avalia o "valor" correspondente. E depois repete o processo para possveis contra-jogadas do adversrio; e depois repete o processo at "profundidade" possvel ou desejada. No fundo, est analisando "vrias jogadas frente", avaliando cada uma de acordo com a sua escala de valorao. No fim, tem uma rvore de alternativas, cada uma com uma avaliao numrica, e considerando que o jogador adversrio vai tentar maximizar as suas possibilidades de ganhar [aqui entra uma ramificao interessante da Teoria dos Jogos], escolhe uma jogada. Eventualmente este processo conduzir a uma vitria da mquina sobre o adversrio. Na programao de uma heurstica do gnero, o mais difcil no mover peas, ou determinar as jogadas legais, ou mesmo montar o sistema de construo da "rvore" de jogadas, ou problemas tcnicos muito complexos como tornar mais eficiente o imenso volume de clculo envolvido mas sim a construo da funo de valor, e a calibrao dos respectivos parmetros. Conclumos que algoritmos heursticos so aqueles que no apresentam garantia de determinao da soluo tima para o problema estudado. Os mtodos aproximativos podem se enquadrar nesta categoria, acrescentando-se

que, para estes casos, so conhecidas propriedades com garantia do pior caso. Entretanto, nem todo algoritmo heurstico aproximativo, ou seja, nem toda heurstica tem uma razo de qualidade comprovada matematicamente ou prova formal de convergncia, ou seja a heurstica um conjunto de regras e mtodos que conduzem descoberta, inveno e resoluo de problemas. Por este motivo, em vrias referncias bibliogrficas distingue-se os termos algoritmo aproximativo e heurstica:
o aproximativo a denominao do algoritmo que fornece solues dentro de um limite de qualidade absoluto ou assinttico, assim como um limite assinttico polinomial de complexidade (pior caso) comprovado matematicamente; heurstica e mtodo heurstico so denominaes para o algoritmo que fornece solues sem um limite formal de qualidade, tipicamente avaliado empiricamente em termos de complexidade (mdia) e qualidade das solues.

Mtodos heursticos geralmente se enquadram dentro dos seguintes grupos:

heursticas de construo, tais como o mtodo guloso, que so aquelas onde uma ou mais solues so construdas elemento a elemento, seguindo algum critrio heurstico de otimizao, at que se tenha uma soluo vivel; heursticas de busca em vizinhana, como a busca local, as quais necessariamente partem de uma soluo inicial vivel (em alguns casos podendo ser somente uma soluo possvel qualquer), tentando melhorar esta soluo atravs de operaes de troca, remoo ou insero, at que no seja mais possvel a melhoria ou algum outro critrio de parada seja satisfeito; heursticas sistemticas, tais como a Busca com Discrepncia Limitada ou Backtracking Controlado, onde a rvore de espao de solues percorrida utilizando critrios de ramificao e corte da rvore; heursticas hbridas, resultantes da combinao de duas ou mais heursticas com estratgias diferentes; metaheursticas, que so heursticas genricas mais sofisticadas, onde uma heurstica mais simples gerenciada por um procedimento que visa explorar inteligentemente a instncia do problema e o seu espao de solues.