SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
Introdução ao algoritmo
  Iteração de Política
        Daniel Baptista Dias

     Grupo de Planejamento, IME / USP
          05 de outubro de 2012
O algoritmo
•   Dado um Processo de Decisão Markoviano (MDP, do inglês Markov
    Decision Process), este algoritmo tenta encontrar uma política ótima uma
    aproximação no espaço de políticas


•   Ele se baseia na estrutura de um MDP para encontrar esta política ótima


•   Resolve problemas de horizonte infinito


•   Serve de inspiração para uma série de outros algoritmos que tentam
    encontrar uma política ótima através da melhoria de uma política existente
Processo de Decisão Markoviano
•   Para resolver um Processo de Decisão Markoviano, consideramos a
    seguinte estrutura de tupla 𝑀 = 𝑆, 𝐴, 𝑃, 𝑅 , onde:
     o 𝑆 é o conjunto finito de estados possíveis do problema
     o 𝐴 é o conjunto finito de ações executáveis no ambiente do
       problema
     o 𝑃 ∶ 𝑆 × 𝐴 × 𝑆 ↦ [0,1] é uma função de transição de estados
       probabilística
     o 𝑅 ∶ 𝑆 × 𝐴 ↦ ℜ é uma função que associa uma recompensa a uma
       ação aplicada em um determinado estado

•   Uma solução para um MDP pode ser dada pela função 𝜋 ∶ 𝑆 ↦ 𝐴, que
    define qual ação será tomada dado um estado. Esta função é chamada
    de política de um MDP.
Etapas do algoritmo
O algoritmo possui as seguintes etapas:

1. Atribui 𝑖 = 0 e seleciona uma política inicial aleatória 𝜋0 ;

2. (Avaliação da política) Dado a política aleatória 𝜋 𝑖 , resolve o sistema de
    equações abaixo, identificando os valores da função 𝑉𝑖 :

          𝑉𝑖 𝑠 = 𝑅 𝑠, 𝜋 𝑠    + 𝛾    𝑠′∈𝑆   𝑃 𝑠 ′ 𝑠, 𝜋 𝑠     𝑉𝑖 (𝑠 ′ ), para todo 𝑠 ∈ 𝑆

3. (Melhora da política) Escolhe uma política 𝜋 𝑖+1 seguindo o seguinte critério:


               𝜋 𝑖+1 𝑠 ∈ arg max 𝑅 𝑠, 𝑎 + 𝛾               𝑃 𝑠 ′ 𝑠, 𝑎 𝑉𝑖 (𝑠 ′ )
                              𝑎∈𝐴
                                                  𝑠′∈𝑆

4. Caso 𝜋 𝑖+1 = 𝜋 𝑖 , encerra as iterações. Caso contrário, incrementa 𝑖 em 1 e
    volta para o passo 2.
Exemplo
•   Problema: Robô Vigilante

     o Um robô deve permanecer em um corredor de um prédio vigiando,
       porém sem atrapalhar o fluxo de pessoas no corredor.

     o Como as pessoas vêm da salas de reunião e trafegam a esquerda, o
       robô deve dar prioridade a se locomover a direita.

     o Ao tentar mudar de lugar no corredor, existe uma probabilidade de o
       robô não conseguir se mover e se manter no mesmo lugar.
Exemplo
•   Características do problema:

     o 𝛾 = 0.9

     o S = 𝑒𝑠𝑞, 𝑚𝑒𝑖𝑜, 𝑑𝑖𝑟
     o A = 𝑝𝑒𝑟𝑚𝑎𝑛𝑒𝑐𝑒𝑟, 𝑝𝑎𝑟𝑎𝑒𝑠𝑞, 𝑝𝑎𝑟𝑎𝑑𝑖𝑟
     o R esq,∙ = −1, R meio,∙ = 0 , R dir,∙ = 4

     o   𝑃, conforme a figura abaixo:
Execução do algoritmo
Primeira iteração:

•   Passo 1:
     o 𝑖=0
     o 𝜋 𝑖 𝑒𝑠𝑞 = 𝑝𝑒𝑟𝑚𝑎𝑛𝑒𝑐𝑒𝑟
     o 𝜋 𝑖 𝑚𝑒𝑖𝑜 = 𝑝𝑒𝑟𝑚𝑎𝑛𝑒𝑐𝑒𝑟
     o 𝜋 𝑖 𝑑𝑖𝑟 = 𝑝𝑒𝑟𝑚𝑎𝑛𝑒𝑐𝑒𝑟

•   Passo 2 (avaliação da política):
     o resolver:
          𝑉0 𝑒𝑠𝑞 = 𝑅 𝑒𝑠𝑞, 𝜋 𝑒𝑠𝑞   + 𝛾    𝑠′∈𝑆   𝑃 𝑠 ′ 𝑒𝑠𝑞, 𝜋 𝑒𝑠𝑞     𝑉0 (𝑠 ′ )
          𝑉0 𝑚𝑒𝑖𝑜 = 𝑅 𝑚𝑒𝑖𝑜, 𝜋 𝑚𝑒𝑖𝑜      + 𝛾      𝑠′∈𝑆   𝑃 𝑠 ′ 𝑚𝑒𝑖𝑜, 𝜋 𝑚𝑒𝑖𝑜       𝑉0 (𝑠 ′ )
                                                    ′
          𝑉0 𝑑𝑖𝑟 = 𝑅 𝑑𝑖𝑟, 𝜋 𝑑𝑖𝑟   + 𝛾   𝑠′∈𝑆    𝑃 𝑠 𝑑𝑖𝑟, 𝜋 𝑑𝑖𝑟     𝑉0 (𝑠 ′ )
Execução do algoritmo
•   Passo 2 (cont):
     o transformando em números:
          𝑉0 𝑒𝑠𝑞 = −1 + 0.9 1 × 𝑉0 𝑒𝑠𝑞 + 0 × 𝑉0 𝑚𝑒𝑖𝑜 + 0 × 𝑉0 𝑑𝑖𝑟
          𝑉0 𝑚𝑒𝑖𝑜 = 0 + 0.9 0 × 𝑉0 𝑒𝑠𝑞 + 1 × 𝑉0 𝑚𝑒𝑖𝑜 + 0 × 𝑉0 𝑑𝑖𝑟
          𝑉0 𝑑𝑖𝑟 = 4 + 0.9 0 × 𝑉0 𝑒𝑠𝑞 + 0 × 𝑉0 𝑚𝑒𝑖𝑜 + 1 × 𝑉0 𝑑𝑖𝑟
     o resultando em:
          𝑉0 𝑒𝑠𝑞 = −10, 𝑉0 𝑚𝑒𝑖𝑜 = 0 e 𝑉0 𝑑𝑖𝑟 = 40

•   Passo 3 (melhoria da política):
     o resolução para cada estado de:
          𝜋1 𝑒𝑠𝑞 ∈ arg max 𝑅 𝑒𝑠𝑞, 𝑎 + 𝛾      𝑠 ′ ∈𝑆    𝑃 𝑠 ′ 𝑒𝑠𝑞, 𝑎 𝑉0 𝑠 ′
                          𝑎∈𝐴
          𝜋1 𝑚𝑒𝑖𝑜 ∈ arg max 𝑅 𝑚𝑒𝑖𝑜, 𝑎 + 𝛾             𝑠′∈𝑆   𝑃 𝑠 ′ 𝑚𝑒𝑖𝑜, 𝑎 𝑉0 (𝑠 ′ )
                            𝑎∈𝐴
          𝜋1 𝑑𝑖𝑟 ∈ arg max 𝑅 𝑑𝑖𝑟, 𝑎 + 𝛾     𝑠′∈𝑆      𝑃 𝑠 ′ 𝑑𝑖𝑟, 𝑎 𝑉0 (𝑠 ′ )
                          𝑎∈𝐴
