tópicos de i.a

58
TÓPICOS DE I.A. ALGORÍTMOS GENÉTICOS Prof. Mário Dantas

Upload: ahava

Post on 24-Feb-2016

29 views

Category:

Documents


0 download

DESCRIPTION

Tópicos de I.A. ALGORÍTMOS GENÉTICOS Prof. Mário Dantas. A IA usa sempre algumas metáforas. Cérebro e sistema nervoso  conexionismo Linguagem + processos cognitivos  IA simbólica Teoria da evolução  computação evolutiva (algoritmos genéticos). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Tópicos de  I.A

TÓPICOS DE I.A.ALGORÍTMOS GENÉTICOS

Prof. Mário Dantas

Page 2: Tópicos de  I.A

2

A IA USA SEMPRE ALGUMAS METÁFORAS...

Cérebro e sistema nervoso conexionismo

Linguagem + processos cognitivos IA simbólica

Teoria da evolução computação evolutiva (algoritmos genéticos)

Page 3: Tópicos de  I.A

3

INDAGAÇÕES DE ALGUNS SÉCULOS ATRÁS...

Como explicar a diversidade de animais? Como explicar sua evolução?

Qual é a influência do dos antepassados? Qual é a influência do meio ambiente?

Page 4: Tópicos de  I.A

4

HISTÓRIA DA TEORIA DA EVOLUÇÃO

1809: Jean-Baptiste Lamarck Lei do uso e do desuso

pelo uso e desuso de suas aptidões, a natureza força os seres a se adaptarem para sobreviverem.

Lei dos caracteres adquiridos. Os serem mais fortes são mais capazes de

“trasmitir” suas aptidões às novas gerações

Teoria da evolução: de Lamarck a De Vries

Page 5: Tópicos de  I.A

5

HISTÓRIA DA TEORIA DA EVOLUÇÃO

1859: Charles Darwin Existe uma diversidade de seres devido

aos contingentes da natureza (comida, clima, ...) e é pela lei da Seleção Natural que os seres mais adaptados ao seus ambientes sobrevivem contra lei do uso de desuso

Os caracteres adquiridos são herdados pelas gerações seguintes o homem vem do macaco...

Na época, que isto tudo foi polêmico...

Page 6: Tópicos de  I.A

6

HISTÓRIA DA TEORIA DA EVOLUÇÃO

1865: Gregor Mendel Formalizou a “herança de características”, com a

teoria do DNA (ervilhas) 1901: Hugo De Vries

Só a seleção natural não é responsável pela produção de novas (mais adaptadas) espécies. Tem de haver uma mudança genética!

Formalizou o processo de geração de diversidade: Teoria da Mutação

Page 7: Tópicos de  I.A

7

COMPUTAÇÃO EVOLUTIVA A Computação Evolucionária foi introduzida

em 1960 por Ingo Rechenberg com seu trabalho "Estratégias de Evolução" (Evolutions strategie no original). Sua idéia foi então desenvolvida por outros pesquisadores.

Page 8: Tópicos de  I.A

8

COMPUTAÇÃO EVOLUTIVA 1975: Jonh Holland: Idealizou os algoritmos

genéticos Adaptation in Natural & Artificial Systems

MIT Press, 1975 (2nd ed. 1992) Porque a evolução é uma boa metáfora?

Muitos problemas computacionais envolvem busca através de um grande número de

possíveis soluções requerem que o programa seja adaptativo, apto a agir em

um ambiente dinâmico A evolução biológica é

é uma busca massivamente paralela em um enorme espaço de problema

soluções desejadas = organismos mais adaptados

Page 9: Tópicos de  I.A

9

1. INTRODUÇÃO 1.1 O que são Algoritmos Genéticos?

São algoritmos de busca baseados no mecanismo de seleção natural e genética.

Utilizam a representação das soluções através de cadeias de bits (strings), que são modeladas à maneira das cadeias de DNA dos seres vivos orgânicos.

Foram desenvolvidos por John Holland na Universidade de Michigan.

Page 10: Tópicos de  I.A

10

1. INTRODUÇÃO 1.2 Objetivos do algoritmo original proposto

por Holland: Criar uma abstração para explicar rigorosamente o

processo adaptativo dos sistemas naturais; Projetar sistemas de software artificial que

conservassem os mecanismos mais importantes dos sistemas naturais.

Page 11: Tópicos de  I.A

