Source code for core.decision_diagrams.BDDTopology
from typing import Dict, Set
from networkx import DiGraph
from core.BooleanFunction import BooleanFunction
from core.BooleanFunctionCollection import BooleanFunctionCollection
from core.DrawInterface import DrawInterface
from core.decision_diagrams.BDD import BDD
[docs]
class BDDTopology(BooleanFunctionCollection, DrawInterface):
def __init__(self, topology: DiGraph, bdds: Dict[str, BDD]):
super().__init__()
self.topology = topology
self.bdds = bdds
[docs]
def get_output_variables(self) -> Set[str]:
output_variables = set()
for node in self.topology:
assert isinstance(node, BDD)
output_variables.update(node.get_output_variables())
return output_variables
[docs]
def get_auxiliary_variables(self) -> Set[str]:
return set()
[docs]
def get_boolean_functions(self) -> Set[BooleanFunction]:
bdds = set()
for bdd in self.bdds.values():
bdds.add(bdd)
return bdds
[docs]
def eval(self, instance: Dict[str, bool]) -> Dict[str, bool]:
raise NotImplementedError()
[docs]
def to_dot(self) -> str:
raise NotImplementedError()