Execução do algoritmo
•   Passo 3 (cont):
     o executando arg max 𝑎∈𝐴 para 𝜋1 𝑒𝑠𝑞 :
          𝑝𝑒𝑟𝑚𝑎𝑛𝑒𝑐𝑒𝑟, −1 + 0.9 1 × 𝑉0 𝑒𝑠𝑞
          𝑝𝑎𝑟𝑎𝑒𝑠𝑞, −1 + 0.9 1 × 𝑉0 𝑒𝑠𝑞
          𝑝𝑎𝑟𝑎𝑑𝑖𝑟, −1 + 0.9 0.3 × 𝑉0 𝑒𝑠𝑞 + 0.7 × 𝑉0 𝑑𝑖𝑟
     o resultando em:
          𝑝𝑒𝑟𝑚𝑎𝑛𝑒𝑐𝑒𝑟, −10
          𝑝𝑎𝑟𝑎𝑒𝑠𝑞, −10
          𝒑𝒂𝒓𝒂𝒅𝒊𝒓, 21.5

     o assim teremos 𝜋1 𝑒𝑠𝑞 = 𝑝𝑎𝑟𝑎𝑑𝑖𝑟

     o Executando para os outros estados e ações, teremos:
         𝜋1 𝑒𝑠𝑞 = 𝑝𝑎𝑟𝑎𝑑𝑖𝑟, 𝜋1 meio = 𝑝𝑎𝑟𝑎𝑑𝑖𝑟 e 𝜋1 dir = permanece
Execução do algoritmo
•   Passo 4
     o verifica se 𝜋1 = 𝜋0
          negativo, então incrementa 𝑖 para 1 e retorna ao passo 2


•   Executando mais uma iteração teremos:
     o 𝜋2 𝑒𝑠𝑞 = 𝑝𝑎𝑟𝑎𝑑𝑖𝑟, 𝜋2 meio = 𝑝𝑎𝑟𝑎𝑑𝑖𝑟 e 𝜋2 dir = permanece

     o como 𝜋2 = 𝜋1 , o algoritmo encerrará e considerará 𝜋 ∗ = 𝜋2

Weitere ähnliche Inhalte

Ähnlich wie Introdução ao algoritmo de iteração de políticas

14.3 derivadas parciais [pt. 1]
14.3 derivadas parciais [pt. 1]14.3 derivadas parciais [pt. 1]
14.3 derivadas parciais [pt. 1]Cristiano Miranda
 
Teoria de estimação
Teoria de estimaçãoTeoria de estimação
Teoria de estimaçãoManuel Vargas
 
MODEL-REFERENCE ADAPTIVE SYSTEMS (MRAS)
MODEL-REFERENCE ADAPTIVE SYSTEMS (MRAS)MODEL-REFERENCE ADAPTIVE SYSTEMS (MRAS)
MODEL-REFERENCE ADAPTIVE SYSTEMS (MRAS)Pedro Barata
 
Aula_Aplicacao de derivadas.pptx
Aula_Aplicacao de derivadas.pptxAula_Aplicacao de derivadas.pptx
Aula_Aplicacao de derivadas.pptxvaligepedro
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenaçãoJonas Mendonça
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptssuserd654cb1
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptssuserd654cb1
 
EnsMedio_Matemática_1Serie_Slides_Aula63.pptx
EnsMedio_Matemática_1Serie_Slides_Aula63.pptxEnsMedio_Matemática_1Serie_Slides_Aula63.pptx
EnsMedio_Matemática_1Serie_Slides_Aula63.pptxNAYARASALESBRITO
 
Desenvolvimento temporal de um sistema quântico
Desenvolvimento temporal de um sistema quânticoDesenvolvimento temporal de um sistema quântico
Desenvolvimento temporal de um sistema quânticoGabriela Moura
 
Aula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NA
Aula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NAAula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NA
Aula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NACloves da Rocha
 
Raciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
Raciocínio Lógico Aplicado a Resolução de Problemas MatemáticosRaciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
Raciocínio Lógico Aplicado a Resolução de Problemas MatemáticosAndré Constantino da Silva
 
ApostilaAlgoritmo
ApostilaAlgoritmoApostilaAlgoritmo
ApostilaAlgoritmoprogidio
 

Ähnlich wie Introdução ao algoritmo de iteração de políticas (20)

Estudos de Controle - Aula 10: Análise de Resposta Transitória e de Regime Es...
Estudos de Controle - Aula 10: Análise de Resposta Transitória e de Regime Es...Estudos de Controle - Aula 10: Análise de Resposta Transitória e de Regime Es...
Estudos de Controle - Aula 10: Análise de Resposta Transitória e de Regime Es...
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
14.3 derivadas parciais [pt. 1]
14.3 derivadas parciais [pt. 1]14.3 derivadas parciais [pt. 1]
14.3 derivadas parciais [pt. 1]
 
Estudos de Controle - Aula 11: Análise de Resposta Transitória e de Regime Es...
Estudos de Controle - Aula 11: Análise de Resposta Transitória e de Regime Es...Estudos de Controle - Aula 11: Análise de Resposta Transitória e de Regime Es...
Estudos de Controle - Aula 11: Análise de Resposta Transitória e de Regime Es...
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Teoria de estimação
Teoria de estimaçãoTeoria de estimação
Teoria de estimação
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
MODEL-REFERENCE ADAPTIVE SYSTEMS (MRAS)
MODEL-REFERENCE ADAPTIVE SYSTEMS (MRAS)MODEL-REFERENCE ADAPTIVE SYSTEMS (MRAS)
MODEL-REFERENCE ADAPTIVE SYSTEMS (MRAS)
 
Aula6final
Aula6finalAula6final
Aula6final
 
Aula_Aplicacao de derivadas.pptx
Aula_Aplicacao de derivadas.pptxAula_Aplicacao de derivadas.pptx
Aula_Aplicacao de derivadas.pptx
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Math
MathMath
Math
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.ppt
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
 
EnsMedio_Matemática_1Serie_Slides_Aula63.pptx
EnsMedio_Matemática_1Serie_Slides_Aula63.pptxEnsMedio_Matemática_1Serie_Slides_Aula63.pptx
EnsMedio_Matemática_1Serie_Slides_Aula63.pptx
 
Estudos de Controle - Aula 5: Espaço de Estados
Estudos de Controle - Aula 5: Espaço de EstadosEstudos de Controle - Aula 5: Espaço de Estados
Estudos de Controle - Aula 5: Espaço de Estados
 
Desenvolvimento temporal de um sistema quântico
Desenvolvimento temporal de um sistema quânticoDesenvolvimento temporal de um sistema quântico
Desenvolvimento temporal de um sistema quântico
 
Aula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NA
Aula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NAAula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NA
Aula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NA
 
Raciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
Raciocínio Lógico Aplicado a Resolução de Problemas MatemáticosRaciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
Raciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
 
ApostilaAlgoritmo
ApostilaAlgoritmoApostilaAlgoritmo
ApostilaAlgoritmo
 

Mehr von Daniel Baptista Dias

AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaAWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaDaniel Baptista Dias
 
De 0 ao infinito - Evoluindo um aplicativo Node.js em produção
De 0 ao infinito - Evoluindo um aplicativo Node.js em produçãoDe 0 ao infinito - Evoluindo um aplicativo Node.js em produção
De 0 ao infinito - Evoluindo um aplicativo Node.js em produçãoDaniel Baptista Dias
 
Sistemas distribuídos - uma introdução
Sistemas distribuídos - uma introduçãoSistemas distribuídos - uma introdução
Sistemas distribuídos - uma introduçãoDaniel Baptista Dias
 
Microserviços: uma introdução
Microserviços: uma introduçãoMicroserviços: uma introdução
Microserviços: uma introduçãoDaniel Baptista Dias
 
TDC - Processamento de dados em alta escala com Node.js e AWS Lambda
TDC - Processamento de dados em alta escala com Node.js e AWS LambdaTDC - Processamento de dados em alta escala com Node.js e AWS Lambda
TDC - Processamento de dados em alta escala com Node.js e AWS LambdaDaniel Baptista Dias
 
Domain Driven Design: como modelar uma aplicação em Node.js com DDD
Domain Driven Design: como modelar uma aplicação em Node.js com DDDDomain Driven Design: como modelar uma aplicação em Node.js com DDD
Domain Driven Design: como modelar uma aplicação em Node.js com DDDDaniel Baptista Dias
 
Domain Driven Design - Uma introdução
Domain Driven Design - Uma introduçãoDomain Driven Design - Uma introdução
Domain Driven Design - Uma introduçãoDaniel Baptista Dias
 
