Input: , |
Output: A* |
(1) Initialization: combinLists, selectedServerList, |
(2) Step 1.: Pre-combination Phase |
(3) // Each physical server with idle resources is a game player |
(4) |
(5) for each physical server do |
(6) List any possible coordinate placement combinations of this server to be fulfilled by different |
types of VMs without exceeding the capacity in the |
(7) combinLists.add() |
(8) end for |
(9) Step 2.: Strategies Set for Each Player |
(10) for each physical server do |
(11) Pick up top of combinations and calculate |
(12) // each can be represented as an allocation matrix |
(13) end for |
(14) Step 3.: Generate the Extension-form Game Tree |
(15) The orginal array is rearranged in a non-decreasing order with |
indices such that |
(16) The game players take action as the order of |
(17) Step 4.: Find the SPNE for a game G |
(18) for each strategy of physical server , do |
(19) Calculate the utility pair |
(20) end for |
(21) |
(22) |
(23) |
(24) Add to the selectedServerList |
(25) for each physical server m from to 1 do |
(26) Add up the total amount of resources for physical servers in selectedServerList |
(27) for each strategy of physical server m do |
(28) Calculate the if is chosen |
(29) Add up the total allocated resource |
(30) Calculate the |
(31) utilityCalculation |
(32) end for |
(33) |
(34) Add server m to selectedServerList |
(35) end for |
(36) The best strategy of each player m in can be represented as an allocation |
matrix , and |