programacao dinamica

17
CAMILLA CANTUARIA BRAGA RAPHAEL CANTUARIA BRAGA PROGRAMAÇÃO DINÂMICA MACAPÁ 2010

Upload: thiago-de-sousa

Post on 14-Dec-2015

26 views

Category:

Documents


0 download

DESCRIPTION

Otimização e Pesquisa Operacional

TRANSCRIPT

CAMILLA CANTUARIA BRAGA RAPHAEL CANTUARIA BRAGA

PROGRAMAÇÃO DINÂMICA

MACAPÁ

2010

CAMILLA CANTUARIA BRAGA RAPHAEL CANTUARIA BRAGA

PROGRAMAÇÃO DINÂMICA

Trabalho apresentado à disciplina Pesquisa Operacional II do curso de Engenharia de Produção da Universidade do Estado do Amapá, sob orientação do Professor Valdemar Vilena.

MACAPÁ

2010

INTRODUÇÃO

A tomada de decisões dentro do processo produtivo das empresas, nos mais variados ramos de atividade, tem chamado cada vez mais a atenção dos responsáveis. Não basta apenas “achar” para que atitudes sejam tomadas, as decisões têm que ser embasadas em números que indiquem sua viabilidade e qualidade.

Dentro deste contexto, a Pesquisa Operacional apresenta ferramentas quantitativas para o auxílio destas decisões.

O presente material de apoio tem como objetivo apresentar uma destas ferramentas, a Programação Dinâmica.

A Programação Dinâmica, como uma técnica matemática utilizada na resolução de problemas que envolvem uma seqüência de decisões inter-relacionadas, busca a combinação de ótimas decisões.

Esperamos que com o acesso a este material incentivemos as pessoas a procurar conhecer melhor a Programação Dinâmica e, principalmente, começar a utilizá-la no processo decisório das empresas.

1. PROGRAMAÇÃO DINÂMICA – PD

Programação dinâmica é uma técnica matemática muito útil para tomar uma

seqüência de decisões inter-relacionadas.

Em contraste com a Programação Linear, não existe uma formulação

matemática para o problema de Programação Dinâmica – PD. Ao contrário, a PD é

uma abordagem genérica para resolução de problemas e as equações utilizadas

devem ser desenvolvidas de acordo com cada situação particular.

Portanto, é importante conhecer os elementos básicos que caracterizam

problemas de PD.

2. PRINCIPAIS ELEMENTOS DOS PROBLEMAS DE PROGRAMAÇÃO

DINÂMICA

O objetivo da otimização é determinar a política ótima que otimize a função

objetivo global do sistema nas suas n etapas.

Em cada Estágio de Decisão é possível definir o Estado da solução. O

Estado é o ponto de situação em que se pode estar como consequência da decisão

tomada no estágio anterior.

Em cada Estágio decide-se, para cada Estado, qual o Estado do Estágio

seguinte que oferece melhor retorno para a solução do problema.

“Para um dado estado do sistema, a política ótima para os restantes estados é independente da política de decisão adotada em estados anteriores”. (BELLMAN, Richard. Princípio da Otimidade, 1959)

3. CLASSIFICAÇÃO DOS PROBLEMAS DE PD:

Determinísticos: o estado do estágio seguinte está completamente

determinado pelos estados e decisões do estágio atual.

Discreto

Contínuo

Probabilísticos: existe uma distribuição de probabilidade para determinar

qual será o estado no próximo estágio.

Discreto

Contínuo

3.1 Metodologia

Estruturar a solução ótima para o último estágio;

Procurar uma solução descendente (recursiva), para calcular o valor ótimo

do resultado;

Calcular o valor ótimo de maneira ascendente;

Construir a solução.

4. PROBLEMA DE PD DETERMINÍSTICO E DISCRETO

Quando o Estado do próximo estágio é univocamente determinado (uma só

forma de expressão) pela decisão política sobre o estado atual está-se tratando de

um problema de Programação Dinâmica Determinística.

A estrutura básica da PD Determinística pode ser representada da seguinte

forma:

Sn: estado na etapa n

Xn: decisão política na etapa n

fn(s, xn): valor da função no estado s etapa n relativo a decisão política xn

f*n (xn): valor mínimo ou máximo da função na etapa n correspondente a uma

determinada decisão Xn.

Csxn: custo ou ganho para passar da etapa n estado no estado s para a etapa

n+1.

Problemas: Maximização ou Minimização

Valores: Discretos ou contínuos associados à variável de estado

O estado na etapa seguinte é completamente determinado pelo estado de

decisão política na etapa atual.

Para melhor compreender o conceito e desenvolvimento deste problema,

usaremos o exemplo a seguir.

Suponhamos que um acadêmico pretende minimizar o custo do transporte

entre a sua residência e a faculdade utilizando vários meios de transporte

disponíveis na rede seguinte:

O custo associado às relações existentes traduz-se nas seguintes matrizes de

transição:

Sendo a casa do acadêmico o ponto inicial do percurso e a faculdade o ponto

final temos quatro estágios (n = 4) como mostra a figura a seguir:

A solução será da forma: A X1 X2 X3 X4 = J

Sendo o custo de transporte associado à decisão, quando o acadêmico se

encontra no Estado esta relação recursiva é da forma:

