200 likes | 285 Views
População inicial - GAs e MAs. Aleatória ou com uma heurística de construção válido para GAs e MAs perturbação para gerar diferentes indivíduos. perturbação anterior nos dados de entrada da heurística -> construção de diferentes soluções. nos MAs Efeitos transitórios...
E N D
População inicial - GAs e MAs • Aleatória ou com uma heurística de construção • válido para GAs e MAs • perturbação para gerar diferentes indivíduos. • perturbação anterior nos dados de entrada da heurística -> construção de diferentes soluções. • nos MAs Efeitos transitórios... • Causa: ótimos locais dos processos de busca podem ser bons, mas muito “distantes” entre eles.
Estrutura da População • Idéia básica: Aproveitar o ‘isolamento por distância´ entre indivíduos para diminuir o problema de perda de diversidade. • Conceito importante: deriva genética (“random genetic drift”) migração Tarefa:veja o que acontece se num GA que você tenha já implementado para um problema X a função de fitness é constante para todo fenótipo...
Políticas de reprodução em MAs • Escolha dos pais totalmente aleatória. • Aleatória mais relacionada com o valor de fitness • Otimalidade de Pareto. • Crise de diversidade modifica a seleção. • quando há estrutura, migração pode ser uma boa alternativa (ver por exemplo os artigo de Martina Gorges-Schleuter, Mülhenbein, Markus Schwem).
Exemplo de uma estrutura de população solução pocket/fitness solução current/fitness • 13 agentes 2 cromossomos Pocket e Current. • para todo agente, pocket é sempre melhor que current. • agentes 2, 3, e 4 são a sua vez líderes e subordinados. • se pocket subordinado melhor que pocket do líder então troca de solução • pocket de 1 terá a melhor solução
Moscato - Tinetti (`92, MA para o TSP) solução pocket/fitness solução current/fitness • PocketPropagation() e um processo de migração. • Agentes usavam três diferentes heurísticas (2-opt, one-city insertion, etwo-city insertion). • Soluções modificavam-se ao subir na hierarquia • exemplo: agentes 10 -> 3 -> 1... • Transputers (necessidade e inspiração)
Recombinação com “personalidade” ou “behaviour”Berretta & Moscato, in “New Ideas in Optimization”, Corne, Glover, and Dorigo (eds.), McGraw-Hill, `99 • R e um operador de recombinação “parametrizado” conciliador : R(A [0 0 1 0 1] , B [1 0 1 1 0] ) -> [x 0 1 x x] -> yc rebelde : R(A [0 0 1 0 1], B [1 0 1 1 0] ) -> [1 x x 1 0] -> yr bajulador: R(A [0 0 1 0 1], B [1 0 1 1 0] ) -> [0 x x 0 1] -> yb Propriedade: d(yc,A) d(A,B) para tudo yc Notar que para yr = [1 1 0 1 0] d(yr,A) = 5, então em geral o comportamento “rebelde” e “bajulador” não satisfazem a propriedade acima. Em geral GAs só têm tipo conciliador -> perda de diversidade
Recombinação com “behaviours” para o TSP ? • R e um operador de recombinação “parametrizado” conciliador : input (A, B) -> [arcos em A B] -> yc rebelde : input (A,B) -> [arcos em B-A] -> yr bajulador: input (A,B) -> [arcos em A-B] -> yb Propriedade: d(yc,A) d(A,B) para tudo yc ainda é válida ? Caso 1: d(A,B) = n - |A B| onde ‘n´ é o número de cidades. Caso 2: d(A,B) = n - # de “corners comuns”
DPX para o TSP (Merz & Freisleben, `96) Objetivo: Recombinação que colabora com uma busca local poderosa (baseada no algoritmo de Lin-Kernighan) Problema: Mínimos locais do algoritmo de Lin-Kernighan têm muitas arestas semelhantes. Recombinações que não tenham em conta esse fato dão MAs com grandes perdas de diversidade (performance ruim). Solução: Proibir arestas em (A-B) (B-A) ! Incluir todas as arestas em (A B) Propriedade: d(y,A) = d(A,B) Resultado: Excelente! (com estruturas de dados adicionais)
Strategic Edge Crossover Introduzido por Norman & Moscato, ´92 baseado no Edge Recombination (Whitley, ´91) • Composto por quatro fases: • seleção de dois tours A e B para recombinação; • construção do EdgeMap; • geração das strings provenientes de arcos de A e B; • união destas para obter um novo tour factível. • Karp´s patching heuristic !!
CreateString e PatchString • Strings provenientes de arcos de A e B: geradas pelo procedimento chamado CreateString. • Algoritmo PatchString: factibiliza a rota.
MFNNRER (Holstein & Moscato, `98) MFNNRER = Multiple Fragment with Nearest Neighbour Repair Edge Recombination 1) Procure todas as arestas em S=A B e as inclua no filho 2) Ordenar as arestas em (A B) - S = (A-B) (B-A) em ordem crescente de comprimento (desempate aleatório). 3) Começando pela primeira da lista, tente colocá-las no filho considerando: a) nenhuma cidade deve ter três arestas incidentes nela. b) não deve ser formado um “subtour” 4) Rodar Nearest Neighbour tendo como “input” as cidades que só tem grau 0 ou 1 nas cadeias formados no passo 3.
Por que tantos tipos de recombinação ? Na verdade, todas os tipos de recombinações respondem a uma estratégia mais geral. 1) Procure algum tipo de semelhança entre as duas soluções A e B, chame de S=A B esse conjunto e o inclua no filho 2) Defina dois conjuntos S(in)e S(out) de características desejadas e não desejadas (eles podem ser vazios). 3) Restrito a observar a presença dos elementos de S, tente achar uma nova solução factível do problema que maximize (respectivamente, minimize) os elementos de S(in) (respectivamente, S(out)).
Por que tantos tipos de recombinação ? (continuação) Nos exemplos anteriores: MFNNRER foi usado no contexto de um MA com uma busca local muito simples(2-opt). SAX está sendo estudado num MA com uma busca local que é restrita a uma vizinhança do (3-opt). SAX e MFNNRER tentam priorizar as arestas presentes nas duas soluções pais. Fato: dois tours 2-opt tem em média 66 % de arestas comuns (“sede” de intensificação). DPX explicitamente proíbe as arestas que não estão na interseção (“sede” de diversidade pela busca local LK).
Novos problemas de otimização combinatória !! • A recombinação pode então ser vista como uma forma heurística de resolver aproximadamente um novo tipo de problemas de otimização combinatória !!! • THIRD (BETTER-THAN-WORST) HAMILTONIAN CYCLE Instância: Grafo G(V,E,W), e dois ciclos C1 e C2 em G, com C1C2, e sem perda de generalidade Long(C1) Long(C2).Pergunta: algum outro C´, ciclo hamiltoniano em G, com C´ C1 e Long(C´) < Long(C2) ? Complexidade computacional desconhecida !!! (NP-completo ?) Isto significa.... Temos emprego garantido ! (não só MAs ajudam a resolver problemas NP-hard... No mesmo processo ajudamos a criar novos !!)
Velhos conhecidos na otimização combinatória • É muito provável que a recombinação também possa fazer refletir sobre a relevância de “velhos conhecidos” problemas de otimização combinatória !!! • RESTRICTED HAMILTONIAN CYCLE (RHC) Instância: Grafo G(V,E) e um caminho Hamiltoniano P em G. Pergunta: algum ciclo hamiltoniano em G ? Complexidade computacional conhecida !!! É NP-completo... (veja Papadimitriou & Steiglitz, Combinatorial Optimization, Chapter 19, pp. 477-480). Isto significa.... Talvez exista alguma Karp-redução de RHC a nosso problema anterior que mostre que ele é NP-Completo.
MAs for Single Machine Scheduling (with set-up times and due dates) Mendes, França, Moscato • O Problema é definido como: • Input: n tarefas tem que ser processadas em uma máquina. p = {p1, ..., pn} ( vetor detempos de processamento para cada tarefa). d = {d1, ..., dn} (vetor dedatas de entrega ). • [Sij], n x n, matriz de inteiros, whereSijis the tempo de setup que a maquina precisa para começa a processar a tarefa j depois de ter completado a tarefa i. • Task: Achar a permutação do conjunto de tarefas que minimize a seguinte função-objetivo onde ck é o chamado “completion time” para a tarefa k.
Initialize population Pop Optimize Pop Evaluate Pop While not stop criterion do Select Parents from Pop Recombine Parents Optimize Pop Evaluate Pop Return the best solution in Pop Algoritmo Memético baseado em busca local
Algoritmo Memético para o SMS - Detalhes de implementação • Representação -> vetor de inteiros [1,...,n] (permutações) • Recombinação -> OX (Order Crossover) Pai A1327 8 6 945 Pai B 178456239 Filho inicial 7869 (Pai A) 17869 (Pai B) 147869 (Pai B) 1457869 (Pai B) 14578692 (Pai B) Filho final 145786923 (Pai B)
Algoritmo Memético para SMS - Detalhes de implementação • Mutação -> Troca de posição de tarefas • Exemplo 132786945136782945 Original Mutado • Função de Fitness onde Ti e o atraso total para a solução i na população.