Minicurso SBSE 2012:

Tamanho: px
Começar a partir da página:

Download "Minicurso SBSE 2012:"

Transcrição

1 Campus de Ilha Solteira Faculdade de Engenharia de Ilha Solteira Departamento de Energia Elétrica Minicurso SBSE 2012: Metaheurísticas em sistemas elétricos de potência: introdução ao estudo e aplicações Rubén Augusto Romero Lázaro Marina Lavorato de Oliveira Maio de 2012

2 1. Introdução sobre as Heurísticas As heurísticas são técnicas de otimização que geralmente encontram soluções de boa qualidade de problemas complexos. Deve-se observar que entre as décadas de 1960 e 1970, as heurísticas foram as técnicas de otimização mais usadas e com maior sucesso para resolver problemas complexos do campo da otimização matemática, especialmente para aqueles problemas não lineares, discretos e não convexos. A maioria das heurísticas encontram soluções de boa qualidade de problemas altamente complexos em tempos computacionais relativamente rápidos. Adicionalmente, a maioria das heurísticas são simples de entender e também de implementar computacionalmente. Entretanto, as técnicas heurísticas renunciam, pelo menos do ponto de vista teórico, a encontrar a solução ótima global de um problema complexo. Em problemas de grande porte e complexos, as técnicas heurísticas raramente encontram as soluções ótimas. Um problema pode ser considerado como sendo complexo, quando existe grande dificuldade para encontrar a solução ótima global devido principalmente à característica da explosão combinatória quando o tamanho do problema cresce e/ou porque o problema apresenta uma modelagem matemática complexa (variáveis inteiras ou discretas, função objetivo não linear e não diferenciável, restrições não lineares, região factível não convexa, etc.). Uma técnica heurística pode ser muito simples como, por exemplo, o uso de bom senso ou a experiência de um especialista ou pode ser muito sofisticado, geralmente envolvendo a solução de modelos matemáticos relaxados em relação ao modelo original. É interessante usar técnicas heurísticas de otimização nos seguintes casos [1]: 1. Quando não existe um método exato de otimização para resolver o problema em análise. 2. Quando a solução ótima não é muito importante do ponto de vista prático por diferentes motivos como, por exemplo, a existência de muitas soluções ótimas locais de qualidade muito próximas da solução ótima global. 3. Quando os dados usados apresentam incerteza elevada como acontece em muitos problemas relacionados com planejamento. 4. Quando existem limitações de tempo de processamento para encontrar a solução procurada e quando existem problemas de memória para armazenamento de dados. Problemas desse tipo podem aparecer em problemas de aplicação em tempo real. 5. Quando se pretende encontrar uma boa solução inicial para ser usada como ponto de partida na aplicação de uma técnica de otimização mais sofisticada como, por exemplo, quando pretendemos usar um algoritmo branch and bound. Não é uma tarefa simples classificar as técnicas heurísticas de otimização. Uma proposta de classificar as técnicas heurísticas é a seguinte [1]: algoritmos heurísticos construtivos, algoritmos de decomposição, algoritmos de divisão, algoritmos de redução, algoritmos de manipulação do modelo matemático e algoritmos de busca através de vizinhança (steepest descent heuristic). Não pretendemos realizar uma apresentação detalhada dos diferentes tipos de algoritmos ou técnicas heurísticas de otimização, mas sim, apresentar de forma detalhada apenas dois desses algoritmos ou técnicas heurísticas de otimização que são muito importantes no desenvolvimento das propostas de otimização que serão aqui apresentadas, assim como na compreensão das metaheurísticas. Essas heurísticas são as seguintes: (1) o algoritmo heurístico construtivo e, (2) o algoritmo heurístico de busca através de vizinhança. 1

3 1.1. O Algoritmo Heurístico Construtivo O algoritmo heurístico construtivo (AHC) é uma das técnicas heurísticas de otimização mais usadas para resolver problemas complexos e ainda é muito usado isoladamente ou integrado a metaheurísticas mais sofisticadas. O mais popular dos algoritmos heurísticos construtivos é o tipo guloso (greedy). O AHC do tipo guloso é o único tipo de AHC que é analisado neste trabalho e chamaremos a esse algoritmo simplesmente de AHC. O AHC é uma técnica de otimização que, em um processo passo a passo, gera uma solução geralmente de boa qualidade de um problema complexo. Em cada passo o AHC escolhe um elemento ou componente da solução que está sendo construída e no último passo termina de gerar uma solução factível. O elemento ou componente da solução que é escolhido em cada passo do AHC é identificado usando um indicador de sensibilidade que identifica o componente mais interessante a ser incorporada na solução em construção. Assim, a diferença fundamental entre os AHCs usados para resolver um mesmo problema está no indicador de sensibilidade usado. Um AHC pode assumir a seguinte forma genérica: 1. Armazenar os dados do problema e escolher o indicador de sensibilidade a ser usado. Escolher os componentes que podem ser incorporados na solução em construção (geralmente o processo é iniciado sem componentes). 2. Verificar se a solução em construção já representa uma solução factível. Caso seja factível então pare o processo porque foi encontrada a solução factível procurada. Em caso contrário ir ao passo Usando a solução em construção, resolver o problema que permite identificar o indicador de sensibilidade de todos os componentes do problema que ainda não foram incorporadas na solução em construção. 4. Usando a informação dos indicadores de sensibilidade encontrados no passo anterior identificar a componente que deve ser incorporada na solução em construção. Adicionar o componente identificado na solução em construção e voltar ao passo 2. A maneira de ilustração vamos mostrar um AHC para o problema do caixeiro viajante (traveling salesman problem). Nesse problema, o caixeiro viajante deve fazer um tour partindo de uma cidade origem, passando por cada uma das cidades uma única vez e voltando para a cidade de origem. Pretende-se encontrar o tour de distância mínima. Os dados do problema são os pontos cartesianos das cidades e existem distâncias euclidianas ligando todas as cidades. O modelo matemático desse problema é um problema de programação linear binária com um número muito elevado de variáveis e restrições. A variável de decisão binária éx ij em quex ij = 1 se o caixeiro viajante escolhe o percurso da cidade i para a cidade j e x ij = 0 se o caixeiro viajante não escolhe esse percurso. Nesse contexto, dois AHCs com níveis de sofisticação muito diferentes, para o problema do caixeiro viajante são os seguintes: 1. AHC simples: No passo 1 escolhemos a cidade inicial de forma aleatória. 2

4 No passo 3 o indicador de sensibilidade usado é a distância mais próxima. Assim, se o caixeiro viajante se encontra na cidade p então se calcula a distância da cidade p para todas as cidades ainda não visitadas. Finalmente, a próxima cidade a ser visitada é aquela que se encontra mais perto de p e que ainda não foi visitada. Portanto, em cada passo se escolhe uma aresta do grafo usando o critério de menor distância e que no final do processo deve gerar um tour. 2. AHC sofisticado: No passo 3 resolvemos a modelo matemático do problema do caixeiro viajante após usar a estratégia de relaxação. O modelo original do problema é de programação linear binária. Entretanto, se relaxamos as variáveis binárias para assumir a forma 0 x ij 1 então o problema transformado (relaxado) é um problema de programação linear (PL). Assim, após resolver o problema de PL podemos escolher o arco a ser incorporado na solução em construção como sendo aquele arco que apresenta o maior valor de x ij na solução do PL e, obviamente, escolhido entre aqueles arcos que não geram subtour na solução em construção. Também, em cada passo do AHC um conjunto de variáveis x ij já se encontram com valores conhecidos (x ij = 1 para os arcos já incorporados na solução em construção). Também algumas variáveis podem ser fixadas em x ij = 0 (aquelas relacionadas com os arcos que geram subtour com arcos já incorporados na solução em construção). Outro nível de relaxação adicional pode ser encontrado eliminando as restrições que evitam a geração de subtours. Neste caso o problema de PL a ser resolvido é muito mais simples, mas a qualidade do indicador de sensibilidade pode ficar comprometida. Em resumo, os algoritmos heurísticos construtivos do tipo guloso apresenta as seguintes características: É um processo iterativo onde em cada passo escolhe-se uma componente da solução em construção. O indicador de sensibilidade pode ser muito simples (a menor distância no caso do caixeiro viajante e cuja informação já se encontra na matriz de distâncias) ou muito sofisticado (resolver um problema de PL no caso do caixeiro viajante). Apenas no último passo se encontra uma solução factível. Antes disso não existe nada útil disponível em relação com o problema a ser resolvido. Esta característica nos lembra o algoritmo dual simplex em PL onde apenas na última iteração encontramos um ponto extremo que é adicionalmente ótimo e antes disso existe apenas uma sequência de pontos infactíveis O Algoritmo Heurístico de Busca Através de Vizinhança O Algoritmo heurístico de busca através de vizinhança (steepest descent heuristic) é significativamente diferente do algoritmo heurístico construtivo do tipo guloso. No AHC é gerada apenas uma solução factível através de uma sequência de passos usando um indicador de sensibilidade. No algoritmo heurístico de busca através de vizinhança, que chamaremos neste trabalho apenas como algoritmo SDH (do inglês Steepest Descent Heuristic para o problema de minimização), o processo é geralmente iniciado a partir de uma solução factível e na sequência são encontradas novas soluções factíveis percorrendo o espaço de busca e passando sempre para a melhor solução vizinha. 3

5 A terminologia usada na heurística SDH é diferente da terminologia usada na otimização clássica (programação linear, programação não linear, programação inteira, etc.) e às vezes pode ser significativamente diferente. Essa mesma terminologia é usada nas metaheurísticas. Assim, antes de analisar em detalhe a heurística SDH vamos revisar uma parte da terminologia usada na heurística SDH e também nas metaheurísticas Terminologia Usada na Heurística de Busca Através de Vizinhança A seguir apresentamos os principais conceitos usados na heurística SDH e, na medida do possível, faremos uma análise paralela com os conceitos usados na otimização clássica. Um detalhe fundamental a ser observado é que na otimização clássica se usa necessariamente uma modelagem matemática para resolver um problema de otimização. Assim, dado um problema como, por exemplo, o problema do caixeiro viajante, a primeira decisão na otimização clássica consiste em encontrar o modelo matemático desse problema. A seguir se resolve o modelo matemático usando uma técnica de otimização clássica. Para encontrar o modelo matemático a decisão mais importante é a escolha das variáveis de decisão. A estratégia mais popular usada por uma técnica de otimização clássica consiste em resolver o modelo matemático do problema a partir de um ponto inicial (que pode ser factível ou infactível) o que significa em escolher valores específicos para as variáveis de decisão. A partir desse ponto inicial se gera uma sequência de outros pontos (factíveis ou infactíveis) até atingir a convergência para um ponto factível e ótimo (local ou global). Nesse tipo de análise o conceito de região factível é fundamental. A estratégia fundamental da heurística SDH pode ser resumida da seguinte forma: O processo de otimização é iniciado através de uma solução inicial (factível ou infactível) que passa a ser chamada de solução corrente. Deve-se definir uma estrutura de vizinhança. Assim, deve existir uma forma de identificar as soluções que são consideradas vizinhas da solução corrente. As soluções vizinhas podem ser factíveis ou infactíveis. Na heurística SDH se passa da solução corrente para a melhor solução vizinha. O processo termina quando todas as soluções vizinhas são de pior qualidade que a solução corrente. Deve-se observar que para implementar a heurística SDH não necessariamente estamos obrigados a usar o modelo matemático do problema em análise. Na verdade a heurística SDH pode resolver problemas de otimização que não tem modelagem matemática e essa característica torna a heurística SDH, assim como as metaheurísticas, uma técnica de otimização relativamente distante da lógica de otimização usada na otimização clássica. Para uma adequada apresentação do funcionamento da heurística SDH devemos definir alguns conceitos que apresentamos a continuação e que nem sempre são apresentados na otimização clássica ou podem ter significados diferentes. A codificação ou representação de uma proposta de solução de um problema complexo representa a estratégia fundamental para entender o funcionamento da heurística SDH. Assim, a codificação de uma proposta de solução representa de forma inequívoca um elemento do espaço de busca do problema de otimização. O espaço de busca está formado por todas as propostas 4

6 de solução que podem ser identificados usando a codificação escolhida para um determinado problema de otimização e usando as estratégias de vizinhança usados para resolver o problema. Devemos lembrar que um aspecto crucial na otimização clássica é a escolha adequada das variáveis de decisão. Na heurística SDH um aspecto crucial e fundamental é a escolha de uma proposta de codificação eficiente. A codificação na heurística SDH substitui as variáveis de decisão no problema de otimização clássica. Em determinados problemas o vetor de codificação de uma proposta de solução pode ter o mesmo tamanho e a mesma estrutura que o vetor de variáveis de decisão (por exemplo, no problema da mochila), mas em outros casos podem ter forma e tamanho diferentes. Para mostrar a grande diferença que pode existir entre vetor de variáveis de decisão e vetor de codificação mostramos um exemplo do problema do caixeiro viajante para n = 10 cidades. Nesse caso, a proposta de codificação mais usada para mostrar a proposta de solução p 1 é a seguinte: p 1 = o que significa que o caixeiro parte da cidade 1 e na sequência passa pelas cidades 9, 10, 7, 4, 2, 3, 6, 8, 5 e volta para a cidade de origem 1. Portanto, uma proposta de solução para o problema do caixeiro viajante pode ser codificado em um vetor de tamanho n. Os elementos do vetor de codificação mostra a sequência em que são visitadas as cidades. A proposta de codificação mostrada para o problema do caixeiro viajante pode ser considerado extremamente eficiente pelos seguintes motivos: Qualquer proposta de solução em que aparecem os números de 1 a n no vetor de codificação representa uma solução factível (um tour). Particularmente, se os elementos do vetor de codificação de uma proposta de solução estão formados pelos números de 1 a n então não existe a possibilidade de formar subtours e, portanto, todas essas propostas de solução satisfazem trivialmente as restrições relacionadas com subtours na modelagem matemática tradicional (essas restrições são as mais numerosas). Qualquer proposta de solução em que aparecem os números de 1 anno vetor de codificação também satisfazem as restrições na modelagem matemática tradicional que exige de que o caixeiro deve chegar e sair de uma cidade apenas uma vez. Finalmente, as restrições binárias também são satisfeitas de forma trivial. Se fossem gerados todos os vetores que representam propostas de solução em que cada vetor tem os elementos de 1 a n em qualquer ordem então podemos gerar todos os tours possíveis. Em outras palavras, cada combinação dos números de 1 a n arranjados em um vetor representa um tour no problema do caixeiro viajante. Assim, podemos concluir que se usamos a codificação apresentada anteriormente para o problema do caixeiro viajante e determinadas estruturas de vizinhança então o espaço de busca é exatamente a mesma que a região factível. O vetor de codificação de uma proposta de solução é pequeno, isto é, de tamanho n e cresce pouco com o tamanho do problema. O vetor de variáveis de decisão x na modelagem matemática tradicional do problema do caixeiro viajante é de tamanho n(n 1) e cresce mais rapidamenteque que o tamanho do vetor de codificação. Portanto, a forma e estrutura do vetor de codificação é muito diferente do vetor de variáveis de decisão. Finalmente, se pretendemos resolver o problema do caixeiro viajante usando uma heurística SDH ou uma 5

7 metaheurística podemos descartar o uso da modelagem matemática usada na otimização clássica ou fingir que não conhecemos essa modelagem matemática já que não é usada no processo de solução. Uma proposta de solução está adequadamente codificada quando, a partir dessa informação, é possível encontrar o valor da função objetivo (ou seu equivalente) do problema e determinar se a proposta é factível ou infactível. Uma proposta de solução está eficientemente codificada para sua utilização em uma heurística SDH ou em uma metaheurística quando os operadores desse algoritmo podem ser eficientemente implementados. Deve-se observar que podem existir várias formas de codificar uma proposta de solução, assim como podem existir várias formas de definir as variáveis de decisão na formulação da modelagem matemática tradicional. Assim, por exemplo, no problema do caixeiro viajante podemos escolher um vetor de codificação com a mesma forma e estrutura do vetor de variáveis de decisão. Entretanto, uma análise rápida nos permite concluir que esse tipo de proposta de codificação é menos eficiente que a codificação proposta anteriormente através de um vetor de tamanho n. Para algumas metaheurísticas como, por exemplo, nos algoritmos genéticos e evolutivos em geral a proposta de codificação deve permitir uma implementação eficiente dos operadores existentes na metaheurística. No caso do algoritmo genético, uma proposta de codificação eficiente deve permitir implementar de forma eficiente os operadores de seleção, recombinação e mutação. Resumindo, a proposta de codificação escolhida para resolver um problema complexo usando a heurística SDH ou uma metaheurística deve permitir identificar de maneira única um elemento do espaço de busca, deve permitir encontrar o valor da função objetivo ou equivalente e deve permitir verificar se a proposta de solução é factível ou infactível. Adicionalmente, a proposta de codificação deve permitir definir e implementar de forma adequada as estruturas de vizinhança e/ou implementar de forma eficiente os operadores existentes na metaheurística. O espaço de busca está estreitamente relacionado com a proposta de codificação. Os elementos do espaço de busca (propostas de solução) são todas as propostas de solução que podem ser encontrados implementando as estruturas de vizinhança ou os operadores existentes na heurística SDH ou nas metaheurísticas. O espaço de busca pode compreender apenas uma parcela da região factível, exatamente a região factível ou parcelas da região factível e infactível do problema que está sendo resolvido. Os elementos do espaço de busca estão implicitamente especificados quando escolhemos a codificação de uma proposta de solução e a forma de realizar as transições a partir de uma solução inicial (ou conjunto de soluções iniciais). Assim, as estruturas de vizinhança ou operadores da metaheurística junto com a proposta de codificação definem os elementos do espaço de busca. A maneira de ilustração, podemos mencionar que no problema do caixeiro viajante o espaço de busca é exatamente igual à região factível se escolhemos a proposta de codificação mencionada anteriormente através de um vetor de tamanho n e se realizamos as transições através de vizinhança tipo k opt ou operadores genéticos que permitem gerar descendentes representados por um vetor de tamanho n e com os números de 1 a n armazenados nesse vetor de codificação. A heurística SDH realiza a busca através de vizinhança, isto é, a partir da solução corrente, passa-se para a melhor solução vizinha. Assim, precisamos definir a vizinhança da solução corrente. Seja p k a codificação da solução corrente de um problema complexo que está sendo resolvido pela heurística SDH. Uma solução vizinha de p k é qualquer proposta de solução que pode ser encontrada com a implementação de um mecanismo de perturbação da solução corrente. As 6

8 soluções vizinhas são armazenadas no conjunto N k (p). O número de soluções vizinhas de p k é conhecida como a cardinalidade de N k (p) e denotada através da notação N k (p). Assim, para definir a vizinhança da solução corrente apenas precisamos definir o mecanismo de perturbação. Supor que temos disponível a solução corrente p k e conhecemos o mecanismo de perturbação para encontrar os elementos de N k (p). Nesse contexto, os elementos de N k (p) podem representar soluções factíveis ou infactíveis para o problema que está sendo resolvido. A idéia central relacionada com a definição de N k (p) deveria ser evitar que os elementos de N k (p) sejam factíveis e infactíveis. Assim, na medida do possível devemos usar estruturas de vizinhança em que os elementos de N k (p) sejam apenas propostas de solução factíveis. Entretanto, esse tipo de proposta nem sempre é possível e depende de muitos fatores tais como a forma de codificação proposta, o tipo de problema que está sendo resolvido e da forma de definição de vizinhança. Quando não existe possibilidade de gerar apenas soluções vizinhas então a heurística SDH deve decidir a forma de tratamento das soluções vizinhas. Na maioria das aplicações as propostas de solução infactíveis são descartadas, mas em outras aplicações podem ser consideradas para análise e avaliadas considerando, por exemplo, uma penalização dessas soluções na função objetivo. Em resumo, as diferentes formas de definir a vizinhança da solução corrente diferem apenas no mecanismo de perturbação usado. A maneira de ilustração mostramos a vizinhança mais usada para resolver o problema do caixeiro viajante, isto é, a vizinhança 2 opt. O mecanismo de perturbação que permite definir a vizinhança 2 opt é a seguinte: é vizinho da solução corrente toda proposta de solução encontrada rotacionando uma parcela dos elementos do vetor de codificação da solução corrente. Assim, escolhemos duas cidades do vetor de codificação e rotacionamos a parcela do vetor de codificação que se encontram entre as duas cidades selecionadas. Assim, seja p 1 a seguinte solução corrente: p 1 = Na solução corrente mostrada anteriormente se escolhemos as cidades 7 e 6, então podemos gerar a seguinte proposta de solução vizinha: p 2 = Em relação com a vizinhança 2 opt mostrada anteriormente para o problema do caixeiro viajante podemos fazer as seguintes observações: O número de soluções vizinhas da solução corrente é igual a n(n 1). Assim, para o exemplo mostrado, a cardinalidade de N 1 (p) é igual a N 1 (p) = n(n 1) = 10(9) = 90. É muito simples e rápido avaliar a qualidade de uma solução vizinha. Para a solução vizinha mostrada anteriormente a variação da função objetivo v pode ser encontrada usando a seguinte relação: v = d 6,10 +d 7,8 d 7,10 d 6,8 7

