Main Menu

Finding the Optimal Aggro Deck via Computer Simulation - HL Edition

Started by Nastaboi, 16-09-2013, 09:12:18 PM

Previous topic - Next topic

Nastaboi

If you haven't already read Frank Karsten's original article, go read it first continue here only after that.

Theros gives my R/b aggro deck two more one-drops and a new incinerate. While updating my list, I decided to try Frank's program code and see if I can found new insights for deck construction.

As there is a very limited number of Putrid Leeches or Geist of Saint Trafts for our use, I created a format where one-drops hit for 2, two-drops for 3, three-drops for 4 and bolts cost 2 mana to cast and started running simulations. The optimal goldfish deck for that format would be something like 33 one-drops, 9 bolts and 18 lands. The problem was that there is only about 20 one-drops I could see myself playing in a B/r aggro deck. So, I had to change the code more to simulate HL realities better.

I started by increasing deck size to 100. Trying to teach computer code how to spoils mulligan efficiently was not a realistic option, but adding a free mulligan was much easier. Then I locked one-drop count to 21 (counted Black Vise) and started doing simulations to find the optimal mix for other cards. The optimal deck would now have 21 one-drops, 18 two-drops, 21 bolts and 40 lands. Compared to the first deck, average cmc of spells had risen from 1.2 to 1.65, and land count had increased from 30 % to 40 %.

It seems pretty clear that three-drops that hit for 4 are bad for goldfish, not that I had any of them in my deck to begin with. What I did have was 3cc bolts that deal 4, and spells with comparable effect (e.g. Ball Lightning). In addition, I only had 16 bolts that could be cast for two or less mana. So I replaced three-drop creature with three-mana burn spell, capped two-mana bolts to 16, and ran the simulation. The final optimal deck had 22 one-drops, 11 two-drops, 16 two-mana bolts, 10 three-mana bolts and 41 land. (I had reclassified Reckless Charge as a one-drop, which makes 22 of them).

I built the deck to see how it plays out. I had some cards that did not fit to any criteria (Demonic, Molten Rain, Fire Covenant, moon effects) so I just replaced some a land, all four-drops originally in the deck and some two-drops with them and run some test games. Some findings:

* The deck mulliganed very well. I would always get one-drop, a bolt, some other spells and a right mixture of lands either straight away or after free mulligan.
* I didn't miss mediocre two-drops I cut.
* I drew too much land many times, and could not close games where I had to trade spells to maintain aggression or slow an opponent down. While making constant land drops is preferred for fast goldfish kills, against an actual opponent stumbling sometimes a little is less crucial than drawing too many lands midgame. Thus lowering a land count a little should be worth a gamble.

Some notes from the experiment:

* The last deck had an average goldfish kill turn 4.635.
* Two drops that hit for 3 are actually quite bad.
* Free mulligan didn't seem to have much effect, but I may have programmed it wrong. There might have other errors too that skew the results.
* There are some one or two mana burn spells originally not in the deck that either affect just players or have other drawbacks. I will run more simulations with more cheap bolts allowed and test those decks.

I will continue the experiment and will post more results here.
Quote0:13:51 [Nastaboi] Nastaboi plays Invincible Hymn from Hand
0:14:25 [Nastaboi] Nastaboi's life total is now 221 (+213)

Tabris

I read that article and was wondering what that meant for HL.

Thx for the infos.

Nastaboi

The original algorithm was not playing the new deck most efficiently, as playing two 2-drops with just two mana available was more efficient than one three-power two-drop. With corrected algorithm, average kill turn dropped to 4.55 and the optimal deck was something like 22 one-drops, 14 two-drops, 6 three-mana bolts, 16 two-mana bolts and 42 lands. So two-drops were not that awful when played correctly.

Still haven't figured out how to take free mulligan into calculation. More results to come.
Quote0:13:51 [Nastaboi] Nastaboi plays Invincible Hymn from Hand
0:14:25 [Nastaboi] Nastaboi's life total is now 221 (+213)

Tiggupiru

Quote from: Nastaboi on 17-09-2013, 09:16:39 AMStill haven't figured out how to take free mulligan into calculation. More results to come.

