• Nenhum resultado encontrado

Gostosão: Agente TAC SCM

N/A
N/A
Protected

Academic year: 2021

Share "Gostosão: Agente TAC SCM"

Copied!
8
0
0

Texto

(1)

Gostosão: Agente TAC SCM

Diogo Costa ei09116@fe.up.pt, Nuno Marinho ei06039@fe.up.pt,

Paulo Seabra ei05056@fe.up.pt,

Faculdade de Engenharia da Universidade do Porto Departamento de Engenharia Informática e de Computadores

Rua Roberto Frias, s/n, 4200-465 Porto, Portugal 30 de Junho de 2010

Resumo. Este artigo explica a implementação do agente Gostosão. O desenvolvimento do agente Gostosão é realizado no contexto da unidade curricular de Tecnologias para Negócio Electrónico, leccionada pela professora Dra. Ana Paula Rocha.

1 Introdução

O TAC-SCM é uma abreviatura de Trading Agent Competition – Supply Chain Manager, esta competição internacional é uma das mais importantes na área do comércio electrónico. Na implementação do agente Gostosão os três pontos principais são: negociação com cliente, negociação com fornecedor e planeamento/produção.

A grande dificuldade em modelar os comportamentos dos agentes prende-se com o facto de estes terem de tomar decisões sem conhecimento total de todas as variáveis em jogo. Torna-se portanto vital desenvolver métricas que estimem de um modo fiável as variáveis de decisão.

2 TAC-SCM

No jogo TAC-SCM seis agentes actuam como sendo produtores de computadores competindo numa economia comum simulada por um servidor. O jogo dura durante 220 dias simulados. No início do dia, os agentes recebem mensagens do servidor com informação sobre o estado do jogo, como os RFQ (Request for Quotes - Pedidos de orçamento) dos clientes, ordens de produção por partes dos clientes ou respostas a pedidos efectuados aos fornecedores. Os agentes têm até ao fim do dia para enviar ao servidor as suas acções para esse dia, tais como: aceitação ou não dos pedidos dos clientes ou envio de pedidos aos produtores.

(2)

Os pedidos dos clientes (RFQ’s) contêm obrigatoriamente identificação do pedido, identificação do produto, quantidade e data de entrega, podendo também conter informação relativa a penalidade por atraso na entrega e preço máximo a pagar por unidade.

Na relação com o cliente, o jogo é simples consiste em cada agente recebe por parte dos clientes pedidos, o agente responde aos pedidos com uma oferta e o cliente responde ou não com ordens de produção.

Na relação com o fornecedor, o agente efectua pedidos a fornecedores conforme as necessidades inerentes aos produtos que estão linha de produção, o fornecedor responde a esses pedidos com ofertas e o agente responde ou não com ordens de produção para os fornecedores.

Na fábrica, o agente ao receber ordens de produção por parte dos clientes reencaminha essas ordens de produção para a fábrica, a fábrica efectua o planeamento (ordena convenientemente) dessas ordens e produz efectivamente o produto, quando for possível efectuar a entrega ao cliente libertam-se os produtos da fábrica.

O problema seria bastante simples, se não existissem ainda custos de armazenamento na fábrica, custos de atrasos nas entregas, negociação com fornecedores e clientes, e ainda competição entre agentes.

Durante o jogo de 20 em 20 dias, são produzidos relatórios que sumariam o estado do mercado de clientes e fornecedores, relatórios estes bastante úteis para análise do mercado e consequentemente dos adversários, estes relatórios são bastante utilizados no Gostosão.

3 Arquitectura Gostosão

(3)

O agente pode ser dividido em 3 grandes módulos:

• Recepção de propostas e envio de contra-propostas aos clientes (Relação Clientes)

• Encomendas a fornecedores (Relação Fornecedores)

• Planeamento de produção e entrega (Planeamento/Produção)

Tem ainda um módulo estatísticas que tem como principal objectivo garantir a competitividade do agente.

4 Estratégias Gostosão

