18
1 INTRODUÇÃO
A Otimização é um processo de busca para a solução de problema que utiliza
várias técnicas para chegar à solução mais eficaz.
Com o início da Segunda Guerra Mundial, tornou-se essencial o planejamento
de modo eficiente do uso de recursos escassos. A United States Air Force instituiu
em 1947 o programa SCOOP ( Scientific Computation of Optimum Programs)
envolvendo pesquisadores de várias áreas. Deste grupo de trabalho, participou
George B. Dantzig, que se deparou com problemas de alocação de aeronaves para
transporte de suprimentos e formulou o problema geral de programação linear em
1947. Em 1949, Dantzig propôs o “método simplex” como estratégia de resolução
do problema de programação linear. A partir daí, muitos pesquisadores se
envolveram com o assunto, passando a contribuir no desenvolvimento de resultados
teóricos, métodos eficientes de codificação do algoritmo, novos algoritmos,
aplicações, etc.
O algoritmo do método simplex permaneceu até 1978 como única alternativa
para
implementação
computacional
eficiente
para
resolver
problemas
de
programação linear. Khachian (1979) apud Porto et al (1997) publicou o algoritmo
de elipsóides como alternativa ao simplex. Posteriormente, surge com Karmarkar
(1984) apud Porto et al (1997), um algoritmo baseado em pontos interiores
anunciando grandes vantagens computacionais para problemas de grande porte em
relação ao simplex. Apesar disto, o simplex é utilizado até os dias de hoje pela
maioria dos pacotes comerciais existentes.
Com o passar do tempo, várias técnicas foram desenvolvidas para escolher a
alternativa ótima, sendo as mais conhecidas: a programação linear, a programação
não-linear, a programação dinâmica, a simulação e a utilização de algoritmo
genético. As três primeiras não têm aplicação muito grande em casos reais de
engenharia, mas são suficientes para garantir a viabilidade. A simulação é a técnica
mais utilizada na prática e proporciona meios para o tratamento detalhado do
comportamento dos sistemas, apesar de não ser otimizante. Os algoritmos genéticos
adaptam conceitos da genética e da evolução para gerar um processo de otimização
em engenharia.
19
Deve-se ao “ Harvard Water Resources Group ” a ação pioneira de introduzir
este tipo de abordagem em planejamento e gestão de recursos hídricos. Os
pesquisadores do programa criaram as bases da análise de sistemas de recursos
hídricos, que consiste em dividir em 5 etapas qualquer problema de planejamento e
operação de sistemas de recursos hídricos. As etapas são: a) definir os objetivos; b)
formular as medidas quantitativas dos objetivos; c) gerar as alternativas de solução;
d) quantificar as alternativas; e) selecionar a alternativa ótima.
A otimização do controle operacional de redes hidráulicas é usualmente
obtida através de programação linear com várias limitações, pois as equações que
descrevem o escoamento não são lineares.
As dificuldades para se otimizar redes hidráulicas não consistem apenas em
transformar equações não-lineares em lineares, pois vários problemas adicionais
devem ser considerados, tais como funções descontínuas que descrevem as condições
de contorno relacionadas ao liga/desliga das bombas e também a ocorrência de
condições limites na operação dos equipamentos (válvulas e bombas).
Na área de recursos hídricos, o desequilíbrio entre oferta e demanda impõe ao
engenheiro soluções cada vez mais elaboradas. À medida que o país cresce, os
problemas relacionados com a água, como o abastecimento das cidades, transferência
de água entre bacias hidrográficas e principalmente a escassez e a dificuldade de
obtenção de recursos de capital para a construção de novas obras, exige que os
sistemas existentes sejam cada vez mais eficientes.
O controle operacional de redes hidráulicas para atender as demandas da
população ao longo do dia é um problema que vem sendo pesquisado há várias
décadas e até hoje as soluções utilizadas nem sempre são otimizadas, resultando em
riscos de falhas no fornecimento de água.
A proposição para esta pesquisa é desenvolver um modelo híbrido, que após
calcular as cargas e as vazões para o regime permanente e para o regime extensivo,
utiliza um algoritmo genético para otimizar o controle operacional de redes
hidráulicas.
O controle operacional de redes hidráulicas envolve várias variáveis que
deverão ser controladas e otimizadas para se obter a maior eficiência na operação,
tais como:
20
a) Nível d’água nos reservatórios
O controle da variação do nível d‟água nos reservatórios é necessário, pois se
o nível da água ultrapassar um valor máximo pré-determinado ocorrerá o
transbordamento, ocasionando desperdício de água e se o nível ficar abaixo de um
valor mínimo pré-determinado poderá ocorrer entrada de ar no sistema prejudicando
a operação subseqüente.
b) Níveis de pressão ao longo da rede
Os níveis de pressão devem ser controlados nas redes hidráulicas
primeiramente por questões de normativas exigindo que as pressões extremas ao
longo da rede não sejam superiores e/ou inferiores a valores pré-determinados em
normas técnicas. Além disto, pressões muito baixas comprometem o fornecimento e
pressões muito altas podem provocar danos nas tubulações e interferem nas ligações
domiciliares e respectivo sistema de distribuição.
c) Número de manobras nas válvulas
O consumo de água pela população ao longo do dia varia bastante, com
horários de menor consumo e horários de maior consumo, ressaltando o horário de
pico.
Para se controlar a vazão de água durante as 24 horas do dia, de modo que se
atenda às necessidades da população e utilizando-se a capacidade de transporte e
reserva, usam-se as válvulas de controle.
É necessário que se especifiquem as válvulas de controle reduzindo-se o
número de manobras e controlando-se os riscos decorrentes dos transitórios
hidráulicos.
21
d) Vazão de produção (ETA)
A vazão na ETA igual à média do consumo de água diário deve ser mantida
constante para se otimizar a qualidade.
e) Instalação de bombas
A instalação de bombeamentos (boosters com ou sem variador de rotação) é
necessária para se manter o abastecimento e o controle das pressões, requerendo a
definição de um esquema operacional pré-programado e auto-ajustável através de
controladores lógicos.
f) Manobras para evitar transitórios hidráulicos.
O transitório hidráulico decorre das manobras na rede e deve ser controlado e,
por tal, as manobras devem ser especificadas para garantir que a tubulação não sofra
riscos de ruptura ou colapso.
22
2 REVISÃO DE LITERATURA
2.1 Técnicas de otimização
Em geral, o modelo de otimização é constituído por uma função objetivo, que
descreve o critério a ser adotado para o sistema, podendo ser de minimização ou
maximização e comporta as “n” variáveis de decisão do problema. Além dela,
existem também as várias funções de restrição, que descrevem o processo a ser
analisado podendo ser restrições de igualdade ou de desigualdade e determinam a
região viável (factível) das variáveis de decisão. Caso as restrições não existam, o
problema de otimização é irrestrito. Além das variáveis já definidas, existem os
parâmetros do modelo. O conjunto de valores das variáveis de decisão que satisfaz as
funções de restrição e os parâmetros é a solução viável. A região viável é o conjunto
formado por todas as soluções viáveis. Dentre as soluções viáveis, aquela que
também satisfaz a função objetivo é a solução ótima. Existe também a otimização
multiobjetivo, que utiliza mais de um critério (função objetivo).
A função objetivo gera um resultado a partir de um conjunto de dados
(parâmetros) de entrada. A função objetivo pode ser uma função matemática, um
experimento, um jogo, etc. O objetivo é modificar o resultado de uma maneira
desejável, buscando-se os valores apropriados para os parâmetros de entrada.
Freqüentemente, a função objetivo é muito complicada de se definir. O
usuário deve decidir quais parâmetros do problema são os mais importantes. O
usuário deve ter em mente que determinar a função objetivo apropriada e decidir
quais parâmetros usar são dois procedimentos intimamente relacionados.
Existem várias classificações para o problema de otimização, dependendo da
natureza da função objetivo e do conjunto de restrições (se existirem). O problema
pode ser classificado em: a) linear x não-linear ; b) determinístico x não
determinístico ; c) estático x dinâmico ; d) contínuo x discreto.
Um problema de programação linear consiste de uma função objetivo, que é
uma função linear das variáveis de decisão e todas as restrições lineares. Problemas
de programação não-linear são representados por expressões não-lineares, que
podem ser parte ou todas as restrições e/ou uma função objetivo não-linear.
23
Problemas determinísticos contêm parâmetros ou coeficientes que possuem valores
perfeitamente determinados e conhecidos, enquanto problemas não determinísticos
contêm parâmetros com incerteza, que são considerados variáveis aleatórias. Nos
problemas estáticos, não aparecem as variáveis tempo e espaço, enquanto que os
problemas dinâmicos envolvem o tempo e/ou o espaço. Nos problemas contínuos as
variáveis podem assumir qualquer valor dentro de um intervalo contínuo de
definição, enquanto que nos problemas discretos, as variáveis pertencem a um
conjunto de valores não contínuo. Na classe dos problemas discretos, estão os
problemas conhecidos como problemas de programação inteira, onde as variáveis
assumem somente valores inteiros. Existe uma subclasse dos problemas de
programação inteira, onde as variáveis são inteiras e só assumem os valores 0 e 1,
que são conhecidos como problemas de programação inteira 0-1.
2.1.1 Programação linear (PL)
A programação linear se volta para a minimização ou maximização de uma
função linear com muitas variáveis sujeitas a restrições que são lineares e de
igualdade. Apresentam-se a seguir dois métodos de PL.
2.1.1.1 Método gráfico
O Método Gráfico é aplicado a problemas com duas variáveis, x1 e x2. As
restrições devem ser lançadas em um gráfico bi-dimensional onde determinam
regiões do plano x1, x2 cujos pontos são chamados viáveis. A interseção destes
pontos determina a região viável, onde estará a solução ótima para o problema. A
solução ótima será um dos vértices do polígono que forma a região viável.
Para se descobrir a solução ótima, utiliza-se o gradiente da função objetivo. O
gradiente é um vetor definido pelas derivadas parciais de primeira ordem das
variáveis de uma função (x1, x2, ..., xn), caso esta as possua, e tem a propriedade de
apontar para a direção e sentido de maior crescimento da função objetivo. Quando o
problema é de minimização, deve-se caminhar no sentido contrário do gradiente.
24
2.1.1.2 Método simplex
O Método Simplex consiste em um algoritmo projetado por George B.
Dantzig, que basicamente toma a região delimitada pelas restrições (região viável) e
analisa o crescimento ou a diminuição da função objetivo dentro dela. Para isto, o
problema deve ser colocado dentro da forma padrão.
Na vida real, os problemas quase sempre têm mais equações ou inequações
que variáveis. No caso do Simplex, as inequações são transformadas em equações
com o acréscimo de outras variáveis, que têm valor zero. Assim, define-se a forma
padrão de um problema de PL. As variáveis zeradas do problema são chamadas de
não-básicas e as demais de básicas.
Com o problema na forma básica, monta-se o Tableau Simplex. Fazendo-se
sucessivos pivotamentos de Gauss e promovendo-se a entrada e a saída das variáveis
no grupo das não-básicas, chega-se à solução ótima.
2.1.2 Programação não-linear
Problemas de programação não-linear são representados por expressões nãolineares, que podem ser parte ou todas as restrições e/ou uma função objetivo nãolinear.
2.1.2.1 Otimização analítica
Estes métodos procuram determinar soluções ótimas resolvendo sistemas de
equações com o apoio de derivadas. A otimização pode ser reduzida à procura das
raízes destes sistemas. A Otimização Analítica não trabalha bem com parâmetros
discretos e freqüentemente acha uma solução ótima local, além do mais, os
problemas existentes no mundo real são muito complexos e pouco prováveis de
serem resolvidos por estes métodos. Apresentam-se, a seguir, dois métodos.
25
2.1.2.1.1 Método do cálculo diferencial
O cálculo pode ser utilizado para achar o ótimo de várias funções objetivo.
No caso de haver um só parâmetro na função, o ponto ótimo é achado igualando-se a
zero a derivada primeira de uma função objetivo que se queira otimizar e resolvendo
a equação resultante para achar o valor do parâmetro. Se a derivada segunda da
função objetivo for maior que zero, o ponto ótimo é um mínimo e se a derivada
segunda for menor que zero, o ponto ótimo é um máximo. Quando há dois ou mais
parâmetros na função objetivo, para se achar os pontos ótimos, iguala-se o gradiente
da função a zero. Depois, as equações resultantes são resolvidas para se acharem os
valores dos parâmetros. Finalmente, o Laplaciano da função é calculado. As raízes
serão mínimas quando a matriz Hessiana for maior que zero.
2.1.2.1.2 Multiplicadores de Lagrange
No século XVIII, Lagrange apresentou uma técnica para incorporar as
restrições de igualdade na função objetivo. Este método encontra os extremos de uma
função f(x,y,...) com restrições gm(x,y,...)=0, achando os extremos de uma nova
M
função F(x,y,...,1,2,...) = f(x,y,...) +

λmgm(x,y,...). Então, quando os gradientes
m 1
são tomados em termos dos novos parâmetros m, os limites são automaticamente
satisfeitos.
2.1.2.2 Método de busca direta
Os métodos de busca direta a “n” variáveis são constituídos pelos métodos
iterativos. A idéia básica no método iterativo é, a partir de um valor inicial X0,
caminhar sucessivamente através de iterações até o máximo (mínimo) da função f(x),
que se quer otimizar. Nestes métodos, é importante dispor de um critério que indique
se um novo ponto escolhido é melhor que o anterior.
O valor da função objetivo f(xk) pode ser utilizado como critério que, no caso
de minimização, implica f(xk+1)<f(xk), onde k é a iteração considerada. Na
26
maximização, f(xk+1)>f(xk).Todos os métodos podem ser colocados no seguinte
algoritmo:
Passo 1 - Teste de Convergência: caso o valor da função computada no passo K+1
não seja significativamente diferente do valor da função no passo anterior, o
algoritmo para e xk é o vetor solução.
Passo 2 - Cálculo da direção da busca: de acordo com um determinado método de
cálculo, calcule a direção xk. Isto equivale a determinar os vetores unitários das
direções de xk, dados ek, onde e é a direção.
Passo 3 - Cálculo do comprimento do passo: determine qual ponto considerar ao
longo da linha com direção dada pelo passo 2. Trata-se de determinar um incremento
escalar xk tal que f(xk + xk *ek)<f(xk), no caso de cálculo mínimo, e f(xk + xk
*ek)>f(xk), no caso de máximo.
Passo 4 - Atualização do mínimo: faça xk+1= xk + xk *ek e volte ao passo 1.
Existem várias técnicas que usam o Método de Busca Direta. Estas técnicas
não garantem que a solução ótima global seja encontrada. A seguir apresentam-se
duas técnicas.
2.1.2.2.1 Método da máxima descida
O Método da Máxima Descida começa em um ponto arbitrário do espaço de
soluções e minimiza ou maximiza ao longo da direção do gradiente, conforme o
problema. Esta abordagem é bastante popular e foi originada com Cauchy em 1847.
O método faz uso de um escalar não negativo que minimiza ou maximiza a função na
direção do gradiente e se reduz gradativamente à medida que o ponto ótimo se
aproxima. Por definição, o novo gradiente formado em cada iteração é ortogonal ao
gradiente anterior. Se o vale ou a crista são estreitos, então o algoritmo salta de um
lado para o outro por várias iterações antes de alcançar o ótimo.
27
2.1.2.2.2 Programação quadrática
A Programação Quadrática é utilizada quando a função objetivo é quadrática
(os parâmetros são representados ao quadrado) e as restrições são lineares. Esta
técnica é baseada nos Multiplicadores de Lagrange e requer derivadas ou
aproximações de derivadas. Existe também a programação quadrática recursiva que
resolve o problema de programação quadrática a cada iteração para encontrar a
direção para o próximo passo.
2.1.3 Programação dinâmica (PD)
Em muitas situações, o problema de otimização em recursos hídricos é dado
por uma seqüência de decisões que evoluem no tempo e no espaço. Exemplo típicos
de evolução no tempo são o escalonamento de obras de um sistema de grande porte
ou a operação de sistemas de reservatórios. O traçado de uma adutora que dispõe de
um conjunto de possibilidades de ligar a captação até o centro consumidor é um
exemplo de sistema que evolui no espaço.
Em problemas de PD, o estado atual do sistema incorpora todas as
informações prévias decorrentes das decisões tomadas no passado. Isto permite
determinar a política ótima futura, independente do que já ocorreu. Esta propriedade
é chamada de Propriedade Markoviana. Qualquer problema que não atenda esta
propriedade, não pode ser resolvido por PD.
Uma PD é composta por: função objetivo, função de transformação
(mudança) de estado, equações de restrição e função recursiva. A função objetivo
que descreve o critério a ser adotado para o sistema podendo ser de minimização ou
maximização e comporta as “n” variáveis de decisão do problema. A função de
transformação (mudança) de estado define a mudança de estado entre dois estágios.
As equações de restrição descrevem o processo a ser analisado e determinam a região
viável das variáveis de decisão. A função recursiva relaciona o ótimo de um estágio a
outro.
A PD tem a seguinte linha de raciocínio: a) divide-se o problema geral em
estágios; b) determina-se o ótimo em cada estágio; c) relaciona-se o ótimo de um
28
estágio a outro através de uma função recursiva; d) percorrem-se todos os estágios
para obter o ótimo global.
Na PD, o ótimo global pode ser obtido nos dois sentidos: partindo-se do
estágio final até o estágio inicial (PD regressiva) ou vice-versa (PD progressiva).
Na PD, as funções objetivo e as restrições podem ser lineares, não-lineares e
até mesmo descontínuas.
Uma das vantagens da PD é que o trabalho computacional cresce de forma
aproximadamente linear com o número de estágios, enquanto que em outras técnicas
o crescimento é, geralmente, geométrico. Outra vantagem da PD é poder ser utilizada
em um grande número de problemas de programação discreta. A desvantagem da PD
é quando surgem situações nas quais o número de possibilidades que devem ser
analisadas a cada estágio é muito grande. Neste caso, a busca do ótimo é bastante
dificultada. A solução exige bastante memória e tempo de processamento do
computador. Sistemas muito complexos exigem técnicas especiais para reduzir a
dimensionalidade do problema.
2.1.4 Algoritmos genéticos (AG)
Os algoritmos genéticos fazem parte dos algoritmos evolucionários e
permitem que uma população composta de vários indivíduos evolua, sob regras de
seleção específicas, para um estado que geralmente maximiza o ajuste da função
objetivo (função de custo). O método foi desenvolvido por John Holland (1975) apud
Haupt; Haupt (1998) durante os anos 60 e 70 e foi popularizado por um dos seus
estudantes, David Goldberg, que resolveu um problema complexo envolvendo
controle de transmissão de gasolina por dutos em sua dissertação de 1989.
Os algoritmos genéticos têm algumas vantagens como poder fazer
otimizações utilizando parâmetros contínuos ou discretos, não requerer informações
de derivadas, pesquisar simultaneamente a partir de um grande número de amostras
do espaço de soluções, poder lidar com um grande número de parâmetros, ser bem
adequado para programação paralela, fornecer uma lista de parâmetros ótimos, ao
invés de uma única solução, permitir a codificação dos parâmetros de modo que a
otimização seja feita com os parâmetros codificados, otimizar parâmetros em espaços
29
de soluções extremamente complexos, podendo evitar um mínimo local e trabalhar
com dados gerados numericamente, dados experimentais ou funções analíticas.
Deve-se destacar que os algoritmos genéticos não são a melhor maneira para
se resolver todo tipo de problema. Por exemplo, em problemas que contenham uma
função analítica convexa bem comportada com poucas variáveis, os métodos
tradicionais de otimização, como os métodos baseados no cálculo diferencial, são
mais eficientes que os algoritmos genéticos. Entretanto, muitos problemas reais não
caem nesta categoria. Em adição, alguns métodos podem encontrar a solução de
maneira mais rápida que os algoritmos genéticos em problemas que não sejam
globalmente complexos, ao menos no caso de se utilizar programação serial.
Os algoritmos genéticos trabalham com uma população de possíveis soluções,
junto com operadores genéticos (seleção, crossover e mutação) para produzir
resultados mais adequados sucessivamente. Cada solução é representada por uma
série de números (cromossomo). Cada cromossomo contém sub-séries ou genes, que
são valores ou componentes que formam ou avaliam a função objetivo do problema.
Os algoritmos genéticos começam por definir um cromossomo ou uma série de
parâmetros a serem otimizados. A rotina dos AGs começa gerando uma população
inicial aleatoriamente e calcula a adequação de cada indivíduo da população em
relação à característica que se quer otimizar. Então a rotina seleciona os indivíduos
mais aptos (geralmente os 50% com melhor adequação ou custo) desta população
inicial. A partir daí, o algoritmo seleciona os indivíduos para cruzamento, podendo
escolher entre várias técnicas, tais como: seleção proporcional, seleção aleatória,
seleção aleatória ponderada e seleção por sorteio e cria descendentes através da
aplicação de recombinação (crossover) e/ou mutação para os indivíduos
selecionados. A partir daí, a rotina calcula a adequação destes descendentes e elimina
os menos aptos para inserir os mais aptos na nova geração, formada pelos pais e
pelos descendentes mais aptos selecionados. Se a população convergir, a rotina
termina. Caso contrário, ela repete os passos descritos anteriormente.
A maioria dos problemas de otimização requer constantes ou limites para os
parâmetros (funções de restrição). Os AGs não são capazes de manejar restrições ou
constantes, por isto, faz-se uso de uma função de penalidade. A função de penalidade
evita que indivíduos que geram soluções não factíveis sejam selecionados, assim os
30
AGs se concentrarão nas soluções factíveis ou nas proximidades delas. Cabe ao
usuário definir a função de penalidade de acordo com o problema que ele tiver em
mãos.
2.1.4.1 Representação dos parâmetros
Uma das maneiras de representar os parâmetros do problema é utilizar o
código binário. O algoritmo genético binário trabalha com um número de parâmetros
finito, mas normalmente muito grande. Esta característica torna o AG ideal para
otimizar uma solução que está ligada a parâmetros que só podem assumir um número
finito de valores.
O AG trabalha com codificação binária, mas a função objetivo requer
parâmetros contínuos, por isto, sempre que a função objetivo é avaliada, o
cromossomo deve ser primeiro decodificado.
Outra forma de representar os AGs é o código de Gray. Este código redefine
os números binários de modo que dois números consecutivos (adjacentes) têm uma
distância de Hamming de apenas um. A distância de Hamming é definida como o
número de bits que diferem dois cromossomos. O código de Gray é usado para evitar
variações muito grandes nos valores das variáveis entre as gerações e facilitar a
convergência para uma boa solução, entretanto, este código pode deixar o AG de 10
a 20 % mais lento, dependendo da situação.
Outra maneira de representar os parâmetros do problema é representar os
parâmetros utilizando números reais que fiquem entre os limites estabelecidos. Neste
tipo de representação os parâmetros são contínuos e por isto podem assumir qualquer
valor. Apesar disto, os computadores digitais representam os números com um
número finito de bits e utilizam a sua precisão interna para definir a precisão dos
parâmetros contínuos. Portanto, o AG fica com a precisão limitada ao erro de
arredondamento do computador. Este tipo de representação tem a vantagem de
requerer menos memória do computador para armazenar dados.
31
2.1.4.2 População inicial
O algoritmo genético começa com um grande número de cromossomos, os
quais formam a população inicial. Esta população é representada por uma matriz
preenchida com números entre zero e um, gerados aleatoriamente e arredondados
para o inteiro mais próximo (0 ou 1), onde cada linha representa um cromossomo e
cada coluna do cromossomo representa um bit. Após isto, os parâmetros são
passados para a função objetivo para avaliação. Uma população grande fornece uma
boa amostra do espaço de pesquisa para o AG, mas pode prejudicar bastante a
eficiência dele. Normalmente, apenas uma parcela da população inicial participa da
parte iterativa do AG.
No caso de se representarem os parâmetros com números reais, a população
inicial é representada por uma matriz, onde cada linha é composta por uma série de
parâmetros contínuos. Os elementos da matriz são números entre 0 e 1 gerados
aleatoriamente multiplicados pela diferença entre o maior valor e o menor valor
permitidos no intervalo do parâmetro, sendo este resultado somado ao menor valor
permitido no intervalo do parâmetro.
Quando a população inicial é muito grande para passar pelo processo iterativo
do AG, uma parte da população é descartada. Primeiro, o AG calcula a adequação de
cada indivíduo e os coloca em ordem decrescente (do mais adequado para o menos
adequado), então, os menos adequados são descartados (normalmente 50%) e apenas
os melhores farão parte da população para participar das iterações na rotina do AG.
Na hora da iteração, apenas uma parte destes melhores indivíduos (50%) é
selecionada para fazer parte do grupo de reprodução, a outra metade destes melhores
indivíduos é descartada. Este processo se repete a cada iteração.
Como exemplo, suponhamos que uma população inicial de 80 indivíduos é
considerada muito grande por algum critério, portanto, apenas os 40 melhores
indivíduos são mantidos na população para participar do processo iterativo. Neste
processo, apenas os 20 melhores farão parte do grupo de reprodução, enquanto que
os 20 piores serão descartados. Os 20 melhores irão produzir 20 descendentes e a
população voltará a ter 40 indivíduos. Novamente, apenas os 20 melhores farão parte
do grupo de reprodução da próxima iteração e assim por diante.
32
Uma outra forma de selecionar os cromossomos para reprodução consiste em
definir algum princípio de sobrevivência. Todos os cromossomos que não
alcançarem este princípio de sobrevivência são descartados. Caso todos os
cromossomos sejam descartados, uma nova população inicial é criada para achar
cromossomos que passem no teste. Esta técnica tem como característica, a vantagem
de não necessitar que a população seja classificada, como no caso anterior.
2.1.4.3 Seleção
Na seleção, dois indivíduos são selecionados do grupo de reprodução para
produzir dois novos descendentes. A seleção dos indivíduos continua até que haja
descendentes suficientes para a população voltar ao seu tamanho original. A seleção
dos indivíduos pode ser escolhida entre várias técnicas, tais como:
a) Seleção proporcional
Nesta seleção, o algoritmo classifica os cromossomos de acordo com sua
adequação em ordem decrescente e escolhe os pares de cromossomos para
reprodução de dois em dois do início para o final. Assim, o algoritmo escolhe o
melhor e o segundo melhor, o terceiro melhor e o quarto melhor e assim por diante.
Esta técnica não modela a natureza de forma adequada e não mantém a diversidade
populacional.
b) Seleção aleatória
Esta técnica utiliza um gerador de número aleatório uniforme para selecionar
os cromossomos. Os cromossomos são classificados de acordo com sua adequação e
dois números aleatórios são gerados para escolher dois indivíduos para reprodução.
Nesta técnica, o algoritmo gera uma quantidade de números aleatórios entre 0 e 1
igual ao número de indivíduos do grupo de reprodução. A partir daí, estes números
gerados são multiplicados pelo número de indivíduos do grupo de reprodução e os
resultados são arredondados para o teto dos números inteiros mais próximos
33
correspondentes.
Estes
resultados
finais
fornecem
números
inteiros
que
correspondem aos cromossomos selecionados para reprodução, que são pegos de
dois em dois na ordem em que foram gerados.
c) Seleção aleatória ponderada
Esta técnica designa probabilidades para os indivíduos do grupo de
reprodução de acordo com as suas funções objetivo. O cromossomo com o maior
valor da função objetivo tem a maior probabilidade de ser selecionado para
reprodução e vice-versa. Um número aleatório define qual cromossomo é
selecionado. Esta técnica é mais conhecida como seleção por mecanismo de roleta.
Uma maneira de se usar esta técnica é calcular a probabilidade através da
posição do cromossomo no grupo de reprodução. Cada cromossomo do grupo de
reprodução recebe um número inteiro “n”, a partir de 1, para designar sua posição no
grupo, começando do mais apto. Para se calcular a probabilidade “Pn” do
cromossomo, pega-se o número de cromossomos que compõem o grupo de
reprodução “Nrep” acrescido de um e subtrai-se o número (“n”) da posição do
cromossomo no grupo. Este valor é dividido pelo somatório dos números das
posições de todos os cromossomos do grupo de reprodução, conforme eq.(1).
Utilizam-se as probabilidades acumuladas de cada cromossomo para selecioná-los. A
partir daí, gera-se uma quantidade de números aleatórios entre 0 e 1 igual ao número
de indivíduos do grupo de reprodução. Começando-se do início para o final, o
primeiro cromossomo com uma probabilidade acumulada maior que o primeiro
número gerado é escolhido para reprodução e assim por diante até que todos os
números gerados sejam testados. Neste processo, um mesmo cromossomo pode ser
escolhido mais de uma vez. Se por acaso, um cromossomo faz par com ele mesmo,
pode-se ignorar este fato ou pegar um outro cromossomo aleatoriamente. A
aleatoriedade desta técnica está mais de acordo com a natureza.
34
Pn 
N rep n 1
N rep
(1)
n
n 1
Outra maneira de se usar esta técnica é calcular a probabilidade através da
adequação do cromossomo no grupo de reprodução. Uma adequação normalizada
“An” é calculado para cada cromossomo, subtraindo o maior valor da adequação do
cromossomo descartado “ANrep” do valor de adequação “An” de cada cromossomo do
grupo de reprodução. A probabilidade “Pn” para cada cromossomo é calculada pelo
módulo da divisão da adequação normalizada pelo somatório de todas as adequações
normalizadas “Ap” dos cromossomos do grupo de reprodução. Utilizam-se as
probabilidades acumuladas de cada cromossomo para selecioná-los. A partir daí,
gera-se uma quantidade de números aleatórios entre 0 e 1 igual ao número de
indivíduos do grupo de reprodução. Começando-se do início para o final, o primeiro
cromossomo com uma probabilidade acumulada maior que o primeiro número
gerado é escolhido para reprodução e assim por diante, até que todos os números
gerados sejam testados.
Pn 
An
N rep
 Ap
