Algoritmos Genéticos em Ambientes Paralelos
|
|
|
- Rui Brás Monteiro
- 9 Há anos
- Visualizações:
Transcrição
1 Algoritmos Genéticos em Ambientes Paralelos Michele Alves de Freitas Batista Instituto Nacional de Pesquisas Espaciais Lamartine Nogueira Frutuoso Guimarães Instituto Nacional de Pesquisas Espaciais Resumo Este trabalho tem por objetivo estudar os conceitos de processamento paralelo e a técnica de Message Passing (Troca de Mensagens) aplicado a um algoritmo genético híbrido para encontrar estados estacionários de sistemas dinâmicos. O desenvolvimento de uma ferramenta computacional em ambiente paralelo visa aumentar o desempenho do processamento de cálculos paralelos realizados em múltiplos processadores. Palavras-chave: algoritmos genéticos, MPI, paralelismo, sistemas dinâmicos. 1. Introdução Os Algoritmos Genéticos representam, atualmente, uma poderosa ferramenta para busca de soluções de problemas complexos de otimização. Essa foi a solução encontrada na dissertação de Felipe Medeiros Algoritmo genético híbrido como um método de busca de estados estacionários de sistemas dinâmicos, em que um algoritmo genético é utilizado para encontrar estados estacionários de sistemas. Assim, um sistema dinâmico representado através de sistemas de equações não-lineares, permite a busca do novo estado estacionário, pela evolução da equação no tempo até que todas as variáveis de estado da solução apresentem um comportamento estacionário. Essa maneira é custosa do ponto de vista computacional. Na dissertação de Medeiros este método foi utilizado aplicado a modelos de geradores de vapor. No caso estes modelos possuíam respectivamente três, cinco, nove e dezesseis variáveis de estado. Naquele trabalho ficou claro que um grande benefício poderia ser acrescentado à ferramenta caso esta fosse desenvolvida em um ambiente de computação de alto desempenho (para cálculos paralelos realizados em múltiplos processadores). O processamento paralelo aumenta o desempenho da ferramenta computacional, reduzindo o tempo de processamento, através da decomposição de uma grande tarefa em tarefas menores. Um ambiente paralelo é definido por vários processsadores interligados em rede e modelos de programação paralela. Para este desenvolvimento se irá utilizar o sistema de computadores Beowulf de processamento paralelo de alto desempenho. Este sistema de computadores faz parte do Laboratório de Engenharia Virtual (LEV), das Divisões de Energia Nuclear (ENU) e Física Aplicada (EFA) do Instituto de Estudos Avançados (IEAv) do Centro Técnico Aeroespacial (CTA) localizado em São José dos Campos, SP. O modelo de programação paralela selecionado foi o Message Passing e a biblioteca Message Passing Interface (MPI). Na seção 2 é apresentada a definição de Algoritmos Genéticos (AGs) e explicitado como é feita implementação, mostrando as principais etapas do funcionamento, resssaltando os conceitos dos operadores genéticos crossover e mutação. Na seção 3 é feita uma apresentação dos sistemas dinâmicos mostrando sua representação através de sistemas de equações diferenciais ordinárias não-lineares. Na seção 4 são descritos os conceitos de paralelismo e a técnica Message Passing. Na seção 5 é detalhada a metodologia que será aplicada para a realização desse trabalho. A seção 6 apresenta as referências bibliográficas e os sites relacionados às principais áreas de interesse. 2. Algoritmos genéticos (AGs) Os Algoritmos Genéticos formam a parte da área dos Sistemas Inspirados na Natureza; simulando os processos naturais e aplicando-os à solução de problemas reais. São métodos generalizados de busca e otimização que simulam os processos naturais de evolução, aplicando a idéia darwiniana de seleção. São José dos Campos SP 1 INPE
2 De acordo com a aptidão e a combinação com outros operadores genéticos, são produzidos métodos de grande robustez e aplicabilidade. Estes algoritmos estão baseados nos processos genéticos dos organismos biológicos, codificando uma possível solução a um problema de "cromossomo" composto por cadeia de bits e caracteres. Estes cromossomos representam indivíduos que são levados ao longo de várias gerações, na forma similar aos problemas naturais, evoluindo de acordo com os princípios de seleção natural e sobrevivência dos mais aptos, descritos pela primeira vez por Charles Darwin em seu livro "Origem das Espécies". Emulando estes processos, os Algoritmos Genéticos são capazes de "evoluir" soluções de problemas do mundo real Implementação de um algoritmo genético A implementação de um algoritmo genético começa com uma população aleatória de cromossomos. Essas estruturas são, então, avaliadas e associadas a uma probabilidade de reprodução de tal forma que as maiores probabilidades são associadas aos cromossomos que representam uma melhor solução para o problema de otimização do que àqueles que representam uma solução pior. A função-objetivo de um problema de otimização é construída a partir dos parâmetros envolvidos no problema. Ela fornece uma medida da proximidade da solução em relação a um conjunto de parâmetros. Os parâmetros podem ser conflitantes, ou seja, quando um aumenta o outro diminui. O objetivo é encontrar o ponto ótimo. A função objetivo permite o cálculo da aptidão bruta de cada indivíduo, que fornecerá o valor a ser usado para o cálculo de sua probabilidade de ser selecionado para reprodução. As etapas do funcionamento de um AG podem ser descritas da seguinte forma: 1ª. Gera-se a população inicial de programas de forma aleatória; 2ª Avaliação dos indivíduos (função de aptidão); 3ª. Com base nos valores de aptidão, programas sofrem ação de operadores genéticos: reprodução, cruzamento, mutação; 4ª. O processo é repetido até que se obtenha indivíduos com aptidão satisfatória ou por um número pré-definido de iterações. Figura 1. Estrutura de um AG Para a inicialização, uma população de n indivíduos é gerada aleatoriamente. Cada um dos indivíduos da população representa uma possível solução para o problema, ou seja, um ponto no espaço de soluções. Geralmente a aptidão do indivíduo é determinada através do cálculo da função objetivo, que depende das especificações de projeto. Ainda nesta fase os indivíduos são ordenados conforme a sua aptidão. Na seleção, os indivíduos mais aptos da geração atual são selecionados. Esses indivíduos são utilizados para gerar uma nova população por cruzamento. Cada indivíduo tem uma probabilidade de ser selecionado proporcional à sua aptidão. O operador de crossover ou recombinação cria novos indivíduos através da combinação de dois ou mais indivíduos. A idéia intuitiva por trás do operador de crossover é a troca de informação entre diferentes soluções candidatas. No algoritmo genético clássico é atribuída uma probabilidade de crossover fixa aos indivíduos da população. O operador de crossover mais comumente empregado é o crossover de um ponto. Para a aplicação deste operador, são selecionados dois indivíduos (pais) e a partir de seus cromossomos são gerados dois novos indivíduos (filhos). Para gerar os filhos, seleciona-se um mesmo ponto de corte aleatoriamente nos cromossomos dos pais, e os segmentos de cromossomo criados a partir do ponto de corte são trocados. Considere, por exemplo, dois indivíduos selecionados como pais a partir da população inicial de um algoritmo genético e suponhamos que o ponto de corte escolhido (aleatoriamente) encontra-se entre as posições 4 e 5 dos cromossomos dos pais: São José dos Campos SP 2 INPE
3 PAI #1: PAI #2: Após o crossover, teremos os seguintes indivíduos-filho: FILHO #1: FILHO #2: O operador de mutação modifica aleatoriamente um ou mais genes de um cromossomo. A probabilidade de ocorrência de mutação em um gene é denominada taxa de mutação. Usualmente, são atribuídos valores pequenos para a taxa de mutação. A idéia intuitiva por trás do operador de mutação é criar uma variabilidade extra na população, mas sem destruir o progresso já obtido com a busca. Considerando codificação binária, o operador de mutação padrão simplesmente troca o valor de um gene em um cromossomo. Assim, se um gene selecionado para mutação tem valor 1, o seu valor passará a ser 0 após a aplicação da mutação, e viceversa. PAI: FILHO: Sistemas Dinâmicos Em geral, os sistemas dinâmicos podem ser representados através de sistemas de equações diferenciais ordinárias não-lineares escritas da seguinte forma: dy = A y b. (1) dt Onde y é o vetor que contém as variáveis de estado, A é a matriz de estado e b é o vetor de entradas. Estados estacionários são necessários para se estudar a evolução dinâmica do sistema dada uma perturbação introduzida pelo vetor b, uma vez que os mesmos são utilizados como condições iniciais do processo de evolução dinâmica. Uma forma, óbvia, de obtenção destes estados é resolver dy o sistema acima na condição = 0. Desta forma dt a equação (1) pode ser resolvida de forma analítica da seguinte maneira A y = b. (2) De tal forma que y = A 1 b. Infelizmente, a forma analítica não é eficiente e na maioria dos casos de interesse a solução numérica é a mais indicada. Simuladores de sistemas dinâmicos trabalham exatamente com a equação (1). Nestes dispositivos muitas vezes é necessário alterar-se valores de parâmetros dentro da matriz de estado A. Isto significa dizer que um novo estado estacionário deve ser calculado. De outra forma, muitas vezes parâmetros internos da matriz de estados se altera devido ao próprio uso do sistema. É o caso, por exemplo, dos coeficientes de transferência de calor quando se trata de sistemas do tipo geradores de vapor, caldeiras, trocadores de calor, núcleo de reatores, entre outros. A maneira numérica como se encontra o novo estado estacionário é simplesmente deixar (numericamente) a equação (1) evoluir no tempo até o momento em que todas as variáveis de estado da solução apresentem um comportamento estacionário. 4. Processamento Paralelo O processamento paralelo é usado em problema computacionais grandes e complexos para obter resultados mais rápidos, dividindo-os em tarefas pequenas que serão distribuídas em vários processadores para serem executadas simultaneamente. Esses processadores se comunicam entre si para que haja coordenação (sincronização) na execução das diversas tarefas em paralelo. [1] Figura 2. Paralelismo [1] Como ocorre uma redução no tempo de processamento, o desempenho aumenta. Em ferramentas não automáticas, o programador é diretamente responsável pelo paralelismo. Um fator que merece atenção na programação paralela é a sincronização entre os processos. As tarefas executadas em paralelo, num determinado instante, aguardam a finalização mútua para coordenar os resultados ou trocar dados e reiniciar novas tarefas em paralelo. É necessário que haja a coordenação dos processos e da comunicação entre eles para evitar São José dos Campos SP 3 INPE
4 que a comunicação seja maior do que o processamento e que consequentemente haja uma queda no desempenho dos processos em execução. [1] A granularidade é uma medida usada para indicar a relação entre o tamanho de cada tarefa e o tamanho total do programa, ou seja, é a razão entre computação e comunicação. Quanto mais grossa é a granularidade, maior é o tamanho da tarefa dividida. Na granularidade fina, o processamento é menor do que a comunicação e há uma tendência a diminuir o desempenho do programa, enquanto na granularidade grossa, o processamento é maior do que a comunicação e há menor custo no processamento. Este é o modelo mais recente, que se utiliza do conceito de objetos distribuídos por uma rede (como a Internet), capazes de serem acessados por métodos (funções) em diferentes processadores para uma determinada finalidade Tipos de paralelismo Paralelismo de dados O processador executa as mesmas instruções sobre dados diferentes. É aplicado, por exemplo, em programas que utilizam matrizes imensas e para cálculos de elementos finitos. Os dados são decompostos. Figura 3. Palelismo de dados [1] Paralelismo funcional O processador executa instruções diferentes que podem ou não operar sobre o mesmo conjunto de dados. É aplicado em programas dinâmicos e modulares onde cada tarefa será um programa diferente. O algoritmo é decomposto Message Passing Figura 5. Palelismo de objetos [1] O modelo de Troca de Mensagens (Message Passing) é um conjunto de processos que possuem acesso a memória local. As informações são enviadas da memória local do processo para a memória local do processo remoto. A comunicação dos processos é baseada no envio e recebimento de mensagens. A grande vantagem do Message Passing é que se pode construir um mecanismo de passagem de mensagens para qualquer linguagem, como biblioteca. Outro fator importante, e para este trabalho, fundamental, é a adequação à ambientes distribuídos. Um fator inconveniente é que o programador é diretamente responsável pela paralelização. As duas principais bibliotecas de Message Passing da atualidade são PVM e MPI PVM (Parallel Virtual Machine) Possui como característica, o conceito de "máquina virtual paralela", dentro da qual processadores recebem e enviam mensagens, com finalidades de obter um processamento global MPI (Message Passing Interface) Figura 4. Palelismo funcional [1] Paralelismo de objetos É um padrão de troca de mensagens, para facilitar o desenvolvimento de aplicações paralelas e de bibliotecas. Tem como características: eficiência, facilidade, portabilidade, transparência, segurança e escalabilidade. O MPI está se tornando um padrão na indústria. MPI é uma biblioteca de Message Passing desenvolvida para ambientes de memória São José dos Campos SP 4 INPE
5 distribuída, máquinas paralelas massivas, NOWs (network of workstations) e redes heterogêneas. MPI define um conjunto de rotinas para facilitar a comunicação (troca de dados e sincronização) entre processos paralelos. A biblioteca MPI é portável para qualquer arquitetura, tem aproximadamente 125 funções para programação e ferramentas para se analisar a performance. A biblioteca MPI possui rotinas para programas em Fortran 77 e ANSI C, portanto pode ser usada também para Fortran 90 e C++. Os programas são compilados e linkados a biblioteca MPI. Todo paralelismo é explícito, ou seja, o programador é responsável por identificar o paralelismo e implementar o algoritmo utilizando chamadas aos comandos da biblioteca MPI. [1] 5. Metodologia A implementação do algoritmo genético híbrido para resolver o problema de determinação de estados estacionários de sistemas dinâmicos não lineares foi realizada na dissertação intitulada Algoritmo Genético Híbrido como um método de busca de estados estacionários de sistemas dinâmicos, de Felipe Leonardo Lôbo Medeiros. O primeiro passo foi a familiarização com o algoritmo genético. Como este foi implementado em na ferramenta C++ (windows), tornou-se necessária a migração do programa para compilação em g++ (linux). Foi necessário estudar as bibliotecas (stdlib.h, conio.h, dos.h) e a substituição de algumas funções (ex.: random(n), c++ por rand()%n, g++). No momento estão sendo feitas análises detalhadas das alterações. A próxima etapa corresponde à programação paralela. Após análise do algoritmo e dos dados obtidos, é necessária a decomposição do algoritmo (paralelismo funcional) e/ou decomposição dos dados (paralelismo de dados). Através da biblioteca MPI será possível distribuir as tarefas e/ou dados entre vários processadores que trabalharam simultaneamente e coordenar os processos em execução e a comunicação entre os processadores (sincronização). Figura 6. Distribuição de dados e/ou tarefas [1] 6. Referências [1] Apostila Curso de MPI dado pelo CENAPAD/NE. [2] Man, K. F. & Tang, K. S. & Kwong, S. Genetic Algorithms, Springer, [3] Medeiros, Felipe L. L., Algoritmo Genético Híbrido como um Método de Busca de Estados Estacionários de Sistemas Dinâmicos, Dissertação defendida em 2002, INPE. [4] Mitchell, M. Introduction to Genetic Algorithms, Mit Press, Sites relacionados Algoritmos genéticos introducao_algoritmos_geneticos.pdf; genetic.html; /ia/ag_aplica.html; visualizar.htm sisapr/pg.html PGII.ppt webpapers/gepport.pdf cientificos/chameleon_uma_ferramenta_de_progra macao_genetica_orientada_a_gramaticas.pdf node18.html visualizar2.htm Sistemas dinâmicos df Paralelismo São José dos Campos SP 5 INPE
6 d2004b.pdf tml m São José dos Campos SP 6 INPE
3 Algoritmos Genéticos
Técnicas de Inteligência Computacional 33 3 Algoritmos Genéticos Este capítulo resume os principais conceitos sobre o algoritmo evolucionário empregado nesta dissertação. É apresentada uma breve explicação
INTELIGÊNCIA COMPUTACIONAL EM AMBIENTES DE PROCESSAMENTO PARALELO. Lamartine N. F. Guimarães.
INTELIGÊNCIA COMPUTACIONAL EM AMBIENTES DE PROCESSAMENTO PARALELO Lamartine N. F. Guimarães. Roteiro Inteligência Computacional: Problemas. Os BEOWULFS do IEAv. Possibilidades de Paralelismo. Redes neurais:
Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução
Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação Inteligência Artificial Algoritmos Genéticos Aula I Introdução Roteiro Introdução Computação Evolutiva Algoritmos
AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação PROGRAMAÇÃO PARALELA
3. Resolução de problemas por meio de busca
Inteligência Artificial - IBM1024 3. Resolução de problemas por meio de busca Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Resolução de problemas por
Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP
Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP 1 Principais Tópicos Introdução Evolução Natural Algoritmos Genéticos Aplicações Conclusão 2 Introdução http://www.formula-um.com/ Como
Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural
Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP Principais Tópicos Introdução Evolução Natural Algoritmos Genéticos Aplicações Conclusão 1 2 Introdução Evolução natural http://www.formula-um.com/
Metahuerísticas: Algoritmos Genéticos. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.
Metahuerísticas: Algoritmos Genéticos Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 8) Meta-heurísticas Classificação de métodos heurísticos: os métodos
Programação de Alto Desempenho - 2. Prof: Carla Osthoff
Programação de Alto Desempenho - 2 Prof: Carla Osthoff E-mail: [email protected] 3- Modelos de programação paralela Shared Memory/Threads Posix Win32 treads OpenMP Message Passing MPI Data Parallel OpenCL/Cuda
Algoritmos Genéticos
Algoritmos Genéticos Introdução Um Algoritmo Genético (AG), conceitualmente, segue passos inspirados no processo biológico de evolução natural segundo a teoria de Darwin Algoritmos Genéticos seguem a idéia
Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO
Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO AULA 06 Algoritmos Genéticos Sumário Introdução Inteligência Artificial (IA) Algoritmos Genéticos Aplicações de
1. Computação Evolutiva
Computação Bioinspirada - 5955010-1 1. Computação Evolutiva Prof. Renato Tinós Programa de Pós-Graduação Em Computação Aplicada Depto. de Computação e Matemática (FFCLRP/USP) 2 Computação Bioinspirada
Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva
Computação Evolutiva Algoritmos Genéticos A computação evolutiva (CE) é uma área da ciência da computação que abrange modelos computacionais inspirados na Teoria da Evolução das Espécies, essencialmente
4 Implementação Computacional
4 Implementação Computacional 4.1. Introdução Neste capítulo é apresentada a formulação matemática do problema de otimização da disposição das linhas de ancoragem para minimizar os deslocamentos (offsets)
Introdução aos Algoritmos Genéticos
Introdução aos Algoritmos Genéticos Prof. Matheus Giovanni Pires EXA 868 Inteligência Artificial Não-Simbólica B Universidade Estadual de Feira de Santana 2 Algoritmos Genéticos: Introdução Introduzidos
Introdução OpenMP. Nielsen Castelo Damasceno
Introdução OpenMP Nielsen Castelo Damasceno Computação de auto desempenho Processamento Paralelo Memória Distribuída e Compartilhada Modelo de programação OpenMP Métricas de Desempenho Computação de auto
Introdução a Algoritmos Genéticos
Introdução a Algoritmos Genéticos Tiago da Conceição Mota Laboratório de Inteligência Computacional Núcleo de Computação Eletrônica Universidade Federal do Rio de Janeiro Outubro de 2007 O Que São? Busca
Aluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER
COMPARAÇÃO DE DESEMPENHO NA PROGRAMAÇÃO PARALELA HÍBRIDA (MPI + OPENMP) NA BUSCA DE TEXTO EM ARQUIVOS 1 COMPARISON OF PERFORMANCE IN HYBRID PARALLEL PROGRAMMING (MPI + OPENMP) IN SEARCH OF TEXT IN FILES
Algoritmos Genéticos
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Algoritmos Genéticos Aluno: Fabricio Aparecido Breve Prof.: Dr. André Ponce de Leon F. de Carvalho São Carlos São Paulo Maio
Algoritmos Genéticos. Texto base: Stuart Russel e Peter Norving - Inteligência Artificial
Algoritmos Genéticos Texto base: Stuart Russel e Peter Norving - Inteligência Artificial junho/2007 Algoritmo Genético Uma variante da busca em feixe estocástica Estado sucessor gerado pela combinação
DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES
DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES João Ricardo Kohler Abramoski (PAIC/FUNDAÇÃO ARAUCÁRIA), Sandra Mara Guse Scós Venske (Orientadora), e-mail: [email protected]
Técnicas de Inteligência Artificial
Universidade do Sul de Santa Catarina Ciência da Computação Técnicas de Inteligência Artificial Aula 9 Algoritmos Genéticos Max Pereira Algoritmos Genéticos Algoritmos Genéticos São técnicas de busca e
Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto
Algoritmo Genético Inteligência Artificial Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Introdução 2. Conceitos Básicos 3. Aplicações 4. Algoritmo 5. Exemplo Introdução São técnicas de busca
SSC PROGRAMAÇÃO CONCORRENTE. Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella
SSC- 0143 PROGRAMAÇÃO CONCORRENTE Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella Créditos Os slides integrantes deste material foram construídos a par4r dos conteúdos relacionados
Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:
Algoritmos Genéticos Prof. Luis Otavio Alvares INE/UFSC Características de alguns problemas Tamanho do espaço de busca- Ex. caixeiro viajante: 10 cidades: 181.000 soluções 20 cidades: 10.000.000.000.000
Exemplo de Aplicação de Algoritmos Genéticos. Prof. Juan Moisés Mauricio Villanueva cear.ufpb.br/juan
Exemplo de Aplicação de Algoritmos Genéticos Prof. Juan Moisés Mauricio Villanueva [email protected] cear.ufpb.br/juan Estrutura do Algoritmo Genético Algoritmo genético Inicio t = 0 inicializar P(t)
Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008
Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008 Introdução São técnicas de busca e otimização. É a metáfora da teoria da evolução das espécies iniciada pelo Fisiologista e Naturalista inglês Charles Darwin.
ALGORITMOS GENÉTICOS. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR
ALGORITMOS GENÉTICOS Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Fev/2018 Introdução Algoritmos Genéticos são algoritmos heurísticos de busca, que utilizam regras
Estratégias Evolutivas EEs. Prof. Juan Moisés Mauricio Villanueva
Estratégias Evolutivas EEs Prof. Juan Moisés Mauricio Villanueva [email protected] www.cear.ufpb.br/juan Estratégias Evolutivas Desenvolvidas por Rechenberg e Schwefel, e estendida por Herdy, Kursawe
OpenMP: Variáveis de Ambiente
Treinamento OpenMP C/C++ 1 TREINAMENTO OpenMP C/C++ Módulo 1 Computação de Alto Desempenho Módulo 2 OpenMP: Construtores Paralelos Módulo 3 OpenMP: Diretivas de sincronização Módulo 4 OpenMP: Funções de
OTIMIZAÇÃO DA LIMPEZA DE REDES DE TROCADORES DE CALOR EMPREGANDO OS ALGORITMOS GENÉTICOS
OTIMIZAÇÃO DA LIMPEZA DE REDES DE TROCADORES DE CALOR EMPREGANDO OS ALGORITMOS GENÉTICOS C. de O. GONÇALVES 1, E. M. QUEIROZ 2, F. L. P. PESSOA 2, F. S. LIPORACE 3, S. G. OLIVEIRA 3 e A. L. H. COSTA 1
COMPUTAÇÃO PARALELA E DISTRIBUÍDA
COMPUTAÇÃO PARALELA E DISTRIBUÍDA Aluno: Alessandro Faletti Orientadora: Noemi Rodriguez Introdução O objetivo inicial no projeto era aplicar a possibilidade de processamento em paralelo no sistema CSBase
Técnicas de Inteligência Artificial
Universidade do Sul de Santa Catarina Ciência da Computação Técnicas de Inteligência Artificial Aula 9 Algoritmos Genéticos Max Pereira Algoritmos Genéticos São técnicas de busca e otimização. Uma metáfora
Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core
RSS-Verão-01/08 p.1/36 Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7 Escola de Verão 2008 Arquiteturas Multi-Core Renato S. Silva LNCC - MCT Janeiro de 2008 RSS-Verão-01/08 p.2/36 Objetivo:
Algoritmos genéticos Abordagem unificada de algoritmos evolutivos simples
Introdução Inspiração biológica Histórico da computação evolutiva Algoritmo evolutivo simples Programação evolutiva Estratégias evolutivas Algoritmos genéticos Abordagem unificada de algoritmos evolutivos
Modelo de Programação Paralela
Modelo de Programação Paralela As arquiteturas paralelas e distribuídas possuem muitos detalhes Como especificar uma solução paralela pensando em todos esses detalhes? O que queremos? Eecutar a solução
Otimização. Unidade 6: Algoritmo Genético. Jaime Arturo Ramírez. 7. Teoria do processo evolutivo num GA. 8. Aspectos avançados
Otimização Jaime Arturo Ramírez Conteúdo 1. Introdução 2. Analogia de mecanismos de seleção natural com sistemas artificiais 3. Algoritmo genético modelo 4. Um GA simples 5. Representação, genes e cromossomos
Métodos de implementação de linguagens. Kellen Pinagé
Métodos de implementação de linguagens Kellen Pinagé Sumário Métodos de implementação de linguagens Compilação Interpretação pura Híbrido Métodos de implementação de linguagens Principais componentes de
INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL. Aula 06 Prof. Vitor Hugo Ferreira
Universidade Federal Fluminense Escola de Engenharia Departamento de Engenharia Elétrica INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL Aula 06 Prof. Vitor Hugo Ferreira Representação por cromossomos Codificação
PROGRAMAÇÃO PARALELA USANDO MPI
PROGRAMAÇÃO PARALELA USANDO MPI Maurílio Boaventura DCCE/IBILCE/UNESP São José do Rio Preto - SP Nos computadores convencionais, um programa é um conjunto de instruções que são transmitidas à unidade de
3 Algoritmos Genéticos
Algoritmos Genéticos Algoritmos Genéticos (AGs) constituem um mecanismo de busca adaptativa que se baseia no princípio Darwiniano de seleção natural e reprodução genética [101]. AGs são tipicamente empregados
Modelos Evolucionários e Tratamento de Incertezas
Ciência da Computação Modelos Evolucionários e Tratamento de Incertezas Aula 01 Computação Evolucionária Max Pereira Motivação Se há uma multiplicidade impressionante de algoritmos para solução de problemas,
Introdução à Computação: Sistemas de Computação
Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza ([email protected]) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
Aplicação de algoritmos genéticos. Problema da Mochila (knapsack problem)
Aplicação de algoritmos genéticos Problema da Mochila (knapsack problem) Algoritmos genéticos Passos inspirados no processo biológico de evolução Ideia de sobrevivência dos mais adaptados Soluções cada
Codificação das variáveis: binária Iniciação da população: aleatória Avaliação: função aptidão Operadores. Critério de parada: número de gerações
AG Simples/Canônico (AGS) AG introduzido por Holland Funciona bem para problemas de otimização simples e/ou de pequenas dimensões A maior parte da teoria dos AGs está baseada no AGS Utilidade didática
Sistemas Distribuídos e Paralelos
Sistemas Distribuídos e Paralelos Aula #6: Programação paralela em sistemas de memória compartilhada. ISUTIC - 2016 Eng. Alexander Rodríguez Bonet Aula de hoje Regiões paralelas. Cláusulas de âmbito. Partilha
C o m p u t a ç ã o M ó v e l. André Siqueira Ruela
C o m p u t a ç ã o M ó v e l André Siqueira Ruela Sumário Revisão sobre AGs. Codificação de uma Rede Neural. AG em treinamento supervisionado. AG em treinamento não supervisionado. Revisão: Algoritmos
Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos
Sistema Distribuído Conjunto de máquinas (CPU + memória) interligadas em rede. Sistema Distribuído Sistema operacional distribuído trata este conjunto como um único sistema computacional. Estação 1 Estação
Algoritmos Genéticos
Algoritmos Genéticos Roteiro Introdução Algoritmos Genéticos Otimização Representação Seleção Operadores Genéticos Aplicação Caixeiro Viajante Introdução Algoritmos Genéticos (AGs), são métodos de otimização
Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato:
Inteligência Artificial Prof. Ms. Luiz Alberto Contato: [email protected] Métodos de Busca Busca Cega ou Exaustiva: Não sabe qual o melhor nó da fronteira a ser expandido. Apenas distingue o estado objetivo
3 Otimização Evolucionária de Problemas com Restrição
3 Otimização Evolucionária de Problemas com Restrição 3.1. Introdução Este capítulo resume os principais conceitos sobre os algoritmos evolucionários empregados nesta dissertação. Primeiramente, se fornece
4 Métodos Existentes. 4.1 Algoritmo Genético
61 4 Métodos Existentes A hibridização de diferentes métodos é em geral utilizada para resolver problemas de escalonamento, por fornecer empiricamente maior eficiência na busca de soluções. Ela pode ser
IMPLEMENTAÇÃO DE UM ALGORITMO GENÉTICO PARA DETERMINAÇÃO DO PONTO DE MÁXIMO E/OU MÍNIMO DA FUNÇÃO DO 2 e 3 GRAU
IMPLEMENTAÇÃO DE UM ALGORITMO GENÉTICO PARA DETERMINAÇÃO DO PONTO DE MÁXIMO E/OU MÍNIMO DA FUNÇÃO DO 2 e 3 GRAU Ana Cláudia M. SILVEIRA 1 ; Renato Machado PEREIRA 2 RESUMO A história da equação de segundo
SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG
Matriz Curricular FGGCOMP - Bacharelado em Ciência da Computação 0. Disciplinas Obrigatórias FGGCOMP.00 Cálculo I FGGELET.00 - Cálculo I / FGGMATE.00 - Cálculo Diferencial e Integral I FGGCOMP.00 Geometria
SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG
Matriz Curricular FGGCOMP - Bacharelado em Ciência da Computação 0. Disciplinas Obrigatórias FGGCOMP.00 Cálculo I FGGELET.00 - Cálculo I / FGGMATE.00 - Cálculo Diferencial e Integral I FGGCOMP.00 Geometria
Programação Concorrente
INE 5410 Programação Concorrente Professor: Lau Cheuk Lung (turma A) INE UFSC [email protected] Conteúdo Programático 1. 2. Programação Concorrente 3. Sincronização 1. Condição de corrida, região critica
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos Pensando em Paralelo Pensar em paralelo é uma tarefa que exige disciplina
A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES
A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES Euzébio da Costa Silva 1, Victor Pereira Ribeiro 2, Susana Brunoro Costa de Oliveira 3 1 29520-000, [email protected] 2 29520-000, [email protected]
Inteligência Artificial
Inteligência Artificial Aula 6 Algoritmos Genéticos M.e Guylerme Velasco Roteiro Introdução Otimização Algoritmos Genéticos Representação Seleção Operadores Geneticos Aplicação Caixeiro Viajante Introdução
OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL RESUMO INTRODUÇÃO
OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL Miquéias Augusto Ferreira Nantes 1, Douglas Peixoto de Carvalho 1 (Alunos do Curso de Matemática da Universidade Anhanguera - Uniderp)
Aprendizado Evolutivo: Introdução aos Algoritmos Genéticos
Aprendizado Evolutivo: Introdução aos Algoritmos Genéticos SCC-230 Inteligência Artificial Thiago A. S. Pardo Solange O. Rezende 1 Computação Evolutiva (CE) Trata de sistemas para a resolução de problemas
UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS
UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS Uma visão geral dos GAs Um algoritmo genético é uma classe de algoritmo de busca. O algoritmo procura uma solução dentro de um espaço para um problema de otimização.
ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS
1/18 ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS Algoritmos 2/18 Algoritmos Algoritmo - sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador)
speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado
Multiprocessadores - A evolução tecnológica dos processadores iria diminuir drasticamente. 2- O caminho para o aumento de desempenho é de unir mais de um processador para realizar a mesma tarefa em menos
Conceitos Básicos de Programação
BCC 201 - Introdução à Programação Conceitos Básicos de Programação Guillermo Cámara-Chávez UFOP 1/53 Conceitos básicos I Variável 2/53 Conceitos básicos II Posição de memoria, identificada através de
Inteligência Artificial
Inteligência Artificial Prof. Kléber de Oliveira Andrade [email protected] Algoritmos Genéticos Conteúdo Introdução O Algoritmo Genético Binário Noções de Otimização O Algoritmo Genético com Parâmetros
SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG
LEI Nº.9, DE 9//00, PUBLICADA NO DOU DE 0//00, SEÇÃO I, PAGS. I - Rua São Luiz Gonzaga, s/n - São Luiz - Formiga - MG - CEP: 70-000 Tel: (7)-09 - Site: www.formiga.ifmg.edu.br Matriz Curricular FGGCOMP
Arquiteturas Paralelas
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Arquiteturas Paralelas Medidas de desempenho Alexandre Amory Edson Moreno Índice 2 1. Introdução 2. Medidas de Desempenho Introdução 3 Aumento de desempenho dos
Introdução à Computação
Introdução à Computação Jordana Sarmenghi Salamon [email protected] [email protected] http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda
Otimização com Algoritmos Genéticos no MATLAB. Prof. Rafael Saraiva Campos CEFET-RJ
Otimização com Algoritmos Genéticos no MATLAB Prof. Rafael Saraiva Campos CEFET-RJ Conteúdo do Mini-Curso PARTE 1 Teoria PARTE 2 Prática Conteúdo do Mini-Curso PARTE 1 Teoria 1.1. Conceitos Básicos de
Programação de Computadores
Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Conceito de Algoritmo Pseudocódigo Tipos de
Introdução ao Python. Programa Computacional
Programa Computacional É um algoritmo escrito em uma linguagem computacional (C, Fortran, Pascal, MATLAB, Python, etc.). É a tradução do algoritmo para uma linguagem que será interpretada pelo computador.
Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores
Fundamentos de Sistemas Operacionais de Arquitetura Aberta CST em Redes de Computadores Introdução Computadores Computadores são compostos, basicamente, de CPU, memória e dispositivos de entrada e saída
