Google OR-Tools 7.5
DotNet Reference
CP-SAT
Graph
Knapsack solver
Linear solver
Routing
Util
DotNet Reference
Namespaces
Classes
Files
ortools
sat
samples
OptionalIntervalSampleSat.cs
Go to the documentation of this file.
1
// Copyright 2010-2018 Google LLC
2
// Licensed under the Apache License, Version 2.0 (the "License");
3
// you may not use this file except in compliance with the License.
4
// You may obtain a copy of the License at
5
//
6
// http://www.apache.org/licenses/LICENSE-2.0
7
//
8
// Unless required by applicable law or agreed to in writing, software
9
// distributed under the License is distributed on an "AS IS" BASIS,
10
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
// See the License for the specific language governing permissions and
12
// limitations under the License.
13
14
using
System;
15
using
Google
.
OrTools
.
Sat
;
16
17
public
class
OptionalIntervalSampleSat
18
{
19
static
void
Main()
20
{
21
CpModel
model =
new
CpModel
();
22
int
horizon = 100;
23
IntVar
start_var = model.
NewIntVar
(0, horizon,
"start"
);
24
// C# code supports IntVar or integer constants in intervals.
25
int
duration = 10;
26
IntVar
end_var = model.
NewIntVar
(0, horizon,
"end"
);
27
IntVar
presence_var = model.
NewBoolVar
(
"presence"
);
28
IntervalVar
interval = model.NewOptionalIntervalVar(
29
start_var, duration, end_var, presence_var,
"interval"
);
30
}
31
}
Google.OrTools.Sat.CpModel
Wrapper class around the cp_model proto.
Definition:
CpModel.cs:23
OptionalIntervalSampleSat
Definition:
OptionalIntervalSampleSat.cs:17
Google.OrTools.Sat.IntVar
Definition:
IntegerExpressions.cs:497
Google
Definition:
KInt64Vector.cs:11
Google.OrTools.Sat.CpModel.NewIntVar
IntVar NewIntVar(long lb, long ub, string name)
Definition:
CpModel.cs:45
Google.OrTools
Definition:
KInt64Vector.cs:11
Google.OrTools.Sat.IntervalVar
Definition:
IntervalVariables.cs:19
Google.OrTools.Sat.CpModel.NewBoolVar
IntVar NewBoolVar(string name)
Definition:
CpModel.cs:67
Google.OrTools.Sat
Definition:
CpModel.pb.cs:12