Factorized_POMDP
def Factorized_POMDP(
percept_category_sizes:list[int], # list of sizes of each percept category
factorized_observation_function:NDArray[numpy.float64], # An NxM array, where N is the number of env states and M = sum(percept_category_sizes)
transition_function:NDArray[numpy.float64], # An NxNxA array, where A is the number of actions. Rows in each slice contain probability distributions.
initial_state:int=0, # Start state of POMDP
):A general construtor for factorized POMDPs.
These differ from standard POMDPs in that the transition function indicates the probability distribution over states in each percept category, rather than over all possible percepts