|
lab_ml
Lazy Machine Learning
|
Represents a algorithm to learn the game of Nim. More...
#include "NimLearner.h"
Collaboration diagram for NimLearner:Public Member Functions | |
| NimLearner (unsigned startingTokens) | |
Constructor to create a game of Nim with startingTokens starting tokens. More... | |
| std::vector< Edge > | playRandomGame () const |
Plays a random game of Nim, returning the path through the state graph as a vector of Edge classes. More... | |
| void | labelEdgesFromThreshold (int threshold) |
| Label the edges as "WIN" or "LOSE" based on a threshold. More... | |
| const Graph & | getGraph () const |
| Returns a constant reference to the state space graph. More... | |
Represents a algorithm to learn the game of Nim.
| NimLearner::NimLearner | ( | unsigned | startingTokens | ) |
Constructor to create a game of Nim with startingTokens starting tokens.
This function creates a graph, g_ representing all of the states of a game of Nim with vertex labels "p#t#", where:
For example: "p1t4" is Player 1's turn with four (4) tokens remaining "p2t8" is Player 2's turn with eight (8) tokens remaining
All legal moves between states are created as edges with initial weights of 0.
| startingTokens | The number of starting tokens in the game of Nim. |
This function creates a graph, g_ representing all of the states of a game of Nim with vertex labels "p#-X", where:
For example: "p1-4" is Player 1's turn with four (4) tokens remaining "p2-8" is Player 2's turn with eight (8) tokens remaining
All legal moves between states are created as edges with initial weights of 0.
| startingTokens | The number of starting tokens in the game of Nim. |
| std::vector< Edge > NimLearner::playRandomGame | ( | ) | const |
Plays a random game of Nim, returning the path through the state graph as a vector of Edge classes.
The origin of the first Edge must be the vertex with the label "p1-#", where # is the number of starting tokens. (For example, in a 10 token game, result[0].origin must be the vertex "p1-10".)
| void NimLearner::labelEdgesFromThreshold | ( | int | threshold | ) |
Label the edges as "WIN" or "LOSE" based on a threshold.
| const Graph & NimLearner::getGraph | ( | ) | const |
Returns a constant reference to the state space graph.