Display printf, one line missing

10 pagtingin
Lumaktaw sa unang mensaheng hindi pa nababasa

Sam

hindi pa nababasa,
May 23, 2016, 6:53:12 AM5/23/16
para kayAMPL Modeling Language
Hi,

I'm trying to generate a display and there is one line missing:

for {j in reservoir} {
printf {i in liquide: y[i,j]} 
"Réservoir %3d, capacité %3d, capacité utilisée %3d, capacité résiduelle %3d\n", j,cap[j],y[i,j]+qantIni[j],capacite[i];}

I get this result but #4 is missing. It should also display

"Réservoir   4, capacité 600, capacité utilisée 0, capacité résiduelle  650"


Réservoir   1, capacité 500, capacité utilisée 450, capacité résiduelle  50
Réservoir   2, capacité 400, capacité utilisée 400, capacité résiduelle   0
Réservoir   3, capacité 400, capacité utilisée 400, capacité résiduelle   0
Réservoir   5, capacité 600, capacité utilisée 600, capacité résiduelle   0
Réservoir   6, capacité 900, capacité utilisée 900, capacité résiduelle   0
Réservoir   7, capacité 800, capacité utilisée 800, capacité résiduelle 100
Réservoir   8, capacité 800, capacité utilisée 700, capacité résiduelle 100
Réservoir   9, capacité 800, capacité utilisée 700, capacité résiduelle 100

Even if y[i,j]=0 and qantIni[j] = 0, i don't understand why it's not being displayed. 

Thanks if you can help.

Victor Zverovich

hindi pa nababasa,
May 23, 2016, 11:52:36 AM5/23/16
para kayam...@googlegroups.com
The printf statement

  printf {i in liquide: y[i,j]} ...

is executed if y[i,j] != 0 because you have "y[i,j]" in the "such that" clause which may explain why the line is not shown.

HTH,
Victor

--
You received this message because you are subscribed to the Google Groups "AMPL Modeling Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ampl+uns...@googlegroups.com.
To post to this group, send email to am...@googlegroups.com.
Visit this group at https://groups.google.com/group/ampl.
For more options, visit https://groups.google.com/d/optout.

Sam

hindi pa nababasa,
May 23, 2016, 12:23:18 PM5/23/16
para kayAMPL Modeling Language


I agree, but if I don't put that "y[i,j], get a line for every y[i,j]:

I changed the data so it's not j4 missing but j6.

j1, capacité 550, capacité utilisée   0, capacité résiduelle 550
j1, capacité 550, capacité utilisée   0, capacité résiduelle 550
j1, capacité 550, capacité utilisée   0, capacité résiduelle 550
j1, capacité 550, capacité utilisée 450, capacité résiduelle 100
j1, capacité 550, capacité utilisée   0, capacité résiduelle 550
j2, capacité 400, capacité utilisée 400, capacité résiduelle   0
j2, capacité 400, capacité utilisée   0, capacité résiduelle 400
j2, capacité 400, capacité utilisée   0, capacité résiduelle 400
j2, capacité 400, capacité utilisée   0, capacité résiduelle 400
j2, capacité 400, capacité utilisée   0, capacité résiduelle 400
j3, capacité 400, capacité utilisée 400, capacité résiduelle   0
j3, capacité 400, capacité utilisée 100, capacité résiduelle 300
j3, capacité 400, capacité utilisée 100, capacité résiduelle 300
j3, capacité 400, capacité utilisée 100, capacité résiduelle 300
j3, capacité 400, capacité utilisée 100, capacité résiduelle 300
j4, capacité 600, capacité utilisée   0, capacité résiduelle 600 
 ...
j5, capacité 600, capacité utilisée   0, capacité résiduelle 600
j6, capacité 900, capacité utilisée   0, capacité résiduelle 900
j6, capacité 900, capacité utilisée   0, capacité résiduelle 900
j6, capacité 900, capacité utilisée   0, capacité résiduelle 900
j6, capacité 900, capacité utilisée   0, capacité résiduelle 900
j6, capacité 900, capacité utilisée   0, capacité résiduelle 900
j7, capacité 800, capacité utilisée   0, capacité résiduelle 800 

so by putting y[i,j], i get one line / j but none for j6 as all lines are 0. I need a single line for every j (j6 included).

Victor Zverovich

hindi pa nababasa,
May 24, 2016, 9:54:38 AM5/24/16
para kayam...@googlegroups.com
If you add y[i,j] in the such that clause, j6 won't be printed because y[i,6] are all zero, so you need to change the code somehow. For example, you can replace printf with an loop and print at least one element per j even if corresponding y is zero.

HTH,
Victor
Tumugon sa lahat
Sumagot sa may-akda
Ipasa
0 bagong mensahe