• Aucun résultat trouvé

2.2 Le structuralisme

2.2.2 Structuralisme européen

2.2.1

Conceitos

A programação dinâmica (PD) é uma técnica de investigação operacional para maximização ou minimização de funções lineares ou não lineares. Esta técnica é adequada para determinação da solução dos problemas de gestão de povoamentos florestais com estrutura regular (as ár- vores que compõem o povoamento têm sensivelmente a mesma idade) e composição pura (uma única espécie no povoamento), uma vez que consiste na decomposição do problema inicial em subproblemas, pressupondo que as intervenções se vão realizando ao longo do tempo.

A programação dinâmica decompõe o problema inicial numa sequência de problemas isola- dos (subproblemas), ligados entre si de forma recursiva, de modo a simplificar o processo de determinação da solução.

A resolução de um problema de optimização, recorrendo à programação dinâmica, pressupõe a decomposição do problema em etapas de decisão distintas. Um estágio corresponde a um período de tempo, no qual há um momento onde se toma uma decisão. O momento da tomada de decisão pode situar-se no início ou no fim do estágio. Na restante exposição deste capítulo, pressupõe-se que a tomada de decisão ocorre no final de cada estágio. Normalmente, os estágios são definidos com base no momento do tempo em que são tomadas as decisões, por exemplo, no caso dos problemas de gestão de povoamentos florestais, um estágio pode ser definido com base na idade do povoamento ou na sequência do possível número de decisões a tomar.

2.2 Programação dinâmica determinística 21

nas quais o sistema se pode encontrar em cada estágio. Nos problemas de gestão de povoamentos florestais, os estados podem ser traduzidos por um conjunto de variáveis que caracterizam o povoamento num determinado momento. A programação dinâmica pressupõe a resolução de um subproblema para cada estado, em cada estágio.

Irá assumir-se a programação dinâmica discreta, uma vez que se considera que os estados são discretizados.

Definição 2.1 Sejam,

 o conjunto de estágios,  = {1    } ;

 é o conjunto de estados onde o sistema se pode encontrar no estágio , = {1  } ;

 é o conjunto de possíveis decisões a tomar durante o estágio , = {0  } 

Os conjuntos dos estágios e dos estados não têm de ser obrigatoriamente finitos.

A programação dinâmica pressupõe uma função de retorno, uma função de transição e uma relação recursiva.

Definição 2.2 (Função retorno) :  ⊆ ×→ R é uma função que traduz o resultado

da decisão, tomada num determinado estágio, em termos do objectivo definido.

Definição 2.3 (Função de transição) :  ⊆ × → +1 é uma função que permite

a conversão de um estado, num determinado estágio, noutro estado no estágio seguinte, devido à tomada de uma decisão.

Definição 2.4 (Relação recursiva) Relação que permite determinar o valor das possíveis de- cisões num estado, em determinado estágio, considerando o resultado da decisão imediata e o resultado de decisões em estágios anteriores ou posteriores.

A relação recursiva depende do método utilizado para determinar a solução do problema. A solução determinada pela programação dinâmica pode ser obtida utilizando dois métodos diferentes: backward solving method ou foward solving method. A solução é independente do método utilizado. Em cada um dos casos, é necessário conhecer as condições iniciais, ou seja, os valores associados ao nó inicial ou final. Estes dois métodos são apresentados na secção 24 deste capítulo.

O problema de optimização pode ser representado graficamente numa rede, como é ilustrado na figura 2.2, o que muitas vezes facilita a sua formulação.

Figura 2.2: Representação gráfica, numa rede, de um problema em programação dinâmica.

Os nós da rede representam possíveis combinações de valores para as variáveis de estado, num determinado estágio. A tomada de decisão num determinado estágio é independente das decisões tomadas em estágios anteriores, pois as decisões tomadas num dado estágio dependem apenas do estado em que o sistema se encontra e não do caminho de decisões que conduziu o sistema até esse estado. Os arcos da rede correspondem a decisões que decorrem de um objectivo definido, permitindo a transição entre estados de estágios consecutivos.

2.2.2

Formulação do modelo

Na figura 2.3 é ilustrado um subproblema do problema global, onde  identifica o estágio,  corresponde ao estado no início do estágio  enquanto +1 designa o estado no final do estágio , que resulta da decisão tomada nesse estágio e que corresponde também ao estado do início do estágio  + 1 O valor actual do retorno obtido como resultado da decisão  tomada

no estágio  a partir do estado  é denotado por ( )

Um problema para ser resolvido pela programação dinâmica deve consistir numa sequência de decisões 1  . Cada decisão tomada no estágio  tem duas consequências. Uma delas é a alteração do estado  no estágio  para o estado +1 no estágio  + 1. Esta alteração é

2.2 Programação dinâmica determinística 23

Figura 2.3: Caracterização de um subproblema.

traduzida pela função transição, descrita de modo genérico, pelas equações (2.4).

+1= ( ) (2.4)

A outra consequência da tomada da decisão é a geração de um resultado dado pela função retorno ( ) O objectivo global do problema consiste na selecção da sequência de decisões

1  , tal que a função objectivo associada ao retorno seja optimizada. Normalmente, a função objectivo mais frequente corresponde à soma dos valores actuais dos retornos obtidos nos diferentes estágios. Apesar das funções objectivo mais comuns serem aditivas, não é obrigatório que assim seja; há outros tipos de funções objectivo separáveis que garantem a verificação do princípio da optimalidade. A decisão final  determina o último estado  +1 ao qual

poderá estar associado um valor actual -  ( +1) - que deve ser adicionado à função objectivo. Considerando uma função objectivo aditiva, esta poderá ter a forma apresentada na equação (2.5). max 1  X =1 ( ) +  ( +1), com +1= ( ) (2.5)

A equação recursiva correspondente à equação (2.5), necessária para resolver o problema em programação dinâmica, é definida pela equação (2.6), onde () representa o melhor valor

+1, no estágio  + 1 () = max  0 £ ( ) + +1(+1) ¤  com  = 1   (2.6) A condição inicial do processo de decisão é definida pela equação (2.7).

 +1( +1) =  ( +1) (2.7)

O valor de 1(1) corresponde ao valor da função objectivo, dado pela equação (2.5).