11

FUNDAMENTOS BIOLÓGICOS Cromossomos

Em cada célula há um mesmo conjunto de cromossomos.

cromossomos são cadeias de DNA e servem como modelo para todo o organismo. O cromossomo é constituído de genes, que são blocos de DNA.

Cada gene codifica uma determinada proteína. Basicamente, podemos dizer que cada gene

codifica uma determinada feição, por exemplo cor dos olhos. Conjunto de genes relacionados com determinada feição são chamados alelos.

Cada gene tem sua posição própria dentro do cromossomo. Essa posição é chamada local.

Page 12: Tópicos de  I.A

12

FUNDAMENTOS BIOLÓGICOS Um conjunto completo de material genético

(todos os cromossomos) é chamado genoma. Um conjunto particular de genes de um genoma é chamado genótipo. O genótipo mais o desenvolvimento que ocorre após o nascimento é a base para o fenótipo do organismo, que são suas características físicas e mentais, tais como: cor dos olhos, inteligência, etc.

Page 13: Tópicos de  I.A

13

FUNDAMENTOS BIOLÓGICOS Reprodução

Durante a reprodução, ocorre inicialmente recombinação (ou cruzamento).

Os genes dos pais são combinados para formar um novo cromossomo.

Essa descendência recém criada pode sofrer uma mutação.

Mutação significa que os elementos do DNA são ligeiramente modificados. Essas mudanças são causadas principalmente por erros na cópia dos genes dos pais.

A adaptação de um organismo é medida pelo sucesso do organismo na vida (sobrevivência).

Page 14: Tópicos de  I.A

14

ESPAÇO DE SOLUÇÕES O espaço de todas as soluções possíveis (que

é um conjunto entre as quais a solução procurada está) é chamado Espaço das Soluções (ou Espaço de Estados).

Cada ponto desse estado representa uma solução possível.

Cada uma das possíveis soluções pode ser "marcada" pelo seu valor (ou adequação) para o problema.

Com os Algoritmos Genéticos nós procuramos pela melhor solução dentre um número de possíveis soluções.

Page 15: Tópicos de  I.A

15

ESPAÇO DE SOLUÇÕES Procurar por uma solução se resume então

em procurar por algum valor extremo (um mínimo ou máximo) no espaço de soluções.

Page 16: Tópicos de  I.A

16

ALGORITMOS GENÉTICOS Solução de um problema através de algoritmos

genéticos utiliza um processo evolucionário (a solução é desenvolvida).

O algoritmo começa com um conjunto de soluções (representadas por cromossomos) chamada população.

Soluções de uma população são utilizadas para formar uma nova população.

Isto é motivado pela esperança que a nova população será melhor do que a primeira.

Soluções que são selecionadas para formar novas gerações de soluções são selecionadas de acordo com sua adequação.

Page 17: Tópicos de  I.A

17

ESBOÇO BÁSICO DO ALGORITMO GENÉTICO [Início] Gere uma população aleatória de n cromossomos (soluções

adequadas para o problema) [Adequação] Avalie a adequação f(x) de cada cromossomo x da

população [Nova população] Crie uma nova população repetindo os passos

seguintes até que a nova população esteja completa [Seleção] Selecione de acordo com sua adequação (melhor adequação,

mais chances de ser selecionado) dois cromossomos para serem os pais [Cruzamento] Com a probabilidade de cruzamento cruze os pais para

formar a nova geração. Se não realizar cruzamento, a nova geração será uma cópia exata dos pais.

[Mutação] Com a probabilidade de mutação, altere os cromossomos da nova geração nos locus (posição nos cromossomos).

[Aceitação] Coloque a nova descendência na nova população [Substitua] Utilize a nova população gerada para a próxima rodada

do algoritmo [Teste] Se a condição final foi atingida, pare, e retorne a melhor

solução da população atual [Repita] Vá para o passo 2

Page 18: Tópicos de  I.A

18

OPERADORES DOS ALGORITMOS GENÉTICOS O cruzamento e a mutação são as partes

mais importantes do algoritmo genético. O desempenho é influenciado principalmente

por esses dois operadores.

Page 19: Tópicos de  I.A

19

A CODIFICAÇÃO DE UM CROMOSSOMO Um cromossomo deve de alguma maneira

conter a informação da solução que ele representa. A forma mais comum de codificar é uma série (string) binária. Um cromossomo pode então se parecer como isto:

