Input: : input individual |
: feasible DC set for BC and |
Output: : individual after mutation |
(1) for do |
(2) Randomly select one DC in the third part of |
and change it to one DC with lower electricity price |
with higher probability in , denotes as |
(3) if ( is used by ) or ( is used by another BC (such |
as )) or ( is shared by BC and BC ) then |
(4) Clear . Assign VMs of BC in to by |
MFFDOneDC in priority |
(5) The overflow VMs of , if any, are assigned to other |
DCs in the order of non-increase order of electricity |
price in . Inside each DC, the assignment is |
completed by MFFDOneDC |
(6) The VMs of originally in are assigned to by |
MFFDOneDC. |
(7) The overflow VMs of , if any, are preferentially |
assigned to , then to other DCs in the order of non-increase |
order of electricity price in . Inside each |
DC, the assignment is completed by MFFDOneDC |
(8) else |
(9) Place the VMs in by MFFDOneDC |
(10) end if |
(11) if All VMs are assigned successfully then |
(12) Clear the VMs of BC in DC |
(13) else |
(14) Remain the original assignment before mutation unchanged |
(15) end if |
(16) end for |