Research Article

Solving the Balanced Academic Curriculum Problem Using the ACO Metaheuristic

Algorithm 1

Bwas_bacp (instance : a BACP instance).
(1)  InitialSolution( )
(2)  initializePheromoneTrails( )
(3)  while (term criterion not satisfied) do
(4)  for   to   do
(5)   for   to numCourses do
(6)   period transitionRule( )
(7)   assignCourse( , period)
(8)     end for
(9)    deposition( ( ))
(10)  end for
(11)  evaporation()
(12)  currentBest selectBestSolutionIt( )
(13)  localSearch(currentBest)
(14)  if   (best(currentBest, globalBest)) then
(15)   globalBest currentBest
(16)  end if
(17)  depositBestAnt(globalBest)
(18)  currentWorst selectWorstSolution( )
(19)  evaporateWorstAnt(currentWorst)
(20)  mutation()
(21)  if  (stagnationcondition) then
(22)   reinitializePheromoneTrails()
(23)  end if
(24) end while