Processamento de dados com Node.js, AWS Lambda e Kinesis Streams
Processamento de dados com Node.js, AWS Lambda e Kinesis StreamsProcessamento de dados com Node.js, AWS Lambda e Kinesis Streams
Processamento de dados com Node.js, AWS Lambda e Kinesis StreamsDaniel Baptista Dias
 
Planejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDP
Planejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDPPlanejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDP
Planejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDPDaniel Baptista Dias
 

Mehr von Daniel Baptista Dias (13)

Object calisthenics
Object calisthenicsObject calisthenics
Object calisthenics
 
AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaAWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
 
De 0 ao infinito - Evoluindo um aplicativo Node.js em produção
De 0 ao infinito - Evoluindo um aplicativo Node.js em produçãoDe 0 ao infinito - Evoluindo um aplicativo Node.js em produção
De 0 ao infinito - Evoluindo um aplicativo Node.js em produção
 
Sistemas distribuídos - uma introdução
Sistemas distribuídos - uma introduçãoSistemas distribuídos - uma introdução
Sistemas distribuídos - uma introdução
 
Domain Driven Design Tático
Domain Driven Design TáticoDomain Driven Design Tático
Domain Driven Design Tático
 
Microserviços: uma introdução
Microserviços: uma introduçãoMicroserviços: uma introdução
Microserviços: uma introdução
 
Microservices: an introduction
Microservices: an introductionMicroservices: an introduction
Microservices: an introduction
 
Serverless API
Serverless APIServerless API
Serverless API
 
TDC - Processamento de dados em alta escala com Node.js e AWS Lambda
TDC - Processamento de dados em alta escala com Node.js e AWS LambdaTDC - Processamento de dados em alta escala com Node.js e AWS Lambda
TDC - Processamento de dados em alta escala com Node.js e AWS Lambda
 
Domain Driven Design: como modelar uma aplicação em Node.js com DDD
Domain Driven Design: como modelar uma aplicação em Node.js com DDDDomain Driven Design: como modelar uma aplicação em Node.js com DDD
Domain Driven Design: como modelar uma aplicação em Node.js com DDD
 
Domain Driven Design - Uma introdução
Domain Driven Design - Uma introduçãoDomain Driven Design - Uma introdução
Domain Driven Design - Uma introdução
 
Processamento de dados com Node.js, AWS Lambda e Kinesis Streams
Processamento de dados com Node.js, AWS Lambda e Kinesis StreamsProcessamento de dados com Node.js, AWS Lambda e Kinesis Streams
Processamento de dados com Node.js, AWS Lambda e Kinesis Streams
 
Planejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDP
Planejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDPPlanejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDP
Planejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDP
 

