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.dev11.tar.gz (8.8 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.dev11-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: flamapy_sdd-2.6.0.dev11.tar.gz
  • Upload date:
  • Size: 8.8 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.dev11.tar.gz
Algorithm Hash digest
SHA256 4651e983447b5b5e6af1022290873a488aa60fefb22ae04bb2ba28877ffd2192
MD5 e9220d5680d40587fb6028ba6a1c2efd
BLAKE2b-256 2a804d298ba3f025ae98264e391ff17d74a7a531b7c0bb361cead92085f742f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flamapy_sdd-2.6.0.dev11-py3-none-any.whl
Algorithm Hash digest
SHA256 c1aeffa5b8f89fcd5249c597ec7a2965d19006a5b4775a4ae1562eb30e75fa35
MD5 f607bb8d11ecf797dd7a3cce1a0691d8
BLAKE2b-256 ddf7984cd14b1362859fabf13d93df09a00c15f41c93de5609d0764f05495176

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