allDifferent:AllDifferentallMinDistance:MinimumDistanceinverse:Inverselex:LexicographicallyLessThan,LexicographicallyGreaterThanpack:BinPacking
Those for scheduling, not yet implemented:
endAtEnd:endAtStart:endBeforeStart:endBeforeStart:startAtEnd:startAtStart:startBeforeEnd:startBeforeStart:alternative:span:synchronize:presenceOf:first:last:before:prev:noOverlap:<=for cumulative resources:alwaysIn:alwaysConstant:alwaysEqual:alwaysNoState:
Constraints removed/renamed between OPL 3 and OPL 6:
sequence: what the heck!?circuit:CP.Walk(Eulerian circuit)alldifferent:MOI.AllDifferentatleast:CP.CountandMOI.GreaterThanatleastatmost:CP.Count,MOI.GreaterThan, andMOI.LessThanatmost:CP.CountandMOI.LessThancardinality:CP.GlobalCardinalitydistribute:CP.GlobalCardinalityforall: use a loop over several constraintsif-then-else:IfThenElse,Implicationif noelseclausenot:NegationisInDomain: a function to check if a variable is assigned to a value in its domain, not a constraintpredicate:VectorDomain
Functionalities from OPL 3 related to scheduling (not still implemented):
- transition times
Activity: an interval- AlternativeResources: alternative intervals, only one of them is used for the activity to perform
break: variable interval intensity, astepFunctionapplied onto an interval with theintensitykeyword- cumulative resource: production and consumption of resourcesS
- disjunctive resource: no overlap between intervals
precedes: an interval ends before another startsStateResource: state functions