sybila/biodivine-lib-bdd

Bdd valuation manipulation and iteration.

Closed this issue · 1 comments

Extend Bdd API with the following:

  • is_single_valuation for testing if a Bdd is exactly one valuation.
  • is_single_path for testing if a Bdd 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 and least_fixed_path for getting a path with most/least variables fixed.
  • Add a BddPathIterator which will go through all paths as BddPartialValuations.
  • A rework of BddValuationIterator so that it is based on BddPathIterator 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 a Bdd and then converted back into a Bdd.

Closed by #25.