Exemplo Water Distribution Network MINLP GAMS.pdf

Msc. Alexandre Hitoshi Ito Este exemplo ilustra a utilização de uma programação não linear mista inteira. Este problema

Views 86 Downloads 2 File size 790KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Msc. Alexandre Hitoshi Ito

Este exemplo ilustra a utilização de uma programação não linear mista inteira. Este problema é uma variação da biblioteca de modelos do GAMS para o sistema de distribuição de água. O modelo representa uma aplicação em uma cidade da Indonésia.

Brooke, A, Drud, A S, and Meeraus, A, Modeling Systems and Nonlinear Programming in a Research Environment. In Ragavan, R, and Rohde, S M, Eds, Computers in Engineering, Vol. III. ACME, 1985. Drud, A S, and Rosenborg, A, Dimensioning Water Distribution Networks. Masters thesis, Institute of Mathematical Statistics and Operations Research, Technical University of Denmark, 1973. (in Danish)

Msc. Alexandre Hitoshi Ito

O Código inicia com um título e a frente dele um “$” para indicar função de Título. $Title Design of a Water Distribution Network

(WATERX,SEQ=125)

Posteriormente insere uma descrição sobre o assunto abordado $Ontext This example ....

…. (in Danish) $Offtext

Msc. Alexandre Hitoshi Ito

Com o comando SET ou SETS é declarado o nome do(s) conjunto(s) e os dados que estão dentro do conjunto Set

n

nodes /

a(n,n)

nw

north west reservoir

e

east reservoir

cc

central city

w

west

sw

south west

s

south

se

south east

n

north

/

arcs (arbitrarily directed) /nw.(w,cc,n), e.(n,cc,s,se), cc.(w,sw,s,n), s.se, s.sw, sw.w /

rn(n)

reservoirs /

nw, e

/

dn(n)

demand nodes; dn(n) = yes; dn(rn) = no; display dn;

Msc. Alexandre Hitoshi Ito

Set Set

n n

Set

n

Set

n

a(n,n) a(n,n)

a(n,n) rn(n) rn(n) dn(n) a(n,n) dn(n) rn(n)

dn(n)

n

nodes / nodes /

