Skip to main content

flamapy-sdd is a plugin to flamapy providing Sentential Decision Diagram (SDD) knowledge compilation for exact analysis of feature models

Project description

flamapy-sdd

flamapy-sdd is a flamapy plugin that compiles a feature model into a Sentential Decision Diagram (SDD) for exact analysis.

SDD is a knowledge-compilation language (a subset of d-DNNF, strictly more succinct than OBDD in cases), so it supports exact, polytime queries — model counting, consistency, conditioning — and can stay compact on models where a BDD blows up. It complements the ecosystem:

  • flamapy-bdd compiles to OBDD (exact, but can explode on large models).
  • flamapy-sharpsat gives an approximate count (ApproxMC) for very large models.
  • flamapy-sdd gives an exact count via a more succinct compilation, on top of the SAT CNF.

It uses PySDD.

Installation

pip install flamapy-sdd

Operations

Operation Class
Exact number of configurations SDDConfigurationsNumber
Satisfiable (non-void) SDDSatisfiable
Core features SDDCoreFeatures
Dead features SDDDeadFeatures

Usage

from flamapy.metamodels.fm_metamodel.transformations import UVLReader
from flamapy.metamodels.sdd_metamodel.transformations import FmToSDD
from flamapy.metamodels.sdd_metamodel.operations import SDDConfigurationsNumber

fm = UVLReader('model.uvl').transform()
sdd_model = FmToSDD(fm).transform()
count = SDDConfigurationsNumber().execute(sdd_model).get_result()

License

GPL-3.0-or-later.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flamapy_sdd-2.6.0.dev6.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flamapy_sdd-2.6.0.dev6-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file flamapy_sdd-2.6.0.dev6.tar.gz.

File metadata

  • Download URL: flamapy_sdd-2.6.0.dev6.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for flamapy_sdd-2.6.0.dev6.tar.gz
Algorithm Hash digest
SHA256 906a33360e3cdc2ec33de22eb0992ccf2cb06f9e5da01518d1f00b2d0fab517c
MD5 2c86c9e1f77ce9cc2628def7ae22b303
BLAKE2b-256 b4ff666ae505f9f2eaa383580e4e5c86d72776d88e6c8f9b13c98303f8edb273

See more details on using hashes here.

File details

Details for the file flamapy_sdd-2.6.0.dev6-py3-none-any.whl.

File metadata

File hashes

Hashes for flamapy_sdd-2.6.0.dev6-py3-none-any.whl
Algorithm Hash digest
SHA256 f365c2df65012ed596ed9ad4a440e0ccf204c0be50aeac561d675df152839d60
MD5 25d1fdc1ce7f0ff9a8c89ba267e8f91d
BLAKE2b-256 e7ffdc0d4ea6e234bbe87ebaaf943c73c066eda65e37c9cb87cf7caeb1ad1bc2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page