HN user

sisu

40 karma
Posts0
Comments6
View on HN
No posts found.

You have people playing these games with voice commands[1] and DDR mats[2] and whatever. If that isn't evidence this isn't a test of dexterity, I don't know what will.

I thought it's precisely the opposite: people find these kind of challenges meaningful because it is a test of dexterity that is particularly difficult to perform with such controllers.

"My major gripe with haskell was that I could never tell the space/time complexity of the my code without serious analysis (that among other things involves second-guessing the compiler's ability to optimize). This makes writing good quality code harder than it needs to be."

This problem is significantly worse in Haskell than in most other languages. Usually you lose at most a constant factor in performance if the compiler doesn't optimize as much as you expected, but the lazy evaluation can actually change the asymptotic memory complexity. I have been bitten by lazy evaluation several times by writing code that I expect to run in constant space and then finding it require linear amount of memory because of the evaluation order.

1. I agree with what you say. There exists a low-order strategy that has the same payoff against the low-order strategy your opponent uses, and you can use that if you know your opponent's strategy. However, in many games there aren't low-order strategies that would work well against any low-order strategy so you need to know the opponent's strategy to choose a proper low-order strategy. Alternatively you could use a higher order strategy that learns the opponent's strategy and adapts to it.

2. Well, I was thinking that a strategy would be a mapping from game history to a probability distribution over possible moves. Should this be considered in some other way?

Sure, you can just play according to the Nash equilibrium and you can't be exploited, but probably a more interesting case is when both players try to outsmart the other player and not just aim for a draw.

> It's true, however, that this leads to a very interesting consequence which is not discussed in this context, something quite convoluted: "I will commit to a first-order Markov strategy in order to prevent my opponent from using a higher-order Markov strategy, so that my own analysis of their strategy simplifies." It is a curious statement that your own ignorance forces someone else to be ignorant, which you can then exploit.

This is only true if you know the strategy of the enemy beforehand, though. For instance if you play rock-paper-scissors and decide your move only based on the previous move your enemy can easily exploit that after playing for a while. It is true that the enemy doesn't have to remember more than one move after he learns your strategy but he needs to remember many moves to learn it.