remove OptionalIntVar from the sat Python API
This commit is contained in:
@@ -60,19 +60,15 @@ def main():
|
||||
performed.append(performed_on_m0)
|
||||
|
||||
# Create an optional copy of interval to be executed on machine 0.
|
||||
start0 = model.NewOptionalIntVar(0, horizon, performed_on_m0,
|
||||
'start_%i_on_m0' % i)
|
||||
end0 = model.NewOptionalIntVar(0, horizon, performed_on_m0,
|
||||
'end_%i_on_m0' % i)
|
||||
start0 = model.NewIntVar(0, horizon, 'start_%i_on_m0' % i)
|
||||
end0 = model.NewIntVar(0, horizon, 'end_%i_on_m0' % i)
|
||||
interval0 = model.NewOptionalIntervalVar(
|
||||
start0, duration, end0, performed_on_m0, 'interval_%i_on_m0' % i)
|
||||
intervals0.append(interval0)
|
||||
|
||||
# Create an optional copy of interval to be executed on machine 1.
|
||||
start1 = model.NewOptionalIntVar(0, horizon, performed_on_m0.Not(),
|
||||
'start_%i_on_m1' % i)
|
||||
end1 = model.NewOptionalIntVar(0, horizon, performed_on_m0.Not(),
|
||||
'end_%i_on_m1' % i)
|
||||
start1 = model.NewIntVar(0, horizon, 'start_%i_on_m1' % i)
|
||||
end1 = model.NewIntVar(0, horizon, 'end_%i_on_m1' % i)
|
||||
interval1 = model.NewOptionalIntervalVar(start1, duration, end1,
|
||||
performed_on_m0.Not(),
|
||||
'interval_%i_on_m1' % i)
|
||||
|
||||
@@ -136,10 +136,8 @@ def SolveRcpsp(problem, proto_file):
|
||||
for r in all_recipes:
|
||||
recipe = task.recipes[r]
|
||||
is_present = model.NewBoolVar('is_present_%i_r%i' % (t, r))
|
||||
start = model.NewOptionalIntVar(0, horizon, is_present,
|
||||
'start_%i_r%i' % (t, r))
|
||||
end = model.NewOptionalIntVar(0, horizon, is_present,
|
||||
'end_%i_r%i' % (t, r))
|
||||
start = model.NewIntVar(0, horizon, 'start_%i_r%i' % (t, r))
|
||||
end = model.NewIntVar(0, horizon, 'end_%i_r%i' % (t, r))
|
||||
interval = model.NewOptionalIntervalVar(
|
||||
start, recipe.duration, end, is_present, 'interval_%i_r%i' % (t, r))
|
||||
|
||||
|
||||
@@ -45,12 +45,10 @@ def SolveRosteringWithTravel():
|
||||
job_performed.append(performed_on_m)
|
||||
|
||||
# Create an optional copy of interval to be executed on a machine
|
||||
location0 = model.NewOptionalIntVar(
|
||||
jobs[i][3], jobs[i][3], performed_on_m, 'location_%i_on_m%i' % (i, m))
|
||||
start0 = model.NewOptionalIntVar(jobs[i][1], horizon, performed_on_m,
|
||||
'start_%i_on_m%i' % (i, m))
|
||||
end0 = model.NewOptionalIntVar(0, jobs[i][2], performed_on_m,
|
||||
'end_%i_on_m%i' % (i, m))
|
||||
location0 = model.NewIntVar(
|
||||
jobs[i][3], jobs[i][3], 'location_%i_on_m%i' % (i, m))
|
||||
start0 = model.NewIntVar(jobs[i][1], horizon, 'start_%i_on_m%i' % (i, m))
|
||||
end0 = model.NewIntVar(0, jobs[i][2], 'end_%i_on_m%i' % (i, m))
|
||||
interval0 = model.NewOptionalIntervalVar(
|
||||
start0, duration, end0, performed_on_m, 'interval_%i_on_m%i' % (i, m))
|
||||
optional_intervals[m].append(interval0)
|
||||
@@ -59,10 +57,8 @@ def SolveRosteringWithTravel():
|
||||
model.Add(start0 == start).OnlyEnforceIf(performed_on_m)
|
||||
# Adding travel constraint
|
||||
travel = model.NewBoolVar('is_travel_%i_on_m%i' % (i, m))
|
||||
startT = model.NewOptionalIntVar(0, horizon, travel,
|
||||
'start_%i_on_m%i' % (i, m))
|
||||
endT = model.NewOptionalIntVar(0, horizon, travel,
|
||||
'end_%i_on_m%i' % (i, m))
|
||||
startT = model.NewIntVar(0, horizon, 'start_%i_on_m%i' % (i, m))
|
||||
endT = model.NewIntVar(0, horizon, 'end_%i_on_m%i' % (i, m))
|
||||
intervalT = model.NewOptionalIntervalVar(
|
||||
startT, travel_time, endT, travel,
|
||||
'travel_interval_%i_on_m%i' % (i, m))
|
||||
|
||||
Reference in New Issue
Block a user