archive by month
Skip to content

CIG 2018 - what AIUR learned

Here is what the classic protoss bot AIUR learned about each opponent over the course of CIG 2018. AIUR has not been updated in many years and has fallen behind the state of the art, but its varied strategies and learning still make it a tricky opponent in a long tournament. Seeing AIUR's counters for each opponent tells us something about how the opponent played. For past editions, see AIIDE 2017 what AIUR learned and what AIUR learned (AIIDE 2015).

This is generated from data in AIUR's final write directory. There were 125 rounds and 5 maps, one 2-player and two each 3- and 4-player maps. For some opponents, all games were recorded, giving 25 games on the 2-player map and 50 games each on 3- and 4-player maps. For most opponents, fewer games were recorded. AIUR recorded 2932 games, and the results table lists 318 crashes for AIUR. 2932 + 318 = 3250, the correct total game count. Unrecorded games were lost due to crashes, and for no other reason.

First the overview, summing across all opponents.

overall234total
 nwinsnwinsnwinsnwins
cheese7249%12765%13235%33149%
rush2941%26933%26155%55944%
aggressive1323%22568%18478%42271%
fast expo3324%18548%20748%42546%
macro4633%18052%13560%36153%
defensive14175%31473%37955%83465%
total33454%130056%129856%293256%
  • 2, 3, 4 - map size, the number of starting positions
  • n - games recorded
  • wins - winning percentage over those games
  • cheese - cannon rush
  • rush - dark templar rush
  • aggressive - fast 4 zealot drop
  • fast expo - nexus first
  • macro - aim for a strong middle game army
  • defensive - try to be safe against rushes

Looking across the bottom row, you can see that AIUR had a plus score on every size of map, and that it had to choose different strategies to do so well. It's a strong result for a bot which has essentially no micro skills and has not been updated since 2014. It does still have the best cannon rush of any bot, if you ask me.

#1 locutus234total
 nwinsnwinsnwinsnwins
cheese10%80%2512%349%
rush10%100%60%170%
aggressive10%40%50%100%
fast expo10%140%50%200%
macro10%70%40%120%
defensive10%714%50%138%
total60%502%506%1064%

Even against the toughest opponents, AIUR can scrape a small edge with learning. Against Locutus, it pulled barely above zero, but got a few extra wins because it discovered that its cannon rush occasionally scores on 4-player maps. Results against PurpleWave below are similar. I suspect that if AIUR had played the cannon rush every game, Locutus would have adapted and nullified the edge. Maybe it did, and that’s why the edge is so small.

#2 purplewave234total
 nwinsnwinsnwinsnwins
cheese10%80%3918%4815%
rush10%80%20%110%
aggressive10%100%30%140%
fast expo40%80%20%140%
macro10%100%20%130%
defensive30%60%20%110%
total110%500%5014%1116%


#3 mcrave234total
 nwinsnwinsnwinsnwins
cheese1100%10%10%333%
rush10%412%10%432%
aggressive00%20%30%50%
fast expo10%10%4217%4416%
macro10%30%10%50%
defensive10%20%20%50%
total520%502%5014%1059%

Against McRave, the choice is nexus first. McRave must have settled on a macro opening itself.

#4 tscmoo234total
 nwinsnwinsnwinsnwins
cheese1127%10%10%1323%
rush10%10%30%50%
aggressive10%119%10%138%
fast expo520%3315%10%3915%
macro10%20%2214%2512%
defensive10%20%2218%2516%
total2020%5012%5014%12014%

Against the unpredictable Tscmoo, AIUR wavered before settling on an unpredictable set of answers. Notice that not all the strategies are well explored: If you win less than 1 game in 5, then playing an opening 3 times is not enough. If the tournament were much longer, AIUR would likely have scored higher because of its slow but effective learning.

#5 isamind234total
 nwinsnwinsnwinsnwins
cheese10%20%40%70%
rush1100%3719%388%7614%
aggressive00%10%30%40%
fast expo10%50%20%80%
macro10%10%20%40%
defensive10%40%10%60%
total520%5014%506%10510%

ISAMind may be based on Locutus, but unlike Locutus it is vulnerable to AIUR’s dark templar rushes. It’s a sign that it is not as mature and well tested.

