Inteligência Computacional para Otimização
|
|
|
- Maria do Carmo Antas Castro
- 8 Há anos
- Visualizações:
Transcrição
1 Notas de aula da disciplina Inteligência Computacional para Otimização 2005/1 c DECOM/ICEB/UFOP. Inteligência Computacional para Otimização Marcone Jamilson Freitas Souza, Departamento de Computação, Instituto de Ciências Exatas e Biológicas, Universidade Federal de Ouro Preto, Ouro Preto, MG. Homepage: [email protected] 1 Introdução Muitos problemas práticos são modelados da seguinte forma: Dado um conjunto S de variáveis discretas s (chamadas soluções) e uma função objetivo f : S R, que associa cada solução s S a um valor real f(s), encontre a solução s S, dita ótima, para a qual f(s) é mínima. Grande parte desses problemas são classicados na literatura como NP-difíceis, isto é, são problemas para os quais não existem algoritmos que os resolvam em tempo polinomial. Tais problemas são enquadrados como problemas de otimização combinatória. Para citar um exemplo, seja o conhecido Problema do Caixeiro Viajante (PCV). O PCV é descrito por um conjunto de n cidades e uma matriz de distância entre elas, tendo o seguinte objetivo: o caixeiro viajante deve sair de uma cidade chamada origem, visitar cada uma das restantes n 1 cidades apenas uma única vez e retornar à cidade origem percorrendo a menor distância possível. Em outras palavras, deve ser encontrada uma rota fechada (ciclo hamiltoniano) de comprimento mínimo que passe exatamente uma única vez por cada cidade. A diculdade de solução do PCV está no número elevado de soluções existentes. Assumindo que a distância de uma cidade i à outra j seja simétrica, isto é, que d ij = d ji, o número total de rotas possíveis é (n 1)!/2. Mesmo considerando os rápidos avanços tecnológicos dos computadores, uma enumeração completa de todas essas rotas é inconcebível para valores elevados de n. Para mostrar a magnitude dos tempos envolvidos para a resolução do PCV por enumeração, para n = 20, tem-se rotas possíveis. Desta forma, um computador que avalia uma rota em cerca de 10 8 segundos, gastaria 19 anos para encontrar a melhor rota! É possível dar uma certa inteligência a um método de enumeração, utilizando por exemplo as técnicas branch and bound ou branch and cut, de forma a reduzir o número de soluções a analisar no espaço de busca. Com isto, pode ser possível resolver problemas de dimensões um pouco mais elevadas. Entretanto, certamente haverá uma dimensão acima da qual o problema torna-se intratável computacionalmente. Portanto, em problemas dessa natureza, o uso de métodos exatos se torna bastante restrito. Por outro lado, na prática, em geral, é suciente encontrar uma boa solução para o problema, ao invés do ótimo global, o qual somente pode ser encontrado após um considerável esforço computacional. Este é o motivo pelo qual os pesquisadores têm concentrado esforços na utilização de heurísticas para solucionar problemas desse nível de complexidade. Denimos heurística como sendo uma técnica que procura boas soluções (próximas da otimalidade) a um custo computacional razoável, sem, no entanto, estar capacitada a garantir a otimalidade, bem como garantir quão próximo uma determinada solução está da solução ótima.
2 2 Marcone Jamilson Freitas Souza O desao é produzir, em tempo reduzido, soluções tão próximas quanto possível da solução ótima. Muitos esforços têm sido feitos nessa direção e heurísticas muito ecientes foram desenvolvidas para diversos problemas. Entretanto, a maioria dessas heurísticas desenvolvidas é muito especíca para um problema particular, não sendo ecientes (ou mesmo aplicáveis) na resolução de uma classe mais ampla de problemas. Somente a partir da década de 1980 intensicaram-se os estudos no sentido de se desenvolver procedimentos heurísticos com uma certa estrutura teórica e com caráter mais geral, sem prejudicar a principal característica destes, que é a exibilidade. Essa meta tornou-se mais realista a partir da reunião de conceitos das áreas de Otimização e Inteligência Articial, viabilizando a construção das chamadas melhores estratégias ou dos métodos inteligentemente exíveis, comumemente conhecidos como metaheurísticas. Esses métodos, situados em domínios teóricos ainda pouco explorados pela literatura, possuem como característica básica estruturas com uma menor rigidez que as encontradas nos métodos clássicos de otimização sem, contudo, emergir em uma exibilidade caótica. Dentre os procedimentos enquadrados como metaheurísticas que surgiram ao longo das últimas décadas, destacam-se: Algoritmos Genéticos (AGs), Redes Neurais, Simulated Annealing (SA), Busca Tabu (BT), GRASP, VNS, Colônia de Formigas etc. As duas primeiras metaheurísticas fundamentam-se em analogias com processos naturais, sendo que os AG's são procedimentos inspirados em princípios da evolução natural. O SA explora uma possível analogia com a termodinâmica, enquanto a BT faz uso de uma memória exível para tornar o processo de busca mais ecaz. Estas notas de aula estão organizadas como segue. Na seção 2 são apresentadas as heurísticas construtivas, destinadas à geração de uma solução inicial para um problema de otimização. Na seção 3 são apresentadas as heurísticas clássicas de renamento, destinadas à melhoria de uma solução. Finalmente, na seção 4, são apresentadas as principais metaheurísticas referenciadas na literatura. 2 Heurísticas Construtivas Uma heurística construtiva tem por objetivo construir uma solução, elemento por elemento. A forma de escolha de cada elemento a ser inserido a cada passo varia de acordo com a função de avaliação adotada, a qual, por sua vez, depende do problema abordado. Nas heurísticas clássicas, os elementos candidatos são geralmente ordenados segundo uma função gulosa, que estima o benefício da inserção de cada elemento, e somente o melhor elemento é inserido a cada passo. A Figura 1 mostra o pseudo-código para a construção de uma solução inicial para um problema de otimização que utiliza uma função gulosa g(.) de maximização. A forma de construir uma solução varia conforme o problema abordado. Para ilustrar o funcionamento de uma heurística construtiva utilizaremos o Problema da Mochila como exemplo. Seja, então, uma mochila de capacidade b = 23 e os 5 objetos da tabela abaixo, com os respectivos pesos e benefícios. Objeto (j) Peso (w j ) Benefício (p j ) Construamos uma solução para esse problema usando a seguinte idéia: adicionemos à
3 Inteligência Computacional para Otimização 3 procedimento ConstrucaoGulosa(g(.), s); 1 s ; 2 Inicialize o conjunto C de elementos candidatos; 3 enquanto (C ) faça 4 g(t max ) = max{g(t) t C}; 5 s s {t max }; 6 Atualize o conjunto C de elementos candidatos; 7 m-enquanto; 8 Retorne s; m ConstrucaoGulosa; Figura 1: Heurística de construção de uma solução inicial mochila a cada passo, o objeto mais valioso por unidade de peso e que não ultrapasse a capacidade da mochila. Reordenando os objetos de acordo com a relação p j /w j, obtemos: Objeto (j) Peso (w j ) Benefício (p j ) (p j /w j ) Representemos uma solução s por um vetor binário de n posições. Passo 1 : Adicionemos, primeiramente, o objeto 5, que tem a maior relação p j /w j s = (00001) t f(s) = 4 Peso corrente da mochila = 6 < b = 23 Passo 2 : Adicionemos, agora, o objeto 1, que tem a segunda maior relação p j /w j s = (10001) t f(s) = 6 Peso corrente da mochila = 10 < b = 23 Passo 3 : Adicionemos, agora, o objeto 4, que tem a terceira maior relação p j /w j s = (10011) t f(s) = 10 Peso corrente da mochila = 19 < b = 23 Passo 4 : O objeto a ser alocado agora seria o terceiro. No entanto, esta alocação faria superar a capacidade da mochila. Neste caso, devemos tentar alocar o próximo objeto com a maior relação p j /w j, que é o objeto 1. Como também a alocação desse objeto faria superar a capacidade da mochila e não há mais objetos candidatos, concluímos que a solução anterior é a solução nal, isto é: s = (10011) t com f(s ) = 10. Deve ser observado que poderíamos utilizar uma outra função gulosa de avaliação para construir uma solução para esse problema. Por exemplo, poderíamos utilizar a seguinte idéia: Adicionar a cada passo o objeto que proporcionar o maior benefício e que não ultrapasse a capacidade da mochila. Resolva o problema dado usando esta função de avaliação e verique que a solução nal obtida é diferente! Esses dois exemplos mostram que diferentes funções de avaliação podem conduzir a diferentes soluções nais.
4 4 Marcone Jamilson Freitas Souza Uma outra forma muito comum de se gerar uma solução inicial é construí-la de maneira aleatória. Isto é, a cada passo, um elemento a ser inserido na solução é aleatoriamente selecionado dentre o conjunto de elementos ainda não selecionados. A grande vantagem dessa metodologia reside na simplicidade de implementação. A desvantagem é a qualidade baixa da solução nal produzida, o que requerirá um esforço maior na fase de renamento. 3 Heurísticas de Renamento As heurísticas de renamento em problemas de otimização, também chamadas de técnicas de busca local, constituem uma família de técnicas baseadas na noção de vizinhança. Mais especicamente, seja S o espaço de pesquisa de um problema de otimização e f a função objetivo a minimizar. A função N, a qual depende da estrutura do problema tratado, associa a cada solução s S, sua vizinhança N(S) S. Cada solução s N(s) é chamada de vizinho de s. Denomina-se movimento a modicação m que transforma uma solução s em outra, s, que esteja em sua vizinhança. Representa-se essa operação por s s m. Em linhas gerais, essa classe de heurística parte de uma solução inicial qualquer (a qual pode ser obtida por uma heurística construtiva ou então gerada aleatoriamente) e caminha, a cada iteração, de vizinho para vizinho de acordo com a denição de vizinhança adotada. As heurísticas clássicas de renamento são as seguintes: 3.1 Método da Descida/Subida (Descent/Uphill Method) A idéia dessa técnica é partir de uma solução inicial qualquer e a cada passo analisar todos os seus possíveis vizinhos, movendo somente para aquele que representar uma melhora no valor atual da função de avaliação. Dessa forma, o método pára quando um ótimo local é encontrado. A Figura 2 mostra o pseudo-código do Método de Descida aplicado à minimização de uma função de avaliação f a partir de uma conhecida solução inicial s e considerando a busca em uma dada estrutura de vizinhança N(.). procedimento Descida(f(.), N(.), s); 1 V = {s N(s) f(s ) < f(s)}; 2 enquanto ( V > 0) faça 3 Selecione s V, onde s = arg min{f(s ) s V }; 4 s s ; 5 V = {s N(s) f(s ) < f(s)}; 6 m-enquanto; 7 Retorne s; m Descida; Figura 2: Método da Descida Para o problema da mochila, representemos uma solução s por um vetor binário de n posições e consideremos como movimento m a troca do valor de um bit. Assim, a vizinhança de uma solução s, e se escreve N(s), é o conjunto de todos os vizinhos s que diferem de s pelo valor de um bit. Formalmente, representamos N(s) = {s : s s m}, onde m signica a troca do valor de um bit. É necessário, agora, denir uma função de avaliação. Considerando que se deseja maximizar o benefício trazido pela utilização de cada elemento, uma função de avaliação apropriada seria:
5 Inteligência Computacional para Otimização 5 f(s) = n n p j s j α max{0, w j b} (31) j=1 sendo α uma penalidade, por exemplo, α = n p j = 15. j=1 Observe que o objetivo da segunda parcela desta função de avaliação é penalizar a colocação na mochila de objetos que ultrapassam a capacidade da mochila. Sendo a função de avaliação maximizada, o sinal dessa segunda parcela é negativo de forma a não incentivar a realização de movimentos que gerem soluções inviáveis. Apliquemos essa heurística à instância do problema dado: j=1 Passo 0 : Seja uma solução inicial qualquer, por exemplo: s = (01010) t f(s) = 6 Peso corrente da mochila = 14 Passo 1 : Devemos, agora, analisar todos os vizinhos de s e calcular a função de avaliação deles usando a função de avaliação 31. Vizinhos de s Peso dos vizinhos de s Benefício dos vizinhos de s f(s ) (11010) t (00010) t (01110) t (01000) t (01011) t Melhor vizinho: s = (01011) t f(s ) = 10 Como s é melhor que s, pois f(s ) > f(s), então s s, isto é, a nova solução corrente passa a ser: s = (01011) t Passo 2 : Determinemos, agora, o melhor vizinho de s = (01011) t : Vizinhos de s Peso dos vizinhos de s Benefício dos vizinhos de s f(s ) (11011) t (00011) t (01111) t (01001) t (01010) t Melhor vizinho: s = (00011) t f(s ) = 8 Como f(s ) é pior que f(s), pois f(s ) < f(s), então PARE. A solução anterior é um ótimo local, isto é, o método da subida retorna s = (01011) t, com f(s ) = 10 como solução nal.
6 6 Marcone Jamilson Freitas Souza É importante observar que diferentes soluções iniciais conduzem, na maioria das vezes, a diferentes soluções nais. Faça essa vericação! Uma outra função de avaliação que poderia ser considerada em substituição à da fórmula 31 é a seguinte: sendo f 1 (s) = 1 se 0 se exemplo, α = n p j = 15. j=1 j=1 j=1 f(s) = n p j s j α f 1 (s) (32) j=1 n w j b > 0 n e α uma penalidade, denida como antes, por w j b 0 Observa-se que nesta formulação não se faz diferença entre o nível de inviabilidade, pois qualquer que seja o excesso de peso na mochila a penalização é a mesma. Esta situação pode dicultar a exploração do espaço de soluções, pois conduz a regiões planas, ditas platôs, regiões nas quais as heurísticas têm diculdade para escapar. Se o problema da mochila considerado levasse em conta a maximização da relação entre o benefício trazido pela utilização de cada elemento e seu respectivo peso, a função de avaliação a ser adotada poderia ser, ao invés da fórmula 31: f(s) = n j=1 p j w j s j α max{0, sendo α uma penalidade, por exemplo, α = n p j = 15. j=1 3.2 Método Primeiro de Melhora n w j b} (33) O método de descida/subida requer a exploração de toda a vizinhança. Um método alternativo, que evita essa pesquisa exaustiva e muito utilizado na literatura é o método Primeiro de Melhora (First Improvement Method). Nessa variante, interrompe-se a exploração da vizinhança quando um vizinho melhor é encontrado. Desta forma, apenas no pior caso, toda a vizinhança é explorada. Entretanto, tal como no método da descida/subida, este método ca preso no primeiro ótimo local encontrado. j=1 3.3 Método Randômico de Descida/Subida Como dito anteriormente, o Método de Descida/Subida requer a exploração de toda a vizinhança. Outro método alternativo, que evita essa pesquisa exaustiva é o Método Randômico de Descida/Subida (Random Descent/Uphill Method). Ele consiste em analisar um vizinho qualquer e o aceitar somente se ele for estritamente melhor que a solução corrente; não o sendo, a solução corrente permanece inalterada e outro vizinho é gerado. O procedimento é interrompido após um número xo de iterações sem melhora no valor da melhor solução obtida até então. Tal como os dois métodos anteriores, o método Randômico de Descida/Subida também ca preso no primeiro ótimo local encontrado. A Figura 3 mostra o pseudo-código do Método Randômico de Descida aplicado ao renamento de uma solução s em um problema de minimização de uma função f(.),
7 Inteligência Computacional para Otimização 7 utilizando uma estrutura de vizinhança N(.). Nessa gura, IterM ax representa o número máximo de iterações sem melhora no valor da função de avaliação. procedimento RandomicoDescida(f(.), N(.), IterM ax, s); 1 Iter = 0; {Contador de iterações sem melhora } 2 enquanto (Iter < IterM ax) faça 3 Iter = Iter + 1; 4 Selecione aleatoriamente s N(s); 5 se (f(s ) < f(s)) então 6 Iter = 0; 7 s s ; 8 m-se; 9 m-enquanto; 10 Retorne s; m RandomicoDescida; Figura 3: Método Randômico de Descida 3.4 Método Randômico Não Ascendente/Descendente O método randômico não ascendente (RNA) (respectivamente, método randômico não descendente - RND) é uma variante do método randômico de descida (respectivamente, método da subida), diferindo dele por aceitar o vizinho gerado aleatoriamente se ele for melhor ou igual à solução corrente. Esse método pára, também, após um número xo de iterações sem melhora no valor da melhor solução produzida. Por esse método, entretanto, é possível navegar pelo espaço de pesquisa por movimentos laterais [33]. Assim, ele tem condições de percorrer caminhos de descida/subida que passam por regiões planas. Ou seja, se a pesquisa chega em um região dessas, o método tem condições de mover-se nela e sair através de uma solução diferente daquela que a ela chegou. O método RNA/RND é, portanto, um procedimento que executa a pesquisa no espaço de soluções combinando movimentos de descida/subida com movimentos laterais. 4 Metaheurísticas As metaheurísticas são procedimentos destinados a encontrar uma boa solução, eventualmente a ótima, consistindo na aplicação, em cada passo, de uma heurística subordinada, a qual tem que ser modelada para cada problema especíco [31]. Contrariamente às heurísticas convencionais, as metaheurísticas são de caráter geral e têm condições de escapar de ótimos locais. As metaheurísticas, assim como os métodos de busca local tradicionais, diferenciam-se entre si basicamente pelas seguintes características: a ) critério de escolha de uma solução inicial; b ) denição da vizinhança N(s) de uma solução s; c ) critério de seleção de uma solução vizinha dentro de N(s); d ) critério de término;
8 8 Marcone Jamilson Freitas Souza Apresentamos, a seguir, as principais metaheurísticas referenciadas ao longo deste trabalho. 4.1 Simulated Annealing Trata-se de uma técnica de busca local probabilística, proposta originalmente por Kirkpatrick et al. [23], que se fundamenta em uma analogia com a termodinâmica, ao simular o resfriamento de um conjunto de átomos aquecidos, operação conhecida como recozimento [8]. Esta técnica começa sua busca a partir de uma solução inicial qualquer. O procedimento principal consiste em um loop que gera aleatoriamente, em cada iteração, um único vizinho s da solução corrente s. Considerando um problema de minimização, seja a variação de valor da função objetivo ao mover-se para uma solução vizinha candidata, isto é, = f(s ) f(s). O método aceita o movimento e a solução vizinha passa a ser a nova solução corrente se < 0. Caso 0 a solução vizinha candidata também poderá ser aceita, mas neste caso, com uma probabilidade e /T, onde T é um parâmetro do método, chamado de temperatura e que regula a probabilidade de se aceitar soluções de pior custo. A temperatura T assume, inicialmente, um valor elevado T 0. Após um número xo de iterações (o qual representa o número de iterações necessárias para o sistema atingir o equilíbrio térmico em uma dada temperatura), a temperatura é gradativamente diminuída por uma razão de resfriamento α, tal que T k α T k 1, sendo 0 < α < 1. Com esse procedimento, dá-se, no início uma chance maior para escapar de mínimos locais e, à medida que T aproxima-se de zero, o algoritmo comporta-se como o método de descida, uma vez que diminui a probabilidade de se aceitar movimentos de piora ( T 0 = e /T 0 ) A Figura 4 mostra a inuência da variação da temperatura na função de probabilidade. Observe que no início do processo, quando a temperatura é elevada, a função de probabilidade assume valores próximos à unidade, enquanto que no nal do processo, quando a temperatura se aproxima de zero, o valor da função de probabilidade também se aproxima rapidamente de zero. Figura 4: Comportamento da função de probabilidade O procedimento pára quando a temperatura chega a um valor próximo de zero e ne-
9 Inteligência Computacional para Otimização 9 nhuma solução de piora da solução corrente é mais aceita, isto é, quando o sistema está estável. A solução obtida quando o sistema encontra-se nesta situação evidencia o encontro de um mínimo local. Os parâmetros de controle do procedimento são a razão de resfriamento α, o número de iterações para cada temperatura (SAmax) e a temperatura inicial T 0. Apresenta-se, pela Figura 5, o algoritmo Simulated Annealing básico aplicado a um problema de minimização. procedimento SA(f(.), N(.), α, SAmax, T 0, s) 1 s s; {Melhor solução obtida até então} 2 IterT 0; {Número de iterações na temperatura T} 3 T T 0 ; {Temperatura corrente} 4 enquanto (T > 0) faça 5 enquanto (IterT < SAmax) faça 6 IterT IterT + 1; 7 Gere um vizinho qualquer s N(s); 8 = f(s ) f(s); 9 se ( < 0) 10 então 11 s s ; 12 se (f(s ) < f(s )) então s s ; 13 senão 14 Tome x [0, 1]; 15 se (x < e /T ) então s s ; 16 m-se; 17 m-enquanto; 18 T α T ; 19 IterT 0; 20 m-enquanto; 21 s s ; 22 Retorne s; m SA; Figura 5: Algoritmo Simulated Annealing Observamos que no caso de o problema ser de maximização, as seguintes modicações devem ser feitas na Figura 5: Na linha 9, considerar que > 0; na linha 12, substituir pelo teste (f(s ) > f(s )) e, nalmente, na linha 15, substituir por (x < e /T ). Dependendo do processo de resfriamento, pode ser mostrada a convergência do método a uma solução que seja globalmente ótima [8]. Para tal, a temperatura na iteração k do método, dada por T k, deve ser calculada com base na expressão: T k = c ln(1 + k) onde c é da ordem do valor do ótimo local mais profundo (no caso de o problema ser de minimização) ou mais elevado (no caso de o problema ser de maximização). A convergência é garantida quando k. Tal resultado, entretanto, é de utilidade prática restrita, uma vez que o resfrimento é muito lento, requerendo um número proibitivo de iterações do método. (44)
10 10 Marcone Jamilson Freitas Souza Há várias outras formas de fazer o resfriamento, além do geométrico. Uma alternativa é fazer o decaimento da temperatura através da expressão: T k = T k γ T k 1 k 1 (45) onde T k representa a temperatura na iteração k do método, isto é, na k-ésima vez em que há alteração no valor da temperatura e γ uma constante tal que 0 < γ < 1. Valores de γ próximos a zero indicam resfriamento muito lento. Outra alternativa, usada em [26], consiste em fazer o resfriamento através da expressão: βt k 1 se k = 1 T k = T k 1 (46) 1 + γt se k 2 k 1 onde γ = T0 T k 1 (k 1)T 0T k 1, sendo T 0 a temperatura inicial, T k a temperatura na k-ésima iteração e β um parâmetro para corrigir a imperfeição do resfriamento (0 < β < 1). Algoritmos baseados em SA normalmente incluem reaquecimento, seguido de novo resfriamento, quando a quantidade de movimentos consecutivamente rejeitada é alta [8]. É comum, também, trabalhar nas temperaturas mais altas com uma taxa de resfriamento menor e aumentá-la quando a temperatura reduzir-se. A estimação do número máximo de iterações em uma dada temperatura, isto é, SAmax, normalmente é feita em função das dimensões do problema abordado. Por exemplo, em um problema de programação de horários em escolas, envolvendo n turmas, m professores e p horários reservados para a realização das aulas, o valor de SAmax pode ser estimado em SAmax = k p m n, sendo k uma constante a determinar. Há pelo menos duas prescrições para a determinação autoadaptativa da temperatura inicial. A primeira delas consiste em determinar a temperatura inicial por simulação. Por esse mecanismo, parte-se de uma solução s e de uma temperatura de partida baixa. A seguir, conta-se quantos vizinhos dessa solução s são aceitos em SAmax iterações do método nessa temperatura. Caso esse número de vizinhos aceitos seja elevado, algo como 95% dos vizinhos, então retorna-se a temperatura corrente como a temperatura inicial para o processo de renamento pelo método. Caso o número de vizinhos aceitos não atinja o valor mínimo requerido, aumenta-se a temperatura segundo uma certa taxa, por exemplo 10%, e repete-se a contagem do número de vizinhos aceitos naquela temperatura. O procedimento prossegue até que se obtenha o número mínimo de vizinhos aceitos. A temperatura na qual essa condição ocorre representa a temperatura inicial para o método Simulated Annealing. A Figura 6 mostra o pseudo-código para determinar a temperatura inicial por esse método, considerando um problema de minimização. Nesta gura, β é a taxa de aumento da temperatura (β > 1), γ é a taxa mínima de aceitação de soluções vizinhas (por exemplo, γ = 0.95) e T 0 é uma temperatura de partida para o método, por exemplo, T 0 = 1. Outra prescrição para determinar a temperatura inicial consiste em partir de uma dada solução e gerar um certo número de vizinhos, algo como 1000, por exemplo. Para cada um desses vizinhos, calcular o respectivo custo segundo a função de avaliação considerada. A média dos custos das soluções vizinhas é uma estimativa para a temperatura inicial. Em teoria, a temperatura nal deve ser zero. Entretanto, na prática é suciente chegar a uma temperatura próxima de zero, devido à precisão limitada da implementação computacional [34]. Um valor típico é tomar T f = 0, 001. Alternativamente, pode-se identicar o congelamento do sistema quando a taxa de aceitação de movimentos cai abaixo de um valor predeterminado.
11 Inteligência Computacional para Otimização 11 procedimento T emperaturainicial(f(.), N(.), β, γ, SAmax, T 0, s) 1 T T 0 ; {Temperatura corrente} 2 Continua T RUE; 3 enquanto (Continua) faça 4 Aceitos 0; {Número de vizinhos aceitos na temperatura T} 5 para IterT = 1 até SAmax faça 6 Gere um vizinho qualquer s N(s); 7 = f(s ) f(s); 8 se ( < 0) 9 então 10 Aceitos Aceitos + 1; 11 senão 12 Tome x [0, 1]; 13 se (x < e /T ) então Aceitos Aceitos + 1; 14 m-se; 15 m-para; 16 se (Aceitos γ SAmax) 17 então Continua F ALSE; 18 senão T β T ; 19 m-se; 20 m-enquanto; 21 Retorne T ; m T emperaturainicial; Figura 6: Determinação autoadaptativa da temperatura inicial Observa-se, nalmente, como regra geral, citada em [34], que os parâmetros mais adequados para uma dada aplicação do algoritmo só podem ser estabelecidos por experimentação.
12 12 Marcone Jamilson Freitas Souza 4.2 Busca Tabu Descrevemos, a seguir, de forma resumida, os princípios básicos da Busca Tabu (BT), técnica originada nos trabalhos independentes de Fred Glover [10] e Pierre Hansen [19]. Referenciamos a [10, 11, 12, 16, 14, 15, 7, 22] para um melhor detalhamento do método. A Busca Tabu é um procedimento adaptativo, dotado de uma estrutura de memória, que aceita movimentos de piora para escapar de ótimos locais. Mais especicamente, começando com uma solução inicial s 0, um algoritmo BT explora, a cada iteração, um subconjunto V da vizinhança N(s) da solução corrente s. O membro s de V com melhor valor nessa região segundo a função f(.) torna-se a nova solução corrente mesmo que s seja pior que s, isto é, que f(s ) > f(s) para um problema de minimização. O critério de escolha do melhor vizinho é utilizado para escapar de um ótimo local. Esta estratégia, entretanto, pode fazer com que o algoritmo cicle, isto é, que retorne a uma solução já gerada anteriormente. De forma a evitar que isto ocorra, existe uma lista tabu T, a qual é uma lista de movimentos proibidos. A lista tabu clássica contém os movimentos reversos aos últimos T movimentos realizados (onde T é um parâmetro do método) e funciona como uma la de tamanho xo, isto é, quando um novo movimento é adicionado à lista, o mais antigo sai. Assim, na exploração do subconjunto V da vizinhança N(s) da solução corrente s, cam excluídos da busca os vizinhos s que são obtidos de s por movimentos m que constam na lista tabu. A lista tabu se, por um lado, reduz o risco de ciclagem (uma vez que ela garante o não retorno, por T iterações, a uma solução já visitada anteriormente); por outro, também pode proibir movimentos para soluções que ainda não foram visitadas [7]. Assim, existe também uma função de aspiração, que é um mecanismo que retira, sob certas circunstâncias, o status tabu de um movimento. Mais precisamente, para cada possível valor v da função objetivo existe um nível de aspiração A(v): uma solução s em V pode ser gerada se f(s ) A(f(s)), mesmo que o movimento m esteja na lista tabu. A função de aspiração A é tal que, para cada valor v da função objetivo, retorna outro valor A(v), que representa o valor que o algoritmo aspira ao chegar de v. Considerando uma função objetivo de valores inteiros, um exemplo simples de aplicação desta idéia é considerar A(f(s)) = f(s ) 1 onde s é a melhor solução encontrada até então. Neste caso, aceitase um movimento tabu somente se ele conduzir a um vizinho melhor que s. Duas regras são normalmente utilizadas de forma a interromper o procedimento. Pela primeira, pára-se quando é atingido um certo número máximo de iterações sem melhora no valor da melhor solução. Pela segunda, quando o valor da melhor solução chega a um limite inferior conhecido (ou próximo dele). Esse segundo critério evita a execução desnecessária do algoritmo quando uma solução ótima é encontrada ou quando uma solução é julgada sucientemente boa. Os parâmetros principais de controle do método de Busca Tabu são a cardinalidade T da lista tabu, a função de aspiração A, a cardinalidade do conjunto V de soluções vizinhas testadas em cada iteração e BT max, o número máximo de iterações sem melhora no valor da melhor solução. Apresenta-se, pela Figura 7, o pseudocódigo de um algoritmo de Busca Tabu básico. Neste procedimento f min é o valor mínimo conhecido da função f, informação essa que em alguns casos está disponível. É comum em métodos de Busca Tabu incluir estratégias de intensicação, as quais têm por objetivo concentrar a pesquisa em determinadas regiões consideradas promissoras. Uma estratégia típica é retornar à soluções já visitadas para explorar sua vizinhança de for-
13 Inteligência Computacional para Otimização 13 procedimento BT (f(.), N(.), A(.), V, f min, T, BT max, s) 1 s s; {Melhor solução obtida até então} 2 Iter 0; {Contador do número de iterações} 3 MelhorIter 0; {Iteração mais recente que forneceu s } 4 T ; {Lista Tabu} 5 Inicialize a função de aspiração A; 6 enquanto (f(s) > f min e Iter MelhorIter < BT max) faça 7 Iter Iter + 1; 8 Seja s s m o melhor elemento de V N(s) tal que o movimento m não seja tabu (m T ) ou s atenda a condição de aspiração (f(s ) < A(f(s))); 9 T T {movimento mais antigo} + {movimento que gerou s }; 10 Atualize a função de aspiração A; 11 s s ; 12 se (f(s) < f(s )) então 13 s s; 14 M elhoriter Iter; 15 m-se; 16 m-enquanto; 17 s s ; 18 Retorne s; m BT ; Figura 7: Algoritmo de Busca Tabu ma mais efetiva. Outra estratégia consiste em incorporar atributos das melhores soluções já encontradas durante o progresso da pesquisa e estimular componentes dessas soluções a tornar parte da solução corrente. Nesse caso, são consideradas livres no procedimento de busca local apenas as componentes não associadas às boas soluções, permanecendo as demais componentes xas. Um critério de término, tal como um número xo de iterações, é utilizado para encerrar o período de intensicação. Métodos baseados em Busca Tabu incluem, também, estratégias de diversicação. O objetivo dessas estratégias, que tipicamente utilizam uma memória de longo prazo, é redirecionar a pesquisa para regiões ainda não sucientemente exploradas do espaço de soluções. Estas estratégias procuram, ao contrário das estratégias de intensicação, gerar soluções que têm atributos signicativamente diferentes daqueles encontrados nas melhores soluções obtidas. A diversicação, em geral, é utilizada somente em determinadas situações, como, por exemplo, quando dada uma solução s, não existem movimentos m de melhora para ela, indicando que o algoritmo já exauriu a análise naquela região. Para escapar dessa região, a idéia é estabelecer uma penalidade w(s, m) para uso desses movimentos. Um número xo de iterações sem melhora no valor da solução ótima corrente é, em geral, utilizado para acionar essas estratégias. Métodos de Busca Tabu incluem, também, listas tabu dinâmicas [6, 32], muitas das quais atualizadas de acordo com o progresso da pesquisa [4, 3, 2]. A grande vantagem de se usar uma lista tabu de tamanho dinâmico é que se minimiza a possibilidade de ocorrência de ciclagem. Recentemente, [13] e [18] provaram a convergência nita de alguns métodos de Busca Tabu baseados em memória por recenticidade e por frequência. De forma a ilustrar o método de Busca Tabu, apliquemos essa metodologia heurística
14 14 Marcone Jamilson Freitas Souza à instância do problema da mochila apresentado no início destas notas de aula. Consideremos uma lista tabu T de cardinalidade T = 1 e como atributo tabu a posição do bit alterado. Utilizemos o critério de aspiração por objetivo, isto é, um movimento tabu será realizado se a solução produzida melhorar a melhor solução gerada até então. O critério de parada será BT max = 1, isto é, apenas uma iteração sem melhora. Passo 0 : Seja uma solução inicial qualquer, por exemplo: s = (01010) t f(s) = 6 Peso corrente da mochila = 14 Lista tabu = T = Melhor solução até então: s = (01010) t e f(s ) = 6 Iter = 0; MelhorIter = 0; Passo 1 : Devemos, agora, analisar todos os vizinhos de s e calcular a função de avaliação deles usando a função de avaliação 31, denida à página 5. Vizinhos de s Peso dos vizinhos de s Benefício dos vizinhos de s f(s ) (11010) t (00010) t (01110) t (01000) t (01011) t Melhor vizinho: s = (01011) t, com f(s ) = 10 Como s é o melhor vizinho de s, então s s, isto é, a nova solução corrente passa a ser: s = (01011) t Lista tabu = T = {5} (indicando que o bit da quinta posição não pode ser modicado, a não ser que o critério de aspiração seja satisfeito) Melhor solução até então: s = (01011) t e f(s ) = 10 (pois f(s ) > f(s )) Iter = 1; MelhorIter = 1; Passo 2 : Determinemos, agora, o melhor vizinho de s = (01011) t : Vizinhos de s Peso dos vizinhos de s Benefício dos vizinhos de s f(s ) (11011) t (00011) t (01111) t (01001) t (01010) t Melhor vizinho: s = (00011) t, com f(s ) = 8 Como s é o melhor vizinho de s, então s s (mesmo sendo f(s ) pior que f(s)), isto é, a nova solução corrente passa a ser: s = (00011) t Lista tabu = T = {2} (indicando que o bit da segunda posição não pode ser modi- cado, a não ser que o critério de aspiração seja satisfeito) Melhor solução até então: s = (01011) t e f(s ) = 10 Iter = 2; MelhorIter = 1;
15 Inteligência Computacional para Otimização 15 Passo 3 : Determinemos, agora, o melhor vizinho de s = (00011) t : Vizinhos de s Peso dos vizinhos de s Benefício dos vizinhos de s f(s ) (10011) t (01011) t (00111) t (00001) t (00010) t Melhor vizinho: s = (00111) t, com f(s ) = 11 Como s é o melhor vizinho de s, então s s, isto é, a nova solução corrente passa a ser: s = (00111) t Lista tabu = T = {3} (indicando que o bit da terceira posição não pode ser modicado, a não ser que o critério de aspiração seja satisfeito) Melhor solução até então: s = (00111) t e f(s ) = 11 (pois f(s ) > f(s )) Iter = 3; MelhorIter = 3; Passo 4 : Determinemos, agora, o melhor vizinho de s = (00111) t : Vizinhos de s Peso dos vizinhos de s Benefício dos vizinhos de s f(s ) (10111) t (01111) t (00011) t (00101) t (00110) t Observe que o vizinho com o melhor valor para a função de avaliação é s = (00101) t, com f(s ) = 8, mas esta solução é tabu, uma vez que o bit da terceira posição está na lista tabu. Como o critério de aspiração desta solução não é satisfeito, pois f(s ) = 8 f(s ) = 11, esta solução não é aceita. Desta forma, considera-se o melhor vizinho não tabu, a saber: Melhor vizinho: s = (00101) t, com f(s ) = 8 Como s é o melhor vizinho de s (mesmo sendo de piora), então s s, isto é, a nova solução corrente passa a ser: s = (00101) t Lista tabu = T = {4} (indicando que o bit da quarta posição não pode ser modicado, a não ser que o critério de aspiração seja satisfeito) Melhor solução até então: s = (00111) t e f(s ) = 11 Iter = 4; MelhorIter = 3; Passo 5 : Determinemos, agora, o melhor vizinho de s = (00101) t : Vizinhos de s Peso dos vizinhos de s Benefício dos vizinhos de s f(s ) (10101) t (01101) t (00001) t (00111) t (00100) t 7 3 3
16 16 Marcone Jamilson Freitas Souza Observe que o vizinho com o melhor valor para a função de avaliação é s = (00111) t, com f(s ) = 11. Entretanto, esta solução é tabu, uma vez que o bit da quarta posição está na lista tabu. Como o critério de aspiração desta solução não é satisfeito, pois f(s ) = 11 f(s ) = 11, esta solução não é aceita. Desta forma, considera-se o melhor vizinho não tabu, a saber: Melhor vizinho: s = (10101) t, com f(s ) = 9 Desta forma, a nova solução corrente passa a ser: s = (10101) t, com s movendo-se para seu melhor vizinho s Lista tabu = T = {1} (indicando que o bit da primeira posição não pode ser modi- cado, a não ser que o critério de aspiração seja satisfeito) Melhor solução até então: s = (00111) t e f(s ) = 11 Iter = 5; MelhorIter = 3; Como Iter MelhorIter = 5 3 = 2 > BT max = 1, então PARE. O método de Busca Tabu retorna, então, s = (00011) t como solução nal, com valor f(s ) = 11. A aplicação deste método mostra que a solução nal obtida é melhor que aquela obtida com a aplicação do método da subida, apresentado na página 4. Isto foi possível devido à aceitação de movimentos de piora, no caso, com o passo 2 do método, que possibilitou que a solução corrente atingisse outra região do espaço de soluções, com um valor de função de avaliação maior.
17 Inteligência Computacional para Otimização GRASP (Greedy Randomized Adaptive Search Procedure) GRASP (Procedimento de busca adaptativa gulosa e randomizada) é um método iterativo, proposto em [9], que consiste de duas fases: uma fase de construção, na qual uma solução é gerada, elemento a elemento, e de uma fase de busca local, na qual um ótimo local na vizinhança da solução construída é pesquisado. A melhor solução encontrada ao longo de todas as iterações GRASP realizadas é retornada como resultado. O pseudo-código descrito pela Figura 8 ilustra um procedimento GRASP. procedimento GRASP (f(.), g(.), N(.), GRASP max, s) 1 f ; 2 para (Iter = 1, 2,..., GRASP max) faça 3 Construcao(g(.), α, s); 4 BuscaLocal(f(.), N(.), s); 5 se (f(s) < f ) então 6 s s; 7 f f(s); 8 m-se; 9 m-para; 10 s s ; 11 Retorne s; m GRASP Figura 8: Algoritmo GRASP Na fase de contrução, uma solução é iterativamente construída, elemento por elemento. A cada iteração dessa fase, os próximos elementos candidatos a serem incluídos na solução são colocados em uma lista C de candidatos, seguindo um critério de ordenação pré-determinado. Esse processo de seleção é baseado em uma função adaptativa gulosa g : C R, que estima o benefício da seleção de cada um dos elementos. A heurística é adaptativa porque os benefícios associados com a escolha de cada elemento são atualizados em cada iteração da fase de construção para reetir as mudanças oriundas da seleção do elemento anterior. A componente probabilística do procedimento reside no fato de que cada elemento é selecionado de forma aleatória a partir de um subconjunto restrito formado pelos melhores elementos que compõem a lista de candidatos. Este subconjunto recebe o nome de lista de candidatos restrita (LCR). Esta técnica de escolha permite que diferentes soluções sejam geradas em cada iteração GRASP. Seja α [0, 1] um dado parâmetro. O pseudocódigo representado pela Figura 9 descreve a fase de construção GRASP. Observamos que o parâmetro α controla o nível de gulosidade e aleatoriedade do procedimento Construcao. Um valor α = 0 faz gerar soluções puramente gulosas, enquanto α = 1 faz produzir soluções totalmente aleatórias. Assim como em muitas técnicas determinísticas, as soluções geradas pela fase de construção do GRASP provavelmente não são localmente ótimas com respeito à denição de vizinhança adotada. Daí a importância da fase de busca local, a qual objetiva melhorar a solução construída. A Figura 10 descreve o pseudo-código de um procedimento básico de busca local com respeito a uma certa vizinhança N(.) de s. A eciência da busca local depende da qualidade da solução construída. O procedimento de construção tem então um papel importante na busca local, uma vez que as soluções construídas constituem bons pontos de partida para a busca local, permitindo assim acelerá-la.
18 18 Marcone Jamilson Freitas Souza procedimento Construcao(g(.), α, s); 1 s ; 2 Inicialize o conjunto C de candidatos; 3 enquanto (C ) faça 4 g(t min ) = min{g(t) t C}; 5 g(t max ) = max{g(t) t C}; 6 LCR = {t C g(t) g(t min ) + α(g(t max ) g(t min ))}; 7 Selecione, aleatoriamente, um elemento t LCR; 8 s s {t}; 9 Atualize o conjunto C de candidatos; 10 m-enquanto; 11 Retorne s; m Construcao; Figura 9: Fase de construção de um algoritmo GRASP procedimento BuscaLocal(f(.), N(.), s); 1 V = {s N(s) f(s ) < f(s)}; 2 enquanto ( V > 0) faça 3 Selecione s V ; 4 s s ; 5 V = {s N(s) f(s ) < f(s)}; 6 m-enquanto; 7 Retorne s; m BuscaLocal; Figura 10: Fase de Busca Local de um algoritmo GRASP O parâmetro α, que determina o tamanho da lista de candidatos restrita, é basicamente o único parâmetro a ser ajustado na implementação de um procedimento GRASP. Em [9] discute-se o efeito do valor de α na qualidade da solução e na diversidade das soluções geradas durante a fase de construção. Valores de α que levam a uma lista de candidatos restrita de tamanho muito limitado (ou seja, valor de α próximo da escolha gulosa) implicam em soluções nais de qualidade muito próxima àquela obtida de forma puramente gulosa, obtidas com um baixo esforço computacional. Em contrapartida, provocam uma baixa diversidade de soluções construídas. Já uma escolha de α próxima da seleção puramente aleatória leva a uma grande diversidade de soluções construídas mas, por outro lado, muitas das soluções construídas são de qualidade inferior, tornando mais lento o processo de busca local. O procedimento GRASP procura, portanto, conjugar bons aspectos dos algoritmos puramente gulosos, com aqueles dos procedimentos aleatórios de construção de soluções. Procedimentos GRASP mais sosticados incluem estratégias adaptativas para o parâmetro α. O ajuste desse parâmetro ao longo das iterações GRASP, por critérios que levam em consideração os resultados obtidos nas iterações anteriores, produz soluções melhores do que aquelas obtidas considerando-o xo [27, 28, 29].
19 Inteligência Computacional para Otimização Método de Descida em Vizinhança Variável O Método de Descida em Vizinhança Variável (Variable Neighborhood Descent, VND), proposto por Nenad Mladenovi e Pierre Hansen [25], é um método de renamento que consiste em explorar o espaço de soluções através de trocas sistemáticas de estruturas de vizinhança, aceitando somente soluções de melhora da solução corrente e retornando à primeira estrutura quando uma solução melhor é encontrada. O pseudocódigo desse algoritmo, em que se considera o renamento de uma solução s utilizando uma função de avaliação f, a ser minimizada, e um conjunto N de r diferentes vizinhanças N = {N (1), N (2),, N (r) }, é apresentado pela Figura 11. procedimento VND(f(.),N(.),r,s) 1 Seja r o número de estruturas diferentes de vizinhança; 2 k 1; {Tipo de estrutura de vizinhança corrente} 3 enquanto (k r) faça 4 Encontre o melhor vizinho s N (k) (s); 5 se (f(s ) < f(s)) 6 então 7 s s ; 8 k 1; 9 senão 10 k k + 1; 11 m-se; 12 m-enquanto; 13 Retorne s; m VND; Figura 11: Algoritmo VND Dependendo do problema abordado, a busca pelo melhor vizinho (linha 4 da Figura 11) pode ser cara computacionalmente. Nessa situação é comum fazer a busca pela primeira solução de melhora. Outra alternativa é considerar a exploração apenas em um certo percentual da vizinhança. 4.5 Método de Pesquisa em Vizinhança Variável O Método de Pesquisa em Vizinhança Variável (Variable Neighborhood Search, VNS), proposto por Nenad Mladenovi e Pierre Hansen [25] é um método de busca local que consiste em explorar o espaço de soluções através de trocas sistemáticas de estruturas de vizinhança. Contrariamente à outras metaheurísticas baseadas em métodos de busca local, o método VNS não segue uma trajetória, mas sim explora vizinhanças gradativamente mais distantes da solução corrente e focaliza a busca em torno de uma nova solução se e somente se um movimento de melhora é realizado. O método inclui, também, um procedimento de busca local a ser aplicado sobre a solução corrente. Esta rotina de busca local também pode usar diferentes estruturas de vizinhança. Na sua versão original, o método VNS faz uso do método VND para fazer a busca local. O pseudocódigo do algoritmo é apresentado pela Figura 12. Detalhes adicionais desse algoritmo podem ser encontrados em [25, 20, 21]. Nesse algoritmo, parte-se de uma solução inicial qualquer e a cada iteração seleciona-se aleatoriamente um vizinho s dentro da vizinhança N (k) (s) da solução s corrente. Esse
20 20 Marcone Jamilson Freitas Souza procedimento VNS() 1 Seja s 0 uma solução inicial; 2 Seja r o número de estruturas diferentes de vizinhança; 3 s s 0 ; {Solução corrente} 4 enquanto (Critério de parada não for satisfeito) faça 5 k 1; {Tipo de estrutura de vizinhança corrente} 6 enquanto (k r) faça 7 Gere um vizinho qualquer s N (k) (s); 8 s BuscaLocal(s ); 9 se (f(s ) < f(s)) 10 então 11 s s ; 12 k 1; 13 senão 14 k k + 1; 15 m-se; 16 m-enquanto; 17 m-enquanto; 18 Retorne s; m VNS; Figura 12: Algoritmo VNS vizinho é então submetido a um procedimento de busca local. Se a solução ótima local, s, for melhor que a solução s corrente, a busca continua de s recomeçando da primeira estrutura de vizinhança N (1) (s). Caso contrário, continua-se a busca a partir da próxima estrutura de vizinhança N (k+1) (s). Este procedimento é encerrado quando uma condição de parada for atingida, tal como o tempo máximo permitido de CPU, o número máximo de iterações ou número máximo de iterações consecutivas entre dois melhoramentos. A solução s é gerada aleatoriamente no passo 7 de forma a evitar ciclagem, situação que pode ocorrer se alguma regra determinística for usada. 4.6 Algoritmos Genéticos Trata-se de uma metaheurística que se fundamenta em uma analogia com processos naturais de evolução, nos quais, dada uma população, os indivíduos com características genéticas melhores têm maiores chances de sobrevivência e de produzirem lhos cada vez mais aptos, enquanto indivíduos menos aptos tendem a desaparecer. Referenciamos a [17, 30] para um melhor detalhamento do método. Nos Algoritmos Genéticos (AGs), cada cromossomo (indivíduo da população) está associado a uma solução do problema e cada gene está associado a uma componente da solução. Um mecanismo de reprodução, baseado em processos evolutivos, é aplicado sobre a população com o objetivo de explorar o espaço de busca e encontrar melhores soluções para o problema. Mais especicamente, } um Algoritmo Genético inicia sua busca com uma população, aleatoriamente escolhida, a qual é chamada de população no tempo 0. { s 0 1, s 0 2,..., s 0 n O procedimento principal é um loop que cria uma população { s t+1 1, s t+1 2,..., s t+1 n no tempo t + 1 a partir de uma população do tempo t. Para atingir esse objetivo, os indivíduos da população do tempo t passam por uma fase de reprodução, a qual consiste }
21 Inteligência Computacional para Otimização 21 em selecionar indivíduos para operações de recombinação e/ou mutação. Na operação de recombinação, os genes de dois cromossomos pais são combinados de forma a gerar cromossomos lhos (normalmente dois), de sorte que para cada cromossomo lho há um conjunto de genes de cada um dos cromossomos pais. A operação de mutação consiste em alterar aleatoriamente uma parte dos genes de cada cromossomo (componentes da solução). Ambas as operações são realizadas com uma certa probabilidade. A operação de recombinação é realizada normalmente com uma probabilidade mais elevada (em torno de 80%) e a de mutação, com uma baixa probabilidade (de 1 a 2%, em geral). Gerada a nova população do tempo t + 1, dene-se a população sobrevivente, isto é, as n soluções que integrarão a nova população. Para denir a população sobrevivente, cada solução é avaliada por uma certa função de aptidão f. Os critérios comumente usados para escolher os cromossomos sobreviventes são os seguintes: 1) aleatório; 2) roleta (onde a chance de sobrevivência de cada cromossomo é proporcional ao seu nível de aptidão) e 3) misto (isto é, uma combinação dos dois critérios anteriores). Em qualquer um desses critérios admite-se, portanto, a sobrevivência de indivíduos menos aptos. Isto é feito de forma a tentar-se escapar de ótimos locais. O método termina, em geral, quando um certo número de populações é gerado ou quando a melhor solução encontrada atinge um certo nível de aptidão ou ainda, quando não há melhora após um certo número de iterações. Os parâmetros principais de controle do método são: o tamanho n da população, a probabilidade da operação crossover, a probabilidade de mutação, o número de gerações e o número de iterações sem melhora. O pseudocódigo de um Algoritmo Genético básico está descrito na Figura 13. procedimento AG 1 t 0; 2 Gere a população inicial P (t); 3 Avalie P (t); 4 enquanto (os critérios de parada não estiverem satisfeitos) faça 5 t t + 1; 6 Gere P (t) a partir de P (t 1); 7 Avalie P (t); 8 Dena a população sobrevivente; 9 m-enquanto; m AG; Figura 13: Algoritmo Genético
22 22 Marcone Jamilson Freitas Souza 4.7 Colônia de Formigas A metaheurística Colônia de Formigas (Ant Systems) foi proposta por... O método simula o comportamento de um conjunto de agentes (formigas) que se cooperam para resolver um problema de otimização por meio de comunicações muito simples. Ao se deslocarem as formigas deixam um rastro (substância chamada feromônio), que é usado para se comunicaram quimicamente. 4.8 Algoritmos Meméticos A metaheurística Algoritmos Meméticos (Memetic Algorithms) foi proposta por... Basicamente, o método é uma variação de Algoritmos Genéticos, consistindo no renamento dos indivíduos antes de se submeterem às operações de recombinação e mutação. 4.9 Annealing Microcanônico Trata-se de uma variante do algoritmo Simulated Annealing, proposta em [1]. Diferentemente de SA, que baseia-se na simulação dos estados de um sistema físico a temperatura constante, o algoritmo Annealing Microcanônico simula a variação dos estados a energia constante. Utiliza, para esse propósito, uma versão do Algoritmo de Creutz [5, 24], o qual introduz uma variável, chamada de demônio, para modelar as utuações de energia. A partir de uma solução inicial arbitrária s, geram-se novas soluções de forma que E + D = constante, sendo D a energia do demônio (0 D D max ) e E a energia do sistema (f(s)). O procedimento principal consiste em um loop que gera, randomicamente, em cada iteração, um único vizinho s da solução corrente. Chamando de a variação de energia ao mover-se de s para s, o método aceita o movimento, e a solução vizinha s passa a ser a nova solução corrente, se 0, com a condição de que D D max, isto é, que a energia liberada não supere a capacidade do demônio. Caso > 0 a solução vizinha s também pode ser aceita, desde que < D, isto é, que a energia necessária possa ser suprida pelo demônio. Em ambos os casos, se houver aceitação, o demônio D recebe (ou libera, respectivamente) a variação de energia envolvida ao mover-se de s para s, isto é, D D. Desta forma, a energia total, E + D, permanece constante. O demônio assume, inicialmente, um valor D max. Após um certo número de iterações (o qual representa o número de iterações necessárias para o sistema atingir o equilíbrio térmico numa dada conguração de energia), esse valor é gradativamente diminuído até anular-se. A vantagem de se usar o algoritmo AM é que pode-se estabelecer, com precisão, se o equilíbrio térmico foi atingido [34]. Da física estatística sabe-se que o valor médio do demônio é igual à temperatura ( D = T ) e no equilíbrio térmico tem-se D/σ(D) = 1, onde σ(d) é o desvio-padrão dos valores do demônio. Entretanto, sob o ponto de vista prático, é custoso avaliar computacionalmente se tal equilíbrio foi atingido. Assim, ao invés de avaliá-lo durante o progresso da pesquisa, prexa-se um número máximo de iterações em um dado nível de energia, o qual passa a ser um parâmetro de controle do método. Os parâmetros de controle do procedimento são, pois, a taxa α de diminuição da capacidade do demônio, o número de iterações em um dado nível de energia (AMmax), o valor D i do demônio no início de cada fase e a capacidade inicial do demônio D max. Apresentamos, pela Figura 14, o pseudo-código de um algoritmo Annealing Microcanônico básico.
23 Inteligência Computacional para Otimização 23 procedimento AM(f(.), N(.), AMmax, α, D i, D max, s) 1 s s; {Melhor solução obtida até então} 2 enquanto (D max > 0) faça 3 D D i ; 4 para (IterE = 1, 2,..., AMmax) faça 5 Gere um vizinho qualquer s N(s); 6 = f(s ) f(s); 7 se ( 0) 8 então 9 se (D D max ) então 10 s s ; 11 D D ; 12 se (f(s ) < f(s )) então s s ; 13 m-se; 14 senão 15 se (D 0) então 16 s s ; 17 D D ; 18 m-se; 19 m-se; 20 m-para; 21 D max α D max ; 22 m-enquanto; 23 s s ; 24 Retorne s; m AM; Figura 14: Algoritmo Annealing Microcanônico 4.10 Otimização Microcanônica Trata-se de uma alternativa ao Annealing Microcanônico, proposta originalmente em [35]. Referenciamos a [35, 24, 34] para uma descrição mais detalhada do método. O algoritmo de Otimização Microcanônica (OM), descrito pela Figura 15, consiste de dois procedimentos, os quais são aplicados alternadamente: inicialização e amostragem. Na fase de inicialização, OM realiza somente movimentos de melhora, guiando a uma conguração de mínimo local. Para tentar escapar dessa conguração, executa-se a amostragem, fase na qual um grau extra de liberdade (denominada demônio) produz pequenas perturbações na solução corrente. Em cada iteração dessa fase, movimentos randômicos são propostos, sendo aceitos apenas aqueles nos quais o demônio é capaz de absorver ou liberar a diferença de custo envolvida. Após a fase de amostragem, uma nova inicialização é realizada e o algoritmo assim prossegue, alternando entre as duas fases, até que uma condição de parada seja satisfeita. O demônio é denido por dois parâmetros: sua capacidade D max e seu valor inicial D i. A fase de amostragem gera uma sequência de estados cuja energia é conservada, exceto para pequenas utuações, as quais são modeladas pelo demônio. Chamando de E i a energia (custo) da solução obtida na fase de inicialização, de D e E a energia do demônio e da solução, respectivamente, em um dado instante da fase de amostragem, tem-se E + D = E i + D i = constante. Portanto, essa fase gera soluções no intervalo
24 24 Marcone Jamilson Freitas Souza procedimento OM(f(.), N(.), OMmax, s) 1 s s; {Melhor solução obtida até então} 2 Iter 0; {Número de iterações} 3 MelhorIter 0; {Iteração mais recente que forneceu s } 4 enquanto (Iter M elhoriter < OM max) faça 5 Iter Iter + 1; 6 InicializacaoOM(f(.), N(.), Imax, s); 7 se (f(s) < f(s )) então 8 s s; 9 M elhoriter Iter; 10 m-se; 11 AmostragemOM(f(.), N(.), D i, D max, Amax, s); 12 m-enquanto; 13 s s ; 14 Retorne s; m OM; Figura 15: Algoritmo de Otimização Microcanônica [E i D max + D i, E i + D i ]. Os parâmetros principais de controle do algoritmo OM são o número máximo OMmax de iterações consecutivas sem melhora em OM, o número máximo de iterações consecutivas sem melhora na fase de inicialização Imax, o número máximo de iterações de amostragem Amax, o valor inicial D i do demônio e a sua capacidade máxima D max. Apresentamos, pelas guras 16 e 17, os pseudo-códigos das fases de inicialização e amostragem, respectivamente, de um algoritmo de Otimização Microcanônica básico.
25 Inteligência Computacional para Otimização 25 procedimento InicializacaoOM(f(.), N(.), Imax, s) 1 s s; {Melhor solução obtida até então} 2 Iter 0; {Número de iterações} 3 MelhorIter 0; {Iteração mais recente que forneceu s } 4 enquanto (Iter M elhoriter < Imax) faça 5 Iter Iter + 1; 6 Gere um vizinho qualquer s N(s); 7 = f(s ) f(s); 8 se ( < 0) 9 então 10 s s ; 11 se (f(s ) < f(s )) então 12 s s ; 13 M elhoriter Iter; 14 m-se; 15 senão Ponha na lista dos movs rejeitados; 16 m-se; 17 m-enquanto; 18 s s ; 19 Retorne s; m InicializacaoOM; Figura 16: Fase de inicialização do algoritmo de Otimização Microcanônica Referências [1] S. Barnard. Stereo matching by hierarchical microcanonical annealing. In Proceedings of the 10th International Joint Conference on Articial Intelligence, Milan, Italy, [2] M.P. Bastos and C.C. Ribeiro. Reactive Tabu Search with Path Relinking for the Steiner Problem in Graphs. In Proceedings of the Third Metaheuristics International Conference, pages 3136, Angra dos Reis, Brazil, [3] R. Battiti. Reactive Search: Toward Self-Tuning Heuristics. In V.J. Rayward-Smith, I.H. Osman, C.R. Reeves, and G.D. Smith, editors, Modern Heuristic Search Methods, chapter 4, pages John Wiley & Sons, New York, [4] R. Battiti and G. Tecchiolli. The Reactive Tabu Search. ORSA Journal of Computing, 6:126140, [5] M. Creutz. Microcanonical Monte-Carlo Simulation. Physical Review Letters, 50: , [6] F. Dammeyer and S. Voÿ. Dynamic tabu list management using the reverse elimination method. In P.L. Hammer, editor, Tabu Search, volume 41 of Annals of Operations Research, pages Baltzer Science Publishers, Amsterdan, [7] D. de Werra. Tabu Search Techniques: A Tutorial and an Application to Neural Networks. OR Spektrum, 11:131141, 1989.
26 26 Marcone Jamilson Freitas Souza procedimento AmostragemOM(f(.), N(.), D i, D max, Amax, s) 1 Seja s solução advinda da fase de inicialização; 2 Escolha D max e D I da lista de movimentos rejeitados; 3 D D i ; {Valor corrente do demônio} 4 para (Iter = 1, 2,..., Amax) faça 5 Gere um vizinho qualquer s N(s); 6 = f(s ) f(s); 7 se ( 0) 8 então 9 se (D D max ) então 10 s s ; 11 D D ; 12 m-se; 13 senão 14 se (D 0) então 15 s s ; 16 D D ; 17 m-se; 18 m-se; 19 m-para; 20 Retorne s; m AmostragemOM; Figura 17: Fase de amostragem do algoritmo de Otimização Microcanônica [8] K.A. Dowsland. Simulated Annealing. In C.R. Reeves, editor, Modern Heuristic Techniques for Combinatorial Problems, Advanced Topics in Computer Science Series, chapter 2, pages Blackwell Scientic Publications, London, [9] T.A. Feo and M.G.C. Resende. Greedy randomized adaptive search procedures. Journal of Global Optimization, 6:109133, [10] F. Glover. Future paths for Integer Programming and links to Articial Intelligence. Computers and Operations Research, 5:553549, [11] F. Glover. Tabu Search: Part I. ORSA Journal of Computing, 1:190206, [12] F. Glover. Tabu Search: Part II. ORSA Journal of Computing, 2:432, [13] F. Glover and S. Hana. Tabu Search and Finite Convergence. To appear in Discrete Applied Mathematics. [14] F. Glover and M. Laguna. Tabu Search. In C.R. Reeves, editor, Modern Heuristic Techniques for Combinatorial Problems, Advanced Topics in Computer Science Series, chapter 3, pages Blackwell Scientic Publications, London, [15] F. Glover and M. Laguna. Tabu Search. Kluwer Academic Publishers, Boston, [16] F. Glover, E. Taillard, and D. de Werra. A user's guide to tabu search. In P.L. Hammer, editor, Tabu Search, volume 41 of Annals of Operations Research, pages 328. Baltzer Science Publishers, Amsterdan, 1993.
27 Inteligência Computacional para Otimização 27 [17] D.E. Goldberg. Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley, Berkeley, [18] S. Hana. On the Convergence of Tabu Search. To appear in Journal of Heuristics. [19] P. Hansen. The steepest ascent mildest descent heuristic for combinatorial programming. In Congress on Numerical Methods in Combinatorial Optimization, Capri, Italy, [20] P. Hansen and N. Mladenovi. Variable Neighborhood Search: Methods and Recent Applications. In Proceedings of the Third Metaheuristics International Conference, pages , Angra dos Reis, Brazil, [21] P. Hansen and N. Mlavenovi. Variable Neighborhood Search: Principles and Applications. European Journal of Operational Research, 130:449467, [22] A. Hertz and D. de Werra. The tabu search metaheuristic: how we used it. Annals of Mathematics and Articial Intelligence, 1:111121, [23] S. Kirkpatrick, D.C. Gellat, and M.P. Vecchi. Optimization by Simulated Annealing. Science, 220:671680, [24] A. Linhares and J.R.A. Torreão. Microcanonical Optimization Applied to the Traveling Salesman Problem. International Journal of Modern Physics C, 9:133146, [25] N. Mladenovi and P. Hansen. Variable Neighborhood Search. Computers and Operations Research, 24: , [26] J. V. Moccellin, M. O. Santos, and M. S. Nagano. Um método heurístico Busca Tabu-Simulated Annealing para Flowshops Permutacionais. In Anais do XXXIII Simpósio Brasileiro de Pesquisa Operacional, pages , [27] M. Prais and C.C. Ribeiro. Reactive GRASP: An application to a matrix decomposition problem in TDMA trac assignment. INFORMS Journal on Computing, [28] M. Prais and C.C. Ribeiro. Parameter Variation in GRASP Implementations. In Proceedings of the Third Metaheuristics International Conference, pages , Angra dos Reis, Brazil, [29] M. Prais and C.C. Ribeiro. Variação de Parâmetros em Procedimentos GRASP. Investigación Operativa, [30] C.R. Reeves. Genetic Algorithms. In C.R. Reeves, editor, Modern Heuristic Techniques for Combinatorial Problems, Advanced Topics in Computer Science Series, chapter 4, pages Blackwell Scientic Publications, [31] C.C. Ribeiro. Metaheuristics and Applications. In Advanced School on Articial Intelligence, Estoril, Portugal, [32] A. Schaefer. Tabu search techniques for large high-school timetabling problems. In Proceedings of the 30th National Conference on Articial Intelligence, pages , 1996.
28 28 Marcone Jamilson Freitas Souza [33] B. Selman, H. Levesque, and D. Mitchell. A new method for solving hard satisability problems. In Proceedings of the 10th National Conference on Articial Intelligence, pages , [34] J.R.A. Torreão. Inteligência Computacional. Notas de aula, Universidade Federal Fluminense, Niterói, [35] J.R.A. Torreão and E. Roe. Microcanonical Optimization Applied to Visual Processing. Physics Letters A, 122:377382, 1980.
Inteligência Artificial
Inteligência Artificial Aula 6 Algoritmos Genéticos M.e Guylerme Velasco Roteiro Introdução Otimização Algoritmos Genéticos Representação Seleção Operadores Geneticos Aplicação Caixeiro Viajante Introdução
Buscas Informadas ou Heurísticas - Parte III
Buscas Informadas ou Heurísticas - Parte III Prof. Cedric Luiz de Carvalho Instituto de Informática - UFG Mestrado em Ciência da Computação / 2006 BUSCA SMA* (Simplified Memory-Bounded A*) BUSCA SMA* (Simplified
Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008
Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008 Introdução São técnicas de busca e otimização. É a metáfora da teoria da evolução das espécies iniciada pelo Fisiologista e Naturalista inglês Charles Darwin.
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
4 Metáforas de Optimização
4 Metáforas de Optimização O gigantesco avanço tecnológico que vem sofrendo os sistemas de computação, mais precisamente as unidades de processamento, criou a base para o uso efetivo da Inteligência Computacional,
Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto
Algoritmo Genético Inteligência Artificial Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Introdução 2. Conceitos Básicos 3. Aplicações 4. Algoritmo 5. Exemplo Introdução São técnicas de busca
Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato:
Inteligência Artificial Prof. Ms. Luiz Alberto Contato: [email protected] Métodos de Busca Busca Cega ou Exaustiva: Não sabe qual o melhor nó da fronteira a ser expandido. Apenas distingue o estado objetivo
Metahuerísticas: Algoritmos Genéticos. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.
Metahuerísticas: Algoritmos Genéticos Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 8) Meta-heurísticas Classificação de métodos heurísticos: os métodos
Exemplo do jogo dos fósforos Terça-feira, 9 de maio. Exemplo para o Problema do Corpo de Bombeiros. Exemplo: Localidade do Corpo de Bombeiros
15.053 Terça-feira, 9 de maio Busca Heurística: métodos para resolver problemas de otimização difíceis Distribuir: Anotações da Aula Veja a introdução ao trabalho Very Large Scale Neighborhood Search (está
Introdução a Algoritmos Genéticos
Introdução a Algoritmos Genéticos Tiago da Conceição Mota Laboratório de Inteligência Computacional Núcleo de Computação Eletrônica Universidade Federal do Rio de Janeiro Outubro de 2007 O Que São? Busca
Otimização por Enxame de Partículas (PSO) e Otimização por Colônias de Formigas (ASO) aplicadas ao Problema do Caixeiro Viajante (TSP)
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Otimização por Enxame de Partículas (PSO) e Otimização por Colônias de Formigas (ASO) aplicadas ao Problema do Caixeiro Viajante
Otimização por Colônia de Formigas (Ant Colony Optimization - ACO)
Otimização por Colônia de Formigas (Ant Colony Optimization - ACO) Eros Moreira de Carvalho Gabriel Silva Ramos CI209 - Inteligência Artificial BCC - Bacharelado em Ciência da Computação DInf - Departamento
BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1
BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 Na aula anterior Prova 2 Na aula de hoje Técnicas básicas de contagem; Tentativa e Erro; Recursividade.
Introdução aos Algoritmos Genéticos
Introdução aos Algoritmos Genéticos Prof. Matheus Giovanni Pires EXA 868 Inteligência Artificial Não-Simbólica B Universidade Estadual de Feira de Santana 2 Algoritmos Genéticos: Introdução Introduzidos
3 Aprendizado por reforço
3 Aprendizado por reforço Aprendizado por reforço é um ramo estudado em estatística, psicologia, neurociência e ciência da computação. Atraiu o interesse de pesquisadores ligados a aprendizado de máquina
APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO
APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO Profa. Mariana Cavalca Baseado em: Material didático do Prof. Dr. Carlos Henrique V. Moraes da UNIFEI Curso de verão da Profa. Gisele L. Pappa Material
Resumo. Como um agente busca de seqüência de ações para alcançar seus objetivos.
Resumo Inteligência Artificial Russel e Norvig Capítulos 3,4 e 5 Prof. MsC Ly Freitas UEG Resolução de problemas por meio de busca Como um agente busca de seqüência de ações para alcançar seus objetivos.
Otimização com Algoritmos Genéticos no MATLAB. Prof. Rafael Saraiva Campos CEFET-RJ
Otimização com Algoritmos Genéticos no MATLAB Prof. Rafael Saraiva Campos CEFET-RJ Conteúdo do Mini-Curso PARTE 1 Teoria PARTE 2 Prática Conteúdo do Mini-Curso PARTE 1 Teoria 1.1. Conceitos Básicos de
Resolução do Problema de Roteamento de Veículos com Frota Heterogênea via GRASP e Busca Tabu.
Resolução do Problema de Roteamento de Veículos com Frota Heterogênea via GRASP e Busca Tabu. Camila Leles de Rezende, Denis P. Pinheiro, Rodrigo G. Ribeiro [email protected], [email protected],
Inteligência Artificial
Inteligência Artificial Prof. Kléber de Oliveira Andrade [email protected] Algoritmos Genéticos Conteúdo Introdução O Algoritmo Genético Binário Noções de Otimização O Algoritmo Genético com Parâmetros
3 Estimação e Compensação de movimento na codificação de vídeo
Estimação e Compensação de movimento na codificação de vídeo 36 3 Estimação e Compensação de movimento na codificação de vídeo O objetivo do modelo temporal (que engloba as fases de estimação e compensação
Otimização. Unidade 6: Algoritmo Genético. Jaime Arturo Ramírez. 7. Teoria do processo evolutivo num GA. 8. Aspectos avançados
Otimização Jaime Arturo Ramírez Conteúdo 1. Introdução 2. Analogia de mecanismos de seleção natural com sistemas artificiais 3. Algoritmo genético modelo 4. Um GA simples 5. Representação, genes e cromossomos
Buscas Informadas ou Heurísticas - Parte II
Buscas Informadas ou Heurísticas - Parte II Prof. Cedric Luiz de Carvalho Instituto de Informática - UFG Graduação em Ciência da Computação / 2006 FUNÇÕES HEURÍSTICAS - 1/7 FUNÇÕES HEURÍSTICAS - 2/7 Solução
Busca com informação e exploração. Capítulo 4 Russell & Norvig Seção 4.2 e 4.3
Busca com informação e exploração Capítulo 4 Russell & Norvig Seção 4.2 e 4.3 1 Revisão da aula passada: Busca A * Idéia: evitar expandir caminhos que já são caros Função de avaliação f(n) = g(n) + h(n)
OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL RESUMO INTRODUÇÃO
OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL Miquéias Augusto Ferreira Nantes 1, Douglas Peixoto de Carvalho 1 (Alunos do Curso de Matemática da Universidade Anhanguera - Uniderp)
Lista de Exercícios Programação Inteira. x 2 0 e inteiros.
Lista de Exercícios Programação Inteira ) Resolva os problemas a seguir usando o método B&B a) Max z = 5 x + 2 y s.a x + y 2 x + y 5 x, y 0, x e y inteiros b) Max z = 2 x + y s.a x + 2y 0 x + y 25 x, y
Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá
Grafos Hamiltonianos e o Problema do Caixeiro Viajante Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá Grafo Hamiltoniano Definição: Um circuito hamiltoniano em um
Um Algoritmo Simulated Annealing Eficiente para o Problema de Roteamento de Veículos com Janela de Tempo
Um Algoritmo Simulated Annealing Eficiente para o Problema de Roteamento de Veículos com Janela de Tempo Aloísio de Castro Gomes Júnior (UFOP) [email protected] Marcone Jamilson Freitas Souza
Busca com informação e exploração. Inteligência Artificial. Revisão da aula passada: Heurística Admissível. Revisão da aula passada: Busca A *
Inteligência Artificial Aula 6 Profª Bianca Zadrozny http://www.ic.uff.br/~bianca/ia Busca com informação e exploração Capítulo 4 Russell & Norvig Seção 4.2 e 4.3 Revisão da aula passada: Busca A * Idéia:
2 Teoria da Informação
2 Teoria da Informação Neste capítulo apresentamos alguns conceitos básicos sobre Teoria da Informação que utilizaremos durante este trabalho. 2.1 Alfabeto, texto, letras e caracteres Um alfabeto Σ = (σ
Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Classes de Comportamento Assintótico Se f é uma função de complexidade para um algoritmo F, então
2. MÉTODO DE RECOZIMENTO SIMULADO
1 2. MÉTODO DE RECOZIMENTO SIMULADO (SIMULATED ANNEALING) 2.1. Analogia Física: o recozimento de metais (annealing) 2.2. A Tradução Matemática: o algoritmo básico 2.3. A Programação de Recozimento 2.4.
Aula 10: Tratabilidade
Teoria da Computação DAINF-UTFPR Aula 10: Tratabilidade Prof. Ricardo Dutra da Silva Na aula anterior discutimos problemas que podem e que não podem ser computados. Nesta aula vamos considerar apenas problemas
Pesquisa Operacional aplicada ao Planejamento e Controle da Produção e de Materiais Programação Linear
Pesquisa Operacional aplicada ao Planejamento e Controle da Produção e de Materiais Programação Linear Introdução à Pesquisa Operacional Origens militares Segunda guerra mundial Aplicada na alocação de
de palavras cruzadas
Heurísticas para geração automática de palavras cruzadas Denis P. Pinheiro 1, Isaac D. Gamarano 1 e Rodrigo G. Ribeiro 1 1 Departamento de Ciência da Computação Universidade Federal de Minas Gerais {denis,rribeiro,isaac}@dcc.ufmg.br
7 ALOCAÇÃO PELO MÉTODO DO NUCLEOLUS
ALOCAÇÃO PELO MÉTODO NUCLEOLUS 76 7 ALOCAÇÃO PELO MÉTODO DO NUCLEOLUS O quarto método abordado nesta monografia é o método do nucleolus [44]. Este método, diferentemente da alocação por Última Adição,
5COP096 TeoriadaComputação
Sylvio 1 Barbon Jr [email protected] 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema
Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão
Projeto e Análise de Algoritmos NP Completude Prof. Humberto Brandão [email protected] Universidade Federal de Alfenas versão da aula: 0.4 Introdução Problemas intratáveis ou difíceis são comuns
SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS
Universidade Federal do Tocantins SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS Diogo Rigo de Brito Guimarães Alexandre Tadeu Rossini da Silva Objetivo Implementar soluções heurísticas para o Jogo de Damas
Lista de Exercícios Programação Inteira. x 2 0 e inteiros.
Lista de Exercícios Programação Inteira ) Resolva os problemas a seguir usando o método B&B a) Max z = 5 x + y s.a x + y x + y 5 b) Max z = x + y s.a x + y 0 x + y 5 c) Max z = x + y s.a x + 9y 6 8 x +
1. Introdução. 1.1.Objetivo
1. Introdução 1.1.Objetivo O objetivo desta dissertação é desenvolver um sistema de controle por aprendizado acelerado e Neuro-Fuzzy baseado em técnicas de inteligência computacional para sistemas servo-hidráulicos
Algoritmos genéticos Abordagem unificada de algoritmos evolutivos simples
Introdução Inspiração biológica Histórico da computação evolutiva Algoritmo evolutivo simples Programação evolutiva Estratégias evolutivas Algoritmos genéticos Abordagem unificada de algoritmos evolutivos
Teoria da Complexidade Computacional
Teoria da Complexidade Computacional 25 de novembro de 2011 Enquanto a teoria de análise de algoritmos estuda a análise de complexidade de algoritmos, a teoria da complexidade estuda a classificação de
Métodos de Busca. Estratégias de Busca Cega
Métodos de Busca Métodos de Busca Estratégias de Busca Cega encontram soluções para problemas pela geração sistemática de novos estados, que são comparados ao objetivo; são ineficientes na maioria dos
INVESTIGANDO O PROBLEMA DA MOCHILA IRRESTRITA EM SUA VERSÃO BIDIMENSIONAL
INVESTIGANDO O PROBLEMA DA MOCHILA IRRESTRITA EM SUA VERSÃO BIDIMENSIONAL Mirella Augusta Sousa Moura, [email protected] Thiago Alves de Queiroz, th.al.qz@catalão.ufg.br Resumo: Empacotamento consiste
PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR MÉTODO SIMPLEX. Prof. Angelo Augusto Frozza, M.Sc.
PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR MÉTODO SIMPLEX Prof. Angelo Augusto Frozza, M.Sc. MÉTODO SIMPLEX A ideia geral é Em vez de enumerar todas as soluções básicas (pontos extremos) do problema de PL,
Inteligência Artificial
Contextualizando Inteligência Artificial Buscas Onde podemos usar a IA Problemas que não possuem soluções algortimicas Problemas que possuem soluções algoritimicas, mas são impraticáveis (Complexidade,
Backtracking. Túlio Toffolo Marco Antônio Carvalho BCC402 Aula 10 Algoritmos e Programação Avançada
Backtracking Túlio Toffolo www.toffolo.com.br Marco Antônio Carvalho [email protected] BCC402 Aula 10 Algoritmos e Programação Avançada Backtracking Backtracking é um refinamento do algoritmo de busca
VERSÃO RESPOSTAS PROVA DE MÉTODOS QUANTITATIVOS
UNIVERSIDADE DE SÃO PAULO FACULDADE DE ECONOMIA, ADMINISTRAÇÃO E CONTABILIDADE DE RIBEIRÃO PRETO PROGRAMA DE PÓS-GRADUAÇÃO EM ADMINISTRAÇÃO DE ORGANIZAÇÕES PROCESSO SELETIVO MESTRADO - TURMA 2012 PROVA
2.1. Construção da Pista
2 Malha de Controle Para que se possa controlar um dado sistema é necessário observar e medir suas variáveis de saída para determinar o sinal de controle, que deve ser aplicado ao sistema a cada instante.
Algoritmos 3/17/ Algoritmos como área de estudo e investigação
Algoritmos e Complexidade Ana Teresa Freitas INESC-ID/IST ID/IST 3/17/2005 1 O que é um algoritmo? Algoritmos: Sequência de instruções necessárias para a resolução de um problema bem formulado [passíveis
Avaliação Quantitativa de Sistemas
Avaliação Quantitativa de Sistemas Contexto A Avaliação Quantitativa de Sistemas permite a avaliação de sistemas antes mesmo da sua implementação física. Dessa forma, é possível avaliar um sistema projetado
IMPLEMENTAÇÃO E RESOLUÇÃO DE MODELOS MATEMÁTICOS UTILIZANDO A PLANILHA EXCEL
IMPLEMENTAÇÃO E RESOLUÇÃO DE MODELOS MATEMÁTICOS UTILIZANDO A PLANILHA EXCEL 1. INTRODUÇÃO Este tutorial apresenta, passo-a-passo, o processo de implementação e resolução de modelos matemáticos na planilha
Têmpera Simulada Aplicada ao Problema de Designação Quadrática
Universidade Federal do Rio Grande do Sul - Instituto de Informática Têmpera Simulada Aplicada ao Problema de Designação Quadrática Fábio A. Camargo Corrêa - 141971 [email protected] Porto Alegre,
3 Redes Neurais Artificiais
3 Redes Neurais Artificiais 3.1. Introdução A capacidade de implementar computacionalmente versões simplificadas de neurônios biológicos deu origem a uma subespecialidade da inteligência artificial, conhecida
Considere a função f(x). Para algum x a f (x) pode não existir. Suponha que. Max f(x) s. a a x b
Considere a função f(x). Para algum x a f (x) pode não existir. Suponha que se queira resolver o seguinte PPNL: Max f(x) s. a a x b Pode ser que f (x) não exista ou que seja difícil resolver a equação
Métodos de Busca. Inteligência Artificial. Busca Heurística. Busca Heurística. Prof. Ms. Luiz Alberto Contato:
Inteligência Artificial Prof. Ms. Luiz Alberto Contato: [email protected] Métodos de Busca Busca Cega ou Exaustiva: Não sabe qual o melhor nó da fronteira a ser expandido. Apenas distingue o estado objetivo
Lista de exercícios sobre contagem de operações Prof. João B. Oliveira
Lista de exercícios sobre contagem de operações Prof. João B. Oliveira 1. metodo m ( Vetor V ) int i, res = 0; para i de 1 a V.size res = res + V[i]; return res; Soma de elementos de um vetor, O( ). 2.
Teoria dos Jogos Algorítmica Maximização de Lucros no Design de Mecanismos
Teoria dos Jogos Algorítmica Maximização de Lucros no Design de Mecanismos Luis Gustavo Rocha Vianna. Instituto de Matemática e Estatística IME Universidade de São Paulo USP Maximização de Lucros Design
O Método de Monte Carlo
.....Universidade Federal de Santa Maria...Centro de Ciências Naturais e Exatas Grupo de Teoria da Matéria Condensada O Método de Monte Carlo Aplicações do algoritmo de Metropolis no Modelo de Ising Mateus
4 Cálculo de Equivalentes Dinâmicos
4 Cálculo de Equivalentes Dinâmicos 4.1. Introdução Os sistemas de potência interligados vêm adquirindo maior tamanho e complexidade, aumentando a dependência de sistemas de controle tanto em operação
Árvore Binária de Busca Ótima
MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nas seções sobre árvore binária de busca ótima do capítulo 4 do livro N. Wirth. Algorithms
Implementação da Metaheurística GRASP para o Problema do Caixeiro Viajante Simétrico
Implementação da Metaheurística GRASP para o Problema do Caixeiro Viajante Simétrico Ademir Roberto Freddo Robison Cris Brito Universidade Federal do Paraná Tópicos em Inteligência Artificial Drª Aurora
Curso Profissional de Nível Secundário
Curso Profissional de Nível Secundário Técnico Auxiliar de Saúde 2 TAS Ano Letivo: 2014/2015 Matemática (200 horas) 11º Ano PLANIFICAÇÃO A LONGO PRAZO A7 Probabilidades Fenómenos aleatórios. 2 aulas Argumento
4 Testes e experimentos realizados 4.1. Implementação e banco de dados
32 4 Testes e experimentos realizados 4.1. Implementação e banco de dados Devido à própria natureza dos sites de redes sociais, é normal que a maior parte deles possua uma grande quantidade de usuários
Segundo trabalho prático de implementação Sistema de reserva de assentos
Segundo trabalho prático de implementação Sistema de reserva de assentos 1. Descrição do problema Computação Concorrente (MAB-117) 2016/2 Prof. Silvana Rossetto 1 DCC/IM/UFRJ 17 de novembro de 2016 Um
Otimização em Colônias de Formigas. Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F.
Otimização em Colônias de Formigas Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F. de Carvalho) Principais tópicos Introdução Colônias de Formigas Formação
Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante
Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante Introdução Soma máxima de uma subsequência contígua Problema do troco Quantidade de formas de dar troco Problema da
3. ALGORITMOS GENÉTICOS
1 3. ALGORITMOS GENÉTICOS PARTE 1 3.1 Analogia Física: a evolução das espécies 3.2 A Tradução Matemática: o algoritmo básico 3.3 Codificação dos Indivíduos 3.4 Avaliação da Aptidão de um Indivíduo 3.5
Exercícios de ANÁLISE E SIMULAÇÃO NUMÉRICA
Exercícios de ANÁLISE E SIMULAÇÃO NUMÉRICA Licenciaturas em Engenharia do Ambiente e Química 2 o Semestre de 2005/2006 Capítulo II Resolução Numérica de Equações Não-Lineares 1. Considere a equação sin(x)
Inteligência Artificial (SI 214) Aula 4 Resolução de Problemas por meio de Busca Heurística
Inteligência Artificial (SI 214) Aula 4 Resolução de Problemas por meio de Busca Heurística Prof. Josenildo Silva [email protected] 2015 2012-2015 Josenildo Silva ([email protected]) Este material
Problema de Alocação de Salas em Cursos Universitários: Um Estudo de Caso
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Diretoria de Pesquisa e Pós-Graduação Curso de Mestrado em Modelagem Matemática e Computacional Problema de Alocação de Salas em Cursos Universitários:
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
Algoritmos Genéticos Fundamentos e Aplicações. Prof. Juan Moisés Mauricio Villanueva
Algoritmos Genéticos Fundamentos e Aplicações Prof. Juan Moisés Mauricio Villanueva [email protected] Conteúdo Introdução Inteligência Artificial (IA) Algoritmos Genéticos Aplicações de Algoritmos
LINGUAGEM C: COMANDOS DE REPETIÇÃO
LINGUAGEM C: COMANDOS DE REPETIÇÃO Prof. André Backes ESTRUTURAS DE REPETIÇÃO Uma estrutura de repetição permite que uma sequência de comandos seja executada repetidamente, enquanto determinadas condições
Resolução de problemas com apenas restrições lineares de igualdade
Resolução de problemas com apenas restrições lineares de igualdade Marina Andretta ICMC-USP 14 de outubro de 2014 Marina Andretta (ICMC-USP) sme0212 - Otimização não-linear 14 de outubro de 2014 1 / 22
Método Guloso. Troco mínimo. Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) junho/2012. Troco mínimo. Troco mínimo
Notas de aula da disciplina IME - ALGORITMOS E ESTRUTURAS DE DADOS II Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) Troco mínimo Dados os tipos de moedas de um país, determinar o número mínimo
INE Fundamentos de Matemática Discreta para a Computação
INE5403 - Fundamentos de Matemática Discreta para a Computação ) Fundamentos.1) Conjuntos e Sub-conjuntos.) Números Inteiros.3) Funções.4) Seqüências e Somas.5) Crescimento de Funções Seqüências Uma seqüência
BCC204 - Teoria dos Grafos
BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal
Capítulo 4 Secção 1. Livro
Procura Local Capítulo 4 Secção 1 Livro Procura local Algorítmos de procura local Hill-climbing Simulated annealing Local beam Genetic algorithms Resumo Procura Sistemática No capítulo 3, analisamos estratégias
Avaliação de Heurísticas de Melhoramento e da Metaheurística Busca Tabu para Solução de PRV
Avaliação de Heurísticas de Melhoramento e da Metaheurística Busca Tabu para Solução de PRV Eliseu Celestino Schopf 1, Claudio Schepke 1, Marcus Lucas da Silva 1, Pablo Furlan da Silva 1 1 Centro de Eletrônica
COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS
COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS Rosiana da Silva Lopes Danilo César Rodrigues Azevedo [email protected] [email protected]
CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano
CÁLCULO NUMÉRICO Profa. Dra. Yara de Souza Tadano [email protected] Aula 7 04/2014 Zeros reais de funções Parte 1 Objetivo Determinar valores aproximados para as soluções (raízes) de equações da
Algoritmos de Substituição de Páginas. Igor Gustavo Hoelscher Renan Arend Rogério Corrêa Medeiros
Algoritmos de Substituição de Páginas Igor Gustavo Hoelscher Renan Arend Rogério Corrêa Medeiros 2 Introdução No momento em que ocorre uma page fault o sistema operacional precisa escolher uma página a
Algoritmos de Aprendizado. Formas de Aprendizado. Aprendizado Batch x Incremental. Aprendizado Batch x Incremental
Algoritmos de Aprendizado Regra de Hebb Perceptron Delta Rule (Least Mean Square Back Propagation Formas de Aprendizado Existe dois métodos básicos de aplicação do algoritmo Back Propagation: Aprendizado
CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro
CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa Prof. Paulo André Castro [email protected] www.comp.ita.br/~pauloac Sala 110, IEC-ITA Sumário Busca Competitiva Para Ambientes multiagentes...