(2)
p 1
Figura 1 – Seleção aleatória ponderada
35
d) Seleção por sorteio
Esta técnica imita de perto a competição na natureza. Nesta técnica, o
algoritmo pega um sub-conjunto de cromossomos do grupo de reprodução e o
indivíduo com a melhor adequação neste sub-conjunto se torna um pai. O número de
sorteios é igual ao número de cromossomos existentes no grupo de reprodução. Os
sub-conjuntos têm geralmente dois cromossomos. Os sorteios selecionam o subconjunto de cromossomos do grupo de reprodução aleatoriamente. Na seleção por
sorteio a população não precisa ser classificada como nas outras técnicas.
Cada sistema de seleção resulta em diferentes conjuntos de pais, portanto, os
descendentes também são diferentes. Dependendo do problema, um sistema trabalha
melhor que o outro e cabe ao usuário decidir qual usar.
2.1.4.4 Recombinação
A recombinação (crossover) é a criação de um ou mais descendentes a partir
dos cromossomos (pais) selecionados no processo de seleção. A recombinação é a
primeira maneira do AG explorar o espaço de soluções. A constituição genética da
população é limitada pelos membros em curso da população e ajuda o AG a
convergir. A forma mais comum de recombinação utiliza dois pais para produzir dois
descendentes. Normalmente, a porcentagem de recombinação na população de 50 a
95% por iteração. Os método mais simples para se fazer as recombinações é escolher
um ou mais pontos nos cromossomos pais e fazer o intercâmbio entre as partes de
cada cromossomo.
Uma maneira de se fazer a recombinação é escolher um ponto aleatoriamente
entre o primeiro e o último bit dos cromossomos dos pais. Em primeiro lugar, o
primeiro e o segundo pai passam seus códigos binários à esquerda do ponto
escolhido para o primeiro e o segundo descendentes respectivamente. Depois, o
primeiro pai passa seu código binário à direita do ponto escolhido para o segundo
descendente e o segundo pai passa seu código para o primeiro descendente. Assim,
os descendentes contêm porções dos códigos binários dos dois pais. Como cada par
36
de pais do grupo de reprodução produz dois descendentes, a população de
cromossomos volta ao seu tamanho original.
Pai1 00100110011101
Pai2 01010110000100
Descendente1 00100110000100
Descendente2 01010110011101
Pode-se fazer também a recombinação escolhendo-se aleatoriamente dois
pontos nos cromossomos pais. Os pais trocam os bits entre estes dois pontos de
intercâmbio. Como alternativa, pode-se escolher aleatoriamente uma das três partes
do cromossomo para fazer as trocas de bits.
Pai1 00101011000110
Pai2 01111100001100
Descendente1 00111100000110
Descendente2 01101011001100
Outro esquema de recombinação envolve três pais e dois pontos de
intercâmbio. Com este esquema, forma-se um total de 18 descendentes, embora não
seja necessário gerar todos. O usuário pode escolher quantos descendentes serão
gerados.
Uma outra maneira de se fazer a recombinação é percorrer todos os pontos
dos cromossomos pais e escolher aleatoriamente qual pai irá contribuir com seu
parâmetro para cada posição dos cromossomos descendentes. Para isto, uma máscara
aleatória é gerada. Esta máscara é um vetor aleatório de zeros e uns e tem o mesmo
comprimento dos pais. Quando o bit na máscara é 0, o bit correspondente no
primeiro pai passa para o primeiro descendente e o bit correspondente no segundo
pai passa para o segundo descendente. Quando o bit na máscara é 1, o bit
correspondente no primeiro pai passa para o segundo descendente e o bit
correspondente no segundo pai passa para o primeiro descendente. Este tipo de
recombinação é conhecido como recombinação uniforme.
37
Pai1 00101011000110
Pai2 01111100001100
Máscara 00110110001110
Descendente1 00111101001100
Descendente2 01101010000110
O problema com as recombinações baseadas na escolha de pontos é que
nenhuma informação nova é introduzida. Os parâmetros gerados aleatoriamente na
população inicial são passados para a próxima geração em combinações diferentes.
Esta estratégia funciona bem para representações binárias, mas no caso da
representação com números reais, as informações são apenas trocadas entre os
pontos escolhidos. Para superar este problema, faz-se uso da recombinação
misturada.
A recombinação misturada encontra maneiras de combinar os valores dos
parâmetros dos dois pais para formar um novo parâmetro nos descendentes. Uma
maneira de se fazer isto é escolher aleatoriamente um parâmetro  qualquer em cada
par de cromossomos pais para ser o ponto de intercâmbio. Depois, os parâmetros
escolhidos são combinados para formar novos parâmetros que estarão presentes nos
descendentes. Por fim, completa-se a recombinação com o resto do cromossomo.Esta
combinação pode ser feita de várias maneiras, como por exemplo:
Pai1=[Ppai1 Ppai2 ... Ppai ... Ppaifinal]
Pai2=[Pmãe1 Pmãe2 ... Pmãe ... Pmãefinal]
Pnovo1= Ppai+ (Pmãe - Ppai)
Pnovo2= Pmãe - (Pmãe - Ppai)
onde:
Pnovo1= novo parâmetro para o descendente um;
Pnovo2= novo parâmetro para o descendente dois;
Ppai= parâmetro proveniente do pai;
Pmãe= parâmetro proveniente da mãe;
= número entre zero e um gerado aleatoriamente.
38
Descendente1=[Ppai1 Ppai2 ... Pnovo1 ... Pmãefinal]
Descendente2=[Pmãe1 Pmãe2 ... Pnovo2 ... Ppaifinal]
O valor de  pode ser o mesmo para todos os parâmetros ou pode-se gerar um
valor de  diferente para cada parâmetro. Quando o primeiro parâmetro do
cromossomo é selecionado para ponto de intercâmbio, somente os parâmetros à sua
direita fazem intercâmbio. Quando o último parâmetro do cromossomo é selecionado
para ponto de intercâmbio, somente os parâmetros à sua esquerda fazem intercâmbio.
O número de parâmetros a serem selecionados para a mistura de informações fica a
cargo do usuário, podendo até conter todos os parâmetros dos cromossomos pais.
2.1.4.5 Mutação
As mutações alteram uma pequena porcentagem dos bits dos cromossomos.
As mutações são a segunda maneira do AG explorar o espaço de soluções. As
mutações introduzem características não presentes na população original e evita que
o AG faça a convergência muito rápida. A mutação em um ponto muda de 1 para 0
ou vice-versa. Os pontos de mutação são selecionados aleatoriamente entre os bits da
população. Normalmente, de 1 a 5% dos bits sofrem mutação a cada iteração. As
mutações não ocorrem na última iteração. Para se evitar que os melhores indivíduos
sofram mutações, pode-se usar uma técnica chamada Elitismo. Esta técnica consiste
em nunca substituir os melhores indivíduos da população, mas o elitismo pode gerar
uma rápida convergência. O elitismo não faz a população escapar de um ótimo local.
A maioria das mutações aumenta a adequação do cromossomo. Uma diminuição
ocasional do custo aumenta a diversidade e fortalece a população. As mutações
ajudam a explorar o espaço de soluções, porque elas saem da rota de convergência
para outros territórios.
Para a representação com números reais, multiplica-se a taxa de mutação pelo
número de parâmetros total da população para definir quantos parâmetros sofrerão
mutação. Depois, números aleatórios são gerados para escolher a linha e a coluna dos
parâmetros que sofrerão mutação. Os parâmetros escolhidos são apagados e
39
substituídos por um novo número aleatório gerado entre os limites de variação do
parâmetro.
2.1.4.6 A geração seguinte
Depois que as recombinações e as mutações acontecem, as adequações dos
descendentes e dos cromossomos que sofreram mutação são calculadas. A seguir, o
AG classifica a população segundo as adequações dos indivíduos e seleciona os que
farão parte do grupo de reprodução. Depois que estes indivíduos passam pela
seleção, recombinação, mutação e classificação das suas adequações, a geração
seguinte é formada e assim por diante até a convergência.
2.1.4.7 Convergência
O número de gerações que evoluem depende se uma solução aceitável foi
alcançada ou se um número estabelecido de iterações foi excedido. Após um período
de tempo, todos os cromossomos e suas adequações seriam iguais se não fosse pelas
mutações. São elas que mantêm a diversidade genética da população. Quando a
diversidade genética não varia ou varia muito pouco, o AG deve parar.
A maioria dos AGs presta atenção às estatísticas da população através da
análise da adequação média da população, desvio padrão e melhor adequação.
Qualquer uma destas ou uma combinação delas pode servir como teste de
convergência.
2.2 Análise de bibliografia relevante sobre técnicas de otimização
A análise do regime permanente em redes hidráulicas é um problema de
grande importância na engenharia. As equações hidráulicas básicas que descrevem o
fenômeno não são lineares e podem ser resolvidas iterativamente. Estas equações
básicas, que governam o escoamento do fluido em uma rede hidráulica são a equação
da conservação de massa e a equação da energia.
40
Vários algoritmos foram desenvolvidos para resolver estas equações e apesar
de poderem ser usados no projeto global de uma rede hidráulica, eles são geralmente
formulados para fornecer as vazões e pressões para características de redes
específicas e assim não fornecem informações de projeto diretamente. Como
resultado, vários autores têm empregado várias técnicas de otimização no
desenvolvimento de algoritmos de projeto geral. Em geral o objetivo da maioria das
técnicas de otimização é a minimização dos custos.
A despeito do grande número de algoritmos que tem sido desenvolvidos,
nenhum deles foi totalmente aceito ou tem sido largamente aplicado em execuções
de projetos de redes hidráulicas. Isto é devido, em parte, à grande complexidade das
técnicas requeridas para otimizar as soluções.
Epp; Fowler (1970) desenvolveram um programa de computador para a
solução de redes de água em escoamento permanente. O programa introduziu um
algoritmo para a minimização da largura de banda da matriz dos coeficientes através
da numeração automática dos anéis e utilizou outros algoritmos para definir os anéis
das malhas de forma a reduzir o número de equações a serem resolvidas e estimar as
vazões iniciais.
Epp; Fowler (1970) utilizaram o método de Newton-Raphson aplicado aos
anéis da malha para a resolução do sistema de equações não-lineares. O programa foi
utilizado para uma grande variedade de redes de água e alcançou uma boa
convergência em todas, inclusive em redes nas quais o método de Hardy Cross e o
método de Newton-Raphson aplicado aos nós foram utilizados e não alcançaram a
convergência.
Wood; Charles (1972) propuseram resolver problemas de redes hidráulicas
usando um método linear. Como as equações de energia são não-lineares, eles
propuseram aproximar o valor da perda de carga da seguinte maneira:
hLi= Ki.Qi0a-1.Qi= Ki‟. Qi
onde:
hLi= perda de carga para um tubo i da malha;
Ki= constante do tubo i;
Qi0= vazão no tubo i no instante de cálculo anterior;
Qi= vazão no tubo i no instante de cálculo atual;
41
a= expoente de perda de carga, empírico normalmente, variando entre
1,8 e 2,0.
Este método tem a vantagem de não necessitar estimar vazões iniciais para
cada tubo, a convergência para os resultados finais é muito rápida e foi assegurada
para todos os casos testados, o método pode ser aplicados para redes malhadas e
ramificadas e o método não exige uma programação complexa.
Wood; Rayes (1981) testaram cinco métodos para resolver as equações que
governam as redes hidráulicas para 51 sistemas de redes e 91 situações diferentes.
Três métodos (Método de Ajuste Único do Trecho, Método de Ajuste Simultâneo
dos Trechos e Método Linear) utilizaram as equações de malha (escritas em termos
dos fluxos desconhecidos nos tubos) e dois métodos (Método de Ajuste Único do Nó
e Método de Ajuste Simultâneo dos Nós) utilizaram as equações dos nós (escritas em
termos da carga total em cada nó do sistema de tubos).
Wood; Rayes (1981) concluíram que o Método Linear e o Método de Ajuste
Simultâneo dos Trechos alcançam uma boa convergência com poucas iterações, boa
precisão e podem ser aplicados na resolução das equações das redes hidráulicas se
informações relativamente seguras a respeito da rede são fornecidas. O Método de
Ajuste Único do Trecho, o Método de Ajuste Único do Nó e o Método de Ajuste
Simultâneo dos Nós apresentaram vários problemas significativos de convergência e
os resultados não são confiáveis, apesar de que são grandemente utilizados para
resolver os problemas de redes hidráulicas. Os autores aconselham que se tenha
bastante cuidado ao se utilizar um destes três métodos.
Ormsbee; Wood (1986) propuseram uma técnica alternativa para o problema
do projeto de redes hidráulicas. Eles remodelaram o conjunto básico de equações de
redes hidráulicas realçando um ou mais parâmetros de projeto como variáveis
desconhecidas e especificando condições alternativas, como por exemplo, especificar
a velocidade global de escoamento no caso de se realçar somente um parâmetro de
projeto ou introduzir equações de energia ou continuidade adicionais no caso de se
realçar mais de um parâmetro de projeto.
Ormsbee; Wood (1986) propuseram um algoritmo que utilizou uma expansão
truncada da série de Taylor para linearizar as equações da energia e da continuidade
42
para cada tubo da rede. Este método é uma versão modificada do método linear
proposto por Wood; Charles (1972).
Jowitt; Xu (1990) desenvolveram um algoritmo para a determinação dos
valores das aberturas de válvulas de controle de fluxo para minimizar os vazamentos.
É sabido que os vazamentos em algumas redes de distribuição de água são
responsáveis por quantidades significativos da água colocada para abastecimento.
Para algumas redes urbanas antigas, taxas de até 50% são citadas, sendo que taxas
médias de 25% são típicas. Taxas tão altas de vazamento representam perdas
econômicas de monta.
Sabe-se que os vazamentos de água em uma rede de distribuição de água são
diretamente relacionado à pressão de serviço do sistema. As pesquisas anteriores
para determinação dos valores das aberturas das válvulas para reduzir as pressões na
rede e conseqüentemente os vazamentos, formularam o problema de modo a
minimizar as sobrepressões do sistema sujeitas às constantes operacionais do
sistema. Algumas destas abordagens tentaram resolver o problema sem considerar
diretamente o vazamento dentro do modelo da rede. Mais recentemente,
Germanopoulos; Jowitt (1989) apud Jowitt; Xu (1990) incorporaram componentes de
vazamento dependentes de pressão explicitamente dentro do modelo do sistema. O
artigo pesquisado teve a originalidade de apresentar um algoritmo que estende o
trabalho de Germanopoulos; Jowitt (1989) apud Jowitt; Xu (1990) por procurar
minimizar os vazamentos do sistema diretamente ao invés de simplesmente
minimizar as sobrepressões do sistema. As avaliações dos potenciais benefícios
econômicos foram feitas com comparações dos volumes de vazamento em casos de
sistemas de água controlados e não controlados.
As equações hidráulicas básicas não-lineares da rede, que descrevem as
cargas nos nós e as vazões nos elementos, foram escritas em termos que
explicitamente mostram o vazamento dependente de pressões e em termos que
modelam o efeito das ações das válvulas. Estas equações foram linearizadas pelo
método desenvolvido por Wood; Charles (1972), o que permitiu o desenvolvimento
de um programa linear de mínimo vazamento para resolver o problema de controle
de válvula. O método de linearização desenvolvido por Wood; Charles (1972) é
iterativo. O processo iterativo termina quando a máxima discrepância entre as vazões
43
do instante de cálculo e do instante anterior for menor que um valor de tolerância
especificado. O problema de programação linear foi resolvido utilizando o método
simplex revisado.
Para mostrar o desempenho do método proposto no artigo, Jowitt; Xu (1990)
usaram uma rede de água utilizada por outros autores em outros trabalhos. As
operações das válvulas determinadas pelo algoritmo de otimização desenvolvido no
artigo reduziram os vazamentos na rede principalmente durante a noite, quando o
consumo é menor e as pressões tendem ser maiores. Durante o período de demanda
de pico, a redução dos volumes de vazamento foi marginal. A redução global no
vazamento foi por volta de 20%.
A pesquisa teve como pontos altos utilizar um plano de controle para um
período de 24 horas, que foi desenvolvido para simular o caráter dinâmico de uma
rede real, além disto, as variações dos níveis dos reservatórios foram representadas
indicando a prática usual de encher os reservatórios através de bombeamento durante
a noite por ser mais barato. Um outro aspecto, é que a linearização dos termos que
representam as ações das válvulas usada no artigo é diferente da que foi usada por
Germanopoulos; Jowitt (1989) apud Jowitt; Xu (1990) e isto levou a uma solução
mais eficiente para o problema. No artigo lido, a equação que representa a ação da
válvula incorpora o valor da constante de abertura desta na iteração anterior à
presente. O desempenho relativo dos dois métodos de linearização foram
comparados através da máxima discrepância entre a vazão e o vazamento em
iterações consecutivas e o método proposto pelo artigo leva a uma convergência
melhor. O artigo também levou em conta que a minimização dos vazamentos na rede
não poderia interromper a continuidade do abastecimento aos consumidores. Para
isto, foi incorporado ao programa linear restrições exigindo que as cargas nos nós se
mantivessem acima de valores mínimos especificados.
A pesquisa teve como pontos baixos utilizar a equação de Hazen-Williams
para relacionar as vazões e as perdas de carga. Esta equação não é realmente válida
para os regimes de escoamento existentes e além disto, hoje em dia ela não é muito
utilizada. A pesquisa desenvolvida utilizou uma equação que relaciona o vazamento
com a pressão média de serviço baseada em dados experimentais, o que reduz a
aplicabilidade do algoritmo, pois em outras circunstâncias a equação não representa a
44
realidade. Além disto, a maioria das redes de distribuição de água não tem uma
relação vazamento-pressão calibrada disponível. O algoritmo também não levou em
conta a locação das válvulas.
Perera; Codner (1996) desenvolveram uma metodologia genérica usando
programação dinâmica estocástica (PDE) para determinar as regras de operação em
termos de metas de funcionamento dos reservatórios para sistemas urbanos de
suprimento de água. A PDE foi usada porque além de produzir teoricamente a
solução ótima global, ela considera a distribuição de probabilidade teórica para os
fluxos de água no sistema. A metodologia foi aplicada ao sistema urbano de
suprimento de água de Melbourne na Austrália.
A PDE é usada para determinar a operação ótima de um sistema urbano de
suprimento de água com vários reservatórios. A operação ótima produz volumes de
armazenamento no final de um período para vários estados de afluência e
armazenamento no início do período. Estes volumes de armazenamento no final do
período são analisados para deduzir as curvas de armazenamento alvo. Neste artigo,
as curvas de armazenamento alvo são apresentadas como uma distribuição de
probabilidade para cada armazenamento total do sistema que pode ser descrita pela
média (chamada de curva de armazenamento alvo) e o desvio padrão de volumes de
armazenamento individuais.
As curvas de armazenamento alvo especificam a distribuição espacial dos
volumes de armazenamento de cada reservatório dentro de um sistema de vários
reservatórios. Elas podem ser um conjunto de curvas para um ano ou curvas
diferentes para cada estação do ano. Para ilustrar o conceito de curva de
armazenamento alvo, vamos considerar um sistema com dois reservatórios. Para um
dado armazenamento total do sistema At em um dado período, as curvas de
armazenamento alvo especificam os volumes de armazenamento nos reservatórios 1
e 2 como A1 e A2 respectivamente, onde a soma de A1 e A2 é igual a At. As curvas de
armazenamento alvo são definidas para todo o intervalo de armazenamento total do
sistema, fornecendo os volumes de armazenamento preferenciais de reservatórios
individuais, podendo ser ótimos ou não. Existe uma região factível para as curvas de
armazenamento alvo, que é igual à diferença entre a capacidade máxima de
45
armazenamento total do sistema e a capacidade máxima de armazenamento do
reservatório.
A interpretação das curvas de armazenamento alvo é importante para
entender como a água é armazenada em um sistema com vários reservatórios, quando
a afluência durante um passo da simulação é maior que a demanda ou vice-versa. Por
causa do excesso (falta) de água (diferença entre a afluência e a demanda no sistema
total ou entre a demanda e a afluência), o armazenamento total do sistema aumenta
(diminui) e as curvas de armazenamento alvo determinam onde este excesso (falta)
de água deverá ser armazenado (distribuído). Isto é explicado pela comparação do
gradiente da curva de armazenamento alvo de um reservatório com o da curva de
armazenamento total.
Um programa foi desenvolvido para determinar as curvas de armazenamento
alvo para sistemas urbanos de suprimento de água com qualquer configuração. Para
isto, um programa utilizando a teoria de Programação Linear (PL) foi utilizado para
calcular a distribuição da água no sistema a partir das afluências fornecidas, as
demandas e o armazenamento inicial e final nos reservatórios. Este programa utilizou
uma função objetivo de minimização do custo total sujeita às restrições de
capacidade de transporte de água nos tubos. Depois o programa desenvolvido
utilizou a PDE e proveu a operação ótima para uma versão simplificada do sistema
urbano de água de Melbourne e os resultados foram usados para deduzir as curvas de
armazenamento alvo. A PDE utilizou a maximização da confiabilidade volumétrica,
que é definida como a relação entre o volume total fornecido em um período de
tempo pelo volume total de água demandado no mesmo período, como função
objetivo sujeita às restrições do sistema. Maximizar a confiabilidade volumétrica
reduz os déficits de demanda. Anteriormente, a confiabilidade volumétrica anual
mostrou ser uma função objetiva satisfatória para determinar a operação ótima de
sistemas de abastecimento de água urbanos (Perera (1985); Perera; Codner (1985)
apud Perera; Codner (1996)). Os autores utilizaram dois métodos, a adoção da
correlação cruzada dos fluxos de água e a aproximação corredor, para melhorar a
eficiência computacional.
Como foi dito anteriormente, a operação ótima produz volumes de
armazenamento no final de um período para vários estados de afluência e
46
armazenamento no início do período. Identificar e eliminar os estados infactíveis ou
improváveis, reduz o esforço computacional. Isto é possível quando os fluxos de
água tem uma alta correlação cruzada. Foi estudado que se o fluxo de água está em
um local em um intervalo i, então o fluxo de água nos outros lugares estarão dentro
dos intervalos (i  N) com 90% de certeza e N é 25% do número de intervalos do
fluxo de água no local i. Os intervalos do fluxo de água foram definidos baseando-se
no critério de probabilidade igual, considerando cada seqüência histórica do fluxo de
água como uma série independente. Isto se chama adoção da correlação cruzada dos
fluxos de água.
A aproximação corredor foi desenvolvida com base no método de
programação dinâmica diferencial discreta de Heidari et al (1971) apud Perera;
Codner (1996). Se um estado de afluência e de armazenamento é necessário para
otimizar a função objetivo em um estágio, um armazenamento inicial é selecionado
para o estágio anterior. Um corredor é colocado ao redor do volume de
armazenamento inicial e a otimização é realizada com respeito às possíveis
combinações do armazenamento inicial dentro do corredor, considerando todos os
intervalos do fluxo de água no estágio anterior. O volume de armazenamento que
fornece o valor ótimo do estado dentro do corredor é comparado com o volume de
armazenamento inicial. Se eles são diferentes, o novo volume de armazenamento é
considerado como o novo volume de armazenamento inicial e o procedimento é
repetido. Se os volumes de armazenamento são os mesmos, o valor ótimo para este
estado é alcançado e o procedimento é realizado para outros estados do sistema.
A pesquisa teve como pontos altos desenvolver um programa geral, que pode
ser aplicado a qualquer configuração de sistema, além disto, o programa utilizou uma
nova função objetivo e modificou a relação recursiva que é utilizada pela PDE para
os sistemas urbanos de suprimento de água. Outro ponto, é que as curvas de
armazenamento alvo obtidas ficaram logicamente corretas em termos de distribuição
temporal e espacial do fluxo de água no sistema e a demanda do sistema.
A pesquisa teve como pontos baixos usar uma versão simplificada do sistema
urbano de suprimento de água de Melbourne e com isto não obteve o ótimo global
para o sistema verdadeiro, além disto, a aproximação corredor não foi testada com
outras funções objetivo.
47
Dandy;
Simpson;
Murphy
(1996)
desenvolveram
uma
formulação
aperfeiçoada de algoritmo genético para otimização de redes hidráulicas. O AG usa
uma escala de potência variável da função de ajuste. O expoente introduzido na
função de ajuste cresce em magnitude à medida que o computador realiza os cálculos
com o AG. Foi introduzido um operador de mutação de adjacência e foi utilizado o
código Gray para representar o conjunto de variáveis que compõem o projeto de uma
rede hidráulica. Os resultados da nova formulação foram comparados aos da
formulação tradicional para o problema dos túneis de Nova York. Os resultados
mostraram que o novo AG se desempenhou significativamente melhor que o
tradicional. O novo AG levou a uma solução melhor que os métodos tradicionais
anteriormente usados como a programação linear, a programação dinâmica, a
programação não-linear e o método de pesquisa enumerativa.
Reis; Porto; Chaudhry (1997) testaram um algoritmo genético para a locação
de válvulas de controle e suas aberturas em uma rede de abastecimento de água para
obter a máxima redução de vazamento para níveis de reservatório e demandas nodais
dadas. Foi mostrado que as válvulas otimamente locadas em uma rede são muito
mais efetivas em produzir uma redução máxima do vazamento. Reis; Porto;
Chaudhry (1997) simularam vários padrões de demanda e concluíram que o
vazamento em uma rede com válvulas otimamente locadas é praticamente
independente da demanda total. Um estudo do efeito da variação de demandas na
locação ótima das válvulas indicou várias combinações de locações das válvulas para
os diferentes padrões espaciais de demandas nodais e para diferentes demandas
totais.
Savic; Walters (1997) desenvolveram um modelo de computador chamado
GANET que envolve aplicação de AG para o problema de mínimo custo para
projetos de redes de abastecimento de água. Para mostrar a capacidade do GANET,
os autores resolveram três problemas anteriormente publicados e descobriram
inconsistências nas predições do desempenho da rede causadas pelas diferentes
interpretações do método de Hazen-Williams adotado nos estudos anteriores.
Wardlaw; Sharif (1999) exploraram o potencial de formulações alternativas
dos algoritmos genéticos aplicadas a sistemas de reservatórios e a problemas de
horizonte finito determinístico em particular.
48
Os AGs podem ser estabelecidos de muitas maneiras, mas até agora há pouca
informação na literatura a respeito do tipo de formulação mais apropriada para
sistemas de reservatórios. Este artigo se volta para esta oportunidade através da
aplicação de AGs ao bem conhecido problema dos quatro reservatórios Larson
(1968) apud Wardlaw; Sharif (1999). Este problema se tornou um marco para
algoritmos de otimização de sistemas de recursos de água. Este problema dos quatro
reservatórios já foi resolvido por Esat; Hall (1994) apud Wardlaw; Sharif (1999)
através de AG, mas este artigo estendeu o trabalho de Esat; Hall (1994) apud
Wardlaw; Sharif (1999) por considerar várias abordagens diferentes para a
formulação do AG, junto com um intervalo de análise de sensibilidade. O artigo
também considerou o potencial do AG em operações de reservatórios em tempo real
com previsões estocásticas de entrada de água. O AG também foi aplicado ao
problema dos quatro reservatórios com horizonte de tempo estendido, a um problema
com dez reservatórios e ao problema dos quatro reservatórios utilizando
equacionamento não-linear.
No problema dos quatro reservatórios, os fornecimentos de água do sistema
são usados para irrigação e geração hidrelétrica. A geração hidrelétrica é possível
para cada reservatório e todas as descargas passam através das turbinas. A defluência
do reservatório quatro pode ser dividida para ser usada na irrigação. Os benefícios da
irrigação e da geração hidrelétrica são quantificados por funções lineares de
descarga. O objetivo é maximizar os benefícios provenientes do sistema sobre 12
períodos de operação de 2 horas cada. Há afluências somente para o primeiro e
segundo reservatórios e estas são 2 e 3 unidades respectivamente em todos os
períodos. O armazenamento inicial em todos os reservatórios é de 5 unidades. Para
os reservatórios de um a três, o armazenamento deve ficar entre 0 e 10 unidades e
para o quatro entre 0 e 15 unidades. As defluências dos reservatórios através das
turbinas deve ficar entre 0 e 3 unidades para o reservatório um, entre 0 e 4 unidades
para os reservatórios dois e três e entre 0 e 7 unidades para o reservatório quatro. Há
armazenamentos alvos finais para todos os reservatórios. Há 5 unidades para os
reservatórios um a três e sete unidades para o reservatório quatro. Uma função de
penalidade baseada no armazenamento final de cada reservatório foi usada para se
alcançar os armazenamentos alvos finais nos reservatórios. Uma solução utilizando
49
programação linear foi produzida em uma planilha a título de comparação e foi
idêntica à encontrada por Larson (1968) apud Wardlaw; Sharif (1999).
O artigo utilizou três esquemas de representação para os cromossomos: (1)
código binário, (2) código de Gray e (3) código com valor real. No código binário,
inteiros, números reais ou qualquer coisa apropriada ao problema são codificados
pelos bits de um cromossomo. No código de Gray, a representação binária de dois
valores de variáveis adjacentes têm somente um dígito binário diferente. Isto é feito
para evitar variações muito grandes nos valores das variáveis entre as gerações, a fim
de facilitar a convergência para uma boa solução. No código com valor real, os
valores das variáveis são colocados aleatoriamente em cada gene, dentro dos limites
factíveis da variável representada.
O artigo trabalhou com mutação uniforme, que permite que o valor de um
gene seja mudado aleatoriamente dentro de uma faixa de valores próprios factíveis e
com mutação uniforme modificada, que permite a modificação do valor do gene por
uma quantidade especificada, podendo esta ser negativa ou positiva.
O artigo trabalhou com “crossover” em um ponto, onde um ponto de
“crossover” é selecionado aleatoriamente entre dois cromossomos selecionados em
um ponto “c” no comprimento “L” do cromossomo e dois novos são formados por
trocar todos os genes entre as posições “c” e “L”, “crossover” em dois pontos, onde o
material genético é trocado entre duas posições escolhidas aleatoriamente no
comprimento do cromossomo e “crossover” uniforme, onde cada gene do
cromossomo é considerado por vez para realizar o “crossover”.
A seleção dos indivíduos para participarem no processo de reprodução foi
feita através de um esquema chamado seleção por sorteio. Neste esquema, um grupo
de indivíduos é escolhido aleatoriamente da população e o indivíduo com maior
adequação, que neste artigo foi expressa como uma proporção do resultado ótimo
conhecido para o problema dos quatro reservatórios, é selecionado para inclusão na
próxima geração. O procedimento é repetido até que o número apropriado de
indivíduos sejam selecionados para a nova geração. A seleção foi desenvolvida
inicialmente com grupos de dois indivíduos, mas o artigo utilizou grupos maiores por
produzir uma maior diversidade e uma progressão mais suave para a solução.
50
A análise de sensibilidade foi feita para estabelecer conjuntos de parâmetros
apropriados para os três esquemas de representação. Na sensibilidade para o
“crossover” e na sensibilidade para a mutação, o código com valor real teve maior
adequação que os outros dois. A probabilidade de “crossover” variou entre 0,5 e 0,95
e o número de mutações variou entre 0,1 e 10 e a probabilidade entre 0,002 e 0,208.
Para o problema dos quatro reservatórios, foi encontrada uma solução muito
próxima ao ótimo global conhecido para uma população de 100 cromossomos e 500
gerações e para uma população de 200 cromossomos e 500 gerações ou para uma
população de 100 cromossomos e 750 gerações, o ótimo global foi achado.
Concluiu-se que a codificação com valores reais, incorporando a seleção por sorteio,
elitismo (técnica que assegura que o melhor indivíduo de uma população não é
perdido entre gerações e desta forma uma adequação melhor e maior é mantida em
todas as representações), “crossover” uniforme e mutação uniforme modificada
produz os melhores resultados. Uma probabilidade de “crossover” de 0,70 é
apropriada para este problema e a probabilidade de mutação deve ser baseada em
uma mutação por cromossomo. Neste problema, a mutação uniforme modificada foi
usada com todos os esquemas de “crossover” e o “crossover” uniforme foi usado
com todos os esquemas de mutação.
Para o problema dos quatro reservatórios modificado, uma relação de carga
não-linear foi introduzida em cada reservatório e a função objetivo foi modificada
em função disto. Para este problema, o código computacional utilizado no problema
dos quatro reservatórios não foi modificado com exceção da função de avaliação. O
problema foi resolvido também com Programação Dinâmica Diferencial Discreta
(PDDD) e os resultados encontrados foram os mesmos, mas o AG foi três vezes mais
rápido que a PDDD e alcançou a maior adequação com uma população de 100
cromossomos e 460 gerações
Para o problema dos dez reservatórios o objetivo era maximizar a produção
hidrelétrica e havia reservatórios em série e em paralelo. O problema foi equacionado
da mesma forma que o problema dos quatro reservatórios com valores próprios. O
problema foi resolvido utilizando o mesmo código computacional do problema dos
quatro reservatórios. Uma solução utilizando programação linear foi também
produzida em uma planilha a título de comparação. Os resultados foram similares,
51
mas o AG foi oito vezes mais lento que a PL e utilizou uma população de 500
cromossomos e 2500 gerações, entretanto, o tempo de execução do AG não seria
influenciado pela introdução de constantes ou funções objetivo não-lineares. Este
problema já havia sido resolvido por Murray; Yakowitz (1979) apud Wardlaw;
Sharif (1999) utilizando Programação Dinâmica Diferencial e o resultado encontrado
pelo AG foi bem próximo ao destes autores.
O problema dos quatro reservatórios foi resolvido com horizonte de tempo
estendido para até 96 períodos utilizando AG e PDDD. Os resultados foram
similares. O AG utilizou populações de 100 e 200 cromossomos. Os resultados
mostraram que uma população maior produz uma adequação global maior, embora o
número de gerações requerido para uma população maior foi muito similar ao
requerido com uma população menor. A deterioração da adequação para horizontes
de tempo mais longos é insignificante. O número de gerações utilizado em cada
análise (12, 24, 36, 48, 60, 72, 84 e 96) foi aquele requerido pelo AG para convergir
para um estado no qual a mudança na adequação após 100 gerações é menor que
0,025%.
O artigo teve como pontos altos o fato de ter aplicado o AG para resolver
vários tipos de problema envolvendo sistemas de reservatórios como variação no
número de reservatórios, equacionamento linear e não-linear e horizonte de tempo
estendido e comparar com outras soluções clássicas utilizando programação
dinâmica e linear. O artigo também considerou o potencial do AG em operação de
reservatório em tempo real com previsão estocástica de entrada de água. Além disto,
os autores concluíram que o AG é facilmente aplicado a problemas não-lineares e a
sistemas complexos e produz resultados aceitáveis para problemas com horizonte de
tempo estendido.
O artigo teve como ponto baixo não utilizar o AG em um sistema real de
reservatórios. O artigo não fez uma aplicação prática do AG.
Morshed; Kaluarachchi (2000) desenvolveram três métodos potenciais para
realçar o algoritmo genético. Estes três métodos são o fitness reduction method
(FRM) para lidar com as restrições, o search bound sampling method (SBSM) para
amostrar os limites de pesquisa com uma maior probabilidade e o optimal resource
allocation guideline (ORAG) para alocar recursos computacionais. Foi observado
52
que estes métodos realçaram o algoritmo genético usado para resolver um problema
de manuseio de água subterrânea tirado de McKinney; Lin (1994) apud Morshed;
Kaluarachchi (2000). Foram tiradas quatro conclusões: (1) O AG com o FRM mostra
pouca sensibilidade ao coeficiente de penalidade quando este tem um grande
intervalo de variação e o FRM parece realçar a eficiência do AG no manejo das
restrições. (2) O AG com o SBSM mostra pouca sensibilidade ao coeficiente de
extensão (do intervalo de pesquisa) quando este tem um grande intervalo de variação
e o SBSM parece realçar a precisão do AG em amostrar os limites de pesquisa
adequadamente. Em particular, o SBSM parece realçar o AG na solução de
problemas com custos fixos. (3) O AG com o ORAG parece prover alguma garantia
de convergência e o ORAG parece realçar a confiabilidade do AG para um dado
recurso computacional. (4) O AG com o FRM e o SBSM mostra pouca sensibilidade
ao tamanho do cromossomo, ao custo, à probabilidade de crossover, à probabilidade
de mutação e ao valor inicial usado pelo gerador de números aleatórios uniformes.
Em particular, a precisão do AG é marginalmente aumentada do quase-ótimo ao
ótimo global através do ajuste de qualquer um destes parâmetros e aí parece haver
pouca necessidade de se aventurar em uma análise de larga escala para alcançar este
aumento de precisão.
Simpson; Dandy; Murphy (1994) utilizaram um algoritmo genético para
otimização de redes de distribuição de água. O AG utilizado tinha três operadores a
saber: reprodução, crossover e mutação. Utilizou-se o código binário para representar
as variáveis de decisão desconhecidas. Os resultados foram comparados com as
técnicas de enumeração completa e programação não-linear. As técnicas de
otimização foram aplicadas a uma rede de distribuição de água de um estudo de caso
tirado de Gessler (1985) apud Simpson; Dandy; Murphy (1994). Os custos das redes
calculados pelas técnicas de otimização utilizadas são em dólares americanos.
A rede de distribuição utilizada tinha algumas características tais como:
seleção dos diâmetros de cinco novos tubos a serem acrescentados na rede, três tubos
existentes podem ser limpos, duplicados ou mantidos do mesmo jeito, três padrões de
demanda de vazão (incluindo dois casos de carga para incêndio) e as cargas de
pressão mínimas associadas a estas demandas para cada nó da rede devem ser
satisfeitas e existem dois reservatórios. Apesar de no problema original existirem
53
apenas seis alternativas para o tamanho dos diâmetros dos tubos, os autores
adicionaram mais dois diâmetros maiores que os existentes para constituir oito
alternativas para cada variável de decisão para a formulação do AG. Estas oito
alternativas foram utilizadas nas outras duas técnicas de otimização.
A enumeração completa é uma aproximação para a otimização das redes de
distribuição de água. A técnica simula toda combinação possível de tamanhos
discretos de diâmetros de tubos. Seleciona-se a rede com o custo menor que satisfaça
as restrições de pressão. Este método acha o ótimo global, mas para problemas com
redes grandes esta técnica seria impraticável mesmo no computador mais rápido. A
enumeração completa aplicada à rede do estudo de caso fez aproximadamente
11.940.000 análises hidráulicas e o computador levou mais de 82 horas para realizar
as análises. O computador encontrou duas alternativas de redes com o mínimo custo
cujos valores são de 1.750.300 dólares para ambas. Gessler (1985) apud Simpson;
Dandy; Murphy (1994) utilizou apenas seis tamanhos diferentes de diâmetro e
encontrou uma rede com custo mínimo de 1.833.700 dólares.
Os autores utilizaram um pacote de otimização não-linear chamado GINO,
que utiliza um método de gradiente reduzido generalizado para resolver problemas
de otimização não-linear e assumiram que tamanhos contínuos de diâmetros estavam
disponíveis para todos os tubos. A otimização não-linear foi a técnica de otimização
aplicada à rede do estudo de caso mais rápida em alcançar o menor valor de custo
para rede. O computador levou apenas 6,8 minutos para alcançar um valor de
1.760.000 dólares. Precisa-se ajustar uma função de custo para os tubos devido aos
valores discretos dos diâmetros e isto pode levar a algumas imprecisões. O projetista
teria também que arredondar para cima ou para baixo os valores contínuos dos
diâmetros encontrados na solução para os valores discretos mais próximos. Rodadas
adicionais do computador são requeridas para assegurar que a solução dos valores
arredondados realmente satisfaça as restrições de pressão. Depois que os autores
utilizaram os valores dos diâmetros arredondados, eles chegaram ao valor de
1.750.300 dólares para a rede. Para sistemas maiores, o processo de arredondamento
se torna um segundo problema de otimização.
Os autores utilizaram um cromossomo de 24 bits para representar cada
indivíduo da população. Cada uma das variáveis de decisão, que eram oito tubos
54
tirados da rede do estudo de caso, era representada por uma sub-série binária de três
bits, sendo que cada sub-série representava oito possíveis alternativas (tabeladas
pelos autores) para cada variável de decisão. A função objetivo tinha que achar a
configuração de rede com o mínimo custo. A função de adequabilidade para cada
indivíduo era calculada como o inverso do custo total da rede. A população variou
entre 20 e 150 indivíduos. A nova geração de indivíduos foi gerada pelo esquema de
seleção aleatória ponderada. A probabilidade do crossover foi de 70%. A
probabilidade de mutação foi de 1%. A função de penalidade para cada rede testada
levou em conta a não satisfação do limite de pressão mínimo no pior nó da rede. Foi
desenvolvido um programa de computador em PASCAL do AG com três operadores
acoplado com um programa de cálculo de rede que utiliza o método de NewtonRaphson. Foram realizadas dez rodadas do AG usando diferentes números aleatórios
gerados como ponto de partida. Foi permitido um máximo de 50.000 avaliações de
função (0,298% das 16.777.216 combinações possíveis) para cada rodada. Os autores
descobriram que o AG foi particularmente efetivo em achar as soluções de ótimo
global ou ótimo próximo. O AG requereu somente um número relativamente
pequeno de avaliações para achar a solução ótima. O computador levou 45 minutos
para realizar 50.000 avaliações para cada uma das 10 rodadas do AG. Este tempo é
comparativamente longo. Entretanto, o AG foi ainda efetivo em achar o ótimo global
para 15.000 avaliações para cada rodada. Uma dificuldade com a técnica do AG é
saber quantas avaliações serão suficientes. Pode-se também encontrar dificuldades se
uma variável contínua precisa ser representada com um código binário,
especialmente se for valores numéricos grandes.
Os autores concluíram que a enumeração completa só é aplicável a redes de
distribuição com poucos tubos. A otimização não-linear é uma técnica efetiva
quando aplicada a pequenas expansões de rede como no estudo de caso analisado
neste artigo, mas o problema de arredondamento dos valores contínuos dos diâmetros
encontrados na solução para os valores discretos mais próximos deve ser
considerado. A programação não-linear gera somente uma solução. O AG gera várias
soluções alternativas próximas do ótimo e uma destas soluções pode realmente ser
preferida à solução ótima baseada em outras medidas não quantificáveis. Este é o
maior benefício do AG.
55
Um dos pontos altos do artigo é o fato de que os autores não só ampliaram o
estudo de caso ao adicionarem dois novos diâmetros como conseguiram uma solução
ótima melhor que a original. Outro ponto alto foi que os autores compararam o AG,
que é uma técnica relativamente nova a outras duas técnicas e conseguiram chegar às
mesmas soluções ótimas. Um ponto baixo da pesquisa é utilizar a equação de
Hazen-Williams para relacionar as vazões e as perdas de carga. Esta equação não é
realmente válida para os regimes de escoamento existentes e além disto, hoje em dia
ela não é muito utilizada. Outro ponto baixo da pesquisa é que não foi avaliada uma
rede maior e/ou uma outra rede, assim não é possível saber se o AG seria tão
eficiente em outras configurações de rede.
56
3 Método
3.1 Método matricial para cálculo de rede de distribuição de água
Neste trabalho será apresentado o método matricial para o cálculo de redes de
distribuição de água. Trata-se de um método que permite o cálculo de vazões e da
distribuição da pressão em uma rede, tanto em regime permanente quanto transitório.
Este método leva grande vantagem sobre o método de Cross pelo fato deste
último não permitir o cálculo das situações transitórias que ocorrem, por exemplo,
durante a abertura e fechamento de uma válvula, partida e parada de uma bomba,
rompimento de uma tubulação, etc.
Serão adotadas as seguintes hipóteses simplificadoras:
1. Fluido incompressível;
2. Escoamento turbulento e isotérmico;
3. Tubo rígido;
4. O coeficiente “f” para o cálculo da perda de carga em regime transitório será o
mesmo do regime permanente para uma mesma vazão;
3.1.1 Formulação matemática para o regime permanente
Figura 2 – Esquema de uma rede de distribuição
57
A fig. 2 anterior é um esquema de uma rede de distribuição constituída de 4
(quatro) nós e 6 (seis) trechos, onde as setas indicam os sentidos positivos dos
escoamentos.
Define-se matriz de conexão, constituída de elementos +1, -1 e 0, do
seguinte modo: cada trecho da rede corresponde a uma linha da matriz e cada nó da
rede corresponde a uma coluna da matriz. Um elemento Cij da matriz de conexão
poderá ter os seguintes valores:
Cij = 0  Se o trecho i não tem conexão com o nó j;
Cij = -1  Se o trecho i tem conexão com o nó j e o escoamento do trecho chega ao
Nó;
Cij = 1  Se o trecho i tem conexão com o nó j e o escoamento do trecho emana
do nó;
Para o exemplo de rede indicado anteriormente a matriz de conexão é:
(1) (2) (3) (4)  nó
(1)
-1
0
0
0
(2)
1
-1
0
0
(3)
1
0
-1
0
(4)
0
1
-1
0
(5)
0
1
0
-1
(6)
0
0
1
-1
= [C]

