LotSizingDataModel.Instance
2.0.1
Lot-sizing instance representation, descriptors and problem characterization.
Loading...
Searching...
No Matches
UniversalProblemSpecification.cs
Go to the documentation of this file.
1
namespace
LotSizingDataModel.Instance.Notation.Matching
;
2
3
/// <summary>
4
/// Represents a universal notation interpreted as a problem specification.
5
/// </summary>
6
/// <remarks>
7
/// Specification matching uses positive constraints:
8
/// - explicitly present characteristics are required;
9
/// - absent beta features and absent optional network modifiers are not
10
/// interpreted as explicit negations.
11
///
12
/// Consequently an instance may be richer than the specification and remain
13
/// compatible.
14
/// </remarks>
15
public
sealed
class
UniversalProblemSpecification
16
{
17
public
UniversalProblemSpecification
(
18
UniversalLotSizingNotation
notation)
19
{
20
Notation
=
21
notation ??
22
throw
new
ArgumentNullException(nameof(notation));
23
}
24
25
public
UniversalLotSizingNotation
Notation
{
get
; }
26
27
public
string
CanonicalText
=>
28
Notation
.Render();
29
30
public
static
UniversalProblemSpecification
Parse
(
31
string
text,
32
string
? schemeVersion =
null
)
33
{
34
UniversalLotSizingNotation
notation =
35
new
UniversalNotationParser
()
36
.
Parse
(
37
text,
38
schemeVersion);
39
40
return
new
UniversalProblemSpecification
(
41
notation);
42
}
43
44
public
override
string
ToString
() =>
45
CanonicalText
;
46
}
LotSizingDataModel.Instance.Notation.Matching.UniversalProblemSpecification.Parse
static UniversalProblemSpecification Parse(string text, string? schemeVersion=null)
Definition
UniversalProblemSpecification.cs:30
LotSizingDataModel.Instance.Notation.Matching.UniversalProblemSpecification.CanonicalText
string CanonicalText
Definition
UniversalProblemSpecification.cs:27
LotSizingDataModel.Instance.Notation.Matching.UniversalProblemSpecification.UniversalProblemSpecification
UniversalProblemSpecification(UniversalLotSizingNotation notation)
Definition
UniversalProblemSpecification.cs:17
LotSizingDataModel.Instance.Notation.Matching.UniversalProblemSpecification.Notation
UniversalLotSizingNotation Notation
Definition
UniversalProblemSpecification.cs:25
LotSizingDataModel.Instance.Notation.Matching.UniversalProblemSpecification.ToString
override string ToString()
Definition
UniversalProblemSpecification.cs:44
LotSizingDataModel.Instance.Notation.UniversalLotSizingNotation
Typed abstract syntax tree for the versioned alpha | beta | gamma scheme.
Definition
UniversalNotationAst.cs:143
LotSizingDataModel.Instance.Notation.UniversalNotationParser
Parses and canonicalizes notation scheme version 1.
Definition
UniversalNotationParser.cs:10
LotSizingDataModel.Instance.Notation.UniversalNotationParser.Parse
UniversalLotSizingNotation Parse(string text, string? schemeVersion=null)
Definition
UniversalNotationParser.cs:11
LotSizingDataModel.Instance.Notation.Matching
Definition
UniversalNotationMatcher.cs:5
LotSizingDataModel.Instance
Notation
Matching
UniversalProblemSpecification.cs
Generated by
1.17.0