#6 iron234total
 nwinsnwinsnwinsnwins
cheese10%10%50%70%
rush10%2619%20%2917%
aggressive00%20%20%40%
fast expo10%10%3110%339%
macro10%195%40%244%
defensive10%10%60%80%
total50%5012%506%1059%


#7 zzzkbot234total
 nwinsnwinsnwinsnwins
cheese40%20%20%80%
rush40%40%10%90%
aggressive30%20%10%60%
fast expo30%30%10%70%
macro70%50%40%160%
defensive40%3429%4112%7919%
total250%5020%5010%12512%

4 pooler ZZZKBot is of course best countered by a defensive anti-rush strategy. Well, it helped, but the rush is too strong for AIUR to survive reliably. On the 2-player map, AIUR found no answer.

#8 microwave234total
 nwinsnwinsnwinsnwins
cheese20%20%10%50%
rush10%277%10%297%
aggressive10%10%10%30%
fast expo10%20%10%40%
macro10%10%922%1118%
defensive1822%1724%3625%7124%
total2417%5012%4922%12317%

Microwave apparently also played a rushy style versus AIUR. That’s interesting. I think that AIUR’s defensive strategy is good against pressure openings generally, so Microwave was likely playing low-econ but not necessarily fast rushes.

#9 letabot234total
 nwinsnwinsnwinsnwins
cheese10%10%10%30%
rush10%10%333%520%
aggressive00%333%10%425%
fast expo10%4149%4349%8548%
macro1100%333%10%540%
defensive10%10%10%30%
total520%5044%5044%10543%

Fast expo makes sense against LetaBot’s “wait for it... wait for it... here it comes!” one big smash.

#10 megabot234total
 nwinsnwinsnwinsnwins
cheese10%20%30%60%
rush250%40%3811%4411%
aggressive10%30%30%70%
fast expo10%30%20%60%
macro20%3628%20%4025%
defensive1894%20%20%2277%
total2572%5020%508%12526%

Why did MegaBot have so much more trouble on the 2-player map? According to the official per-map result table, MegaBot did fine overall on Destination (the one 2-player map), so its trouble came only against AIUR. Maybe I should watch replays and diagnose it.

#11 ualbertabot234total
 nwinsnwinsnwinsnwins
cheese10%10%10%30%
rush20%4337%20%4734%
aggressive10%20%10%40%
fast expo10%20%10%40%
macro1833%10%10%2030%
defensive10%10%4416%4615%
total2425%5032%5014%12423%


#12 tyr234total
 nwinsnwinsnwinsnwins
cheese10%10%10%30%
rush1100%10%3281%3479%
aggressive00%3746%875%4551%
fast expo1100%333%367%757%
macro10%633%333%1030%
defensive10%20%333%617%
total540%5040%5072%10555%

I suspect that Tyr suffered here because it is a jvm bot and could not write its learning file.

#13 ecgberht234total
 nwinsnwinsnwinsnwins
cheese1100%3889%250%4188%
rush1100%10%4367%4567%
aggressive00%475%10%560%
fast expo1100%10%20%425%
macro10%367%10%540%
defensive10%367%10%540%
total560%5082%5060%10570%


#15 titaniron234total
 nwinsnwinsnwinsnwins
cheese10%10%250%425%
rush10%10%333%520%
aggressive00%4279%4288%8483%
fast expo10%10%10%30%
macro1100%250%10%450%
defensive1100%30%10%520%
total540%5068%5078%10571%

TitanIron appears to have been too predictable. Notice that the winning strategy on most maps was never tried (without crashing) on the 2-player map. It might have won there too.

#16 ziabot234total
 nwinsnwinsnwinsnwins
cheese1650%250%10%1947%
rush10%20%10%40%
aggressive10%10%333%520%
fast expo10%250%00%333%
macro10%10%10%30%
defensive333%4269%4457%8962%
total2339%5062%5052%12354%


#17 steamhammer234total
 nwinsnwinsnwinsnwins
