Input:Combat scenario parameters, including M, N, , , and .
The first three best solutions in the tth iteration, , and .
The control parameter a.
Output:The assignment scheme of in the (t+1)th iteration,
Procedures:Generate a random number between (0,1), denoted by rand
if  randa // the roulette wheel selection method
Calculate the fitness value of , and , denoted by , and in turn;
Calculate , ();
Set cum=0.
Generate a random number between (0,1), denoted by r0
for  l=α, β, δ
cum= cum +
if  r0cum
;
break
endif
endfor
else // the reassignment method
Set q_max= ;
for  j=1→N
if  q_max<=0 // determine if all weapons of have been assigned
break // terminates the execution of the for loop, i.e. for  j=1→N
endif
if  E(i, j))==1 // can attack
Generate a random integer, denoted by n_rand, between 1 and q_max;
Assign n_rand weapons to ;
Update q_max= q_max-n_rand;
endif
endfor
endif
Algorithm 2: Pseudo-code of the modular position update method.