I'm working on an implementation of Scrabble with MuZero. The board state is represented by a matrix with shape $15 \times15 \times 27$ ($26$ letters $+ 1$ wildcard, value $0/1$) and the rack state $7 \times 27$ (rack always contains $7$ tiles). Now I need to combine the two states into one "game" state/observation, used as input for the network.
I’m quite new to Reinforcement Learning and MuZero. With the implementation of MuZero I use, a game observation must be provided by a single method. The majority of the implemented games that I have seen, concatenate multiple planes into a (3 dimensional) matrix.
def get_observation(): Board_player1 = numpy.where(self.board == 1, 1.0, 0.0) Board_player2 = numpy.where(self.board == -1, 1.0, 0.0) Board_to_play = numpy.full((8,8), self.player).astype(float) return numpy.array([board_player1,board_player2,board_to_play])
All planes have dimension $8 \times 8$. This makes it easy to combine all the planes into $8 \times 8 \times 3$.
How can I combine the $15 \times 15 \times 27$ board state and the $7 \times 27$ rack state ?