Convém primeiro referir que estruturas de dados são usadas e actualizadas pelo agente, essas estruturas na arquitectura do agente são o módulo estatísticas. Nos módulos relação com clientes e relação fornecedores essas estruturas vão sendo actualizadas. As estruturas são consultadas no módulo de relação com cliente para o agente responder ao respectivo RFQ. Estas estruturas de dados contêm estatísticas de jogo, como o número de RFQs recebidos e ganhos, e no caso dos primeiros 20 dias (altura em que recebemos o relatório de mercado) os últimos preços conseguidos de cada componente junto dos fornecedores. Estas estatísticas não só nos ajudam a calcular o preço mínimo como também nos ajudam a perceber a performance do nosso agente em relação aos adversários.

4.1 Análise de RFQ’s e contra-proposta (Relação com clientes)

Neste módulo as principais decisões do agente são, decidir quais RFQs são merecedores de resposta e saber que valores usar na contra-proposta, mais concretamente, que preços estabelecer.

As variáveis de decisão são o preço médio de compra de cada componente aos fornecedores, através dos relatórios de mercado disponíveis de 20 em 20 dias, o ultimo preço conseguido junto dos fornecedores para cada componente, ou no caso de não existir informação o preço base estabelecido no inicio do jogo para cada componente.

Em cada dia está disponível também o numero de RFQs recebidos à 2 dias atrás e o numero de ordens do dia anterior. Com estas variáveis de decisão esperamos obter alguma estimativa da competitividade do nosso agente no mercado.

Para cada um dos RFQs o agente primeiro vê se pode cumprir a data exigida, caso consiga é então estabelecido o preço mínimo para o produto exigido no RFQ, que é o somatório dos preços de venda dos fornecedores, ao qual acrescentamos uma dada margem de lucro.

Para determinar se o agente pode ou não satisfazer o pedido usamos uma heurística assente em dois aspectos fundamentais. Primeiro, o tempo desde o RFQ até à entrega, assumindo que não existe stock, é 5 dias. Em segundo lugar quanto mais a fábrica estiver ocupada mais difícil será de cumprir esse mínimo de 5 dias.

Portanto o nosso agente soma à data actual um numero N de dias e verifica se esse valor é inferior ou igual à data limite de entrega.

(4)

O número de dias N é calculado portanto da seguinte maneira:

N = 9 – 4F (1)

F = ciclos disponíveis no próximo dia / ciclos máximos da fábrica (2)

Quando a fábrica estiver com uma utilização baixa assumimos que serão precisos apenas 5 dias. Pelo contrário, quando a fábrica estiver muito perto do uso máximo, o agente só responde a pedidos com datas de entrega mais tardias.

O preço de oferta é baseado também numa heurística que assenta em dois princípios, não vender abaixo do preço de custo e maximizar a margem de lucro.

O preço mínimo ou preço de custo é o somatório dos preços de cada componente oferecidos pelos fornecedores. Estes valores são mantidos numa estrutura de dados actualizada pelo agente diariamente. Estes valores representam o preço a que um componente estava no dia anterior, como tal são previsões para o dia actual, podendo existir discrepâncias.

Tendo o preço mínimo de venda o agente adiciona-lhe uma margem de lucro que dependerá da sua performance no jogo, em que uma boa performance aumentará a margem de lucro e uma performance menos boa terá o efeito oposto.

A performance é calculada com base nas propostas ganhas comparativamente às propostas recebidas tendo em conta o número de oponentes.

Performance = Orders – RFQs / número de agentes (3)

De realçar que as ordens são referentes ao dia posterior aos RFQs, uma vez que só no dia seguinte sabemos quais dos RFQ recebidos ganhamos.

A performance é zero quando as ordens forem exactamente 1/6 da procura total. A performance é negativa quando o agente ganhar menos de 1/6 da procura e é positiva caso contrário. A performance é proporcional quanto maior for esta diferença.

O valor da performance é usado num algoritmo iterativo de actualização da margem de lucro da seguinte maneira:

lucro = Max(0.05, lucro + learningrate * performance) (4)

Em que learningrate é um parâmetro definido manualmente que é usado para regular o tamanho da modificação em cada iteração.

A ideia por detrás deste mecanismo é bastante simples, no final de cada dia a margem de lucro é ajustada com base na performance do agente nesse dia. Se o agente estiver

(5)

