smus

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 11, 2024 License: MIT Imports: 4 Imported by: 1

Documentation

Overview

Package smus provides an algorithm to compute a smallest minimal unsatisfiable set (SMUS) of a set of propositions or formulas in LogicNG.

A smallest minimal unsatisfiable set (SMUS) is a smallest MUS based on the number of formulas it contains. So in contrast to a regular MUS it is not only locally minimal, but globally minimal.

The implementation in LogicNG is based on "Smallest MUS extraction with minimal hitting set dualization" (Ignatiev, Previti, Liffiton & Marques-Silva, 2015).

To compute a SMUS on a list of propositions you can call

smus.Compute(fac, propositions)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Compute

func Compute(
	fac f.Factory,
	propositions []f.Proposition,
	additionalConstraints ...f.Formula,
) []f.Proposition

Compute computes the SMUS for the given list of propositions modulo some additional constraints. Returns the SMUS as a list of propositions.

func ComputeForFormulas

func ComputeForFormulas(
	fac f.Factory,
	formulas []f.Formula,
	additionalConstraints ...f.Formula,
) []f.Formula

ComputeForFormulas computes the SMUS for the given list of formulas modulo some additional constraints. Returns the SMUS as a list of formulas.

func ComputeForFormulasWithHandler

func ComputeForFormulasWithHandler(
	fac f.Factory,
	formulas []f.Formula,
	optimizationHandler sat.OptimizationHandler,
	additionalConstraints ...f.Formula,
) (smus []f.Formula, ok bool)

ComputeForFormulasWithHandler computes the SMUS for the given list of formulas modulo some additional constraints. The optimization handler can be used to abort the computation. Returns the SMUS as a list of formulas. If the handler aborted the computation, the ok flag is false.

func ComputeWithHandler

func ComputeWithHandler(
	fac f.Factory,
	propositions []f.Proposition,
	optimizationHandler sat.OptimizationHandler,
	additionalConstraints ...f.Formula,
) (smus []f.Proposition, ok bool)

ComputeWithHandler computes the SMUS for the given list of propositions modulo some additional constraints. The optimization handler can be used to abort the computation. Returns the SMUS as a list of propositions. If the handler aborted the computation, the ok flag is false.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL