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
Properties
BddNodeLimit
Node budget for BDD construction (mirrors
BinaryDecisionDiagram.DefaultNodeBudget, asserted in tests).
public int BddNodeLimit { get; init; }
Property Value
CoverStepLimit
Branch-and-bound steps for the minimum-cover search outside the guarantee zone.
public int CoverStepLimit { get; init; }
Property Value
Default
public static ResourceBudget Default { get; }
Property Value
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
QmPairComparisonLimit
Cube-pair comparisons for Quine–McCluskey prime generation (11-12 variable attempts).
public long QmPairComparisonLimit { get; init; }
Property Value
SatConflictLimit
SAT conflicts for one explicit equivalence query (mirrors
EquivalenceChecker.DefaultMaxConflicts, which asserts the match in tests).
public int SatConflictLimit { get; init; }
Property Value
SoundnessGuardConflictLimit
SAT conflicts for the per-call soundness guard beyond the truth-table range.
public int SoundnessGuardConflictLimit { get; init; }