MyGa : manual de utilização



Documentos relacionados
Complemento IV Introdução aos Algoritmos Genéticos

Algoritmos Genéticos (GA s)

Como já foi dito anteriormente o Excel possui recursos que permitem alterar a aparência de nossas planilhas.

Manual Administrador - Mídia System

02 - Usando o SiteMaster - Informações importantes

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão Atualização 26/01/2009 Depto de TI - FASUL Página 1

APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

PASSO A PASSO GOOGLE DOCS - FORMULÁRIOS GOOGLE DOCS

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Cálculo utilizando variáveis do tipo DATA

E&L Protocolo, Documentos Eletrônicos e Processos Perguntas Frequentes

RESTAURAÇÃO NO WINDOWS 8

Processos e Threads (partes I e II)

Portal Sindical. Manual Operacional Empresas/Escritórios

Capítulo 5. ARQUIVOS E FUNÇÕES MATEMÁTICAS INTRÍNSECAS

Algoritmos Genéticos

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

Manual de Utilização do PLONE (Gerenciador de página pessoal)

NOVO ASSINADOR DO PROJUDI

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Menu Utilitários. Atualização do Banco de Dados Atualização e organização dos arquivos existentes

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

MANUAL DO USUÁRIO. TOOLBOX SIA.

Aula 3 - Registro de Imagem

Manual do Google agenda. criação e compartilhamento de agendas

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

Utilização do SOLVER do EXCEL

Configurações de Templates no SolidWorks 2011

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

Figura 1 - Tela de configuração do Questionário.

IBM SPSS Modeler - Princípios Básicos do R: Instruções de Instalação

MANUAL DE INSTRUÇÕES. Versão 1.0. Visão Transportador

Capture Pro Software. Introdução. A-61640_pt-br

Guia Site Empresarial

Algoritmos e Programação Estruturada

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

Dicas para usar melhor o Word 2007

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE: SÃO CAETANO DO SUL - SP - CEP

Para a escolha de uma unidade para o backup de dados, deve-se levar em conta :

Como gerar arquivos para Sphinx Operador

Introdução ao Matlab. 1 Algumas regras e comandos do Matlab. 3 de março de Docente Responsável : Prof. Dr. Antônio C. Roque

Considerações sobre o Disaster Recovery

Manual do Blogilo. Mehrdad Momeny Tradução: Marcus Gama

Manual de configuração do sistema

1ª PARTE DIÁRIOS ELETRÔNICOS

ISO/IEC 12207: Gerência de Configuração

2. A FERRAMENTA SOLVER (EXCEL)

a 1 x a n x n = b,

Guia do usuário para utilização do sistema WCRC3 Central de Informações do Registro Civil da Arpen SP Gravação e envio dos registros

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Internet Update de PaintManager TM. Manual de instalação e utilização do programa de actualização

Manual de operação. BS Ponto Versão 5.1

ED 2180/ maio 2014 Original: espanhol. Pesquisa sobre os custos de transação dos produtores de café

W o r d p r e s s 1- TELA DE LOGIN

MANUAL DE UTILIZAÇÃO - VISÃO DE EMPRESAS. Todos os direitos reservados à Softbox

428 Capítulo 7 Arrays. do { ExibeArrayInts(ar, n); /* Exibe a configuração */ /* corrente do array */ } while (ProximaPermutacao(ar, n));

Manual do Sistema "Fala Comigo - Sistema de Atendimento On-Line" Editorial Brazil Informatica

CERTIFICADO DIGITAL CONECTIVIDADE DIGITAL ICP GUIA PLANCON DE INSTRUÇÕES PARA INSTALAR SEU TOKEN, PENDRIVE OU LEITOR DE CARTÕES

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

Manual AGENDA DE BACKUP

AULA 06 CRIAÇÃO DE USUÁRIOS

MANUAL DE NAVEGAÇÃO DO MILLENNIUM BUSINESS

CADASTRAMENTO ÚNICO VERSÃO 7.3 INCLUSÃO E MANUTENÇÃO DE USUÁRIOS