trecho
Na fig. 2, nota-se que o trecho 1 está conectado somente a um nó e não a dois
nós como os demais trechos. Este trecho na realidade não existe na rede, ele é
fictício. A criação deste trecho fictício é necessária para se montar a matriz de
conexão de forma correta. Pode-se notar que a primeira linha da matriz de conexão é
diferente das demais, pois enquanto as demais linhas são compostas por três
58
diferentes algarismos, a saber, (1), (-1) e (0), a primeira linha da matriz é composta
apenas por dois algarismos, a saber, (1) ou (-1) e (0).
A matriz M (definida mais adiante), que é criada a partir da matriz de
conexão e outras duas matrizes, deverá ser invertida. Caso não se introduza esta
primeira linha na matriz de conexão, o valor do determinante de M se iguala a zero,
tornando a inversão de M impossível.
Na realidade, este trecho fictício, que é conectado a apenas um nó, não
precisa ser definido como o primeiro trecho da rede. Ele poderia ser definido em
qualquer lugar, mas devido às características internas do programa que foi
desenvolvido neste trabalho, torna-se necessário que este trecho fictício seja definido
como o primeiro trecho da rede, caso contrário, o programa não funcionará.
O método baseia-se em três equações escritas em forma matricial. A eq.(3)
relaciona a diferença de carga piezométrica de um trecho com as cargas
piezométricas nos nós extremos do referido trecho:
P 
P
   C  
 g 
 g 