Cromossomo 1: 1101100100110110Cromossomo 2: 1101111000011110

Cada bit da série representa alguma característica da solução

Page 20: Tópicos de  I.A

20

CRUZAMENTO O cruzamento opera em determinados genes

dos cromossomos dos pais e cria novas descendências.

A maneira mais simples de fazer isso é escolher aleatoriamente alguns pontos de cruzamento e copiar tudo o que vem antes desse ponto de um dos pais e então copiar tudo o que vem depois desse ponto do outro pai.

Page 21: Tópicos de  I.A

21

CRUZAMENTOA = 0 1 1 0 1B = 1 1 0 0 0

A1 = 0 1 1 0 0B1 = 1 1 0 0 1

Pai

Mãe

Filho 1

Filho 2

Indice de corte = 3

Cruzamento (Cross Over)

Page 22: Tópicos de  I.A

22

MUTAÇÕES Implementação do Mecanismo de Mutação

(Mutation)

Após o cruzamento, os filhos podem sofrer alterações no seu código genético, chamadas de mutações.

Estas podem ocorrer em um ou mais alelos (bits), de acordo com uma probabilidade pré-estabelecida.

Em virtude da probabilidade de mutação ser, geralmente baixa nos seres vivos, ela desempenha um papel secundário na evolução das espécies.

Page 23: Tópicos de  I.A

23

MUTAÇÕESA1 = 0 1 1 0 0 Cromosso

mo Original

Prob. de mutação <= 1% = 0,01

A1 = 0 1 0 0 0

I = 1, M = rand() =0,3Sem mutaçãoI = 1,

M = rand() = 0,5Sem mutação

I = 1, M = rand() = 0,002Mutação

I = 1, M = rand() = 0,2Sem mutação

I = 1, M = rand() = 0,45Sem mutação

Após Mutação

Page 24: Tópicos de  I.A

24

PARÂMETROS DOS ALGORÍTMOS GENÉTICOS Probabilidade de Cruzamento:

Com qual freqüência o cruzamento é realizado.

Se a probabilidade de cruzamento é 100%, então toda a descendência é produzida por cruzamento.

Se a probabilidade é 0%, toda a nova geração é formada por cópia exata dos cromossomos da população antiga (mas isso não significa que a nova geração é a mesma!).

Page 25: Tópicos de  I.A

25

PARÂMETROS DOS ALGORÍTMOS GENÉTICOS Probabilidade de Mutação:

Com qual freqüência as partes dos cromossomos sofrerão mutação.

Se a probabilidade de mutação é 100%, todos os cromossomos são alterados, se é 0%, nenhum é alterado.

A mutação em geral evita que o AG caia num extremo (mínimo ou máximo) local.

A mutação não deve ocorrer com muita freqüência porque senão o AG tornar-se-á de fato uma busca aleatória.

Page 26: Tópicos de  I.A

26

PARÂMETROS DOS ALGORÍTMOS GENÉTICOS Tamanho da População:

Quantos cromossomos existem na população (em uma geração).

Se houver poucos cromossomos, o AG terá poucas possibilidade de realizar cruzamentos e somente uma parte pequena do espaço de soluções será explorada.

Por outro lado, se houver muitos cromossomos, os AG’s se tornarão lentos.

Pesquisas mostram que após determinado limite (que depende principalmente da codificação e do problema), não é conveniente aumentar a população porque isso não resolve o problema mais rapidamente do que com tamanhos moderados de população.

Page 27: Tópicos de  I.A

27

SELEÇÃO Os cromossomos são selecionados de uma

população para serem pais de um cruzamento.

O problema é como selecionar esses cromossomos.

De acordo com a teoria da evolução de Darwin, o melhor sobrevive para criar a descendência.

Há muitos métodos para selecionar o melhor cromossomo.

Exemplos são: seleção por roleta, seleção Boltzman, seleção por campeonato, seleção por classificação, seleção por estado estacionário, e outras.

Page 28: Tópicos de  I.A

28

SELEÇÃO POR ROLETA Os pais são selecionados de acordo com sua

adequação. O lado de cada seção da roleta é proporcional ao valor da adequação de cada cromossomo: quanto maior for esse valor, mais larga a secção.

Page 29: Tópicos de  I.A

29

SELEÇÃO POR CLASSIFICAÇÃO O método anterior de seleção tem problemas

