• Nenhum resultado encontrado

MDP Fatorado: Solu¸c˜ oes baseadas em Programa¸c˜ ao Dinˆ amica

Para resolvermos um MDP Fatorado, s˜ao conhecidos algoritmos exatos e aproximados baseados em programa¸c˜ao dinˆamica, tais como: SPI [Boutilier et al., 1995], SPUDD [Hoey et al., 1999] e APRICODD [St-aubin et al., 2000]. Esses algoritmos criam um modelo abstrato em que estados similares s˜ao agrupados resultando em uma redu¸c˜ao do tamanho do espa¸co de estados e dessa maneira, tentam tratar a “maldi¸c˜ao da dimensionalidade de Bellman”.

O algoritmo SPI (Structured Policy Iteration) [Boutilier et al., 1995] usa ´arvores para agregar estados similares. Esse algoritmo implementa Iterac¸˜ao de Pol´ıtica modificada em que CPTs, recompensa, pol´ıticas e fun¸c˜oes valor s˜ao representadas por ´arvores de decis˜ao. Um inconveniente deste tipo de representa¸c˜ao ´e que n˜ao pode representar de forma compacta fun¸c˜oes com sub- estruturas compartilhadas, o que implica na replica¸c˜ao dos valores [Hoey et al., 1999]. Para lidar com este problema, foi proposto o uso de ADDs, no lugar de ´arvores de decis˜ao.

42 CAP´ITULO 4. PROCESSO DE DECIS ˜AO MARKOVIANO FATORADO

4.3.1 SPUDD

SPUDD (Stochastic Planning using Decision Diagrams) [Hoey et al., 1999] estende o algoritmo de Iterac¸˜ao de Valor para explorar a estrutura do dom´ınio de aplica¸c˜ao representada por uma DBN e ADD e encontrar uma solu¸c˜ao de maneira eficiente. Na Se¸c˜ao4.2 vimos que ADDs podem ser usados para representar de forma compacta tanto a fun¸c˜ao de transi¸c˜ao como CPTs quanto a fun¸c˜ao recompensa de um MDP. Adicionalmente, ADDs podem ser usados para representar a fun¸c˜ao valor, geralmente de forma extremamente compacta e agrupando estados de mesmo valor em cada itera¸c˜ao do algoritmo. Para isso, expressamos a atualiza¸c˜ao de Bellman na Iterac¸˜ao de Valor (Equa¸c˜oes (3.7) e (3.8)) usando opera¸c˜oes em ADDs da seguinte forma fatorada :

VDDt (~x) = max a∈A ( RDD(~x, a) ⊕ γ X ~ x0 n O i=1 PDD(x0i|paa(x0i), a)VDDt−1(~x 0) ) . (4.5)

em que as vari´aveis com ´ındice DD indicam fun¸c˜oes representadas por ADDs. Note que na Equa¸c˜ao (4.5) usamos a opera¸c˜ao un´aria de marginaliza¸c˜ao e as opera¸c˜oes bin´arias: ⊕, ⊗ e max(·, ·). Assim, o Vt(~x) resultante pode ser expresso como um ADD (uma vez que essas opera¸c˜oes s˜ao fechadas para ADDs).

SPUDD usa o algoritmo de Eliminac¸˜ao de Vari´aveis [Zhang and Poole, 1994] fazendo a marginaliza¸c˜ao sobre cada vari´avel de estadoP

x0i no lugar de fazer diretamente a marginaliza¸c˜ao sobre todos os estados P

~

x0. As principais fun¸c˜oes do SPUDD s˜ao:

• SolveMDP (Algoritmo 1) constr´oi uma serie de fun¸c˜oes valor t-est´agios-para-frente VDDt , representadas como ADDs. Primeiro, cria-se a representa¸c˜ao ADD de todas as CPTs das DBNs no MDP e inicializa-se a primeira fun¸c˜ao valor com 0. O la¸co ´e repetido at´e atingir um n´umero m´aximo de itera¸c˜oes (maxIter ) ou at´e que a condi¸c˜ao de t´ermino (BE < tol ) ´e satisfeita, em que o Erro de Bellman ´e definido como BE = max~x|Vt(~x) − Vt−1(~x)| e tol ´e a tolerˆancia. Em cada itera¸c˜ao o algoritmo Regress ´e chamado e VDDt ´e atualizado com o m´aximo sobre todos os QtDD (sendo que existe um QtDD para cada a¸c˜ao a). Em seguida, BE ´e computado e testado para terminar.

