implies
implies |
Purpose
Synopsis
function implies(c1:log_or_linctr,c2:log_or_linctr):logctr
Arguments
c1
|
A linear constraint (
linctr) or logical expression (
logctr)
|
c2
|
A linear constraint (
linctr) or logical expression (
logctr)
|
Return value
A new
logctr representing the expression.
Example
The following example shows several ways of stating the logical relation 'if
x1≥10 then
x1+x2≥12 and not
x2≤5'. The implied constraint
L is itself a logical constraint, built up by using the operators
and and
not in combination with linear constraints.
declarations R=1..2 C: array(range) of linctr ! Linear constraints L: logctr ! Logical constraint x: array(R) of mpvar ! Decision variables end-declarations C(1):= x(1)>=10 ! Define (temporary) linear ctrs C(2):= x(2)<=5 C(3):= x(1)+x(2)>=12 implies(C(1), C(3) and not C(2)) ! State the implication forall(j in 1..3) C(j):=0 ! Delete the auxiliary ctrs ! The same implication constraint can be stated by: implies(x(1)>=10, x(1)+x(2)>=12 and not x(2)<=5) ! Or also by: L:= x(1)+x(2)>=12 and not x(2)<=5 ! Define (temporary) logical ctr implies(x(1)>=10, L) ! State the implication L:= 0 ! Delete the auxiliary ctr
Further information
1. This function creates a
logctr constraint representing an
implies condition:
if c1 is valid then c2 is enforced.
2. The helper package 'advmod' must be loaded if this function is used:
uses 'advmod'
Related topics
Module