Definindo espaços de observação e ação em ambientes personalizados do Gym

Find AI Tools
No difficulty
No complicated process
Find ai tools

Definindo espaços de observação e ação em ambientes personalizados do Gym

Tópicos:

Introdução

Neste vídeo, vamos abordar a definição do método Init para o ambiente personalizado do gym no problema de gerenciamento de inventário. O método Init deve definir o espaço de observação e o espaço de ação do ambiente nas variáveis de instância self.observation_space e self.action_space, respectivamente. Além disso, qualquer outro código necessário para instanciar o ambiente também deve ser incluído aqui. Vamos nos concentrar na definição do espaço de observação e espaço de ação.

O Método Init do Ambiente Gim Personalizado

Ao definir o espaço de observação ou ação para qualquer ambiente personalizado, é necessário decidir três coisas. Primeiro, os limites superior e inferior da observação ou ação, que definirão os limites para o espaço. Segundo, o tipo da observação ou ação, que determinará qual tipo de espaço deve ser escolhido. A tabela abaixo lista os três casos mais comuns. Você pode encontrar a lista completa na documentação do Gym (acesse aqui para acessar a documentação do Gym). Terceiro, é necessário definir a forma da observação ou ação, caso seja uma matriz.

Tipo Descrição
Discrete(n) Espaço discreto com n elementos
`Box(low, high, ...) Espaço contínuo com valores entre low e high
MultiBinary(n) Espaço de vetor binário de tamanho n

Neste problema de gerenciamento de inventário, vamos definir o espaço de ação. Primeiro, os limites inferior e superior. Sabemos que a ação representa o número de produtos a serem pedidos em um determinado dia. Portanto, o limite inferior é 0, enquanto o limite superior é a capacidade máxima de armazenamento. Por exemplo, se a capacidade máxima for de 4.000 unidades, esse será o limite superior.

Em relação ao tipo de ação, como só podemos fazer pedidos de um número inteiro de unidades, a ação naturalmente é um número inteiro. No entanto, ao invés de escolher o tipo de espaço discreto, vamos escolher o tipo de espaço box. Isso ocorre porque, em problemas em que o número de ações possíveis é grande, como nesse caso, podemos simplificar o problema aproximando a ação usando um único número de ponto flutuante. Dessa forma, se treinarmos o agente para maximizar as recompensas usando ações de ponto flutuante, podemos simplesmente arredondar a previsão do agente para um número inteiro durante a inferência, sem perda significativa de desempenho. No contexto desse problema, a natureza inteira da ação não desempenha um papel crucial.

Portanto, vamos definir o espaço de ação como self.action_space = spaces.Box(...). No entanto, ainda não decidimos a forma do espaço de ação. Como os dados do tipo box são representados por matrizes em numpy, precisamos decidir a forma dessa matriz. Nesse caso, a matriz precisa representar apenas um número de ponto flutuante, então podemos usar uma matriz de classificação zero. Portanto, a forma será [1]. Além disso, o limite inferior do espaço de ação será 0 e o limite superior será a capacidade máxima (self.max_capacity).

Definindo o Espaço de Observação

Agora, vamos definir o espaço de observação. Novamente, precisamos decidir sobre três pontos-chave: limites, tipo e forma do espaço. A forma da observação depende do lead time, e o comprimento da matriz de observação self.obs_dim será igual a self.lead_time + 4.

Para os limites da observação, podemos defini-los individualmente para cada elemento da matriz de observação. Como todos os elementos da matriz de observação são positivos, o limite inferior para todos os elementos será 0. Portanto, podemos usar uma matriz preenchida com zeros como limite inferior.

O limite superior dos primeiros cinco elementos da matriz será dado pela capacidade de armazenamento, pois nem o inventário disponível nem as ações podem exceder isso. O limite superior dos outros parâmetros será definido por nós mesmos, para garantir que o ambiente cubra uma ampla gama de valores para a demanda, os preços e o custo de armazenamento.

Escolhemos arbitrariamente Max Daily Demand = 200 para a demanda diária máxima, Max Selling Price = 200 para o preço máximo de venda e Max Holding Cost per Unit = 5 para o custo de armazenamento máximo por unidade.

Dessa forma, podemos definir o limite superior da matriz de observação como obs_high = np.array([self.max_capacity, self.max_capacity, self.max_capacity, self.max_capacity, max_daily_demand, max_daily_demand, max_daily_demand, max_daily_demand, max_selling_price, max_selling_price, max_holding_cost, max_holding_cost]).

Quanto ao tipo de espaço, mais uma vez escolheremos o tipo de dados box, já que pelo menos um elemento (por exemplo, os preços) é um número de ponto flutuante. Portanto, o espaço de observação pode ser escrito como self.observation_space = spaces.Box(...). Definiremos o limite inferior e superior do espaço box usando obs_low (preenchido com zeros) e obs_high, respectivamente.

Conclusão

Neste vídeo, discutimos a definição do método Init para o ambiente personalizado do Gym no problema de gerenciamento de inventário. Definimos o espaço de observação e o espaço de ação, levando em consideração os limites, o tipo e a forma desses espaços. No próximo vídeo, mostraremos como implementar o método Reset para o ambiente de gerenciamento de inventário personalizado.

Destaques

  • Definir o método Init para um ambiente personalizado do Gym no problema de gerenciamento de inventário.
  • Decidir os limites, o tipo e a forma do espaço de observação e ação.
  • Utilizar o tipo de espaço Box para aproximar as ações de ponto flutuante.
  • Definir os limites inferior e superior para os espaços de observação e ação.

FAQ

Q: Por que escolher o tipo de espaço Box para aproximar as ações de ponto flutuante?

A: A escolha do tipo de espaço Box permite simplificar o problema, aproximando as ações usando um único número de ponto flutuante. Treinando o agente para maximizar as recompensas usando ações contínuas, podemos arredondar facilmente as previsões do agente para números inteiros durante a inferência sem perda significativa de desempenho.

Q: Posso definir um ambiente de gerenciamento de inventário com espaço de ação discreto em vez de espaço de ação contínuo?

A: Sim, você pode definir um ambiente de gerenciamento de inventário com espaço de ação discreto em vez de contínuo. No entanto, é importante considerar o desempenho e a eficácia do agente nesse tipo de configuração. Experimentar diferentes configurações de espaços de ação pode ser um projeto interessante para os cursos de curso.

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.