MANUAL ZEDIT 32 Índice:

SENHA PARA DISTRIBUIDORES

1. TSA Inovação - TSA DT_Arquivo_de_Log_do_Integrador_Separado_por_Thread DT_Central_de_Ajuda_UX9...

02. O software ainda permite instalar a barra de ferramentas do Google como recurso extra. Faça a escolha desejada e continue a instalação.

Análise de Dados do Financeiro

Backup dos Trabalhos e Configurações

Iniciação à Informática

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Introdução. Servidor de Tempo (SNTP) com opção de horário de verão automático; 1 Cadastro do novo modelo de equipamento Urano Topmax SS

Manual HPSim. 1 Introdução. 2 Instalação do Programa

Arquitetura de Rede de Computadores

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

WF Processos. Manual de Instruções

Inventario de produtos

Manual do Usuário. Minha Biblioteca

Manual do Almoxarifado SIGA-ADM

SISTEMA DE PRODUTOS E SERVIÇOS CERTIFICADOS. MÓDULO DO CERTIFICADOR MANUAL DE OPERAÇÃO Versão 2.4.6

Boletim Eletrônico de Recolhimento Manual do Sistema. Boletim Eletrônico de Recolhimento. Manual do Sistema

HRC Regras de Valorização x. abril de Versão: 2.0

Programação online em Java

GUIA INTEGRA SERVICES E STATUS MONITOR

ÍNDICE... 2 INTRODUÇÃO... 4

Guia Sphinx: instalação, reposição e renovação

Verificação de Impressões Digitais usando Algoritmos Genéticos

Guia Prático. PGRural. Adendo Livro Caixa Avançado

LIBERAÇÃO DA PASTA ARQUIVOS DE PROGRAMA

MELHORAMENTO DE PLANTAS AUTÓGAMAS POR HIBRIDAÇÃO

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Transcrição:

MyGa : manual de utilização Adel BEN HAJ YEDDER. 19 de Novembro de 2002 Tradução do francês para o português por: Dr. Adriano Pinto Mariano Dra. Caliane Bastos Borba Costa Laboratório de Otimização, Projeto e Controle Avançado (LOPCA) Responsável: Prof. Dr. Rubens Maciel Filho Faculdade de Engenharia Química (FEQ) Universidade Estadual de Campinas (UNICAMP) (Brasil) 01 de Julho de 2008 1. Introdução Este programa é uma implementação de um algoritmo genético em código real escrito em Fortran. Os tipos de operadores desenvolvidos são bastante limitados e somente alguns operadores conhecidos por sua eficiência foram incorporados. O objetivo desse programa, quando foi desenvolvido, era de ter um algoritmo genético em Fortran de fácil utilização e eficiente para o problema para o qual ele foi escrito. O programa é distribuído a fim de fornecer aos programadores em Fortran uma ferramenta para testar e/ou utilizar uma otimização com algoritmos genéticos em seus próprios problemas. Este programa é fornecido sem qualquer garantia nem qualquer suporte além desse documento. Se você o utiliza, você é o ÚNICO responsável por sua utilização e em particular pelos resultados que ele gere e por aquilo que você faz em seguida. 2. Instalação Sistema operacional: O programa foi escrito e testado para Linux. Entretanto, deve funcionar em outros sistemas do tipo *N*X dependendo de pequenas modificações. Compilador: O programa está escrito em Fortran 77. Você deve então utilizar um compilador compatível com o Fortran 77. Para definir o compilador, edite o arquivo Makefile e modifique a primeira linha. O compilador padrão (default) é g77. 1

