Hi, I know I’m unbelievably late to the party but I recently came across this post and I’m stuck on something you say in the introduction. You mention that the running time of the naive algorithm is O(n^2*m^n) but I don’t see how that is the case. The algorithm looks something like this:
for joint_strat in joint_strats: # Has m^n items

for player in players: # Has n items

check that strategy is maximal # Check m items

Doesn’t that make it: O(m*n*m^n) = O(n*m^{n+1}). Am I missing something?

]]>