• Nenhum resultado encontrado

Interval Robust Multi-Objective Evolutionary Algorithm – Minimax

Algoritmo 7-13– IREA-M

7. ALGORITMOS E CONCEITOS PROPOSTOS

7.3 Interval Robust Multi-Objective Evolutionary Algorithm – Minimax

Nesta seção, descreve-se o algoritmo evolucionário proposto para resolver o problema de otimização robusta estabelecido na Subseção 2.1.1. O algoritmo é denominado Interval Robust Multi-Objective

Evolutionary Algorithm – Minimax (IRMOEA-M). Sua estrutura geral assemelha-se com aquela

encontrada nos algoritmos evolucionários multiobjetivo tradicionais, pois apresenta os mecanismos de seleção, cruzamento, mutação e elitismo. No entanto, o IRMOEA-M possui uma característica peculiar que é a incorporação de mecanismos capazes de realizar o tratamento de incertezas pela abordagem robusta minimax via análise intervalar.

7.3.1 Estrutura Geral do IRMOEA-M

Inicialmente, apresentam-se as características gerais do algoritmo.

Espaço de incerteza: A formulação do problema a ser resolvido deve descrever como cada incerteza

age no problema, além disso, o intervalo de variação de cada um dos parâmetros de incerteza deve ser fornecido. Dessa forma, constrói-se um subpavimento para o espaço de incerteza do problema de acordo com Algoritmo 7-6.

População inicial: Para representação dos indivíduos foi utilizada a codificação real. A população

inicial é formada por pontos escolhidos aleatoriamente no domínio permitido para cada uma das variáveis de decisão.

Avaliação dos indivíduos: Realizada via operações intervalares a fim de avaliar o indivíduo frente a

cada uma das caixas do subpavimento de incerteza. Portanto, requer a função de inclusão para cada uma das funções objetivo do problema. Na avaliação do indivíduo, o processo de maximização da influência das incertezas pode ser feito por meio do ponto ideal de maximização 𝐮max ou da fronteira ideal de maximização 𝐅max, o que deve ser definido previamente, pois há peculiaridades no uso de cada um (e.g., a forma de computar dominância e distância da multidão).

Tratamento de restrições: Realizado por meio da avaliação intervalar das funções de restrição,

sendo assim, faz-se necessário ter a função de inclusão para cada uma das restrições do problema. O Algoritmo 7-10 descreve o processo de tratamento de restrições, que recebe como entrada um indivíduo 𝐱 e as caixas do subpavimento de incerteza. Como saída tem-se o valor das violações para as restrições, se o valor for zero significa que 𝐱 é factível, pois nenhuma restrição é violada para nenhuma das caixas do subpavimento de incerteza. No Algoritmo 7-10, para um dado 𝐱 e para cada restrição, é verificado se o limite superior do intervalo de saída dessa restrição é menor ou igual a zero, considerando-se todas as caixas do subpavimento. Nesse caso, não ocorre violação, caso contrário, há violação da restrição. Dessa forma, o indivíduo 𝐱 é penalizado de acordo com o nível de violação em cada restrição pela expressão presente no passo 4 do algoritmo. A violação das restrições é o primeiro critério utilizado para fazer o ranking dos indivíduos. Quanto maior a violação das restrições, pior é o ranking do indivíduo.

63

Algoritmo 7-10– Tratamento de restrições para o indivíduo 𝐱.

Ordenação por não dominância: Realizada pela divisão em fronteiras de não dominância como

proposto no algoritmo NSGA-II (DEB et al., 2002). Se a maximização da influência das incertezas é feita pelo ponto ideal de maximização 𝐮max, utiliza-se a Definição 2-4 para verificar a dominância. Caso, se use a fronteira ideal de maximização 𝐅max a dominância é verificada pela Definição 7-4.

Distância da multidão: Feita conforme proposto no algoritmo NSGA-II (DEB et al., 2002). Todavia,

se a maximização da influência das incertezas é feita pela fronteira ideal de maximização 𝐅max, há necessidade de reduzir cada fronteira não-dominada pertencente a 𝐅max para um único ponto de referência antes de aplicar o algoritmo de distância da multidão. Nesta tese, definiu-se tal ponto de referência como sendo o valor médio em cada uma das dimensões considerando-se todos os pontos que compõem a fronteira não-dominada em questão.

Ranking dos indivíduos: Realizado de acordo com a violação das restrições, ordenação por não

dominância e distância da multidão. Inicialmente, faz-se o tratamento das restrições. Em seguida, realiza-se a ordenação por não dominância dos indivíduos factíveis. Por último, computa-se a distância da multidão para indivíduos pertencentes a uma mesma fronteira de não dominância.

Elitismo e geração de novos indivíduos: A escolha dos indivíduos que participam das operações

evolucionárias foi realizada pelo método de torneio. O simulated binary crossover e polynomial

mutation foram os operadores utilizados no cruzamento e mutação, respectivamente (DEB e

AGRAWAL, 1995). A estratégia elitista consistiu em juntar a população corrente com a população filha obtida pela aplicação dos operadores evolucionários e realizar o ranking nessa população de acordo com a violação das restrições, dominância e distância da multidão. Feito isso, os indivíduos com melhor ranking (até o limite máximo permitido para a população) seguem para a população seguinte.

O IRMOEA-M é descrito no Algoritmo 7-11. Os parâmetros de entrada requeridos pelo IRMOEA- M são: número de gerações, número de indivíduos na população, domínio das variáveis de decisão, tamanho do torneio, processo de maximização da influência das incertezas, intervalo dos parâmetros de incerteza, εp que indica o nível de precisão desejado no subpavimento de incerteza, funções de inclusão para as funções objetivo e restrições, probabilidade de cruzamento e probabilidade de mutação.

1. funcao violacao = tratamento_restricoes (𝐱, {[𝐩]1, ..., [𝐩]𝑛𝑠}) 2. Para j = 1 até ng // Para cada restrição 𝑗 do problema.

2.1. Para i = 1 até ns // Para cada caixa [𝐩]i do subpavimento de incerteza.

2.2. wi = �gj�(𝐱, [𝐩]i)+ // Guarda em 𝑤𝑖 o pior valor da restrição j para cada caixa [𝐩]𝑖. 2.3. Fim Para.

2.4. pior_gj = max(𝐰); // Guarda o pior valor da restrição j considerando todo o 3. Fim Para. // subpavimento de incerteza dado por {[𝐩]1, ..., [𝐩]ns}. 4. violacao = 1000 × �∑ max�0, pior_g𝑛j=1g j��2 // Calcula a violação das restrições.

64

Algoritmo 7-11– IRMOEA-M.