lsa-pucrs / mas-pc-pucrs-2016

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

Novo job enquanto estamos trabalhando em um job anterior, is it worth it (how and when)? #25

Open rafaelcaue opened 9 years ago

rafaelcaue commented 9 years ago

O que fazer?

Atualmente os nossos dummies estão ignorando novos jobs enquanto estão trabalhando em um job anterior. Eles ignoram tanto os priced jobs quanto as auctions para os auction jobs.

Por enquanto isso não é um grande problema pois só estamos utilizando 1 agente, mas quando migrarmos para contract net protocol ou lider com multiplos agentes (assumindo que todos agentes estejam ocupados), ainda vamos ter que pensar no tradeoff em tentar fazer multiplos jobs ou focar em um por vez.

E no caso das auctions, se ganhar a auction e gastar tempo fazendo outro job que não seja o daquela auction, corre o risco do job expirar e termos que pagar a multa.

anibalsolon commented 9 years ago

Até porque vamos ter oito veículos. Não penso que os oito estarão no mesmo job. Na arquitetura de decisão, independente se contract net ou lider, os auction jobs devem ser priorizados (mas ainda assim pode-se fazer um calculo de tradeoff, baseado na multa). O que se pode fazer é alocar X para um job, e se aparecer outro, realocar (ou não) baseado num custo de realocação (itens já comprados pelo veiculo, o tanto que já executou, o tanto que está longe do goal do outro job, etc)

rbordini commented 9 years ago

Sim, e eu acho que isso tudo fecha bem com contract net. Poderiamos fazer uma variação dele em que existe um threshold para alocar um job novo. Se as bids dos agentes todas forem baixas, é porque não vale a pena nem pegar um extra e nem substituir algum job já pego por esse novo. Nessa caso o job é ignorado.

[]s

On 25/08/2015 13:58, Anibal Sólon wrote:

Até porque vamos ter oito veículos. Não penso que os oito estarão no mesmo job. Na arquitetura de decisão, independente se contract net ou lider, os auction jobs devem ser priorizados (mas ainda assim pode-se fazer um calculo de tradeoff, baseado na multa). O que se pode fazer é alocar X para um job, e se aparecer outro, realocar (ou não) baseado num custo de realocação (itens já comprados pelo veiculo, o tanto que já executou, o tanto que está longe do goal do outro job, etc)

— Reply to this email directly or view it on GitHub https://github.com/lsa-pucrs/mas-pc-pucrs-2015/issues/25#issuecomment-134669998.

rafaelcaue commented 9 years ago

Sounds like a plan.

Assim que terminarmos o que falta arrumar acho interessante testar uma contract net com esse mecanismo (para priced jobs).

Até podemos usar a mesma coisa para os auctions, ou talvez algo um pouco diferente, levando em consideração também o número de passos que vamos ter para terminar o job e a multa (que geralmente é bem severa). Se pegarmos um auction job e não terminarmos a tempo pode custar o round inteiro.