nw north west reservoir nw north west reservoir e east reservoir e east west reservoir nodes / nw north reservoir cc central city cc central city ew east west reservoir w west cc central city sw south west nodes / nw north west reservoir sw south west ws west south e east s southreservoir sw south se south west east cc central city se south east sn south north / w west n north east / se south sw south west n northdirected) / arcs (arbitrarily s south arcs (arbitrarily directed) /nw.(w,cc,n), e.(n,cc,s,se), cc.(w,sw,s,n), se south east /nw.(w,cc,n), e.(n,cc,s,se), cc.(w,sw,s,n), arcs (arbitrarily directed) s.se, s.sw, sw.w / n north / s.se, s.sw, sw.w / /nw.(w,cc,n), cc.(w,sw,s,n), reservoirs / nw,e.(n,cc,s,se), e / reservoirs / nw, e sw.w / s.se, s.sw, demand nodes; dn(n) = yes;/ dn(rn) = no; display dn; arcs (arbitrarily directed) demand nodes; dn(n) reservoirs / nw, e =/ yes; dn(rn) = no; display dn; /nw.(w,cc,n), e.(n,cc,s,se), cc.(w,sw,s,n), demand nodes; dn(n) = yes; dn(rn) = no; display dn; s.se, s.sw, sw.w /

rn(n)

reservoirs /

nw, e

dn(n)

demand nodes; dn(n) = yes; dn(rn) = no; display dn;

nw

cc

w

e

se

sw

s

/

Para cada n (nó) será verificado em qual conjunto pertence.

Se pertencer ao conjunto n (nodes), também pertencerá ao conjunto dn(n), Se pertencer ao conjunto rn(n) não pertence ao conjunto dn(n).

Msc. Alexandre Hitoshi Ito

Declara que a variável np é do mesmo tamanho que n.

alias

(n,np);

Msc. Alexandre Hitoshi Ito

Posteriormente declara valores fixos. Para cada nó é atribuído informações de demandas, elevação, posição (X e Y), vazão de entrada, custo da água e custo de implantação Table

node(n,*)

node data

demand

x

y

supply

wcost

pcost

m over base

m

m

m**3/sec

rp/m**3

rp/m**4

nw

6.50

1200

3600

2.500

0.20

1.02

e

3.25

4000

2200

6.000

0.17

1.02

*

m**3/sec

height

cc

1.212

3.02

2000

2300

w

0.452

5.16

750

2400

sw

0.245

4.20

900

1200

s

0.652

1.50

2000

1000

se

0.252

0.00

4000

900

n

0.456

6.30

3700

3500

Universidade Estadual de Maringá Departamento de Engenharia Civil Na sequência é calculado a distância entre os nós Parameter dist(n,n)

distance between nodes (m);

dist(a(n,np)) = sqrt( sqr( node(n,"x")-node(np,"x") ) + sqr( node(n,"y")-node(np,"y") ) ); display dist;

𝑑𝑖𝑠𝑡 𝑛, 𝑛 = 𝑑𝑖𝑠𝑡 𝑎 𝑛, 𝑛𝑝

=

𝑛𝑜𝑑𝑒 𝑛, "x" − 𝑛𝑜𝑑𝑒(𝑛𝑝, "𝑥") ² + 𝑛𝑜𝑑𝑒 𝑛, "𝑦" − 𝑛𝑜𝑑𝑒(𝑛𝑝, "𝑦") ²

Considerando os nós, sendo o arco 𝑎 𝑛, 𝑛𝑝 (entrada, saída do nó); Para cada nó (n de entrada) e (nd saída), aplicar o valor de X e Y na equação para calcular a distância entre os pontos.

Msc. Alexandre Hitoshi Ito

A função Scalar, declara os valores constantes que são utilizadas para o modelo, assim é possível verificar o que está sendo utilizado Scalar

dpow

power on diameter in pressure loss equation

/ 5.33

/

qpow

power on flow in pressure loss equation

/ 2.00

/

dmin

minimum diameter of pipe

/ 0.15

/

dmax

maximum diameter of pipe

/ 2.00

/

hloss

constant in the pressure loss equation

/ 1.03e-3/

dprc

scale factor in the investment cost equation

/ 6.90e-2/

cpow

power on diameter in the cost equation

/ 1.29

/

r

interest rate

/ 0.10

/

maxq

bound on qp and qn

/ 2.00

/

davg

average diameter (geometric mean)

rr

ratio of demand to supply;

davg = sqrt(dmin*dmax); rr

= sum(dn,node(dn,"demand")) / sum(rn,node(rn,"supply"));

Msc. Alexandre Hitoshi Ito

A função Scalar, declara os valores constantes que são utilizadas para o modelo, assim é possível verificar o que está sendo utilizado Scalar

dpow

power on diameter in pressure loss equation

/ 5.33

/

qpow

power on flow in pressure loss equation

/ 2.00

/

constant in the pressure loss equation

/ 1.03e-3/

hloss

(Porto, 2006) pg 53 Em geral

𝑄𝑛 𝐽=𝐾 𝑚 𝐷

1,75 < n < 2 e 4,75 < m < 5

Aqui o exemplo considera a “potência”, ou seja, o coeficiente ao expoente. Sendo dpow = Dpow = m qpow = Qpow = n

Para a equação da DW K= hloss :

𝐾=

8𝑓 𝜋2 𝑔

Msc. Alexandre Hitoshi Ito

A função Scalar, declara os valores constantes que são utilizadas para o modelo, assim é possível verificar o que está sendo utilizado Scalar

dmin

minimum diameter of pipe

/ 0.15

/

dmax

maximum diameter of pipe

/ 2.00

/

dprc

scale factor in the investment cost equation

/ 6.90e-2/

cpow

power on diameter in the cost equation

/ 1.29

dmin - Valor do diâmetro mínimo dmax -

máximo

dprc - Fator de escala para a equação de custo de investimento cpow - Expoente da equação do custo da tubulação em função do diâmetro

/

Msc. Alexandre Hitoshi Ito

A função Scalar, declara os valores constantes que são utilizadas para o modelo, assim é possível verificar o que está sendo utilizado Scalar

r

interest rate

/ 0.10

/

maxq

bound on qp and qn

/ 2.00

/

davg

average diameter (geometric mean)

davg = sqrt(dmin*dmax);

r - Taxa de retorno / juros maxq – condição de contorno para a vazão (considera que a vazão máxima será igual a 2m³/s) davg – diâmetro médio em sequencia é declarado a equação do diâmetro médio;

Msc. Alexandre Hitoshi Ito

A função Scalar, declara os valores constantes que são utilizadas para o modelo, assim é possível verificar o que está sendo utilizado Scalar

rr rr

ratio of demand to supply; = sum(dn,node(dn,"demand")) / sum(rn,node(rn,"supply"));

rr – relação entre demanda e oferta Em seguida é declarado a equação da razão entre a vazão do nó de saída pelo nó de entrada (esta entrada é a entrada de água ne rede, no reservatório)

Ou seja, qual a proporção de água que sai em cada nó, em relação a vazão que sai do reservatório 𝑄𝑑𝑛 𝑟𝑟 = 𝑄𝑟𝑛

Msc. Alexandre Hitoshi Ito

Declarando as Variáveis Variables

qp(n,n)

flow on each arc - positive

(m**3 per sec)

qn(n,n)

flow on each arc - negative

(m**3 per sec)

d(n,n)

pipe diameter for each arc

(m)

h(n)

pressure at each node

(m)

s(n)

supply at reservoir nodes

(m**3 per sec)

pcost

annual recurrent pump costs

(mill rp)

dcost

investment costs for pipes

(mill rp)

wcost

annual recurrent water costs

(mill rp)

cost

total discounted costs

(mill rp)

pen

objective penalty

Positive variables qp, qn(n,np)

Binary variable qb(n,np);

Msc. Alexandre Hitoshi Ito

Declarando as Equações Equations

cont(n)

flow conservation equation at each node

loss(n,n)

pressure loss on each arc

peq

pump cost equation

deq

investment cost equation

weq

water cost equation

obj

objective function

dpen

penalty definition

qpup(n,np) positive bounds

qnup(n,np) negative bounds ;

Msc. Alexandre Hitoshi Ito

Atribuindo as Equações cont(n)..

sum(a(np,n), qp(a)-qn(a)) - sum(a(n,np), qp(a)-qn(a)) + s(n)$rn(n) =e= node(n,"demand");

loss(a(n,np)).. h(n) - h(np) =e= [hloss*dist(a)*(qp(a)+qn(a))**(qpow-1)*(qp(a)-qn(a))/d(a)**dpow] $(qpow 2) + [hloss*dist(a)*(qp(a)+qn(a))* qpup(a)..

qp(a) =l=

maxq*qb(a);

qnup(a)..

qn(a) =l=

maxq*(1-qb(a));

(qp(a)-qn(a))/d(a)**dpow] $(qpow = 2);

peq.. pcost =e= sum( rn , s(rn) * node(rn,"pcost") * ( h(rn)-node(rn,"height") ) ); deq.. dcost =e= dprc * sum( (n,np)$a(n,np) , dist(n,np) * d(n,np)**cpow ); weq.. wcost =e= sum( rn , s(rn) * node(rn,"wcost") ); dpen..pen =e= sum(a, qp(a) + qn(a)); obj.. cost

=e= ( pcost + wcost ) / r + dcost + pen;

Msc. Alexandre Hitoshi Ito

Atribuindo as Equações cont(n)..

sum(a(np,n), qp(a)-qn(a)) - sum(a(n,np), qp(a)-qn(a)) + s(n)$rn(n) =e= node(n,"demand"); Equação “cont(n)” 𝑛𝑝,𝑛

෍ 𝑎 𝑛𝑝,𝑛

𝑛,𝑛𝑝

𝑞𝑝 𝑎 − 𝑞𝑛 𝑎

− ෍

𝑞𝑝 𝑎 − 𝑞𝑛 𝑎

+ 𝑄𝑟𝑛 (𝑛) = 𝑄𝑛

𝑎 𝑛,𝑛𝑝

n

np

Msc. Alexandre Hitoshi Ito

Atribuindo as Equações Para cada valor de nó sendo o de referencia (n) calcular a vazão que chega e a vazão que saí, tendo a diferença, como resultado a vazão que saí do nó como consumo 𝑛𝑝,𝑛



𝑛,𝑛𝑝

𝑞𝑝 𝑎 − 𝑞𝑛 𝑎

− ෍

𝑎 𝑛𝑝,𝑛

n

𝑞𝑝 𝑎 − 𝑞𝑛 𝑎

𝑎 𝑛,𝑛𝑝

np

np

n

Msc. Alexandre Hitoshi Ito

Atribuindo as Equações Assim toda a somatória de cada um dos nós +

A quantidade que sai do reservatório Deve ser igual a vazão estabelecida de demanda de cada nó. Desta forma as vazões de entrada e saída de cada nó irá variar. 𝑛𝑝,𝑛

෍ 𝑎 𝑛𝑝,𝑛

𝑛,𝑛𝑝

𝑞𝑝 𝑎 − 𝑞𝑛 𝑎

− ෍ 𝑎 𝑛,𝑛𝑝

𝑞𝑝 𝑎 − 𝑞𝑛 𝑎

+ 𝑄𝑟𝑛 (𝑛) = 𝑄𝑛

Msc. Alexandre Hitoshi Ito

Atribuindo as Equações loss(a(n,np))..

h(n) - h(np) =e= [hloss*dist(a)*(qp(a)+qn(a))**(qpow-1)*(qp(a)qn(a))/d(a)**dpow] $(qpow 2) + [hloss*dist(a)*(qp(a)+qn(a))**(qpow-1)*(qp(a)qn(a))/d(a)**dpow] $(qpow = 2); Equação “loss(a(n,np))” 𝑘 ∙ 𝐿 𝑎 ∙ 𝑞+ + 𝑞− ℎ 𝑛 − ℎ 𝑛𝑝 = 𝐷 𝑎 𝑚 𝑘 ∙ 𝐿 𝑎 ∙ 𝑞+ + 𝑞− ℎ 𝑛 − ℎ 𝑛𝑝 = 𝐷 𝑎 𝑚

𝑛

,

𝑠𝑒 𝑛 ≠ 2

𝑛

,

𝑠𝑒 𝑛 = 2

Msc. Alexandre Hitoshi Ito

Atribuindo as Equações qpup(a)..

qp(a) =l=

maxq*qb(a);

qnup(a)..

qn(a) =l=

maxq*(1-qb(a));

Esta condição aplica que, a vazão Positiva (qpup) ou Negativa (qnup) (entra ou sai do nó) será Menor ou igual (=l=) a expressão. A condição de contorno máxima (maxq) neste caso igual a 2. Multiplicado por um binário (1 ou 0) para identificar se tem o fluxo. OBS:. O escoamento apresenta somente um único sentido, entrando ou saindo do nó.

Msc. Alexandre Hitoshi Ito

Atribuindo as Equações peq..

pcost =e= sum(rn, s(rn)*node(rn,"pcost")* (h(rn)-node(rn,"height") )

);

Calcula o custo do funcionamento da bomba. Para todos os reservatórios, somar o produto do custo de operação da bomba pela vazão de saída do reservatório e a elevação. 𝑐𝑢𝑠𝑡𝑜 = ෍ 𝑠 𝑟𝑛 ∙ 𝑝𝑐𝑜𝑠𝑡 𝑟𝑛 ∙ (ℎ 𝑟𝑛 − 𝐻 𝑟𝑛 ) Custo Total

𝑟𝑛

Diâmetro

Msc. Alexandre Hitoshi Ito

Atribuindo as Equações peq..

pcost =e= sum(rn, s(rn)*node(rn,"pcost")* (h(rn)-node(rn,"height") )

Custo de uma adutora 𝐶𝑢𝑠𝑡𝑜1 = 𝐶𝑖 ∙ 𝐿 ∙ 𝑡 L – Comprimento da adutora t – Taxa de encargos financeiros

Custo Total

Ci – Equação de custo unitário em função de D

Diâmetro

);

Msc. Alexandre Hitoshi Ito

Atribuindo as Equações peq..

pcost =e= sum(rn, s(rn)*node(rn,"pcost")* (h(rn)-node(rn,"height") )

Gasto anal global com energia elétrica 𝐻𝑔 + 𝐽 ∙ 𝐿 𝐶𝑢𝑠𝑡𝑜2 = 9,8 ∙ 𝑄 ∙ ∙𝑁∙𝑇∙𝐴 ɳ𝐵 ∙ ɳ𝑚 T – tempo de funcionamento [h] N - dias de funcionamento no ano [dias] A – Custo do qulowatt/hora [R$]

);

Msc. Alexandre Hitoshi Ito

Atribuindo as Equações weq..

wcost =e= sum( rn , s(rn) * node(rn,"wcost") ); Calcula o custo da água Somando para todos os reservatórios, o produto da vazão que sai de cada um deles pelo custo unitário da água 𝑐𝑢𝑠𝑡𝑜 = ෍ 𝑠 𝑟𝑛 ∙ 𝑤𝑐𝑜𝑠𝑡(𝑛𝑟)

Custo Total

𝑟𝑛

Diâmetro

Msc. Alexandre Hitoshi Ito

Atribuindo as Equações deq..

dcost =e= dprc * sum((n,np)$a(n,np), dist(n,np)*d(n,np)**cpow ); Fator de custo em função do tamanho do tubo (dprc) multiplicado pela soma do produto de cada arco em função do comprimento, pelo diâmetro elevado por um fator

𝑐𝑢𝑠𝑡𝑜 = 𝑑𝑝𝑟𝑐 ∙ ෍ 𝑠 𝑟𝑛 ∙ 𝑝𝑐𝑜𝑠𝑡 𝑟𝑛 ∙ 𝑑 𝑛, 𝑛𝑝

Custo Total

𝑟𝑛

Diâmetro

𝑐𝑝𝑜𝑤

Msc. Alexandre Hitoshi Ito

Atribuindo as Equações dpen..

pen =e= sum(a, qp(a) + qn(a)); Calculo o custo fixo para a vazão.

Funcionando como uma condição de verificação e que aplicado a curva irá elevar mais ou menos o custo total do sistema.

𝑐𝑢𝑠𝑡𝑜 = ෍ 𝑞𝑝 𝑎 + 𝑞𝑛(𝑎) Custo Total

𝑎

pen

Diâmetro

Msc. Alexandre Hitoshi Ito

Atribuindo as Equações obj..

cost =e= ( pcost + wcost ) / r + dcost + pen; Função Objetivo Considera uma razão entre o custo de operação e o custo da água +

O custo de instalação + O Custo de operação da vazão 𝑝𝑐𝑜𝑠𝑡 + 𝑤𝑐𝑜𝑠𝑡 𝐹𝑂 = ෍ + 𝑑𝑐𝑜𝑠𝑡 + 𝑝𝑒𝑛 𝑟 Custo Total

𝑎

Diâmetro

Msc. Alexandre Hitoshi Ito

Função custo de operação (energia, água, ...) Função custo de instalação (tubo , bomba,...) Função custo Total (soma de tudo) 𝑝𝑐𝑜𝑠𝑡 + 𝑤𝑐𝑜𝑠𝑡 𝐹𝑂 = ෍ + 𝑑𝑐𝑜𝑠𝑡 + 𝑝𝑒𝑛 𝑟

Custo Total

𝑎

෍ 𝑎

𝑝𝑐𝑜𝑠𝑡 + 𝑤𝑐𝑜𝑠𝑡 𝑟

𝑑𝑐𝑜𝑠𝑡 De

Diâmetro

Msc. Alexandre Hitoshi Ito

3

8

1

2

qp

qn

4

6

7

9

5

Msc. Alexandre Hitoshi Ito

𝑛𝑝,𝑛



ℎ 𝑛 − ℎ 𝑛𝑝 =

𝑛,𝑛𝑝

𝑞𝑝 𝑎 − 𝑞𝑛 𝑎

𝑎 𝑛𝑝,𝑛

− ෍

𝑞𝑝 𝑎 − 𝑞𝑛 𝑎

+ 𝑄𝑟𝑛 (𝑛) = 𝑄𝑛

𝑎 𝑛,𝑛𝑝

1 qp(a) =l=

2

𝑘 ∙ 𝐿 𝑎 ∙ 𝑞+ + 𝑞− ℎ 𝑛 − ℎ 𝑛𝑝 = 𝐷 𝑎 𝑚

qn(a) =l=

maxq*qb(a);

3

𝑘 ∙ 𝐿 𝑎 ∙ 𝑞+ + 𝑞− 𝐷 𝑎 𝑚

qn

qp

𝑛

,

𝑠𝑒 𝑛 ≠ 2

𝑛

,

𝑠𝑒 𝑛 = 2

maxq*(1-qb(a));

4

𝑐𝑢𝑠𝑡𝑜 = ෍ 𝑠 𝑟𝑛 ∙ 𝑤𝑐𝑜𝑠𝑡(𝑛𝑟) 𝑟𝑛

𝑐𝑢𝑠𝑡𝑜 = ෍ 𝑞𝑝 𝑎 + 𝑞𝑛(𝑎)

𝑐𝑢𝑠𝑡𝑜 = 𝑑𝑝𝑟𝑐 ∙ ෍ 𝑠 𝑟𝑛 ∙ 𝑝𝑐𝑜𝑠𝑡 𝑟𝑛 ∙ 𝑑 𝑛, 𝑛𝑝

8

𝑎

𝑐𝑝𝑜𝑤

𝑟𝑛

7

6 5

𝐹𝑂 = ෍ 𝑎

𝑝𝑐𝑜𝑠𝑡 + 𝑤𝑐𝑜𝑠𝑡 + 𝑑𝑐𝑜𝑠𝑡 + 𝑝𝑒𝑛 𝑟

9

𝑐𝑢𝑠𝑡𝑜 = ෍ 𝑠 𝑟𝑛 ∙ 𝑝𝑐𝑜𝑠𝑡 𝑟𝑛 ∙ (ℎ 𝑟𝑛 − 𝐻 𝑟𝑛 ) 𝑟𝑛

Msc. Alexandre Hitoshi Ito

Restrições d.lo(n,np)$a(n,np) = dmin;

d.up(n,np)$a(n,np) = dmax; h.lo(rn)

= node(rn,"height");

h.lo(dn)=node(dn,"height")+7.5+5.0* node(dn,"demand");

s.lo(rn)

= 0;

s.up(rn)

= node(rn,"supply");

Msc. Alexandre Hitoshi Ito

Restrições d.lo(n,np)$a(n,np) = dmin;

d.up(n,np)$a(n,np) = dmax; Os diametros máximos e minimos são aplicados como restrição para a variável diâmetro. “.lo” - Lower “.up” - Uper “d.lo(n,np)” aplicando o menor valor do diâmetro, para cada arco, “a(n,np)” se o arco conectar um ponto a outro, será aplicado o valor do diâmetro mínimo; Mesma coisa para o valor máximo

Msc. Alexandre Hitoshi Ito

Restrições h.lo(rn)= node(rn,"height");

h.lo(dn)=node(dn,"height")+7.5+ 5.0*node(dn,"demand"); “h.lo(rn)” A menor carga do reservatório (rn) será a elevação que foi atribuído ao reservatório, conforme apresentado na Tabela “h.lo(dn)”A menor carga dos nós será a carga mínima do reservatório +7,5

+ 5*a demanda no nó;

Msc. Alexandre Hitoshi Ito

Restrições s.lo(rn)

= 0;

s.up(rn)

= node(rn,"supply");

A menor vazão do reservatório será zero, e a máxima vazão será a de projeto conforme estabelecido na tabela

Msc. Alexandre Hitoshi Ito

Valores Iniciais d.l(n,np)$a(n,np)

= davg;

h.l(n)

= h.lo(n) + 5.0;

s.l(rn)

= node(rn,"supply")*rr;

“.l” – Nível de atividade ou valor primal

“d.l(n,np)$a(n,np)” - O valor inicial da variável diâmetro de cada um dos arcos, sendo um arco de um nó a outro, deverá ser igual a média do diâmetro “davg” “h.l(n)” o valor inicial da carga hidráulica, será a carga mínima disponível pelo reservatório + 5 “s.l(rn)”a vazão inicial do reservatório, será o produto do fornecimento pela relação entre demanda e oferta

Msc. Alexandre Hitoshi Ito

Modelo

Model network /all/; Cria um modelo chamado “network” considerando para este modelo todas as equações declaradas -----------------------------------network.domlim

=

1000;

network.iterlim = 100000; Para o modelo aplica condições para o processo de otimização “.domlim” -

“.iterlim” - numero máximo de iterações

Msc. Alexandre Hitoshi Ito

$ontext *

DICOPT requires different nonlinear optimizers to overcome some of

*

the difficulties with non-convexities. This problem has a large

*

number of local solutions and it is important to find a 'good'

*

first nlp solution. Minos is used to find the first nlp and Conopt

*

is used to solve the subsequent problems. Minos or Conopt alone are

*

not able to find a good solution.

File dopt / dicopt.opt /; put dopt; putclose

'nlpsolver minos5 conopt'

/ 'nlpoptfile

0

1

' ;

File copt / conopt.opt /; put copt;

putclose

'set rtmaxj

network.optfile =

1.0e12'; 1;

Solve network using rminlp minimizing cost;

$offtext

Msc. Alexandre Hitoshi Ito

Explicação das notas O otimizador DICOPT requer diferentes otimizadores nãolineares, para suprir alguns problemas de situações não convexas. Este problema apresenta um grande número soluções locais, sendo importante encontrar um ótimo primário de uma solução não linear. MINOS é utilizado para encontrar o primeiro NPL e o CONOPT é utilizado para solucionar os problemas subsequentes. Sozinhos eles não são capazes de encontrar a melhor solução.

Msc. Alexandre Hitoshi Ito

Solução Solve network using minlp minimizing cost; Solucionar o modelo “network” utilizando o otimizador “minlp” para minimizar a variável custo “cost”.

Msc. Alexandre Hitoshi Ito

Resultados ----

cc,

---np\n

33 SET dn

w ,

sw,

demand nodes

s ,

se,

51 PARAMETER dist cc

w

Nw

1526.434 1281.601

e

2002.498

distance between nodes (m) sw

s

se

n 2501.999

cc

1253.994 1555.635

sw

1209.339

s

n

1118.034

2332.381

1300 1334.166

1300

2080.865

2002.498

Msc. Alexandre Hitoshi Ito cc

w

nw

1526.434 1281.601

e

2002.498

sw

1253.994 1555.635

sw

1209.339 1118.034

n

se

n 2501.999

cc

s

s

2332.381

1300 1334.166

1300

2080.865

2002.498

2080,865

nw

w

cc

1253,994

e

1300

2002,498

se

sw s

a(n,n) arcs (arbitrarily directed) /nw.(w,cc,n), e.(n,cc,s,se), s.se, cc.(w,sw,s,n), s.sw, sw.w /

Msc. Alexandre Hitoshi Ito n nw

cc

w

e

se

sw

s

cont(n).. sum(a(np,n), qp(a)-qn(a)) - sum(a(n,np), s(n)$rn(n) =e= node(n,"demand");

qp(a)-qn(a))

cont(nw).. - qp(nw,cc) - qp(nw,w) - qp(nw,n) + qn(nw,cc) + qn(nw,w) + qn(nw,n) + s(nw) =E= 0 ; (LHS = 0.961470588235294, INFES = 0.961470588235294 ***)

+

Msc. Alexandre Hitoshi Ito n nw

cc

w

e

se

sw

s

cont(n).. sum(a(np,n), qp(a)-qn(a)) - sum(a(n,np), s(n)$rn(n) =e= node(n,"demand");

qp(a)-qn(a))

cont(e).. - qp(e,cc) - qp(e,s) - qp(e,se) - qp(e,n) + qn(e,cc) + qn(e,s)+ qn(e,se) + qn(e,n) + s(e) =E= 0 ; (LHS = 2.30752941176471, INFES = 2.30752941176471 ***)

+

Msc. Alexandre Hitoshi Ito n nw

cc

w

e

se

sw

s

cont(n).. sum(a(np,n), qp(a)-qn(a)) - sum(a(n,np), s(n)$rn(n)=e= node(n,"demand");

qp(a)-qn(a))

cont(cc).. qp(nw,cc) + qp(e,cc) - qp(cc,w) - qp(cc,sw) - qp(cc,s) - qp(cc,n) - qn(nw,cc) - qn(e,cc) + qn(cc,w) + qn(cc,sw) + qn(cc,s) + qn(cc,n) =E= 1.212 ; (LHS = 0, INFES = 1.212 ***)

+

Msc. Alexandre Hitoshi Ito cont(n).. sum(a(np,n), qp(a)-qn(a)) - sum(a(n,np), s(n)$rn(n)=e= node(n,"demand");

---- EQU cont LOWER nw e cc w sw s se n

. . 1.212 0.452 0.245 0.652 0.252 0.456

qp(a)-qn(a))

flow conservation equation at each node LEVEL . . 1.212 0.452 0.245 0.652 0.252 0.456

UPPER . . 1.212 0.452 0.245 0.652 0.252 0.456

MARGINAL 123.443 152.638 164.828 175.368 255.297 235.193 217.525 215.539

+

Msc. Alexandre Hitoshi Ito h(n) - h(np) =e= [hloss*dist(a)*(qp(a)+qn(a))**(qpow-1)*(qp(a)-qn(a))/d(a)**dpow] $(qpow 2) + [hloss*dist(a)*(qp(a)+qn(a))*qp(a)-qn(a))/d(a)**dpow]$(qpow = 2);