(3)
A eq.(4) do método é a da continuidade escrita em forma matricial para os
nós:
C Q Q  0
T
(4)
es
A eq.(5) é a da quantidade de movimento em forma de diferenças finitas
(matricial):
 D 2

 4
 v  v 0   D 2
D 2
  P
L
 g
4
4
 t  

D 2
D 2
 Z 
L


gH


g

H
 Fav  (5)

v
4
4
 L 

A força de atrito viscoso Fav é dada matricialmente por:
59
  8 fL' Q 0 Q 0
Fav    g  2 5
  D g

 
 D 2 



 4 

(6)
Pela substituição de{Fav}, dado pela eq.(6), na eq.(5) e levando-se em conta
que v = Q/(D2/4), a eq.(5) transforma-se em:



 8 fL' Q 0 Q 0
 Q  Q 0  D 2  g   P
 Z  H  H v  
 


  2 D5 g

t
4
L

g
 

 



 
 
 
 

(7)
O fator de atrito f pode ser calculado pela fórmula de Swamee (matricial):
1
6 16 8
 64 8
  K
5,62   2500   
 

 f      9,5ln 
 0, 9   
  
R
  3,71D R   R   



(8)
Resolve-se a eq.(7) para Q, obtendo-se:
Q  Q 0   P  Z  H  H v  Pc 

g

(9)
onde:

D 2 gt
Pc 
4L
8 fL' Q 0 Q 0
 2 D5g
(10)
(11)
Substituindo-se a matriz coluna {P/(g)} da eq.(3) na eq.(9) e substituindose o resultado na eq.(4), chega-se a:
60
C Q  C *  * C  Pg   C Z  H  H
T
0
T
T


v
 Pc   Qes   0
(12)
Resolvendo-se a eq.(12) para{P/(g)}, chega-se a:
 
P
1
1
T
0
   M  C  Z  H  H v  Pc  Q  M  Qes 

g
 

(13)
onde M  é uma matriz quadrada, definida como:
M   C T *  * C 
(14)
A matriz [] é uma matriz diagonal tendo os valores de  (dos trechos) em
sua diagonal e zeros nas demais posições.
A solução numérica do problema pode ser obtida pela resolução das eqs.(13),
(3) e (9) em um computador digital. Os dados de entrada para esta análise são: a
topologia da rede, as dimensões geométricas, as propriedades hidráulicas, as
condições iniciais do problema e as variáveis de controle.
É necessário observar que apesar do equacionamento anterior prever a
presença de bombas e de válvulas na rede durante o cálculo do regime permanente, o
programa calcula o regime permanente da rede como se houvesse apenas tubos e
vazões de entrada e saída nos nós, podendo ou não haver reservatório(s) com
nível(eis) constante(s). Este procedimento foi adotado para se ter uma idéia de como
seria o funcionamento ideal da rede, como se ela estivesse sendo projetada. As
bombas e válvulas podem ou não (depende do usuário) ser consideradas durante o
cálculo do regime extensivo, que será definido a seguir.
Os cálculos numéricos podem ser convenientemente divididos em dois
grupos. O primeiro grupo é composto pelas operações matemáticas realizadas uma
única vez no início do programa. A matriz de conexão, a sua transposta, a matriz
diagonal , as diferenças de cota entre os nós que limitam os trechos, a formação da
matriz M definida na eq.(14) e sua inversa, o intervalo de tempo, que obedece a
condição de Courant, assim como o cálculo de todos os termos independentes da
61
vazão, presentes nas eqs.(13) e (9), fazem parte do primeiro grupo. O segundo grupo
consiste de operações iterativas realizadas após cada incremento de tempo. O cálculo
das perdas de carga nos trechos, de altura manométrica da bomba, assim como o
cálculo dos termos dependentes da vazão nas eqs.(13) e (9) fazem parte do segundo
grupo.
Uma observação importante é que não será necessário realizar os cálculos
numéricos do primeiro grupo novamente, quando se for calcular os regimes
extensivo e transitório. Os cálculos numéricos deste grupo servem para todos os
regimes e só precisam ser realizados uma vez.
Para se iniciar o cálculo é conveniente a adoção de vazões nos trechos que
satisfaçam a equação de continuidade em cada nó para diminuir o número de
iterações.
3.1.1.1 Diagrama de blocos do regime permanente
Figura 3 – Diagrama de blocos para o regime permanente
62
3.1.2 Formulação matemática para o regime extensivo
O anexo 1 apresenta o desenvolvimento matemático completo para o regime
extensivo.
Após o cálculo do regime permanente, inicia-se o cálculo do regime
extensivo podendo-se considerar ou não as operações dos dispositivos da rede
(válvulas e bombas) e a presença ou não de reservatórios. Para se calcular o regime
extensivo, divide-se o dia em períodos. O número de períodos do dia é definido pelo
próprio usuário e pode variar de 1 a 24, considerando-se cada período igual a 1 hora.
O cálculo do regime extensivo utiliza o mesmo equacionamento do regime
permanente, pois o final de cada período corresponde ao regime permanente daquele
instante com suas próprias características.
O que diferencia o regime extensivo do permanente é o fato de que agora, as
vazões de entrada e saída da rede podem variar de um período para o outro, pode
haver bombas e/ou válvulas na rede e os reservatórios variam os níveis d‟água. As
características das bombas e das válvulas, os valores das vazões de entrada e saída da
rede para cada período e o nível máximo e mínimo da lâmina d‟água dos
reservatórios são dados de entrada. A variação da lâmina d‟água é calculada pela
equação da continuidade:
H A  tQe  tQs 
(15)
No regime extensivo, para se calcular cargas piezométricas nos nós da rede,
adiciona-se a eq.(15) multiplicada por M 1 à eq.(13):


P
0
1
1  T 
1
   M HA  M C   Z  H  Hv  Pc  Q  M Qes  (16)


 g 
Após isto, a solução numérica do problema é obtida utilizando-se as eqs.(3) e
(9).
63
3.1.2.1 Diagrama de blocos do regime extensivo
Figura 4 – Diagrama de blocos para o regime extensivo
3.1.3 Formulação matemática para o regime transitório
O anexo 1 apresenta o desenvolvimento matemático completo para o regime
transitório.
Após obterem-se os valores para as vazões nos tubos e as pressões nos nós de
uma rede de distribuição de água qualquer para um período qualquer do regime
extensivo, calculam-se os coeficientes Ces para os nós que têm demanda de água e, a
seguir, monta-se uma matriz diagonal [Ces] tendo os valores de Ces em sua diagonal e
zeros nas demais posições com a seguinte equação:
64
  P  
   C es   Q es 
  g  
(17)
No regime transitório, as pressões nos nós e as vazões nos tubos variam
quando ocorre alguma manobra na rede, por isto as vazões de entrada e saída dos nós
da rede Qes neste regime serão calculadas usando a hipótese de foronomia com a
seguinte equação:
  P  
es
 
  g  
Qes *  C es 
(18)
Obs: os valores dos coeficientes Ces usados na eq.(18) são os mesmos do regime
permanente, pois assumiu-se que a variação destes valores é muito pequena. Além
disto, os valores de Ces são pequenos também.
No regime transitório, para se calcular cargas piezométricas nos nós da rede,
utiliza-se a eq.(19), desenvolvida a partir da eq.(13):


*
P
 Pes 
*
0
1
*
1  T 
*
1
   M H A M C   Z  H  Hv  Pc  Q  M Ces    (19)


 g 
 g 
Para se calcular a diferença de carga piezométrica em cada um dos trechos da
rede no regime transitório, multiplica-se a matriz de conexão [C] pelos valores das
cargas piezométricas nos nós calculadas na eq.(19) através da eq.(20):
*
P 
P
   C  
 g 
 g 
*
(20)
No regime transitório, para se calcular vazões nos tubos da rede, utilizam-se
as diferenças de cargas piezométricas calculadas na eq.(20):
65
Q* 
Q0   gP *  Z  H*  Hv*  Pc 


(21)
3.1.3.1 Diagrama de blocos do regime transitório
Figura 5 – Diagrama de blocos para o regime transitório
3.2 Definições gerais para aplicação do algoritmo genético
3.2.1 Parâmetros
A aplicação do algoritmo genético utilizado começa com o usuário definindo
parâmetros como tamanho da população (deve ser par), número de variáveis (igual
ao número de intervalos de tempo vezes o número de válvulas), o intervalo das
variáveis, tamanho do gene (todos os genes têm o mesmo tamanho), tamanho do
cromossomo (igual ao número de variáveis vezes o tamanho do gene), o número de
66
gerações (cada geração tem o número de indivíduos da população), a probabilidade
de recombinação (crossover), a probabilidade de mutação, se vai haver elitismo (s/n)
e o fator de escala (se for igual a zero, a escala de adequação não é aplicada).
3.2.1.1 Variáveis
O número de variáveis é definido pelo usuário como sendo igual ao número
de intervalos de tempo vezes o número de válvulas por causa dos procedimentos
internos do AG. Isto é necessário, para que o AG possa gerar o número de variáveis
adequado ao problema a ser resolvido em cada ocasião. Na realidade, as variáveis
geradas pelo AG correspondem aos coeficientes de perda de carga (kv) das válvulas
para cada período de cálculo do regime extensivo. O cromossomo que representará
cada indivíduo da população será uma série de bits. Cada indivíduo será composto
por uma ou mais válvulas, onde cada coeficiente de perda de carga (k v) da válvula
será representada por uma sub-série (gene) de bits. Cada gene representará o
coeficiente (kv) da válvula para um período de cálculo.
Como já foi dito, o número de períodos do dia para se calcular o regime
extensivo poderá variar de 1 a 24, considerando cada período igual a 1 hora. Para
exemplificar, considera-se que uma rede de distribuição contenha uma válvula e que
esta válvula operará 24 vezes durante o dia, portanto, o cromossomo terá 24 genes.
1
2
24
Figura 6 – Esquema do cromossomo representando os coeficientes (kv) das válvulas
3.2.1.2 Definindo o intervalo das variáveis
O usuário deve definir os limites superior e inferior para as variáveis.
Diferentes problemas terão limites diferentes. Como neste trabalho as variáveis são
os coeficientes de perda de carga (kv) das válvulas, o usuário deverá colocar como
limites superior e inferior os coeficientes de perda de carga para a válvula fechada e
67
aberta, respectivamente. Logicamente, estes limites variarão conforme o tipo de
válvula utilizado.
3.2.2 Função objetivo
Pela análise bibliográfica feita, verificou-se que na maioria das aplicações dos
algoritmos genéticos em redes de distribuição de água, os autores utilizam como
função objetivo a minimização de algum custo.
Neste trabalho, decidiu-se utilizar como função objetivo a minimização da
soma das potências hidráulicas dissipadas na rede como um todo de todos os
períodos de cálculo do regime extensivo. Esta função objetivo é representada pela
seguinte equação:
tp
nt
Pmin  min  gQ ji H ji
(22)
j 1 i 1
3.2.3 Restrições
As restrições impostas serão os limites de carga piezométrica máxima e
mínima admissíveis na rede(nos nós) e os limites máximo e mínimo da lâmina
d´água nos reservatórios.
3.2.4 Função de penalidade
O anexo 1 apresenta o desenvolvimento matemático completo para se
calcular a função de penalidade.
Como foi dito anteriormente, a função objetivo deve minimizar a soma das
potências hidráulicas dissipadas na rede como um todo de todos os períodos de
cálculo. Além disto, as restrições impostas (já explicadas) devem ser respeitadas.
Caso as restrições não sejam respeitadas, aplicam-se penalizações à função objetivo.
As penalidades são aplicadas através de funções de penalidade. Neste
trabalho, a penalidade é calculada pela seguinte função:
68
f p 1
fp 
fp 
2Hp  Hpmáx  Hpmin 
Hpmáx  Hpmin 
2Hp  Hpmáx  Hpmin 
Hpmáx  Hpmin 
se
Hpmin  Hp  Hpmáx
(23)
se
Hp  Hpmin
(24)
se Hp  Hpmáx
(25)
Na prática, esta penalização será aplicada pela incorporação do valor de “fp”
na função objetivo. Assim, a eq.(22) fica da seguinte forma:
tp
nt
Pmin  min  f p gQ ji H ji
(26)
j 1 i 1
3.2.5 População inicial
A população inicial é criada através da geração aleatória de séries de zeros e
uns. “Randomize” é um procedimento do Pascal que gera números aleatórios. Se o
intervalo de variação para os números gerados não é especificado, o programa gera
números aleatórios decimais entre 0 e 1. “Random” é uma função que retorna um
número aleatório. Se “Random”>0.5, então o número “1” é colocado na série, caso
contrário, o número “0” é inserido na série.
3.2.6 Decodificando as variáveis
O AG utilizado gera as variáveis do problema através de números binários.
Como os coeficientes de perda de carga (kv) das válvulas são números reais, é
necessário fazer a transformação dos números binários em números reais. Esta
transformação é feita em duas etapas. Primeiro, o AG chama uma rotina para
transformar os genes escritos na forma binária em inteiros na base 10. Após esta
transformação, O AG chama uma outra rotina para transformar os genes escritos na
forma de inteiros na base 10 em reais. Esta transformação é feita através da seguinte
equação:
69
r r 
r   maxcl min  z  rmin
 2 1 
