Bdd valuation manipulation and iteration.
Closed this issue · 1 comments
daemontus commented
Extend Bdd
API with the following:
-
is_single_valuation
for testing if aBdd
is exactly one valuation. -
is_single_path
for testing if aBdd
is exactly one "path" (i.e.BddPartialValuation
). -
min_valuation
,max_valuation
to obtain least/greatest valuation in terms of lexicographic ordering. -
most_positive_valuation/path
,most_negative_valuation/path
for getting valuation/path with most positive/negative literals. Note that the most positive/negative valuation does not have to be a max/min valuation because lexicographic ordering favours ones in high places. -
most_fixed_path
andleast_fixed_path
for getting a path with most/least variables fixed. - Add a
BddPathIterator
which will go through all paths asBddPartialValuations
. - A rework of
BddValuationIterator
so that it is based onBddPathIterator
instead of the current situation. Also, it should be possible to create an iterator just from a partial valuation and variable count. - A tutorial text which explains
BddValuation
and how it can be extracted from aBdd
and then converted back into aBdd
.