---- loss

=E=

pressure loss on each arc

loss(nw,cc).. (0)*qp(nw,cc) + (0)*qn(nw,cc) + (0)*d(nw,cc) + h(nw) -h(cc) =E=0; (LHS = -10.08, INFES = 10.08 ***) loss(nw,w).. (0)*qp(nw,w) + (0)*qn(nw,w) + (0)*d(nw,w) + h(nw) - h(w) =E= 0 ; (LHS = -8.42, INFES = 8.42 ***)

loss(nw,n).. (0)*qp(nw,n) + (0)*qn(nw,n) + (0)*d(nw,n) + h(nw) - h(n) =E= 0 ; (LHS = -9.58, INFES = 9.58 ***)

Msc. Alexandre Hitoshi Ito h(n) - h(np) =e= [hloss*dist(a)*(qp(a)+qn(a))**(qpow-1)*(qp(a)-qn(a))/d(a)**dpow] $(qpow 2) + [hloss*dist(a)*(qp(a)+qn(a))*qp(a)-qn(a))/d(a)**dpow]$(qpow = 2); ---- EQU loss

nw.cc nw.w nw.n e .cc e .s e .se e .n cc.w cc.sw cc.s cc.n sw.w s .sw s .se

pressure loss on each arc

LOWER

LEVEL

