Class ResourceBudget

Namespace
LogicalOptimizer
Assembly
LogicalOptimizer.Core.dll

Unified work budgets for the potentially expensive engines. Every limit has a safe default; callers with harder latency requirements can tighten them per call via OptimizationOptions.Budget. Exhausting a budget never produces a wrong result — each engine falls back (heuristic simplification, Unknown verdict) or throws a documented exception.

Scale contract of the fixed limits: expressions accept up to 100 variables overall; truth-table-based operations (TruthTable, exact minimization input) cap at 20; exact minimization is guaranteed ≤10, budgeted ≤12; the SAT-based prime cover extends to 24; SAT/BDD/Tseitin engines have no variable cap, only these work budgets.

public sealed class ResourceBudget
Inheritance
ResourceBudget
Inherited Members

Fields

DefaultCoverStepLimit

Default branch-and-bound step limit for the minimum-cover search.

public const int DefaultCoverStepLimit = 200000

Field Value

int

Properties

BddNodeLimit

Node budget for BDD construction (mirrors BinaryDecisionDiagram.DefaultNodeBudget, asserted in tests).

public int BddNodeLimit { get; init; }

Property Value

int

CoverStepLimit

Branch-and-bound steps for the minimum-cover search outside the guarantee zone.

public int CoverStepLimit { get; init; }

Property Value

int

Default

public static ResourceBudget Default { get; }

Property Value

ResourceBudget

ParseTokenLimit

Maximum number of literals/terms a standard-format parser (LogicalOptimizer.Formats) reads before aborting with ComputationBudgetExceededException. Bounds the memory and time an untrusted DIMACS/WCNF/OPB stream can consume.

public long ParseTokenLimit { get; init; }

Property Value

long

QmPairComparisonLimit

Cube-pair comparisons for Quine–McCluskey prime generation (11-12 variable attempts).

public long QmPairComparisonLimit { get; init; }

Property Value

long

SatConflictLimit

SAT conflicts for one explicit equivalence query (mirrors EquivalenceChecker.DefaultMaxConflicts, which asserts the match in tests).

public int SatConflictLimit { get; init; }

Property Value

int

SoundnessGuardConflictLimit

SAT conflicts for the per-call soundness guard beyond the truth-table range.

public int SoundnessGuardConflictLimit { get; init; }

Property Value

int