Introdução ao algoritmo de iteração de políticas

  • 1. Introdução ao algoritmo Iteração de Política Daniel Baptista Dias Grupo de Planejamento, IME / USP 05 de outubro de 2012
  • 2. O algoritmo • Dado um Processo de Decisão Markoviano (MDP, do inglês Markov Decision Process), este algoritmo tenta encontrar uma política ótima uma aproximação no espaço de políticas • Ele se baseia na estrutura de um MDP para encontrar esta política ótima • Resolve problemas de horizonte infinito • Serve de inspiração para uma série de outros algoritmos que tentam encontrar uma política ótima através da melhoria de uma política existente
  • 3. Processo de Decisão Markoviano • Para resolver um Processo de Decisão Markoviano, consideramos a seguinte estrutura de tupla 𝑀 = 𝑆, 𝐴, 𝑃, 𝑅 , onde: o 𝑆 é o conjunto finito de estados possíveis do problema o 𝐴 é o conjunto finito de ações executáveis no ambiente do problema o 𝑃 ∶ 𝑆 × 𝐴 × 𝑆 ↦ [0,1] é uma função de transição de estados probabilística o 𝑅 ∶ 𝑆 × 𝐴 ↦ ℜ é uma função que associa uma recompensa a uma ação aplicada em um determinado estado • Uma solução para um MDP pode ser dada pela função 𝜋 ∶ 𝑆 ↦ 𝐴, que define qual ação será tomada dado um estado. Esta função é chamada de política de um MDP.
  • 4. Etapas do algoritmo O algoritmo possui as seguintes etapas: 1. Atribui 𝑖 = 0 e seleciona uma política inicial aleatória 𝜋0 ; 2. (Avaliação da política) Dado a política aleatória 𝜋 𝑖 , resolve o sistema de equações abaixo, identificando os valores da função 𝑉𝑖 : 𝑉𝑖 𝑠 = 𝑅 𝑠, 𝜋 𝑠 + 𝛾 𝑠′∈𝑆 𝑃 𝑠 ′ 𝑠, 𝜋 𝑠 𝑉𝑖 (𝑠 ′ ), para todo 𝑠 ∈ 𝑆 3. (Melhora da política) Escolhe uma política 𝜋 𝑖+1 seguindo o seguinte critério: 𝜋 𝑖+1 𝑠 ∈ arg max 𝑅 𝑠, 𝑎 + 𝛾 𝑃 𝑠 ′ 𝑠, 𝑎 𝑉𝑖 (𝑠 ′ ) 𝑎∈𝐴 𝑠′∈𝑆 4. Caso 𝜋 𝑖+1 = 𝜋 𝑖 , encerra as iterações. Caso contrário, incrementa 𝑖 em 1 e volta para o passo 2.
  • 5. Exemplo • Problema: Robô Vigilante o Um robô deve permanecer em um corredor de um prédio vigiando, porém sem atrapalhar o fluxo de pessoas no corredor. o Como as pessoas vêm da salas de reunião e trafegam a esquerda, o robô deve dar prioridade a se locomover a direita. o Ao tentar mudar de lugar no corredor, existe uma probabilidade de o robô não conseguir se mover e se manter no mesmo lugar.
  • 6. Exemplo • Características do problema: o 𝛾 = 0.9 o S = 𝑒𝑠𝑞, 𝑚𝑒𝑖𝑜, 𝑑𝑖𝑟 o A = 𝑝𝑒𝑟𝑚𝑎𝑛𝑒𝑐𝑒𝑟, 𝑝𝑎𝑟𝑎𝑒𝑠𝑞, 𝑝𝑎𝑟𝑎𝑑𝑖𝑟 o R esq,∙ = −1, R meio,∙ = 0 , R dir,∙ = 4 o 𝑃, conforme a figura abaixo:
  • 7. Execução do algoritmo Primeira iteração: • Passo 1: o 𝑖=0 o 𝜋 𝑖 𝑒𝑠𝑞 = 𝑝𝑒𝑟𝑚𝑎𝑛𝑒𝑐𝑒𝑟 o 𝜋 𝑖 𝑚𝑒𝑖𝑜 = 𝑝𝑒𝑟𝑚𝑎𝑛𝑒𝑐𝑒𝑟 o 𝜋 𝑖 𝑑𝑖𝑟 = 𝑝𝑒𝑟𝑚𝑎𝑛𝑒𝑐𝑒𝑟 • Passo 2 (avaliação da política): o resolver:  𝑉0 𝑒𝑠𝑞 = 𝑅 𝑒𝑠𝑞, 𝜋 𝑒𝑠𝑞 + 𝛾 𝑠′∈𝑆 𝑃 𝑠 ′ 𝑒𝑠𝑞, 𝜋 𝑒𝑠𝑞 𝑉0 (𝑠 ′ )  𝑉0 𝑚𝑒𝑖𝑜 = 𝑅 𝑚𝑒𝑖𝑜, 𝜋 𝑚𝑒𝑖𝑜 + 𝛾 𝑠′∈𝑆 𝑃 𝑠 ′ 𝑚𝑒𝑖𝑜, 𝜋 𝑚𝑒𝑖𝑜 𝑉0 (𝑠 ′ ) ′  𝑉0 𝑑𝑖𝑟 = 𝑅 𝑑𝑖𝑟, 𝜋 𝑑𝑖𝑟 + 𝛾 𝑠′∈𝑆 𝑃 𝑠 𝑑𝑖𝑟, 𝜋 𝑑𝑖𝑟 𝑉0 (𝑠 ′ )
  • 8. Execução do algoritmo • Passo 2 (cont): o transformando em números:  𝑉0 𝑒𝑠𝑞 = −1 + 0.9 1 × 𝑉0 𝑒𝑠𝑞 + 0 × 𝑉0 𝑚𝑒𝑖𝑜 + 0 × 𝑉0 𝑑𝑖𝑟  𝑉0 𝑚𝑒𝑖𝑜 = 0 + 0.9 0 × 𝑉0 𝑒𝑠𝑞 + 1 × 𝑉0 𝑚𝑒𝑖𝑜 + 0 × 𝑉0 𝑑𝑖𝑟  𝑉0 𝑑𝑖𝑟 = 4 + 0.9 0 × 𝑉0 𝑒𝑠𝑞 + 0 × 𝑉0 𝑚𝑒𝑖𝑜 + 1 × 𝑉0 𝑑𝑖𝑟 o resultando em:  𝑉0 𝑒𝑠𝑞 = −10, 𝑉0 𝑚𝑒𝑖𝑜 = 0 e 𝑉0 𝑑𝑖𝑟 = 40 • Passo 3 (melhoria da política): o resolução para cada estado de:  𝜋1 𝑒𝑠𝑞 ∈ arg max 𝑅 𝑒𝑠𝑞, 𝑎 + 𝛾 𝑠 ′ ∈𝑆 𝑃 𝑠 ′ 𝑒𝑠𝑞, 𝑎 𝑉0 𝑠 ′ 𝑎∈𝐴  𝜋1 𝑚𝑒𝑖𝑜 ∈ arg max 𝑅 𝑚𝑒𝑖𝑜, 𝑎 + 𝛾 𝑠′∈𝑆 𝑃 𝑠 ′ 𝑚𝑒𝑖𝑜, 𝑎 𝑉0 (𝑠 ′ ) 𝑎∈𝐴  𝜋1 𝑑𝑖𝑟 ∈ arg max 𝑅 𝑑𝑖𝑟, 𝑎 + 𝛾 𝑠′∈𝑆 𝑃 𝑠 ′ 𝑑𝑖𝑟, 𝑎 𝑉0 (𝑠 ′ ) 𝑎∈𝐴
  • 9. Execução do algoritmo • Passo 3 (cont): o executando arg max 𝑎∈𝐴 para 𝜋1 𝑒𝑠𝑞 :  𝑝𝑒𝑟𝑚𝑎𝑛𝑒𝑐𝑒𝑟, −1 + 0.9 1 × 𝑉0 𝑒𝑠𝑞  𝑝𝑎𝑟𝑎𝑒𝑠𝑞, −1 + 0.9 1 × 𝑉0 𝑒𝑠𝑞  𝑝𝑎𝑟𝑎𝑑𝑖𝑟, −1 + 0.9 0.3 × 𝑉0 𝑒𝑠𝑞 + 0.7 × 𝑉0 𝑑𝑖𝑟 o resultando em:  𝑝𝑒𝑟𝑚𝑎𝑛𝑒𝑐𝑒𝑟, −10  𝑝𝑎𝑟𝑎𝑒𝑠𝑞, −10  𝒑𝒂𝒓𝒂𝒅𝒊𝒓, 21.5 o assim teremos 𝜋1 𝑒𝑠𝑞 = 𝑝𝑎𝑟𝑎𝑑𝑖𝑟 o Executando para os outros estados e ações, teremos:  𝜋1 𝑒𝑠𝑞 = 𝑝𝑎𝑟𝑎𝑑𝑖𝑟, 𝜋1 meio = 𝑝𝑎𝑟𝑎𝑑𝑖𝑟 e 𝜋1 dir = permanece
  • 10. Execução do algoritmo • Passo 4 o verifica se 𝜋1 = 𝜋0  negativo, então incrementa 𝑖 para 1 e retorna ao passo 2 • Executando mais uma iteração teremos: o 𝜋2 𝑒𝑠𝑞 = 𝑝𝑎𝑟𝑎𝑑𝑖𝑟, 𝜋2 meio = 𝑝𝑎𝑟𝑎𝑑𝑖𝑟 e 𝜋2 dir = permanece o como 𝜋2 = 𝜋1 , o algoritmo encerrará e considerará 𝜋 ∗ = 𝜋2