UPPER

MARGINAL

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

16.191 3.307 0.119 0.020 5.106 1.572 7.028 0.021 2.899 0.100 0.153 -0.160 6.778 -1.572

Msc. Alexandre Hitoshi Ito peq.. pcost =e= sum(rn, s(rn)*node(rn,"pcost")* (h(rn)-node(rn,"height") )

);

---- peq =E= pump cost equation peq.. - (0.9807)*h(nw) - (2.35368)*h(e) - (5.1)*s(nw) - (5.1)*s(e) + pcost =E= 0 ; (LHS = -16.6719, INFES = 16.6719 ***)

weq.. wcost =e= sum( rn , s(rn) * node(rn,"wcost") ); ---- weq weq..

=E=

water cost equation

- 0.2*s(nw) - 0.17*s(e) + wcost =E= 0 ; (LHS = -0.584574117647059, INFES = 0.584574117647059 ***)

Msc. Alexandre Hitoshi Ito deq.. dcost =e= dprc * sum((n,np)$a(n,np), dist(n,np)*d(n,np)**cpow ); ---- deq

deq..

=E=

investment cost equation

- (114.103599143227)*d(nw,cc) - (95.8018889124984)*d(nw,w) - (187.028826784067)*d(nw,n) - (149.69026915419)*d(e,cc) - (174.349550814975)*d(e,s) - (97.1772791762506)*d(e,se) - (99.7312779565658)*d(e,n) - (93.7382216420746)*d(cc,w) - (116.286437524713)*d(cc,sw) - (97.1772791762506)*d(cc,s)

