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.