Programação Dinâmica C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 1 / 37
Programação Dinâmica a Programação Dinâmica (PD) é uma técnica muito útil que permite obter uma sequência de decisões inter-relacionadas, fornecendo um procedimento sistemático que determina a melhor combinação de decisões a PD é uma técnica genérica para resolver problemas e as equações recursivas usadas têm de ser determinadas especificamente para cada problema a PD realiza uma enumeração inteligente de todos os pontos admissíveis de um problema C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 2 / 37
a aplicação da PD pressupõe: particionar o problema em etapas nas quais as decisões são tomadas determinar uma relação de recorrência que nos leve de uma etapa para outra (muitas vezes esse movimento é efectuado de trás para a frente, de forma backward, de uma etapa para a anterior) C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 3 / 37
Características de problemas que podem ser resolvidos usando PD para a PD não existe uma formulação padrão, há, no entanto, uma estrutura geral comum os problemas são divididos em etapas (stages) que correspondem aos diferentes níveis naturais nos quais se estabelece uma sequência de decisões inter relacionadas a cada etapa está associado um número finito (ou infinito) de estados (states) que correspondem às diferentes situações possíveis de ocorrer nessa etapa, ou seja, às sol. admissíveis em cada etapa a decisão tomada em cada etapa transforma o estado da etapa corrente no estado inicial da etapa seguinte a decisão tomada em cada etapa tem o objectivo de obter um plano óptimo de decisões a fim de se determinar uma sol. óptima, além disso fornece a decisão óptima em cada estado de cada etapa C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 4 / 37
dada uma etapa, uma poĺıtica para as restantes etapas é independente das decisões tomadas nas etapas anteriores. Portanto, as decisões óptimas imediatas dependem apenas do estado actual e não da forma como esse estado foi alcançado - é o designado Princípio da Optimalidade. o plano de decisões para cada estado, em cada etapa, é identificado através de relações recursivas específicas para cada problema, que constituem as equações de programação dinâmica quando se usam as rel. recursivas, a obtenção da sol. óptima pode ser encontrada através de um processo backward da etapa final para a etapa inicial C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 5 / 37
Exemplo Uma assoc. intern. pretende melhorar as cond. de países subdesenvolvidos. Possui, de momento, 5 equipas médicas disponíveis para enviar para 3 países pelo que é necess. determ. qts equipas (se alguma) deve enviar para cada um destes países de forma a MAXIMIZAR os resultados das 5 equipas médicas (as equipas não podem ser dissociadas e todas têm de ser colocadas). A medida dos resultados esperados que está a ser usada é a de anos de vida adicionais de cada pessoa (para um país esta medida equivale ao aumento da esperança de vida). Na tabela seguinte temos uma estimativa dos valores dos anos de vida adicionais de cada pessoa ( 1000) para cada país e para cada possível colocação de uma equipa médica no terreno. Que colocação maximiza os resultados? n o de eq. país país país médicas 1 2 3 0 0 0 0 1 45 20 50 2 70 45 70 3 90 75 80 4 105 110 100 5 120 150 130 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 6 / 37
Etapas os três países - corresponde à decisão a tomar relativamente a cada país Variáveis de decisão x i (i = 1, 2, 3) será o n o de equipas a enviar para cada etapa (país) Estados estado de cada etapa que nos permita tomar a decisão nessa etapa a identificação dos estados pode não ser aparente para determ. os estados podemos fazer questões tais c/o - que mudanças de uma etapa para outra são efectuadas? C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 7 / 37
- uma vez efectuadas decisões nas etapas anteriores, c/o pode o estado da situação na etapa corrente ser descrito? - que informação acerca do estado corrente é necess. à det. da poĺıtica óptima nas etapas seguintes? para este problema temos s i é o n o de equipas médicas ainda disponíveis para enviar para os restantes países (i = 1, 2, 3) assim i = 1 s 1 = 5 e x 1 {0, 1,..., 5} i = 2, 3 s i = 5 (x 1 + + x i 1 ) e x i {0, 1,..., s i } C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 8 / 37
Equações recursivas seja p i (x i ) a medida de resultados correspondente a colocar x i equipas médicas no país i tal como indicado na tabela desta forma o objectivo é o de max s. a: 3 i=1 p i(x i ) 3 i=1 x i = 5 x i 0 e inteiros, i = 1, 2, 3 temos então, para i = 1, 2, 3 f i (s i, x i ) = p i (x i ) + max {xi+1,...,x 3 : 3 3 j=i x j =s i } j=i+1 p j(x j ) e fi (s i ) = max xi =0,1,...,s i f i (s i, x i ) C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 9 / 37
Mais precisamente f 3 (s 3, x 3 ) = p 3 (x 3 ) e f3 (s 3) = max x3 =0,1,...,s 3 f 3 (s 3, x 3 ) f 2 (s 2, x 2 ) = p 2 (x 2 ) + f3 (s 2 x 2 ) e f2 (s 2) = max x2 =0,1,...,s 2 {p 2 (x 2 ) + f3 (s 2, x 2 ) f 1 (s 1, x 1 ) = p 1 (x 1 ) + f2 (s 1 x 1 ) e f1 (s 1) = max x1 =0,1,...,s 1 {p 1 (x 1 ) + f2 (s 1, x 1 ) C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 10 / 37
e portanto, se definirmos f4 (.) = 0 temos f i (s i, x i ) = p i (x i ) + fi+1 (s i x i ), i = 3, 2, 1 e fi (s i ) = max xi =0,1,...,s i f i (s i, x i ), i = 3, 2, 1 as equações recursivas são então { f i (s i ) = max xi =0,1,...,s i {p i (x i ) + fi+1 (s i x i )}, i = 1, 2 f3 (s 3) = max x3 =0,1,...,s 3 {p 3 (x 3 )}. C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 11 / 37
para a última etapa: n = 3 s 3 x 3 f 3 (s 3, x 3 ) = p 3 (x 3 ) = f3 (s 3) 0 0 0 1 1 50 2 2 70 3 3 80 4 4 100 5 5 130 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 12 / 37
para a etapa anterior: n = 2 f 2 (s 2, x 2 ) = p 2 (x 2 ) + f3 (s 2 x 2 ) s 2 x 2 = 0 x 2 = 1 x 2 = 2 x 2 = 3 x 2 = 4 x 2 = 5 f2 (s 2) x2 0 0 0 0 1 50 20 50 0 2 70 70 45 70 0/1 3 80 90 95 75 95 2 4 100 100 115 125 110 125 3 5 130 120 125 145 160 150 160 4 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 13 / 37
agora para a primeira etapa: n = 1 f 1 (s 1, x 1 ) = p 1 (x 1 ) + f2 (s 1 x 1 ) s 1 x 1 = 0 x 1 = 1 x 1 = 2 x 1 = 3 x 1 = 4 x 1 = 5 f1 (s 1) x1 5 160 170 165 160 155 120 170 1 portanto a sol. óptima é x 1 = 1, x 2 = 3, x 3 = 1 f 1 (5) = 170, f 2 (4) = 125, f 3 (1) = 50 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 14 / 37
Aplicação aos Problemas Knapsack nos problemas tipo Knapsack, uma vez considerada a existência de n objectos, consideram-se n etapas em cada etapa j, a decisão a tomar será a da selecção ou não do objecto j, por forma a optimizar a utilidade total e a não violar a restrição de volume imposta há que decidir se x j = 1, o que significa que o objecto j é seleccionado, ou se x j = 0, o que significa que o objecto j não é seleccionado nos problemas tipo Knapsack, em cada etapa, os possíveis estados estão relacionados com a quantidade de volume usada pelos objectos seleccionados até ao momento C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 15 / 37
se o volume total disponível for de c unidades, os estados a considerar em cada etapa j (j = 1,..., n) são os possíveis valores de volume s j = 0, 1,..., c. a decisão tomada em cada etapa tem o objectivo de maximizar a utilidade na etapa j para um volume s j : f j (s j ) em cada etapa j, é identificado o valor da utilidade total f j (s j ) para todos os valores possíveis s j = 0, 1,..., c ao qual corresponde a sol. óptima xj para esse estado e essa etapa: fj (s j ) o valor óptimo do problema corresponde ao valor fn (c) C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 16 / 37
consideremos o problema Knapsack binário max s. a: n j=1 u jx j n j=1 v jx j c x j {0, 1}, j = 1,..., n as suas relações recursivas são f 1 (s 1 ) = { 0, s1 = 0,..., v 1 1 f 1 (s 1, 0), para x 1 = 0 u 1, s 1 = v 1,..., c f 1 (s 1, 1), para x 1 = 1 e para j = 2,..., n fj (s j ) = max{f j (s j, 0), f j (s j, 1)} = max{f j 1 (s j ), f j 1 (s j v j ) + u j } para s j = 0,..., c C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 17 / 37
Exemplo: consider. a seguinte instância do problema dada p/ n = 6 c = 12 u = (2, 5, 3, 4, 5, 4) v = (6, 8, 4, 6, 7, 2) i = 1 (etapa 1) s 1 = 0 1 2 3 4 5 6 7 8 9 10 11 12 x 1 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 1 = 1 2 2 2 2 2 2 2 f1 (s 1) 0 0 0 0 0 0 2 2 2 2 2 2 2 x1 0 0 0 0 0 0 1 1 1 1 1 1 1 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 18 / 37
i = 2 (etapa 2) s 2 = 0 1 2 3 4 5 6 7 8 9 10 11 12 x 2 = 0 0 0 0 0 0 0 2 2 2 2 2 2 2 x 2 = 1 5 5 5 5 5 f2 (s 2) 0 0 0 0 0 0 2 2 5 5 5 5 5 x2 0 0 0 0 0 0 0 0 1 1 1 1 1 i = 3 (etapa 3) s 3 = 0 1 2 3 4 5 6 7 8 9 10 11 12 x 3 = 0 0 0 0 0 0 0 2 2 5 5 5 5 5 x 3 = 1 3 3 3 3 3 3 5 5 8 f3 (s 3) 0 0 0 0 3 3 3 3 5 5 5 5 8 x3 0 0 0 0 1 1 1 1 0 0 0/1 0/1 1 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 19 / 37
i = 4 (etapa 4) s 4 = 0 1 2 3 4 5 6 7 8 9 10 11 12 x 4 = 0 0 0 0 0 3 3 3 3 5 5 5 5 8 x 4 = 1 4 4 4 4 7 7 7 f4 (s 4) 0 0 0 0 3 3 4 4 5 5 7 7 8 x4 0 0 0 0 0 0 1 1 0 0 1 1 0 i = 5 (etapa 5) s 5 = 0 1 2 3 4 5 6 7 8 9 10 11 12 x 5 = 0 0 0 0 0 3 3 4 4 5 5 7 7 8 x 5 = 1 5 5 5 5 8 8 f5 (s 5) 0 0 0 0 3 3 4 5 5 5 7 8 8 x5 0 0 0 0 0 0 0 1 0/1 0/1 0 1 0/1 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 20 / 37
i = 6 (etapa 6) s 6 = 0 1 2 3 4 5 6 7 8 9 10 11 12 x 6 = 0 0 0 0 0 3 3 4 5 5 5 7 8 8 x 6 = 1 4 4 4 4 7 7 8 9 9 9 11 f6 (s 6) 0 0 4 4 4 4 7 7 8 9 9 9 11 x6 0 0 1 1 1 1 1 1 1 1 1 1 1 sol. óptima utilidade total: f6 (12) = 11 de forma backward encontra-se agora x6 = 1 (v 6 = 2), x5 = 0, x 4 = 1 (v 4 = 6), x3 = 1 (v 3 = 4), x2 = 0, x 1 = 0 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 21 / 37
Aplicação ao Problema do Caminho Mais Curto numa rede estratificada (por níveis) podemos usar PD para determinar o CMC entre os nodos inicial s e terminal t uma etapa corresponde a um nível da rede a cada etapa (nível) temos o percurso óptimo do nodo terminal t, i.e. em cada etapa temos a melhor decisão para cada nodo desse nível desde o nodo t C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 22 / 37
consideremos a seguinte rede 5 4 3 2 1 0 níveis s a b c d e f g h i j k l m t 5 6 4 2 1 5 3 4 1 7 2 1 2 3 2 4 2 3 2 4 3 5 1 4 2 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 23 / 37
etapas níveis i = 0, 1,..., 5, seja N i o conjunto de nodos no nível i estado nodo corrente s i N i var. decisão x j nodo a visitar a partir do nível j etapa/nível 1 s 1 = j k l m x 1 = t (j, t) 5 (k, t) 1 (l, t) 4 (m, t) 2 f1 (s 1) 5 1 4 2 x1 t t t t C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 24 / 37
etapa/nível 2 s 2 = g h i x 2 = j (g, j) 5 + 4 k (g, k) 1 + 2 (h, k) 1 + 3 l (h, l) 4 + 2 (i, l) 4 + 4 m (i, m) 2 + 3 f2 (s 2) 3 4 5 x2 k k m C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 25 / 37
etapa/nível 3 s 3 = d e f x 3 = g (d, g) 3 + 7 h (d, h) 4 + 2 (e, h) 4 + 1 (f, h) 4 + 3 i (e, i) 5 + 2 (f, i) 5 + 2 f3 (s 3) 6 5 7 x3 h h h/i C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 26 / 37
etapa/nível 4 s 4 = a b c x 4 = d (a, d) 6 + 2 (b, d) 6 + 5 e (a, e) 5 + 1 (b, e) 5 + 3 (c, e) 5 + 4 f (c, f ) 7 + 1 f4 (s 4) 6 8 8 x4 e e f C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 27 / 37
etapa/nível 5 s 5 = s x 5 = a (s, a) 6 + 5 b (s, b) 8 + 6 c (s, c) 8 + 4 f 5 (s 5) 11 a x 5 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 28 / 37
caminho mais curto com custo 11 s a e h k t as equações recursivas são f 0 (s 0) = f 0 (t) = 0 e para i = 1,..., 5 e s i N i i (s i ) = min xi N i 1 f i (s i, x i ) e f i (s i, x i ) = c (si,x i ) + fi 1 (x i) sendo N i o conjunto de nodos do nível i f C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 29 / 37
Um problema de expansão óptima de capacidade Uma empresa de exploração de recursos energéticos renováveis pretende expandir a sua capacidade de produção. Para tal pretende planear a construção, nos próximos 6 anos, de um total de 8 novos parques eólicos. Tendo em conta que cada parque eólico demora 1 ano a construir há um custo fixo de 1500 u.m./ano sempre que há construção de parques eólicos em cada ano há uma capacidade de construção de, no máximo, 3 parques eólicos C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 30 / 37
o custo de construção de cada parque em cada ano e o número de parque que é necessário ter construído no final de cada ano pode ser consultado no quadro seguinte anos necessidade custo/parque 1000 1 1 5400 2 2 5600 3 4 5800 4 6 5700 5 7 5500 6 8 5200 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 31 / 37
etapas: variáveis: estados: equações de PD: cada ano j do projecto, j = 1,..., 6 x j {0, 1, 2, 3} indicam o número de parques a construir em cada ano número de parques eólicos já construídos fazendo f 7 (8) = 0 f j (s j, x j ) = 1500 + c j x j + f j+1 (s j + x j ) e f j (s j ) = min xj f j (s j, x j ) para j = 6,..., 1 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 32 / 37
j = 6 (ano 6) s 6 = j = 5 (ano 5) s 5 = 8 7 8 7 6 x 6 = 0 0 x 5 = 0 0 6700 x 6 = 1 6700 x 5 = 1 7000 13700 x 5 = 2 12500 f6 (s 6) 0 6700 f5 (s 5) 0 6700 12500 x6 0 1 x5 0 0 2 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 33 / 37
j = 4 (ano 4) s 4 = 8 7 6 5 4 x 4 = 0 0 6700 12500 x 4 = 1 7200 13900 19700 x 4 = 2 12900 19600 25400 x 4 = 3 18600 25300 f4 (s 4) 0 6700 12500 18600 25300 x4 0 0 0 3 3 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 34 / 37
j = 3 (ano 3) s 3 = 6 5 4 3 2 x 3 = 0 12500 18600 25300 x 3 = 1 14000 19800 25900 32600 x 3 = 2 13100 19800 25600 31700 38400 x 3 = 3 18900 25600 31400 37500 f3 (s 3) 12500 18600 25300 31400 37500 x3 0 0 0 3 3 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 35 / 37
j = 2 (ano 2) s 2 = j = 1 (ano 1) s 1 = 3 2 1 0 x 2 = 0 31400 37500 x 1 = 0 x 2 = 1 32400 38500 44600 x 1 = 1 50500 x 2 = 2 31300 38000 44100 x 1 = 2 49200 x 2 = 3 30800 36900 43600 x 1 = 3 48800 f2 (s 2) 30800 36900 43600 f1 (s 1) 48800 x2 3 3 3 x1 3 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 36 / 37
solução óptima valor = 48800 u.m. ano j 1 2 3 4 5 6 x j 3 3 0 0 2 0 total 3 6 6 6 8 8 C. Requejo (UA) Métodos de Investigação Operacional MIO 2015-2016 37 / 37