aqtech-ca / mctreesearch4j

MIT License
7 stars 1 forks source link

Added in benchmarks #14

Closed larkz closed 3 years ago

larkz commented 3 years ago

Added in benchmarks for "Push your luck", "GridWorld", and "2048" games Restructured connect4 files.

larkz commented 3 years ago

This is where the logic to update the state should be. initialState can stay as is. transition should handle the two different actions to either: a - first clone the state, then call roll on each Dice class of the state, or b - first clone the state then compute the reward then reset the faces of each dice. reward should return the current reward tallied in the MDP state. actions can stay as is.

I could try to refactor this a bit

larkz commented 3 years ago

This class' responsibility is to store a list of Die classes and the reward tallied so far. The class should extend ICloneable to the MDP can clone and modify the state.

larkz commented 3 years ago

This class' responsibility is to store a list of Die classes and the reward tallied so far. The class should extend ICloneable to the MDP can clone and modify the state.

  • Keep separate die classes for each die in dice.
  • Advantage have different n-sided dice in your set.
  • Abstract State should be a list of die classes.
  • Computing reward should be calling, .roll() on each die object, and summing.

Keeping 1 abstract Die class is fine, just allow for multiple sided dice (suggestion accept list of ints)

larkz commented 3 years ago

@JunTaoLuo most of the minor changes we discussed - and there were many - have been changed. There is the major change of abstracting the dice class on a per dice basis, but we re-decided to park this issue due to the fact the generating the reward requires knowledge of other dice info. Let me know if the dice abstraction is still required.

Otherwise, please make the other minor changes I might have missed and merge this.