bug-glpk
[Top][All Lists]

## Re: [Bug-glpk] 0-ary slice not allowed

 From: Andrew Makhorin Subject: Re: [Bug-glpk] 0-ary slice not allowed Date: Wed, 26 Nov 2008 23:38:43 +0300

```> constraint

> s.t. cost {i in N, j in N} :
>   t[i] - t[j] - sum{(i,j) in E} c[i,j] * x[i,j] >= 0;

> 0-ary slice not allowed

> in glpmpl01.c, function expression_list.

> My expectation was that the sum is 0 if (i,j) is not an element of E and
> c[i,j] x[i,j] otherwise. This would be in conformance with the usual use
> of domain parameters.

No, I do not think so. In the strong mathematical sense a composite
index must have at least one free dummy variable; otherwise corresponding
aggregate operator like sum has no meaning. Besides, AMPL also does not
allow that.

> I must admit that the following is an alternative notation but less
> elegant:

> s.t. cost {i in N, j in N } :
>   t[i] - t[j] -  ( if ((i,j) in E) then c[i,j] * x[i,j] else 0 ) >= 0;

Well, the following is more elegant, or at least more readable than
using the sum operator :)

s.t. cost {i in N, j in N } :
t[i] - t[j] -  (if (i,j) in E then c[i,j] * x[i,j]) >= 0;

```