function [Routes,Eta,Tau,Multi_Days_Score,Multi_Days_Route,Delta]= Optimization(Routes,Eta,Tau,Delta,Multi_Days_Route) global Trip_Length global Iterations global Ants_No global Group_Size Multi_Days_Score = zeros(Trip_Length,1,Group_Size); Multi_Days_Route = cell(Trip_Length,1,Group_Size); for day = 1: Trip_Length Best_Score = zeros(Group_Size,1); Best_Route = cell(Group_Size,1); for i = 1 : Iterations for Ant_k =1 : Ants_No while ~Valid(Ant_k, Routes) [Routes,Eta,Tau,Multi_Days_Route] = Route(Ant_k,Routes,Eta,Tau,Multi_Days_Route); end [Current_Score,A_Scores,C_Scores,W_Scores]= Score_Calculate(Ant_k,Routes); for user =1: Group_Size if Current_Score(user,1) > Best_Score(user,1) Multi_Days_Score(day,1,user) = A_Scores(user,1); Multi_Days_Score(day,2,user) = C_Scores(user,1); Multi_Days_Score(day,3,user) = W_Scores(user); Multi_Days_Route{day,1,user} = Routes.Path{Ant_k,1,user}; Best_Score(user,1) = Current_Score(user,1); Best_Route{user,1} = Routes.Path{Ant_k,1,user}; end end [Delta,Tau] = Local_Update_Pheromones(Ant_k,Routes,Current_Score,Delta,Tau); end Tau = Global_Update_Pheromones(Tau,Delta); Probability.Node = zeros(1,1,Group_Size); Probability.Users = cell(1,1,Group_Size); Probability.Percentage = zeros(1,1,Group_Size); [Tau,Delta,Eta,Routes,Best_Score] = Setup_Data(); end end end