cheese10%10%10%30%
rush367%475%9100%1688%
aggressive3100%17100%15100%35100%
fast expo20%20%250%617%
macro1100%10100%10%1292%
defensive14100%16100%22100%52100%
total2483%5092%5094%12491%


#18 overkill234total
 nwinsnwinsnwinsnwins
cheese10%30%250%617%
rush00%250%10%333%
aggressive00%10%1060%1155%
fast expo10%367%00%450%
macro00%00%00%00%
defensive1688%4190%3778%9485%
total1878%5080%5072%11876%


#19 terranuab234total
 nwinsnwinsnwinsnwins
cheese1100%888%10%1080%
rush1100%11100%30100%42100%
aggressive00%475%250%667%
fast expo1100%16100%683%2396%
macro1100%989%1090%2090%
defensive1100%250%10%450%
total5100%5092%5090%10591%


#20 cunybot234total
 nwinsnwinsnwinsnwins
cheese10%250%475%757%
rush1100%10%20%425%
aggressive00%475%1392%1788%
fast expo10%250%250%540%
macro1100%989%13100%2396%
defensive1100%32100%15100%48100%
total560%5090%4990%10488%


#21 opprimobot234total
 nwinsnwinsnwinsnwins
cheese1100%12100%683%1995%
rush1100%5100%7100%13100%
aggressive00%7100%4100%11100%
fast expo1100%11100%17100%29100%
macro1100%8100%7100%16100%
defensive1100%7100%9100%17100%
total5100%50100%5098%10599%


#22 sling234total
 nwinsnwinsnwinsnwins
cheese10%10%10%30%
rush1100%5100%250%888%
aggressive00%13100%13100%26100%
fast expo1100%7100%10100%18100%
macro1100%8100%11100%20100%
defensive1100%16100%13100%30100%
total580%5098%5096%10596%


#23 srbotone234total
 nwinsnwinsnwinsnwins
cheese10%250%10%425%
rush1100%9100%367%1392%
aggressive00%13100%16100%29100%
fast expo1100%10100%8100%19100%
macro1100%786%6100%1493%
defensive1100%9100%16100%26100%
total580%5096%5096%10595%


#24 bonjwa234total
 nwinsnwinsnwinsnwins
cheese1100%9100%475%1493%
rush1100%13100%10100%24100%
aggressive00%7100%10100%17100%
fast expo1100%6100%7100%14100%
macro1100%7100%8100%16100%
defensive1100%8100%11100%20100%
total5100%50100%5098%10599%


#25 stormbreaker234total
 nwinsnwinsnwinsnwins
cheese475%10%475%967%
rush00%580%10100%1593%
aggressive00%18100%7100%25100%
fast expo00%00%6100%6100%
macro00%9100%8100%17100%
defensive20100%17100%15100%52100%
total2496%5096%5098%12497%


#26 korean234total
 nwinsnwinsnwinsnwins
cheese7100%2100%10100%19100%
rush00%7100%8100%15100%
aggressive00%5100%8100%13100%
fast expo00%8100%8100%16100%
macro00%5100%6100%11100%
defensive14100%23100%10100%47100%
total21100%50100%50100%121100%

Well, if you win every game, learning cannot help.

#27 salsa234total
 nwinsnwinsnwinsnwins
cheese9100%15100%9100%33100%
rush00%00%3100%3100%
aggressive00%11100%8100%19100%
fast expo00%00%4100%4100%
macro00%8100%7100%15100%
defensive15100%16100%19100%50100%
total24100%50100%50100%124100%

AIIDE 2017 what AIUR learned

Here is what AIUR learned about each opponent over the course of the tournament. I did this mostly because it’s easy; I already had the script from last year. But it’s also informative—AIUR’s reactions tell us how each bot played, and may tell bot authors what they need to work on.

The data is generated from files in AIUR’s final read directory. AIUR recorded 111 games against some opponents even though the tournament officially ran for 110 rounds; that is presumably because the tournament did run longer but was cut back to a multiple of 10 rounds for fairness (since there are 10 maps). On the other hand, AIUR’s total game count according to itself is 2938 and according to the tournament results is 2965, so it may have been unable to record some games (it is listed with 53 crashes, so that’s not a surprise). First an overall view, totalling the data for all opponents. We can see that all 6 of AIUR’s strategies (“moods” it calls them) were widely valuable: Every strategy has win rate over 50% on some map size. AIUR’s overall win rate in the tournament was 50.46%.

