ragraph.analysis.compatibility.bdd
#
Binary Decision Diagram implementation of the compatibility problem.
Module Contents#
Functions#
|
Generate matrix index ranges. |
|
Construct a recursive operation function over all items. |
|
Get the feasible configurations based on a compatibility matrix between different |
- ragraph.analysis.compatibility.bdd._yield_ranges(nums: List[int], start: int = 0) Generator[range, None, None] #
Generate matrix index ranges.
- ragraph.analysis.compatibility.bdd._recursive(operation: str, bdd: dd.autoref.BDD, items: List[dd.autoref.Function]) dd.autoref.Function #
Construct a recursive operation function over all items.
- ragraph.analysis.compatibility.bdd.yield_feasible_configurations(compat: Union[numpy.ndarray, List[List[Union[bool, int]]]], comp_variant_nums: List[int]) Generator[Tuple[int, Ellipsis], None, None] #
Get the feasible configurations based on a compatibility matrix between different variants of elements and the “bucket” sizes (number of variants of each element).
- Parameters:
compat – Compatibility matrix (square) between different variants of elements. Size is determined by the total number of variants.
comp_variant_nums – The number of variants for each element. The matrix has to be sorted accordingly.
- Returns:
Feasible configurations as a tuple with a variant’s (absolute) index for each element.