(27)
3.2.7 Classificação por adequação
3.2.7.1 Cálculo da adequação
Após as variáveis terem sido decodificadas, o AG chama uma outra rotina
que calcula a adequação de cada um dos indivíduos da população. A adequação de
cada indivíduo é calculada através da função objetivo, já definida anteriormente. As
adequações são sempre maiores ou iguais a zero.
3.2.7.2 Encontrando o indivíduo mais apto
Após o cálculo das adequações dos indivíduos, o AG chama uma rotina para
calcular a adequação média da população, a soma das adequações dos indivíduos
desta população e encontrar o indivíduo mais apto. Esta mesma rotina chama uma
nova rotina para aplicar o elitismo, caso o usuário tenha requerido.
3.2.7.2.1 Elitismo
Como já foi dito, o elitismo é uma técnica que assegura que o melhor
indivíduo de uma população não seja perdido entre gerações e desta forma uma
adequação melhor e maior é mantida em todas as representações, embora o elitismo
possa gerar uma rápida convergência e isto faz com que o AG falhe em achar o
ótimo global.
O elitismo neste AG funciona por substituir um indivíduo da nova população
escolhido aleatoriamente pelo membro de elite da população anterior se o indivíduo
com a máxima adequação da nova população tiver uma adequação inferior a do
indivíduo com melhor adequação (membro de elite) da população anterior.
70
O elitismo guarda uma cópia do indivíduo mais apto para evitar que ele seja
perdido durante a recombinação (crossover) ou mutação.
3.2.8 Resultados
Após a classificação por adequação, o AG chama uma rotina para imprimir
resultados. Esta rotina imprime valores referentes ao indivíduo mais apto de cada
geração, ou seja, os coeficientes de perda de carga (kv) de cada válvula instalada na
rede de distribuição de água para cada período de cálculo, a geração na qual estes
valores foram gerados e o valor da função objetivo (soma das potências hidráulicas
dissipadas na rede como um todo de todos os períodos de cálculo do regime
extensivo) da respectiva geração. Todos estes valores são impressos para todos os
indivíduos mais aptos de todas as gerações.
3.2.9 Escala de adequação linear
A escala de adequação linear é utilizada para evitar uma rápida convergência
da função objetivo, o que poderia provocar uma convergência errônea ou para um
ótimo local. A escala de adequação linear serve também para manter um grau de
pressão de seleção nos estágios finais.
A escala de adequação linear neste AG funciona por fazer a adequação dos
indivíduos da população girar nas imediações da adequação média desta população.
Isto permite que uma proporção aproximadamente constante de cópias dos melhores
indivíduos seja selecionada comparada com os indivíduos médios. Os valores típicos
do fator de escala variam no intervalo de 1 a 2. Quando o fator de escala é igual a 2,
significa que aproximadamente duas vezes o número de melhores indivíduos
passarão para a geração seguinte do que passarão os indivíduos médios. Para se
conseguir isto, a adequação de cada indivíduo da população terá que passar por um
escalonamento logo antes da seleção. Este escalonamento deve ser dinâmico. As
adequações precisarão ser mais próximas durante os estágios iniciais e mais
separadas durante as gerações posteriores. O escalonamento requerido é conseguido
através da transformação linear mostrada na eq.(30) a seguir:
71
a
c m  1 f ave
f max  f ave
(28)
b  1  a  f ave
(29)
f i s  af i  b
(30)
Esta transformação pode produzir adequações escaladas com valores
negativos para alguns indivíduos da população. Quando isto ocorre, o AG iguala a
zero os valores das adequações destes indivíduos. Como já foi dito, quando o fator de
escala é igual a zero, a escala de adequação não é aplicada.
O escalonamento é aplicado logo antes da seleção. Como os resultados são
impressos antes de se realizar o escalonamento, a adequação impressa (função
objetivo) é a verdadeira adequação, não a adequação escalonada.
3.2.10 Seleção
O AG usa a seleção aleatória ponderada com seleção através da analogia de
um mecanismo de roleta. Um número aleatório entre 0 e 1 é gerado e multiplicado
pela soma das adequações de todos os indivíduos da população. Após isto, as
adequações de cada indivíduo são somadas, uma a uma, até que esta soma seja igual
ou maior ao produto anterior. O último indivíduo a ser adicionado é então o
indivíduo selecionado para reprodução. Este mecanismo de seleção é aplicado duas
vezes para selecionar um par de indivíduos para reprodução. O processo de seleção
continua até o número de indivíduos selecionados seja igual ao tamanho da
população. É por isto que a população deve conter um número par de indivíduos,
caso contrário, sobraria um indivíduo e o AG não funcionaria corretamente.
3.2.11 Recombinação (crossover)
O AG começa gerando um número aleatório entre 0 e 1. Se este número é
menor ou igual à probabilidade de recombinação (definida pelo usuário), então a
72
recombinação ocorre nos cromossomos pais selecionados no processo de seleção
para produzir os cromossomos descendentes. Estes descendentes serão a nova
população temporária. Se o número gerado for maior que a probabilidade de
recombinação, os descendentes são clones dos seus respectivos pais.
O AG faz a recombinação por escolher um ponto aleatoriamente entre o
primeiro e o último bit dos cromossomos pais. Para escolher este ponto, o AG subtrai
1 do tamanho do cromossomo (definido pelo usuário), multiplica este resultado por
um número entre 0 e 1 gerado aleatoriamente, soma 1 a este resultado e arredonda
este resultado para o inteiro mais próximo.
3.2.12 Mutação
Após a recombinação, o AG chama uma rotina para percorrer a nova
população temporária inteira, passando por todos os bits de cada cromossomo da
população e gerando um número aleatório entre 0 e 1. Se este número é menor ou
igual à probabilidade de mutação (definida pelo usuário), então o valor do bit é
trocado de 1 para 0 e vice-versa.
3.2.13 Substituição
Após a mutação, o AG substitui a velha população pela nova população. Para
isto, o AG substitui todos os bits, um por um, de todos os indivíduos da velha
população pelos bits dos novos descendentes gerados.
3.2.14 Convergência
Todas as descrições anteriores se referem aos indivíduos de uma única
geração. Após o AG realizar todas as operações genéticas já descritas anteriormente,
o AG passa para a geração seguinte e realiza novamente as mesmas operações, com
exceção da criação da população inicial, visto não ser mais necessário, pois a nova
população foi criada a partir da recombinação e mutação.
73
O AG irá parar após um certo números de gerações definidas pelo usuário. Se
uma solução aceitável não foi alcançada, existem várias alternativas. Pode-se
aumentar o número de gerações ou aumentar a população inicial ou alterar a taxa de
mutação ou alterar a taxa de recombinação ou alterar o tamanho do gene. Estas
alternativas podem ser utilizadas individualmente ou duas de cada vez e assim por
diante.
3.2.15 Diagrama de blocos do algoritmo genético
Figura 7 – Diagrama de blocos para o algoritmo genético
3.3 Modelo Híbrido
O modelo híbrido consiste na conexão do algoritmo genético com o programa
de cálculo hidráulico. A conexão é feita através de um programa principal e três
74
unidades. O programa principal conecta estas três unidades na ordem correta. A
primeira unidade a ser chamada contém a rotina do algoritmo genético, a segunda
unidade contém a rotina para o cálculo hidráulico e a terceira unidade calcula a
função objetivo.
O modelo híbrido fornece ao usuário três opções de cálculo. A primeira opção
permite calcular apenas o regime permanente, a segunda opção permite calcular o
regime permanente junto com o regime extensivo considerando-se a variação dos
níveis d‟água dos reservatórios presentes na rede e podendo-se considerar ou não a
presença de “boosters” na rede sem se considerar as válvulas e a terceira opção
permite calcular a segunda opção, acrescida dos efeitos de válvulas instaladas na rede
onde se procura otimizar as operações da rede pela utilização do AG. O usuário
escolhe a opção de cálculo através da entrada de dados no arquivo de entrada.
Quando a terceira opção é escolhida, o programa principal começa chamando
o algoritmo genético, que gera uma população inicial (valores dos coeficientes de
perda de carga (kv) das válvulas) aleatoriamente. Os valores de kv de cada indivíduo
são fornecidos à unidade de cálculo hidráulico. Esta, primeiro calcula o regime
permanente da rede como se houvesse apenas tubos e vazões de entrada e saída nos
nós, podendo ou não haver reservatórios. Após o cálculo do regime permanente,
inicia-se o cálculo do regime extensivo, considerando as operações dos dispositivos
da rede (válvulas e bombas) e fornecendo os valores das pressões em cada nó e nos
reservatórios, das vazões e das perdas de carga para cada tubo da rede para cada
período de cálculo. Com os valores das pressões, as restrições são avaliadas. Com os
valores das vazões e das perdas de carga, a função objetivo é avaliada. Caso as
restrições não sejam atendidas, calcula-se o valor da função de penalidade e a função
objetivo é penalizada. Após isto, retorna-se ao algoritmo genético para chamar os
operadores genéticos já descritos. Este procedimento é repetido para todos os
indivíduos de todas as gerações.
O modelo híbrido fornece três arquivos de saída. O primeiro mostra os
valores das variáveis hidráulicas para o regime permanente. O segundo pode mostrar
dois tipos de valores. Caso o usuário opte pela segunda opção de cálculo já descrita,
mostram-se os valores das variáveis hidráulicas para cada período do dia, calculados
sem se considerar as válvulas. Caso o usuário opte pela terceira opção de cálculo,
75
mostram-se os valores das variáveis hidráulicas para cada período do dia para o
indivíduo mais apto da última geração, calculado a partir dos coeficientes de perda
de carga das válvulas fornecidos pelo AG. O terceiro mostra os valores dos
coeficientes de perda de carga (kv) de cada válvula instalada na rede de distribuição
de água para cada período de cálculo, a geração na qual estes valores foram gerados
e o valor da função objetivo de cada geração, como já descrito antes.
O programa imprime o indivíduo mais apto da última geração, pois esta é a
geração que teoricamente contém o melhor indivíduo de todos os indivíduos gerados
em todas as gerações.
3.3 Diagrama de blocos do modelo híbrido
Figura 8 – Diagrama de blocos para o modelo híbrido
76
4 Resultados
A título de exemplo, utilizou-se a rede esquematizada a seguir para mostrar os
resultados obtidos pelo programa através da terceira opção de cálculo.
Utilizou-se o programa para calcular a rede a seguir considerando-se os
efeitos da variação do nível do reservatório, acrescidos dos efeitos de válvulas
instaladas na rede, onde se procura otimizar as operações da rede pela utilização do
AG. A rede possui duas válvulas tipo gaveta nos tubos 3 e 6 e um “booster” no tubo
2, como ilustra o esquema a seguir.
Utilizou-se para a rede a seguir uma população de dez (10) indivíduos, trinta
(30) gerações, uma porcentagem de crossover de 95%, uma porcentagem de mutação
de 2%, um fator de escala de 1.2 e o elitismo foi aplicado. Estes valores são
fornecidos diretamente ao programa principal. A rede foi calculada para 5 períodos
de uma hora.
Figura 9 – Esquema da rede de distribuição calculada
77
A seguir, mostra-se o arquivo com os dados de entrada e os arquivos de saída
gerados pelo programa desenvolvido.
4.1 Arquivo de entrada ‘nava.dat’
Entre com o numero de tubos,de nos,de vazoes de entrada/saida e de reservatorios
respectivamente e salte uma linha:
7541
Entre com o numero do trecho, o no inicial, o no final(o primeiro trecho nao tem no
final),o diametro(m),o comprimento(m), a vazao inicial(adotada)(m3/s) e a
rugosidade(m) respectivamente para cada trecho e salte uma linha:
1
2
3
4
5
6
7
1
1
2
2
3
3
4
2
3
4
4
5
5
0.3
0.3
0.25
0.2
0.175
0.15
0.2
1
650
700
550
650
500
400
0
0
0
0
0
0
0
0.00003
0.00003
0.00003
0.00003
0.00003
0.00003
0.00003
Entre com a viscosidade cinematica(m2/s) e a massa especifica(kg/m3) do fluido
respectivamente e salte uma linha:
0.000001 1000
Entre com o valor da pressao maxima(m) e da pressao minima admissiveis na rede e
salte uma linha:
50 15
Entre com o numero do no e a vazao de entrada/saida(m3/s) respectivamente para
cada no para o regime permanente e salte uma linha:
1
3
4
5
-0.1
0.03
0.02
0.05
Comecando pelo reservatorio pulmao,entre com o numero do reservatorio,o no do
reservatorio, o nivel(m),a area(m2),o nivel maximo e o nivel minimo admissiveis
respectivamente para cada reservatorio e salte uma linha:
1 1 30 1000 30.5 29.5
78
Entre com o numero do no e a cota do no(m) respectivamente para cada no e salte
uma linha:
1
2
3
4
5
660
650
649
642
647
Deseja calcular o periodo extensivo (s/n)? (salte uma linha apos a resposta)
s
Entre com o numero de valvulas da rede e salte uma linha:
2
Entre com o numero do tubo que contem a valvula e o coeficiente de perda de carga
para a valvula fechada(kf) respectivamente e salte uma linha:
3 98
6 98
Entre com o numero de bombas da rede e com o numero de intervalos de tempo que
as bombas trabalharao(1 a 24) e salte uma linha:
1 2
Na mesma linha,entre com o numero dos intervalos de tempo nos quais as bombas
trabalharao e salte uma linha:
3 5
Entre com o numero do tubo que contem a bomba,a carga de shut-off(m),a carga(m)
e a vazao(m3/s) para o rendimento maximo da bomba e uma carga qualquer(m) com
a correspondente vazao(m3/s) respectivamente e salte uma linha:
2 16 9 0.11111 13 0.066667
Entre com o numero de intervalos de tempo (1 a 24) para se calcular o periodo
extensivo e salte uma linha:
5
79
Na primeira linha,entre com o numero dos nos de entrada e saida. A partir da
segunda linha,entre com as vazoes de entrada e saida(m3/s) para cada periodo e
salte uma linha:
1
-0.1
-0.1
-0.1
-0.1
-0.1
3
0.03
0.05
0.04
0.02
0.09
4
0.02
0.04
0.02
0.03
0.05
5
0.05
0.03
0.06
0.02
-0.04
Escreva o nome do arquivo de saida para o periodo extensivo e salte uma linha:
navaext.out
4.2 Arquivo de saída ‘nava.out’
A matriz de conexao e:
-1
1
0
0
0
0
0
0
-1
1
1
0
0
0
trecho
1
2
3
4
5
6
7
trecho
1
2
3
4
5
6
0
0
-1
0
1
1
0
0 0
0 0
0 0
-1 0
-1 0
0 -1
1 -1
no
inicial
1
1
2
2
3
3
4
no
inicial
1
1
2
2
3
3
no
final
carga piez.
carga piez.
no inicial(m) no final(m)
vazao
(m3/s)
perda de
carga(m)
0.10000
0.05827
0.04173
0.01151
0.01676
0.03324
3.24102
3.12592
3.96363
0.83771
2.72335
1.88565
2
3
4
4
5
5
690.00000
690.00000
686.75898
686.75898
683.63306
683.63306
682.79536
686.75898
683.63306
682.79536
682.79536
680.90971
680.90971
no
final
pressao no
inicial(m)
pressao no cota no
final(m)
inicial(m)
2
3
4
4
5
30.00000
30.00000
36.75898
36.75898
34.63306
34.63306
36.75898
34.63306
40.79536
40.79536
33.90971
660.00000
660.00000
650.00000
650.00000
649.00000
649.00000
cota no
final(m)
650.00000
649.00000
642.00000
642.00000
647.00000
80
7
no
4
5
40.79536
33.90971
642.00000
647.00000
vazao
entrada/saida(m3/s)
1
3
4
5
-0.10000
0.03000
0.02000
0.05000
numero de iteracoes:=
155
4.3 Arquivo de saída ‘navaext.out’
Periodo 1
trecho
1
2
3
4
5
6
7
trecho
1
2
3
4
5
6
7
no
1
3
4
5
no
inicial
no
final
1
1
2
2
3
3
4
2
3
4
4
5
5
690.00000
690.00000
686.75898
686.75898
683.01298
683.01298
682.38739
no
inicial
no
final
pressao no
inicial(m)
2
3
4
4
5
5
30.00000
30.00000
36.75898
36.75898
34.01298
34.01298
40.38739
1
1
2
2
3
3
4
carga piez.
carga piez.
no inicial(m) no final(m)
vazao
entrada/saida(m3/s)
-0.10000
0.03000
0.02000
0.05000
numero de iteracoes:=
153
686.75898
683.01298
682.38739
682.38739
680.44581
680.44581
pressao no
final(m)
36.75898
34.01298
40.38739
40.38739
33.44581
33.44581
vazao
(m3/s)
perda de
carga(m)
0.10000
0.05603
0.04397
0.00980
0.01623
0.03377
3.24102
2.90504
4.37194
0.62457
2.56762
1.94137
cota no
inicial(m)
cota no
final(m)
660.00000
660.00000
650.00000
650.00000
649.00000
649.00000
642.00000
650.00000
649.00000
642.00000
642.00000
647.00000
647.00000
81
Periodo 2
trecho
no
inicial
1
2
3
4
5
6
7
trecho
1
1
2
2
3
3
4
2
3
4
4
5
5
no
inicial
no
final
pressao no
inicial(m)
2
3
4
4
5
5
29.96514
29.96514
35.39495
35.39495
31.37911
31.37911
37.75328
1
2
3
4
5
6
7
no
no
carga piez.
carga piez. vazao
final no inicial(m) no final(m) (m3/s)
1
1
2
2
3
3
4
689.96514
689.96514
685.39495
685.39495
680.37911
680.37911
679.75328
685.39495
680.37911
679.75328
679.75328
679.00537
679.00537
0.12000
0.06965
0.05035
0.00980
0.00984
0.02016
pressao no cota no
final(m) inicial(m)
35.39495
31.37911
37.75328
37.75328
32.00537
32.00537
660.00000
660.00000
650.00000
650.00000
649.00000
649.00000
642.00000
perda de
carga(m)
4.57019
4.36614
5.64204
0.62477
1.02392
0.74771
cota no
final(m)
650.00000
649.00000
642.00000
642.00000
647.00000
647.00000
vazao
entrada/saida(m3/s)
1
3
4
5
-0.10000
0.05000
0.04000
0.03000
numero de iteracoes:=
90
Periodo 3
trecho
1
2
3
4
5
6
7
no
inicial
no
final
1
1
2
2
3
3
4
2
3
4
4
5
5
carga piez.
carga piez. vazao
no inicial(m) no final(m) (m3/s)
perda de
carga(m)
689.96514
689.96514
693.40279
693.40279
688.47496
688.47496
687.62357
4.57019
4.29014
5.77962
0.85038
2.91488
2.99922
693.40279
688.47496
687.62357
687.62357
684.62419
684.62419
0.12000
0.06900
0.05100
0.01162
0.01738
0.04262
82
trecho
1
2
3
4
5
6
7
no
no
inicial
no
final
1
1
2
2
3
3
4
2
3
4
4
5
5
pressao no
inicial(m)
29.96514
29.96514
43.40279
43.40279
39.47496
39.47496
45.62357
pressao no cota no
final(m) inicial(m)
43.40279
39.47496
45.62357
45.62357
37.62419
37.62419
660.00000
660.00000
650.00000
650.00000
649.00000
649.00000
642.00000
cota no
final(m)
650.00000
649.00000
642.00000
642.00000
647.00000
647.00000
vazao
entrada/saida(m3/s)
1
3
4
5
-0.10000
0.04000
0.02000
0.06000
numero de iteracoes:=
88
Periodo 4
trecho
1
2
3
4
5
6
7
trecho
1
2
3
4
5
6
7
no
no
inicial
no
final
carga piez.
carga piez.
no inicial(m) no final(m)
1
1
2
2
3
3
4
2
3
4
4
5
5
690.05228
690.05228
688.38956
688.38956
686.48874
686.48874
685.84276
no
inicial
no
final
pressao no
inicial(m)
2
3
4
4
5
5
30.05228
30.05228
38.38956
38.38956
37.48874
37.48874
43.84276
1
1
2
2
3
3
4
vazao
entrada/saida(m3/s)
688.38956
686.48874
685.84276
685.84276
685.51109
685.51109
vazao
(m3/s)
perda de
carga(m)
0.07000
0.03708
0.03292
0.01000
0.00708
0.01292
1.66273
1.34904
2.54643
0.64701
0.56285
0.33188
pressao no cota no
final(m)
inicial(m)
cota no
final(m)
660.00000
660.00000
650.00000
650.00000
649.00000
649.00000
642.00000
650.00000
649.00000
642.00000
642.00000
647.00000
647.00000
38.38956
37.48874
43.84276
43.84276
38.51109
38.51109
83
1
3
4
5
-0.10000
0.02000
0.03000
0.02000
numero de iteracoes:=
134
Periodo 5
trecho
1
2
3
4
5
6
7
1
1
2
2
3
3
4
trecho
1
2
3
4
5
6
7
no
1
3
4
5
no
no
inicial final
2
3
4
4
5
5
no
no
inicial final
1
1
2
2
3
3
4
2
3
4
4
5
5
carga piez.
carga piez.
no inicial(m) no final(m)
vazao
(m3/s)
690.00000
690.00000
696.90891
696.90891
689.59665
689.59665
691.94810
696.90891
689.59665
691.94810
691.94810
692.91665
692.91665
pressao no
inicial(m)
pressao no
cota no
final(m)
inicial(m)
30.00000
30.00000
46.90891
46.90891
40.59665
40.59665
49.94810
46.90891
40.59665
49.94810
49.94810
45.91665
45.91665
0.10000
0.05298
0.04702
-0.02022
-0.01680
-0.02320
660.00000
660.00000
650.00000
650.00000
649.00000
649.00000
642.00000
perda de
carga(m)
3.24102
2.61612
4.96062
-2.35046
-2.73743
-0.96822
cota no
final(m)
650.00000
649.00000
642.00000
642.00000
647.00000
647.00000
vazao
entrada/saida(m3/s)
-0.10000
0.09000
0.05000
-0.04000
numero de iteracoes:=
104
potencia dissipada em todos os periodos calculados:= 42775.32719 W
84
4.4 Arquivo de saída ‘lgados.res’
k1
k2
k3
k4
k5
geracao
potencia
dissipada (W)
valv1 82.1935 18.9677 94.8387 22.1290 91.6774
valv2 72.7097 85.3548 98.0000 50.5806 91.6774
1
46428.41438
valv1 82.1935 18.9677 94.8387 22.1290 91.6774
valv2 72.7097 85.3548 98.0000 50.5806 91.6774
2
46428.41438
valv1 82.1935 18.9677 44.2581 22.1290 91.6774
valv2 22.1290 85.3548 98.0000 50.5806 91.6774
3
45599.74063
valv1 15.8065 94.8387 44.2581 22.1290 91.6774
valv2 22.1290 85.3548 98.0000 53.7419 91.6774
4
45108.98646
valv1 15.8065 94.8387 44.2581 22.1290 91.6774
valv2 22.1290 85.3548 98.0000 53.7419 91.6774
5
45108.98646
valv1 15.8065 94.8387 44.2581 22.1290 91.6774
valv2 22.1290 85.3548 98.0000 53.7419 91.6774
6
45108.98646
valv1 15.8065 94.8387 44.2581 18.9677 91.6774
valv2 22.1290 85.3548 9.4839 82.1935 22.1290
7
44847.69816
valv1 12.6452 31.6129 44.2581 18.9677 91.6774
valv2 22.1290 85.3548 9.4839 82.1935 22.1290
8
43693.65657
valv1 12.6452 31.6129 44.2581 18.9677 91.6774
valv2 22.1290 85.3548 9.4839 82.1935 22.1290
9
43693.65657
valv1 12.6452 31.6129 44.2581 18.9677 91.6774
valv2 22.1290 85.3548 9.4839 82.1935 22.1290
10
43693.65657
valv1 12.6452 31.6129 44.2581 18.9677 91.6774
valv2 22.1290 85.3548 9.4839 82.1935 22.1290
11
43693.65657
valv1 12.6452 31.6129 44.2581 18.9677 91.6774
valv2 22.1290 85.3548 9.4839 82.1935 22.1290
12
43693.65657
valv1 12.6452 31.6129 44.2581 18.9677 91.6774
valv2 22.1290 85.3548 9.4839 82.1935 22.1290
13
43693.65657
valv1 12.6452 31.6129 44.2581 18.9677 91.6774
valv2 22.1290 85.3548 9.4839 82.1935 22.1290
14
43693.65657
valv1 18.9677 44.2581 18.9677 18.9677 91.6774
valv2 22.1290 85.3548 9.4839 82.1935 22.1290
15
43571.51716
85
valv1 18.9677 37.9355 18.9677 18.9677 91.6774
valv2 22.1290 85.3548 9.4839 82.1935 22.1290
16
43469.70071
valv1 18.9677 37.9355 18.9677 18.9677 91.6774
valv2 9.4839 22.1290 6.3226 63.2258 12.6452
17
43415.37616
valv1 18.9677 37.9355 18.9677 18.9677 91.6774
valv2 9.4839 22.1290 6.3226 63.2258 12.6452
18
43415.37616
valv1 18.9677 37.9355 18.9677 18.9677 91.6774
valv2 9.4839 22.1290 6.3226 63.2258 12.6452
19
43415.37616
valv1 18.9677 37.9355 18.9677 18.9677 91.6774
valv2 9.4839 22.1290 6.3226 63.2258 12.6452
20
43415.37616
valv1 18.9677 44.2581
valv2 22.1290 22.1290
9.4839 18.9677 79.0323
6.3226 63.2258 12.6452
21
43301.66975
valv1 18.9677 44.2581
valv2 0.0000 22.1290
6.3226 18.9677 79.0323
6.3226 63.2258 12.6452
22
43252.74021
valv1 18.9677 44.2581
valv2 0.0000 22.1290
6.3226 18.9677 79.0323
6.3226 63.2258 12.6452
23
43252.74021
valv1 18.9677 31.6129
valv2 0.0000 22.1290
6.3226 18.9677 79.0323
6.3226 63.2258 0.0000
24
43088.77502
valv1 18.9677 31.6129
valv2 0.0000 22.1290
6.3226 18.9677 79.0323
6.3226 63.2258 0.0000
25
43088.77502
valv1 18.9677 31.6129
valv2 0.0000 22.1290
6.3226 18.9677 79.0323
6.3226 63.2258 0.0000
26
43088.77502
valv1 18.9677 31.6129
valv2 0.0000 22.1290
6.3226 18.9677 79.0323
6.3226 63.2258 0.0000
27
43088.77502
valv1 18.9677 6.3226 6.3226 18.9677 79.0323
valv2 0.0000 22.1290 18.9677 50.5806 12.6452
28
42805.22884
valv1 12.6452 6.3226 6.3226 18.9677 79.0323
valv2 0.0000 22.1290 18.9677 50.5806 12.6452
29
42775.32719
valv1 12.6452 6.3226 6.3226 18.9677 79.0323
valv2 0.0000 22.1290 18.9677 50.5806 12.6452
30
42775.32719
86
Pode-se observar que a potência dissipada impressas nos arquivos de saída
„navaext.out‟ e „lgados.res‟ é a mesma, ou seja, 42775.32719 W.
Outra observação é que neste exemplo rodado, usou-se apenas trinta
gerações, o que é um número baixo de gerações. Este número baixo de gerações foi
usado apenas para dar um exemplo da capacidade de cálculo do programa.
4.5 Rede 1
A seguir, utilizou-se a rede de distribuição de água da cidade de Itororó-BA
(Porto, 2001) esquematizada a seguir para fazer testes mais abrangentes com o
modelo híbrido. A rede possui um “booster” instalado no tubo 2 e quatro válvulas
tipo gaveta nos tubos 7, 8, 13 e 16. As válvulas foram instaladas nestes tubos pois os
nós 6, 16 e 12 podem apresentar problemas de sobrepressão durante os cálculos.
Foi utilizada uma população de vinte (20) indivíduos, que foi testada para
cem (100) e duzentas (200) gerações. Para cada um dos dois grupos de gerações,
variou-se a porcentagem de crossover em 60%, 80% e 95% e a porcentagem de
mutação em 0.5%, 1% e 2% respectivamente, resultando em seis gráficos. Foi
utilizado um fator de escala de 1.5 e o elitismo não foi aplicado Os gráficos estão
representados a seguir.
É necessário observar que a rede continuou sendo calculada para 5 períodos e
que a rugosidade absoluta para todos os tubos é 0,15mm (aço galvanizado).
87
Figura 10 – Esquema da rede de distribuição de Itororó-BA
Tabela 1 – Dados da rede da cidade de Itororó-BA regime permanente (Porto, 2001)
1
Demanda
(l/s)
-62,5
Cota do nó
(m)
230,7
1
Comprimento
(m)
10
Diâmetro
(m)
0,3
2
5,05
220,50
2
324
0,3
3
1,91
215,60
3
124
0,25
4
3,81
210,40
4
184
0,25
5
1,40
210,50
5
254
0,15
6
4,35
209,50
6
225
0,1
7
3,51
213,20
7
177
0,1
8
3,44
218,50
8
168
0,1
9
2,48
230,70
9
152
0,125
Nó
Trecho
88
Tabela 1 – Dados da rede da cidade de Itororó-BA regime permanente (Porto, 2001)
(continuação)
10
3,06
211,50
10
166
0,125
11
1,85
213,50
11
263
0,125
12
2,86
205,50
12
133
0,1
13
6,11
208,80
13
321
0,1
14
5,09
215,50
14
105
0,125
15
4,06
212,60
15
169
0,15
16
8,05
207,50
16
103
0,15
17
4,26
219,40
17
206
0,15
18
1,21
220,50
18
202
0,15
19
134
0,15
20
227
0,2
21
167
0,2
89
Tabela 2 – Demandas usadas no cálculo do regime extensivo em Itororó-BA
Nó
1
Demanda 1
(l/s)
-62,50
Demanda 2
(l/s)
-62,50
Demanda 3
(l/s)
-62,50
Demanda 4
(l/s)
-62,50
Demanda 5
(l/s)
-62,50
2
5,05
3,05
2,80
6,63
9,58
3
1,91
4,91
4,44
5,71
7,61
4
3,81
2,00
1,81
3,47
4,23
5
1,40
2,80
1,90
-7,73
4,87
6
4,35
4,35
3,05
3,52
4,35
7
3,51
5,01
6,51
7,98
8,73
8
3,44
4,44
0,44
9,33
3,43
9
2,48
0,48
3,48
3,56
2,35
10
3,06
2,06
2,06
4,74
1,22
11
1,85
1,90
4,91
-2,17
0,64
12
2,86
9,86
7,83
1,74
3,38
13
6,11
3,11
2,11
1,95
5,65
14
5,09
4,09
2,49
2,34
2,34
15
4,06
-5,60
4,60
-3,23
3,87
16
8,05
6,05
7,33
2,33
4,73
17
4,26
6,26
1,26
3,76
5,23
18
1,21
5,21
3,21
2,34
4,87
90
6420
6410
população:20
crossover:60%
mutação:0,5%
6400
6390
6380
6370
6360
potência dissipada (W)
6350
6340
6330
6320
potência dissipada (W)
6310
6300
6290
6280
6270
6260
6250
6240
6230
6220
6210
6200
gerações
0
10
20
30
40
50
60
70
80
90
100
Figura 11 – Potência X 100 gerações, crossover:60% e mutação:0.5%, sem elitismo
6400
6390
população:20
crossover:80%
mutação:1%
6380
6370
6360
6350
potência dissipada (W)
6340
6330
6320
6310
potência dissipada (W)
6300
6290
6280
6270
6260
6250
6240
6230
6220
6210
6200
gerações
0
10
20
30
40
50
60
70
80
90
100
Figura 12 – Potência X 100 gerações, crossover:80% e mutação:1%, sem elitismo
91
6290
população:20
crossover:95%
mutação:2%
6280
6270
potência dissipada (W)
6260
6250
potência dissipada (W)
6240
6230
6220
6210
gerações
6200
0
10
20
30
40
50
60
70
80
90
100
Figura 13 – Potência X 100 gerações, crossover:95% e mutação:2%, sem elitismo
Pelas três figuras anteriores, percebe-se que a função objetivo tende a
convergir nos três casos, mas percebe-se também, que o valor dela oscila durante
todo o cálculo, nunca chegando a um valor fixo para o número de gerações
utilizadas. Nota-se que na fig.11 a função objetivo tende a convergir com maior
rapidez e a potência dissipada final teve o menor valor das três figuras, sendo de
6206,127W para as taxas de crossover e mutação utilizadas. Não se sabe se este valor
é o ótimo global devido às oscilações dos valores da função objetivo. A fig.13
apresentou o maior valor de potência dissipada final, sendo de 6235,704W para as
taxas de crossover e mutação utilizadas.
92
6400
6390
população:20
crossover:60%
mutação:0,5%
6380
6370
6360
6350
potência dissipada (W)
6340
6330
6320
6310
potência dissipada (W)
6300
6290
6280
6270
6260
6250
6240
6230
6220
6210
gerações
6200
0
10
20
30
40
50
60
70
80
90 100 110 120 130 140 150 160 170 180 190 200
potência dissipada (W)
Figura 14 – Potência X 200 gerações, crossover:60% e mutação:0.5%, sem elitismo
6480
6470
6460
6450
6440
6430
6420
6410
6400
6390
6380
6370
6360
6350
6340
6330
6320
6310
6300
6290
6280
6270
6260
6250
6240
6230
6220
6210
6200
população:20
crossover:80%
mutação:1%
potência dissipada (W)
gerações
0
10
20
30
40
50
60
70
80
90 100 110 120 130 140 150 160 170 180 190 200
Figura 15 – Potência X 200 gerações, crossover:80% e mutação:1%, sem elitismo
potência dissipada (W)
93
6520
6510
6500
6490
6480
6470
6460
6450
6440
6430
6420
6410
6400
6390
6380
6370
6360
6350
6340
6330
6320
6310
6300
6290
6280
6270
6260
6250
6240
6230
6220
6210
6200
população:20
crossover:95%
mutação:2%
potência dissipada (W)
gerações
0
10
20
30
40
50
60
70
80
90 100 110 120 130 140 150 160 170 180 190 200
Figura 16 – Potência X 200 gerações, crossover:95% e mutação:2%, sem elitismo
Pelas três figuras anteriores, percebe-se que a função objetivo tende a
convergir nos três casos, embora o valor dela oscile durante todo o cálculo, nunca
chegando a um valor fixo para o número de gerações utilizadas. Nota-se que na
fig.15 a função objetivo tende a convergir com maior rapidez, mas a potência
dissipada final teve o segundo menor valor das três figuras, sendo de 6205,767W
para as taxas de crossover e mutação utilizadas. A fig.14 mostra o menor valor de
potência dissipada final obtida, sendo de 6204,599W. Não se sabe se este valor é o
ótimo global devido às oscilações dos valores da função objetivo. A fig.16
apresentou o maior valor de potência dissipada final, sendo de 6218,947W para as
taxas de crossover e mutação utilizadas. Na prática, o fato de a potência dissipada
final na fig.14 ser de 6204,599W e na fig.15 ser de 6205,767W é irrelevante.
Decidiu-se fazer os cálculos usando-se duzentas gerações, para ver se a
função objetivo não iria oscilar tanto quanto quando se usou cem gerações, o que não
aconteceu. Além do mais, cem gerações é um número baixo quando se quer otimizar
uma função objetivo utilizando AG para um problema de rede.
94
A seguir, os cálculos foram refeitos aplicando o elitismo. Os gráficos estão
representados a seguir.
6340
população:20
crossover:60%
mutação:0,5%
6330
6320
6310
potência dissipada (W)
6300
6290
6280
potência dissipada (W)
6270
6260
6250
6240
6230
6220
6210
gerações
6200
0
10
20
30
40
50
60
70
80
90
100
Figura 17 – Potência X 100 gerações, crossover:60% e mutação:0.5%, com elitismo
6380
6370
população:20
crossover:80%
mutação:1%
6360
6350
6340
6330
potência dissipada (W)
6320
6310
6300
potência dissipada (W)
6290
6280
6270
6260
6250
6240
6230
6220
6210
6200
gerações
0
10
20
30
40
50
60
70
80
90
100
Figura 18 – Potência X 100 gerações, crossover:80% e mutação:1%, com elitismo
95
6380
6370
população:20
crossover:95%
mutação:2%
6360
6350
6340
6330
potência dissipada (W)
6320
6310
6300
potência dissipada (W)
6290
6280
6270
6260
6250
6240
6230
6220
6210
6200
gerações
0
10
20
30
40
50
60
70
80
90
100
Figura 19 – Potência X 100 gerações, crossover:95% e mutação:2%, com elitismo
Pelas três figuras anteriores, percebe-se que a função objetivo convergiu nos
três casos e o valor dela não oscilou em momento algum durante o cálculo. Nota-se
que na fig.19 a função objetivo convergiu com maior rapidez, mas a potência
dissipada final teve o maior valor das três figuras, sendo 6204,769W para as taxas de
crossover e mutação utilizadas. A fig.18 mostra o menor valor de potência dissipada
final obtida, sendo de 6204,409W. A fig.17 indica o valor de 6204,464W para a
potência dissipada final. Em termos práticos, as diferenças entre os valores das
potências dissipadas finais nestes três casos é irrelevante.
96
6360
6350
população:20
crossover:60%
mutação:0,5%
6340
6330
6320
potência dissipada (W)
6310
6300
6290
potência dissipada (W)
6280
6270
6260
6250
6240
6230
6220
6210
gerações
6200
0
10
20
30
40
50
60
70
80
90 100 110 120 130 140 150 160 170 180 190 200
Figura 20 – Potência X 200 gerações, crossover:60% e mutação:0.5%, com elitismo
6380
6370
população:20
crossover:80%
mutação:1%
6360
6350
6340
6330
potência dissipada (W)
6320
6310
6300
potência dissipada (W)
6290
6280
6270
6260
6250
6240
6230
6220
6210
6200
gerações
0
10
20
30
40
50
60
70
80
90 100 110 120 130 140 150 160 170 180 190 200
Figura 21 – Potência X 200 gerações, crossover:80% e mutação:1%, com elitismo
97
6380
6370
população:20
crossover:95%
mutação:2%
6360
6350
6340
6330
potência dissipada (W)
6320
6310
6300
potência dissipada (W)
6290
6280
6270
6260
6250
6240
6230
6220
6210
gerações
6200
0
10
20
30
40
50
60
70
80
90 100 110 120 130 140 150 160 170 180 190 200
Figura 22 – Potência X 200 gerações, crossover:95% e mutação:2%, com elitismo
Pelas três figuras anteriores, percebe-se que a função objetivo convergiu nos
três casos e o valor dela não oscilou em momento algum durante o cálculo. Nota-se
que na fig.22 a função objetivo convergiu com maior rapidez e a potência dissipada
final teve o menor valor das três figuras, sendo 6203,495W para as taxas de
crossover e mutação utilizadas. A fig.20 apresenta o maior valor de potência
dissipada final obtida, sendo de 6204,866W. A fig.21 mostra o valor de 6204,081W
para a potência dissipada final obtida. Pelos resultados obtidos, pode-se concluir que
o ótimo global deve ser um valor entre 6203W e 6204W.
Embora se tenha alcançado a convergência da função objetivo nos três casos
representados nas figuras onde se utilizou cem gerações durante o cálculo, decidiu-se
fazer os cálculos usando duzentas gerações também, pois cem gerações é um número
baixo quando se quer otimizar uma função objetivo utilizando AG. Outro motivo de
se fazer os cálculos utilizando duzentas gerações foi verificar o comportamento da
função objetivo e como se pôde observar, a função objetivo apresenta melhores
valores do que quando se utilizou cem gerações.
98
Pode-se observar que o melhor valor obtido para a função objetivo,quando
são analisadas todas as figuras anteriores, foi o valor da fig.22, que foi de
6203,495W. Este valor foi obtido quando se utilizou duzentas (200) gerações com
taxa de crossover de 95%, taxa de mutação de 2% e elitismo.
Outra observação importante é que esta mesma rede foi calculada utilizando a
segunda opção de cálculo. Isto foi feito para se obter o valor da potência dissipada
final na rede sem a presença de válvulas, sendo este igual a 6202,545W. Este valor é
bem próximo ao valor obtido na fig.22, ou seja, 6203,495W. Isto significa, que
quando esta rede foi calculada utilizando a terceira opção de cálculo, o AG obteve
um arranjo de abertura de válvulas que corresponde à uma potência dissipada quase
igual à potência dissipada na rede quando não se utilizam válvulas.
Vale observar que a potência dissipada final na rede sem a presença de
válvulas, não necessariamente é a potência mínima dissipada pela rede. Tudo
depende do arranjo de “boosters” e válvulas utilizado para o cálculo do regime
extensivo.
Outra observação é que quando o elitismo foi utilizado, a função objetivo
apresentou o maior valor na primeira geração. Após isto, o valor da função objetivo
sempre diminuiu até alcançar a convergência, independente de se utilizar cem (100)
ou duzentas (200) gerações para os cálculos. Quando o elitismo não foi utilizado, a
função objetivo não apresentou o maior valor na primeira geração. A função objetivo
atingiu valores consideravelmente maiores nas gerações posteriores, independente de
se utilizar cem (100) ou duzentas (200) gerações para os cálculos. Isto ocorreu
devido às oscilações dos valores da função objetivo durante os cálculos, como já
comentado.
4.6 Rede 2
A seguir, utilizou-se a rede de distribuição de água da cidade de Campo BomRS (Albuquerque, 1980) esquematizada a seguir para fazer testes adicionais com o
modelo híbrido. A rede possui dois “boosters” instalados no tubo 18 e 36 e duas
válvulas gaveta nos tubos 2 e 36. As válvulas foram instaladas nestes tubos pois os
nós 3, 22 e 23 podem apresentar problemas de sobrepressão durante os cálculos. Os
99
“boosters” foram instalados nestes tubos pois os nós 19, 20, 21, 28 e 33 podem
apresentar problemas de subpressão durante os cálculos.
Foi utilizada uma população de dez (10) indivíduos, que foi testada para cem
(100) e duzentas (200) gerações. Para cada um dos dois grupos de gerações, variouse a porcentagem de crossover em 60%, 80% e 95% e a porcentagem de mutação em
0.5%, 1% e 2% respectivamente, resultando em seis gráficos. Foi utilizado um fator
de escala de 1.5 e o elitismo não foi aplicado Os gráficos estão representados a
seguir.
É necessário observar que a rede continuou sendo calculada para 5 períodos e
que a rugosidade absoluta para todos os tubos é 0,1mm (cimento amianto).
Figura 23 – Esquema da rede de distribuição de Campo Bom-RS
100
Tabela 3 – Dados da rede da cidade de Campo Bom-RS regime permanente
(Albuquerque, 1980)
1
Demanda
(l/s)
-272,50
Cota do nó
(m)
15
1
Comprimento
(m)
1
Diâmetro
(m)
0,5
2
27,55
15
2
220
0,5
3
3,03
10
3
280
0,5
4
4,83
20
4
420
0,4
5
2,48
18
5
140
0,35
6
5,87
25
6
280
0,35
7
7,67
35
7
450
0,35
8
38,05
35
8
190
0,3
9
-
25
9
450
0,15
10
8,52
20
10
300
0,1
11
-
15
11
400
0,1
12
4,52
15
12
490
0,4
13
-
15
13
360
0,4
14
7,25
20
14
830
0,4
15
5,46
20
15
550
0,4
16
10,62
25
16
540
0,4
17
9,61
25
17
420
0,35
18
45,50
34
18
180
0,35
19
6,12
27
19
10
0,3
20
-
25
20
400
0,1
21
8,51
25
21
280
0,1
22
13,02
25
22
280
0,1
23
-
25
23
510
0,1
24
10,24
30
24
90
0,1
25
9,00
27
25
180
0,1
26
-
30
26
670
0,1
27
-
34
27
200
0,1
28
2,19
35
28
200
0,1
Nó
Trecho
101
Tabela 3 – Dados da rede da cidade de Campo Bom-RS regime permanente
(Albuquerque, 1980) (continuação)
29
-
30
29
490
0,1
30
-
15
30
430
0,1
31
22,66
15
31
1430
0,2
32
10,24
20
32
320
0,4
33
9,56
20
33
90
0,4
34
-
17
34
110
0,4
35
420
0,4
36
360
0,4
37
290
0,1
38
230
0,1
39
140
0,1
102
Tabela 4 – Demandas usadas no cálculo do regime extensivo em Campo Bom-RS
Nó
1
Demanda 1
(l/s)
-272,50
Demanda 2
(l/s)
-272,50
Demanda 3
(l/s)
-272,50
Demanda 4
(l/s)
-272,50
Demanda 5
(l/s)
-272,50
2
27,55
27,55
28,87
27,55
21,58
3
3,03
3,03
-9,53
3,03
13,45
4
4,83
4,83
-21,83
4,83
-4,83
5
2,48
2,48
15,48
2,48
2,48
6
5,87
13,70
5,87
5,87
9,58
7
7,67
9,67
9,67
7,67
6,34
8
38,05
48,05
38,05
38,05
27,33
10
8,52
8,52
8,52
8,52
3,52
12
4,52
4,52
4,52
4,52
4,52
14
7,25
27,25
-27,25
7,25
1,05
15
5,46
5,46
-18,46
5,46
5,46
16
10,62
20,62
14,62
10,62
10,62
17
9,61
7,09
19,10
9,61
2,34
18
45,50
20,00
57,50
45,50
39,50
19
6,12
15,72
6,12
6,12
7,63
21
8,51
13,51
8,51
8,51
8,51
22
12,02
20,34
20,02
13,02
13,02
24
10,24
7,24
10,24
10,24
10,24
25
9,00
9,00
9,00
9,00
5,61
28
2,19
18,87
21,42
2,19
-2,19
31
22,66
22,66
38,66
22,66
22,66
32
10,24
-11,24
-13,40
10,24
10,24
33
9,56
9,56
41,56
9,56
10,56
103
população:10
crossover:60%
mutação:0.5%
83450
83350
83250
83150
83050
potência dissipada (W)
82950
82850
82750
82650
potência dissipada (W)
82550
82450
82350
82250
82150
82050
81950
81850
81750
81650
gerações
0
10
20
30
40
50
60
70
80
90
100
Figura 24 – Potência X 100 gerações, crossover:60% e mutação:0.5%, sem elitismo
população:10
crossover:80%
mutação:1%
83650
83550
83450
83350
83250
83150
potência dissipada (W)
83050
82950
82850
82750
potência dissipada (W)
82650
82550
82450
82350
82250
82150
82050
81950
81850
81750
81650
gerações
0
10
20
30
40
50
60
70
80
90
100
Figura 25 – Potência X 100 gerações, crossover:80% e mutação:1%, sem elitismo
104
população:10
crossover:95%
mutação:2%
83550
83450
83350
83250
83150
83050
potência dissipada (W)
82950
82850
82750
82650
potência dissipada (W)
82550
82450
82350
82250
82150
82050
81950
81850
81750
81650
gerações
0
10
20
30
40
50
60
70
80
90
100
Figura 26 – Potência X 100 gerações, crossover:95% e mutação:2%, sem elitismo
Pelas três figuras anteriores, percebe-se que a função objetivo tende a
convergir nos três casos, mas percebe-se também, que o valor dela oscila durante
todo o cálculo, nunca chegando a um valor fixo para o número de gerações
utilizadas. Nota-se que na fig.25 a função objetivo tende a convergir com maior
rapidez e a potência dissipada final foi de 81681,405W para as taxas de crossover e
mutação utilizadas. A fig. 26 apresentou o menor valor de potência dissipada final,
sendo de 81678,547W para as taxas de crossover e mutação utilizadas. Não se sabe
se este valor é o ótimo global devido às oscilações dos valores da função objetivo. A
fig.24 apresentou o maior valor de potência dissipada final, sendo de 81775,749W
para as taxas de crossover e mutação utilizadas.
105
82700
população:10
crossover:60%
mutação:0.5%
82650
82600
82550
82500
82450
82400
potencia dissipada (W)
82350
82300
82250
82200
potencia dissipada (W)
82150
82100
82050
82000
81950
81900
81850
81800
81750
81700
81650
gerações
0
10
20
30
40
50
60
70
80
90
100 110 120 130 140 150 160 170 180 190 200
Figura 27 – Potência X 200 gerações, crossover:60% e mutação:0.5%, sem elitismo
83150
população:10
crossover:80%
mutação:1%
83050
82950
82850
82750
potência dissipada (W)
82650
82550
82450
potência dissipada (W)
82350
82250
82150
82050
81950
81850
81750
81650
gerações
0
10
20
30
40
50
60
70
80
90
100 110 120 130 140 150 160 170 180 190 200
Figura 28 – Potência X 200 gerações, crossover:80% e mutação:1%, sem elitismo
potência dissipada (W)
106
84550
84450
84350
84250
84150
84050
83950
83850
83750
83650
83550
83450
83350
83250
83150
83050
82950
82850
82750
82650
82550
82450
82350
82250
82150
82050
81950
81850
81750
81650
população:10
crossover:95%
mutação:2%
potência dissipada (W)
gerações
0
10
20
30
40
50
60
70
80
90
100 110 120 130 140 150 160 170 180 190 200
Figura 29 – Potência X 200 gerações, crossover:95% e mutação:2%, sem elitismo
Pelas três figuras anteriores, percebe-se que a função objetivo tende a
convergir nos três casos, mas percebe-se também, que o valor dela oscila durante
todo o cálculo, nunca chegando a um valor fixo para o número de gerações
utilizadas. Nota-se que na fig.27 a função objetivo tende a convergir com maior
rapidez e a potência dissipada final teve o menor valor das três figuras, sendo de
81667,981W para as taxas de crossover e mutação utilizadas. Não se sabe se este
valor é o ótimo global devido às oscilações dos valores da função objetivo. A fig.29
apresentou o maior valor de potência dissipada final, sendo de 81690,574W para as
taxas de crossover e mutação utilizadas.
Decidiu-se fazer os cálculos usando duzentas gerações, para ver se a função
objetivo não iria oscilar tanto quanto quando se usou cem gerações, o que não
aconteceu. Além do mais, cem gerações é um número baixo quando se quer otimizar
uma função objetivo utilizando AG para um problema de rede.
A seguir, os cálculos foram refeitos aplicando o elitismo. Os gráficos estão
representados a seguir.
107
população:10
crossover:60%
mutação:0.5%
82050
82040
82030
82020
potência dissipada (W)
82010
82000
81990
81980
potência dissipada (W)
81970
81960
81950
81940
81930
81920
81910
81900
gerações
0
10
20
30
40
50
60
70
80
90
100
Figura 30 – Potência X 100 gerações, crossover:60% e mutação:0.5%, com elitismo
82050
população:10
crossover:80%
mutação:1%
82030
82010
81990
81970
81950
potência dissipada (W)
81930
81910
81890
81870
81850
potência dissipada (W)
81830
81810
81790
81770
81750
81730
81710
81690
81670
81650
gerações
0
10
20
30
40
50
60
70
80
90
100
Figura 31 – Potência X 100 gerações, crossover:80% e mutação:1%, com elitismo
108
82050
população:10
crossover:95%
mutação:2%
82030
82010
81990
81970
81950
potência dissipada (W)
81930
81910
81890
81870
81850
potência dissipada (W)
81830
81810
81790
81770
81750
81730
81710
81690
81670
81650
gerações
0
10
20
30
40
50
60
70
80
90
100
Figura 32 – Potência X 100 gerações, crossover:95% e mutação:2%, com elitismo
Pelas três figuras anteriores, percebe-se que a função objetivo convergiu nos
três casos e o valor dela não oscilou em momento algum durante o cálculo. Nota-se
que na fig.32 a função objetivo convergiu com maior rapidez e a potência dissipada
final teve o menor valor das três figuras, sendo 81664,210W para as taxas de
crossover e mutação utilizadas. A fig.30 obteve o maior valor de potência dissipada
final, sendo de 81904,656W. A fig.31 obteve o valor de 81664,574W para a potência
dissipada final. Em termos práticos, as diferenças entre os valores das potências
dissipadas finais na fig.31 (81664,574) e na fig. 32 (81664,210) é irrelevante.
109
população:10
crossover:60%
mutação:0.5%
82050
82030
82010
81990
81970
81950
potência dissipada (W)
81930
81910
81890
81870
81850
potência dissipada (W)
81830
81810
81790
81770
81750
81730
81710
81690
81670
81650
gerações
0
10
20
30
40
50
60
70
80
90
100 110 120 130 140 150 160 170 180 190 200
Figura 33 – Potência X 200 gerações, crossover:60% e mutação:0.5%, com elitismo
82050
população:10
crossover:80%
mutação:1%
82030
82010
81990
81970
81950
potência dissipada (W)
81930
81910
81890
81870
81850
potência dissipada (W)
81830
81810
81790
81770
81750
81730
81710
81690
81670
81650
gerações
0
10
20
30
40
50
60
70
80
90
100 110 120 130 140 150 160 170 180 190 200
Figura 34 – Potência X 200 gerações, crossover:80% e mutação:1%, com elitismo
110
82050
população:10
crossover:95%
mutação:2%
82030
82010
81990
81970
81950
potência dissipada (W)
81930
81910
81890
81870
81850
potência dissipada (W)
81830
81810
81790
81770
81750
81730
81710
81690
81670
81650
gerações
0
10
20
30
40
50
60
70
80
90
100 110 120 130 140 150 160 170 180 190 200
Figura 35 – Potência X 200 gerações, crossover:95% e mutação:2%, com elitismo
Pelas três figuras anteriores, percebe-se que a função objetivo convergiu nos
três casos e o valor dela não oscilou em momento algum durante o cálculo. Nota-se
que na fig.35 a função objetivo convergiu com maior rapidez e a potência dissipada
final teve o menor valor das três figuras, sendo 81660,832W para as taxas de
crossover e mutação utilizadas. A fig.34 obteve o maior valor de potência dissipada
final, sendo de 81678,520W. A fig.33 obteve o valor de 81669,049W para a potência
dissipada final. Pelos resultados obtidos, pode-se concluir que o ótimo global deve
ser um valor entre 81660W e 81661W.
Embora se tenha alcançado a convergência da função objetivo nas três figuras
onde se utilizou cem gerações durante o cálculo, decidiu-se fazer os cálculos usando
duzentas gerações também, pois cem gerações é um número baixo quando se quer
otimizar uma função objetivo utilizando AG. Outro motivo de se fazer os cálculos
utilizando duzentas gerações foi verificar o comportamento da função objetivo e
como se pôde observar, a função objetivo obteve melhores valores do que quando se
utilizou cem gerações.
111
Pode-se observar que o melhor valor obtido para a função objetivo em relação
a todas as figuras anteriores, foi o valor da fig.35, que foi de 81660,832W. Este valor
foi obtido quando se utilizou duzentas (200) gerações com taxa de crossover de 95%,
taxa de mutação de 2% e elitismo.
A seguir, mostra-se a tabela 5 com os valores dos coeficientes de perda de
carga (kv) das válvulas instaladas na rede, que proporcionaram o valor obtido para a
função objetivo na fig. 35 (81660,832W), o melhor de todos.
Tabela 5 – Valores de kv para o melhor valor da função objetivo obtido
período 1
período 2
período 3
período 4
período 5
válvula 1
91.6774
0.0000
6.3226
0.0000
47.4194
válvula 2
85.3548
94.8387
94.8387
12.6452
0.0000
Outra observação importante é que esta mesma rede foi calculada utilizando a
segunda opção de cálculo. Isto foi feito para se obter o valor da potência dissipada
final na rede sem a presença de válvulas, sendo este igual a 81766,137W. Este valor
é maior que o valor obtido na fig.35, ou seja, 81660,832W. Isto ocorreu porque pelo
arranjo de “boosters” e válvulas utilizado na rede para o cálculo do regime extensivo,
o AG obteve um conjunto de abertura de válvulas que obteve uma potência dissipada
menor que a potência dissipada na rede quando não se utiliza válvulas.
Outra observação é que quando o elitismo foi utilizado, a função objetivo teve
o maior valor na primeira geração. Após isto, o valor da função objetivo sempre
diminuiu até alcançar a convergência, independente de se utilizar cem (100) ou
duzentas (200) gerações para os cálculos. Quando o elitismo não foi utilizado, a
função objetivo não teve o maior valor na primeira geração. A função objetivo
atingiu valores consideravelmente maiores nas gerações posteriores, independente de
se utilizar cem (100) ou duzentas (200) gerações para os cálculos. Isto ocorreu
devido às oscilações dos valores da função objetivo durante os cálculos, como já
comentado.
112
5 Discussão
Como já foi dito, o modelo híbrido desenvolvido fornece três opções de
cálculo. A seguir, cada opção de cálculo será analisada separadamente.
5.1 Primeira opção de cálculo
A primeira opção de cálculo serve para se projetar a rede ou para verificar
como seria o funcionamento ideal da rede, caso esta já exista. Como já foi dito, o
programa calcula o regime permanente da rede como se houvesse apenas tubos e
vazões de entrada e saída nos nós, podendo ou não haver reservatório(s) com
nível(eis) constante(s).
5.1.1 Principais dificuldades encontradas na implementação do método
Durante a elaboração do programa para o cálculo do regime permanente,
foram enfrentadas várias dificuldades. O método utilizado foi baseada no artigo de
Nahavandi, Catanzaro (1973). Neste artigo, os autores não entraram em detalhes a
respeito de vários aspectos, como por exemplo:
a) Os autores não mencionaram o fato da matriz de conexão ter um tubo fictício e
não mostraram um esquema da matriz de conexão. Eles apenas explicaram como a
matriz de conexão é montada e colocaram um esquema confuso da rede que eles
utilizaram como exemplo.
b) Os autores também não explicaram o procedimento a ser tomado quando houver
um reservatório conectado a um trecho com extremidade livre, nem quando houver
um reservatório ligado a outro reservatório por vários trechos em linha. Apesar de
estes exemplos citados serem simples, o método apresentada não consegue resolvêlos.
113
5.2 Segunda opção de cálculo
A segunda opção de cálculo permite calcular o regime permanente junto com
o regime extensivo considerando-se a variação dos níveis d‟água dos reservatórios
presentes na rede (caso existam) e podendo-se considerar ou não a presença de
“boosters” na rede sem se considerar as válvulas. A segunda opção fornece ao
usuário o valor da potência dissipada na rede como um todo para os períodos
calculados (1 a 24) do regime extensivo. Este valor de potência dissipada serve como
base de comparação para o usuário quando este for utilizar a terceira opção de
cálculo.
5.2.1 Principais dificuldades encontradas na implementação do método
Ainda com referência ao artigo de Nahavandi, Catanzaro (1973), os autores
não entraram em detalhes a respeito dos seguintes aspectos:
a) Os autores não explicaram quais os procedimentos que devem ser tomados e como
é a entrada de dados quando houver válvulas, reservatórios ou “boosters” na rede.
Tudo precisou ser desenvolvido.
b) Os autores dizem que o método pode ser utilizado para se calcular as vazões nos
tubos e as pressões nos nós para o regime transitório, mas os autores também não
entraram em detalhes a respeito dos procedimentos a serem utilizados pelo regime
transitório. Na verdade, eles falaram muito pouco a respeito do cálculo transitório.
Além disto, os autores não falaram a respeito do regime extensivo.
c) A princípio, tentou-se aplicar válvulas, boosters e variações das vazões de
entrada/saída durante o cálculo do regime permanente, mas depois de várias
tentativas, chegou-se à conclusão de que só é possível fazer isto no regime transitório
e/ou no regime extensivo, pois como já foi dito, o método utilizado não considera a
variação do nível d‟água dos reservatórios durante o cálculo do regime permanente.
Isto resultou em problemas, tais como:
114
c.1) Quando, por exemplo, se varia a vazão de entrada em um nó que contém um
reservatório, e a equação de continuidade global da rede não é mais satisfeita, o nível
do reservatório permanece constante durante todo o cálculo.
c.2) Quando se coloca uma válvula na saída de um reservatório, mesmo
considerando a válvula completamente fechada, no final do cálculo, a vazão que sai
do reservatório é a mesma que sairia caso a válvula estivesse totalmente aberta e o
nível deste não varia. O método simplesmente ignora o fato da válvula estar fechada.
c.3) Se um booster é colocado na saída de um reservatório, mesmo quando a vazão
que o booster bombeia é maior ou menor do que a vazão que abastece o reservatório,
a lâmina d‟água no reservatório permanece constante.
5.3 Terceira opção de cálculo
A terceira opção de cálculo permite calcular a segunda opção acrescida dos
efeitos de válvulas instaladas na rede onde se procura otimizar as operações da rede
pela utilização do AG.
Antes do usuário utilizar a terceira opção, sugere-se que seja calculado o
regime permanente e o extensivo utilizando a segunda opção para se avaliar a
situação da rede.
A terceira opção de cálculo pode ser utilizada de duas formas:
a) Se a rede estiver sendo projetada, após o usuário obter os resultados através da
segunda opção, ele poderá avaliar os reservatórios e os nós que estão com problema
de pressão (acima ou abaixo do permitido) e assim decidir em quais tubos poderão
ser instaladas válvulas e/ou “boosters”. Caso seja necessário instalar apenas
“boosters”, a terceira opção de cálculo não será necessária, basta usar a segunda.
b) Se a rede já existir e houver válvulas instaladas, o usuário calcula o regime
permanente e o extensivo através da segunda opção sem considerar as válvulas
115
(como se na realidade elas estivessem totalmente abertas) e após isto, o usuário
identifica os pontos da rede que estão com problema (se existirem) e propõe
mudanças como permitir que a variação do(s) nível(eis) do(s) reservatório(s) seja
maior que a permitida na atualidade, instalar mais válvulas em outros tubos, retirar
válvulas já instaladas em tubos, mudar alguma válvula de um tubo para outro,
instalar e/ou retirar “boosters”, etc. Após estas mudanças, o usuário reavalia a rede
novamente e decide qual opção de cálculo será utilizada.
Deve-se esclarecer que a terceira opção de cálculo (modelo híbrido) deverá
ser utilizada em redes de abastecimento que apresentem problemas operacionais e
que precisem ser resolvidos com a instalação de válvulas ou que tenham válvulas
instaladas. Se a rede não apresentar problemas, não será necessário utilizar a
otimização proposta neste trabalho.
Outro esclarecimento é que, a princípio, apenas um tipo de válvula poderá ser
utilizado na rede (ou gaveta, ou borboleta1, etc) devido a problemas internos do
programa. Futuramente pretende-se expandir a capacidade do programa para vários
tipos de válvulas poderem ser utilizadas na rede.
5.4 Modificações feitas no método
No método original de Nahavandi, Catanzaro (1973), o usuário do programa
de computador desenvolvido neste projeto tinha que montar a matriz de conexão no
arquivo de entrada de dados. Descobriu-se uma maneira do próprio programa de
computador montar a matriz de conexão. Isto facilitou muito a entrada de dados do
programa. Por exemplo, para uma rede com duzentos tubos e cento e cinqüenta nós,
seria necessário digitar duzentas linhas com cento e cinqüenta colunas cada uma, ou
seja, o usuário teria que digitar trinta mil números. Agora, o programa de
computador cria esta matriz em poucos segundos.
Outra modificação feita é que o usuário não precisa mais entrar com o
intervalo de tempo para calcular os valores de  (já explicados antes). Quando o
usuário entrava com o intervalo de tempo, muitas vezes este valor proposto não
1
Esta válvula deve ser operada com cuidado p/ se evitar a ruptura da tubulação devido ao transitório
116
obedecia a condição de Courant e por causa disto, o programa apresentava erros
durante os cálculos e não terminava de calcular a rede. Agora, o programa de
computador calcula o intervalo de tempo obedecendo a condição de Courant e não
apresenta mais problemas de cálculo por causa do valor do intervalo de tempo.
Desenvolveu-se também uma maneira de se calcular as pressões nos nós da
rede, de modo que estas fiquem entre os limites mínimo e máximo admitidos por
norma no caso de se estar projetando uma rede. Caso a rede já exista, é possível
verificar se estes limites estão sendo obedecidos. Para isto, o programa de
computador segue o seguinte procedimento:
a) Entra-se com valores das pressões máxima e mínima admissíveis na rede no
arquivo de entrada.
b) O programa de computador calcula a rede como se houvesse apenas tubos e
vazões de entrada e saída nos nós.
c) Depois de calculada a rede, o programa de computador verifica qual o nó que tem
o maior valor de pressão. Caso a pressão deste nó seja negativa, o programa pega o
valor da pressão máxima admissível na rede e a soma ao módulo do valor da pressão
do nó. Caso contrário, o programa pega o valor da pressão máxima admissível na
rede e subtrai dela o valor da pressão do nó. Após isto, o programa pega este valor
calculado e o soma a todos os nós da rede.
Este procedimento garante que a pressão máxima admissível na rede seja
respeitada, mas não garante que a pressão mínima será respeitada. Para isto, cabe ao
usuário analisar o arquivo de saída. O usuário verifica as pressões em todos os nós da
rede. Caso haja algum nó que tenha uma pressão menor que a admissível por norma,
o usuário poderá executar dois procedimentos:
a) Se a rede estiver sendo projetada, o usuário poderá modificar alguns dados do
arquivo de entrada tais como a rugosidade dos tubos, o diâmetro ou o comprimento.
117
b) Se a rede já existir, o usuário terá condições de dizer aos operadores da rede onde
estão ocorrendo os problemas e propor soluções como instalação de boosters, troca
de tubos, etc.
O procedimento descrito anteriormente serve também para se calcular ou
verificar as cotas piezométricas dos reservatórios:
a) Se a rede estiver sendo projetada, após o programa calculá-la, o usuário verifica o
arquivo de saída e espera-se que ele escolha o nó de maior cota para se colocar o
reservatório pulmão, atribuindo a este a correspondente pressão neste nó, calculada
pelo programa. Se houver mais de um reservatório na rede, escolhe-se previamente
os nós onde estes reservatórios estarão localizados e atribui-se a eles as
correspondentes pressões nestes nós, calculadas pelo programa.
b) Se a rede já existir, após o programa calculá-la, o usuário verifica o arquivo de
saída. Caso as cotas piezométricas dos reservatórios, calculadas pelo programa, não
coincidam com as cotas existentes, cabe ao usuário analisar as possíveis causas para
isto estar acontecendo e sugerir as possíveis modificações viáveis.
A programação e a entrada de dados, para contemplar a existência de
válvulas, reservatórios ou “boosters” na rede, foi desenvolvida pelo autor.
Toda a formulação matemática para o cálculo do regime transitório e do
regime extensivo também foi desenvolvida pelo autor.
Na programação do regime transitório e do regime extensivo, a variação das
vazões de entrada/saída nos nós foi considerada primeiro. Para se calcular a variação
do nível d‟água nos reservatórios, considerou-se que esta seria igual à diferença entre
a pressão no nó do reservatório do instante de cálculo atual e a pressão no nó do
reservatório do instante de cálculo anterior multiplicada pela área da base do
reservatório e dividida pelo intervalo de tempo (definido pela condição de Courant).
Esta maneira de calcular a variação do nível d‟água do reservatório não funcionou,
pois os resultados forneciam valores cada vez maiores a cada intervalo de tempo que
acabavam por exceder a memória de cálculo do computador. Após várias tentativas
118
frustradas, resolveu-se tentar calcular a variação do nível d‟água do reservatório
utilizando apenas a equação da continuidade como já mostrado anteriormente. Esta
nova maneira para se calcular a variação do nível d‟água do reservatório foi testada e
funcionou a contento.
119
6 Conclusões
O objetivo da pesquisa foi desenvolver um modelo híbrido, que após calcular
as cargas e as vazões para o regime permanente e para o regime extensivo, utiliza um
algoritmo genético para otimizar o controle operacional de redes hidráulicas.
A partir dos resultados alcançados com o programa de computador
desenvolvido, chegou-se às seguintes conclusões:

