• Nenhum resultado encontrado

Metodologia CSO - Controle Supervisório e Otimização

5.3 Algoritmos de Otimização

5.3.2 Tipos de Movimentos e Estruturas de Vizinhanças

Os métodos de otimização implementados neste trabalho, e descritos em detalhes nas seções seguintes, utilizam sete tipos de movimentos, a saber:

• Movimento 2-opt • Movimento 3-opt1 • Movimento 3-opt2 • Movimento 3-opt3 • Movimento 3-opt4 • Movimento Troca • Movimento TrocaBlocos

O movimento 2-opt foi baseado no já apresentado na seção 4.2.2. Para exempli-car este movimento, considere uma solução genérica s = a0a0a1a1b0b0b1b1, codicada conforme descrito na seção anterior.

Para uma melhor visualização da realização de um movimento do tipo 2-opt, e da geração de um vizinho a partir deste movimento, esta solução será representada por meio de um grafo direcionado, conforme mostrado na Figura 5.13.

Nesta gura, tem-se que cada vértice representa um evento da solução, enquanto os arcos direcionados, ligando estes eventos, denem como o sequenciamento será realizado.

Sendo assim, um movimento do tipo 2-opt modica uma solução através da reconexão entre dois arcos da solução, conforme exemplo mostrado na Figura 5.14.

5.3 Tipos de Movimentos e Estruturas de Vizinhanças 48

Figura 5.13: Solução Genérica.

Figura 5.14: Movimento 2-opt.

Neste exemplo, tem-se que os arcos (i, i + 1) e (j, j + 1) são selecionados, e as ligações denidas por eles são então substituídas pelas novas (i, j) e (i + 1, j + 1), gerando-se o vizinho s = a

0a1a0a1b0b0b1b1, à partir da solução inicial s.

Um movimento do tipo 3-opt, quando aplicado a uma solução s, gera quatro di-ferentes vizinhos. Sendo assim, neste trabalho, um movimento 3-opt foi decomposto em quatro tipos distintos de movimentos, sendo eles: movimento 3-opt1, movimento 3-opt2, movimento 3-opt3 e movimento 3-opt4.

Para se denir e exemplicar tais movimentos, considere novamente a solução s, representada na Figura 5.13.

Um movimento 3-opt1 é obtido reconectando-se três arcos da solução s, conforme mostrado na Figura 5.15. Nesta gura, os arcos (i, i + 1), (j, j + 1) e (k, k + 1) são selecionados e então substituídos pelos novos (i, k), (j, k + 1) e (j + 1, i + 1), dando origem ao vizinho s = a

0b0a1a0a1b0b1b1 da solução s.

No movimento 3-opt2, os mesmos arcos são reconectados segundo Figura 5.16, sendo substituídos pelas ligações (i + 1, k + 1), (i, j + 1) e (k, j), gerando o vizinho

s = a0a1b0a1a0b0b1b1.

Um movimento 3-opt3, quando realizado, produz o vizinho s = a

0a1a0b0a1b0b1b1, substituindo-se os arcos (i, i+1), (j, j+1) e (k, k+1) por (i, j), (i+1, k) e (j+1, k+1), conforme mostrado na Figura 5.17.

Por m, um movimento 3-opt4 é obtido reconectando-se três arcos da solução s, conforme mostrado na Figura 5.18. Neste caso, a substituição dos arcos (i, i + 1),

5.3 Tipos de Movimentos e Estruturas de Vizinhanças 49

Figura 5.15: Movimento 3-opt1.

Figura 5.16: Movimento 3-opt2.

Figura 5.17: Movimento 3-opt3.

(j, j + 1) e (k, k + 1) pelos novos (i, j + 1), (j, k + 1) e (k, i + 1), produz o vizinho

s = a0a1b0a0a1b0b1b1.

Em um movimento do tipo Troca, dois eventos distintos, pertencentes a uma mesma solução, são selecionados e têm suas posições trocadas, dando origem a um vizinho s desta solução. A Figura 5.19 ilustra esse movimento. Nesta gura, tem-se

5.3 Tipos de Movimentos e Estruturas de Vizinhanças 50

Figura 5.18: Movimento 3-opt4.

Figura 5.19: Movimento Troca.

Figura 5.20: Movimento TrocaBlocos.