• Regress (Algoritmo 2) atualiza VDDt−1 (Atualiza¸c˜ao de Bellman), i.e., fornece o valor QtDD que seria obtido se executamos a a¸c˜ao a. Durante a atualiza¸c˜ao convertemos cada Xi para Xi0 (usando a fun¸c˜ao convertToPrimes) e as CPTs para a a¸c˜ao a s˜ao multiplicadas e marginalizadas (note que a marginaliza¸c˜ao ´e sobre cada vari´avel de estado). Finalmente, o valor futuro ´e descontado de um fator γ e a recompensa RDD ´e adicionada para completar a Atualiza¸c˜ao de Bellman.

SPUDD mostrou ser um m´etodo promissor para a resolu¸c˜ao de MDPs fatorados de maneira eficiente cuja estrutura pode ser explorada pelos ADDs. No pior caso, quando todos os estados tˆem valores diferentes, ou seja, n˜ao existe uma estrutura compacta que pode ser explorada pelos ADDs, a sobrecarga com a cria¸c˜ao de ADDs n˜ao ´e muito grave (SPUDD leva apenas uma constante vezes

4.3. MDP FATORADO: SOLUC¸ ˜OES BASEADAS EM PROGRAMAC¸ ˜AO DIN ˆAMICA 43

Algoritmo 1: SolveMDP(MDP, tol, maxIter ) input : MDP (given by hS, A, R, P, γi),

tol (tolerance that guarantees -optimality), maxIter (maximum number of iterations) output: VDDt (t-state-to-go value function)

begin 1 Create ADD CPTs CPTx 0 i a for MDP; 2 VDD0 = 0; 3 t = 0; 4

//construct t-stage-to-go value functions VDDt until termination condition is met 5 while i < maxIter do 6 t = t + 1; 7 VDDt = −∞; 8

//update VDDt with the max over all QtDD 9 foreach a ∈ A do 10 QtDD = Regress(VDDt−1, a); 11 VDDt = max(VDDt ,QtDD); 12

//compute Bellman Error (BE) and check for termination 13 DiffDD = VDDt VDDt−1; 14 BE = max(max(DiffDD),− min(DiffDD)); 15 if BE < tol then 16 break; 17 18 return VDDt ; 19 end 20 Algoritmo 2: Regress(VDD, a) input : VDD(value function),

a (action)

output: QDD (the value function obtained if executing a and acting so as obtain VDD thereafter)

begin 1

QDD = convertToPrimes(VDD); //convert variables Xi to Xi0 2

//CPTs are multiplied in and summed out 3 for all Xi0 in QDD do 4 QDD = QDD⊗ CPT x0i a ; 5 QDD =Px0 i∈X 0 iQDD; 6 QDD = RDD ⊕ (γ ⊗ QDD) ; 7 return QDD ; 8 end 9

o tempo da Iterac¸˜ao de Valor com espa¸co enumerativo) [Hoey et al., 1999]. Portanto, no pior caso, SPUDD mant´em a mesma complexidade dos algoritmos IV e IP.

44 CAP´ITULO 4. PROCESSO DE DECIS ˜AO MARKOVIANO FATORADO

Figura 4.12: a) A fun¸c˜ao valor Vtrepresentada como um ADD. b) O resultado do passo de redu¸c˜ao de ADDs de APRICODD, que substitui os n´os internos por um intervalo de valores.

4.3.2 APRICODD `

As vezes, ´e imposs´ıvel obter solu¸c˜oes exatas devido `as limita¸c˜oes de tempo e espa¸co. Assim, a fim de resolver MDPs grandes, muitas vezes temos que recorrer a m´etodos aproximados.

APRICODD (Approximate Policy Construction using Decision Diagrams) [St-aubin et al., 2000] ´e uma vers˜ao aproximada de SPUDD com um passo adicional ap´os a linha 17 do algoritmo SolveMDP (Algoritmo 1), que reduz o tamanho das fun¸c˜oes valor geradas durante a Iterac¸˜ao de Valor. Para isso, APRICODD poda n´os internos na representa¸c˜ao ADD da fun¸c˜ao valor (VDDt ) e os substitui com o valor m´ınimo e m´aximo das folhas, criando um novo ADD reduzido em cada itera¸c˜ao, cujas folhas s˜ao representadas por intervalos de valores reais. Um exemplo ´e mostrado na Figura4.12. ´E importante notar que este m´etodo ainda produz garantias sobre o erro de aproxima¸c˜ao [St-aubin et al., 2000].