SanchoGGP / ggp-base

The General Game Playing Base Package
8 stars 4 forks source link

Incorrectly classifying Tron as an iterated game #226

Closed arr28 closed 9 years ago

arr28 commented 9 years ago

We spent almost all of this match of Tron (new on Tiltyard) thinking we were going to win. Then we lost at the last minute.

GreenShell had predicted a win for some time, but we hadn't seen it.

arr28 commented 9 years ago

Ah - the logs appear to reveal that we think it's an iterated game, using the old iterated game code. (The Nash Equilibrium version detects that it isn't suitable, and it isn't enabled even for suitable games).

arr28 commented 9 years ago

Games which we currently identify as iterated are (according to the saved game characteristics)...

I'm suspicious of stanford.buttonsandlights (from 1429735602887), stanford.arithmetic, stanford.bestbuttonsandlightsbig and stanford.untwistycomplex. We know that base.tron10x10 is wrong and hurting us.

arr28 commented 9 years ago

The Stanford games are all single-player puzzles, so it doesn't matter whether we think they're iterated or not (because the puzzle solver takes priority).

We do need to continue to recognise the base.gt_* games as iterated though. Alternatively, if it's going to be hard to avoid categorising Tron as iterated then perhaps now is the time to finish off #108 and retire the current iterated game player.

arr28 commented 9 years ago

The only place we set mGameCharacteristics.isIteratedGame to true is in stateMachineMetaGame. A game is marked as iterated if each player has the same moves in every turn (true for Tron) - provided that we have enough time to sample (v. likely for Tron).

However, there's also a hack which says a game isn't an iterated game if it's more than 30 turns long and isn't of fixed length.

We might well be able to drop the "longer than 30 turns" part of that hack and still catch all the games that we want to catch, without catching Tron. However, there are more base.gt_* games than those listed above. I want to go over all of those first to check whether this is a reasonable approach (until #108 is sorted).

arr28 commented 9 years ago

Working through base.gt_*...

Game Is iterated Uses IteratedGamePlayer Is fixed length
Chicken Y Y Y
Coordination Y Y Y
Prisoner's Dilemma Y Y Y
Stag Hunt Y Y Y
Tinfoil Hat Y Y Y
Ultimatum Y Y Y
War of Attrition Y - (!) Y
Centipede Sort of Y - (!)
Dollar Auction Sort of - N

Needs a bit more thought.

arr28 commented 9 years ago

Sorted (but assuming variable-length games can't be iterated) - but I've no idea how it still works for Centipede!

Centipede is being identified as a fixed length game of length 17 (after hundreds of thousands of iterations). That can't possibly be right, which implies that there's something very fishy about the sampling we do in order to determine game characteristics. I'll raise another bug for that.