- (155.548322247858)*d(cc,n) - (90.4001852304575)*d(sw,w) - (83.5750008102197)*d(s,sw) - (149.69026915419)*d(s,se) + dcost =E= 0 ;

(LHS = -723.629986536828, INFES = 723.629986536828 ***)

Msc. Alexandre Hitoshi Ito obj.. cost =e= ( pcost + wcost ) / r + dcost + pen; ---- obj

=E=

objective function

obj.. - 10*pcost - dcost - 10*wcost + cost - pen =E= 0 ; (LHS = 0) ----------------------------------------------------------------

----------------

EQU EQU EQU EQU EQU

peq deq weq obj dpen

peq deq weq obj dpen

LOWER

LEVEL

UPPER

MARGINAL

. . . . .

. . . . .

. . . . .

10.000 1.000 10.000 1.000 1.000

pump cost equation investment cost equation water cost equation objective function penalty definition

Msc. Alexandre Hitoshi Ito dpen.. pen =e= sum(a, qp(a) + qn(a));

---- dpen

=E=

penalty definition

dpen.. - qp(nw,cc) - qp(nw,w) - qp(nw,n) - qp(e,cc) - qp(e,s) qp(e,se)

- qp(e,n) - qp(cc,w) - qp(cc,sw) - qp(cc,s) - qp(cc,n) qp(sw,w) - qp(s,sw) - qp(s,se) - qn(nw,cc) - qn(nw,w) - qn(nw,n) qn(e,cc) - qn(e,s) - qn(e,se) - qn(e,n) - qn(cc,w) - qn(cc,sw) qn(cc,s) - qn(cc,n) - qn(sw,w) - qn(s,sw) - qn(s,se) + pen =E= 0 ; (LHS = 0)