quando há grandes diferenças entre os valores de adequação. Por exemplo, se a melhor adequação dos cromossomos é 90% da soma de todas as adequações, então haverá cromossomos com chances muito baixas de serem selecionados.

A Seleção por Classificação primeiro classifica a população e então atribui a cada cromossomo um valor de adequação determinado pela sua classificação. O pior terá adequação igual a 1, o segundo pior 2 etc. de forma que o melhor terá adequação igual a N (número de cromossomos na população).

Page 30: Tópicos de  I.A

30

SELEÇÃO POR CLASSIFICAÇÃO

Situação antes da Classificação (gráfico da adequação)

Situação depois da Classificação (gráfico dos números de ordem)

Agora todos os cromossomos tem uma chance de serem selecionados. Entretanto, este método pode resultar em menor convergência, porque os melhores cromossomos não se distinguem muito dos outros.

Page 31: Tópicos de  I.A

31

SELEÇÃO POR ESTADO ESTACIONÁRIO Este não é um método particular de seleção de

pais. A idéia principal deste tipo de seleção é que a nova população deve ter uma grande parte de cromossomos que sobreviverão para a próxima geração.

A seleção tipo Estado Estacionário dos AG’s funciona do seguinte modo: Em cada nova geração uns poucos bons

cromossomos (com alta adequação) são selecionados para a criação da descendência. A seguir alguns maus cromossomos (com baixa adequação) são removidos e novos descendentes são colocados em seus lugares. Todo o resto da população sobrevive para as próximas gerações.

Page 32: Tópicos de  I.A

32

ELITISMO Quando criamos uma nova população por

cruzamento e mutação, nós temos uma grande chance de perder os melhores cromossomos.

Elitismo é o nome do método que primeiro copia os melhores cromossomos (ou os poucos melhores cromossomos) para a nova população.

O resto da população é construída das formas descritas acima.

Elitismo pode aumentar rapidamente o desempenho do AG, porque previne a perda da melhor solução já encontrada.

Page 33: Tópicos de  I.A

33

CODIFICAÇÃO A codificação dos cromossomos é a primeira

questão a ser feita quando começamos a resolver um problema utilizando AG.

A codificação depende muito do problema.

Page 34: Tópicos de  I.A

34

CODIFICAÇÃO BINÁRIA Codificação Binária é a mais comum

principalmente porque foi a que os primeiros pesquisadores de AG usaram e devido à sua relativa simplicidade.

Na Codificação Binária, cada cromossomo é uma série de bits - 0 or 1.

Codificação Binária permite muitos possíveis cromossomos, mesmo com pequenos número de alelos.

Por outro lado, esta codificação não é natural para muitos problemas e algumas vezes é necessário fazer correções antes dos cruzamentos e/ou mutações.

Page 35: Tópicos de  I.A

35

CODIFICAÇÃO BINÁRIA Exemplo de Problema: Problema da

Mochila

O problema: É dada uma lista de coisas com preços e tamanhos. É fornecido o valor da capacidade da mochila. Escolha as coisas de forma a maximizar o valor das coisas que cabem dentro da mochila, sem ultrapassar sua capacidade.

Codificação: Cada bit é usado para dizer se a coisa correspondente está ou não na mochila.

Page 36: Tópicos de  I.A

36

CODIFICAÇÃO POR PERMUTAÇÃO A Codificação por Permutação pode ser

usada em problemas que envolvem ordenação como o "Problema do Caixeiro-Viajante" ou problemas de ordenação de tarefas.

Na Codificação por Permutação, cada cromossomo é uma série de números que representa uma posição em uma seqüência>. cromossomo A 1  5  3  2  6  4  7  9  8

cromossomo B 8  5  6  7  2  3  1  4  9

Exemplo de cromossomo com codificação por permutação

Page 37: Tópicos de  I.A

37

CODIFICAÇÃO POR PERMUTAÇÃO A Codificação por Permutação é útil para

solução de problemas de ordenação. Para alguns tipos de cruzamentos e

mutações, são necessárias correções para que os cromossomos fiquem consistentes (isto é contenham seqüências reais) para alguns problemas.

Page 38: Tópicos de  I.A

38

CODIFICAÇÃO POR PERMUTAÇÃO Exemplo de Problema: Problema do Caixeiro

Viajante (Travelling Salesman Problem - TSP)

