0
respostas

Algoritmo de Busca Local para otimização C++

Alguém já teve contato com o algoritmo de SRP:Shift Redistribution Procedure, poderia dar um conferida nesse código para verificar se faz sentido!

Schedule SRP(Schedule s, Lib b, Constraints c){
            for(int day = 0; day < n_days - 1; day++){
                  for(int funcionario =  0; funcionario < n_funcionario; funcionario++  ){
                         List* list1 = s->funcionario_per_day[funcionario];  //Seleciona uma lista do Grafo multipartida   
                         Node* n1 = getNodeByDay(list1,day); // Seleciona o dia em questão na lsita
                         for(int funcionario2 =  0; funcionario2 < n_funcionario; funcionario2++){
                               List* list2 = s->funcionario_per_day[funcionario];  //Seleciona uma lista do Grafo multipartida   
                               Node* n2 = getNodeByDay(list2,day); // Seleciona o dia em questão na lsita
                               n1->next = n2;
                               Node* p_n1;
                               Node* p_aux;
                               if(day > 0){
                                  p_n1 = get NodeByDay(list2, day - 1);
                                  p_aux = p_n1->next;
                                  p_n1->next = n1;
                               }
                               int** matrix_cost = calculaCustosShiftDay(day, s, b, c);
                               if(d > 0)
                                  p_n1->next = p_aux;
                               n1->next = aux;
                         }
                  }
                  recombineScheduleWithCosts(s, matrix_cost, day);
          }
}