Msc. Alexandre Hitoshi Ito qpup(a).. ---- qpup

qp(a) =l= =L=

maxq*qb(a);

positive bounds

qpup(nw,cc)..

qp(nw,cc) - 2*qb(nw,cc) =L= 0 ; (LHS = 0)

qpup(nw,w)..

qp(nw,w) - 2*qb(nw,w) =L= 0 ; (LHS = 0)

qpup(nw,n)..

qp(nw,n) - 2*qb(nw,n) =L= 0 ; (LHS = 0)

qnup(a)..

---- qnup

qn(a) =l=

=L=

qnup(nw,cc)..

maxq*(1-qb(a));

negative bounds qn(nw,cc) + 2*qb(nw,cc) =L= 2 ; (LHS = 0)

qnup(nw,w)..

qn(nw,w) + 2*qb(nw,w) =L= 2 ; (LHS = 0)

qnup(nw,n)..

qn(nw,n) + 2*qb(nw,n) =L= 2 ; (LHS = 0)

Msc. Alexandre Hitoshi Ito qpup(a).. ---- qpup

qp(a) =l= =L=

qpup(nw,cc)..

maxq*qb(a);

positive bounds qp(nw,cc) - 2*qb(nw,cc) =L= 0 ; (LHS = 0)

---- EQU qpup LOWER nw.cc nw.w nw.n e .cc e .s e .se e .n cc.w cc.sw cc.s cc.n sw.w s .sw s .se