I haven't peeked at the code, but doesn't this work exactly how Karsten approached the mulligan decisions (which is by the way brilliantly elegant solution) in the first place: compare how that hand would play against an average kill turn with the seven card hand. If the result is greater, the hand is a (free) mulligan.

In any case, thanks for making this. Karsten's article was one the most interesting ones for long time and I think there are much we can learn from this approach.

Nastaboi

I originally thought just mulliganing the first seven card hand like I would the second one, but more aggressive approach could yield better results. The problem is that I am no coder myself, and the original code was not that well commented, and used some structures like boolean arrays I have no experience with.
Quote0:13:51 [Nastaboi] Nastaboi plays Invincible Hymn from Hand
0:14:25 [Nastaboi] Nastaboi's life total is now 221 (+213)

Tiggupiru

Well, I don't know if there is a better way to do this, but you could try multiplying the first hand's kill turn by 0.9 and then compare it to the average kill turn. This effectively means that if the hand is less than 10% better than the average seven card hand, it should be a mulligan. If this improves the average, then try more aggressive approach, if not, do the opposite. Rest of the mulligans should probably be resolved as normal.

Sadly, this is pure busy work as I don't know how could you write it to automatically calculate the best outcome, but with an unfamiliar and poorly documented code better answers aren't usually worth the time and effort.

Nastaboi

I made more accurate calculations, and the perfect deck should have 22 one-drops, 13 two-drops, 4 three-mana bolts, 19 two-mana bolts and 42 lands. Average kill turn was 4.550. I decided to skip all "other" cards and built the following deck:

Jackal Pup
Tormented Hero
Carnophage
Pulse Tracker
Goblin Guide
Sarcomancy
Vampire Lacerator
Rakdos Cackler
Gravecrawler
Diregraf Ghoul
Firedrinker Satyr
Tattermunge Maniac
Stromkirk Noble
Figure of Destiny
Deathrite Shaman
Grim Lavamancer
Frenzied Goblin
Mogg Fanatic
Frostling
Fume Spitter
Black Vise
Reckless Charge

Spike Jester
Goblin Deathriders
Stormblood Berserker
Porcelain Legionnaire
Keldon Marauders
Young Pyromancer
Ash Zealot
Ember Hauler
Burning-Tree Emissary
Dark Confidant
Kargan Dragonlord
Ankh of Mishra
Shrine of Burning Rage

Brimstone Volley
Char
Flame Javelin
Staggershock

Lightning Bolt
Chain Lightning
Rift Bolt
Burst Lightning
Shard Volley
Reckless Abandon
Magma Jet
Arc Trail
Volcanic Hammer
Fire Ambush
Lightning Strike
Incinerate
Searing Spear
Searing Blaze
Chain of Plasma
Price of Progress
Skullcrack
Demonic Tutor
Fireblast

9 fetch
Badlands
Blood Crypt
Blackcleave Cliffs
Sulfurous Springs
Dragonskull Summit
Craven Cairns
Wasteland
Rishadan Port
Mishra's Factory
Mutavault
Teetering Peaks
Barbarian Ring
Taiga
Bayou
15 Mountain
4 Swamp

The two-drop mix might not be the most optimal, you have plenty of options there. Green duals are to add more fetchlands, which improves manan consistency. This time, the land count felt pretty okay, though I was keeping land light hands as I knew more would come. By the time I was drawing too many lands, the game was already been decided and drawing a spell would have made no difference.
Quote0:13:51 [Nastaboi] Nastaboi plays Invincible Hymn from Hand
0:14:25 [Nastaboi] Nastaboi's life total is now 221 (+213)

Nastaboi

I think I finally got free mulligan to work. Average kill turn dropped to 4.415, and the best deck went -1 two-drop +1 two-mana bolt (or three-mana bolt, it was really close). I also tested when on the draw, and average kill turn was 4.234 and the optimal deck had 22 one-drops, 11 two-drops, 22 two-mana bolts, 3 three-mana bolts (or 21/4 bolts, again really close) and 42 lands. We can now conclude, that if you want to build the fastest R/b aggro deck for Highlander format with free mulligan, it should have

22 one-drops (or as many as you can get)
11-12 two-drops
20-21 cheap burn spells
4 big burn spells
42 lands

