chain_simulator.assembly module#
Transition matrix assembly functions.
This module provides functionality for assembling transition matrices. Resulting transition matrices are built using sparse formats, e.g. the Coordinate (COO) format.
- chain_simulator.assembly.array_assembler(state_count, probability_calculator)#
Assemble transition matrix using a state change probability generator.
Assemble a transition matrix in SciPy Coordinate (COO) array format using a state change probability generator. The assembler iterates over the generator, collects it’s output and turns this into a SciPy COO array.
- Parameters:
- state_countint
How many states the probability generator yields.
- probability_calculatorIterator[Tuple[int, int, _T]]
Generator object yielding state change probabilities.
- Returns:
- coo_array
Transition matrix in SciPy COO array format.
- Parameters:
state_count (int) –
probability_calculator (Iterator[Tuple[int, int, _T]]) –
- Return type:
coo_array
See also
chain_simulator.simulation.state_vector_processor
Simulate a Markov chain and return intermediate/final state vector(s).
Notes
This assembler iterates over the probability generator, collects its output and turns this into a SciPy COO array. The generator should yield the following items:
row index of probability (int).
column index of probability (int).
actual probability itself (int or float).
Examples
Assemble a 3 by 3 transition matrix using a dummy generator, yielding probabilities along a diagonal:
>>> def dummy_generator(): ... for index in range(3): ... yield index, index, index + 1 >>> transition_matrix = array_assembler(3, dummy_generator()) >>> transition_matrix <3x3 sparse array of type '<class 'numpy.int32'>' with 3 stored elements in COOrdinate format> >>> transition_matrix.toarray() array([[1, 0, 0], [0, 2, 0], [0, 0, 3]])