The Bordeaux diplomat being coded considers a large number of combinations of moves in order to find and anticipate the best moves of each player. Unfortunately, the number of combinations is far too large to consider them all. In fact, according to T. Green, there are over four quadrillion distinct openings in Spring of 1901 (not counting openings in which useless support is given).
In the final version of the diplomat, Spring 1901 moves might be generated from a table. Obviously, more than one standard opening should be listed for each country. Otherwise, the computer's pre-spring 1901 diplomacy would be quite inflexible. Moreover, the computer's behavior would be terribly predictable.
In practice, the algorithm we use in Spring 1901 is the same as that of any movement phase. We do so because a good movement algorithm should generate good moves in any movement phase, and in particular in Spring 1901. We can use the data acquired in Spring 1901 of human game to test the behavior of our diplomat.
(To give you a human equivalent, I used to maintain a database of the openings and the end results of several hundred e-mail diplomacy games. This library will be published in an upcoming issue of The Diplomatic Pouch. I no longer maintain this library, hoping that someone will write a program that will automatically maintain this data base given output from Judge.)
Given the large number of possible combinations of moves, an algorithm is employed to try to search only "likely" combinations. This algorithm, called the Refined Evolutionary Search algorithm, searches for good moves for all alliances.
Now that your appetite is whetted, I invite you to read my treatise on the Diplomacy Programming Project, found elsewhere in this issue of The Diplomatic Pouch, wherein the algorithm and the entire project is discussed in more detail.
Universite de Bordeaux I, France
If you wish to e-mail feedback on this article to the author, and clicking on the mail address above does not work for you, feel free to use the "Dear DP..." mail interface, which is located here....