Extração de arquivos e compilação: Digite as seguintes linhas de comando: 3. Utilização > gunzip MyGa_1.0.tar.gz > tar xvf MyGa_1.0.tar > cd MyGa_1.0 > make A otimização no MyGa é feita minimizando-se uma função f(x) calculada em func.f com x um vetor de dimensão dimx definido em parameter.inc. 3.1 Exemplos O arquivo func.f fornecido contém 5 exemplos de funções testes. O primeiro exemplo é o da função esfera com dimensão dimx = 10. Para testar este exemplo digite: > make > Myga A evolução da melhor solução ao longo das gerações é ao mesmo tempo exibida na tela e salva nos arquivos bestfx.dat (o valor da função) e bestx.dat. O arquivo resultat.dat contém o resultado final obtido. Para os testes com outros exemplos é preciso editar o arquivo func.f e outro exemplo é escolhido mudando-se a linha goto 10 para goto num onde num {10, 20, 30, 40, 50}. Edite em seguida o arquivo parameter.inc para escolher a dimensão dimx em função do caso escolhido. Você pode deixar a dimensão inalterada, salvo para o caso num = 40 onde a dimensão deve ser igual a 2. Então edite o arquivo param.dat mudando as duas linhas: xmin=10*-1.d1, xmax=10*1.d1, para fornecer os limites com os quais se efetuará a busca. Troque 10 pelo valor de dimx nas duas linhas e troque -1.D1 e 1.D1 respectivamente para o limite inferior e superior dos intervalos de busca. Recompile e reinicie o programa. De maneira geral para se efetuar uma busca em: E = [xmin 1, xmax 1 ] x x [xmin dimx, xmax dimx ] os limites devem ser escritos da seguinte maneira: xmin= xmin 1,, xmin dimx, xmax= xmax 1,, xmax dimx, 2

3.2 Utilização simplificada Para utilizar rapidamente MyGa para minimizar uma outra função proceda da seguinte maneira: 1. Mude no arquivo parameter.inc a dimensão do espaço de busca dimx. O valor deve ser o número de parâmetros a serem otimizados. 2. Escreva no arquivo func.f sua função a minimizar. Esta função deve receber um vetor x de dimensão dimx e retornar o valor da função fx. Se sua função corresponde a um programa que você utiliza com suas próprias notações e nomes de variáveis, o melhor é guardar suas variáveis a serem otimizadas no vetor x. Assim, você mantém os nomes de suas variáveis e a rotina func.f só vê o vetor x e o valor fx. Da mesma maneira, se você tem que transferir parâmetros para a sua função ou fazer inicializações, você deve fazer estas operações sem modificar a estrutura da rotina func.f. 3. Mude no arquivo param.dat os limites do espaço de busca como indicado na seção 3.1. 4. Compile com make e execute o programa. 3.3 Utilização avançada Depois de realizadas as etapas da seção 3.2, essa seção detalha os arquivos parameter.inc e param.dat. 3.3.1 O arquivo parameter.inc Nesse arquivo há 4 parâmetros a serem determinados: popsize: o tamanho da população de cada geração. Este programa apresentou melhores performances com um tamanho igual a 10. dimx: a dimensão do espaço de busca. genemax: o número máximo de gerações antes que o programa seja finalizado. genemaxmut: é um parâmetro que determina o decrescimento da força de mutação do tipo nonun2 definida na seção 3.3.2. Este parâmetro dever ser genemaxmut genemax. Para um decréscimo mais lento da força de mutação experimente genemaxmut=1.5* genemax, por exemplo. 3.3.2 O arquivo param.dat Exibição na tela: o parâmetro affichecran pode assumir os valores 0, 1, 2 e 3. Para cada nível informações suplementares são adicionadas. 3