a ganhar bastantes ofertas então tenta ser um bocado mais ganancioso nos preços, caso esteja a ganhar poucos pedidos tenta ser mais competitivo e baixa a sua margem de lucro.

De notar que o lucro será o máximo entre o novo lucro e 0.05 o que significa que garantimos sempre que o agente tem um lucro mínimo de 5%. De reparar também que não existe limite máximo de lucro, no limite e sem competição, o agente estaria sempre a subir os preços enquanto existisse procura, que apesar de parecer monopolista, nos parece intuitivo.

4.2 Relação com fornecedores

O módulo de interacção com o fornecedor tem como principal responsabilidade a de assegurar que existe matéria-prima suficiente para garantir a produção dos produtos a entregar minimizando os custos associados.

As variáveis de decisão do agente serão as quantidades, preços e datas de compras, e combinações de várias estratégias de compra a vários fornecedores.

Convém definir alguma nomenclatura usada neste subcapítulo. Os fornecedores vendem o que é chamado de componentes. Estes componentes são a matéria-prima dos produtos ou computadores vendidos aos clientes. Os clientes compram portanto produtos ao agente e o agente compra componentes aos fornecedores ou suppliers.

Para cada componente disponível no mercado o agente calcula a quantidade total Q a pedir aos fornecedores.

Para um determinado componente i a quantidade Q vai depender do que é necessário comprar para assegurar as encomendas a entregar D e de uma quantidade mínima a ter em stock B.

lucro = Qi = Di + B (5)

Di = procura(i) – stock(i) (6)

B = 50 * (1 – dia actual / dia fim) (7)

(6)

Fig. 1. Representação de equação 7. À medida que os dias no campeonato passam o sotck base para cada componente cai de forma linear

Com a quantidade total para cada componente e 2 fornecedores para cada

componente, o agente teria de gerar várias combinações para vários fornecedores com várias quantidades e aceitar as que satisfizessem a quantidade total requerida ao menor custo. Por motivos de tempo o nosso agente ignora este passo e escolhe aleatoriamente um fornecedor para satisfazer a quantidade total de cada componente.

4.3 Planeamento / Produção fábrica

Em relação ao planeamento e produção da fábrica há um ponto principal que será o mais importante no desempenho de produção da mesma: a maximização da sua utilização.

Há vários factores que podem influenciar a produção da fábrica. Primeiramente, a estratégia de custos.

A estratégia de custos vai definir o número de pedidos activos que iremos obter dos clientes. Se o número for baixo, a utilização da célula de produção da fábrica será baixa e logo a eventual estratégia que terá adoptado será relativamente irrelevante.

Aceites e tratados pedidos dos clientes, as componentes disponíveis necessárias para a produção dos computadores têm um papel fundamental, o que implica que a estratégia de renovação de stock tenha também um papel muito importante no planeamento de produção. Caso esta estratégia permita a ausência de componentes necessárias para produção, em certos períodos de tempo, a produção da fábrica ira ressentir-se. É então necessário e fulcral que a estratégia de gestão de stocks permita a fabrica ter sempre disponíveis os componentes necessários à produção dos pedidos activos.

(7)

Estes dois pontos abordados e resolvidos, o foco do planeamento vai para a gestão de esforço da célula de produção.

A célula de produção possui uma capacidade de processamento de 2000 ciclos por dia. Em média um computador necessita de 5/6 ciclos para ser produzido. Ora, tento isto em conta, uma fábrica pode produzir à volta de 363 computadores por dia, o que, prevendo um bom desempenho da estratégia de preços e consequente ganho de vários pedidos por parte dos clientes, seria insuficiente para produzir todos os computadores requisitados.

De forma a maximizar esta produção é feita uma ordenação das ordens activas por quantidade de computadores encomendados. Esta ordenação garante duas grandes vantagens:

Ordenados os pedidos, o pedido com maior tamanho estará no topo do array, o segundo maior, na segunda posição, etc. , o algoritmo vai verificar o primeiro pedido e verificar se possui as condições para ser satisfeito, como, se a fabrica tem armazenadas as componentes necessárias, se as datas de entrega são validas (data máxima ate a penalização e data em que a fabrica deixa de produzir computadores no fim do ano) e se existem os ciclos necessários para produção daquela encomenda. Se sim, a encomenda é adicionada ao plano de produção, se não o é analisada a encomenda seguinte no array. Ora como estão ordenados por quantidade, não há o perigo de grandes encomendas ficarem de fora, mesmo havendo um espaço de utilização ainda que não suficiente.

