Solved

# If statement in constraint

• 2 replies
• 411 views

• Newcomer
• 6 replies

Hi dear community,

I have a constraint as sum((k,z1), y(b,k,z1,l,z2)) <= 1 and I want to add if statement to it:

if k = l, then z1 cannot be equal to z2;

if k<>l, then there’s no further constraint for z1 and z2.

I tryed to add it like this:

if k<>l then sum((k,z1), y(b,k,z1,l,z2)) <= 1
endif;
if k=l then sum((k,z1)|z1<>z2, y(b,k,z1,l,z2)) <= 1
endif;

The AIMMS through out the message “The scope of index "k" has not been specified.” like shown in the screenshot(I’ve highlighted where the error is-the first k appears in if statement).

So my question is, is there a way to fix this constraint in the way that I want it to be? (maybe using element parameter)?

icon

Best answer by Marcel Hunting 2 December 2019, 13:42

View original

### 2 replies

Userlevel 5 +4

Do you get what you want if you use the following definition?

sum((k,z1) | k<>l, y(b,k,z1,l,z2))

+

sum(z1 | z1<>z2, y(b,l,z1,l,z2))

<=

1

Hi @lin86

Were you able to find a solution to your problem? Or was Marcel’s answer sufficient in helping you with your problem?

Best Regards