1
Computação Evolucionária
class5a (2020)
Câmpus Curitiba (PR)
Prof. Heitor Silvério Lopes
hslopes@utfpr.edu.br
Programação Genética
PARTE 1:
Histórico, Literatura
Fundamentos e Motivações
Indução de programas
Inteligência Computacional
3 Sistemas FuzzyPE EE
PG
SC Computação Evolucionária Computação com DNA L-systems Sistemas Imunológicos Artificiais Autômatos Celulares Redes Neurais PEGAG
AM
Hardware evolutivo ED AED EG AGC HS Deep Learning ABC Inteligência de Enxames PSO ACO BAT GWOProgramação Genética - Origens
Os fundamentos de PG surgiram a partir da
tese de doutorado de John Koza (1972),
orientado de John Holland.
A PG é um descendente direto de AG
Koza desenvolveu a PG mais efetivamente
durante as décadas de 80 e 90
A PG foi patenteada em 1990
Koza publicou 4 livros sobre PG
5
Literatura sobre PG
John Koza et al.:
Genetic Programming: on the Programming of
Computers by Means of Natural Selection (1992) Genetic Programming II: Automatic Discovery of Reusable Programs (1994)
Genetic Programming III: Darwinian Invention and Problem Solving (1999)
Genetic Programming IV: Routine Human-Competitive Machine Intelligence (2005)
Mais Literatura sobre PG
Banzhaf:
Genetic Programming : An Introduction : On the Automatic Evolution of Computer Programs and Its Applications (1997)
Langdon e Poli:
Genetic Programming and data structures (1998)
Foundations of Genetic Programming (2002)
A Field Guide to Genetic Programming (2008)
Ryan:
Automatic Re-Engineering of Software Using Genetic Programming (2000)
Rivero e Gestal:
Genetic Programming: Key Concepts and Examples (2011)
7
Genetic Programming vol. 1
(aulas: class 5a, 5b)
Cap. 1- Introdução
Cap. 2- A generalidade do problema da indução
de programas
Cap. 3- Introdução a AGs.
Cap. 4- O problema da representação em AGs
Cap. 5- Resumo de PG
Cap. 6- Descrição detalhada de PG:
Estruturas, Fitness, Operadores primários e
secundários, Parâmetros de controle, Critério de término e resultado
Genetic Programming vol. 1
(aulas: class 6a, 6b, 6c)
Cap. 7- Quatro exemplos de PG:
Regressão simbólica Formiga artificial
Cap. 12- Evolução de comportamentos emergentes:
Busca de alimento
Priorização de tarefas
Cap. 17- Evolução da classificação:
Mineração de dados
Reconhecimento de padrões
Cap. 15- Evolução de estratégias:
9
O problema fundamental da
computação
Muitos métodos computacionais surgiram ao longo do tempo, de maneira geral enquadrados em:
Aprendizado de máquina, Inteligência Artificial, RNAs, AGs, DL, SI, etc...
Todos métodos se baseiam em estruturas especializadas para representar, de alguma forma, o conhecimento manipulado:
Árvores de decisão, clusters, regras de produção, vetores de pesos, strings de bits.
Consequência:
As estruturas de representação de conhecimento são limitadas e não-naturais !
Como fazer os computadores
resolverem problemas para os quais não foram previamente programados ? (Samuel, 1950)
Motivação inicial da PG
Algoritmos Genéticos têm capacidade de
representação limitada:
A informação é codificada (mapeamento
genótipo-fenótipo)
Usualmente GA usa alfabeto binário, cromossomo
único e de tamanho fixo
Necessidade de flexibilização representacional:
A solução pode ter qualquer forma, complexidade e
tamanho
A solução pode ter tamanho arbitrário, porém deve
utilizar um conjunto finito de elementos contrutivos
11
“Programas computacionais”
Solução para problemas computacionais:
Encontrar um “PROGRAMA” adequado para resolver o problema !!!
Sem limitar, de antemão, a forma, o tamanho e a complexidade estrutural da solução.
Porém, o espaço de busca de todos os possíveis
programas é infinito e intratável
J.Koza propôs um método para realizar uma busca
“inteligente” e adaptativa de programas:
Conceito generalizado de “programas”
Em termos genéricos, um programa é um
sistema computacional capaz de receber
entradas, processá-las e gerar saídas
Valores numéricos Variáveis independentes Atributos Sinais de entrada Argumentos Valor numérico Variável independente Categoria/classe Sinal de saída Decisão/ação Equação Modelo Procedimento Função de Transferência Árvore de decisão entradas saídas
13
O conceito de programa
depende do contexto
Navegação de robôs autônomos:
Determinação da rota para evitar colisões
Previsão de séries temporais:
Obtenção de uma equação que possa prever resultados futuros
Regressão simbólica
Ajuste de uma equação a um conjunto de dados
Jogos:
Estratégias para vencer o oponente
Integração e diferenciação simbólicas:
Obtenção de uma equação a partir de outra
Classificação de registros de um banco de dados com base nos seus atributos:
Capacidades algorítmicas de “Programas”
Realizam operações hierarquicamente
Operações condicionais
Iteração
Recursividade
Operação com muitas variáveis de
natureza distinta
15
Indução de “programas”
Indução:
A partir de uma quantidade significativa de
exemplos, conclui-se algo cuja validade não é
absoluta
Definição de Indução de Programas:
Encontrar, dentre todos os possíveis programas, um específico que produza uma saída desejada