lsa-pucrs / mas-pc-pucrs-2016

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

Problem with our battery recharge strategy #70

Closed rafaelcaue closed 8 years ago

rafaelcaue commented 8 years ago

Não é só quando o agente não começa perto o suficiente de uma charging station que a nossa estratégia não funciona.

Se o objetivo estiver longe o suficiente (i.e., o veículo não tem bateria para ir até la), e o veículo consegue chegar na charging station mais próxima dele, mas mesmo com a bateria cheia não da para chegar no objetivo. Ele tentaria ir para o charging station mais próximo novamente, que seria o que ele está. Vide imagem abaixo:

ex

Uma solução seria ir para outro charging station mais próximo (e.g., desconsiderar rotas com valor 0). Acho que a melhor solução seria ir para o charging station mais próximo do objetivo.

O que acham?

Maumagnaguagno commented 8 years ago

Faz sentido, poderíamos também deixar isso pré-calculado já que não importa a posição do agente, apenas dos pares de facility.

rafaelcaue commented 8 years ago

Commit 2121241604e7946082acec4a5e8f7a5dac88e744 melhorou bastante o nosso comportamento de carregar a bateria, porém ainda acontece de chamar o service breakdown.

Temos que testar mais e descobrir por que isso acontece.

rafaelcaue commented 8 years ago

Finally! Tive que adicionar uma gordurinha de 10 no cálculo da bateria, tinha alguns agentes que estavam morrendo a um passo das charging stations.

O pior bug de encontrar foi perceber que os agentes calculavam se tinha bateria suficiente para chegar no objetivo e na charging station mais próxima, mas a nossa nova estratégia pode não adicionar essas charging stations na lista de charging stations que estão entre nós e o nosso objetivo.

Adicionei uma outra regra que testa se o agente tem bateria suficiente para chegar na charging station escolhida pela nossa estratégia, caso contrário ele vai para a charging station mais próxima.

1000 steps e 0 chamadas pro service breakdown :smile:

Mas descobri outro problema. Ir para a charging station mais próxima entre o agente e o objetivo não é a melhor estratégia. Se tiver 8 charging stations ele vai ficar parando em várias. O melhor é calcular das charging stations da lista, qual é a mais longe que ele pode chegar sem ficar sem combustível.

Quando resolver isso podemos fechar esse commit.