Dominion Strategy Forum

Please login or register.

Login with username, password and session length
Pages: [1]

Author Topic: yet another simulation challenge  (Read 2395 times)

0 Members and 1 Guest are viewing this topic.

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2624
    • View Profile
yet another simulation challenge
« on: September 13, 2011, 11:38:28 am »
0

This is a set I played the other day and was first player with a 5/2 opening. I thought that this was a big handicap and tried a gambling strategy that proved to be quite inappropriate. I looked back at it with the simulator and it seemed quite interesting with a lot of possible tweaks so I'm throwing it open.

Steward, Navigator, Cutpurse, Remodel, Tournament. Rabble, Outpost, Harem, Noble, Expand, Platinum, Colony.

To help people with a few simulator features
- You'll need to add a clause for each unique prizes within the purchasing rules if you want them claimed
- The platinum and colonies piles are empty if they are not included in the purchasing rules (even if they are in conditional statements)

To stop people wasting too much time
- I found that the games had very high variance so you can't rely on one 10,000 simulation to guarantee results of less than 2%
- The core strategy determines most games
- There is a point at which endgame improvements are hard to see beyond the variance.
- In other words, try to find a good core strategy rather than beat other people's good bots by miniscule percentages
Logged

rspeer

  • Witch
  • *****
  • Offline Offline
  • Posts: 469
  • Respect: +877
    • View Profile
Re: yet another simulation challenge
« Reply #1 on: September 13, 2011, 12:16:27 pm »
0

Cool. I'm going to take the first step of my challenge to be "make my simulator handle these cards", and then try to actually use it.

Except for Outpost. That is a project for another week, and not a very fun one in my estimation. I'll treat it as a blank card or something. :P
Logged

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2624
    • View Profile
Re: yet another simulation challenge
« Reply #2 on: September 13, 2011, 01:38:54 pm »
0

There are a few decision problems in this set for the simulators. The steward is tricky for the trash/coins/draw option. Choice of target for expands are tricky. Choice of action card to play can be troublesome too. Tournaments getting blocked by an opponent's province, tournaments discarding a province (for no gain) when you might prefer to expand the province to a colony, tournaments putting a prize on top of the deck before playing a drawing card to draw them without an action, are just some of the tournament card play issues.


Anyway, good luck with all that.
Logged

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1059
  • Respect: +868
    • View Profile
    • Geronimoo's Dominion Simulator
Re: yet another simulation challenge
« Reply #3 on: September 14, 2011, 03:56:51 am »
0

A Tournament bot going for PPP (Provinces + Prizes = Pleasure):
Code: [Select]
<player name="DG Sim Challenge - Tournament">
   <buy name="Followers"/>
   <buy name="Trusty_Steed"/>
   <buy name="Bag_of_Gold"/>
   <buy name="Princess"/>
   <buy name="Diadem"/>
   <buy name="Province"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Platinum">
      <condition>
         <left type="countCardsInDeck" attribute="Platinum"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Nobles">
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Trading_Post">
      <condition>
         <left type="countCardsInDeck" attribute="Trading_Post"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Steward"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Tournament"/>
   <buy name="Steward">
      <condition>
         <left type="countCardsInDeck" attribute="Trading_Post"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Steward"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>

A Colony bot going for... a loss:
Code: [Select]
<player name="DG Sim Challenge - Colonies">
   <buy name="Colony">
      <condition>
         <left type="countCardsInDeck" attribute="Platinum"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Province">
      <condition>
         <left type="countCardsInSupply" attribute="Colony"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Colony"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Colony"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Platinum"/>
   <buy name="Nobles">
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Rabble">
      <condition>
         <left type="countCardsInDeck" attribute="Rabble"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Steward">
      <condition>
         <left type="countCardsInDeck" attribute="Steward"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>

It hurts my eyes looking over the sample games because the simulator makes several play mistakes each turn, but it still wins by a large margin, so a human player will have an even greater edge.
« Last Edit: September 14, 2011, 03:59:39 am by Geronimoo »
Logged

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2624
    • View Profile