Por exemplo, se existem várias encomendas de ciclos necessários, 300, 300, 250, 200, 300, 100, 700, por esta ordem de pedido. O que aconteceria era que as primeiras, 300, 300, 250, 200, 300, 100, que totalizavam um máximo de 1450 ciclos (73% da capacidade total), seriam processadas e a encomenda de 700 não, pois (apenas) haveriam 550 ciclos disponíveis.

Estando ordenadas por tamanho, em princípio, as encomendas que necessitam de mais ciclos, estarão primeiro. Assim, 700, 300, 300, 300, 250, 200, 100, o que usaria 1950 (700 + 300 + 300 + 300 + 250 + 100) ciclos da capacidade de produção da célula da fabrica, cerca de 98% da sua capacidade, o que comprova a maximização da produção da fabrica nesta decisão.

Outra vantagem nesta ordenação é que, havendo atrasos, serão apenas nas encomendas mais pequenas. Sendo as penalizações por computador, estas serão mínimas. É também esta a razão pela qual as encomendas estão organizadas por tamanho e não por ciclos necessários.

5 Resultados e conclusões

A maior dificuldade foi a de arranjar métricas para estimar correctamente as variáveis que não estão disponiveis durante as tomadas de decisao.

Os resultados obtidos aproximam o nosso agente a um agente dummy, tendo ocasionalmente picos de valores positivos.

Reparamos que muitas vezes a margem de lucro do agente durante os torneios contra os agentes dummy são minimas, o que nos leva a pensar que os mesmos fazem

(8)

margens de lucro muito pequenas o que leva o nosso agente a perder orders uma vez que tentamos sempre garantir um lucro minimo.

Outro aspecto é que o agente não faz uma analise de qual fornecedor é mais vantajoso para comprar. Isto causa que muitas vezes não temos componentes em stock porque o fornecedor a que pedimos não tinha, apesar de outro ter.

References

1. Tecnologias para o negócio electrónico, http://paginas.fe.up.pt/~eol/TNE/tne0910.html 2. Springer Science, http://www.springer.com/?SGWID=0-102-0-0-0

3. Página pessoal Ariel Geraldo, http://paginas.fe.up.pt/~ei02009/feupprojects.htm 4. Trading Agent Competition, http://www.sics.se/tac/page.php?id=1

5. Um agente para o Trading Agent Competition,

http://paginas.fe.up.pt/~eol/SMA/20022003/trabalhos/PRibeiroTAC/relatorio/index.ht ml

Referências

Documentos relacionados

As possibilidades de modulação e encaixe que as estantes POLY ECO oferecem, fazem delas um produto sob medida para qualquer ambiente que você queira deixar mais autêntico e

Vale ressaltar os estudos de Bastos (1998) que nortearão este estudo, uma vez que o mesmo afirma que novas tecnologias em processos de manufatura, equipamentos

Obs.: Para a fixação do barramento guia da mesa na máquina deverá usar os parafusos M8 x 25 mm, que devem ser parafusados de cima para baixo.. Barramento apoio

Em uma visita realizada à fábrica, foi observada a necessidade de utilizar o mapeamento de processos primeiramente como forma de identificação dos problemas por meio da

Este Trabalho de Conclusão de Curso (TCC) teve como objetivo principal o desenvolvimento de uma microcoleção de vestuário com características simbólicas e estéticas da cidade de

Esses sistemas trabalham com um modelo do chão de fábrica capaz de prever tempos e rotas para uma sequência de ordens de produção, e coleta dados do chão de

São comercializados neste formato apenas os shapes da medida padrão (BR). Cada caixa contém oito shapes, que serão posteriormente utilizados na montagem do skate no ponto

Frequentemente, quando o leitor se encontra com mais de um livro do mesmo autor, termina envolvido num mundo de recorrências.. A Crítica de Rodapé, assim chamada por ter