overall234total
 nwinsnwinsnwinsnwins
cheese15955%5937%16144%37947%
rush13466%8755%18550%40656%
aggressive10756%10843%15530%37041%
fast expo6945%8433%19751%35046%
macro4628%6952%21137%32639%
defensive35260%18558%57055%110757%
total86757%59249%147948%293850%
  • 2, 3, 4 - map size, the number of starting positions
  • n - games recorded
  • wins - winning percentage over those games
  • cheese - cannon rush
  • rush - dark templar rush
  • aggressive - fast 4 zealot drop
  • fast expo - nexus first
  • macro - aim for a strong middle game army
  • defensive - be safe against rushes (not entirely successful)
#1 zzzkbot234total
 nwinsnwinsnwinsnwins
cheese1612%10%40%2110%
rush50%10%10%70%
aggressive30%10%50%90%
fast expo40%10%50%100%
macro30%20%30%80%
defensive30%1631%3724%5625%
total346%2223%5516%11114%

AIUR struggled against the tournament leader but was not entirely helpless. Its cannon rush had a chance on 2 player maps and its anti-rush strategy on the others. We see how AIUR gains by taking the map size into account.

#2 purplewave234total
 nwinsnwinsnwinsnwins
cheese10%10%20%40%
rush2879%333%4055%7163%
aggressive10%333%10%520%
fast expo10%1136%1060%2245%
macro10%20%10%40%
defensive10%10%10%30%
total3367%2129%5551%10951%

AIUR upset #2 PurpleWave, a surprising outcome. The DT rush and the fast expand were both somewhat successful—rather unrelated strategies.

#3 iron234total
 nwinsnwinsnwinsnwins
cheese50%10%70%130%
rush50%20%70%140%
aggressive30%20%120%170%
fast expo80%147%90%313%
macro60%10%100%170%
defensive50%20%100%170%
total320%225%550%1091%

Learning can’t help if nothing you try wins....

#4 cpac234total
 nwinsnwinsnwinsnwins
cheese10%10%10%30%
rush40%00%20%60%
aggressive20%10%10%40%
fast expo10%10%10%30%
macro20%333%20%714%
defensive2438%1669%4850%8850%
total3426%2255%5544%11141%

Cpac was configured to play 5 pool against AIUR. It worked, but AIUR was able to compensate to an extent by playing its anti-rush build.

#5 microwave234total
 nwinsnwinsnwinsnwins
cheese20%20%40%80%
rush10%10%40%60%
aggressive2020%1513%110%4613%
fast expo10%20%60%90%
macro10%10%40%60%
defensive10%10%2612%2811%
total2615%229%555%1039%

Microwave was successful but showed a little vulnerability to surprise zealots dropped in its main. I suspect it’s a tactical reaction issue.

#6 cherrypi234total
 nwinsnwinsnwinsnwins
cheese10%10%10%30%
rush10%10%10%30%
aggressive20%20%10%50%
fast expo20%10%10%40%
macro20%10%911%128%
defensive264%1612%4212%8410%
total343%229%5511%1118%


#7 mcrave234total
 nwinsnwinsnwinsnwins
cheese26100%560%4562%7675%
rush367%967%450%1662%
aggressive10%450%10%633%
fast expo10%250%250%540%
macro10%10%10%30%
defensive10%10%20%40%
total3385%2255%5556%11065%

AIUR upset McRave with its cannon rush, and the dark templar rush did well too. AIUR executes the best cannon rush of any bot, in my opinion. It is a sign that McRave’s play was not robust enough against tricks.

#8 arrakhammer234total
 nwinsnwinsnwinsnwins
cheese20%20%30%70%
rush10%10%40%60%
aggressive10%560%30%933%
fast expo10%10%20%40%
macro00%1250%3837%5040%
defensive2966%10%425%3459%
total3456%2241%5428%11039%


#9 tyr234total
 nwinsnwinsnwinsnwins
