int n = ...;//Número de tarefas int m = ...;//Número de agentes range agents = 1..m;//Intervalo de índices dos agentes range tasks = 1..n;//Intervalo de índices das tarefas dvar boolean x[agents][tasks];//matriz de designação do agente para cada tarefa int c[agents][tasks]= ...;//matriz de custos int r[agents][tasks]= ...;//matriz de utilização de recurso int b[agents] = ...;//Total de recursos de cada agente minimize//Função objetivo sum(i in agents,j in tasks)//soma dos custos de execução de todas as tarefas c[i][j]*x[i][j]; subject to{ forall(j in tasks) sum(i in agents) x[i][j] == 1;//Designação de cada tarefa a um único agente forall(i in agents) sum(j in tasks) r[i][j]*x[i][j] <= b[i];//Restrição de capacidade de recursos de cada agente } execute DISPLAY_RESULTS { writeln("Função Objetivo: ",cplex.getObjValue()); for(var i=1;i<=m;i++){ write("O Agente ",i," faz as tarefas :"); for(var j=1;j<=n;j++) if(x[i][j]>0) write(j," "); writeln(); } }