lsa-pucrs / mas-pc-pucrs-2016

Repository for the 2016 MAS programming contest: https://multiagentcontest.org/
2 stars 1 forks source link

Post jobs #83

Open rafaelcaue opened 8 years ago

rafaelcaue commented 8 years ago

A minha troca de e-mails com o Sarmas me fez pensar que postar jobs pode aumentar significativamente a nossa chance contra o time dele.

Pensei em fazer os agentes que não estão indo explorar os shops no início ficarem postando jobs até a etapa de exploração terminar. Depois da exploração não postamos mais jobs. Podemos fazer metade posta priced e a outra metade posta auction.

guilhermekrz commented 8 years ago

Commitei um código inicial para isso no branch https://github.com/lsa-pucrs/mas-pc-pucrs-2016/tree/postJobsToOtherTeams (não fiz direto no main pq não estou muito seguro que ele esteja funcionando 100%). Basicamente o que fiz foi:

Não fiz eles escolheram sempre produtos com mais volume pq eventualmente eles já serão escolhidos (estamos postando muitoooos jobs). Os parâmetros de reward e deadline deixei com uns valores fixos. Não sei se poderíamos deixar eles variados, pq não sabemos quanto custa os produtos ou onde o outro time está. Acho que com aqueles parâmetros nunca alguém conseguirá completar os jobs, mas não sei, e por isso tá em um branch. Comentários/Sugestões?

Maumagnaguagno commented 8 years ago

Estava vendo o diff do novo branch e fiquei em dúvida quanto a linha 396:

+randomNumberOfItems(math.ceil(math.random(10)));

Pela documentação de random e ceil um número entre 0 e 9.9999 seria gerado e arredondado para um inteiro igual ou maior. Acredito que zero ainda possa ser retornado e isso geraria um job sem quantia ou inválido. Algo como a linha abaixo força um mínimo de 1 como quantia.

+randomNumberOfItems(math.ceil(math.random(9) + 1));
guilhermekrz commented 8 years ago

1e158cd83bedd85c4561c0897e73d488531ab2ac

guilhermekrz commented 8 years ago

Implementado o que discutimos na reunião. Todos os agentes free, durante a exploração, estão postando jobs. O que falta (não sei se consigo acabar até amanhã de manhã, mas vou tentar):

rafaelcaue commented 8 years ago

Se der faz só 1 postar, e ser 50/50 priced/auction.

guilhermekrz commented 8 years ago

Fiz o 2 (postar durante o go horse): c9e118ae533438cbcaa123ce01bb0982e26a762c

guilhermekrz commented 8 years ago

To perdido pra limitar o numero de agentes. Quando eles fazem o ring não parece ter um agente que saiba de todos os outros pra poder mandar algum agente ser o que fica postando jobs.

rafaelcaue commented 8 years ago

O 16 sabe, é ele que fecha o anel. Procura o plano sendAgentsToTheirShops em common strategies. Basta adicionar o nome do agente em uma lista todas vez que der um send. Nas linhas 327 a 332 (aqui no meu código) o veiculo 16 limpa umas crenças, ali tu pode consultar a tua lista e escolher um agente que não esteja naquela lista.

rafaelcaue commented 8 years ago

(ele limpa pq naquele momento já acabou e já esta tudo decidido, é aí que tem que escolher 1 agente)

guilhermekrz commented 8 years ago

feito \o/ 4757304711a9344f22aa50c3464405ec5d1f2c44

guilhermekrz commented 8 years ago

A estratégia durante o goHorse ta igual a da durante o exploration. Acho que não vou conseguir terminar até amanhã ele considerar os preços dos itens para o reward durante o goHorse.

rafaelcaue commented 8 years ago

Valeu GUilherme!!

Eu acho melhor deixar reward como 1 mesmo para garantir. Só vou aumentar um pouco o período das auctions.