[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
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;
> leads to error
> 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;