Foi ampliada a aplicabilidade do método criado por Nahavandi, Catanzaro
(1973), pois foi desenvolvido os métodos para se calcular os períodos extensivo e
transitório.

Foi desenvolvida a técnica para se calcular a rede quando houver válvulas,
reservatórios ou boosters presentes e para se calcular a variação do nível d‟água nos
reservatórios.

A entrada de dados foi facilitada, pois no artigo de Nahavandi, Catanzaro
(1973), o usuário tinha que montar a matriz de conexão no arquivo de entrada de
dados e agora o próprio programa de computador monta a matriz de conexão. Além
disto, o programa calcula o intervalo de tempo obedecendo a condição de Courant e
não apresenta mais problemas de cálculo por causa do valor do intervalo de tempo.

Foi desenvolvida uma maneira de se calcular as pressões nos nós da rede, de
modo que estas fiquem entre os limites mínimo e máximo admitidos por norma.

A parte do modelo híbrido que se refere ao cálculo hidráulico está
funcionando a contento, pois os valores obtidos pelo modelo para as duas redes
utilizadas como exemplo neste projeto estão próximos dos valores originais obtidos
da literatura pesquisada.

Concluiu-se que a potência dissipada final na rede sem a presença de
válvulas, não necessariamente é a potência mínima dissipada pela rede, como se
120
pensou a princípio. Tudo depende do arranjo de “boosters” e válvulas utilizado para
o cálculo do regime extensivo.