O problema: São dadas cidades e as distâncias entre elas. O caixeiro viajante tem que visitar todas elas, sem viajar mais do que o necessário. A solução do problema consiste em encontrar a seqüência de cidades em que as viagens devem ser feitas de forma que a distância percorrida seja a mínima possível.

Codificação: Os cromossomos descrevem a ordem em que o caixeiro visitará as cidades.

Page 39: Tópicos de  I.A

39

CODIFICAÇÃO DE VALORES A codificação direta dos valores pode ser

usada em problemas em que são usados valores mais complicados tais como números reais.

Usar codificação binária para esse tipo de problema seria muito difícil.

Na Codificação de Valores, cada cromossomo é uma seqüência de alguns valores.

Esses valores podem ser qualquer coisa relacionada com o problema, tais como: números reais, caracteres ou qualquer outro objeto.

Page 40: Tópicos de  I.A

40

CODIFICAÇÃO DE VALORES

cromossomo A 1.2324  5.3243  0.4556  2.3293  2.4545cromossomo B ABDJEIFJDHDIERJFDLDFLFEGTcromossomo C

(atrás), (atrás), (direita), (frente), (esquerda)

Exemplo de cromossomo com codificação de valores

Codificação de Valores é uma boa escolha para alguns problemas especiais.

Entretanto, para essa codificação, é frequentemente necessário desenvolver um método de cruzamento e mutação específico para o problema.

Page 41: Tópicos de  I.A

41

CODIFICAÇÃO DE VALORES Exemplo de Problema: Cálculo de Pesos

para uma Rede Neural

O problema: É dada uma rede neural com arquitetura definida. Encontre os pesos entre os neurônios da rede de forma a obter a resposta desejada da rede.

Codificação: Valores reais dos cromossomos representam os pesos da rede neural.

Page 42: Tópicos de  I.A

42

CODIFICAÇÃO EM ÁRVORE Codificação em Árvore é usada

principalmente para desenvolver programas ou expressões, isto é, para programação genética.

Na Codificação em Árvore cada cromossomo é uma árvore de alguns objetos, tais como funções ou comandos de uma linguagem de programação.

Page 43: Tópicos de  I.A

43

CODIFICAÇÃO EM ÁRVORECromossomo A Cromossomo B

( +  x  ( /  5  y ) ) ( do_until  step  wall )Exemplo de cromossomo com codificação em árvore

A Codificação em Árvore é útil para desenvolver programas ou qualquer outra estrutura que pode ser codificada em árvores.

A programação na linguagem LISP é frequentemente utilizada para este propósito uma vez que os programas em LISP são diretamente representados na forma de árvores e podem ser facilmente processados como uma árvore, de forma que o cruzamento e a mutação podem ser realizados com relativa facilidade.

Page 44: Tópicos de  I.A

44

CODIFICAÇÃO EM ÁRVORE Exemplo de Problema: Encontrar uma

função que aproxime um dado par de valores

O problema: São dados os valores de entrada e de saída. A tarefa é encontrar uma função que forneça a melhor saída (isto é, a que dê o resultado mais próximo do desejado) para todas as entradas.

Codificação: cromossomos são funções representadas em uma árvore.

Page 45: Tópicos de  I.A

45

CRUZAMENTO E MUTAÇÃO Cruzamento e Mutação são os dois

operadores básicos de AG. O desempenho do AG depende muito deles. O tipo e a implementação desses operadores

dependem da codificação e também do problema

Há diversas maneiras de como fazer o cruzamento e a mutação.

Page 46: Tópicos de  I.A

46

CODIFICAÇÃO BINÁRIA Cruzamento

Ponto de Cruzamento Único - um ponto de cruzamento é escolhido, a série binária desde o começo do cromossomo até o ponto de cruzamento é copiada do primeiro pais e o resto copiado do outro pai.

11001011+11011111 = 11001111

Page 47: Tópicos de  I.A

47

CODIFICAÇÃO BINÁRIA Dois pontos de cruzamento - são

definidos dois pontos de cruzamento, a série binária desde o início do cromossomo até o primeiro ponto de cruzamento é copiada do primeiro pai, a parte do primeiro ponto de cruzamento até o segundo ponto é copiada do outro pai e o resto do cromossomo é copiado do primeiro pai novamente.

11001011 + 11011111 = 11011111

Page 48: Tópicos de  I.A

48

