What the senior design students have been doing By Chris Klumph and Kody Willman
Resource allocation in a MMOG in a massive multiplayer online game (MMOG) multiple users are simultaneously connected at any given time. this is a heterogeneous system ▫varying computer capacity ▫varying communication times implementing static resource allocation heuristics for this type of heterogeneous system is what the senior design students are doing.
For this problem Chris has worked on Kody has worked on Genitor heuristic Min-Min heuristic
Previously implemented GA Overview GA_matching_scheduling() { initial population generation; evaluation; while(stopping criteria not met) { selection; crossover; mutation; evaluation; } output best solution found; } population of 200 players by 100 chromosomes evaluation using Min-Min stopping criteria of 1000 iterations or no change in solution two parent selection by 50 times each iteration to generate new population two point crossover 1%-3% chance of mutation output best solution
GA Original initial population generation ▫1-Secondary Server ▫0-Player evaluation ▫Min-Min while stopping criteria not met chromosome player
GA original Chromo- some player selection crossover ▫two point chromosome player Swap the 3-6 portion chromosome player Point 1 Point 2
GA original mutation evaluation ▫Min-Min chromosome 10 101 Randomly Swap numbers
GA original chrom osome player output best solution chrom osome player however this solution does not guarantee the optimal solution is even considered therefore we decided to remake it
New: Genitor GA initial population generation ▫-2 – connected to main server(MS) as a player ▫-1 – a secondary server(SS) ▫1-8 – connected to that SS evaluation ▫solve each line by giving Rank(R) while stopping criteria not met Rank # Player #
selection crossover ▫two point R swap the 3-6 portion R Point 1Point 2 Genitor GA R#R# Player #
fixing – line not always valid Genitor GA R in each line do the players match up with the actual SS? randomly assign the players to the known SS or randomly make new SS R R#R# Player #
mutation fixing – line not always valid evaluation ▫solve each line Randomly Swap numbers Evaluate rank, then sort into mapping Genitor GA R R R#R# Player #
drop lowest ranking repeat until criteria are met output best solution at location Rank 1 Genitor GA P# R R#R# Player # Questions?
Min-Min Overview considering all unmapped tasks while(there are unmapped tasks) { find task with overall minimum completion time; assign task to corresponding machine; update machines and completion times; } ours involves 200 players or tasks run a Min-Min run Phase1 run Phase2 compare completion times output best solution
Min-Min no players connected to MS, only SS 3 types of players ▫SS – Secondary Servers ▫MP – Mapped player ▫UP – Unmapped player P# TypeUP P# TypeMPSSMP SS MP find minimum connection time connect update repeat for all unmapped players
Min-Min Phase1 P# TypeUP start with all users unmapped randomly pick k users (between 1-10) to be initial SS finish the mapping with the Min-Min heuristic P# TypeUP SSUP SSUP SS P# TypeMP SSMP SSMP SS
find the user with the largest round trip time if user is SS ▫no players connected ▫remap as player with better connection time if user is MP ▫remap as player to different SS with better connection time or ▫remap as SS with better connection time repeat for 1000 iterations or no update Min-Min Phase1 P# TypeMP SSMP SSMP SS P# TypeMPSSMPSSMP SSMP SS
start with the end mapping from Phase1 find the user with the largest round trip time if user is SS ▫means no players connected ▫consider swapping user in as its SS and making it a player with better overall connection time or ▫consider swapping with all other SS with smaller overall round trip time Min-Min Phase2 P# TypeMPSSMPSSMP SSMP SS P# TypeMPSSMPSSMP SSMP SS
if user is MP ▫consider swapping this user with all other non-SS users ▫always keep smallest overall round trip time repeat 1000 iterations or no improvement output best solution Min-Min Phase2 P# TypeMPSSMPSSMP SSMP SS Questions?