• Nenhum resultado encontrado

Entrada: Critério: critérioDeParada; Inteiro: numPopulações, numIndivíduos, taxaCross; Mapa: mapa

Saída: RotaPouso: melhorRota

1 início

2 repita

3 para i = 1 até numPopulações faça

4 para j = 1 até numIndivíduos faça

5 inicializar(pop(i).ind(j));

6 avaliar(pop(i).ind(j), mapa);

7 estruturar(pop(i));

8 repita

9 para j = 1 até taxaCross × numIndivíduos faça

10 selecionar(pais); 11 filho ← crossover(pais); 12 mutação(filho); 13 avaliar(filho, mapa); 14 adicionar(filho, pop(i)); 15 estruturar(pop(i)); 16 até convergir(pop(i));

17 para i = 1 até numPopulações faça

18 migrar(pop(i));

19 até atingir(critérioDeParada);

20 RotaPouso melhorRota ← obtemMelhorRota(pop); 21 retorna melhorRota;

as populações e indivíduos organizados em forma de árvore. O Algoritmo3descreve o AGMP proposto que é baseado no trabalho deToledo et al.(2009).

A população é inicializada e todos os indivíduos são avaliados (conforme Expres- são (4.2)). Em seguida, esses indivíduos são estruturados em árvore como ilustrado pela Figura19. A hierarquia é representada pela posição dos indivíduos (nós) nos clusters da árvore. Há um líder em cada cluster que é o indivíduo com melhor valor de fitness. O melhor indivíduo da população é representado pelo nó raiz e os piores indivíduos são os nós folha.

O processo de evolução seleciona aleatoriamente dois indivíduos para reprodução que são sempre um nó líder e um dos seus seguidores. O novo indivíduo gerado substitui o pior pai, caso ele possua um melhor valor de fitness. Após a nova inserção de indivíduos, a população é hierarquicamente reestruturada, onde os melhores indivíduos se tornam líderes em seus clusters. A população converge se nenhum indivíduo for inserido em taxaCross × numIndividuos tentati- vas. Quando todas as populações convergem, um operador de migração é executado e elas são reinicializadas, exceto pelo melhor indivíduo de cada população e os indivíduos que migraram. O operador migração envia uma cópia do melhor indivíduo da população i para a população

Figura 19 – Estrutura hierárquica em árvore usada no AGMP.

Migração Migração

Migração

Fonte: Elaborada pelo autor.

i + 1. O critério de parada é dado pelo número de avaliações do fitness. Ao alcançar o critério de parada, o algoritmo retorna a melhor solução (rota) encontrada.

Tanto o AG quanto o AGMP implementados não possuem garantia de convergência, sendo assim, a solução é retornada após o método atingir um número de avaliações. Por se tratar de uma metaheurística, tais métodos não garantem a otimalidade da solução e sua execução é não determinística. De forma geral, tanto o AG quanto o AGMP retornam soluções relativamente rápidas na ordem de 1 segundo.

4.6

Programação Linear Inteira Mista

Esta seção apresenta o método usado para resolver o problema a partir do modelo baseado em Programação Linear Inteira Mista (PLIM). O solver de otimização usado para resolver esse modelo foi IBM ILOG CPLEX. Internamento esse solver executa um algoritmo Branch and Cut (B&C) para resolver o modelo. Esse método caracteriza-se por retornar soluções ótimas para o modelo e ser determinístico, no entanto, suas soluções demandam alto tempo de processamento. Primeiramente, é apresentada a forma como o modelo de PLIM foi implementado. Finalmente, uma estratégia para resolver o problema usando rotas pré-processadas é proposta.

É importante ressaltar que o método baseado em PLIM não será embarcado em aeronave real e nem será testado em simulações, devido ao seu alto custo computacional. A definição e utilização de tal método visa fornecer uma comparação para os outros métodos propostos. Por

4.6. Programação Linear Inteira Mista 85

exemplo, a resolução exata do problema permitirá fornecer um limitante superior para a taxa de sucesso no pouso da aeronave.

O Algoritmo4descreve a implementação desse modelo. A função objetivo é definida no campo Função Objetivo, através da função minimizar(·) que será minimizada pelo solver. O argumento utilizado nas funções indica o número da função objetivo. Dependendo do tipo de situação crítica tratada, a função objetivo poderá ser alterada como será descrito a seguir. No campo Sujeito a são adicionadas as restrições do modelo pelo comando adicionar(·). No campo Situação Crítica, estão as mudanças que devem ser acrescentadas ao modelo de forma a simular cada uma das respectivas falhas. Por exemplo, na falha do motor (Ψm), deve-se adicionar ao modelo as restrições (3.50) a (3.53). Por outro lado, a falha da bateria (Ψb) demanda a remoção da função objetivo (3.11), através do comando remover(·), e a inclusão da função objetivo (3.12) pelo comando minimizar(·). Por fim, o solver resolve o modelo PLIM e o método retorna a melhor rota de pouso emergencial.

Os experimentos serão realizados a partir de dois modelos. O primeiro modelo, chamado de PLIM1, considera o Algoritmo4usando a função objetivo (3.11). O segundo modelo, chamado de PLIM2, assume a função objetivo (3.12). Essa comparação permitirá estudar o comportamento das soluções ao se enfatizar a minimização do tempo gasto para realizar o pouso via função objetivo (3.12).

Os resultados computacionais descritos na próxima seção revelam que soluções exatas obtidas a partir do modelo de PLIM2 gastam em média entre 32 a 444 segundos, ou seja, alto custo computacional. Dependendo do tipo de aplicação, esse tempo de processamento para replanejamento de rota pode inviabilizar a realização do pouso emergencial. Por isso, será descrita uma abordagem que permite utilizar a solução exata, mas através do processamento prévio de um subconjunto de rotas alternativas para pouso.

A Figura20exemplifica um cenário no qual o VANT parte do ponto Início e executa sua missão que termina no ponto Fim (rota na cor verde). No momento do planejamento da rota principal, rotas emergenciais também são previamente calculadas. Para isso, a rota principal é subdividida em vários pontos-chave. Para cada ponto-chave, uma rota de pouso emergencial é calculada para cada possível situação crítica (rotas na cor vermelho). Essas rotas ficarão armazenadas na aeronave e, caso uma determinada falha ocorra, a aeronave passa a seguir os waypoints da rota de pouso emergencial mais próxima desse local. A Figura20ilustra como seriam os possíveis casos de rota de pouso para as situações críticas Ψm, Ψb, Ψs1 e Ψs2. É importante reparar que parte das rotas poderão levar o VANT até uma região bonificadora e outras rotas, no entanto, apenas conseguirão pousar na região remanescente.

Documentos relacionados