CODIFICAÇÃO BINÁRIA Cruzamento Uniforme - os bits são

copiados aleatoriamente do primeiro ou segundo pai.

11001011 + 11011101 = 11011111

Page 49: Tópicos de  I.A

49

CODIFICAÇÃO BINÁRIA Cruzamento Aritmético - é realizada uma

operação aritmética para obter a nova geração.

11001011 + 11011111 = 11001001 (AND)

Page 50: Tópicos de  I.A

50

CODIFICAÇÃO BINÁRIA Mutação

Inversão de Bit - determinados bits são invertidos

11001001 =>  10001001

Page 51: Tópicos de  I.A

51

CODIFICAÇÃO POR PERMUTAÇÃO Cruzamento

Ponto de Cruzamento Único - um ponto de cruzamento é selecionado e a permutação é copiada até um ponto de cruzamento selecionado, a permutação é copiada do primeiro pai até o ponto de cruzamento, daí o outro pai é rastreado e se o número ainda não estiver na descendência, é adicionado:

(1 2 3 4 5 6 7 8 9) + (4 5 3 6 8 9 7 2 1) = (1 2 3 4 5 6 8 9 7)

Mutação Mudança de Ordem - dois números são escolhidos e

trocados entre si

(1 2 3 4 5 6 8 9 7) => (1 8 3 4 5 6 2 9 7)

Page 52: Tópicos de  I.A

52

CODIFICAÇÃO DE VALORES Cruzamento

Todos os cruzamentos de codificação binária podem ser usados.

Mutação Adicionando um número pequeno (para

codificação de valores reais) - um número pequeno é adicionado a (ou subtraído de) valores selecionados

(1.29  5.68  2.86  4.11  5.55) => (1.29  5.68  2.73  4.22  5.55)

Page 53: Tópicos de  I.A

53

CODIFICAÇÃO EM ÁRVORE Cruzamento

Cruzamento de Árvores - um ponto de cruzamento é escolhido em ambos os pais, os pais são divididos nesse ponto e as partes abaixo do ponto de cruzamento são trocadas para produzir a descendência

Mutação Mudando o operador - os nós escolhidos são mudados

Page 54: Tópicos de  I.A

54

PROBLEMA DO CAIXEIRO VIAJANTE Relembrando, são dadas cidades e as

distâncias entre elas. O caixeiro viajante tem que visitar todas

elas, mas não quer viajar demais. A tarefa consiste em encontrar a seqüência

de cidades que faz com que a distância percorrida seja a menor possível.

Em outras palavras, o problema é achar a rota mínima Hamiltoniana num gráfico de N nós.

Page 55: Tópicos de  I.A

55

IMPLEMENTAÇÃO Será usada uma população de 16

cromossomos. Para codificá-los foi utilizada Codificação por

Permutação, como forma de codificar a permutação das cidades para o Problema do Caixeiro Viajante.

O problema é selecionado completando o gráfico (isto é, cada nó é conectado ao outro) com distâncias euclidianas.

Depois de adicionar ou excluir uma cidade é necessário criar novos cromossomos e reiniciar completamente o algoritmo.

Page 56: Tópicos de  I.A

56

CRUZAMENTO

Ponto único - parte do primeiro pai (isto é, parte da seqüencia das cidades) é copiada e o resto das cidades é copiada na mesma seqüência do segundo pai.

Dois pontos - duas partes do primeiro pai são copiadas e o restante (que está entre essas duas partes) é colocada na mesma ordem que estão no segundo pai.

Nenhum - sem cruzamento, a descendência é uma cópia exata dos pais.

Page 57: Tópicos de  I.A

57

MUTAÇÃO Aleatória Normal (Normal Random Mutation) - umas poucas

cidades são escolhida e trocadas. Aleatória se Melhora (Random, only improving) - umas

poucas cidades são escolhidas aleatóriamente somente se elas melhoram a solução (isto é, aumentam a adequação) .

Sistemática se Melhora (Systematic, only improving) - cidades são escolhidas sistematicamente e trocadas somente se melhoram a solução (aumentam a adequação) .

Aleatória Melhorada (Random improving) - o mesmo que "Aleatória se Melhora", porém antes que a mutação aleatória normal seja executada .

Sistemática Melhorada (Systematic improving) - o mesmo que "Sistemática se Melhora", porém antes que a mutação aleatória normal seja executada.

Nenhuma - sem mutação.