-INF -INF -INF -INF -INF -INF -INF -INF -INF -INF -INF -INF -INF -INF

positive bounds LEVEL -0.536 -1.547 -1.994 -1.995 -1.359 -1.748 -1.553 -1.993 -1.763 -1.989 -1.997 . -2.000 .

UPPER

MARGINAL

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

Msc. Alexandre Hitoshi Ito qnup(a).. ---- qnup

qn(a) =l= =L=

qnup(nw,cc)..

maxq*(1-qb(a));

negative bounds qn(nw,cc) + 2*qb(nw,cc) =L= 2 ; (LHS = 0)

---- EQU qnup LOWER nw.cc nw.w nw.n e .cc e .s e .se e .n cc.w cc.sw cc.s cc.n sw.w s .sw s .se

-INF -INF -INF -INF -INF -INF -INF -INF -INF -INF -INF -INF -INF -INF

negative bounds LEVEL 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 0.008 2.000 1.0435E-4

UPPER 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000

MARGINAL . . . . . . . . . . . . . .

Msc. Alexandre Hitoshi Ito Vazão Positiva (qp)

---- VAR qp

flow on each arc - positive

LOWER nw.cc nw.w nw.n e .cc e .s e .se e .n cc.w cc.sw cc.s cc.n sw.w s .sw s .se

