Hi, GAMS world.
I have some difficulties in pinpointing the last parameter of a set of parameters.
For now I use the following method to let N to be equal to the last parameter of M(k):
Set
k / k1*k10 / ;
Parameter
M(k) ;
Scalar
N ;
N = sum(k$(ord(k)=card(k)), M(k)) ;
Since this method looks very clumsy, I am wondering if there is a better way to finish the job.
Thanks.
Dylan
–
To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+unsubscribe@googlegroups.com.
To post to this group, send email to gamsworld@googlegroups.com.
Visit this group at https://groups.google.com/group/gamsworld.
For more options, visit https://groups.google.com/d/optout.
Dylan,
If you use a singleton set, you can isolate the “ord(k)=card(k)” to the definition of the singleton set, and potentially use the singleton many times. An example is below.
-Steve
Set k / k1*k10 /;
singleton set kLast(k);
kLast(k) = [ord(k)=card(k)];
Parameter M(k);
M(k) = ord(k);
Scalars N, S;
N = sum(k$(ord(k)=card(k)), M(k));
- since kLast is declared to be a singleton, the statement below is OK
S = M(kLast);
On Tue, Feb 16, 2016 at 8:57 PM, Dylan Lan wrote:
Hi, GAMS world.
I have some difficulties in pinpointing the last parameter of a set of parameters.
For now I use the following method to let N to be equal to the last parameter of M(k):
Set
k / k1*k10 / ;
Parameter
M(k) ;
Scalar
N ;
N = sum(k$(ord(k)=card(k)), M(k)) ;
Since this method looks very clumsy, I am wondering if there is a better way to finish the job.
Thanks.
Dylan
Steven Dirkse, Ph.D.
GAMS Development Corp., Washington DC
Voice: (202)342-0180 Fax: (202)342-0181
sdirkse@gams.com
http://www.gams.com