f*n(s) = min {CSXn + f*n+1 (xn} xn

f*n(4), f*n(3), f*n(2), f*n(1)

O quadro seguinte ilustra as decisões associadas ao Estágio 4:

O quadro seguinte ilustra as decisões associadas ao Estágio 3:

O quadro seguinte ilustra as decisões associadas ao Estágio 2:

O quadro seguinte ilustra as decisões associadas ao Estágio 1:

Podemos então concluir que a política ótima tem um custo total mínimo de = 8

u.m.

Problema com múltiplas soluções. Existem três caminhos distintos com o

mesmo valor ótimo (com custo = 8 $.)

5. O PROBLEMA DA DILIGÊNCIA

Esse problema foi especialmente elaborado (Prof. Harvey M. Vagner) para

introduzir os conceitos e ilustrar os elementos da PD.

Um caçador de tesouros do Missouri (região central dos EUA) decidiu

participar da corrida do ouro na Califórnia (na metade do século 19). A viagem até a

Califórnia seria realizada por diligência através de território inseguro, correndo-se

riscos de ataque de assaltantes. Apesar de seu ponto de saída e destino serem

fixos, o caçador de tesouros tinha uma liberdade considerável para escolher por

quais estados ele deveria passar até chegar ao seu destino. O caçador era um

homem prudente e estava preocupado com sua segurança ao longo da viagem.

Depois de pensar um pouco, ele teve uma brilhante idéia para determinar a rota

mais segura. Empresas de seguros ofereciam apólices de seguro de vida para

passageiros de diligências. O custo das apólices para cada trecho percorrido era

calculado de acordo com as condições de segurança daquele trecho. Quanto mais

arriscada uma rota, mais caro o seguro. Assim, a rota mais segura deveria ser

aquela que tivesse a mais barata apólice de segura de vida associada.

Os custos das apólices de seguros associados a cada possível trecho da

viagem (do estado i para o estado j), denotados por cij são:

O ponto de partida e o ponto de chegada são fixos, mas o viajante tem a

liberdade de escolher os estados que quer passar. É preciso passar por 4 etapas

para concluir a viagem.

As rotas possíveis são mostradas na Figura abaixo.

O objetivo é decidir qual a rota que minimiza o custo total.

Inicia-se a solução a partir do problema menor onde o caçador quase

completou uma viagem e tem apenas mais um estágio a percorrer (n=4). A solução

óbvia para este problema é ir do seu estado atual (seja qual for – H ou I) para seu

destino final (estado J). A cada iteração subseqüente, o problema é ampliado

aumentando-se em 1 o número de estágios restantes para completar a viagem. Para

esse último problema ampliado, a solução ótima para onde se deve ir em seguida a

partir de cada estado possível pode ser encontrado relativamente fácil a partir dos

resultado obtidos na iteração anterior.

Seja fn(s,xn) o custo total da melhor política a ser adotada para o restante dos

estágios, dado que o caçador de tesouros está no estado s, pronto para seguir para

o estágio n e seleciona xn como seu destino imediato.

Dados s e n, seja xn qualquer valor de xn que minimiza fn(s,xn) e seja fn*(s) o

valor mínimo correspondente de fn(s,xn). Logo,

fn*(s) = min fn(s,xn) = fn(s,xn*)

onde:

fn(s,xn) = custo imediato (estágio n) + mínimo custo futuro (estágios n+1 em

diante)

De outra forma:

fn(s,xn) = cSXn + f*n+1(xn)

CSXn é dado nas tabelas para cij, com i = s (estado atual) e j = xn (o destino

imediato)

Como último destino (estado J) é alcançado ao final do estágio 4, fS*(J) = 0

O objetivo é encontrar f1*(A) e a rota correspondente. A PD faz isso

encontrando sucessivamente f4*(s), f3*(s), f2*(s), para cada um dos possíveis estados

s e utilizando f2*(s) para encontrar f1*(A).

Quando o caçador tem apenas mais um estágio para percorrer (n=4), sua rota

é determinada inteiramente por seu estado atual s (H ou I) e seu destino final x4 = J.

Assim, a rota final da diligência é s J. Tem-se que:

f4*(s) = f4(s,x4*) = f4 (s,J) = cs,J + f4+1*(J) = cs,J

Logo, a solução imediata para n=4 é:

Para n=3 tem-se:

Para n=2 tem-se:

Para n=1 tem-se:

Assim, existem 3 possíveis rotas que apresentam a mesma segurança

(menores custos de seguro):

A – C – E – H – J

A – D – E – H – J

A – D – F – I – J

Todas as rotas apresentam o mesmo custo total de f1*(A)=11.

6. PROGRAMAÇÃO DINÂMICA PROBABILÍSTICA

1

xn 2

S

Probabilidade

Contribuição do estágio n

Estado: sn Decisão

fn(sn,xn)

f*n+1(1)

f*n+1(2)

f*n+1(s)

A programação dinâmica probabilística diferencia-se da determinística no

sentido que o estado no próximo estágio não é completamente determinado pelo

estado e pela decisão política no estágio atual.

Existe uma distribuição de probabilidade que determinará qual será o próximo

estado.

Contudo, essa distribuição de probabilidade é completamente determinada

pelo estado e pela decisão política no estágio atual.

Estágio n Estágio n+1

CONCLUSÃO

A Programação Dinâmica é uma técnica bastante útil para tomar decisões

seqüencialmente inter-relacionadas.

Para tanto, faz-se necessário formular relações recorrentes apropriadas para

cada problema individual.

Em suma, é uma ferramenta de Pesquisa Operacional de extrema

importância quando se refere a tomada de decisões dentro de uma empresa e pode

ser aplicada de diversas formas, abrangendo os mais diversos tipos de situações.