Leilão - Presa&Predador

O que é o Algorítimo de Leilão?
O algoritmo de leilão permite o escalonamento eficiente entre tarefas e agentes, proporcionando o equilíbrio ótimo. Um agente centralizador (leiloeiro) efetua todos os cálculos de lances e informa para cada agente a atribuição de sua tarefa respectiva.

Como Funciona o Algorítimo de Leilão?
Etapa de Inicialização: – Definir as quantidades de Agentes e de Tarefas; – Inseri-los em arrays; – Definir a condição de parada (NAgentes ou NTarefas); – Calcular e salvar o parâmetro E; • E = (1 / maxAtribuições) – 0.00001 • Para o resultado ser ótimo, 0 < E < 1/Atribuições; – Calcular e preencher a matriz de benefícios [A, T]; – Definir o custo positivo e comum para todas Tarefas (valor inicial do leilão);

Etapa de Execução: – Repetir enquanto não chegar na condição de parada; • Para cada agente sem tarefa atribuída, faça: – Calcular o Lance do Agente para a Tarefa de melhor custo-benefício; – Se a Tarefa tinha um dono alocado, desalocar; – Alocar o novo dono (Agente) da Tarefa; – Atualizar número de Atribuições; – Atualizar o custo dessa Tarefa somando o valor do Lance;

Cálculo do Lance do Agente: – Criar duas variáveis para armazenar o melhor e o segundo melhor valor de custo-benefício; – Criar uma variável para armazenar o valor do lance; – Para cada tarefa faça: • Calcular o Custo-Benefício A -> T: – CB = matrizBeneficios[A,T] – custo[T]; • Atualizar o melhor e o segundo melhor custo benefício até o momento; • Guardar qual é a melhor tarefa até o momento; – Valor do lance = melhorCB – segundoCB + E;

Em jogos digitais, o algoritmo pode ser executado toda vez que: • Uma tarefa for cumprida; • Um agente “morrer”;

Exemplo de Aplicação:


Um exemplo de jogo em que pode ser utilizado essa aplicação é em um RTS para definir qual o alvo ativo no com base ou na distancia ou na vida/ataque da unidade.

Aluno: Samuel Gonçalves Mordente - 567253