cheese667%10%10%850%
rush20100%10%20%2387%
aggressive333%1020%10%1421%
fast expo10%729%4935%5733%
macro10%10%10%30%
defensive250%20%10%520%
total3379%2218%5531%11043%

The DT rush won 100% of the time on 2 player maps and was tried only a few times on larger maps, losing. Was it only unlucky on the 3 and 4 player maps, or is there a real difference? With only 3 games total, we can’t tell from the numbers. It is a weakness of AIUR’s learning: It’s slow because there is so much to learn. The flip side of the slowness is that, over a long tournament, it learns a lot.

#10 steamhammer234total
 nwinsnwinsnwinsnwins
cheese20%10%10%40%
rush250%10%20%520%
aggressive10%10%10%30%
fast expo10%10%10%30%
macro00%10%10%20%
defensive2781%1788%4967%9375%
total3370%2268%5560%11065%

I was surprised to see Steamhammer upset by AIUR. I had thought that AIUR was a solved problem. On SSCAIT too, Steamhammer started to show losses against AIUR in September for the first time in months. I may have introduced a weakness in some recent version and AIUR’s learning took that long to find it on SSCAIT. In AIIDE, the tournament was easily long enough.

#11 ailien234total
 nwinsnwinsnwinsnwins
cheese10%10%10%30%
rush30%10%20%60%
aggressive10%20%10%40%
fast expo10%250%00%333%
macro450%875%10%1362%
defensive2458%888%4937%8148%
total3447%2264%5433%11044%


#12 letabot234total
 nwinsnwinsnwinsnwins
cheese743%10%20%1030%
rush333%1354%4340%5942%
aggressive540%10%10%729%
fast expo1346%333%10%1741%
macro10%10%633%825%
defensive10%333%10%520%
total3040%2241%5435%10638%

I suspect that fast expo was the best strategy on 4 player maps, but how was AIUR to know? A weakness of AIUR’s epsilon-greedy learning, compared to UCB, is that it doesn’t realize that a less-explored option is more likely to be misevaluated.

#13 ximp234total
 nwinsnwinsnwinsnwins
cheese3435%00%10%3534%
rush00%00%10%10%
aggressive00%138%522%653%
fast expo00%90%00%90%
macro00%00%10%10%
defensive00%00%00%00%
total3435%225%552%11113%


#14 ualbertabot234total
 nwinsnwinsnwinsnwins
cheese00%00%1100%1100%
rush00%00%00%00%
aggressive00%00%1100%1100%
fast expo00%00%00%00%
macro00%00%00%00%
defensive3432%215%5227%10724%
total3432%215%5430%10926%

What’s up with all those zeroes? AIUR is coded to try each strategy once before it starts making decisions, and that did not happen here. It turns out that AIUR has pre-learned data for Skynet, XIMP, and UAlbertaBot, so its learning in those cases looks different.

#16 icebot234total
 nwinsnwinsnwinsnwins
cheese10%20%10%40%
rush10%250%333%633%
aggressive3100%367%450%1070%
fast expo14100%367%4493%6193%
macro475%250%10%757%
defensive989%1080%250%2181%
total3288%2264%5582%10980%


#17 skynet234total
 nwinsnwinsnwinsnwins
cheese1392%00%00%1392%
rush2195%2190%5188%9390%
aggressive00%00%00%00%
fast expo00%1100%00%1100%
macro00%00%00%00%
defensive00%00%450%450%
total3494%2291%5585%11189%


#18 killall234total
 nwinsnwinsnwinsnwins
cheese10%30%10%50%
rush10%20%10%40%
aggressive10%20%10%40%
fast expo10%30%10%50%
macro00%20%250%425%
defensive3080%1070%4976%8976%
total3471%2232%5569%11162%


#19 megabot234total
 nwinsnwinsnwinsnwins
cheese367%10%20%633%
rush20%1436%50%2124%
aggressive667%425%40%1436%
fast expo250%10%40%714%
macro10%10%3625%3824%
defensive1776%10%20%2065%
total3165%2227%5317%10633%


#20 xelnaga234total
 nwinsnwinsnwinsnwins