9 Assim, a qualidade da solução vizinha pode ser determinada após 4 somas algébricas. Se v < 0 significa que a solução vizinha é de melhor qualidade. Entretanto, na maioria de problemas de otimização da engenharia elétrica a determinação da qualidade de uma solução vizinha pode requerer a resolução de um problema de programação linear, um problema de programação não linear, um sistema de equações lineares ou um sistema de equações não lineares (o conhecido problema de fluxo de carga). Quando n for relativamente grande, por exemplo n = 1000, o tamanho da vizinhança pode ser muito grande e a heurística SDH usaria muito tempo de processamento para realizar uma iteração simples. Para cada tipo de problema é possível definir vários tipos de vizinhança. Assim, a definição da vizinhança, junto com a proposta de codificação de uma proposta de solução, é um dos tópicos cruciais na formulação de uma heurística SDH eficiente. Nesta Seção foi analisado com certo detalhe o conceito de codificação de uma proposta de solução quando pretendemos resolver um problema complexo usando uma heurística SDH ou uma metaheurística porque consideramos que esse tópico é um dos mais críticos quando pretendemos resolver problemas complexos usando as metaheurísticas. Após apresentar a terminologia usada na heurística SDH retomamos a análise da heurística de busca através de vizinhança (SDH). Assim, a forma genérica da heurística SDH assume o seguinte: 1. Passo preliminar: Montar os dados do problema. Escolher uma forma de codificação de uma proposta de solução denominada de p. Identificar uma forma de avaliar a qualidade da função objetivo ou equivalente e denominada f(p). Definir a estrutura de vizinhança a ser usada, o que caracteriza o espaço de busca. 2. Encontrar uma solução inicial p o que se transforma na solução corrente p c. 3. Identificar e avaliar todas as soluções vizinhas da solução corrente p c e identificar a melhor solução vizinha p best. 4. Se f(p best ) < f(p) então a melhor solução vizinha é melhor que a solução corrente e, portanto, fazer p c = p best e voltar ao passo 3. Em caso contrário pare o processo e a solução encontrada pela heurística SDH é p c (geralmente um ótimo local). Em relação com a heurística SDH, deve-se realizar as seguintes observações: O passo 1 é muito mais importante do que normalmente é considerado por muitos pesquisadores. Uma codificação eficiente é crucial, assim como a caracterização da estrutura de vizinhança. Nesse passo também deve ser decidido como devem ser tratadas as propostas de solução vizinhas que são infactíveis. Assim, é de responsabilidade do pesquisador escolher ou definir a codificação a ser usada, do tipo de vizinhança escolhido e a forma de tratar as soluções vizinhas infactíveis. No passo 2 a heurística SDH exige apenas uma solução inicial. Assim, essa solução inicial pode ser encontrada de forma trivial escolhendo, por exemplo, uma solução gerada de forma aleatória ou pode ser gerada de forma sofisticada usando, por exemplo, um AHC 8

10 conhecido e eficiente para o tipo de problema em análise (um ótimo local). Deve-se observar que em muitos problemas pode ser muito difícil encontrar uma solução inicial factível. Portanto, em geral, a solução inicial p o pode ser factível ou infactível. Caso seja infactível então devemos mudar a estratégia de qualidade para avaliar as soluções vizinhas. A estratégia mais popular consiste em penalizar a função objetivo das propostas de solução infactíveis. Também, no passo 2 é exigido apenas uma solução inicial. No passo 3, a heurística SDH exige avaliar a qualidade de todas as soluções vizinhas e identificar a melhor solução vizinha. Esse passo pode exigir muito tempo de processamento, especialmente em determinados problemas em que avaliar a qualidade de uma solução vizinha pode exigir resolver um problema relativamente complexo como, por exemplo, um problema de programação linear ou não linear. Mesmo que a avaliação da qualidade de uma solução vizinha seja relativamente rápida como, por exemplo, no problema do caixeiro viajante, o passo 3 pode exigir muito tempo de processamento. Por exemplo, no problema do caixeiro viajante para n = o passo 3 pode exigir um tempo de processamento muito elevado para decidir uma simples mudança em quatro arestas na solução corrente (duas arestas que entram e duas arestas que saem). No passo 4 a heurística SDH termina o processo se a melhor solução vizinha for de pior qualidade que a solução corrente. Assim, se a vizinhança for definida de forma inadequada então a heurística SDH pode terminar encontrando uma solução ótima local de má qualidade. Também, devemos observar que quando a heurística SDH converge então a solução corrente é também a incumbente. Essa característica não acontece na maioria das metaheurísticas, exceto na metaheurística de busca em vizinhança variável (VNS, do inglês Variable Neighborhood Search). A maneira de ilustração, uma heurística SDH para o problema do caixeiro viajante pode assumir a seguinte forma: (1) a codificação escolhida seria a apresentada neste trabalho, isto é, um vetor de tamanho n com os números de 1 a n na estrutura interna, a função objetivo seria a mesma da modelagem matemática tradicional, isto é, a soma de distâncias do tour, a vizinhança usada seria a 2 opt e não apareceriam soluções vizinhas infactíveis, (2) a solução inicial pode ser gerada de forma aleatória ou usando o AHC mais simples mostrado na subseção 1.1 e, (3) a avaliação da qualidade das soluções vizinhas seria realizada calculando as quatro somas algébricas mostrada anteriormente. O algoritmo heurístico construtivo e a heurística SDH foi analisado com certo detalhe porque a estrutura básica da maioria das metaheurísticas podem ser interpretadas apenas como uma generalização de um AHC, uma generalização da heurística SDH ou uma generalização conjunta do AHC e da heurística SDH. Terminamos esta Seção fazendo uma diferenciação clara entre o AHC de tipo guloso e a heurística SDH. Assim, devemos observar os seguintes assuntos: Um AHC gera apenas uma solução factível através de uma sequência de passos guiado por um indicador de sensibilidade e apenas no último passo é encontrada uma solução factível. Como mencionado anteriomente, essa estratégia é muito parecida com o algoritmo dual simplex em programação linear onde apenas na última iteração é encontrada uma solução factível e ótima. Nas iterações prévias existem disponíveis apenas propostas de solução infactíveis. 9

11 Uma heurística SDH gera um conjunto de soluções factíveis a partir de uma solução inicial (geralmente factível), realizando transições através de soluções factíveis, percorrendo o espaço de busca e sempre passando para uma solução de melhor qualidade. O processo de busca termina quando todas as propostas de solução vizinhas são de pior qualidade. Essa estratégia é muito parecida com a estratégia fundamental do algoritmo primal simplex em programação linear. Uma heurística SDH geralmente é muito mais complexa, sofisticada e muito mais demorada que um AHC. Portanto, espera-se que a heurística SDH encontre soluções de melhor qualidade que o AHC na tentativa de resolver um problema complexo. Assim, quando analisamos publicações especializadas e verificamos que um AHC é superior a uma heurística SDH em termos de qualidade de solução final encontrada na resolução do mesmo problema complexo, então estamos em um caso anormal ou atípico e deveria ser analisado em detalhe os motivos desse comportamento. 2. Introdução sobre as Metaheurísticas A definição de uma metaheurística apresenta por Glover é a seguinte [1]: Metaheurísticas são técnicas de solução que gerenciam uma interação entre as estratégias de busca local e as estratégias de nível superior para criar um processo de otimização com capacidade de sair de soluções ótimas locais e realizar uma busca robusta através de espaço de busca. Alternativamente, podemos definir uma metaheurística somo sendo um processo de otimização representado por uma generalização e/ou integração do algoritmo heurístico construtivo do tipo guloso e a heurística de busca através de vizinhança de forma que seja possível encontrar soluções de qualidade percorrendo de forma eficiente o espaço de busca. Em outras, palavras, uma metaheurística pode ser interpretada como uma generalização e/ou integração do AHC e da heurística SDH mostrados na Seção anterior. Nesta Seção apresentamos as principais metaheurísticas usadas no campo da pesquisa operacional. Nessa apresentação um tanto resumida, apresentamos a metaheurística preservando as origens e a interpretação dos autores e, paralelamente, apresentamos essas metaheurísticas apenas como uma generalização e/ou integração do AHC e da heurística SDH Simulated Annealing Simulated Annealing (SA) é uma das primeiras metaheurísticas que foi usada com muito sucesso na otimização de problemas complexos na pesquisa operacional. SA foi desnvolvido após verificar que existiam muitas semelhanças entre a técnica de construção de cristais perfeitos usando a técnica de annealing e a otimização de um problema complexo no campo da pesquisa operacional. Existem muitas técnicas usadas na construção de cristais perfeitos e uma delas é a técnica de annealing. A técnica de annealing consiste em esquentar um material até temperaturas elevadas na qual existe muita movimentação molecular do material esquentado e, portanto, um novo arranjo dos átomos do material. A partir desse estado, se o material for esfriado lentamente então a movimentação molecular também diminui. Se esse processo de diminuição for adequadamente controlado preservando o chamado quase equilíbrio termodinâmico na qual a temperatura deve ser diminuida lentamente então existe grande possibilidade de que o material 10

