0

I'm current using the expectiminimax algorithm, which is working great in my current situation:

max -> min -> chance -> max -> min -> chance -> (repeat)

I cannot in any way do

max/min -> Chance -> (repeat)

due to way the game works.

I feel as though the alpha is going to be inaccurate if I proceed to convert my algorithm over.

Is there any side effects to implementing pruning (apart from the horizon effect) with my current set up or am I just overthinking this?

nbro
  • 15,395
  • 32
  • 113
  • 196
Elegant
  • 143
  • 2
  • 15

2 Answers2

0

I'm not sure which game you are trying to implement, but it does sound interesting. It's really hard to come up with a good answer when we know nothing about the branching factor of any of the nodes, or how the game proceeds. I think this is really depending on your game.

I've tried different pruning methods in the game of backgammon, and based on this experience I really think the result of your search algorithm depends on how much the chance node influence the game expectation compared to how much the min and max nodes changes the expectation.

If the chance node can change the expectation of the game drastically (high variance for each dice roll) but the five-six moves to choose among does not change the situation much, then I don't think you should worry to much.

However if it is the opposite, the chance nodes are basically just driving the game forward without influencing the game result expectation, and the game moves (or actions) really is important, I think you can gain a lot on getting a good search algorithm.

Check also *-minimax algorithm. (Bruce Ballard 1983)

The same things applies for Expectiminimax and *-minimax as normal minimax. Try the assumed best moves first (from some heuristics) to create cutoffs, but you should also try to heuristic order the chance outcomes in the chance nodes.

This is actually really interesting when you start testing this, but the only way to get good answers is to get you fingers dirty and try it out.

Good luck!

-1

It appears that pruning still holds in this environment, I had serious doubts but everything has checked out so far. That is to say that all test cases in both the none pruning algorithm and the pruning algorithm provided the same move with the same heuristic just in fewer nodes.

I also found that in my case I would relinquish control of the chance nodes to the user (they can determine an acceptable loss if any for certain events). If the ability has a 95% chance to hit and a 5% chance to miss the user could deem that this 5% is negligible and ignore the miss chance, this does not mean the heuristic is treated as 100% of its value though, it maintains its 95%. I had rare situations where 16 possible outcomes could occur from using 1 ability given the environment and I wanted flexibility for such a situation.

As for the game, it would be similar to Pokémon in terms of play style at least.

Elegant
  • 143
  • 2
  • 15