help-glpk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-glpk] [Fwd: GLPK printing with if and iterative loop (continue


From: Oscar Gustafsson
Subject: Re: [Help-glpk] [Fwd: GLPK printing with if and iterative loop (continued)]
Date: Mon, 21 Feb 2011 07:04:14 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.2.13) Gecko/20101207 Lightning/1.0b2 Thunderbird/3.1.7

OK, I think this should work. :-)

printf{i in Trainer: sum{j4 in Course4} x4[i,j4] + sum{j5 in Course5} x5[i,j5] + sum{j6 in Course6} x6[i,j6] = 0} "%s ", i;

Interpret it as:

printf{for ...: if ...}

Regards

Oscar

>
On 02/20/2011 05:11 PM, Andrew Makhorin wrote:
-------- Forwarded Message --------
From: Alan Zinober<address@hidden>
To: address@hidden
Subject: GLPK printing with if and iterative loop (continued)
Date: Sun, 20 Feb 2011 15:18:09 +0000



Oscar, many thanks for your assistance.

However, I think I actually need a sum ...

With your recommendation for my question below I used:

printf {i in Trainer, j4 in Course4, j5 in Course5, j6 in Course6:
x4[i,j4] + x5[i,j5] + x6[i,j6] = 0} "%s ",i;

to obtain:

A A A A B B B B C C D D D D E E G G H H H H I I I I J J J J K K

My Trainer set is    A B C D E F G H I J K

In fact I wish to print

A  B  D  G  H  I  J

where i is printed only if there are 4 repeats above (when using your
recommendation).

i.e. for i iterating and for summing over the cases j4, j5, j6 jointly.

for Trainer i,   if sum (iterating over j4, j5, j6)  = 0, then print i.

eg  printf (if  x4[i,C41] + x4[i,C42] + x5[i,C51], + x5{i,C52] +
x5[i,C53] + x6[i,C61] = 0 then "%s  "), i);


Why should this command below

for {i in Trainer}
  printf (if sum{j4 in Course4} x4[i,j4]
              + sum{j5 in Course5} x5[i,j5]
                + sum{j6 in Course6} x6[i,j6] = 0 then "%s "),i;

print     A B 0D 000H I J 0

I believe that the printout should be      A B D H I J

I do not see why 0 is printed if the sum is not zero (for C, E, F, G,
K).

My Trainer set is    A B C D E F G H I J K.

    Alan


     Alan



On 19/02/2011 21:40, Oscar Gustafsson wrote:
Alan,

the following should work:

printf{i in Trainer, j4 in Course4, j5 in Course5, j6 in Course6:
x4[i,j4] + x5[i,j5] + x6[i,j6] = 0} ...

Regards

Oscar

Andrew Makhorin skrev 2011-02-19 22:26:
-------- Forwarded Message --------
From: Alan Zinober<address@hidden>
To: address@hidden
Subject: GLPK printing with if and iterative loop
Date: Sat, 19 Feb 2011 17:27:04 +0000

I need to print the Trainer names only when

        x4[i,j4] + x5[i,j5] + x6[i,j6] = 0

I declare:

set Trainer;           different trainer names

set Course4;         different course names
set Course5;         different course names
set Course6;         different course names

var x4{Trainer, Course4}>=0, binary;
var x5{Trainer, Course5}>=0, binary;
var x6{Trainer, Course6}>=0, binary;


Essentially I need a print statement with the logic of the code
below
but do not know how to set up
j4 iterated on Course 4, j5 iterated on Course5, j6 iterated on
Course6 :

for {i in Trainer}

        printf (if x4[i,j4 iterated on Course4] + x5[i,j5 iterated
on
Course 5]
                             + x6[i,j6 iterated on Course6] =0 then
"%s
"),Trainer[i];

        Alan





_______________________________________________
Help-glpk mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/help-glpk


_______________________________________________
Help-glpk mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/help-glpk


_______________________________________________
Help-glpk mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/help-glpk




reply via email to

[Prev in Thread] Current Thread [Next in Thread]