• Nenhum resultado encontrado

METODOLOGIA PARA O DESENVOLVIMENTO DO SIMULADOR MULTIAGENTE

3.1 DEFINIÇÃO DOS AGENTES DO SISTEMA

Uma das vantagens no desenvolvimento de um SMA é que a identificação dos agentes é feita, em grande parte dos casos, de maneira um-para-um em relação aos tipos de elementos existentes no domínio da aplicação. Assim, para o sistema proposto, foram identificados os seguintes tipos de agentes:

• Agente Navio: responsável por fornecer recursos ao SMA. O agente navio é um elemento dinâmico do sistema podendo ser incluído a qualquer momento. Ao ser inserido, o agente navio tem por objetivo descarregar seu inventário de óleo cru nos píeres de maneira otimizada;

• Agente Píer: responsável pela atracagem do maior número de navios. Ao receber a informação da chegada de um novo navio, o agente píer tenta recebê-lo procurando maneiras de minimizar os custos da atracagem e de maximizar os lucros do petróleo recebido. O píer só envia propostas para navios de tamanhos por ele suportados;

• Agente Tanque: responsável por armazenar os carregamentos de óleo cru provenientes dos navios. Seu objetivo é receber o maior volume possível de óleo. Ao receber dos píeres a informação da chegada de um navio, envia sua proposta para receber o carregamento de óleo. Sua proposta pode ser total ou parcial. Também é tarefa do agente tanque agendar a decantação, bem como negociar com o agente oleoduto o envio de seu inventário para a refinaria;

• Agente Oleoduto: possui a função de enviar os tipos de óleos dos tanques para a refinaria. Ao receber uma requisição de envio, o agente oleoduto verifica se a refinaria suporta o novo inventário, se positivo o descarregamento é agendado;

• Agente Refinaria: agente que consome óleo cru a uma vazão conhecida, envia constantemente informações aos oleodutos que alimentam a refinaria sobre sua situação e sua agenda de recebimento de novas quantidades de óleos crus, garantindo que seu estoque fique sempre entre o mínimo e o máximo estabelecido.

Para cada cenário de teste, pode existir um ou mais agentes de cada tipo, dependendo do número de elementos reais que devem ser simulados. Por exemplo, se há 10 tanques no porto, há 10 agentes tanque na simulação.

3.1.1 Cadeia de Suprimentos no Modelo do Porto

É possível realizar uma correspondência entre os tipos de agentes identificados com os elementos de uma cadeia de suprimentos tradicional (Figura 7).

Figura 7: Correspondência dos agentes do Modelo do Porto com uma cadeia de suprimentos tradicional

Os cinco tipos de elementos, Fornecedores, Compradores, Estoque, Vendedores e Consumidores, são os agentes comumente utilizados em um SMA de gerenciamento da cadeia de suprimentos, segundo o levantamento apresentado na Tabela 3.

No SMA proposto, os navios são os fornecedores da cadeia de suprimento, os quais possuem um inventário e desejam vendê-lo aos compradores, representados no SMA pelos píeres. Assim como nos leilões do mundo real, o fornecedor vende seu produto ao comprador que oferecer a maior quantia. A quantia oferecida pelo píer ao navio é o valor monetário que o sistema lucra se o navio atracar nesse píer. O lucro é calculado pelo somatório dos valores monetários agregados ao inventário de óleo do navio se os mesmos forem armazenados nos tanques escolhidos pelo píer. Do lucro são subtraídas as despesas para descarregar o inventário de óleo do navio.

O píer (comprador), por sua vez, verifica quais os produtos (classes de óleos) mais rentáveis para o inventário comprado do navio, armazenando-o nos tanques (estoque). No modelo do porto, pode-se considerar os tipos de óleos crus existentes nos navios como a matéria prima e as classes de óleos crus armazenadas nos tanques como o produto final.

Assim que o agente tanque estiver próximo de sua capacidade máxima, é enviada uma mensagem ao agente oleoduto (vendedor) solicitando o descarregamento do respectivo tanque. O agente oleoduto por sua vez solicita as informações de todas as refinarias (cliente da cadeia de suprimento) ligadas a ele, solicitando as informações para saber qual refinaria está com seu inventário mais próximo do mínimo ou que resultará em um maior lucro para o sistema. A refinaria é tratada como cliente da cadeia de suprimento.

3.1.2 Agentes Auto-Interessados x Agentes Benevolentes

Um dos objetivos desse trabalho é comparar o desempenho de dois SMA, um deles formados por agentes auto-interessados que compartilham poucas informações entre si e outro, por agentes benevolentes.

Inicialmente, foi modelado um sistema com agentes auto-interessados, no qual os agentes de um mesmo grupo não compartilham informações entre si, somente com os agentes de outros grupos. Por exemplo, para o agente píer (requisitante) alocar o petróleo de um navio nos agentes tanques (requisitado), é necessário que o agente requisitante envie uma mensagem a todos os agentes do grupo requisitado. Cada agente do grupo requisitado, por sua vez, procura receber sozinho o máximo do recurso oferecido pelo agente requisitante, sem trocar mensagens e sem saber a situação dos outros agentes do seu grupo. Como os agentes de um grupo não trocam informações, é difícil otimizar ao mesmo tempo o valor da função objetivo (lucro) e o horizonte de tempo necessário para o envio do óleo do porto para a refinaria, já que para a otimização de ambos, seria necessário conhecer a agenda completa dos outros agentes, a fim de encontrar alternativas que possam minimizar o horizonte de planejamento2 sem comprometer o valor da função objetivo. Por esse motivo optou-se por realizar dois testes diferentes com SMA auto-interessado: um deles visando maximizar exclusivamente o valor da função objetivo e o outro teste visando otimizar o horizonte de planejamento.

2 Horizonte de planejamento, no caso em estudo, é o tempo necessário (em horas) para enviar todo o inventário existente nos tanques para a refinaria.

Na abordagem com agentes benevolentes, como existe o compartilhamento de informações entre agentes de um mesmo grupo, é possível encontrar soluções que otimizem o valor da função objetivo e, ao mesmo tempo, o horizonte de tempo para envio de óleo do porto para a refinaria. Para alocação dos recursos (navios e óleos) é utilizado o protocolo FIPA Contract-Net no modelo do porto.