fcapy.poset.tree
The module provides BinaryTree class which represents a binary tree as a partial case of a poset.
Classes
|
- class fcapy.poset.tree.BinaryTree(elements: ~typing.Collection[~typing.Any], leq_func: ~typing.Callable[[~typing.Any, ~typing.Any], bool] = <function BinaryTree.<lambda>>, use_cache: bool = True, children_dict: ~typing.Optional[~typing.Dict[int, ~typing.Tuple[int, ...]]] = None)
- add(element: Any, fill_up_cache: bool = True)
Add an
elementto the BinaryTree only if it does not break the binary structure
- ancestors(element_index: int) FrozenSet[int]
Return a set of indexes of elements of POSet bigger than element #``element_index``
- property ancestors_dict: Dict[int, FrozenSet[int]]
list`[indexes of all elements bigger than `element_idx]
- Type
A dictionary of kind {element_idx
- property bottoms: List[int]
A list of the bottom (the smallest) elements in a POSet
- children(element_index: int) FrozenSet[int]
Return a set of indexes of the biggest elements smaller than #``element_index``
Element
ais a direct sub element of elementbifa``<``band there is no elementcsuch thata``<``c``<``b
- property children_dict: Dict[int, FrozenSet[int]]
list`[indexes of the biggest elements smaller than `element_idx]
- Type
A dictionary of kind {element_idx
- descendants(element_index: int) FrozenSet[int]
Return a set of indexes of elements of POSet smaller than element #``element_index``
- property descendants_dict: Dict[int, FrozenSet[int]]
list`[indexes of all elements smaller than `element_idx]
- Type
A dictionary of kind {element_idx
- property elements: List[Any]
A list of elements of the POSet
- fill_up_ancestors_cache()
Compute all ancestors of each element in a POSet
- fill_up_caches()
Fill up each cache of POSet
- fill_up_children_cache()
Compute children of each element in a POSet
- fill_up_descendants_cache()
Compute all descendants of each element in a POSet
- fill_up_leq_cache()
Compare all the elements of POSet at once
- fill_up_parents_cache()
Compute parents of each element in a POSet
- index(element: Any) int
Returns an index of the
elementin the list ofPOSet.elements
- infimum(element_indexes: Optional[Collection[int]] = None) Optional[int]
Alias for self.meet(element_indexes)
- join(element_indexes: Optional[Collection[int]] = None) Optional[int]
Return the smallest element from POSet bigger than all elements from
element_indexes
- leq_elements(a_index: int, b_index: int) bool
Compare two elements of POSet by their indexes
- property leq_func: Callable[[Any, Any], bool]
A function to compare whether element
a` from the POSet is smaller than ``bor not
- meet(element_indexes: Optional[Collection[int]] = None) Optional[int]
Return the biggest element from POSet smaller than all elements from
element_indexes
- parents(element_index: int) FrozenSet[int]
Return a set of indexes of the smallest elements bigger than #``element_index``
Element
ais a direct super element of elementbifa>``b`` and there is no elementcsuch thata>``c``>``b``
- property parents_dict: Dict[int, FrozenSet[int]]
list`[indexes of the smallest elements bigger than `element_idx]
- Type
A dictionary of kind {element_idx
- remove(element: Any)
Remove and
elementfrom the semilattice
- supremum(element_indexes: Optional[Collection[int]] = None) Optional[int]
Alias for self.join(element_indexes)
- to_networkx(direction: str = 'down')
Construct networkx.Graph (or DiGraph) based on POSet relations and
direction
- property top: int
An index of the single top (the biggest) element of the semilattice
- property tops: List[int]
The set of indexes of the top (the biggest) elements of the semilattice
- trace_element(element: Any, direction: str) Tuple[Set[int], Set[int]]
Get the sets of descendants and children (or ancestors and parents) of an
elementin the POSet- Parameters
element – An element to compare POSet elements with (not necessary from the POSet itself)
direction ({'up', 'down'}) – If set ‘up’ then compute all (and direct) descendants of an
element, if set ‘down’ then compute all (and direct) ancestors of anelement
- Returns
final_elements (set) – A set of children (or parents) of
elementin the POSettraced_elements (set) – A set of descendants (or ancestors) of
elementin the POSet