Para as duas redes calculadas neste projeto, o menor valor de potência
dissipada foi obtido quando se utilizou duzentas (200) gerações com taxa de
crossover de 95%, taxa de mutação de 2% e elitismo.

Pelos resultados obtidos, conclui-se que o elitismo foi necessário para
conseguir uma convergência segura do valor da função objetivo, pois quando não se
usou o elitismo, o valor da função objetivo tendeu a convergir, mas oscilou durante
todo o cálculo, nunca chegando a um valor fixo.

A otimização proposta neste trabalho serve para ser utilizada em redes de
abastecimento que apresentem problemas operacionais e que precisem ser resolvidos
com a instalação de válvulas ou que tenham válvulas instaladas.

A parte do modelo híbrido que se refere ao algoritmo genético está
funcionando a contento, pois os valores da função objetivo obtidos pelo modelo
convergiram em todos os cálculos nos quais o elitismo foi utilizado.

O modelo computacional hidrodinâmico desenvolvido neste projeto serve
para três propósitos: dimensionar uma rede que estiver sendo projetada, verificar o
funcionamento de uma rede existente diagnosticando os problemas que estão
ocorrendo e otimizar o funcionamento de uma rede, quando consorciado com o
algoritmo genético.
6.1 Recomendações

Recomenda-se que se façam testes adicionais com o modelo híbrido
desenvolvido, tanto na parte de cálculo hidráulico (calcular outras redes com
problemas diferentes) como na parte de algoritmo genético (calcular as redes
utilizadas como exemplo neste projeto com maior número de gerações, utilizar outras
121
técnicas de recombinação e seleção e utilizar um algoritmo genético que trabalhe
com números reais ao invés de números binários para se comparar os resultados
obtidos).