I will use this composition for basis of my future testing. I will replace some inferior cards with Sulfuric Vortex and Molten Rain, but try to play the deck without moon effects for some time. One thing left to simulate is how haste creatures compare with creatures with more power on same cmc, and what would be the optimal mix.
Quote0:13:51 [Nastaboi] Nastaboi plays Invincible Hymn from Hand
0:14:25 [Nastaboi] Nastaboi's life total is now 221 (+213)

ChristophO


It might be the best configuration for the goldfish; but that is not necessarily the best configuration for real opponents. THe longer your kill is delayed by your opponent the worse "flooding" becomes. On the other hand you never want to miss early land drops because it will cost you so much tempo. Karsten's article stronlgy supported my decision to play 20 lands in Gruul Aggro in Modern so that the third land drop was seldomly missed.

I also believe that cutting Blood Moon is weakening the deck for a real tournament. What we can learn from the HL edidtion simulation is how important a low curve and one drops are. The result is that you should play all 2 power for 1 mana cards you have acess to in your 1 or two color deck ;-)

Nastaboi

I was actually surprised how well it worked against a real opponent. I think the main reason for upping the land count were not being able to play maximum number of one-drops, and bolts costing two mana instead of just one. The actual perfect land count even for goldfish is probably one or two lower, because some bolts can be cast for just one mana, and some deal more than three damage for two mana.

Cutting moons might not be the best move, but you have to try unconventional things once for a while, if you want to make progress.

My deck above was missing Dragonskull Summit, as I found the missing card behind my desk when cleaning yesterday.
Quote0:13:51 [Nastaboi] Nastaboi plays Invincible Hymn from Hand
0:14:25 [Nastaboi] Nastaboi's life total is now 221 (+213)

Tiggupiru

Quote from: Nastaboi on 20-09-2013, 10:21:02 AMI was actually surprised how well it worked against a real opponent. I think the main reason for upping the land count were not being able to play maximum number of one-drops, and bolts costing two mana instead of just one. The actual perfect land count even for goldfish is probably one or two lower, because some bolts can be cast for just one mana, and some deal more than three damage for two mana.

You do have few mana sinks and creature lands, so drawing those cards will reduce the effects of flooding somewhat. Upping the land count does also make your mana better. None of these shows in the computer simulated games, but are relevant in the real life testing. I would actually try more non-basics (Ghitu Encampment at the very least), since having more lands will lead to situations where you can just choose to play untapped or colored lands whenever the curve requires it and have the land act as a spell when it doesn't.

These results make me wanna test different approach with the WW and couple of other decks too. If I manage to detach myself from GTA V long enough to have any meaningful testing, I will post them. =)

Quote from: Nastaboi on 20-09-2013, 10:21:02 AMCutting moons might not be the best move, but you have to try unconventional things once for a while, if you want to make progress.

Welcome to the dark side. We have cookies.

Nastaboi

Found and error in the code that made three-mana bolts look less appealing. The fastest deck should consist of 22 one-drops, 12 two-drops, 18 two-mana bolts, 6 three-mana bolts and 42 lands, though being on play going up to 19 two-mana bolts was slightly better. Average kill turn improved to 4.410 on play and 4.229 on draw.

About to test haste creatures next.

EDIT: From simulation it seems that three-mana haste creature (Ram-Gang) was better than a bolt for same CMC, but two and four mana haste creatures were significantly worse than their counterparts. I wrote the new code hastily and there might be some minor errors, but results seemed reasonable.
Quote0:13:51 [Nastaboi] Nastaboi plays Invincible Hymn from Hand
0:14:25 [Nastaboi] Nastaboi's life total is now 221 (+213)

Nastaboi

This time I added maximum number of one-mana bolts (8) and was able to drop land count to 39 and average kill turn to 4.342 on play and 4.182 on draw. The fastest deck had 22 one-drops, 15 two-drops, 8 one-mana bolts, 16 two-mana bolts and 39 lands, -1 two-drop +1 two-mana bolt on draw. There should probably be some number of three-mana bolts in the deck, but adding sixth card type to the code is not something I'm willing to do right now, though it's not that difficult - just requires much typing. That should give pretty accurate simulation for the deck though, so I will do it some day.
Quote0:13:51 [Nastaboi] Nastaboi plays Invincible Hymn from Hand
0:14:25 [Nastaboi] Nastaboi's life total is now 221 (+213)