Re: yet another simulation challenge
« Reply #4 on: September 14, 2011, 11:09:16 am »
0

There's no trading post in the kingdom.
Logged

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2624
    • View Profile
Re: yet another simulation challenge
« Reply #5 on: September 20, 2011, 10:11:15 am »
0

Here are my thoughts on this kingdom and the tournament play. It’s a shame that the results are hard to find since the results are quite interesting.

How good is the Geronimo solution? It’s a good baseline strategy. Steward + Tournaments buying provinces is unsurprisingly the core solution. I haven’t been able to create a bot with a winning record against this baseline when starting second. The best improvement to this bot is probably good advice for any game – don’t empty the supply piles when you’re behind on points!

Do you want to buy provinces instead of colonies? Take initial provinces then take colonies as well. The first provinces provide prizes and halt your opponent’s tournaments as well. This is especially true in this kingdom once stewards have trashed the decks to a small size. After the best prizes are taken and the decks bloat with other cards the provinces are a bit less valuable.

How quickly should you claim duchies as prizes? Not quickly at all. They should be taken very late or else they will clog up the deck and deny future province and colony buying hands.

When playing with tournaments do you ever want any platinum? It seems so. Buying platinum might gets you a slow win on colonies when buying provinces might give you a quick loss emptying the pile. It’s a calculated risk once you get far behind on provinces. Your first provinces are still more valuable than platinum since they halt your opponent's tournaments.

Can you overbuy tournaments and be a tournament idiot, similar to a village idiot? Tournaments are excellent cards until your opponent starts buying provinces. They let the steward trim the deck and provide income too. However, silver usually becomes a better buy than tournaments once the opponent has a couple of provinces and the best prizes are taken.

How do followers change play? This is the strongest prize. The simulator makes simple decisions when discarding cards and this strengthens the followers’ attack and makes it difficult to clean up the curses. Human players can probably defend against the followers much better. With followers you don’t need to vary from the simplest strategy and should generally use just gold and tournaments.

How does the trusty steed change play? The steed is also a strong prize, even though the simulator only ever plays it for 2 cards, 2 actions.  Adding the trusty steed to a very compact deck enables a drawing strategy with rabbles and nobles that is superior to buying gold. You should be careful about buying  tournaments once you have a rabble since the rabble puts provinces into your opponent’s hands more often.

How does the bag of gold change play? Similarly to the trusty steed, the bag of gold makes nobles a better purchase than gold. The deck will cycle faster and any gold placed on top of the deck may get drawn sooner. Using a remodel to turn gold into provinces is a good move, but only once you have the bag of gold.

How does the diadem change play? A diadem can actually be a better prize than the bag of gold. In any game that will end quickly, the instant value of a diadem (+2/+3/+4 coins) can be better than the value of the bag of gold (+3 coins next turn). As I improved the defensive nature of my simulations the games extended and the value of the diadem diminished, but it should probably be worth more consideration than some human players give it.

How does the princess change play? The princess is the least valuable prize. Terminal actions need to be very carefully managed in this kingdom. Buying too many terminals is a mistake.

What can be done with an expand? Unfortunately the best uses of the expand are not supported by the decision rules in the simulator. Human players can probably get value from an expand.

When do nobles and harems come into play? Nobles can be used with bags of gold and the trusty steed (as above). Nobles do not support drawing chains with followers. Harems are worse than gold in the early game and worse than duchies late game. They should still come into play occasionally for some endgame vp.

What about the other action cards? In the early game the navigator and cutpurse will clash with the steward when the steward should be trimming the deck. By the mid game most of the copper is trashed and the cutpurse becomes an expensive use of an action. Any advantage from the navigator in the mid-game could be anti-intuitive and beyond the simulator. Taking more stewards is worse than taking a rabble. The opportunity costs of an outpost action are far too high.
« Last Edit: September 20, 2011, 10:20:20 am by DG »
Logged

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2624
    • View Profile
Re: yet another simulation challenge
« Reply #6 on: September 20, 2011, 10:18:58 am »
0

