archive by month
Skip to content

AIIDE 2019 - what Microwave did

Here’s data from Microwave’s history files, using the same script as for BananaBrain with a little customization. Unlike Microwave’s learning files, which deliberately omit data and include information from pre-learning, the history files tell what Microwave actually did during the games. Microwave didn’t record information about the opponent’s strategy, so that table is left out. That made it look a little sparse, so I added columns giving the first and last games when the opening was tried, where the first game in the history file is game 0. We can see things like when a winning opening was found, and whether it kept winning. If there are fewer than 100 games recorded for an opponent because Microwave crashed, then the game numbers generally do not align with the tournament round numbers.

Against difficult opponents, Microwave experimented widely. Against some opponents that Microwave pre-trained against, it played whatever came out of pre-training. So I don’t have much to say about opponents in the top half of the post. But toward the bottom I’ve made some comments. Especially see the note to AITP.


#1 locutus

openinggameswinsfirstlast
10Hatch9Pool9gas812%152
2HatchHydra70%053
2HatchLurker729%8389
2HatchLurkerAllIn20%6390
2HatchMuta1225%356
3HatchHydraBust30%1057
3HatchLingBust30%3891
3HatchPoolHydra50%1692
4HatchBeforeGas40%2793
4PoolHard30%1558
4PoolSoft40%2159
5Pool20%3660
5PoolSpeed30%4194
6Pool30%4295
6PoolSpeed30%4396
7Pool20%3761
8Pool30%4497
9Pool922%4578
9PoolLurker20%4679
9PoolSpeed30%1162
9PoolSpeedLing20%4780
ZvP_10Hatch9Pool40%1781
ZvZ_Overpool11Gas40%1882
23 openings988%

#2 purplewave

openinggameswinsfirstlast
10Hatch9Pool9gas119%2093
2HatchHydra60%1487
2HatchMuta50%3594
3HatchHydraBust90%395
3HatchLingBust147%074
4PoolHard10%8080
4PoolSoft714%3075
5Pool812%1590
5PoolSpeed10%8181
6Pool10%8282
6PoolSpeed10%8383
7Pool80%1776
8Pool40%4291
9Pool10%8484
9PoolSpeed30%5292
9PoolSpeedLing1421%477
ZvP_10Hatch9Pool10%8585
ZvZ_Overpool11Gas10%8686
18 openings967%

#3 bananabrain

openinggameswinsfirstlast
10Hatch9Pool9gas10%5454
2HatchHydra10%5151
2HatchMuta10%5252
3HatchLingBust3749%092
4PoolHard30%2963
4PoolSoft40%2867
5Pool1145%2276
5PoolSpeed729%1978
6Pool10%6262
6PoolSpeed520%2068
7Pool10%5555
8Pool30%2469
9Pool743%5670
9PoolSpeed10%5353
9PoolSpeedLing30%2571
ZvZ_Overgas9Pool40%2677
ZvZ_Overpool11Gas30%3579
17 openings9331%

#4 daqin

openinggameswinsfirstlast
10Hatch9Pool9gas1118%277
2HatchHydra40%1878
2HatchLurker40%2379
2HatchMuta1323%1789
3HatchHydraBust30%2051
3HatchLingBust3139%1676
3HatchPoolHydra30%2552
4PoolSoft30%653
5Pool30%754
7Pool30%1155
9Pool30%156
9PoolSpeed30%1057
9PoolSpeedLing30%058
ZvP_10Hatch9Pool30%559
14 openings9019%

#5 steamhammer

openinggameswinsfirstlast
9PoolSpeed10075%099
1 openings10075%

#6 zzzkbot

openinggameswinsfirstlast
9PoolHatch10%00
ZvZ_Overgas11Pool7080%170
2 openings7179%


Why are only 71 games recorded? According to the official results, Microwave crashed in 56 games throughout the tournament, and 29 of those crashes happened against ZZZKBot. Microwave recorded every game in which it did not crash. It’s a debugging opportunity. :-/


#8 iron

openinggameswinsfirstlast
10Hatch9Pool9gas20%5382
2HatchHydra10%8383
2HatchLurkerAllIn20%6388
2HatchMuta119%072
3HatchHydraBust1533%577
3HatchHydraExpo10%8484
3HatchPoolHydra10%8585
4HatchBeforeGas40%1889
4PoolHard60%1378
4PoolSoft714%1171
5Pool10%8686
5PoolSpeed60%1479
6Pool20%5487
6PoolSpeed520%3592
7Pool1030%1968
8Pool714%1780
9Pool812%195
9PoolSpeedLing40%2196
OverpoolTurtle40%2281
19 openings9713%

#9 xiaoyi

openinggameswinsfirstlast
10Hatch9Pool9gas20%4247
2HatchLurker10%4848
2HatchMuta20%4546
4PoolSoft3863%138
5Pool250%039
7Pool5176%4999
9Pool250%4041
9PoolSpeedLing20%4344
8 openings10065%


As soon as Microwave found that 7 pool worked, it played 7 pool exclusively.


#10 mcrave

openinggameswinsfirstlast
2HatchMuta4062%079
3HatchHydraBust1392%8698
4PoolHard10%8080
4PoolSoft4062%140
9Pool10%8585
ZvZ_Overgas11Pool450%8184
6 openings9965%


Microwave was late to discover the success of the hydra bust opening. That’s why it was played so little. The example shows the importance of finding good ideas as early as possible. I am adding smarts to Steamhammer to make it better at finding the good tries fast.

It’s interesting that 2HatchMuta and 4PoolSoft have the same numbers, but were given up on at different times.


#11 ualbertabot

openinggameswinsfirstlast
4PoolSoft10082%099
1 openings10082%


The choice against UAlbertaBot was determined by pre-training. From scratch, I expect Microwave would have tried a wider variety.


#12 aitp

openinggameswinsfirstlast
9PoolSpeedLing10093%099
1 openings10093%


If the first try wins, keep it up. What if Microwave had an opening that would have won more than 93%? The theory is that, above some winning rate, the risk of losing by trying alternatives is higher than the risk of losing by sticking with a known good opening. But what winning rate is high enough to stick with? It depends on how much you respect your opponents. If you expect to win nearly every game, like Locutus, maybe you should switch to an alternative as soon as you lose a single game. If you expect to finish near the bottom, maybe you should stick with a strategy that wins 50%.

But more: How much do you respect each opponent? Maybe bots should have a “contempt factor” like chess programs may use to decide whether to aim for a draw: Accept a low winning rate strategy against Locutus, but demand 95% wins against the unknown who you’ve decided is a weak newbie. I would rather call it a respect factor! In a UCB algorithm, a level of respect is implicitly encoded in the exploration rate constant. Does any bot already have a respect factor for specific opponents?


#13 bunkerboxer

openinggameswinsfirstlast
5Pool10099%099
1 openings10099%


Apparently the initial choice against an unknown is random.

Trackbacks

No Trackbacks

Comments

No comments

Add Comment

E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options

Submitted comments will be subject to moderation before being displayed.