- 0 : nenhuma exibição na tela. - 1 : exibição da última geração e da melhor solução. - 2 : exibe-se o valor da melhor solução encontrada em cada geração. - 3 : a geração inicial é exibida. Salvar: o parâmetro savefich pode assumir os valores 0, 1 e 2. - 0: nenhuma gravação. Essa não é uma alternativa interessante se você, além disso, utilizar affichecran=0! - 1: a melhor solução é salva (arquivo resultat.dat) e o estado dos cálculos (arquivo restart.dat) também é salvo para uma retomada eventual dos cálculos. - 2: salva a melhor solução a cada geração (arquivo bestx.dat) e o valor da função correspondente (arquivo bestfx.dat). Testes de parada: dois tipos de testes de parada são possíveis. Quando você quiser fazer testes de parada o programa pode parar quando a solução (solx) é alcançada ou quando o valor mínimo de f (solfx) é atingindo. No geral o programa pára quando o número de iterações máximo (restartfin) é atingido. - Solução alcançada: coloque o parâmetro typeconv= solx,, solx=x 1,,x dimx, e eps=ε, onde (x 1,,x dimx ) são as coordenadas da solução e ε define a precisão. - Valor mínimo alcançado: coloque o parâmetro typeconv= solfx,, solfx=minimum, e eps=ε, onde minimum é o valor do mínimo da função f. - caso geral: coloque o parâmetro typeconv=, e restartfin=iterfin, onde iterfin é a geração na qual o programa deve parar e deve ser iterfin genemax. Mais precisamente restartini=iterdebut, e restartfin=iterfin, definem a geração do começo e a geração do fim do programa. Para um primeiro cálculo deve-se ter restartini=1,. Nesse caso a população inicial é gerada aleatoriamente no espaço de busca E = [xmin 1, xmax 1 ] x x [xmin dimx, xmax dimx ]. Para recuperar um antigo cálculo de uma geração gen 1 < genemax utilize restartini=gen 1, e restartfin=iterfin, com gen 1 iterfin genemax. Nesse caso o cálculo será retomado com a população que será relida no arquivo restart.dat criado a partir do primeiro cálculo. Nota-se que um cálculo feito em dois tempos não é sempre o mesmo que um cálculo feito em uma única etapa visto que o arquivo restart.dat contém unicamente a população a qual o cálculo deve retomar, mas não contém outras informações. Este detalhe não tem muita importância salvo nos casos onde são feitos testes de performance ou onde se busca a reprodução perfeita de um cálculo antigo. Inicialização da população: A população inicial é gerada aleatoriamente no caso geral. Quando o parâmetro initpop=m, com 0<m dimx, o programa vai ler m indivíduos no arquivo initx.dat que vão substituir m indivíduos da população aleatória. Nesse caso você deve introduzir estes m indivíduos no arquivo initx.dat com uma coordenada por linha. Isto pode ser útil se você introduzir indivíduos que lhe pareçam próximos da solução. Mas 4

atenção à convergência prematura que pode ser provocada por um indivíduo muito bom (aquele que você adicionou) em relação aos outros. Espaço de busca: Como indicado na seção 3.1, o espaço de busca é definido pelos limites xmin= xmin 1,, xmin dimx, e xmax= xmax 1,, xmax dimx,. O programa não leva em conta qualquer outro tipo de restrição. Uma maneira simples de levar em conta outras restrições é de penalizar fortemente uma violação de restrição na função de custo f. Não é a melhor maneira de levar em conta as restrições, mas na falta de outra alternativa melhor, é uma maneira que funciona em muitos casos com restrições simples. Cruzamento: Os parâmetros que correspondem ao operador cruzamento são pc, typec, alpha, nbmultip e tm. A probabilidade de se aplicar um cruzamento entre cromossomos é dada por pc. Quatro tipos de cruzamento são possíveis: - typec= bary, : cruzamento baricêntrico com o parâmetro alpha=α, definindo os pesos α e (1- α). - typec= baryal, : cruzamento baricêntrico onde o coeficiente α é escolhido aleatorimente no intervalo [0,1]. - typec= multip, : cruzamento multipontos com o número de pontos de corte dado por nbmultip=m, onde m é um inteiro 0<m<dimx. - typec= sbx, : cruzamento dito SBX com o parâmetro alpha= α, definindo a forma da lei de probabilidade utilizada. Tome α = 1 ou 2 por exemplo. No caso onde os dois pais são muito próximos, a probabilidade de mutação do filho (ver o item sobre a mutação abaixo) é aumentada e torna-se igual à tm. O objetivo é de provocar mutação nas duas crianças geradas que se pareçam muito com seus pais. Mutação: Os parâmetros deste operador são: pm, typem, b, nbstag e kb. A probabilidade de aplicar uma mutação a um indivíduo é dada por pm. Três tipos de mutação são possíveis: - typem= varnor, : mutação gaussiana com um desvio tipo σ que decresce em direção a zero com o curso das gerações. - typem= nonuni, : mutação não uniforme (ver [ref. 1, (Seção 1.3.2.4)] e [ref. 3] para a definição dessa mutação) Esta mutação é definida pelo parâmetro b. Um pequeno valor de b (~1) favorece a exploração e um valor elevado acelera a busca local. - typem= nonun2, : é uma variação da mutação não uniforme que frequentemente dá os melhores resultados. Escapar dos mínimos locais: no caso das mutações do tipo nonuni e nonun2, os parâmetros nbstag e kb permitem a saída de alguns mínimos locais nos quais o programa pode se encontrar aprisionado. De fato, se nenhuma melhora na melhor solução é conseguida após nbstag gerações, o valor do parâmetro b torna-se, naquela 5