The tournament is often described as a streaky or lucky card. In this kingdom it really is. If we take the simple Geronimo bot (without trading post) as a baseline, I’d estimate that 60%-70% of games are won with 'lucky' early province turns and just 30%-40% of the games can be won through good/improved play. Any number of games can be lost with worse play of course. There appears to be no competitive style of play other than cutting the deck down with stewards while buying tournaments and gold. Once the first provinces are bought the games often decided over the next few turns. The continued play can be interesting but usually not decisive.

It would be a mistake to think that buying provinces will reduce an opponent’s spending each turn. It does something slightly different. Provinces choke the tournaments and choke spending on some turns, but if they are not present then spending is unrestricted. As soon as one player shuffles the first province into their deck, the opponent is likely to find their tournaments blocked and the income doesn’t just fall, it is choked for that turn. If the losing player is choked from buying provinces while the leader is more buying provinces then the game could be effectively over. This is without even considering the impact of the prizes.

There’s yet another factor that helps the leading player. If the losing player continues to buy provinces then this may just empty the province pile for a quicker loss. If the losing player looks to alternative vp sources, such as colonies in this set, then the leader will control the provinces and continue to get much more value from tournaments. It’s seemingly a “head I win, tails you lose” situation.

The first player is also likely to get two advantages: (1) to shuffle province into the draw deck first and draw a province into hand first, before the opponent has taken an equal number of turns (2) to claim prizes first. These factors lead to a staggeringly high first player advantage. If you use the Geronimo bot (with the trading post removed) then the first player win rate is 63%-37%. I’m guessing there will be very few two card combinations (without tournament) that give a higher first player advantage than steward/tournament does here.
« Last Edit: September 20, 2011, 10:21:58 am by DG »
Logged

rspeer

  • Witch
  • *****
  • Offline Offline
  • Posts: 469
  • Respect: +877
    • View Profile
Re: yet another simulation challenge
« Reply #7 on: September 25, 2011, 10:04:30 pm »
0

My bot (in Dominiate format) buys a Rabble if it has a Trusty Steed, and never buys Nobles; it also buys Gold and Silver more, and buys Colonies and Duchies more in the endgame. It beats my translation of Geronimoo's (still without Trading Post) 55-45:

Code: [Select]
{
  name: 'DG Sim Challenge - rspeer'
  author: 'rspeer'
  gainPriority: (state, my) -> [
    "Colony" if state.gainsToEndGame() <= 2
    "Followers"
    "Trusty Steed"
    "Bag of Gold"
    "Princess"
    "Diadem"
    "Province"
    "Duchy" if state.gainsToEndGame() <= 2
    "Estate" if state.gainsToEndGame() <= 1
    "Rabble" if my.countInDeck("Trusty Steed") > 0 and my.countInDeck("Rabble") == 0
    "Platinum" if my.countInDeck("Platinum") == 0
    "Gold"
    "Tournament" if my.countInDeck("Tournament") < 4
    "Steward" if my.countInDeck("Steward") == 0
    "Silver"
  ]
}

Here's the translation of Geronimoo's I'm playing it against:

Code: [Select]
{
  name: 'DG Sim Challenge - Geronimoo'
  author: 'Geronimoo'
  gainPriority: (state, my) -> [
    "Followers"
    "Trusty Steed"
    "Bag of Gold"
    "Princess"
    "Diadem"
    "Province"
    "Duchy" if state.gainsToEndGame() <= 1
    "Estate" if state.gainsToEndGame() <= 1
    "Platinum" if my.countInDeck("Platinum") == 0
    "Nobles" if my.countInDeck("Gold") > 0
    "Gold"
    "Tournament"
    "Steward" if my.countInDeck("Steward") == 0
    "Silver"
  ]
}
Logged

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2624
    • View Profile
Re: yet another simulation challenge
« Reply #8 on: September 26, 2011, 10:50:13 am »
0

Good stuff. It's pretty hard to get past the 45/55. What you might find is that you can get another bot to beat your existing one by 45/55 but it will not improve much against the Geronimo bot.
Logged
Pages: [1]
 

Page created in 1.716 seconds with 20 queries.