. . . . . . . . . . . . . .

LEVEL 1.464 0.453 0.006 0.005 0.641 0.252 0.447 0.007 0.237 0.011 0.003 . 4.9692E-5 .

(m**3 per sec)

UPPER

MARGINAL

+INF +INF +INF +INF +INF +INF +INF +INF +INF +INF +INF +INF +INF +INF

. . . . . . . . . . . 80.929 EPS 18.668

Msc. Alexandre Hitoshi Ito Vazão Negativa (qn)

---- VAR qn

flow on each arc - negative

LOWER nw.cc nw.w nw.n e .cc e .s e .se e .n cc.w cc.sw cc.s cc.n sw.w s .sw s .se

. . . . . . . . . . . . . .

LEVEL . . . . . . . . . . . 0.008 . 1.0435E-4

(m**3 per sec)

UPPER

MARGINAL

+INF +INF +INF +INF +INF +INF +INF +INF +INF +INF +INF +INF +INF +INF

42.385 52.925 93.096 13.190 83.555 65.887 63.901 11.540 91.469 71.365 51.711 . 21.104 EPS

Msc. Alexandre Hitoshi Ito Diâmetro de cada Arco (d.a(n,np))

---- VAR d

pipe diameter for each arc

LOWER nw.cc nw.w nw.n e .cc e .s e .se e .n cc.w cc.sw cc.s cc.n sw.w s .sw s .se

0.150 0.150 0.150 0.150 0.150 0.150 0.150 0.150 0.150 0.150 0.150 0.150 0.150 0.150

LEVEL 1.122 0.619 0.150 0.150 0.734 0.464 0.691 0.150 0.499 0.150 0.150 0.150 0.150 0.150

UPPER 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000

(m)

MARGINAL EPS . 118.669 101.751 . . . 63.163 . 53.775 104.126 50.786 57.390 102.789

Msc. Alexandre Hitoshi Ito Pressão em cada nó (n)

---- VAR h

nw e cc w sw s se n

pressure at each node

(m)

LOWER

LEVEL

UPPER

MARGINAL

6.500 3.250 16.580 14.920 12.925 12.260 8.760 16.080

18.406 18.048 16.580 14.920 12.925 12.925 12.926 16.080

+INF +INF +INF +INF +INF +INF +INF +INF

. EPS 13.039 3.169 9.837 . . 7.300

Msc. Alexandre Hitoshi Ito Vazão em cada reservatório (s) ---- VAR s

supply at reservoir nodes

LOWER

nw e

. .

LEVEL

1.923 1.346 LOWER

----------------

VAR VAR VAR VAR VAR

pcost dcost wcost cost pen

UPPER

MARGINAL

2.500 6.000 LEVEL

-INF -INF -INF -INF -INF

(m**3 per sec)

. . UPPER

43.669 492.502 0.613 938.862 3.535

pcost annual recurrent pump costs dcost investment costs for pipes wcost annual recurrent water costs cost total discounted costs pen objective penalty

MARGINAL

+INF +INF +INF +INF +INF (mill rp) (mill rp) (mill rp) (mill rp)

. . . . .

Msc. Alexandre Hitoshi Ito Vazão unitária (qb) ---- VAR qb LOWER

nw.cc nw.w nw.n e .cc e .s e .se e .n cc.w cc.sw cc.s cc.n sw.w s .sw s .se

. . . . . . . . . . . . . .

LEVEL

1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 . 1.000 .

UPPER

1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000

MARGINAL

EPS EPS EPS EPS EPS EPS EPS EPS EPS EPS EPS EPS EPS EPS

Msc. Alexandre Hitoshi Ito Resumo do Relatório **** REPORT SUMMARY :

0 NONOPT 0 INFEASIBLE 0 UNBOUNDED 0 ERRORS