12 se transforme em um cristal perfeito. Se esse processo não é realizado de forma adequada então esse material pode ser transformado em um cristal imperfeito, isto é, em um vidro. Resumindo, usando o paralelismo ou semelhanças que existem entre a técnica de annealing na construção de cristais perfeitos e na otimização de problemas complexos no campo da pesquisa operacional, foi desenvolvido o algoritmo de Simulated Annealing que na formulação básica assume a seguinte forma (problema de minimização): 1. Passo preliminar: Montar os dados do problema. Escolher uma forma de codificação de uma proposta de solução denominada de p. Identificar uma forma de avaliar a qualidade da função objetivo ou equivalente e denominada f(p). Definir a estrutura de vizinhança a ser usada o que caracteriza o espaço de busca. Escolher os parâmetros de SA tais como o parâmetro chamado de temperatura inicial T o, a temperatura final T f ou um critério de parada, o número de tentativas de transição no primeiro nível de temperatura N o, o parâmetro ρ que controla o número de tentativas de transição em cada nível de temperatura e o parâmetro β que controla a diminuição do parâmetro temperatura. 2. Encontrar uma solução inicialp o que se transforma na solução correntep c e fazern k = N o. s = Identificar e avaliar uma solução vizinha p v escolhida aleatoriamente. 4. Se f(p v ) < f(p c ) então a solução vizinha é melhor que a solução corrente e, deve-se realizar a transição, isto é, p c = p v e ir ao passo 4. Em caso contrário gere um número aleatório entre 0 e 1, P(0,1) = random[0,1], e seja f(p) = f(p v ) f(p c ). Assim, se exp[ f(p) T k > P(0,1) então, deve-se realizar a transição e p c = p v e, em caso contrário, a solução corrente é preservada. Ir ao passo s = s+1. Se s < N k então ir ao passo 3. Em caso contrário ir ao passo Se o critério de parada for satisfeito então pare. Em caso contrário, fazer T k+1 = βt k e N k+1 = ρn k. k = k +1. Voltar ao passo 3. Deve-se observar também que a técnica de annealing é uma técnica mais geral e não é usada apenas para a construção de cristais perfeitos. Essa técnica também é usada, por exemplo, na construção de condutores elétricos para tornar o condutor mais uniforme e maleável. Em relação ao algoritmo SA, deve-se realizar as seguintes observações: A relação exp[ f(p) T k sempre é positiva e varia entre 0 e 1. Por esse motivo faz sentido a comparação com um número aleatório P(0,1) que também varia entre 0 e 1. Adicionalmente, se T k é muito grande ou f(p) é muito pequeno então exp[ f(p) T k assume um valor próximo de 1. Por outro lado, se T k é muito pequeno ou f(p) é muito grande então exp[ f(p) T k assume um valor próximo de zero. Da análise anterior podemos concluir que se a solução vizinha tem um valor da função objetivo que é de pior qualidade que da solução corrente mas de valor muito próxima e/ou se o processo se encontra nas fases iniciais (o valor do parâmetro de temperatura elevada) então existe uma probabilidade elevada de aceitar uma solução vizinha de pior qualidade. Por outro lado, se o valor da função objetivo da solução vizinha é de pior qualidade e muito distante do valor da função objetivo da solução corrente e/ou o processo se encontra nas 11

13 fases finais (valor do parâmetro temperatura baixa) então a probabilidade de aceitar uma solução vizinha de pior qualidade é pequena. Em resumo, nas fases iniciais do processo podem ser aceitas soluções vizinhas de pior qualidade com mais facilidade (priorizando um processo de diversificação) e nas fases finais do processo raramente são aceitas soluções vizinhas de pior qualidade (priorizando o processo de intensificação). Finalmente, em qualquer estágio do processo, soluções vizinhas ligeiramente piores que a solução corrente têm maior probabilidade de serem aceitas comparadas com soluções vizinhas piores e muito distantes da solução corrente. A relação exp[ f(p) T k pode ser substituída por qualquer outra com a única condição de que desempenhe um papel equivalente, isto é, priorize as soluções vizinhas de pior qualidade da forma mostrada nos passos anteriores. Deve-se observar que o algoritmo SA básico apresentado anteriormente pode ser obtido apenas como uma generalização da heurística SDH. Comparando a heurística SDH e o algoritmo SA podemos verificar as seguintes diferenças fundamentais: A heurística SDH avalia todas as soluções vizinhas para identificar o vizinho de melhor qualidade. Assim, o passo 3 da heurística SDH é muito demorada. Por outro lado, o SA escolhe aleatoriamente uma solução vizinha e decide se realiza a transição sem conhecer nem avaliar as outras soluções. Nesse contexto, nas fases iniciais SA realiza transições com maior intensidade que a heurística SDH, mas nas fases finais do processo ambas técnicas de otimização devem apresentar comportamento muito próximos. SA pode sair de um ótimo local ao aceitar de forma probabilística transições para soluções vizinhas de pior qualidade. Essa é a principal diferença entre a heurística SDH e a metaheurística SA. Obviamente o SA apresenta um maior tempo de processamento e deve encontrar soluções de melhor qualidade que a heurística SDH Tabu Search - Busca Tabu Tabu Search (TS) é uma metaheurística desenvolvida por Fred Glover [1]. Ao contrário da maioria das metaheurísticas que usaram comportamentos ou características existentes em ramos do conhecimento distantes da otimização matemática, Glover usou apenas conhecimento existente no campo da otimização matemática. Antes de inventar o TS, Glover já era um pesquisador destacado em otimização clássica, especialmente nas técnicas de otimização de problemas de programação inteira. A idéia central de Glover é mostrar que é possível inventar uma estratégia de busca inteligente percorrendo o espaço de busca de forma eficiente e seletiva. Nesse processo é fundamental integrar o processo de busca a estratégias de intensificação e de diversificação. Nesse contexto, intensificar significa realizar uma busca mais intensa em torno da solução corrente, por exemplo, aumentando o tamanho da vizinhança ou melhorando a qualidade da vizinhança. Por outro lado, diversificar significa sair de uma região do espaço de busca e, de forma proposital, atingir uma região distante para novamente realizar algum processo de intensificação. A formulação básica de TS que está inspirado fundamentalmente no uso da estratégia de intensificação assume a seguinte forma: 12

14 1. Passo preliminar: Montar os dados do problema. Escolher uma forma de codificação de uma proposta de solução denominada de p. Identificar uma forma de avaliar a qualidade da função objetivo ou equivalente e denominada f(p). Definir a estrutura de vizinhança a ser usada o que caracteriza o espaço de busca. Identificar os atributos que devem ser proibidos e o critério de aspiração. Escolher os parâmetros do algoritmo tais como a duração da lista tabu. Escolher o critério de parada. 2. Encontrar uma solução inicial p o que se transforma na solução corrente p c. 3. Identificar e avaliar todas as soluções vizinhas da solução corrente p c, ordenar essas soluções vizinhas por qualidade sendo que o primeiro da lista é a melhor solução vizinha p best. 4. Realizar a transição para a solução vizinha melhor classificada que não tem o atributo proibido ou se tem o atributo proibido, então satisfaz o critério de aspiração. Seja p e a melhor solução vizinha escolhida, então fazer p c = p e. 5. Atualizar a incumbente e a lista de atributos proibidos. Se o critério de parada for satisfeito então pare. Em caso contrário voltar ao passo 3. O algoritmo TS anteriormente apresentado é chamado de algoritmo TS básico que fundamentalmente usa memória de curto prazo, uma lista de atributos proibidos e um critério de aspiração, isto é, é uma estratégia de otimização que prioriza a intensificação. Técnicas de otimização tipo TS mais complexas podem ser implementadas onde o TS básico funciona como um módulo de otimização integrado em uma estrutura TS mais complexa. Essas estruturas mais complexas podem ser idealizadas usando outros operadores existentes na TS tais como a diversificação, a memória baseada em frequência, a lista de soluções de elite, o path relinking, entre outros. Para uma análise detalhada sobre a teoria e aplicação de TS ver [1]. Em relação ao TS básico apresentado anteriormente, deve-se mencionar as seguintes observações: A única diferença do algoritmo TS básico em relação com a heurística SDH é que TS realiza a transição para a melhor solução vizinha que não tem atributo proibido ou se tem o atributo proibido então satisfaz o critério de aspiração. Em outras palavras, se todas as soluções vizinhas da solução corrente são piores que a solução corrente então o algoritmo TS passa para a menos pior, mas montando uma estratégia para tentar evitar visitar uma solução já visitada. Como o algoritmo TS pode passar para uma solução de pior qualidade e ao mesmo tempo apresenta uma estratégia gulosa então deve existir uma estratégia para evitar voltar a visitar uma solução já visitada. Essa estratégia pode ser montada de forma explícita armazenando todas as soluções já visitadas (ou um conjunto menor representado pelas últimas soluções já visitadas) e verificando se a solução vizinha candidata a ser escolhida já foi visitada anteriormente ou pode ser armazenada de forma implícita armazenando apenas uma característica da solução visitada e chamada de atributo. O algoritmo TS básico não recomenda o armazenamento de soluções explícitas devido a problemas de memória para armazenamento da informação e pelo tempo de processamento necessário para verificar se uma solução vizinha já foi visitada anteriormente e, portanto, se encontra armazenada. Entretanto, essa premissa que era muito válida na 13

15 década de 1980 pode não ter a mesma validade atualmente devido ao incremento elevado de disponibilidade de memória dos computadores modernos e também ao aumento da velocidade de processamento desses computadores. Assim, para determinadas aplicações pode ser oportuno avaliar a possibilidade do uso de memória explícita. Na estratégia implícita é usado o conceito de atributo. O atributo relacionado com uma proposta de solução é algum tipo de informação que permite identificar alguma característica da proposta de solução. O tipo de atributo mais usado é o próprio mecanismo usado na transição e que também permite a identificação de uma solução vizinha da solução corrente. Podemos mostrar um exemplo usando o problema do caixeiro viajante e a estrutura de vizinhança 2 opt. Nesse contexto, uma solução vizinha da solução corrente é identificada escolhendo duas cidades no vetor de codificação e rotacionando as cidades localizadas entre essas cidades no vetor de codificação. Assim, seja a solução corrente p c : p c = Uma solução vizinha pode ser identificada, por exemplo, escolhendo as cidades 7 e 6, para encontrar a seguinte solução vizinha p v (usando a vizinhança 2 opt): p v = Se o algoritmo TS básico realiza uma transição da solução corrente p c para a solução vizinha p v, então as cidades 6 e 7 não podem ser usadas para gerar novas soluções vizinhas durante um número de iterações (a duração da lista tabu). Nesse contexto, o atributo proibido é o movimento reverso de duas cidades (6 e 7). Deve-se observar que ao proibir escolher as cidades 6 e 7 para gerar novas soluções vizinhas estamos tentando evitar voltar a visitar a solução p c já visitada. A proibição através de atributos tenta evitar voltar a uma solução já visitada. Entretanto, como essa proibição termina após k p transições previamente especificada, então é possível no futuro visitar uma solução já visitada e nesse caso acontece o fenômeno chamado de ciclagem e uma forma de atenuar esse problema é aumentando o valor de k p. Por outro lado, todas as soluções vizinhas que compartilham um atributo proibido com uma solução já visitada também não poderiam ser visitadas. Nesse contexto, se o valor de k p for muito grande, então podem existir muitas soluções vizinhas que não poderiam ser visitadas porque compartilham os mesmos atributos de soluções já visitadas e que ainda se encontram proibidas. Por esse motivo, o valor de k p não pode ser muito grande. Adicionalmente, muitas soluções vizinhas que compartilham atributos proibidos com soluções já visitadas podem ser de excelente qualidade e, eventualmente, a própria solução ótima global pode estar proibida. Para contornar esse problema foi inventada a estratégia de critério de aspiração. A idéia central do critério de aspiração é eliminar a proibição do atributo de uma solução vizinha de excelente qualidade porque compartilha o mesmo atributo de uma solução já visitada. Assim, se uma solução vizinha satisfaz um critério de qualidade que permite 14

16 suspeitar que seja uma solução ainda não visitada então eliminamos a proibição e realizamos a transição para essa solução vizinha. Esse critério de qualidade está relacionado com o valor da função objetivo. Um critério extremo, por exemplo, consiste em especificar que uma solução vizinha satisfaz o critério de aspiração, se for melhor que a incumbente. Nesse caso, existe a certeza absoluta de que essa solução vizinha nunca foi visitada anteriormente, mas apresenta a desvantagem de que raras vezes pode ser acionada o que pode ser quase equivalente a não ter critério de aspiração. Geralmente, pode ser mais oportuno escolher um critério de aspiração menos exigente. Um exemplo pode ser o seguinte: se a solução vizinha é melhor que as soluções visitadas nas últimas k ul iterações então satisfaz o critério de aspiração O Algoritmo Genético O algoritmo genético (AG) é uma metaheurística desenvolvida por Holland [3] na década de 70 sendo que apenas na década de 80 teve sua aplicação de forma intensa para resolver problemas complexos no campo da pesquisa operacional. Para desenvolver o AG Holland encontrou semelhanças entre a forma de resolver um problema de otimização matemática e o processo de seleção natural e de evolução das espécies. Na verdade, na natureza o processo de seleção natural e a evolução das espécies é a consequência de um processo de otimização estocástica que acontece em um determinado ambiente e em tempo real. O processo de seleção natural e a evolução das espécies é um problema muito complexo para que seja imitado de forma adequada por um processo de otimização de um problema complexo do campo da pesquisa operacional. Assim, pode-se afirmar que o AG imita apenas uma parcela dos componentes qua fazem parte do processo de seleção natural e de evolução das espécies. Algumas implementações do AG que não acompanham de forma adequada o processo de seleção natural e a evolução das espécies são as seguintes: Um cromossomo na genética é considerado como equivalente a uma proposta de solução no problema de otimização. Na verdade uma proposta de solução deveria ser equivalente a um individuo. Adicionalmente, na genética, nas espécies mais complexas não existe um cromossomo, mas uma cadeia cromossômica. Um cromossomo na genética na verdade é um par cromossômico formado por duas cadeias de informação, um herdado do pai e outro herdado da mãe. Um elemento do cromossomo é um gene que tem dois valores definidos (alelos) um em cada cadeia cromossômica. As duas informações representam uma unidade de informação genética. Na maioria dos casos existem apenas dois tipos de alelos (nessa posição genética e para todos os indivíduos da espécie) na posição correspondente a um gene. Assim, esse tipo de informação pode ser armazenado de forma binária (0 ou 1). Entretanto foi provado que para uma determinada espécie, existem vários tipo de alelo entre os elementos da espécie. Por exemplo, o gene que determina a cor dos olhos nos humanos. Portanto, a codificação binária usada nos AG não representa de forma adequada aquilo que acontece na natureza. A informação genética presente em um gene define o fenótipo, isto é, a característica externa do individuo. Assim, por exemplo, um tipo de alelo (informação genética) define o tipo de sangue humano (Rh + ou Rh ). Assim, existiria uma relação biunívoca entre tipo de alelo e fenótipo, o que permite montar uma estratégia de codificação (tipo de alelo) e decodificação (fenótipo) no AG. Entretanto, foi provado que em muitos casos 15

17 apenas um tipo de alelo define várias características fenotípicas (fenômeno conhecido como pleitropia) há também vários alelos correspondentes a vários genes que definem apenas uma característica fenotípica (fenômeno conhecido como poligenia). Assim, para esses casos não existe uma relação biunívoca entre informação genética e o fenótipo. Adicionalmente, o fenômeno de dominância na genética em que um alelo domina o outro alelo é muito importante na genética e não se encontra representado no AG. O fenômeno de crossing over é fundamental para a existência da diversidade genética entre os individuos de uma espécie. A diversidade genética é a chave fundamental na seleção natural e na evolução das espécies. O fenômeno de crossing over acontece quando uma célula reprodutiva se duplica e se divide. Assim, uma célula reprodutiva (que é uma unidade celular com duas cadeias cromossômicas) após o crossing over gera quatro cadeias cromossômicas independentes. Acontece que na separação, uma cadeia cromossômica (por exemplo, um espermatozoide) é formado por parcelas da cadeia cromossômica herdado do pai e da mãe, formado por um processo de recombinação bastante complexo. Em outras palavras, um espermatozoide é formado por pequenas parcelas da cadeia cromossômica do pai e da mãe, misturados por parcelas pequenas de cada um. Sem crossing over, um espermatozoide estaria formado apenas pela cadeia cromossômica herdada pelo pai ou pela mãe. Assim, um espermatozoide é uma meia célula que posteriormente pode se juntar a um óvulo para formar uma nova unidade celular (zigoto) e, portanto, um novo indivíduo. Assim, deve-se esclarecer que o fenômeno de crossing over e a reprodução sexuada acontecem em instantes muito diferentes. No AG o fenômeno de crossing over é imitado pelo operador de recombinação. Pode-se verificar que esse processo de imitação não é muito adequado. O fenômeno da mutação acontece na natureza quando a composição genética de um gene é alterado (no processo de duplicação e separação de uma célula reprodutiva). Geralmente, esse processo de mutação pode gerar um indivíduo de pior qualidade, mas às vezes pode gerar indivíduos de melhor qualidade. Esse fenômeno é adequadamente imitado no AG. Em resumo, podemos afirmar que um AG imita de forma não adequada o processo de seleção natural e de evolução das espécies. Esse processo de imitação é mais crítico no fenômeno de crossing over e relativamente significativo na codificação binária. Entretanto, apesar de todas as observações realizadas anteriormente, o AG genético apresenta excelente desempenho na resolução de muitos problemas do campo da pesquisa operacional. Assim, sempre existiu essa duvida entre os pesquisadores sobre esse aparente paradoxo, o que de alguma maneira explica a busca intensa de encontrar algoritmos inspirados na seleção natural e da evolução das espécies que incorporem de forma adequada o que acontece na natureza. Essa pode ser uma explicação para a grande diversidade de algoritmos desse tipo, que existe na literatura especializada e que podem ser denominados apenas como algoritmos evolutivos. Um algoritmo genético básico assume a seguinte forma: 1. Passo preliminar: Montar os dados do problema. Escolher uma forma de codificação de uma proposta de solução denominada de p. Identificar uma forma de avaliar a qualidade da função objetivo ou equivalente e denominada f(p). Escolher os parâmetros do algoritmo tais como o tamanho da população n p, a taxa de recombinação ρ r, a taxa de mutação ρ m e o tipo de seleção. Escolher um critério de parada. 16

18 2. Gerar a população inicial, isto é, gerar um conjunto de n p propostas de solução que se transforma na população corrente. 3. Avaliar a qualidade f(p) de todos os elementos da população e atualizar a incumbente, se possível. 4. Se o critério de parada for satisfeito, pare. Em caso contrário, ir ao passo Implementar o operador de seleção. 6. Implementar o operador de recombinação. 7. Implementar o operador de mutação, atualizar a população corrente e voltar ao passo 3. Os primeiros algoritmos genéticos usavam a codificação binária. Entretanto, os algoritmos genéticos modernos seguem a proposta de Michalewicz [2] sugerindo que a codificação deve ser realizada seguindo a natureza e as características do problema. Assim, por exemplo, no problema da mochila a codificação pode ser a binária, no problema do caixeiro viajante a codificação mais popular é um vetor que mostra a sequência em que as cidades são visitadas. Geralmente, em problemas que apresentam uma modelagem matemática e a proposta consiste em usar essa modelagem matemática e codificar as variáveis de decisão desse modelo, então a proposta mais popular consiste em codificar as variáveis binárias utilizando codificação binária, as variáveis inteiras e discretas usando a codificação inteira e as variáveis contínuas usando uma codificação real. Entretanto, em problemas altamente restritos geralmente se codifica apenas as variáveis binárias e inteiras, sendo que o valor exato das variáveis contínuas são encontrados de forma exata resolvendo um subproblema auxiliar (problema de programação linear, problema de programação não linear, sistema de equações algébricas lineares ou sistema de equações algébricas não lineares). Esse é o caso da maioria dos problemas de otimização relacionados com o planejamento e a operação de sistemas de energia elétrica. A população inicial, isto é, o conjunto inicial de propostas de solução geralmente é montada de forma aleatória. Entretanto, em algoritmos genéticos mais sofisticados, o conjunto inicial de propostas de solução pode ser gerado usando algoritmos heurísticos construtivos eficientes de forma a gerar soluções de qualidade e diversificadas. O operador de seleção determina o número de participações que deve ter cada elemento da população (proposta de solução) na formação da nova população. Obviamente o número de participações deve ser um número inteiro. O operador de seleção é um dos operadores que foi mais discutido e analisado nas fases iniciais de aplicação dos algoritmos genéticos. Na proposta inicial do algoritmo genético, o operador de seleção era implementado usando a seleção proporcional. A seleção proporcional determina o número de participações de cada proposta de solução usando a seguinte relação: Nd i = n p f i (p) n p f i (p) i=1 (1) em que Nd i é o número de participações (descendentes) da proposta de solução i, f i (p) é o valor da função objetivo ou equivalente da proposta de solução i e n p é o número de propostas de solução (tamanho da população). Os valores dos Nd i são não inteiros e, portanto, precisamos usar uma técnica de integralização desses valores. Na proposta original do AG, esse processo é realizado usando uma técnica estocástica parecido com a roleta nos jogos de azar. 17

19 Para que a relação (1) seja aplicável o problema de otimização deve estar padronizado. Na versão inicial do AG isso significava que o problema deveria ser de maximização e os valores da função objetivo deveriam ser maiores ou iguais a zero. Sem esses requisitos a relação (1) não é aplicável. Portanto, se um determinado problema de otimização não cumpre esses requisitos então esse problema deve ser padronizado, isto é, deve ser transformado para um problema equivalente ou mais ou menos equivalente. Geralmente é relativamente fácil transformar um problema de minimização em um problema de maximização, mas a necessidade de satisafazer simultaneamente o requisito de que f i (p) 0 nem sempre é possível. Nesse contexto usamos o conceito de função objetivo ou equivalente. Assim, se não for possível transformar um problema de minimização em um problema de maximização e ao mesmo tempo cumprir o requisito de que f i (p) 0 então usamos uma função objetivo que não preserva as características originais, mas pode ser considerado equivalente sem ser exatamente equivalente. Para ilustrar o problema anterior consideremos um problema de maximização, mas aparecem valores de f i (p) < 0 então esse problema não se encontra padronizado. Nesse contexto, devemos aplicar a chamada técnica de janelamento que significa transformar os valores da função objetivo para que todos eles sejam não negativos, isto é, escolhemos uma constante K de forma que f n i (p) = f i (p) + K 0. Assim, o operador de seleção é aplicado usando os novos valores de função objetivo (nesse caso chamamos a esse valor transformado de função objetivo equivalente para fins de implementação do operador de seleção). Uma análise detalhada mostra que a relação (1) também é aplicável se o problema for de minimização e todos os valores dosf i (p) 0. Assim, de forma alternativa, se um problema for de minimização e todos os valores da função objetivo são menores ou iguais a zero, então esse problema também se encontra padronizado. A seleção proporcional foi criticada por vários motivos tais como a necessidade de que o problema se encontre padronizado, o aparecimento das chamadas supersoluções com valores de função muito superiores aos outros e, portanto, com direito a muitos descendentes o que geralmente acontece nas fases iniciais do processo, a perda de diversidade que acontece quando o valor das funções objetivo das propostas de solução que formam a população são muito próximos o que torna o processo de seleção em uma implementação quase aleatória e que tipicamente acontece nas fases finais do processo. Adicionalmente, devemos observar que os valores dos Nd i são não inteiros e, portanto, precisamos de uma fase de integralização desses valores que na seleção proporcional é realizado pela roleta. Na década de 90 apareceram muitas propostas alternativas para a seleção proporcional. As primeiras foram apenas modificações da seleção proporcional. Assim, pode-se realizar modificações de forma a mudar os resultados apresentados pela relação de proporcionalidade (1) (perturbações nos valores da função objetivo para mudar a lógica de proporcionalidade, atribuição de limites aos valores de Nd i, etc.) e/ou mudar ou eliminar o trabalho da roleta. Aplicações recentes dos AG praticamente abandonaram a lógica de proporcionalidade, isto é, abandonaram o uso da relação (1) e, portanto, a necessidade de padronização dos problemas de otimização quando pretendemos usar algoritmos genéticos. Uma dessas propostas é a seleção por torneio. Nessa proposta, os descendentes são escolhidos realizando n p jogos. Em cada jogo são escolhidos aleatoriamente k propostas de solução (elementos da população) e a proposta de solução ganhadora e com direito a participar na formação da nova população é aquela que tem a função objetivo (ou equivalente) de melhor qualidade. O valor de k geralmente é pequeno e tipicamente escolhido do conjunto k {2,3,4,5}. Após n p jogos termina o processo de seleção. Consideramos a seleção por torneio muito superior que a seleção proporcional porque apresenta vantagens tais como: o problema não precisa de padronização (pode ser de maximização ou de minimização), os valores da função objetivo não são muito determinantes (uma super- 18

20 solução normalmente gera o mesmo número de descendentes que a simples melhor solução), não apresenta perda de diversidade (precisa apenas que os elementos da população apresentem valores de função objetivo diferentes para realizar uma excelente seleção) e não precisa da roleta. A recombinação escolhe (geralmente de forma aleatória) duas propostas de solução com direito a gerar novos descendentes e recombina essas soluções gerando duas candidatas a novas soluções. Cada descendente está formado por parcelas de uma das duas soluções geradoras. Assim, usando a recombinação de um ponto, um descendente está formado por uma parcela continua de um gerador e a seguir outra parcela continua do outro gerador. A recombinação pode ser de um ponto, de dois pontos, vários pontos ou multiponto. Finalmente, a mutação significa uma pequena perturbação na composição de um proposta de solução. Na codificação binária, uma posição do vetor de codificação que tem valor atual de 0 pode ser mudada para o valor 1. Em outros tipos de codificação, deve ser realizada uma pequena perturbação levando em conta o tipo de codificação usado e as características do problema. Uma análise detalhada dos operadores de recombinação e de mutação estão fora do escopo deste trabalho. Deve-se observar que o algoritmo genético básico pode ser reformulado usando apenas conceitos existentes na pesquisa operacional e sem necessidade de procurar conceitos existentes na seleção natural e a evolução das espécies. Na verdade, o AGB pode ser interpretado como uma generalização da heurística SDH. Assim, uma generalização da heurística SDH usando a lógica do AGB seria a seguinte: 1. Passo preliminar: Montar os dados do problema. Escolher uma forma de codificação de uma proposta de solução denominada de p. Identificar uma forma de avaliar a qualidade da função objetivo ou equivalente e denominada f(p). Definir a estrutura de vizinhança dinâmica definida pelos operadores de seleção, recombinação, mutação e os respectivos parâmetros. 2. Encontrar um conjunto n p de soluções iniciais que se transformam no conjunto de soluções corrente (população corrente). 3. Avaliar a qualidade de todas as soluções existentes na população corrente, isto é, encontrar os valores de f i (p). Atualizar a incumbente, se possível. 4. Se for satisfeito o critério de parada então pare. Em caso contrário ir ao passo A partir do conjunto de soluções corrente gerar um novo conjunto de n n p propostas de solução usando as estratégias de seleção, recombinação e mutação. O novo conjunto de soluções passa a ser o conjunto de soluções corrente. Voltar ao passo 3. No algoritmo apresentado anteriormente, a estratégia de seleção pode ser a seleção usando torneio. A estratégia de recombinação é simplesmente a mistura da informação codificada em duas soluções previamente selecionadas para gerar duas novas soluções candidatas, isto é, a partir de duas soluções de boa qualidade (selecionadas) e que se encontram estrategicamente localizadas no espaço de busca (região em que podem existir outras soluções melhores) gerar outras duas soluções que devem estar localizadas na região do espaço de busca entre as duas soluções geradoras e, portanto, existe grande probabilidade de que essas soluções novas sejam melhores que as soluções geradoras. A estratégia de mutação seria apenas uma pequena perturbação na solução encontrada após a recombinação, isto é, uma solução vizinha dessa solução no 19

21 espaço de busca. Em outras palavras, a partir de n p propostas de solução gerar n p novas propostas de solução priorizando as melhores soluções e descartando as piores dentro de uma lógica estocástica e, portanto, encontrando soluções novas na vizinhança dessas soluções melhores no espaço de busca e, finalmente, incorporar um elemento de perturbação adicional chamado de mutação que consiste em escolher de forma estocástica uma solução vizinha A Metaheurística GRASP O algoritmo GRASP, cujo nome vem do inglês Greedy Randomized Adaptive Search Procedure, é uma das metaheurísticas que juntamente com tabu search foram desenvolvidos usando apenas conceitos existentes no campo da pesquisa operacional. Lembremos que Glover, o inventor das metaheurísticas de tabu search e busca dispersa, já era um pesquisador conceituado no desenvolvimento de técnicas de otimização, especialmente no desenvolvimento de técnicas clássicas de otimização. Os inventores do GRASP (Feo e Resende) também já eram pesquisadores conceituados em temas de otimização no campo da pesquisa operacional. Assim, eles tinham pleno domínio da teoria e aplicação das técnicas heurísticas de otimização, bom como das técnicas exatas de otimização (as técnicas clássicas de otimização). Particularmente, Feo e Resende conheciam o algoritmo heurístico construtivo e a heurística de busca através de vizinhança (a heurística SDH, steepest descent heuristic). Assim, uma análise detalhada do GRASP permite verificar de que esse algoritmo é apenas uma junção e uma generalização do AHC do tipo guloso e da heurística SDH. Na análise das heurísticas tradicionais (que apareceram muito antes que as metaheurísticas) verificamos que o AHC do tipo guloso e a heurística SDH eram os mais importantes pelo desempenho que apresentam e porque essas heurísticas podiam ser usadas para inventar metaheurísticas através de um processo de junção e de generalização. Portanto, o algoritmo GRASP vai ser apresentado e analisado usando os tópicos conceituais já desenvolvidos para o AHC do tipo guloso e da heurística SDH Teoria Básica de GRASP O algoritmo GRASP, para um problema genérico, assume a seguinte forma: 1. Passo preliminar: Montar os dados do problema. Escolher uma forma de codificação de uma proposta de solução denominada de p. Identificar uma forma de avaliar a qualidade da função objetivo ou equivalente e denominada f(p). Escolher uma estratégia heurística construtiva (um algoritmo heurístico do tipo guloso a ser usado na fase construtiva) e uma estratégia de busca local para ser usada na fase de busca local (implica escolher uma heurística tipo SDH ou mesmo outra metaheurística, juntamente com as estruturas de vizinhança e os correspondentes parâmetros). 2. Implementar a fase de pré-processamento. 3. Realizar a fase de busca construtiva. 4. Realizar a fase de pós-processamento de busca local. Atualizar a incumbente caso seja possível. 5. Se o critério de parada não for satisfeito, voltar ao passo 2. Caso contrário, pare. A resposta do algoritmo é a incumbente armazenada. 20

22 O pré-processamento tenta identificar determinadas subestruturas, isto é, atributos ou conjunto de atributos, que permitem iniciar o processo de busca construtiva de forma mais eficiente ou diminuir o espaço de busca do problema. Por exemplo, no problema do caixeiro viajante podemos descartar todos os arcos (distância entre duas cidades) que sejam maiores a uma distância adequadamente escolhida porque existe quase certeza de que esses arcos não fazem parte da solução ótima. No outro extremo, por exemplo se existem duas cidades muito afastadas das outras cidades então existe quase certeza que o arco entre essas duas cidades deve ser usado. A idéia central na fase de pre-processamento é diminuir o espaço de busca incorporando componentes do problema na solução em construção porque existe a certeza ou quase certeza de que esses componentes fazem parte da solução e descartando outros componentes porque existe certeza ou quase certeza de que esses componentes não devem fazer parte da solução ótima ou quase ótima. Essa estratégia é muito comum e muito usada na otimização clássica, especialmente nas técnicas de solução de problemas de programação (linear) inteira mista. Nesse caso existem várias estratégias de pre-processamento que permitem fixar variáveis inteiras ou binárias nos valores ótimos antes de iniciar o processo de otimização (por exemplo combinando restrições em programação binária). Também existem estratégias de geração de restrições que eliminam uma parcela da região factível, porque existe a certeza de que a solução ótima não se encontra nessa parcela da região factível descartada (por exemplo, as restrições substitutas). Adicionalmente, essa estratégia de fixação de variáveis ou redução do espaço de busca, não somente faz parte de uma fase de pre-processamento. Essa estratégia em alguns casos faz parte da própria estratégia central de uma técnica de otimização. Assim, por exemplo, a estratégia central do algoritmo branch and bound consiste em relaxar a região factível do problema original (ao relaxar a integralidade das variáveis inteiras) e depois a idéia central é gerar novas restrições para separar de forma disjuntiva a região factível do problema relaxado e diminuir sistematicamente o tamanho dessas regiões factíveis reduzidas até encontrar a solução ótima do problema original. A idéia central nos algoritmos de planos de cortes (como o algoritmo de planos de cortes de Gomory) também é muito parecida do ponto de vista conceitual, isto é, inicialmente aumentamos a região factível do problema original relaxando a integralidade das variáveis inteiras ou binárias e depois reduzimos sistematicamente a região factível do problema relaxado ao incorporar novos planos de cortes até que o ótimo do problema relaxado seja inteiro e, portanto, também ótimo do problema original. Finalmente outra estratégia de fixação de variáveis na otimização clássica é o Teste de Fixação de Variáveis Binárias de Geoffrion usado no algoritmo de Balas especializado para resolver problemas de programação binária. A fase construtiva do GRASP é apenas um algoritmo heurístico construtivo (AHC) do tipo guloso generalizado. Portanto, na fase construtiva do GRASP a idéia central é gerar uma solução de boa qualidade tentando contornar as limitações do AHC do tipo guloso. Adicionalmente, a proposta permite gerar um número elevado de soluções de qualidade e geralmente diferentes quando o algoritmo é processado repetidas vezes. Para entender a utilidade da fase construtiva do GRASP vamos analisar de forma resumida as limitações do AHC do tipo guloso. Um AHC do tipo guloso gera uma solução, geralmente de boa qualidade, através de uma sequência de passos e em cada passo adicionamos uma componente da solução em construção, como mencionamos anteriormente. A componente que é incorporada na solução em construção é identificada usando um indicaddor de sensibilidade. Para ilustrar este fato vamos repetir a análise de um AHC simples para o problema do caixeiro viajante. Neste caso, o caixeiro inicia o tour de uma cidade escolhida aleatoriamente e em cada passo o caixeiro passa para uma cidade que se encontra mais próxima e que ainda não foi visitada. Nesse AHC, a partir da cidade em que se encontra o caixeiro (a cidade corrente), em cada passo ordenamos as cidades ainda não visitadas usando a informação da distância da cidade corrente para cada uma das cidades 21

23 ainda não visitadas. Nessa lista ordenada, a cidade mais próxima está em primeiro lugar na lista. Nesse contexto, o AHC escolhe a cidade mais próxima (a primeira da lista) e incorpora o arco entre essa cidade e a cidade corrente na solução em construção, e essa cidade se transforma na cidade corrente (onde se encontra o caixeiro). Um processo repetido gera um tour para o problema do caixeiro viajante. A questão central agora é identificar os motivos pelos quais o AHC mencionado anteriormente quase nunca encontra a solução ótima para o problema do caixeiro viajante de tamanho razoável. Para tentar responder essa questão podemos realizar a seguintes observações: Para que o AHC gere a solução ótima em cada passo devemos escolher o arco ótimo. Assim, é quase impossível que para um problema do caixeiro viajante com n = 100 cidades um AHC desse tipo encontre a solução ótima. Entretanto, se para um problema comn = 1000 cidades, as cidades estiverem uniformemente distribuídas em uma circunferência então o AHC anteriormente apresentado encontraria sempre a solução ótima. Agora supor que estamos resolvendo o problema do caixeiro viajante usando o AHC e o caixeiro se encontra na cidade k. Supor que existem ainda 80 cidades ainda não visitadas. Supor também que todos os arcos já incorporados foram ótimos. Nesse contexto, supor que apenas uma cidade (a cidade s) se encontra muito perto da cidade corrente k e todas as outras 79 se encontram muito distantes. Nesse contexto podemos ter a certeza absoluta (ou quase absoluta) de que a próxima cidade a ser visitada é a cidade s e o arco k s deve ser incorporada na solução em construção. Portanto, neste contexto o AHC funciona de forma eficiente e não precisaria de modificação. Supor novamente que estamos resolvendo o problema do caixeiro viajante usando o AHC e o caixeiro se encontra na cidade k. Supor que existem ainda 80 cidades ainda não visitadas. Supor também que todos os arcos já incorporados foram ótimos. Nesse contexto, supor que existem 5 cidades relativamente próximas da cidade k, mas a distância entre a cidade k e cada uma dessas cidades se encontram razoavelmente separadas e que as outras 75 cidades se encontram muito distantes. Nesse contexto podemos ter a certeza absoluta (ou quase absoluta) de que, uma das cinco cidades mais próximas deve ser escolhida pelo caixeiro, para ser visitada e as outras 75 estão praticamente descartadas dessa decisão. Obviamente, o AHC escolheria, dentre as cinco cidades, aquela que se encontra mais perto, mas neste caso existe a possibilidade de errar na decisão porque existe a possibilidade de que uma das outras quatro cidades façam parte da solução ótima. Na verdade existe alguma probabilidade de que o arco de qualquer das cinco cidades seja ótimo. Nesse contexto, existe uma probabilidade nada desprezível de que a escolha da cidade localizada mais perto não seja a ótima. Portanto, se pretendemos encontrar a solução ótima, nada mais natural escolher uma das cinco cidades dando apenas maior probabilidade para a cidade que se encontra mais perto. Em resumo, uma estratégia eficiente deve levar em conta esse fato e o GRASP na fase construtiva tenta justamente incorporar esse tipo de decisão. Supor novamente que estamos resolvendo o problema do caixeiro viajante usando o AHC e o caixeiro se encontra na cidade k. Supor que existem ainda 80 cidades ainda não visitadas. Supor também que todos os arcos já incorporados foram ótimos. Nesse contexto, supor que existem 5 cidades próximas da cidade k e estão quase equidistantes (o mesmo fenômeno acontece se as 5 cidades se encontram à mesma distância da cidade k) e que as outras 75 cidades se encontram muito distantes. Nesse contexto também podemos ter a certeza absoluta (ou quase absoluta) de que uma das cinco cidades mais próximas deve 22

24 ser escolhida pelo caixeiro para ser visitada e as outras 75 estão praticamente descartadas dessa decisão. O AHC escolheria, dentre as cinco cidades, aquela que se encontra mais perto, mas neste caso existe uma probabilidade elevada de errar na decisão. Na verdade existe alguma probabilidade próxima de 0,2 de que qualquer arco correspondente a uma das cinco cidades seja a ótima. Esse tipo de distribuição (casos em que o indicador de sensibilidade das melhores propostas são muito próximas ou quando o indicador de sensibilidade perde qualidade de discernimento) representa uma verdadeira armadilha para os AHCs. Obviamente, neste contexto a probabilidade de erro de escolha realizado por um AHC é muito grande e, portanto, pode ser mais interessante escolher de forma aleatória entre as 5 candidatas. Em resumo, o GRASP na fase construtiva deve tentar incorporar esse tipo de decisão. Em resumo, a fase construtiva do GRASP tenta contornar as limitações de um AHC e também permite gerar um número elevado de propostas de solução diferentes. A lógica fundamental do GRASP na fase construtiva consiste em escolher a próxima componente da solução em construção dentre uma lista reduzida de candidatos, chamada de lista RCL. Um algoritmo heurístico construtivo escolheria o primeiro elemento dessa lista RCL. O número de elementos da lista RCL deve ser variável e deve levar em conta a qualidade dos componentes candidatos a adição. Assim, para o caso do caixeiro viajante analisado anteriormente, a lista RCL pode ter apenas um elemento (apenas uma cidade se encontra perto e todas as outras se encontram muito longe), vários elementos (algumas cidades se encontram muito perto e todas as outras se encontram muito longe) ou muitos elementos. Esse número de elementos depende da qualidade das componentes candidatas a serem incorporada na solução em construção. A fase construtiva do algoritmo GRASP apresenta os seguintes passos: 1. Escolher a solução inicial que pode ser vazia, isto é, sem adição de componentes, que se transforma na solução em construção. 2. Para a solução em construção (com alguns elementos já adicionados) e usando um indicador de sensibilidade, elaborar uma lista RCL com os k componentes mais atraentes. O valor de k é determinado de forma adaptativa como é mostrado adiante. 3. Escolher um elemento (componente) dos k elementos existentes na lista RCL e atualizar a solução em construção corrente com a adição da componente escolhida. 4. Se a solução em construção corrente representa uma solução factível ou foi satisfeito o critério de parada (sem encontrar uma solução factível) terminar com a fase construtiva. Caso contrário voltar ao passo 1. Os passos da fase construtiva do GRASP estão claramente apresentados sendo que precisamos apenas analisar a forma em que se encontra os elementos da lista reduzida RCL. Assim, analisamos, brevemente, uma forma adequada para encontrar os elementos da lista RCL. Seja f(x) a função objetivo de um problema com variáveis x. Tipicamente, uma função de mérito ou indicador de sensibilidade apresenta a seguinte forma: h(x i ) z x i A função h(x i ) na verdade representa qualquer estratégia que nos permite identificar a qualidade de uma decisão relacionada com a variação da função objetivo. Portanto, h(x i ) pode 23

25 ser obtida matemáticamente de maneira formal ou pode representar apenas uma informação obtida de forma intuitiva ou da experiência do pesquisador. Considerando que o problema é de minimização da função objetivo f(x), então a variável mais atraente, x i, identificada por um algoritmo guloso, é aquela que apresenta um menor valor de h(x i ). Portanto, fazem parte do conjunto RCL todas as variáveis cujos índices satisfazem a seguinte relação: RCL = { i X/. h min h(x i ) h min +α(h max h min ) } (2) em que X é o conjunto de índices das variáveis que ainda podem ser adicionadas e α é um parâmetro fornecido pelo usuário com valores 0 α 1. h max e h min assumem a seguinte forma: h max = máx i X {h(x i)} h min = mín i X {h(x i)} Logicamente, um algoritmo heurístico construtivo (guloso) escolheria a variável x i com h(x i ) = h min. O parâmeto α representa um compromisso entre escolha aleatória e gulosa e, pode-se verificar que α = 1 representa um processo totalmente aleatório e α = 0 um processo guloso. Para mostrar a forma diversificada em que pode ser escolhido o indicador de sensibilidade h(x) analisamos o problema do caixeiro viajante. Nesse caso, duas formas alternativas de escolher o indicador de sensibilidade h(x) são as seguintes: (1) usar a informação de distância e, (2) usar a informação da solução do próprio modelo matemático após relaxar as restrições de integralidade e/ou as restrições que evitam a formação de subtours. Analisamos em detalhe apenas a primeira alternativa. Uma forma simples de escolha do indicador de sensibilidade seria simplesmente a distância. Assim, supor que o caixeiro viajante se encontra na cidade k e seja R o conjunto de cidades ainda não visitadas. Nesse contexto, as cidades candidatas para escolher a próxima a ser visitada são identificadas usando a seguinte relação: d min kj d kj d min kj +α(d max kj d min kj ) j R são os índices das cidades ainda não visitadas, d min kj é a cidade que se encontra mais perto da cidade k e d max kj é a cidade que se encontra mais longe da cidade k. Assim, uma cidade pode ser visitada, se a distância se encontra dentro dos limites definidos pela relação anterior. Portanto, a lista RCL (equivalente com a relação (2)) pode ser montada usando a seguinte relação: RCL = {(k,j) j R/. d min kj d kj d min kj +α(d max kj d min kj )} Na relação anterior podemos novamente verificar que se α = 0 então o conjunto RCL tem apenas um elemento e se comporta como um AHC do tipo guloso e se α = 1 então todos os elementos de R fazem parte da lista RCL (todas as cidades ainda não visitadas podem ser escolhidas) e o processo de escolha se torna totalmente aleatório. Adicionalmente devemos realizar as seguintes observações: 24

26 O número de elementos do conjunto RCL varia em cada passo da fase construtiva. O tamanho da lista RCL depende do valor de α, mas também depende dos valores de indicador de sensibilidade de cada elemento. Para ilustrar, consideremos novamente o problema do caixeiro viajante analisado anteriormente com o caixeiro posicionado na cidade k. Nesse contexto, se apenas uma cidade se encontra perto da cidade k e todas as outras se encontram muito distantes, então a lista RCL pode ter apenas um elemento mesmo para valores de α próximos de 1. Por outro lado, se existem muitas cidades muito próximas da cidade k e um número reduzido de cidades se encontram muito distantes da cidade k, então a lista RCL pode ter muitos elementos mesmo para valores pequenos de α. Em resumo, para um mesmo valor de α o número de elementos da lista RCL pode variar muito em cada iteração da fase construtiva. Existe a possibilidade de usar um α variável na fase construtiva como uma forma adicional de dispor de uma lista RCL variável em cada iteração da fase construtiva e também para usar o melhor valor de α em cada passo do algoritmo. Esse tipo de algoritmo GRASP é chamado de algoritmo GRASP reativo. Uma vez montado os elementos da lista RCL, então o próximo passo é a escolha de um elemento dessa lista e que deve ser adicionada na solução em construção. Essa escolha pode ser realizada de duas formas: (1) aleatoriamente e, (2) usando uma função de distribuição de probabilidade como, por exemplo, a função de distribuição de probabilidade linear b i = 1/r i em que r i representa a posição que ocupa a componente i na lista ordenada em RCL de acordo com a qualidade do indicador de sensibilidade (a melhor é a primeira da lista). Portanto, a probabilidade de escolha do elemento i é encontrada usando a relação: p i = b i j RCL b j (3) A maneira de ilustração supor que está sendo resolvido um problema usando o GRASP e foram selecionadas as seguintes componentes ordenadas em ordem de qualidade: x 2, x 4, x 32, x 9 e x 7. Usando a função de distribuição de probabilidade linear (b i = 1/r i ) e a relação (3) se encontra facilmente a probabilidade de escolha de cada componente mostrada na Tabela 1. Para o caso aleatório a probabilidade é igual para cada uma das variáveis e igual a 0,20. Tabela 2.1: Probabilidade de escolha das componentes. Variável x i r i b i p i x /137 x 4 2 1/2 30/137 x /3 20/137 x 9 4 1/4 15/137 x 7 5 1/5 12/137 Logicamente, a soma de probabilidades deve ser igual à unidade. A escolha da componente pode ser implementada usando um gerador de números aleatórios como na implementação da seleção proporcional no algoritmo genético. 25

27 A fase de pós-processamento do GRASP é implementada para cada solução encontrada na fase construtiva. Este tópico é analisado na próxima Subseção A Fase de Busca Local do GRASP Na formulação inicial do GRASP a fase de pós-processamento ou de busca local era realizado por uma heurística de busca através de vizinhança, isto é, por uma heurística parecida com a heurística SDH. A idéia central é tentar encontrar uma solução ótima local na vizinhança da solução encontrada na fase construtiva. Através do tempo o GRASP foi sofisticando a proposta de otimização na fase de busca local, após a fase construtiva. Assim, nas propostas iniciais a idéia era usar uma heurística de busca local como a heurística SDH ou como o processo de intensificação no algoritmo tabu search. Em geral, a fase de busca local pode ser um processo muito simples ou muito complexo. Assim, no caso mais simples pode ser implementado uma heurística tipo SDH. No caso mais sofisticado pode ser outra metaheurística tais como simulated annealing, o algoritmo genético, tabu search, VNS, etc. Propostas intermediárias podem incorporar estratégias de otimização que fazem parte de metaheurísticas sofisticadas como, por exemplo, a estratégia de path relinking que foi inventada como sendo parte do tabu search. Em resumo, o algoritmo GRASP é uma integração e generalização sofisticada de dois algoritmos que já existiam no campo da pesquisa operacional, isto é, do algoritmo heurístico do tipo guloso e da heurística de busca através de vizinhança clássico que chamamos aqui de heurística SDH. Também mostramos que metaheurísticas como o algoritmo simulated annealing, tabu search e o algoritmo genético podem ser idealizados como generalizações da heurística SDH. Em resumo, o algoritmo GRASP apresenta as seguintes características fundamentais: Uma fase de pré-processamento inspirada em conceitos existentes na pesquisa operacional clássica e cujo objetivo é incorporar ou descartar elementos que formam parte da solução ótima e, portanto, reduzindo o espaço de busca. Uma fase construtiva que na verdade é um algoritmo heurístico construtivo generalizado, onde se tenta contornar a característica gulosa do algoritmo heurístico construtivo e ter a possibilidade de gerar um conjunto elevado de soluções de qualidade usando uma mesma heurística construtiva. Uma fase de pós-processamento que na verdade é uma fase de melhoria da solução encontrada na fase construtiva que originalmente era implementado usando uma heurística simples de busca através de vizinhança como a heurística SDH. Entretanto, essa fase de busca local pode ser implementada usando heurísticas ou metaheurísticas sofisticadas como qualquer outra metaheurística existente na literatura especializada. Adicionalmente, como a fase construtiva e de busca local podem ser repetidas, então existe grande possibilidade de encontrar uma solução ótima global ou soluções quase-ótimas. Finalmente, podemos mencionar que, segundo um dos inventores do GRASP o Mauricio Resende, uma das estratégias mais eficientes que podem ser usadas na fase de busca local é a estratégia de path relinking. 26

28 3. Aplicação das Metaheurísticas na Otimização de Sistemas de Distribuição de Energia Elétrica 3.1. Introdução O sistema de distribuição é a parte do sistema elétrico que tem como função entregar a energia elétrica desde a subestação de distribuição até o consumidor final, com a qualidade exigida pelo consumidor e com um mínimo custo possível. Nos sistemas de distribuição primários freqüentemente são utilizadas tensões desde 1 kv até 36 kv e nos sistemas de distribuição secundários são utilasadas tensões inferiores a 1 kv. Pode-se observar que os sistemas de distribuição são importantes tanto do ponto de vista técnico, quanto dos pontos de vista econômico e social. Do ponto de vista técnico é importante observar que a grande extensão dos sistemas de distribuição acarreta na utilização de um número elevado de materiais e equipamentos elétricos, na presença das perdas técnicas por efeito Joule, na queda de tensão ao longo do sistema e na necessidade de um maior número de pessoas para sua gestão e manutenção. Do ponto de vista econômico pode-se observar que nos últimos anos houve um aumento dos custos de investimento no sistema de distribuição devido à necessidade de cumprimento das normas vigentes o que torna importante esforços adicionais para um correto planejamento da aplicação dos recursos disponíveis e de uma operação adequada do sistema. Do ponto de vista social pode-se dizer que a sociedade moderna é altamente dependente da energia elétrica tanto para trazer conforto e bem estar, quanto para segurança e saúde. O impacto que um corte de carga traz à vida social é considerável, tanto que geradores de emergência são utilizados em hospitais e grandes centros comerciais. Além de tudo isso, existe a preocupação com o meio ambiente o que leva à criação de legislações mais exigentes e uma maior cobrança da sociedade. Neste contexto, um dos objetivos mais importantes de uma concessionária de energia elétrica é determinar os investimentos necessários com o mínimo custo possível, e quando estes investimentos devem ser feitos, levando em consideração a qualidade do fornecimento de energia elétrica, a confiabilidade do sistema e o respeito ao meio ambiente, como exigido pelo consumidor final. Para atingir este objetivo, diversos problemas de otimização dos sistemas de distribuição são formulados, como por exemplo: O planejamento da expansão dos sistemas de distribuição de energia elétrica; A reconfiguração de sistemas de distribuição de energia elétrica; A alocação ótima de bancos de capacitores em sistemas de distribuição de energia elétrica; A alocação ótima de reguladores de tensão em sistemas de distribuição de energia elétrica O Problema de Planejamento da Expansão de Sistemas de Distribuição O principal objetivo do problema de planejamento do sistema de distribuição (PSD) é fornecer um serviço confiável, com um baixo custo para os consumidores e assegurando simul- 27

29 taneamente a qualidade do fornecimento de energia; O plano ótimo de expansão deve definir onde, quantos e quando os novos circuitos e novas subestações devem ser instalados. O problema de PSD, considerando de forma realista as características econômicas e físicas da operação dos sistemas, é um problema de programação não linear inteiro misto de grande porte. Quanto ao período de planejamento, pode-se considerar o planejamento de curto prazo (1 a 4 anos) e o planejamento de longo prazo (5 a 20 anos). Quanto ao modelo do período de análise pode-se considerar o planejamento estático, quando o planejamento é feito considerando apenas um estágio, e o planejamento multiestágio quando o planejamento é feito considerando diferentes estágios de planejamento. Quanto ao investimento pode ser considerada a construção de circuitos, a construção de subestações, e a construção de circuitos e subestações. Assim para modelar um problema de planejamento da distribuição de energia elétrica é necessário ter como objetivo a minimização dos custos de investimentos e de operação da rede, satisfazendo um conjunto de restrições operacionais, físicas e financeiras. As características particulares de operação do sistema de distribuição são: topologia radial do sistema e a impossibilidade de uma mesma carga ser alimentada por duas subestações diferentes. Na modelagem matemática do problema existem variáveis de investimento para a construção ou repotenciação das subestações, e a construção ou recondutoramento dos circuitos. As variáveis de operação são as magnitudes de tensão nas barras, os ângulos de tensão nas barras e as potências ativa e reativa da subestação. A função objetivo do problema de planejamento dos sistemas de distribuição é minimizar o custo de construção de circuitos, mais o custo de construção de subestações, mais o custo de perdas ativas no sistema e mais o custo de operação das subestações. As restrições físicas do problema são o limite de potência fornecida pela subestação e o limite de fluxo de potência nos ramos do sistema. As restrições operacionais são as restrições que satisfazem as primeira e segunda leis de Kirchhoff, os limites de tensão nas barras, e a condição de radialidade. As restrições de investimento são o número máximo de circuitos e o número máximo de subestações. Um problema de planejamento de sistemas de distribuição pode ser modelado como um problema de programação não linear inteiro misto onde as variáveis de decisão podem assumir valores 0 ou 1 (binário) ou inteiros dependendo do tipo de problema que se está resolvendo, como por exemplo se são considerados apenas a construção de circuitos ou a construção de circuitos e escolha de condutores. Técnicas metaheurísticas como Algoritmos Genéticos [4, 5], Simulated Annealing [6, 7], Tabu Search [8], Colônia de Formigas [9] e Algoritmos Evolutivos [10, 11], algoritmo VNS [12] aparecem na literatura como propostas para a solução do problema de planejamento de sistemas de distribuição. A formulação do problema de planejamento da expansão do sistema de distribuição pode ser escrita como se segue: min f = κ l δ l (ij) Ω l δ s (ij) Ω l (c ij,a n ij,a l ij )+κ s (c fi m i )+ a Ω a i Ω bs a Ω a (g ij,a n ij,a (V 2 i +V 2 j 2V i V j cosθ ij ))+ i Ω bs (c vi (P 2 S i +Q 2 S i )) (4) 28

30 s.a. P i P Si +P Di = 0 i Ω b (5) Q i Q Si +Q Di = 0 i Ω b (6) 1 V 100 V i 1+ V V nom 100 i Ω b (7) PS 2 i +Q 2 S i (S 0 i +m i S i ) 2 i Ω bs (8) P 2 ij,a+q 2 ij,a ( n ij,a S ij,a ) 2 (ij) Ω f, a Ω a (9) a Ω a n ij,a 1 (ij) Ω l (10) n ij,a {0,1} (ij) Ω l, a Ω a (11) m i {0,1} i Ω bs (12) n ij,a = n b n bs (13) a Ω a (ij) Ω l em que n ija = n 0 ij a +n ija e as constantes δ l e δ s são dadas por: δ l = 8760τ l φ l c l e δ s = 8760τ s φ s. Ω f = {ij / i Ω b and j Ω bi } é o conjunto das direções dos fluxos de potência. Ω l, Ω b, Ω bs Ω b, Ω bi Ω b, Ω a, são os conjuntos de ramos (existentes e propostos), de todas as barras do sistema, de barras com subestações (existentes e propostas), de barras conectadas à barra i e de tipos de condutores. ij representa o ramo entre as barras i e j. κ l, κ s, são as taxas de recuperação de capital da construção de circuitos e subestações. c ija, n ija, n 0 ij a e l ij representam o custo de construção dos circuitos que podem ser adicionados (US$/km), o número de circuitos adicionados, os circuitos existentes e o comprimento do circuito, no ramoij.c fi em i representam o custo de construção das subestações que podem ser adicionadas ao sistema (US$) e o número de subestações adicionadas à barra i. τ l e τ s são as taxas de juros para as perdas de potência ativa e para a energia fornecida pela subestação. φ l e φ s são o fator de perdas para os circuitos e subestações. c l é o custo de perdas de energia ativa (US$/kWh) e c vi é o custo de operação da subestação (US$/kVAh 2 ) de uma barra i. P Si e Q Si são as potências ativa e reativa fornecidas pela subestação de uma barra i. P i e Q i são as potências ativa e reativa calculadas na barra i. P Di e Q Di são as potências ativa e reativa demandadas na barra i, respectivamente. S i e S 0 i são os limites máximos de potência aparente que uma subestação (barra i) pode fornecer e a potência aparente já fornecida pela mesma subestação. As variações dos limites máximo e mínimo das magnitudes de tensão são V % do valor da tensão nominal. V i e V nom são a magnitude de tensão da barra i e a tensão nominal do sistema de distribuição. P ij,a e Q ij,a são os fluxos de potência ativa e reativa que saem de uma barra i em direção a uma barra j. S ij,a é o fluxo máximo de potência aparente no ramo ij. n b = Ω b é o número de barras do sistema, n bs = Ω bs é o número de barras com subestações (existentes e propostas). O símbolo a representa os tipos de condutores. A função objetivo (4) é o investimento total mais o custo de operação do sistema [13]. A primeira linha da equação da função objetivo representa os custos de investimento referentes a construção e/ou recondutoramento de circuitos, construção e/ou repotenciação de subestações, respectivamente. A segunda e terceira partes se referem aos custos de perdas ativas no sistema e de operação das subestações, respectivamente. As Eqs. (5) e (6) representam as primeira e segunda leis de kirchhoff, e seus elementos P i e Q i são dados por (14) and (15), respectivamente. P i = V i j Ω b V j [G ij ( n ij,a )cosθ ij +B ij ( n ij,a )sen θ ij ] (14) 29

31 Q i = V i j Ω b V j [G ij ( n ij,a )sen θ ij B ij ( n ij,a )cosθ ij ] (15) em que θ ij =θ i θ j representa a diferença dos ângulos entre as barras i e j. G ij ( ) and B ij ( ) são, respectivamente, os elementos de condutância e susceptância que formam a matriz de admitância nodal considerando o número de circuitos adicionados no ramo ij como variável. A Eq. (7) representa o limite da magnitude de tensão das barras para diferentes níveis de demanda e a Eq. (8) representa a capacidade máxima de uma determinada subestação i. Note que na Eq. (8) estão modeladas a repotenciação de subestações existentes (S 0 i 0) e a construção de novas subestações (S 0 i =0). Os elementos de fluxo de potência ativa e reativa em um ramo ij do tipo a da Eq. (9) são dados por: P ij,a = n ij,a [Vi 2 ij,a V i V j (g ij,a cosθ ij +b ij,a senθ ij )] (16) Q ij,a = n ij,a [ Vi 2 b ij,a V i V j (g ij,a senθ ij b ij,a cosθ ij )] (17) em que g ij e b ij são a condutância e a susceptância dos ramos ij. As variáveis de investimento n ija e m i são as variáveis de decisão do problema e a operação factível do sistema de distribuição depende destes valores. As demais variáveis representam o estado de operação de uma solução factível. Para uma proposta de investimento factível, definida através de valores específicos de n ija and m i, vários estados de operação são possíveis. A Eq. (10) garante a não duplicidade de circuitos (existentes e construídos) em um mesmo ramo. As Eqs. (11) e (12), representam a característica binária das variáveis de investimento de circuitos e subestações que podem ser adicionados ao sistema de distribuição, respectivamente. A Eq. (13) representa a condição de radialidade do sistema que em conjunto com as Eqs. (5) e (6) garantem a radialidade do sistema, [14] Codificação do problema de planejamento de sistemas de distribuição - Variáveis Binárias O problema de planejamento de sistemas de distribuição pode ser codificado de forma binária, onde as variáveis de investimento binárias têm a função de identificar quais os circuitos foram construídos no sistema, isto é, são codificadas as variáveis n ij,a e m i. S Figura 1: ramos factíveis sistema com 1 subestação 30

32 Seja um sistema ilustrativo de 10 barras sendo que 1 delas é uma subestação e 9 são barras com carga diferente de zero, mostrado na figura 1. Existem 15 rotas factíveis onde os circuitos podem ser construídos. Neste sistema queremos apenas construir circuitos e como o sistema possui 10 barras sendo que uma delas é uma subestação, então são necessários 9 circuitos para conectar todas as barras do sistema satisfazendo assim a restrição 13. A figura 1 apresenta as rotas factíveis para a construção de circuitos de um sistema de distribuição. Assim, a configuração de um sistema de distribuição, com topologia radial, pode ser representada da seguinte forma: Proposta de solução 1 - pc1: em que os elementos iguais a 1 são os circuitos que foram construídos no sistema e os elementos iguais a zero representam os circuitos que não foram construídos no sistema. A figura 2 representa a proposta de solução dada por pc1. S Figura 2: Proposta de solução pc Codificação do problema de planejamento de sistemas de distribuição - Variáveis Inteiras O problema de planejamento de sistemas de distribuição pode ser codificado com variáveis inteiras, onde estas variáveis de investimento inteiras têm a função de identificar quais os circuitos foram construídos no sistema e seus respectivos tipos de condutores. Seja o mesmo sistema mostrado em 3.2.1, porém iremos considerar além da construção de circuitos a escolha dos tipos de condutores. Existe a possibilidade de escolher entre 3 tipos de condutores. Assim, a configuração de um sistema de distribuição, com topologia radial, pode ser representada da seguinte forma: Proposta de solução 2 - pc2: A figura 3 representa a proposta de solução dada por pc2 construída a partir da figura 4 que representa as rotas factíveis para a construção de circuitos de um sistema de distribuição. 31

33 S S 7 Figura 3: Proposta de solução pc2 em que cada tipo de condutor é representado como 1, 2 e 3, assim podemos dizer pela configuração apresentada que foram construídos 3 circuitos do tipo 1, 4 circuitos do tipo 2 e 2 circuitos do tipo 3. Os elementos iguais a zero representam os ramos sem construção de circuitos. 1 2 S S Figura 4: ramos factíveis sistema com 2 subestações Consideremos agora que o sistema possui 2 subestações factíveis para serem construídas, desta forma entre as 10 barras existentes no sistema, 2 são subestações mostrado na figura 4. Necessitamos fazer o planejamento para a construção de subestações e circuitos com escolha dos tipos de condutores. Assim, a configuração de um sistema de distribuição, com topologia radial, pode ser representada da seguinte forma: Proposta de solução 1 - ps1: neste caso podemos dizer que o vetor é dividido em duas partes, a primeira parcela representa as subestações que podem ser construídas no sistema, e a segunda parcela representa as rotas factíveis onde os circuitos podem ser cosntruídos. Na proposta de solução temos uma configuração para um sistema de distribuição na qual 2 subestações, 2 circuitos do tipo 1, 4 circuitos do tipo 2 e 2 circuitos do tipo 3 foram construídos. Nesta configuração foram construídos 8 circuitos, o que está de acordo com a restrição

34 Vamos agora considerar uma segunda proposta de solução para o mesmo sistema, na qual apenas 1 subestação é construída, desta forma temos a seguinte configuração: Proposta de solução 2 - ps2: em que 1 subestação, 2 circuitos do tipo 1, 5 circuitos do tipo 2 e 2 cicuitos do tipo 3 foram construídos. Nesta configuração foram construídos 8 circuitos, o que está de acordo com a restrição 13. Avaliação de uma Proposta de Solução Para avaliar uma proposta de solução é importante verificar a factibilidade da proposta e o valor do custo total calculado utilizando a Eq. (4). Para um problema de planejamento da distribuição é muito importante avaliar se a configuração apresentada pela proposta de solução é conexa, o que pode facilmente ser verificado pelo conjunto de equações (5), (6) e (13). Além de garantir a radialidade do sistema é importante também obedecer às outras restrições apresentadas no modelo matemático. O ponto de operação do sistema pode ser calculado através da resolução de um problema de programação não linear (PNL), que irá fornecer não apenas os valores de tensão e ângulos, mas também permite calcular o valor do custo de investimento total do sistema. Neste caso as restrições são avaliadas em conjunto pelo problema de PNL. Outra forma de se calcular o ponto de operação do sistema é através da resolução de um problema de fluxo de carga, que pode ser o método de Newton-Raphson ou o método de varredura. Onde o valor do custo total de investimento deve ser calculado com os valores fornecidos pela solução dada pelo fluxo de carga, no caso das parcelas referentes ao custo de operação. Neste caso as restrições são avaliadas separadamente. Como Encontrar uma Solução Vizinha Quando se trata de uma metaheurística baseada na heurística de busca local, necessitamos caminhar na vizinhança de cada proposta de solução até encontrar a melhor proposta de solução possível para o problema. Assim, uma forma de se encontrar um vizinho para ps1 seria escolher aleatoriamente uma posição com valor igual a zero e uma com valor diferente de zero e trocar seus elementos entre si, logo em ps1 se escolhemos as posições 12 que tem n ij,a = 0 e a posição 15 que tem n ij,a = 1, então podemos gerar a seguinte proposta de solução vizinha de p1: Proposta de solução 3 - ps3: lembrando que a radialidade do sistema precisa ser mantida, a escolha totalmente aleatória pode fazer com que a metodologia não seja eficiente, desta forma na hora de gerar um vizinho é importante verificar se as posições escolhidas aleatoriamente não geram um sistema infactível em termos de radialidade. Para isto uma fase de melhoria local poderia ser adicionada na metodologia. É importante também variar o tipo de condutor que está sendo escolhido, assim uma outra forma de se gerar um vizinho é além de escolher duas posições para trocarem seus elementos é escolher conjuntamente uma posição para trocar o tipo de condutor. Assim, uma outra proposta de solução para ps1 seria trocar os elementos das posições 12 e 15 e trocar o tipo de condutor por exemplo da posição 3 de 1 para 2, logo teríamos uma ps4 da seguinte forma: 33

35 Proposta de solução 4 - ps4: O Problema da Reconfiguração Ótima de Alimentadores em Sistemas de Distribuição O problema de reconfiguração ótima de alimentadores em sistemas de distribuição (RSD) é um dos problemas clássicos de otimização inerentes aos sistemas de distribuição de energia elétrica, e tem como objetivo encontrar a topologia ideal para uma operação ótima de um sistema radial visando obter mínimas perdas de potência ativa, atender a demanda de energia e manter a confiabilidade do sistema. Para facilitar a coordenação e proteção do sistema, para reduzir a corrente de curto circuito dos sistemas de distribuição, entre outros, tais sistemas operam com configuração radial, embora tenham estrutura malhada. O problema de reconfiguração ótima de alimentadores em sistemas de distribuição pode ser modelado como um problema de programação não linear inteiro misto, [14]. Entre as metaheurísticas utilizadas para resolver o problema de RDS estão Simulated Annealing [15], Ant Colony [16], Genetic Algorithm [17], [18] e [19], os algoritmos Tabu Search [20], [21] e [22] e o algoritmo GRASP [23]. O modelo matemático para o problema de reconfiguração ótima de alimentadores em sistemas de distribuição modelado como um problema de programação não linear inteiro misto pode ser escrito da seguinte forma, [14]: min f = s.a. ij Ω l (g ij n ij (V 2 i +V 2 j 2V i V j cosθ ij )) (18) P i P Si +P Di = 0 i Ω b (19) Q i Q Si +Q Di = 0 i Ω b (20) V V i V i Ω b (21) P 2 ij +Q2 ij n ijs 2 ij (ij) Ω f (22) n ij {0,1} (ij) Ω l (23) (ij) Ω l n ij = n b n bs (24) em que as variáveis, as funções e os parâmetros são descritos na subseção 3.2. A função objetivo (18) representa o total de perdas de potência ativa do sistema. As Eqs. (19) e (20) representam as primeira e segunda leis de Kirchhoff, e seus elementos P i e Q i são dados por (14) e (15), respectivamente. A Eq. (21) representa o limite da magnitude de tensão das barras. Os elementos de fluxo de potência ativa e reativa em um ramo ij da Eq. (22) são dados pelas equações (16) e (17), respectivamente. A variável de investimento n ij é a variável de decisão do problema e uma operação factível do sistema de distribuição depende destes valores. As demais variáveis representam o estado de operação de uma solução factível. Para uma proposta de investimento factível, definida através de valores específicos de n ij, vários estados de operação são possíveis. A Eq. (23) representa a característica binária da variável de decisão que indica se as chaves estão abertas ou fechadas. A Eq. (24) representa a condição de 34

36 radialidade do sistema que em conjunto com as restrições (19) e (20) garantem uma topologia radial para o sistema. O sistema de distribuição pode ser considerado como sendo um grafo com arcos e nós. Assim, do ponto de vista da teoria de grafos, pretende-se encontrar uma topologia radial que permita que o sistema opere de forma adequada em relação às restrições operacionais e com mínimas perdas Codificação do problema de reconfiguração ótima de alimentadores de sistemas de distribuição - Variáveis Binárias Normalmente o problema de reconfiguração ótima de alimentadores de sistemas de distribuição é codificado com variáveis binárias as quais têm o objetivo de identificar quais os circuitos estão fechados e quais circuitos estão abertos no sistema. Seja um sistema ilustrativo de 10 barras sendo que 1 delas é uma subestação e 9 são barras com carga diferente de zero. Este sistema possui 9 circuitos conectados e 3 circuitos desconectados. Considerando todos os circuitos existentes (fechados e abertos) como chaves que podem abrir ou fechar para mudar a topologia do sistema, mantendo sempre uma topologia radial, uma configuração factivel pode ser representada da seguinte forma: Proposta de solução 1 - pr1: em que os elementos iguais a 1 são os circuitos fechados no sistema e os elementos iguais a zero representam os circuitos que estão abertos no sistema. Avaliação de uma Proposta de Solução Para avaliar uma proposta de solução é importante verificar a factibilidade da proposta e o valor do custo total calculado utilizando a Eq. (18). Para um problema de reconfiguração da distribuição é muito importante avaliar se a configuração apresentada pela proposta de solução é conexa, o que pode facilmente ser verificado pelo conjunto de equações (19), (20) e (24). Além de garantir a radialidade do sistema é importante também obedecer às outras restrições apresentadas no modelo matemático. O ponto de operação do sistema pode ser calculado através da resolução de um problema de PNL, que irá fornecer não apenas os valores de tensão e ângulos, mas também o valor do custo de investimento total do sistema. Neste caso as restrições são avaliadas em conjunto pelo problema de PNL. Outra forma de se calcular o ponto de operação do sistema é através da resolução de um problema de fluxo de carga, que pode ser o método de Newton-Raphson ou o método de varredura. Onde o valor total de perdas deve ser calculado com os valores fornecidos pela solução dada pelo problema de fluxo de carga. Neste caso as restrições são avaliadas separadamente. Como Encontrar uma Solução Vizinha Uma forma de se encontrar um vizinho para a proposta de solução dada anteriormente para o problema de reconfiguração seria escolher aleatoriamente dois pares de posições 1 com valor igual a zero e outro com valor igual a 1 e trocar seus elementos entre si, logo se escolhemos as posições 12 e 3 que têm n ij,a = 0 e n ij,a = 1, respectivamente, e as posições 5 e 6 que têm 35

37 n ij,a = 0 e n ij,a = 1, respectivamente, então podemos gerar a seguinte proposta de solução vizinha de pr1: Proposta de solução 2 - pr2: lembrando que a radialidade do sistema precisa ser mantida O Problema da Alocação Ótima de Bancos de Capacitores em Sistemas de Distribuição O problema de alocação ótima de bancos de capacitores em sistema de distribuição radial consiste em determinar os tamanhos, as localizações e esquema de controle dos bancos alocados nos alimentadores primários dos sistemas de distribuição; Para a solução deste problema são consideradas restrições operacionais, físicas e econômicas. Pretende-se minimizar as perdas de potência ativa, ao longo de um período de planejamento considerado, com o objetivo de manter o perfil de tensão das barras do sistema dentro de uma faixa adequada, exigida pela legislação do setor elétrico. O problema de alocação ótima de bancos de capacitores pode ser modelado como um problema de programação não-linear inteiro misto, onde os capacitores que são instalados em um sistema de distribuição podem ser fixos ou chaveados. As principais vantagens de se instalar bancos de capacitores nos sistemas de distribuição de energia elétrica são a redução do componente reativo de corrente do circuito, a melhoria do nível de tensão no ponto de consumo, a melhoria da regulação de tensão (se a unidade capacitiva for apropriadamente chaveada), a redução de perdas de potência ativa e reativa no sistema devido à redução da corrente, o aumento do fator de potência das fontes geradoras, a redução da demanda de reativos onde a carga é atendida e a redução de investimentos em equipamentos por MW atendido. Técnicas metaheurísticas já foram utilizadas para resolver o problema de alocação ótima de bancos de capacitores, e dentre estas estão os algoritmos genéticos [28] [29], simulated annealing [30], [31] e tabu search [32], [33]; As variáveis de investimento do problema são a instalação de bancos de capacitores, e as variáveis de operação são a magnitude de tensão nas barras, o ângulo de tensão nas barras e as potências ativa e reativa fornecida pela subestação. A função objetivo minimiza o investimento total mais o custo de operação do sistema, dados pela soma do custo de instalação dos bancos de capacitores mais o custo de perdas ativas no sistema. Outra característica operacional que aparece em alguns trabalhos da literatura é a minimização do desvio máximo de tensão. A função obejetivo está sujeita a restrições físicas, tais como o limite de fluxo de potência nos ramos e o limite da capacidade dos bancos de capacitores. Também está sujeita a restrições operacionais como as equações que satisfazem as primeira e segunda Leis de Kirchhoff e os limites de tensão nas barras, e de restrição de investimento como o número máximo de capacitores que podem ser instalados em cada barra e em todo o sistema. Um modelo matemático não linear inteiro misto para o problema de alocação ótima de bancos de capacitores em sistemas de distribuição pode ser escrito sa seguinte forma: 36

38 min f = κ q s.a. (c qu q i,u )+ i Ω b (g ij (Vi,d 2 +Vj,d 2V 2 i,d V j,d cosθ ij,d )) (25) ij Ω l d Ω d δ ld P i,d P Si,d +P Di,d = 0 i Ω b, d Ω d (26) Q i,d Q Si,d Vi,d 2 B shu (qi,u 0 +q i,u)+q Di,d = 0 i Ω b, d Ω d (27) u Ω u 1 V min V i,d 1+ V max i Ω b, d Ω d (28) Pij,d 2 +Q2 ij,d S2 ij ij Ω f, d Ω d (29) (qi,u 0 +q i,u) nq i i Ω b (30) u Ω u (qi,u 0 +q i,u) nq (31) i Ω b u Ω u q i,u inteiro i Ω b, u Ω u (32) em que a constante δ ld é dada por: δ ld = α d τ l φ l c ld ; e α d é o número de horas por ano da demanda d. Ω d e Ω u são os conjuntos de níveis de demanda e de tipos de capacitores, respectivamente. κ q são as taxas de recuperação de capital dos capacitores. c qu, q i,u e qi,u 0 representam os custos dos capacitores que podem ser adicionados ao sistema, o número de capacitores adicionados ao nó i do tipo u e o número de capacitores existentes no nó i do tipo u, respectivamente. τ l é a taxa de juros para as perdas de potência ativa φ l é o fator de perdas do sistema. c l é o custo de perdas de energia (US$/kWh). P i,d e Q id são as potências ativa e reativa calculadas no nó i para diferentes níveis de demanda, respectivamente. P Di,d e Q Di,d são as potências ativa e reativa demandadas pelo nó i para diferentes níveis de demanda, respectivamente. B shu é a admitância capacitiva dos capacitores de um determinado tipo u. Os limites máximo e mínimo de desvio das magnitudes de tensão são V min e V max. V i,d é a magnitude de tensão do nó i para diferentes níveis de demanda. P ij,d e Q ij,d são os fluxos de potência ativa e reativa que saem de um nó i em direção a um nó j para diferentes níveis de demanda, respectivamente. S ij é o fluxo máximo no ramo ij. nq i e nq são o número máximo de capacitores que podem ser instalados em cada barra e o número máximo de capacitores que podem ser instalados no sistema, respectivamente. n b = Ω b é o número de nós do sistema. O símbolo d representa os níveis de demanda do sistema. A função objetivo Eq. (25) é formada pelo investimento total mais o custo de operação do sistema. A primeira linha da Eq. (25) representa o custo de investimento referente a instalação de bancos de capacitores. A segunda linha da equação se refere ao custo de perdas ativas no sistema para cada nível de demanda. As Eqs. (26) e (27) representam as primeira e segunda Leis de Kirchhoff que têm que ser satisfeitas para cada nível de demanda d, e seus elementos P i,d e Q i,d são dados por (33) e (34), 37

39 respectivamente. P i,d = V i,d V j,d [G ij cosθ ij,d +B ij senθ ij,d ] (33) j Ω b Q i,d = V i,d V j,d [G ij senθ ij,d B ij cosθ ij,d ] (34) j Ω b em que G ij e B ij são, respectivamente, os elementos de condutância e susceptância que formam a matriz de admitância nodal do sistema. A Eq. (28) representa o limite da magnitude de tensão das barras para diferentes níveis de demanda. Os elementos de fluxo de potência ativa e reativa em um ramo ij para a demanda d da Eq. (29) são dados por: P ij,d = [V 2 i,dg ij V i,d V j,d (g ij cosθ ij,d +b ij senθ ij,d )] Q ij,d = [ V 2 i,d b ij V i,d V j,d (g ij senθ ij,d b ij cosθ ij,d )] A Eq. (30) assegura que apenas um número máximo preestabelecido de banco de capacitores seja adicionado por barra. O número máximo de bancos de capacitores que podem ser instalados no sistema, é limitado pela Eq. (31). A Eq. (32) representa a característica das variáveis de investimento dos bancos de capacitores que podem ser adicionados ao sistema de distribuição. A variável de investimento q i,u é a variável de decisão do problema e uma solução factível para o sistema de distribuição, depende deste valor. As demais variáveis representam o estado de operação do sistema de distribuição. Vários estados de operação são possíveis para uma proposta de investimento factível, definida através de valores específicos de q i,u Codificação do Problema de Alocação Ótima de Bancos de Capacitores em Sistemas de Distribuição Uma proposta de codificação para o problema de alocação ótima de bancos de capacitores em sistemas de distribuição pode ser aquela em que a variável de investimento q i identifica a barra do sistema e o tipo de banco de capacitores que deve ser instalado. Seja um sistema ilustrativo com 1 subestação (barra 1) e 9 barras de carga. Considerando que a instalação de bancos de capacitores é possível em todas as 9 barras de carga do sistema. As variáveis de investimento são inteiras e maiores que zero, B shu possui um valor fixo de 300kVAr, desta forma o valor de q i,u irá definir a capacidade do banco de capacitores. Vamos considerar neste caso que nq i = 5 e nq = 10, sendo assim, os bancos de capacitores podem assumir valores múltiplos de 300kVAr até um total de 1500kVAr. Desta forma uma proposta de solução para o problema pode ser dada da seguinte forma. Proposta de solução 1 - p Cada elemento da proposta de solução representa uma barra do sistema, assim na proposta de solução dada temos 1 banco de capacitores de 600kVAr na barra 4 e um banco de capacitores de 300kVAr na barra 5. Para uma dada proposta de solução a avaliação da factibilidade do problema é feita através do cálculo do ponto de operação do sistema, que pode ser feito utilizando um algoritmo de 38

40 fluxo de carga pelo método de Newton ou pelo método de varredura, ou também resolvendo um PNL. Avaliação da Função Objetivo A avaliação da proposta de solução é feita calculando o valor da função objetivo dada pela Eq. (25). No caso de se utilizar um problema de PNL para calcular o ponto de operação do sistema, a função objetivo é calculada diretamenta pelo problema de PNL. No caso de serem utilizados algoritmos de fluxo de carga, as perdas no sistema podem ser calculadas utilizando os valores de tensão e ângulo calculados no método de Newton, ou podem ser calculadas diretamente quando utilizado o método de varredura, porém a primeira parcela da equação Eq. (25) deve ser calculada separadamente e então a soma das duas parcelas deve ser feita para obter o valor total dos custos. A factibilidade do problema é avaliada pelas restrições apresentadas pelas Eqs. (26) (32). Assim se alguma destas restrições forem violadas, então o problema é infactível. Como encontrar um vizinho Quando se trata de uma metaheurística baseada na heurística de busca local, necessitamos caminhar na vizinhança de cada proposta de solução até encontrar a melhor proposta de solução para o problema. Assim, uma forma de se encontrar um vizinho para p1 seria escolher aleatoriamente duas barras e trocar seus respectivos elementos entre si, logo, em p1 se escolhemos as barras 4 e 7, então podemos gerar a seguinte proposta de solução vizinha de p1: Proposta de solução 2 - p considerando que a metaheurística tenha uma fase de mutação ou uma fase de melhoria local (depende da metaheurística utilizada) na qual escolheríamos aleatoriamente uma barra na qual a capacidade do banco de capacitor seria modificada, então, podemos gerar uma proposta de solução vizinha de p2 escolhendo por exemplo a barra 5 e escolhendo aleatoriamente mudar seu elemento de 1 para 3, logo teríamos a seguinte proposta de solução: Proposta de solução 3 - p Podemos observar que o número de bancos de capacitores instalados no sistema estão dentro do limite preestabelecidos de um total de 10 bancos de capacitores em todo o sistema e de um limite de 5 bancos por barra do sistema O Problema de Alocação Ótima de Reguladores de Tensão em Sistemas de Distribuição Para manter a tensão de uma determinada barra do sistema em um nível adequado e que esteja dentro de limites predeterminados pelas normas vigentes de cada país, são utilizados nos sistemas elétricos de distribuição equipamentos que têm como função mudar o nível de tensão de uma determinada barra, fazendo com que esta tensão permaneça constante independentemente do valor da tensão em seus terminais de entrada. Estes equipamentos são os chamados 39

41 reguladores de tensão. São equipamentos muito caros, porém que trazem benefícios ao sistema de distribuição pois têm a capacidade de manter um nível de tensão adequado, o que é exigido por norma e pelo consumidor final. O objetivo do problema de alocação ótima de reguladores de tensão é minimizar os custos de investimentos e de operação da rede, satisfazendo um conjunto de restrições operacionais, físicas e financeiras. As variáveis de investimento representam a instalação de reguladores de tensão no sistema e as variáveis de operação são a magnitude de tensão nas barras, o ângulo de tensão nas barras, as potências ativa e reativa da subestação e os taps dos reguladores de tensão. A função objetivo é minimizar o investimento total mais o custo de operação do sistema dados pela soma do custo de instalação dos reguladores de tensão mais o custo de perdas ativas no sistema. Em alguns trabalhos da literatura também é o considerada a minimização do desvio máximo de tensão. As restrições físicas do problema são o limite de potência fornecida pela subestação, o limite de fluxo de potência nos ramos e o limite dos taps dos reguladores de tensão. As restrições operacionais são formadas pelo balanço de potência ativa e reativa e limites de tensão nas barras. A restrição de investimento (financeira) diz respeito à quantidade de reguladores de tensão que se pretende instalar. Além de possuir um custo de instalação elevado o número de reguladores de tensão também pode ser relacionado à operação do sistema pois a operação de um número inadequado de reguladores de tensão em um mesmo alimentador é considerada complexa. Entre as metodologias utilizadas para resolver o problema de alocação ótima de reguladores de tensão podem ser encontrados algoritmos heurísticos construtivos [34, 35] e metaheurísticas como o algoritmo genético [36]. São poucos os trabalhos encontrados na literatura que apresentam metodologias para resolver o problema de alocação ótima de reguladores de tensão em sistemas de distribuição. Um modelo matemático para o problema de alocação ótima de reguladores de tensão pode ser escrito da seguinte forma: min f = κ r ij Ω r (c rij r ij )+ d Ω d δ ld c ld ij Ω l g ij (V 2 i,d +V 2 j,d 2V i,d V j,d cosθ ij,d ) (35) s.a. P i,d P Si,d +P Di,d = 0 i Ω b, d Ω d (36) Q i,d Q Si,d +Q Di,d = 0 i Ω b, d Ω d (37) 1 V min V i,d 1+ V max i Ω b, d Ω d (38) Pij,d 2 +Q 2 ij,d S 2 ij ij Ω f, d Ω d (39) r ij t ij t ij,d 1 r ij t ij ij Ω r, d Ω d (40) (rij 0 +r ij) nr (41) ij Ω r r ij {0,1} ij Ω r (42) Ω r é o conjunto de RTs. κ r é a taxa de recuperação de capital de instalação de RTs. c ri, 40

42 r i e r 0 i representam o custo dos RTs que podem ser adicionados ao sistema, o número de RTs adicionados e o número de RTs existente no sistema para controlar a tensão de um nó i; t ij e t ij são os limites de variação dos taps e o tap do RT no ramo ij. nr é o número máximo de RTs que pode ser instalado no sistema. Um regulador de tensão pode ser modelado como um auto-transformador com seu tap variando de acordo com um limite preestabelecido. A Figura 5 mostra um ramo ij que possui o regulador de tensão j j que está em série com um ramo ij. O ramo ij possui as mesmas características elétricas de um ramo ij sem o regulador de tensão. A barra j é uma barra de passagem, ela serve como uma barra de auxílio para ilustrar o regulador de tensão que irá controlar a tensão da barra j, [37]. i Z km j r j j j Figura 5: Modelo do regulador de tensão Quando existem reguladores de tensão instalados no sistema de distribuição as matrizes G ij,d e B ij,d passam a variar em função dos taps dos reguladores de tensão t j j,d e os elementos de fluxo de potência ativa e reativa no regulador de tensão j j são dados por: P j j,d = t 2 j j,dv 2 j,dg j j t j j,dv j,dv j,d (g j jcosθ j j,d +b j jsenθ j j,d) (43) Q j j,d = t 2 j j,d V j 2,d b j j t j j,dv j,dv j,d (g j jsenθ j j,d b j jcosθ j j,d) (44) Sabe-se que o valor da impedância de um regulador de tensão é desprezível, porém, cabe ressaltar que para aplicar este modelo de regulador de tensão no problema é necessário especificar um valor para a resistência e para a reatância deste regulador de tensão. Valores estes que são normalmente muito pequenos e que podem afetar a eficiência do modelo. Outra forma de modelar o regulador de tensão pode ser encontrado em [37] Codificação do Problema de Alocação Ótima de Regulares de Tensão em Sistemas de Distribuição Uma proposta de codificação para o problema de alocação ótima de reguladores de tensão em sistemas de distribuição pode ser aquela em que a variável de investimento r ij identifica em qual ramo do sistema o regulador de tensão deve ser instalado, já que o modelo matemático apresentado pelas Eqs. (35) (42), onde o regulador de tensão é modelado como um autotransformador que regula a tensão da barra que recebe o fluxo de potência que passa por determinado ramo. Seja um sistema ilustrativo com 1 subestação (barra 1) e 9 barras de carga e 8 ramos. Considerando que é possível a regulação de tensão em qualquer das 9 barras de carga do sistema obedecendo um limite determinado pela concessionária, assim podemos dizer que qualquer ramo pode ser escolhido. As variáveis de investimento são binárias. Vamos considerar neste caso que nr = 2. 41

43 Desta forma uma proposta de solução para o problema na qual r ij representa um ramo do sistema pode ser dada da seguinte forma. Proposta de solução 1 - prt Como cada elemento da proposta de solução representa um ramo do sistema a barra cuja tensão será regulada é a barra na qual o fluxo de potência está sendo injetado e para este modelo matemático uma barra de passagem j auxiliar é criada no ramo escolhido. Para uma dada proposta de solução a avaliação da factibilidade do problema é feita através do cálculo do ponto de operação do sistema, que pode ser feito utilizando um algoritmo de fluxo de carga pelo método de Newton ou pelo método de varredura, ou também resolvendo um problema de PNL. Quando o ponto de operação é calculado utilizando um fluxo de carga pelo método de varredura, não há necessidade de especificar um valor para a impedância do regulador de tensão. Avaliação da Função Objetivo A avaliação da proposta de solução é feita calculando o valor da função objetivo dada pela Eq. (35). No caso de se utilizar um problema de PNL para calcular o ponto de operação do sistema, a função objetivo é calculada diretamenta pelo problema de PNL. No caso de serem utilizados algoritmos de fluxo de carga, as perdas no sistema podem ser calculadas utilizando os valores de tensão e ângulo calculados pelo método de Newton, ou podem ser calculadas diretamente quando utilizado o método de varredura, porém a primeira parcela da equação Eq. (35) deve ser calculada separadamente e então a soma das duas parcelas deve ser feita para obter o valor total dos custos. A factibilidade do problema é avaliada pelas restrições apresentadas pelas Eqs. (36) (42). Assim se alguma destas restrições forem violadas, então o problema é infactível. Como encontrar um vizinho Quando se trata de uma metaheurística baseada na heurística de busca local, necessitamos caminhar na vizinhança de cada proposta de solução até encontrar a melhor proposta de solução para o problema. Assim, uma forma de se encontrar um vizinho para prt1 seria escolher aleatoriamente duas posições do vetor de codificações e trocar seus elementos entre si, logo em prt1 se escolhemos as posições 2 e 3, então podemos gerar a seguinte proposta de solução vizinha de prt1: Proposta de solução 2 - prt considerando que a metaheurística tenha uma fase de mutação ou uma fase de melhoria local (depende da metaheurística utilizada) na qual escolheríamos aleatoriamente uma posição do vetor de codificação para ser modificada, então, podemos gerar uma proposta de solução vizinha de prt2 escolhendo por exemplo a posição 7 e mudando o valor de seu elemento para 1 caso este elemento seja igual a zero ou mudamos para zero em caso contrário, logo teríamos a seguinte proposta de solução: Proposta de solução 3 - prt

44 Supor que prt3 ainda precise passar por uma fase de melhoria local, então, poderíamos escolher apenas as posições do vetor solução cujos elementos forem iguais a 1, e trocar este elemento para uma posição que equivale ao ramo anterior adjacente ao ramo escolhido. Assim, uma melhoria local para prt3 pode ser realizada por exemplo pela escolha aleatória da posição 7 que representa o ramo 5 10 e trocar este elemento com a posição 4 que representa o ramo 3 5, logo teremos: Proposta de solução 4 - prt Outras Metodologias para Resolver os Problemas de Otimização de Sistemas de Distribuição Na literatura especializada aparecem outras técnicas de otimização para resolver os problemas de otimização de sistemas de distribuição e que podem ser separadas em dois grandes grupos: (1) técnicas exatas e (2) heurísticas. As técnicas exatas, como os algoritmos Branch and Bound (B&B) também já foram utilizadas para resolver o problema de PSD [38], e RDS [39]. O algoritmo B&B também foi utilizado para resolver o problema de planejamento da expansão do sistema de distribuição considerando alocação ótima de bancos de capacitores [40] Também para resolver o problema de PSD podemos encontrar na literatura o algoritmo heurístico construtivo proposto em [41]. Dentre os algoritmos heurísticos utilizados para resolver o problema de RDS estão os algoritmos heurísticos construtivos propostos em [24] e [25]. Dentre os algoritmos heurísticos construtivos utilizados para resolver o problema de alocação ótima de banco de capacitores estão [26], [27]; Como citado na subseção 3.5, os algoritmos heurísticos construtivos também foram utilizados para resolver o problema de alocação ótima de reguladores de tensão [34, 35]. Modelos linearizados também têm sido desenvolvidos para resolver alguns problemas de otimização de sistemas de distribuição, onde os problemas de otimização são modelados como problemas de programação linear inteiro misto e para resolver tais problemas, solvers comerciais têm sido utilizados e os resultados obtidos têm sido de boa qualidade. Tais solvers utilizam algoritmos B&B como metodologia de solução e para resolver o problema de programação linear a cada nó da árvore de B&B é utilizado o método simplex, [42] [43]. 4. Aplicação das Metaheurísticas no Problema de Planejamento da Expansão de Sistemas de Transmissão O problema de planejamento da expansão (PPEX) a longo prazo de sistemas de transmissão de energia elétrica é um problema muito complexo para resolver por técnicas tradicionais de otimização porque apresenta muitos ótimos locais. Neste caso analisamos o caso mais simples, o problema de planejamento estático. A modelagem mais usada no planejamento estático da expansão de sistemas de transmissão é o modelo DC que assume a seguinte forma: min v = ij c ij n ij +α i r i (45) 43

45 S f +g +r = d (46) f ij γ(n o ij +n ij )(θ i θ j ) = 0 f ij (n o ij +n ij)f ij 0 g g 0 r d 0 n ij n ij f ij e θ j irrestritos (47) onde v é o custo total de expansão do sistema elétrico, c ij é o custo de expansão de uma linha no caminho i j, n ij é o número de linhas que podem ser adicionadas no caminho i j e representa a principal variável de decisão do problema de otimização, n ij é o número máximo de linhas que podem ser adicionadas no caminho i j, S é a matriz de incidência nó-ramo transposta do sistema elétrico, f ij é o fluxo de potência total que passa pelas linhas no caminho i j, f ij é o fluxo de potência máximo que pode passar por uma linha no caminho i j, θ j é o ângulo de tensão na barra j, γ é a susceptância de uma linha no caminho i j, d é o vetor de demanda nas barras de demanda, g é o vetor de geração nas barras de geração, r é o vetor de geradores artificiais nas barras de demanda, sendo que r i é a geração artificial na barra i. Assim, as variáveis r i foram adicionadas no modelo de otimização apenas para facilitar a processo de resolução do problema PPEX quando usamos heurísticas e metaheurísticas. O primeiro conjunto de restrições representam a primeira lei de Kirchhoff e o segundo conjunto a segunda lei de Kirchoff. As outras restrições representam as restrições operacionais dos equipamentos de geração e de transmissão. Do ponto de vista de otimização matemática o problema PPEX mostrado anteriormente é um problema de programação não linear inteiro misto. Assim, neste trabalho analisamos a forma de resolver o problema PPEX quando usamos as metaheurísticas. O problema PPEX mostrado anteriormente corresponde ao tipo de problema em que não pode ser dispensada a modelagem matemática quando usamos metaheurísticas. Esse tipo de comportamento acontece com a maioria de problemas de otimização relacionadas com a operação e o planejamento de sistemas de energia elétrica. Portanto, todas as metaheurísticas apresentadas na literatura especializada para resolver o problema PPEX codificam apenas as linhas de transmissão que correspondem a uma proposta de solução. Em outras palavras, escolhe-se os valores das variáveis n ij no modelo matemático usando a lógica de cada metaheurística. Após essa decisão, o valor das variáveis de operação (f ij, θ j, g k ) são encontradas de forma exata resolvendo um problema de programação linear (PL). A solução desse PL fornece também a informação da proposta de solução em termos de factibilidade. Para ilustrar a implementação de uma metaheurística usamos os dados do sistema de 6 barras e 15 caminhos de Garver. Na Tabela 3.1 apresentamos os dados das linhas de transmissão e na Figura 3.1 mostramos a topologia base. Os dados completos podem ser encontrados em [44]. Neste trabalho apresentamos de forma resumida os tópicos relacionados com a implementação de uma metaheurística para resolver o problema PPEX. Assim, analisamos a forma de codificação, a forma de encontrar o valor da função objetivo, a forma de encontrar as variáveis operacionais, e a forma de verificar a factibilidade ou infactibilidade de uma proposta de solução e a forma de especificar as estruturas de vizinhança. A codificação ou representação de uma proposta de solução do problema PPEX é realizado apenas escolhendo o valor das variáveis inteiras n ij. Os valores dos n ij, como foi mencionado anteriormente, são escolhidos usando a lógica de cada metaheurística. Assim, as 44

46 r 5 = 240 g 1 = g 3 = r 2 = w = 545 v1 = r 4 = g 6 = Figura 6: Topologia Base 45

47 Tabela 1: Dados de linha do sistema de 6 barras da Figura 6. Circ. Barra Barra n o ij Circ. Barra Barra n o ij Tabela 2: Dados de geração e demanda do sistema de 6 barras da Figura 6. Barra Geração Maxima Demanda (MW) (MW) primeiras soluções podem ser geradas de forma aleatória ou usando AHCs. Posteriormente, novas propostas de solução são geradas usando os operadores das metaheurísticas (por exemplo, usando a seleção, recombinação e mutação no algoritmo genético, e escolhendo uma solução vizinha no caso de tabu search e simulated annealing). Supor que foi gerada a proposta de solução mostrada na Figura 7 em que foram adicionadas duas linhas de transmissão no caminho 2 6 e outras duas linhas de transmissão no caminho 4 6. Para essa proposta de solução, a codificaçao assume a seguinte forma: Para cada proposta de solução, como a mostrada na Figura 7, podemos encontrar o valor da função objetivo (a qualidade da solução) e verificar a operação do sistema (se o sistema opera de forma adequada). O valor da função objetivo pode ser encontrada de forma trivial usando a seguinte relação: v 1 = ij c ij n ij barra p 1 =

48 r 5 = 120,469 g 1 = g 3 = r 2 = 37, w = 158,239 2 v1 = n 26 = n 46 = 2 g 6 = 386, Figura 7: Proposta de solução onde v 1 representa o custo da expansão. Para a proposta da Figura 3.2, o custo da expansão é v 1 = 120 unidades monetárias. Para verificar a qualidade da operação devemos resolver o problema de PL que aparece na modelagem matemática após fixar o valor das variáveis n ij. Esse problema de PL, para uma proposta de solução n k ij conhecida, assume a seguinte forma: min w = i r i (48) S f +g +r = d (49) f ij γ(n o ij +n k ij)(θ i θ j ) = 0 f ij (n o ij +n k ij)f ij 0 g g 0 r d f ij e θ j irrestritos (50) onde w representa o corte de carga relacionada com a proposta de solução. Obviamente, a proposta de solução relacionada com os n ij devem estar dentro dos limites. Se w = 0 significa que a proposta de solução gerada pela metaheurística é factível. Por outro lado, se w 0 então a proposta de solução é infactível e o valor de w representa o nível de infactibilidade da proposta de solução. A resolução do PL também permite encontrar o valor das variáveis de operação (f ij, θ j, g k ). Para a proposta de solução mostrada na Figura 3.2, o resolução do PL mostra um valor de w = 158,2 MW indicando que a proposta de expansão é infactível. Os valores das variáveis de operação são mostradas na Figura 7. A solução ótima do sistema de Garver é mostrada na Figura 8. 47

49 g 1 = n 35 = 1 g 3 = w = 0,0 2 v1 = n 26 = n 46 = 2 g 6 = Figura 8: Topologia Ótima. Finalmente, a maioria das metaheurísticas que resolvem o problema PPEX utilizam a estrutura de vizinhança tradicional. Assim, para o codificação tradicional proposta, codificando somente as variáveis inteiras, pode-se definir várias formas de vizinhança, isto é, várias formas de identificar soluções vizinhas da solução corrente. A maneira de ilustração, podem ser identificados vizinhos da configuração corrente, todas as topologias obtidas da seguinte forma: 1. Adicionando um circuito na topologia corrente. 2. Trocando circuitos com a adição de um circuito e a retirada de outro circuito. 3. Retirando um circuito da topologia corrente. 4. Todas as propostas anteriores. As propostas anteriores, muito parecidas a propostas de estrutura de vizinhança propostas para outros problemas combinatórios, geralmente são ineficientes para o problema PPEX porque identificam muitas propostas de solução vizinhas e geralmente a grande maioria deles são de baixa qualidade. Esse problema se torna mais crítico no caso do problema PPEX porque avaliar uma solução vizinha significa resolver um problema de PL. A estratégia mais eficiente é definir uma estrutura de vizinhança com troca de linhas de transmissão mais usando uma estratégia de redução de vizinhança que pode ser realizado conhecendo os fluxos nas linhas da solução corrente. Na literatura especializada podem ser encontrados vários trabalhos que utilizam metaheurísticas para solucionar problemas de planejamento de sistemas de transmissão como por exemplo, [44], [45], [46], [47], [48], [49], [50]. 48

50 Referencias [1] F. Glover, G. Kochenberger: Handbook of metaheuristics, Kluwer Academic Publishers, [2] D.E. Goldberg: Genetic algorithms in search, optimization and machine learning, Addison Wesley, [3] Z. Michalewicz: Genetic algorithms + data structure = evolution programs, Springer- Verlag, [4] V. Miranda, J. V. Ranito and L. M. Proença, Genetic Algorithm in Optimal Multistage Distribution Network Planning, IEEE Transactions on Power Systems, vol. 9, no. 4, pp , Nov [5] I. J. Ramirez-Rosado and J. L. Bernal-Agustín, Genetic algorithm applied to the design of large power distribution systems, IEEE Transactions on Power Systems, vol. 13, no. 2, pp , May [6] J. M. Nahman and D. M. Peric, Optimal Planning of Radial Distribution Networks by Simulated Annealing Technique, IEEE Transactions on Power Systems, vol. 23, no. 2, pp , May [7] V. Parada, J. A. Ferland, M. Arias and K. Daniels, Optimization of electric distribution feeders using simulated annealing, IEEE Transactions on Power Delivery, vol. 19, pp , Jul [8] A. Baykasoglu, S. Owen and N. Gindy, Solution of goal programming models using a basic taboo search algorithm, Journal of Operational Research Society, Nottingham, vol. 50, no. 9, pp , [9] J. F. Gómez, H. M. Khodr, P. M. Oliveira, L. Ocque, J. M. Yusta, R. Villasana and A. J. Urdaneta, Ant colony system algorithm for the planning of primary distribution circuits, IEEE Transactions on Power Systems, vol. 19, no. 2, pp , May [10] F. Mendoza, J. L. Bernal Agustín and J. A. Domínguez-Navarro, NSGA and SPEA Applied to Multiobjective Design of Power Distribution Systems, IEEE Transactions on Power Systems, vol. 21, no. 4, pp , Nov [11] E. Díaz-Dorado, J. Cidrás and E. Míguez, Application of Evolutionary Algorithms for the Planning of Urban distribution Networks of Medium Voltage, IEEE Transactions on Power Systems, vol. 17, no. 3, pp , Aug [12] R. F. F. Souza, Planejamento da Expansão de Ssistemas de Distribuição Usando a Metaheurística de Busca em Vizinhança Variável, Dissertação (Mestrado em Engenharia Elétrica),Universidade Estadual Paulista, Faculdadede Engenharia de Ilha Solteira [13] J. L. Bernal-Agustín, Aplicación de Algoritmos Genéticos al Diseño Optimo de Sistemas de Distrubuición de Energía Eléctrica, Ph.D. disertation, Universidad de Zaragoza, España, [14] M. Lavorato, J. F. Franco, M. J. Rider, R. Romero, Imposing Radiality Constraints in Distribution System Optimization Problems, IEEE Transactions on Power Systems, v. 27, p ,

51 [15] Young-Jae Jeon, Jae-Chul Kim, Jin-O Kim, Joong-Rin Shin and K.Y. Lee, An efficient simulated annealing algorithm for network reconfiguration in large-scale distribution systems, IEEE Transactions on Power Delivery, vol. 17, no. 4, pp , Oct [16] Chung-Fu Chang, Reconfiguration and Capacitor Placement for Loss Reduction of Distribution Systems by Ant Colony Search Algorithm, IEEE Transactions on Power Systems, vol.23, no.4, pp , Nov [17] J. Mendoza, R. Lopez, D. Morales, E. Lopez, P. Dessante and R. Moraga, Minimal loss reconfiguration using genetic algorithms with restricted population and addressed operators: Real application,"ieee Transaction on Power Systems, vol. 21, No. 2, pp , May [18] E. Carreño, R. Romero and A. Padilha-Feltrin, An efficient codification to solve distribution network reconfiguration for loss reduction problem, IEEE Transactions on Power Systems, vol. 23, no. 4, pp , November [19] K. Prasad, R. Ranjan and N.C. Sahoo, A. Chaturvedi, Optimal reconfiguration of radial distribution systems using a fuzzy mutated genetic algorithm, IEEE Transactions on Power Delivery, vol.20, no.2, pp , April [20] H. Mori and Y. Ogita, A parallel tabu search based approach to optimal network reconfigurations for service restoration in distribution systems, Proceedings of the 2002 International Conference on Control Applications, vol.2, no., pp vol.2, [21] D. Zhang, Z. Fu, and L. Zhang, An improved TS algorithm for loss-minimum reconfiguration in large-scale distribution systems, Electric Power Systems Research, vol. 77, no. 5-6, pp , [22] Y. Abdelaziz, et al., Distribution system reconfiguration using a modified Tabu Search algorithm, Electric Power Systems Research, vol. 80, pp , [23] Marlon Borges Correa de Oliveira, Reconfiguração de Alimentadores dm Sistemas de Distribuição Usando a Metaheurística Grasp, Dissertação (Mestrado em Engenharia Elétrica),Universidade Estadual Paulista, Faculdadede Engenharia de Ilha Solteira 2011 [24] T. E. McDermott, I. Drezga and R. P. Broadwater, A Heuristic Nonlinear Constructive Method for Distribution System Reconfiguration, IEEE Transactions on Power Systems, vol. 14, no. 2, pp , May [25] F. Gomes, S. Carneiro, J.L.R. Pereira, M. Vinagre, P. Garcia, L. Araujo, A new heuristic reconfiguration algorithm for large distribution systems, IEEE Transaction on Power Systems, vol. 20, No. 3, pp , August [26] S. Segura, R. Romero and M. J. Rider, Efficient heuristic algorithm used for optimal capacitor placement in distribution systems, Int. J. Electr. Power Energy Syst., vol. 32, no. 1, pp , Jan [27] I. C. Silva Junior, S. Carneiro Junior, E. J. Oliveira, J. S. Costa, J. L. R. Pereira and P. A. N. Garcia, A heuristic constructive algorithm for capacitor placement on distribution system, IEEE Trans. Power Syst., vol. 23, no. 4, pp , Nov

52 [28] G. Boone and H. D. Chiang, Optimal capacitor placement in distribution systems by genetic algorithm, Int. J. Electr. Power Energy Syst., vol. 15, no. 3, pp , June [29] G. Levitin, A. Kalyuzhny, A. Shenkman and M. Chertkov, Optimal capacitor allocation in distribution systems using a genetic algorithm and a fast energy loss computation technique, IEEE Trans. Power Del., vol. 15, no. 2, pp , April [30] H. D. Chiang, J. C. Wang, O. Cockings and H. D. Shin, Optimal capacitor placements in distribution systems: part 1: a new formulation and the overall problem, IEEE Trans. Power Del., vol. 5, no. 2, pp , Apr [31] H. D. Chiang, J. C. Wang, O. Cockings and H. D. Shin, Optimal capacitor placements in distribution systems: part 2: solution algorithms and numerical results, IEEE Trans. Power Del., vol. 5, no. 2, pp , Apr [32] Y. C. Huang, H. T. Yang and C. L. Huang, Solving the capacitor placement problem in a radial distribution system using tabu search approach, IEEE Trans. Power Syst., vol. 4, no. 11, pp , Nov [33] D. F. Pires, A. G. Martins and C. H. Antunes, A multiobjective model for VAR planning in radial distribution networks based on tabu search, IEEE Trans. Power Syst., vol. 20, no. 2, pp , May [34] C. A. N. Pereira and C. A. Castro, Optimal placement of voltage regulators in distribution systems, 2009 IEEE Bucharest Power Tech Conference, pp. 1-5, Bucharest, Romania, [35] A. S. Safigianni and G. J. Salis, Optimum voltage regulator placement in a radial power distribution network, IEEE Trans. Power Syst., vol. 15, no. 2, pp , May [36] J. E. Mendoza, D. A. Morales, R. A. López, E. A. López, J. C. Vannier and C. A. C. Coello, Multiobjective location of automatic voltage regulators in a radial distribution network using a micro genetic algorithm, IEEE Trans. Power Syst., vol. 22, no. 1, pp , Feb [37] Marina Lavorato de Oliveira, Planejamento Integrado da Expansão de Sistemas de Distribuição de Energia Elétrica. Tese (Doutorado em Engenharia Elétrica), Universidade Estadual de Campinas. Faculdade de Engenharia Elétrica e de Computação, [38] M. Lavorato, M. J. Rider, A. V. Garcia, R. Romero, Planejamento da Expansão de Sistemas de Distribuição Utilizando um Algoritmo Branch and Bound Não Linear, III Simpósio Brasileiro de Sistemas Elétricos, pp. 1-6, Belém, Pará, [39] A. Merlin, and G. Back, Search for minimum-loss operational spanning tree configuration for an urban power distribution system, Proc. of the Fifth Power System Conference, 1975, Cambridge, pp [40] M. Lavorato, M. J. Rider, A. V. Garcia, R. Romero, Planejamento da Expansão do Sistema de Distribuição Considerando Alocação Ótima de Bancos de Capacitores, XVIII Congresso Brasileiro de Automática, pp. 1-8, 2010, Bonito, Mato Grosso do Sul. 51

53 [41] M. Lavorato, M. J. Rider, A. V. Garcia, R. Romero, A Constructive Heuristic Algorithm for Distribution System Planning, IEEE Transactions on Power Systems, v. 25, p , Aug [42] J. F. Franco, M. J. Rider, M. Lavorato, R. Romero, A Set of Linear Equations to Calculate the Steady State Operation of an Electrical Distribution System, 2011 IEEE PES Conference on Innovative Smart Grid Technologies, 2011, Medellin, Colombia. [43] J. F. Franco, M. J. Rider, M. Lavorato, R. Romero, Optimal Allocation of Capacitors in Radial Distribution Systems with Distributed Generation, 2011 IEEE PES Conference on Innovative Smart Grid Technologies, 2011, Medellin, Colombia. [44] Lina Paola Garçes Negrete, Planejamento da Expansão de Sistemas de Transmissão Considerando Análise de Confiabilidade e Incertezas na Demanda Futura, Tese (Doutorado em Engenharia Elétrica),Universidade Estadual Paulista, Faculdadede Engenharia de Ilha Solteira,2010. [45] Silvia Lopes de Sena Taglialenha. Novas Aplicações de Metaheuristicas na Solução do Problema de Planejamento da Expansão do Sistema de Transmissão De Energia Eletrica, Dissertação (Mestrado em Engenharia Elétrica),Universidade Estadual Paulista, Faculdadede Engenharia de Ilha Solteira, [46] Marilene Mantovani, Desenvolvimento de Algoritmos Evolutivos para o Problema de Planejamento da Expansão a Longo Prazo de Sistemas de Transmissão, Tese (Doutorado em Engenharia Elétrica),Universidade Estadual Paulista, Faculdadede Engenharia de Ilha Solteira, [47] R. Romero, M. J. RIDER, e I. J. Silva, A Metaheuristic to Solve the Transmission Expansion Planning, IEEE Transactions on Power Systems, v. 22, p , [48] I.J. Silva, M.J. RIDER, R. Romero, e C.A. Murari, Transmission Network Expansion Planning Considering Uncertainness in Demand, IEEE Transactions on Power Systems, v. 21, p , [49] M. Rahmani, M. Rashidinejad, E.M. Carreno, e R. Romero, Efficient method for AC transmission network expansion planning, Electric Power Systems Research, v. 80, p , 2010 [50] E. L. da Silva, J. M. A. Ortiz, G. C. de Oliveira, e S. Binato, Transmission Network Expansion Planning Under a Tabu Search Approach, IEEE Transactions on Power Systems, vol. 16, no. 1, Feb

BUSCA LOCAL ITERADA (ILS ITERATED LOCAL SEARCH)

BUSCA LOCAL ITERADA (ILS ITERATED LOCAL SEARCH) BUSCA LOCAL ITERADA (ILS ITERATED LOCAL SEARCH) Francisco A. M. Gomes 1º sem/2009 MT852 Tópicos em pesquisa operacional Iterated local search (ILS) Método que gera uma sequência de soluções obtidas por

Leia mais

Algoritmos Genéticos

Algoritmos Genéticos UNIVERSIDADE PRESBITERIANA MACKENZIE Laboratório de Computação Natural LCoN I ESCOLA DE COMPUTAÇÃO NATURAL Algoritmos Genéticos Rafael Xavier e Willyan Abilhoa Outubro/2012 www.computacaonatural.com.br

Leia mais

A Otimização Colônia de Formigas

A Otimização Colônia de Formigas A Otimização Colônia de Formigas Estéfane G. M. de Lacerda Departamento de Engenharia da Computação e Automação UFRN 22/04/2008 Índice A Inspiração Biológica O Ant System Aplicado ao PCV O Ant System Aplicado

Leia mais

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C01 Simulated Annealing (20/11/07). C02 Busca Tabu (22/11/07). C03 Colônia

Leia mais

Inteligência Computacional Aplicada a Engenharia de Software

Inteligência Computacional Aplicada a Engenharia de Software Inteligência Computacional Aplicada a Engenharia de Software Estudo de caso III Prof. Ricardo de Sousa Britto [email protected] Introdução Em alguns ambientes industriais, pode ser necessário priorizar

Leia mais

IA Colônia de Formigas. Prof. Ricardo Britto DIE-UFPI [email protected]

IA Colônia de Formigas. Prof. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br IA Colônia de Formigas Prof. Ricardo Britto DIE-UFPI [email protected] Sumário Introdução O Experimento da Ponte Binária. Ant System Aplicado ao PCV. Elitist Ant System. Introdução Otimização colônia

Leia mais

Inteligência de Enxame: ACO

Inteligência de Enxame: ACO Inteligência de Enxame: ACO! Otimização colônia de formigas é uma meta-heurística: «baseada em população «inspirada no comportamento forrageiro das formigas.! Muitas espécies de formigas são quase cegas.!

Leia mais

Complemento IV Introdução aos Algoritmos Genéticos

Complemento IV Introdução aos Algoritmos Genéticos Complemento IV Introdução aos Algoritmos Genéticos Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações e

Leia mais

Meta-heurísticas. Métodos Heurísticos José António Oliveira [email protected]. meta-heurísticas

Meta-heurísticas. Métodos Heurísticos José António Oliveira zan@dps.uminho.pt. meta-heurísticas Meta-heurísticas 105 meta-heurísticas Propriedades e Características: são estratégias que guiam o processo de pesquisa; - o objectivo a atingir é a exploração eficiente do espaço de pesquisa de modo a

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 04 Algoritmos Genéticos Introdução Algoritmos genéticos são bons para abordar espaços de buscas muito grandes e navegálos

Leia mais

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14 1 Introdução O termo "roteamento de veículos" está relacionado a um grande conjunto de problemas de fundamental importância para a área de logística de transportes, em especial no que diz respeito ao uso

Leia mais

APLICAÇÃO DE MÉTODOS HEURÍSTICOS EM PROBLEMA DE ROTEIRIZAÇÃO DE VEICULOS

APLICAÇÃO DE MÉTODOS HEURÍSTICOS EM PROBLEMA DE ROTEIRIZAÇÃO DE VEICULOS APLICAÇÃO DE MÉTODOS HEURÍSTICOS EM PROBLEMA DE ROTEIRIZAÇÃO DE VEICULOS Bianca G. Giordani (UTFPR/MD ) [email protected] Lucas Augusto Bau (UTFPR/MD ) [email protected] A busca pela minimização

Leia mais

PÓS GRADUAÇÃO EM CIÊNCIAS DE FLORESTAS TROPICAIS-PG-CFT INSTITUTO NACIONAL DE PESQUISAS DA AMAZÔNIA-INPA. 09/abril de 2014

PÓS GRADUAÇÃO EM CIÊNCIAS DE FLORESTAS TROPICAIS-PG-CFT INSTITUTO NACIONAL DE PESQUISAS DA AMAZÔNIA-INPA. 09/abril de 2014 PÓS GRADUAÇÃO EM CIÊNCIAS DE FLORESTAS TROPICAIS-PG-CFT INSTITUTO NACIONAL DE PESQUISAS DA AMAZÔNIA-INPA 09/abril de 2014 Considerações Estatísticas para Planejamento e Publicação 1 Circularidade do Método

Leia mais

Ciclo de Vida de Projetos. Notas de aula exclusivas Proibido a reprodução total ou parcial sem consentimentos

Ciclo de Vida de Projetos. Notas de aula exclusivas Proibido a reprodução total ou parcial sem consentimentos Ciclo de Vida de Projetos Notas de aula exclusivas Proibido a reprodução total ou parcial sem consentimentos Introdução Todo e é qualquer projeto pode ser subdividido em determinadas fases ou grupos de

Leia mais

1. Avaliação de impacto de programas sociais: por que, para que e quando fazer? (Cap. 1 do livro) 2. Estatística e Planilhas Eletrônicas 3.

1. Avaliação de impacto de programas sociais: por que, para que e quando fazer? (Cap. 1 do livro) 2. Estatística e Planilhas Eletrônicas 3. 1 1. Avaliação de impacto de programas sociais: por que, para que e quando fazer? (Cap. 1 do livro) 2. Estatística e Planilhas Eletrônicas 3. Modelo de Resultados Potenciais e Aleatorização (Cap. 2 e 3

Leia mais

4 Segmentação. 4.1. Algoritmo proposto

4 Segmentação. 4.1. Algoritmo proposto 4 Segmentação Este capítulo apresenta primeiramente o algoritmo proposto para a segmentação do áudio em detalhes. Em seguida, são analisadas as inovações apresentadas. É importante mencionar que as mudanças

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Prof. Humberto Brandão [email protected] Universidade Federal de Alfenas Departamento de Ciências

Leia mais

Utilização do SOLVER do EXCEL

Utilização do SOLVER do EXCEL Utilização do SOLVER do EXCEL 1 Utilização do SOLVER do EXCEL José Fernando Oliveira DEEC FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO MAIO 1998 Para ilustrar a utilização do Solver na resolução de

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão [email protected]

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução Prof. Humberto Brandão [email protected] aula disponível no site: http://www.bcc.unifal-mg.edu.br/~humberto/ Universidade Federal de

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão [email protected]

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Prof. Humberto Brandão [email protected] Laboratório de Pesquisa e Desenvolvimento Universidade Federal de Alfenas versão

Leia mais

Simulação Computacional de Sistemas, ou simplesmente Simulação

Simulação Computacional de Sistemas, ou simplesmente Simulação Simulação Computacional de Sistemas, ou simplesmente Simulação Utilização de métodos matemáticos & estatísticos em programas computacionais visando imitar o comportamento de algum processo do mundo real.

Leia mais

ALGORITMOS GENÉTICOS

ALGORITMOS GENÉTICOS ALGORITMOS GENÉTICOS INTRODUÇÃO São métodos adaptativos que podem ser usados para resolver problemas de busca e otimização. Na natureza a combinação de boas características provenientes de diferentes indivíduos

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

IBM1018 Física Básica II FFCLRP USP Prof. Antônio Roque Aula 6. O trabalho feito pela força para deslocar o corpo de a para b é dado por: = =

IBM1018 Física Básica II FFCLRP USP Prof. Antônio Roque Aula 6. O trabalho feito pela força para deslocar o corpo de a para b é dado por: = = Energia Potencial Elétrica Física I revisitada 1 Seja um corpo de massa m que se move em linha reta sob ação de uma força F que atua ao longo da linha. O trabalho feito pela força para deslocar o corpo

Leia mais

Cadeias de Markov. Geovany A. Borges [email protected]

Cadeias de Markov. Geovany A. Borges gaborges@ene.unb.br 36341 - Introdução aos Processos Estocásticos Curso de Pós-Graduação em Engenharia Elétrica Departamento de Engenharia Elétrica Universidade de Brasília Cadeias de Markov Geovany A. Borges [email protected]

Leia mais

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu 1 Programação Não Linear Aula 25: Programação Não-Linear - Funções de Uma única variável Mínimo; Mínimo Global; Mínimo Local; Optimização Irrestrita; Condições Óptimas; Método da Bissecção; Método de Newton.

Leia mais

Módulo 4. Construindo uma solução OLAP

Módulo 4. Construindo uma solução OLAP Módulo 4. Construindo uma solução OLAP Objetivos Diferenciar as diversas formas de armazenamento Compreender o que é e como definir a porcentagem de agregação Conhecer a possibilidade da utilização de

Leia mais

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 3.2 O Espaço Nulo de A: Resolvendo Ax = 0 11 O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 Esta seção trata do espaço de soluções para Ax = 0. A matriz A pode ser quadrada ou retangular. Uma solução imediata

Leia mais

Instalações Máquinas Equipamentos Pessoal de produção

Instalações Máquinas Equipamentos Pessoal de produção Fascículo 6 Arranjo físico e fluxo O arranjo físico (em inglês layout) de uma operação produtiva preocupa-se com o posicionamento dos recursos de transformação. Isto é, definir onde colocar: Instalações

Leia mais

Ivan Guilhon Mitoso Rocha. As grandezas fundamentais que serão adotadas por nós daqui em frente:

Ivan Guilhon Mitoso Rocha. As grandezas fundamentais que serão adotadas por nós daqui em frente: Rumo ao ITA Física Análise Dimensional Ivan Guilhon Mitoso Rocha A análise dimensional é um assunto básico que estuda as grandezas físicas em geral, com respeito a suas unidades de medida. Como as grandezas

Leia mais

CAP. I ERROS EM CÁLCULO NUMÉRICO

CAP. I ERROS EM CÁLCULO NUMÉRICO CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

ALGORITMO EVOLUTIVO PARA A OTIMIZAÇÃO DA GRADE HORÁRIA DO CURSO DE ENGENHARIA ELÁTRICA DA FEIS-UNESP

ALGORITMO EVOLUTIVO PARA A OTIMIZAÇÃO DA GRADE HORÁRIA DO CURSO DE ENGENHARIA ELÁTRICA DA FEIS-UNESP INSTRUÇÕES PARA A PREPARAÇÃO E SUBMISSÃO DE TRABALHOS PARA CONGRESSO BRASILEIRO DE ENSINO DE ENGENHARIA 2003 ALGORITMO EVOLUTIVO PARA A OTIMIZAÇÃO DA GRADE HORÁRIA DO CURSO DE ENGENHARIA ELÁTRICA DA FEIS-UNESP

Leia mais

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia e não têm a intenção de substituir o livro-texto, nem qualquer outra bibliografia. Introdução O Cálculo Numérico

Leia mais

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR 6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,

Leia mais

INVESTIGAÇÃO OPERACIONAL EM AÇÃO

INVESTIGAÇÃO OPERACIONAL EM AÇÃO INVESTIGAÇÃO OPERACIONAL EM AÇÃO CASOS DE APLICAÇÃO RUI CARVALHO OLIVEIRA JOSÉ SOEIRO FERREIRA (EDITORES) IMPRENSA DA UNIVERSIDADE DE COIMBRA COIMBRA UNIVERSITY PRESS CASO 7 SISTEMA DE APOIO À DECISÃO

Leia mais

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C01 Simulated Annealing (20/11/07). C02 Busca Tabu (22/11/07). C03 Colônia

Leia mais

Memória Cache. Prof. Leonardo Barreto Campos 1

Memória Cache. Prof. Leonardo Barreto Campos 1 Memória Cache Prof. Leonardo Barreto Campos 1 Sumário Introdução; Projeto de Memórias Cache; Tamanho; Função de Mapeamento; Política de Escrita; Tamanho da Linha; Número de Memórias Cache; Bibliografia.

Leia mais

PESQUISA OPERACIONAL: UMA ABORDAGEM À PROGRAMAÇÃO LINEAR. Rodolfo Cavalcante Pinheiro 1,3 Cleber Giugioli Carrasco 2,3 *

PESQUISA OPERACIONAL: UMA ABORDAGEM À PROGRAMAÇÃO LINEAR. Rodolfo Cavalcante Pinheiro 1,3 Cleber Giugioli Carrasco 2,3 * PESQUISA OPERACIONAL: UMA ABORDAGEM À PROGRAMAÇÃO LINEAR 1 Graduando Rodolfo Cavalcante Pinheiro 1,3 Cleber Giugioli Carrasco 2,3 * 2 Pesquisador - Orientador 3 Curso de Matemática, Unidade Universitária

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 UNIVERSIDADE FEDERAL DE VIÇOSA Departamento de Matemática - CCE Cálculo Numérico - MAT 271 Prof.: Valéria Mattos da Rosa As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 04: Análise de Algoritmos (Parte 1) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2. Pg. 1 Universidade Federal do Espírito Santo - UFES Mestrado em Informática 2004/1 Projetos O Projeto O projeto tem um peso maior na sua nota final pois exigirá de você a utilização de diversas informações

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

Pesquisa Operacional Programação em Redes

Pesquisa Operacional Programação em Redes Pesquisa Operacional Programação em Redes Profa. Alessandra Martins Coelho outubro/2013 Modelagem em redes: Facilitar a visualização e a compreensão das características do sistema Problema de programação

Leia mais

3 Método de Monte Carlo

3 Método de Monte Carlo 25 3 Método de Monte Carlo 3.1 Definição Em 1946 o matemático Stanislaw Ulam durante um jogo de paciência tentou calcular as probabilidades de sucesso de uma determinada jogada utilizando a tradicional

Leia mais

MLP (Multi Layer Perceptron)

MLP (Multi Layer Perceptron) MLP (Multi Layer Perceptron) André Tavares da Silva [email protected] Roteiro Rede neural com mais de uma camada Codificação de entradas e saídas Decorar x generalizar Perceptron Multi-Camada (MLP -

Leia mais

MODELAGEM E SIMULAÇÃO

MODELAGEM E SIMULAÇÃO MODELAGEM E SIMULAÇÃO Professor: Dr. Edwin B. Mitacc Meza [email protected] www.engenharia-puro.com.br/edwin Como Funciona a Simulação Introdução Assim como qualquer programa de computador,

Leia mais

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004 QSP Informe Reservado Nº 41 Dezembro/2004 Sistemas de Gestão O QUE MUDOU COM A NOVA ISO 14001:2004 Material especialmente preparado para os Associados ao QSP. QSP Informe Reservado Nº 41 Dezembro/2004

Leia mais

a 1 x 1 +... + a n x n = b,

a 1 x 1 +... + a n x n = b, Sistemas Lineares Equações Lineares Vários problemas nas áreas científica, tecnológica e econômica são modelados por sistemas de equações lineares e requerem a solução destes no menor tempo possível Definição

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Pesquisa Operacional

Pesquisa Operacional Pesquisa Operacional Tópicos em Programação Linear e Inteira Prof. Dr.Ricardo Ribeiro dos Santos [email protected] Universidade Católica Dom Bosco - UCDB Engenharia de Computação Roteiro Introdução

Leia mais

Manejo Florestal Sustentável: Dificuldade Computacional e Otimização de Processos

Manejo Florestal Sustentável: Dificuldade Computacional e Otimização de Processos Manejo Florestal Sustentável: Dificuldade Computacional e Otimização de Processos Daniella Rodrigues Bezerra 1, Rosiane de Freitas Rodrigues 12, Ulisses Silva da Cunha 3, Raimundo da Silva Barreto 12 Universidade

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas? Recorrências Muitas vezes não é possível resolver problemas de contagem diretamente combinando os princípios aditivo e multiplicativo. Para resolver esses problemas recorremos a outros recursos: as recursões

Leia mais

CAPÍTULO 2. Grafos e Redes

CAPÍTULO 2. Grafos e Redes CAPÍTULO 2 1. Introdução Um grafo é uma representação visual de um determinado conjunto de dados e da ligação existente entre alguns dos elementos desse conjunto. Desta forma, em muitos dos problemas que

Leia mais

Exercícios Teóricos Resolvidos

Exercícios Teóricos Resolvidos Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf ([email protected]) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Uma visão de Intratabilidade, Classes P e NP - redução polinomial - NP-completos e NP-difíceis Prof. Rodrigo Rocha [email protected] http://www.bolinhabolinha.com

Leia mais

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,... Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,... 0) O que veremos na aula de hoje? Um fato interessante Produtos notáveis Equação do 2º grau Como fazer a questão 5 da 3ª

Leia mais

Figura 1.1: Exemplo de links patrocinados no Google

Figura 1.1: Exemplo de links patrocinados no Google 1 Links Patrocinados 1.1 Introdução Links patrocinados são aqueles que aparecem em destaque nos resultados de uma pesquisa na Internet; em geral, no alto ou à direita da página, como na Figura 1.1. Figura

Leia mais

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS 3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS 3.1 - Conceitos Básicos Entendemos como algoritmo um conjunto predeterminado e bem definido de regras

Leia mais

Caracterização temporal de circuitos: análise de transientes e regime permanente. Condições iniciais e finais e resolução de exercícios.

Caracterização temporal de circuitos: análise de transientes e regime permanente. Condições iniciais e finais e resolução de exercícios. Conteúdo programático: Elementos armazenadores de energia: capacitores e indutores. Revisão de características técnicas e relações V x I. Caracterização de regime permanente. Caracterização temporal de

Leia mais

1 Problemas de transmissão

1 Problemas de transmissão 1 Problemas de transmissão O sinal recebido pelo receptor pode diferir do sinal transmitido. No caso analógico há degradação da qualidade do sinal. No caso digital ocorrem erros de bit. Essas diferenças

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação [email protected] Conceitos Preliminares

Leia mais

Notas de aula número 1: Otimização *

Notas de aula número 1: Otimização * UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL UFRGS DEPARTAMENTO DE ECONOMIA CURSO DE CIÊNCIAS ECONÔMICAS DISCIPLINA: TEORIA MICROECONÔMICA II Primeiro Semestre/2001 Professor: Sabino da Silva Porto Júnior

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

Leia mais

PRIMAVERA RISK ANALYSIS

PRIMAVERA RISK ANALYSIS PRIMAVERA RISK ANALYSIS PRINCIPAIS RECURSOS Guia de análise de risco Verificação de programação Risco rápido em modelo Assistente de registro de riscos Registro de riscos Análise de riscos PRINCIPAIS BENEFÍCIOS

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr [email protected] 5COP096 TeoriadaComputação Aula 14 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas Exponenciais - Algoritmos Exponenciais usando Tentativa e Erro - Heurísticas para

Leia mais

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES Trabalho de Graduação Orientando: Vinicius Stein Dani [email protected] Orientadora: Giliane

Leia mais

CHECK - LIST - ISO 9001:2000

CHECK - LIST - ISO 9001:2000 REQUISITOS ISO 9001: 2000 SIM NÃO 1.2 APLICAÇÃO A organização identificou as exclusões de itens da norma no seu manual da qualidade? As exclusões são relacionadas somente aos requisitos da sessão 7 da

Leia mais

2 Atualidade de uma base de dados

2 Atualidade de uma base de dados 2 Atualidade de uma base de dados Manter a atualidade de uma base de dados é um problema que pode ser abordado de diferentes maneiras. Cho e Garcia-Molina [CHO] definem esse problema da seguinte forma:

Leia mais

A Otimização Nuvem de Partículas (particle swarm)

A Otimização Nuvem de Partículas (particle swarm) A Otimização Nuvem de Partículas (particle swarm) Estéfane G. M. de Lacerda Departamento de Engenharia da Computação e Automação UFRN 20/06/2007 Índice Introdução Algoritmo Nuvem de Partículas Interpretação

Leia mais

2. Método de Monte Carlo

2. Método de Monte Carlo 2. Método de Monte Carlo O método de Monte Carlo é uma denominação genérica tendo em comum o uso de variáveis aleatórias para resolver, via simulação numérica, uma variada gama de problemas matemáticos.

Leia mais

Disciplina: Suprimentos e Logística II 2014-02 Professor: Roberto Cézar Datrino Atividade 3: Transportes e Armazenagem

Disciplina: Suprimentos e Logística II 2014-02 Professor: Roberto Cézar Datrino Atividade 3: Transportes e Armazenagem Disciplina: Suprimentos e Logística II 2014-02 Professor: Roberto Cézar Datrino Atividade 3: Transportes e Armazenagem Caros alunos, Essa terceira atividade da nossa disciplina de Suprimentos e Logística

Leia mais

ISO 9001:2008. Alterações e Adições da nova versão

ISO 9001:2008. Alterações e Adições da nova versão ISO 9001:2008 Alterações e Adições da nova versão Notas sobe esta apresentação Esta apresentação contém as principais alterações e adições promovidas pela edição 2008 da norma de sistema de gestão mais

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Módulo 2 Custos de Oportunidade e Curva de Possibilidades de Produção

Módulo 2 Custos de Oportunidade e Curva de Possibilidades de Produção Módulo 2 Custos de Oportunidade e Curva de Possibilidades de Produção 2.1. Custo de Oportunidade Conforme vínhamos analisando, os recursos produtivos são escassos e as necessidades humanas ilimitadas,

Leia mais

O modelo do computador

O modelo do computador O modelo do computador Objetivos: Mostrar como é o funcionamento dos computadores modernos Mostrar as limitações a que estamos sujeitos quando programamos Histórico Os primeiros computadores são da década

Leia mais

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Professor Rene - UNIP 1 Roteamento Dinâmico Perspectiva e histórico Os protocolos de roteamento dinâmico são usados

Leia mais

Uso de SAS/OR para diminuir o tempo de resposta com um melhor posicionamento de ambulâncias.

Uso de SAS/OR para diminuir o tempo de resposta com um melhor posicionamento de ambulâncias. Uso de SAS/OR para diminuir o tempo de resposta com um melhor posicionamento de ambulâncias. Fábio França 1, 1 Logical Optimization Rua Tanhaçu número 405, CEP 05679-040 São Paulo, Brasil [email protected]

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite [email protected] (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite [email protected] (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

Técnicas de Caixa Preta de Teste de Software

Técnicas de Caixa Preta de Teste de Software Técnicas de Caixa Preta de Teste de Software Na maioria de projetos de teste, o tempo para a realização dos mesmos sempre é curto e os números de testes a serem realizados nas aplicações são inúmeros.

Leia mais

BANCO CENTRAL DO BRASIL 2009/2010

BANCO CENTRAL DO BRASIL 2009/2010 BANCO CENTRAL DO BRASIL 2009/2010 CONTINUIDADE DE NEGÓCIOS E PLANOS DE CONTINGÊNCIA Professor: Hêlbert A Continuidade de Negócios tem como base a Segurança Organizacional e tem por objeto promover a proteção

Leia mais

Curso de Graduação em Administração. Administração da Produção e Operações I

Curso de Graduação em Administração. Administração da Produção e Operações I Curso de Graduação em Administração Administração da Produção e Operações I 22º Encontro - 11/05/2012 18:50 às 20:30h COMO SERÁ NOSSO ENCONTRO HOJE? - ABERTURA - CAPACIDADE E TURNOS DE TRABALHO. 02 Introdução

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

QUADRADO MÁGICO - ORDEM 4

QUADRADO MÁGICO - ORDEM 4 CONCEITO Partindo da definição original, os QUADRADOS MÁGICOS devem satisfazer três condições: a) tabela ou matriz quadrada (número de igual ao número de ); b) domínio: com elementos assumindo valores

Leia mais

5 Resultados. 1 Os resultados apresentados foram obtidos com 1 rodada do simulador.

5 Resultados. 1 Os resultados apresentados foram obtidos com 1 rodada do simulador. 5 Resultados A dificuldade em modelar analiticamente o comportamento de sistemas celulares hierarquizados faz com que grande parte dos estudos de desempenho destes sistemas seja baseada em simulações.

Leia mais

6 Construção de Cenários

6 Construção de Cenários 6 Construção de Cenários Neste capítulo será mostrada a metodologia utilizada para mensuração dos parâmetros estocásticos (ou incertos) e construção dos cenários com respectivas probabilidades de ocorrência.

Leia mais

Lista 2 - Modelos determinísticos

Lista 2 - Modelos determinísticos EA044 - Planejamento e Análise de Sistemas de Produção Lista 2 - Modelos determinísticos Exercício 1 A Companhia Ferroviária do Brasil (CFB) está planejando a alocação de vagões a 5 regiões do país para

Leia mais

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento Ramon Pereira Lopes Rangel Silva Oliveira 31 de outubro de 2011 1 Introdução O presente documento refere-se ao relatório

Leia mais

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA 136 ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA FILITTO, Danilo 1 Resumo: Os algoritmos Genéticos inspiram-se no processo de evolução natural e são utilizados para resolver problemas de busca e otimização

Leia mais

ipea políticas sociais acompanhamento e análise 7 ago. 2003 117 GASTOS SOCIAIS: FOCALIZAR VERSUS UNIVERSALIZAR José Márcio Camargo*

ipea políticas sociais acompanhamento e análise 7 ago. 2003 117 GASTOS SOCIAIS: FOCALIZAR VERSUS UNIVERSALIZAR José Márcio Camargo* GASTOS SOCIAIS: FOCALIZAR VERSUS UNIVERSALIZAR José Márcio Camargo* Como deve ser estruturada a política social de um país? A resposta a essa pergunta independe do grau de desenvolvimento do país, da porcentagem

Leia mais

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Representação de grandeza com sinal O bit mais significativo representa o sinal: 0 (indica um número

Leia mais

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

28/9/2010. Paralelismo no nível de instruções Processadores superescalares Arquitetura de Computadores Paralelismo no nível de instruções Processadores superescalares Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Processadores superescalares A partir dos resultados

Leia mais

Este trabalho tem como objetivo propor um modelo multicritério para a priorização dos modos de falha indicados a partir de uma aplicação do processo

Este trabalho tem como objetivo propor um modelo multicritério para a priorização dos modos de falha indicados a partir de uma aplicação do processo 1 Introdução A atual regulamentação do setor elétrico brasileiro, decorrente de sua reestruturação na última década, exige das empresas o cumprimento de requisitos de disponibilidade e confiabilidade operativa

Leia mais

Gerenciamento de Problemas

Gerenciamento de Problemas Gerenciamento de Problemas O processo de Gerenciamento de Problemas se concentra em encontrar os erros conhecidos da infra-estrutura de TI. Tudo que é realizado neste processo está voltado a: Encontrar

Leia mais