cheese9100%683%10%1688%
rush19100%475%10%2492%
aggressive10%333%10%520%
fast expo10%475%10%650%
macro20%250%5036%5435%
defensive250%367%10%650%
total3485%2268%5533%11156%

Against Xelnaga, AIUR found solutions on 2 and 3 player maps but not on 4 player maps. Is it another case of underexploration?

#21 overkill234total
 nwinsnwinsnwinsnwins
cheese10%10%367%540%
rush250%00%00%250%
aggressive8100%4100%786%1995%
fast expo367%3100%7100%1392%
macro475%367%1292%1984%
defensive1493%11100%2696%5196%
total3284%2291%5593%10990%


#22 juno234total
 nwinsnwinsnwinsnwins
cheese50%1436%3315%5219%
rush30%10%10%50%
aggressive20%10%20%50%
fast expo20%10%1612%1911%
macro10%10%10%30%
defensive1921%425%20%2520%
total3212%2227%5513%10916%

Juno’s cannon contain upset AIUR. Learning didn’t help much, because the problem wasn’t in any of the strategies, it was in AIUR’s poor reactions to cannons appearing in front of its base. It is amusing to watch 2 bots cannon each other when sometimes both get cannons up.

#23 garmbot234total
 nwinsnwinsnwinsnwins
cheese10%10%10%30%
rush250%10%00%333%
aggressive1794%17100%367%3795%
fast expo00%10%2383%2479%
macro00%10%10%20%
defensive580%10%2781%3379%
total2584%2277%5578%10279%


#24 myscbot234total
 nwinsnwinsnwinsnwins
cheese10%10%250%425%
rush20%367%250%743%
aggressive333%2100%978%1471%
fast expo10%250%10%425%
macro450%4100%367%1173%
defensive2361%10100%3879%7176%
total3450%2286%5575%11169%


#25 hannesbredberg234total
 nwinsnwinsnwinsnwins
cheese580%3100%367%1182%
rush250%3100%250%771%
aggressive250%250%20%633%
fast expo8100%3100%989%2095%
macro250%4100%1191%1788%
defensive15100%7100%28100%50100%
total3488%2295%5589%11190%


#26 sling234total
 nwinsnwinsnwinsnwins
cheese250%10%333%633%
rush250%00%10%333%
aggressive12100%00%2396%3597%
fast expo10%5100%10%771%
macro367%580%1275%2075%
defensive580%11100%1580%3187%
total2580%2291%5580%10282%

Here is another possible case of insufficient exploration. The 4 zealot drop won 100% of the time on 2 player maps and 96% of the time on 4 player maps, but was never tried on 3 player maps (I guess due to a crash, since AIUR tries to play each strategy once). It’s not a severe problem, though, because 3 player maps did have 2 strategies that scored 100%.

#27 forcebot234total
 nwinsnwinsnwinsnwins
cheese10%10%10%30%
rush00%10%10%20%
aggressive367%20%10%633%
fast expo00%10%10%20%
macro00%978%367%1275%
defensive29100%875%4894%8594%
total3394%2259%5585%11083%


#28 ziabot234total
 nwinsnwinsnwinsnwins
cheese12100%786%3686%5589%
rush10%1100%475%667%
aggressive6100%888%683%2090%
fast expo10%10%20%40%
macro30%10%10%50%
defensive667%475%683%1675%
total2976%2277%5580%10678%

Next: AILien’s learning.

what AIUR learned

After Overkill yesterday, I wrote a not-quite-as-little Perl script to read AIUR’s learning files. AIUR learns more data: Overkill learns a table (opponent, strategy), while AIUR learns a table (opponent, strategy, map size) where map size is the number of starting positions, which is 2, 3 or 4 in AIIDE 2015.

Unlike Overkill, AIUR recorded every game exactly once, missing none and adding none, so its data should be easier to interpret.

Here’s a sample table for one opponent. Compare it against AIUR’s row in Overkill’s table from yesterday. See the full AIUR learning results.

overkill234total
 nwinsnwinsnwinsnwins
cheese1867%333%10%2259%
rush10%10%10%30%
aggressive10%10%10%30%
fast expo10%10%20%40%
macro10%333%2512%2914%
defensive540%933%1540%2938%
total2752%1828%4520%9031%