geração, kb*b com kb< 1. Isto tem como efeito o aumento da força de mutação e favorece a exploração no espaço de busca. Busca local: definida pelos parâmetros RafLoc e nbtot. Este procedimento é pouco eficaz e resulta frequentemente numa convergência prematura. Para evitar, deixe RafLoc= N0rafloc,. Seleção: dois tipos de seleção são possíveis. - types= roulet, : seleção por roleta. - types= rs, : seleção por roleta estocástica. Elitismo: ativado se elit=1, e desativado se elit=0,. O elitismo consiste em assegurar que não haja decréscimo da melhor solução a cada geração. Na prática, se para uma dada geração n nenhum indivíduo é melhor que a solução da geração anterior n-1, o melhor indivíduo da geração n-1 é transferido para a geração n. Nichos (Niching): esta técnica permite favorecer a exploração espacial penalizando os indivíduos que se encontram na mesma região do espaço. Os parâmetros são niche, q, sigmaniche e alphaniche. Ver [ref. 3] pra os detalhes dessa técnica. - niche=1, : para ativar esta técnica e 0 para desativá-la. - q=p, : para utilizar a norma p no cálculo da distância. - sigmaniche=σ, : deve ser < 1. - alphaniche= α, : para determinar a intensidade do nicho. Com α pequeno (α <1) o nicho é pouco intenso e com α grande o nicho é bastante intenso. Escalonamento: ver [ref. 1, (Seção 1.3.2.4)] e [ref. 2] para os detalhes. Os parâmetros são scaling, scal, scalingvar, scalvar1, scalvar2 e scalvarp. Os dois primeiros parâmetros para o primeiro escalonamento (5 possibilidades) e os quatro últimos para um segundo escalonamento variável (facultativo) em função do tempo (5 possibilidades). O escalonamento que deu os melhores resultados é o σ-scaling que é escolhido por scaling= sigma,. Os outros escalonamentos possíveis são exp (em e x ), xexp (em xe x ), log (em log(1+x)) e puiss (em x scal ). Estes mesmos escalonamentos são adaptados para o escalonamento variável. 4. Comentários Inicialização do gerador de números aleatórios: atualmente o gerador de números aleatórios é inicializado sempre da mesma maneira. Como conseqüência, duas execuções sucessivas do programa produzem o mesmo resultado. Para inicializar o gerador de outra maneira, edite o arquivo MyGa.f e mude no começo do programa a linha irandom=-1 para irandom=time(). 6

Referências [1] A. Ben Haj Yedder. Optimisation numérique et Contrôle optimal : (applications en chimie moléculaire). PhD thesis, Ecole Nationale des Ponts et Chaussées, 2002. [2] Z. Michalewicz. Genetic algorithms + data structure = evolution programs. Springer, 1999. [3] Mourad Sefrioui. Algorithmes Evolutionnaires pour le calcul scientifique. Application la mécanique des fluides et l électromagnetisme. PhD thesis, Université Pierre et Marie Curie, 1998. 7