a mesma solução inicial s = a0a0a1a1b0b0b1b1. Os eventos a0 (segunda ocorrên-cia) e b0 (primeira ocorrência) são aleatoriamente selecionados e têm suas posições trocadas, dando origem ao vizinho s = a

0b0a1a1a0b0b1b1.

Por último, no movimento TrocaBlocos, dois blocos de eventos de tamanho t são selecionados, também de forma aleatória, dentro da solução s, e têm suas po-sições trocadas, conforme mostrado na Figura 5.20. Neste exemplo têm-se t = 2, signicando que cada bloco a ser trocado é formado por 2 eventos. Considerando-se a mesma solução inicial s = a0a0a1a1b0b0b1b1, e os blocos selecionados bl1 = a0a1

e bl2 = b0b1, após a inversão das posições entre estes blocos, obtêm-se o vizinho

s = a0b0b1a1b0a0a1b1.

Vinte e três estruturas de vizinhança são obtidas, variando-se a intensidade dos movimentos adotados. Estas vizinhanças são descritas a seguir.

• N2opt−20(s), N2opt−30(s), N2opt−40(s): Formadas pelo conjunto de todos os vi-zinhos obtidos a partir de uma dada solução s, ao se aplicar um número n de movimentos 2-opt sobre esta solução. Considera-se, respectivamente, nestas estruturas de vizinhanças, n = 20%, 30% e 40% do tamanho da solução con-siderada. Tem-se ainda a estrutura N2opt(s), na qual os vizinhos são gerados a partir da execução de um único movimento 2-opt.

5.3 Avaliação de uma Solução 51

• N3opt1−20(s), N3opt1−30(s), N3opt1−40(s): Formadas pelo conjunto de todos os vizinhos obtidos a partir de uma dada solução s, ao se aplicar um número

n de movimentos 3-opt1 sobre esta solução. Considera-se, respectivamente, nestas estruturas de vizinhanças, n = 20%, 30% e 40% do tamanho da solução considerada.

• N3opt2−20(s), N3opt2−30(s), N3opt2−40(s): Formadas pelo conjunto de todos os vizinhos obtidos a partir de uma dada solução s, ao se aplicar um número

n de movimentos 3-opt2 sobre esta solução. Considera-se, respectivamente, nestas estruturas de vizinhanças, n = 20%, 30% e 40% do tamanho da solução considerada.

• N3opt3−20(s), N3opt3−30(s), N3opt3−40(s): Formadas pelo conjunto de todos os vizinhos obtidos a partir de uma dada solução s, ao se aplicar um número

n de movimentos 3-opt3 sobre esta solução. Considera-se, respectivamente, nestas estruturas de vizinhanças, n = 20%, 30% e 40% do tamanho da solução considerada.

• N3opt4−20(s), N3opt4−30(s), N3opt4−40(s): Formadas pelo conjunto de todos os vizinhos obtidos a partir de uma dada solução s, ao se aplicar um número

n de movimentos 3-opt4 sobre esta solução. Considera-se, respectivamente, nestas estruturas de vizinhanças, n = 20%, 30% e 40% do tamanho da solução considerada.

• NT roca−20(s), NT roca−30(s), NT roca−40(s): Formadas pelo conjunto de todos os vizinhos obtidos a partir de uma dada solução s, ao se aplicar um número

n de movimentos Troca sobre esta solução. Considera-se, respectivamente, nestas estruturas de vizinhanças, n = 20%, 30% e 40% do tamanho da solução considerada. Tem-se ainda a estrutura NT roca(s), na qual os vizinhos são gerados a partir da execução de um único movimento Troca.

• NT rocaBlocos−20(s), NT rocaBlocos−30(s), NT rocaBlocos−40(s): Formadas pelo con-junto de todos os vizinhos obtidos a partir de uma dada solução s, ao se aplicar um número n de movimentos TrocaBlocos sobre esta solução. Considera-se, respectivamente, nestas estruturas de vizinhanças, n = 20%, 30% e 40% do tamanho da solução considerada.

Os tamanhos das vizinhanças adotadas foram denidos de forma empírica, uma vez que diferentes tamanhos foram testados, mas os melhores resultados foram ob-tidos considerando-se os valores descritos acima.