For reference, here are AIUR’s “moods,” aka strategies.

  • cheese - cannon rush
  • rush - dark templar rush
  • aggressive - fast 4-zealot drop
  • fast expo - nexus first
  • macro - aim for a strong middle game army
  • defensive - be safe against rushes

We see that against Overkill, the cannon rush was relatively successful on 2-player maps, 3-player maps were a struggle, and on 4-player maps AIUR discovered a little late that the defensive mood was better than the macro mood. We also see that AIUR barely explored further when it found a reasonably successful try. If the best strategy was one that happened to lose its first game and didn’t get tried again, it would never know. With so many table cells to fill in, the tremendously long tournament was not long enough for AIUR to explore every possibility thoroughly.

AIUR selected strategies with an initial phase of try-everything-approximately-once followed by an epsilon-greedy algorithm, with epsilon set at 6%. Epsilon-greedy means that 6% of the time it chose a strategy at random, and otherwise it made the greedy choice, the strategy with the best record so far. With 90 games against each opponent to fill in 18 table cells, most cells never came up in the 6% random sample.

It should be clear why AIUR was still improving steadily at the end of the tournament! I offered a theory that AIUR learned so much because of its extreme strategies. If you read through the full set of tables, you’ll see that a strategy which works on one map size only sometimes works on other sizes too. The combination of opponent and map size paid off in ways that neither could alone, though only sometimes.

Overkill and AIUR fought a learning duel during the tournament. Both are running learning algorithms which assume that the opponent does not change (or at least settles down in the long run), and both bots violated the assumption. AIUR violated it more strongly. Was that an advantage? Could there be a connection with AIUR’s late discovery of the defensive strategy on 4-player maps?

I updated the zip archive of the Perl scripts and related files to add AIUR’s script alongside Overkill’s. By the way, I haven’t tested it on Windows, so it might need a tweak or two for that (nothing more than one or two very small changes).

AIUR learns more

The protoss bot AIUR by Florian Richoux has a set of hand-coded strategies and learns over time which strategies win against which opponents. That’s a popular religion; other bots like Overkill (see my post on it) and Tscmoo worship at the same altar. But a funny thing happened on the way through the tournament. In the AIIDE 2015 competition report, look at the graph of winning rate over time for the different bots. Let me steal the image showing the top half of participants:

win rates by round in AIIDE 2015

AIUR’s line is the one in the middle that keeps rising and rising. Look carefully and you can see it leveling off, but it hasn’t reached its asymptote at the end of the very long tournament. AIUR’s learning seems to learn more, and to keep on learning, even though AIUR’s learning method is about the same as other bots. Howzat happen?

Of course AIUR doesn’t do exactly the same thing as other bots. After all, it calls its strategies “moods,” which sounds entirely different. It doesn’t learn an opponent -> strategy mapping, it learns opponent + map size -> strategy, where map size means the number of starting bases, usually 2, 3, or 4. It can figure out that its cannon rush works better on 2-player maps, for example. I imagine that that’s part of the answer, but could it be the whole story?

I have a theory. My theory is that AIUR’s extreme strategies make good probes for weakness. AIUR’s strategies range from absolutely reckless cannon rush, dark templar rush, and 4-zealot drop cheese to defensive and macro-oriented game plans. AIUR’s strategies stake out corners of strategy space. Compare Overkill’s middle-of-the-road zergling, mutalisk, and hydralisk strats, with no fast rushes or slow macro plays, nothing highly aggressive and nothing highly cautious. My theory is that if an enemy makes systematic mistakes, then one of AIUR’s extreme strategies is likely to exploit the mistakes, and AIUR will eventually learn so.

If true, that could explain why AIUR learns more effectively in the long run. Presumably the reason that it takes so long to reach its asymptote is that it has to learn the effect of the map size. The tournament had 27 games per opponent on 2-player maps, 18 on 3-player, and 45 on 4-player, not enough to test each of its 6 strategies repeatedly. It could learn faster by doing a touch of generalization—I’ll post on that some other day.

AIUR also claims to implement its strategies with a further dose of randomness. Intentional unpredictability could confuse the learning algorithms of its enemies. I approve.