Assigning Powers in Diplomacy using Brute Force
There has been much discussion about the best methods for assigning powers.
I decided to take a brute force approach, and systematically test each possible combination of power assignments to see which were the best.
The resulting program has been placed upon this site. QBasic will be needed. It should be supplied with MSDos. If you don't have a PC then you might use the program as inspiration for your own programming language.
Qbasic may be obtained in many places, it should already be on your system, if you run Dos or Windows. If it isn't there, you could search for it online....
To run the program, unzip the archive into wherever you want to put it.... go to that directory using the 'cd' command. Then type 'qbasic powers.bas'.
Qbasic should run, loading the program. To run it use the qbasic menu.
What it does
The program permutes all possible variations of power assignments and then scores them.
It outputs the ' satisfaction and the guy who is worst off.
I.e. Spread squared will prefer a distribution with lots of small differences over one with one large difference...
The file also produces a text file output for leisurely perusal. There follows some example putput, followed be some text about interpreting the output. As you can see, it doesn't remove all randomness - but it does reduce the choice to one of tossing a coin between equally good options.
Please feel free to skip over the output text to the discussion beyond!
--- Output text begins --- This is the output generated by the powers.bas program. The program is pretty basic, and so an explanation of the output is in order. Down the left hand side is the particular combination of power assignments being investigated. aefgirt means that the first player in the preference list file gets Austria, the next England, and so on.... bear in mind that the symbols actually used depend upon powin.txt Next come the scores. The lower the score the better. Note. The program calculates the scores and displays only combinations which beat the last best score. Which measure you use is up to you, but if you use this program, do let your players know in advance which scoring system you will use to assign powers. The satisfaction score is a measure of how high up on the list each choice was. The spread is a simple measure of the difference in satisfaction between players.... one large difference works out the same as several small differences. Spread SQ benefits an assignment with lots of small differences compared to an assignment with one large difference in satisfaction aefgirt Satis = 22 Spread = 20 Spread Sq = 80 aefgitr Satis = 19 23 97 aefgrit 25 Spread = 17 Spread Sq = 69 aefigrt 25 Spread = 17 Spread Sq = 67 aefirgt 34 Spread = 15 Spread Sq = 59 aeftrgi 34 Spread = 15 Spread Sq = 59 aegfirt 22 Spread = 13 Spread Sq = 35 aegfitr Satis = 19 Spread = 9 Spread Sq = 21 aegftir 20 Spread = 8 Spread Sq = 14 aegiftr Satis = 19 23 97 aeifgrt Satis = 19 16 46 aeifgtr Satis = 16 Spread = 5 Spread Sq = 9 aeiftrg 17 Spread = 4 Spread Sq = 6 aeigfrt Satis = 16 19 65 aeigftr Satis = 13 8 16 aerftig 17 Spread = 4 Spread Sq = 6 aergitf Satis = 13 15 41 aetgfir Satis = 13 8 16 aetgirf Satis = 13 15 41 afiegtr Satis = 13 8 14 afreitg Satis = 13 15 39 aftegir Satis = 13 8 14 afteirg Satis = 13 15 39 eaigftr Satis = 11 10 22 eargitf Satis = 11 17 51 eatgfir Satis = 11 10 22 eatgirf Satis = 11 17 51 fegatir 23 5 Spread Sq = 5 fgiater 24 Spread = 4 Spread Sq = 4 The player preferences were: aefgirt fregirt trigefa gefatir fgtiera trieafg fgretia --- Output text ends ---
Note. There was an error in the pref list. Player two did not specify all countries.... due to the way this prog works, that means that any missing countries are assigned a score of zero when assigned to this player... i.e. a very good score.
Error checking may be introduced later.... for now, I'm afraid you'll have to live with it, check preference lists by hand.
Ignoring this problem in the following discussion, the best choices are:
Satisfaction based - eaigftr Satis = 11 10 22 eargitf Satis = 11 17 51 eatgfir Satis = 11 10 22 eatgirf Satis = 11