Recomenda-se expandir a capacidade do programa para que vários tipos de
válvulas possam ser utilizadas na rede.

Recomenda-se que se estude um método para tratar as matrizes utilizadas
pelo
modelo
desenvolvido,
pois
o
tempo
de
processamento
aumentou
significativamente quando se calculou a segunda rede utilizada como exemplo neste
projeto. Além do mais, os métodos existentes não puderam ser aplicados nas
matrizes que compõem a parte de cálculo hidráulico do modelo híbrido
desenvolvido.
122
Anexo 1
A.1 Desenvolvimento matemático para o regime extensivo
O método baseia-se em três equações escritas em forma matricial. A eq.(3)
relaciona a diferença de carga piezométrica de um trecho com as cargas
piezométricas nos nós extremos do referido trecho:
 P 
P
   C 

g
 
 g 
(3)
A eq.(31) do método é a da continuidade escrita em forma matricial para os
nós:
C T Q  Q   Q   Q 
es
e
s


(31)
Pela eq.(15), já mostrada anteriormente, nota-se que:
HA  Q  Q 
e
s
t
(15)
A eq.(5) é a da quantidade de movimento em forma de diferenças finitas
(matricial):
 D 2


 4
 v  v0
L
 t


   D 2
D 2  Z 
D 2
D 2
  P
 g
L
 gH v
 Fav 
  gH



4
4
4
4
 L 

  
(5)
A força de atrito viscoso Fav é dada matricialmente por:
  ' 0 0
8fL Q Q

Fav   g  2 5
   D g
 


 D2 
 4 




(6)
123
Pela substituição de{Fav}, dado pela eq.(6), na eq.(5) e levando-se em conta
que v = Q/(D2/4), a eq.(5) transforma-se em:

  Q  Q0   
 8fL'Q0 Q0
   D2 g  P

 



 
 Z  H  H v  
 

 
t
 2D5g

  4  L   g


 


 
 

 
 
 

(7)
O fator de atrito f pode ser calculado pela fórmula de Swamee (matricial):
1

16


8
8
6
 

f    64   9,5ln  K  5,062,9    2500   
  3,71D R   R  
 R 



(8)
Resolve-se a eq.(7) para Q, obtendo-se:
Q 
Q0   gP  Z  H  Hv  Pc 
(9)
onde:

D2 gt
4L
Pc 
(10)
8fL'Q0 Q0
2D5g
(11)
Substituindo-se a matriz coluna {P/(g)} da eq.(3) na eq.(9) e substituindose o resultado na eq.(31), chega-se a:
 
C T  Q 0  C T  *  * C P   C T Z  H  H  P  Q   Q  Q  (32)
   
v
c
es
e
s
 
 
 g   
124
Resolvendo-se a eq.(32) para{P/(g)}, chega-se a:


P
0
1
1  T 
1
   M Qe  Qs  M C   Z  H  Hv  Pc  Q  M Qes 
 
 g 
(33)
onde M é uma matriz quadrada, definida como:
M  CT  *  * C

(14)

Na eq.(15), multiplica-se Qe  Qs por t e substitui-se HA na eq.(33)
obtendo-se a eq.(16), já mostrada anteriormente:


P
0
1
1  T 
1
   M HA M C   Z  H  Hv  Pc  Q  M Qes 
 
 g 
(16)
A solução numérica do problema pode ser obtida pela resolução das eqs.(16),
(3) e (9) em um computador digital.
125
A.2 Desenvolvimento matemático para o regime transitório
O método baseia-se em três equações escritas em forma matricial. A eq.(20)
relaciona a diferença de carga piezométrica de um trecho com as cargas
piezométricas nos nós extremos do referido trecho:
*
*
 P 
P



C
 
 
 g 
 g 
(20)
A eq.(34) do método é a da continuidade escrita em forma matricial para os
nós:
C Q  Q
*
T
es
*  Qe *  Qs *
(34)
A variação da lâmina d‟água é calculada pela equação da continuidade:
H* A  Q *  Q *
e
s
t
(35)
A eq.(36) é a da quantidade de movimento em forma de diferenças finitas
(matricial):
 D2  v *  v 0   
2
2
2
2


   P* D  g D L Z   gH * D  gH * D  F 
L




v
av


4
4  L 
4
4

 4  t   
(36)
A força de atrito viscoso Fav é dada matricialmente por:
  ' 0 0
8fL Q Q

Fav   g  2 5
   D g
 


 D2 
 4 




(6)
126
Pela substituição de{Fav}, dado pela eq.(6), na eq.(36) e levando-se em conta
que v* = Q*/(D2/4), a eq.(36) transforma-se em:

  Q*  Q0   
 8fL'Q0 Q0
   D2 g  P *

 



*
 
*
 Z  H  H v  
 

 
t
 2D5g

  4  L   g


 


 
 

 
 
 

(37)
O fator de atrito f pode ser calculado pela fórmula de Swamee (matricial):
1

16


8
8
6
 

f    64   9,5ln  K  5,062,9    2500   
  3,71D R   R  
 R 



(8)
Resolve-se a eq.(37) para Q*, obtendo-se a eq.(21), :
Q* 
Q0   gP *  Z  H*  Hv*  Pc 

(21)

onde:

D2 gt
4L
Pc 
(10)
8fL'Q0 Q0
(11)
2D5g
Substituindo-se a matriz coluna {P/(g)}* da eq.(20) na eq.(21) e
substituindo-se o resultado na eq.(34), chega-se a:
 


*
CT  Q0  CT  *  * C P   CT  Z  H*  H *  P  Q *  Q *  Q *
   
v
c
es
e
s
 
 
 g   
(38)
127
Resolvendo-se a eq.(38) para{P/(g)}*, chega-se a:




*
P
*
0
1
*
*
1  T 
*
1
*
   M Qe   Qs   M C   Z  H  Hv  Pc  Q  M Qes  (39)
 
 g 
onde M é uma matriz quadrada, definida como:
M  CT  *  * C

(14)

Na eq.(35), multiplica-se Qe *  Qs* por t e substitui-se H*A na
eq.(39) obtendo-se a eq.(40):


*
P
*
0
1
*
1  T 
*
1
*
   M H A M C   Z  H  Hv  Pc  Q  M Qes 


 g 
(40)
Após os coeficientes Ces  terem sidos calculados através da eq.(17), calculase Qes * através da eq.(18) e substitui-se na eq.(40), obtendo-se a eq.(19), todas estas
equações já foram definidas anteriormente:


*
P
 Pes 
*
0
1
*
1  T 
*
1
   M H A M C   Z  H  Hv  Pc  Q  M Ces    (19)


 g 
 g 
A solução numérica do problema pode ser obtida pela resolução das eqs.(19), (20) e
(21) em um computador digital.
128
A.3 Desenvolvimento matemático para o cálculo da função de penalidade
Figura 36 – Função de penalidade X valor da carga piezométrica em um nó qualquer
Decidiu-se que Hp med será igual a:
Hp med 
Hp max  Hp min
2
(41)
Pela fig.36, nota-se quando a carga piezométrica no nó tem um valor entre
Hp max e Hp min , o valor da função de penalidade (fp) tem valor igual a 1 e é definido
pela eq.(23), já definida anteriormente:
f p 1
se
Hpmin  Hp  Hpmáx
(23)
Pela fig.36, nota-se que quando a carga piezométrica no nó tem um valor
menor que Hp min , a função de penalidade (fp) tem valor maior que 1 e a seguinte
relação pode ser descrita:
129
Hp med
fp
1

 Hp min Hp med  Hp
(42)
Substituindo-se o valor de Hp med da eq.(41) na eq.(42) e resolvendo-se a
eq.(42) para fp, chega-se a eq.(24), já definida anteriormente:
fp 
2Hp  Hpmáx  Hpmin 
Hpmáx  Hpmin 
se
Hp  Hpmin
(24)
Pela fig.36, nota-se que quando a carga piezométrica no nó tem um valor
maior que Hp max , a função de penalidade (fp) tem valor maior que 1 e a seguinte
relação pode ser descrita:
Hp max
fp
1

 Hp med Hp  Hp med
(43)
Substituindo-se o valor de Hp med da eq.(41) na eq.(43) e resolvendo-se a
eq.(43) para fp, chega-se a eq.(25), já definida anteriormente:
fp 
2Hp  Hpmáx  Hpmin 
Hpmáx  Hpmin 
se Hp  Hpmáx
(25)
130
Lista de referências
ALBUQUERQUE,
J.A.L.
Dimensionamento
Automático
de
Redes
de
Abastecimento de Água. 1980. 121p. Dissertação (Mestrado) – Instituto de
Pesquisas Hidráulicas, Universidade Federal do Rio Grande do Sul. Porto Alegre,
1980.
COLEY, D.A. An Introdution to Genetic Algorithms for Scientists and Engineers.
Singapore: World Scientific Publishing Co. Pte. Ltd, 1999.
DANDY, G.C.; SIMPSON, A.R.; MURPHY, L.J. An Improved Genetic Algorithm
for Pipe Network Optimization. Journal of Water Resources Planning and
Management-ASCE, v.32, n.2, p.449-458, Feb. 1996.
EPP, R.; FOWLER, A.G. Efficient Code for Steady-State Flows in Networks.
Journal of the Hydrauics Division-ASCE, v.96, n.HY1. p. 43–56, Jan. 1970.
FERNANDEZ, M.F.; ARAUJO, R.; ITO, A. E. Manual de Hidráulica Azevedo
Netto. 8a Ed. atualizada. São Paulo: Editora Edgard Blücher LTDA, 2002.
HAUPT, R.L.; HAUPT, S.E. Practical Genetic Algorithms. New York: Ed. WileyInterscience, Inc, c1998.
JOWITT, P.W.; XU, C. Optimal Valve Control in Water-Distribution Networks.
Journal of Water Resources Planning and Management-ASCE, v.116, n.4, p.
455-472, Jul-Aug. 1990.
LUVIZOTTO JUNIOR, E. Algoritmos Genéticos para Otimização. Notas de Aula.
Faculdade de Engenharia Civil. Departamento de Recursos Hídricos-Unicamp.
MORSHED, J.; KALUARACHCHI, J.J. Enhancements to genetic algorithm for
optimal ground-water management. Journal of Hydrologic Engineering-ASCE,
v.5, n.1, p.67-73, 2000.
131
NAHAVANDI, A.N., CATANZARO, G.V. Matrix Method for Analysis of
Hydraulic Networks. Journal of the Hydraulics Division-ASCE, v.99, n.HY1,
p.47–63, Jan. 1973.
ORMSBEE, L.E.; WOOD, D.J. Hydraulic Design Algorithms for Pipe Networks.
Journal of Hydraulic Engineering-ASCE, v.112, n.12, p.1195–1207, Dec. 1986.
PERERA, B.J.C.; CODNER, G.P. Reservoir Targets for Urban Water Supply
Systems. Journal of Water Resources Planning and Management-ASCE, v.122,
n.4, p.270-279, 1996.
PORTO, R.L. et al. Técnicas Quantitativas para o Gerenciamento de Recursos
Hídricos. 1a Ed. Porto Alegre: Editora da Universidade/UFRGS, 1997.
PORTO, R.M. HIDRÁULICA BÁSICA. 2a Ed. São Carlos: EESC-USP, 2001.
REIS, L.F.R.; PORTO, R.M.; CHAUDHRY, F.H. Optimal Location of Control
Valves in Pipe Networks by Genetic Algorithms. Journal of Water Resources
Planning and Management-ASCE, v.123, n.6, p.317-326, Nov-Dec. 1997.
REISDORPH, K. Aprenda em 21 dias Delphi 4. Rio de Janeiro: Ed. Campus Ltda,
1999.
RIBEIRO, L.C.L.J. Modelo híbrido para o estabelecimento de rotações ótimas de
bombas de rotação variável. 2002. 117p. Dissertação (Mestrado) - Faculdade de
Engenharia Civil, Universidade Estadual de Campinas. Campinas, 2002.
SAVIC, D.A.; WALTERS, G.A. Genetic Algorithms for Least-Cost Design of Water
Distribution Networks. Journal of Water Resources Planning and ManagementASCE, v.123, n.2, p.67-77, Mar-Apr. 1997.
132
SIMPSON, A.R.; DANDY, G.C.; MURPHY, L.J. Genetic algorithms compared to
other techniques for pipe optimization, Journal of Water Resources Planning and
Management-ASCE, v.120, n.4, p.423-443. 1994.
WARDLAW, R.; SHARIF, M. Evaluation of Genetic Algorithms for Optimal
Reservoir System Operation. Journal of Water Resources Planning and
Management-ASCE, v.125, n.1, p.25-33, 1999.
WOOD, D.J.; CHARLES, C.O.A. Hydraulic Network Analysis Using Linear
Theory. Journal of the Hydraulics Division-ASCE, v.98, n.HY7, p.1157–1170,
Jul. 1972.
WOOD, D.J.; RAYES, A.G. Reliability
of
Algorithms
for
Pipe
Network
Analysis. Journal of the Hydraulics Division-ASCE, v.107, n.HY10, p.1145- 1161,
Oct. 1981.
Download

OTIMIZAÇÃO DE OPERAÇÃO DE REDE POR UM MODELO