Você está na página 1de 2

Algoritmo Definio

Um algoritmo uma sequncia no ambgua de instrues que executada at que


determinada condio se verifique. Mais especificamente, em matemtica, constitui o
conjunto de processos (e smbolos que os representam) para efetuar um clculo.
O conceito de algoritmo freqentemente ilustrado pelo exemplo de uma receita, embora
muitos algoritmos sejam mais complexos. Eles podem repetir passos (fazer iteraes) ou
necessitar de decises (tais como comparaes ou lgica) at que a tarefa seja completada.
Um algoritmo corretamente executado no ir resolver um problema se estiver implementado
incorretamente ou se no for apropriado ao problema.
Um algoritmo no representa, necessariamente, um programa de computador, e sim os passos
necessrios para realizar uma tarefa. Sua implementao pode ser feita por um computador,
por outro tipo de autmato ou mesmo por um ser humano. Diferentes algoritmos podem
realizar a mesma tarefa usando um conjunto diferenciado de instrues em mais ou menos
tempo, espao ou esforo do que outros. Tal diferena pode ser reflexo da complexidade
computacional aplicada, que depende de estruturas de dados adequadas ao algoritmo. Por
exemplo, um algoritmo para se vestir pode especificar que voc vista primeiro as meias e os
sapatos antes de vestir a cala enquanto outro algoritmo especifica que voc deve primeiro
vestir a cala e depois as meias e os sapatos. Fica claro que o primeiro algoritmo mais difcil
de executar que o segundo apesar de ambos levarem ao mesmo resultado.
Os algortimos pode ser classificados em exatos ou aproximados (heursticos). Enquanto
alguns algoritmos encontram uma resposta exata, algoritmos de aproximao procuram uma
resposta prxima a verdadeira soluo, seja atravs de estratgia determinstica ou aleatria.
Possuem aplicaes prticas sobretudo para problemas muito complexos, do qual uma
resposta correta invivel devido sua complexidade computacional.
(ver mais detalhes em http://pt.wikipedia.org/wiki/Algoritmo)

Algoritmos Exemplos
Problema da Mochila (Knapsack Problem KP)
O problema da mochila consiste em determinar quais dos items de uma lista devero ser
escolhidos para serem carregados em uma mochila de capacidade Q (em peso). A cada item
da lista associado um par ordenado (qi , g i ), i = 1,..., n , que denotam, respectivamente, o peso
e o ganho do i-simo item. A seguir apresentado um algoritmo heurstico, baseado em uma
estratgia gulosa. A complexidade deste algoritmo O(n log2 n).

Algoritmo KP
P1.
P2.
P3.
P4.

P5.
P6.

Leia Q e (qi , g i ), i = 1,..., n . Inicialize o ganho total e a capacidade restante da


mochila.
Calcule ri = g i / qi , i = 1,..., n .
Ordene os items da lista por ordem decrescente de ri .
Tome os items na ordem estabelecida, e para cada item da lista verifique:
a) se a capacidade que resta na mochila permite o carregamento do item em questo,
inclua o item na mochila, desconte o valor de qi da capacidade restante da
mochila, e adicione g i no ganho total;
b) em caso contrrio, descarte o item.
Apresente os items a serem carregados, juntamente com a capacidade restante da
mochila e o ganho total.
Fim.

Obs: A resoluo do problema da mochila se presta para determinao de portflios timos


de investimentos. Cada alternativa de investimento corresponde a um item a ser colocado no
oramento da empresa que restrito e no pode ser ultrapassado. Como objetivo deseja-se
maximizar o ganho produzido pelos investimentos selecionados.
Problema de Empacotamento (Bin Packing Problem BPP)
O problema de empacotamento consiste em encontrar o menor nmero de caixas de
capacidade Q , necessrias para armazenar uma lista de items com peso qi , i = 1,..., n . Como
soluo deseja-se, ainda, a relao de items a serem alocados em cada caixa. A seguir
apresentado um algoritmo heurstico, baseado em uma estratgia gulosa, cuja complexidade
tambm O(n log2 n).
Algoritmo BPP
P1.
P2.
P3.

P5.
P6.

Leia Q e qi , i = 1,..., n . Existindo algum item, abra a primeira caixa.


Ordene os items da lista por ordem decrescente de qi .
Tome os items na ordem estabelecida, identificando, para cada um deles, a caixa de
menor indice na qual o mesmo poder ser alocado.
a) em no existindo tal caixa, adicione mais uma ao problema, alocando na mesma o
item em questo e atualizando a sua capacidade restante;
b) em caso contrrio, aloque o item na caixa identificada e desconte o valor de qi da
capacidade restante da mesma.
Apresente os items a serem alocados em cada caixa, juntamente com o nmero de
caixas necessrios.
Fim

Obs: Uma variante do problema de bin packing se presta para resolver o problema de
balanceamento de linhas de montagem. Este problema tambm encontra aplicaes na
soluo do problemas de roteirizao de veculos.

Você também pode gostar