Programação Genética

Documentos relacionados
Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná

Arquitetura de Computadores. Prof. João Bosco Jr.

Acetatos de apoio às aulas teóricas

BANKSEL ADCON1 clrf ADCON1 bsf ADCON1,ADFM ; seta AD para VCC, GND e entradas analogicas, setando o bit ADFM configura como justificado a direita

Introdução aos Microcontroladores PIC

Microcontrolador PIC 16F877

Plano de Trabalho Docente 2017 Ensino Técnico

Figura 3.1: Fluxograma do algoritmo da Programação Genética.

é a saida do melhor individuo. A configuração de parâmetros da

OMódulo Comparador Analógico consiste em um conjunto

Sistemas Microcontrolados

KIT DIDÁTICO PIC-2377

CURSO DE PÓS-GRADUAÇÃO LATO SENSU AUTOMAÇÃO INDUSTRIAL E SISTEMAS DE CONTROLE - MECATRÔNICA

Sistemas Digitais: Introdução

6. Estrutura do Programa em Assembly

Parte II Arquitetura. professorferlin.blogspot.com. professorferlin.blogspot.com. Sociedade Paranaense de Ensino e Informática

1 RESUMO. Palavras-chave: Controle, encoders, motor CC. 2 INTRODUÇÃO

Aula 10 Microcontrolador Intel 8051 Parte 1

Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP

Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural

1.1 Noções básicas sobre interrupções em Microcontroladores

Algoritmos Genéticos. Texto base: Stuart Russel e Peter Norving - Inteligência Artificial

Arquitetura e Organização de Computadores

GAs são indicados em problemas complexos de otimização- onde se busca uma solução melhor:

GAs são indicados em problemas complexos de otimização- onde se busca uma solução melhor:

Arquitetura e Organização de Computadores

UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE ENGENHARIA ELETRÔNICA DISCIPLINA DE INSTRUMENTAÇÃO ELETRÔNICA

Curso PIC 1 Desbravando o PIC. Eng. Diego Camilo Fernandes Labtools Mosaico Didactic Division

Estrutura Básica de um Computador

Conjunto de Instruções e Modelos de Arquiteturas

Figura 4.1: Módulos que compõe o sistema de otimização do OCTOPUS

4 Implementação Computacional

INTRODUÇÃO: MICROCONTROLADORES

Sequencial Supermáquina (TEMPORIZAÇÃO SIMPLES)

EXERCÍCIOS DE PREPARAÇÃO PARA PROVA B2

28/05/2017. Interface com Conversores A/D e D/A. Interface com Conversores A/D e D/A SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Introdução à Organização de Computadores. Aula 8

SSC510 Arquitetura de Computadores 1ª AULA

14/3/2016. Prof. Evandro L. L. Rodrigues

Sistemas Embarcados. Projeto de Sistemas Embarcados

5. Conjunto de Instruções do MCU PIC

Palestra de Tecnologia. Assunto: Microcontroladores.

IF-705 Automação Inteligente Algoritmos Evolucionários

Sistema Experimental. Figura 40: Robô original de onde foram aproveitadas a base da estrutura de alumínio, motores, rodas e eletrônica de potência.

Interface com A/D e D/A

Marcelo Fernandes Valter Rodrigues de Jesus Junior. Thermal Control

EXPERIÊNCIA 4: IMPLEMENTAÇÃO DE UM CRONÔMETRO

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Sistemas Microcontrolados. Período Aula 4. 1 Saulo O. D. Luiz

Técnicas de Interface: conversor A/D e D/A

3 Algoritmos Genéticos

Aplicações Avançadas de Microprocessadores. Professor: Marco Shawn Meireles Machado

Ementário das disciplinas do curso de Engenharia da Computação. - Núcleo Básico -

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

CURSO: ENGENHARIA DE CONTROLE E AUTOMAÇÃO EMENTAS º PERÍODO

1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador

Organização e Arquitetura de Computadores I

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008

Microprocessadores. São máquinas elétricas onde podemos armazenar instruções lógicas, aritméticas e de tomada de decisão;

6. O SISTEMA DE CONTROLE COMO FERRAMENTA DIDÁTICA

1.1. Microprocessadores e microcontroladores Sistemas genéricos e sistemas dedicados. 2. Microcontrolador PIC:

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

ESTUDO DOS PARAMETROS DE UM ALGORITMO GENÉTICO PARA POSTERIOR USO NA SOLUÇÃO DE PROBLEMAS DO TIPO JOB-SHOP

Modelação, Identificação e Controlo Digital

Objetivos MICROCONTROLADORES HARDWARE. Aula 03: Periféricos. Prof. Mauricio. MICRO I Prof. Mauricio 1. Arquitetura de um Microcontrolador

Construção de Robôs Jogadores de Futebol (2ª Parte)

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04037 Sistemas de Controle Digitais

Conjunto de Instruções e Modelos de Arquiteturas

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

5 Conclusões e Trabalhos Futuros

PIC16F628a. Pinagem do PIC16F628a:

HARDWARE DOS RELÉS NUMÉRICOS

ELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

Motivação: Decentralização e Distribuição de Inteligência Evolução das Arquiteturas

2. A influência do tamanho da palavra

Sistema de Aquisição de Dados em Tempo Real Utilizando Software Livre e Rede Ethernet para Laboratório de Controle

Instrumentação Eletrônica

4 Cálculo de Equivalentes Dinâmicos

Hardware, Processador e Memória

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

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

William Stallings Arquitetura e Organização de Computadores 8 a Edição

6 Estudos de Casos Porta Lógica OU de 4 Entradas

LABORATÓRIO DE ARQUITETURA DE COMPUTADORES PREPARAÇÃO 02: DISPLAY DE 7 SEGMENTOS MICROCONTROLADO

ENTRADAS ANALÓGICAS CONVERSOR A/D

ARDUINO. Profº. Engº. Robson Dias Ramalho

Profª Danielle Casillo

Universidade Federal do Rio de Janeiro

Arquitetura de Computadores

ARQUITETURA DE PROCESSAMENTO

William Stallings Arquitetura e Organização de Computadores 8 a Edição

CONTROLE DA TEMPERATURA DE SECAGEM ARTIFICIAL DE GRÃOS 1

Palavras-chave: Controle de temperatura, microcontrolador, sistema didático

FCA - Editora de Informática xv

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

SEL0338 Tópicos Especiais em Sistemas Digitais

Transcrição:

Programação Genética Síntese Automática de Programas Assembly para Microcontroladores Digitais Douglas Mota Dias ICA Núcleo de Inteligência Computacional Aplicada/DEE PUC-Rio 1

Sumário Motivação Controle de Processos por Meio de Microcontroladores: Caracterização e Aplicação Programação Genética Sistema de Síntese Automática de Programas em Linguagem de Montagem Estudos de Caso Conclusões 2

Motivação Uso de sistemas digitais para controle de processos é vantajoso Dificuldades com implementação analógica podem ser contornadas: 1. Não há problemas com precisão ou alterações dos componentes 2. É mais simples ter cálculos sofisticados na lei de controle e incluir funções lógicas e não-lineares Micro Controladores (MCs) são amplamente utilizados em sistemas embedded Sistemas onde não é possível ou não se justifica o uso de computadores 3

Motivação Automação do projeto de sistemas de controle ótimo por MCs A PG é capaz de contornar duas dificuldades do projeto tradicional: 1. Obtenção matemática tradicional de uma solução de controle a partir do modelo da planta 2. Programação manual do MC em função da solução encontrada na etapa anterior Controladores PID, apesar de flexíveis, não fornecem uma solução de controle ótimo na maioria das vezes 4

Sumário Motivação Controle de Processos por Meio de Microcontroladores: Caracterização e Aplicação Programação Genética Sistema de Síntese Automática de Programas em Linguagem de Montagem Estudos de Caso Conclusões 5

Controle de Processos por Meio de MCs Microcontrolador Dispositivo que incorpora CPU, memórias e periféricos em um único CI Redução do custo final do controlador Redução do tamanho da placa de circuito impresso Aumento da confiabilidade Produto dos avanços da microeletrônica A CPU dedicada à tarefa de controle pode ser simples Os microcontroladores são simples, baratos e eficientes 6

Controle de... Arquitetura do PIC18F452 Memória de Programa Memória de Dados Multiplicador Registrador de Uso Geral W Portas 7

Controle de Processos por Meio de MCs Instruções do PIC18F452 Possui um conjunto de 75 instruções Exemplos: Instrução ADDWF f, d Soma W e f CLRF f Atribui o valor zero a f Funcionamento CPFSEQ f Compara f com W, salta próx. inst. se f = W DECFSZ f, d Decrementa f, salta próx. inst. se f = 0 MOVFF f s, f d Copia o conteúdo de f s em f d MULWF f Multiplica W por f BTFSC f, b Testa o bit b de f, salta próx. inst. se b = 0 f : designa um dos registradores de uso geral da RAM W: acumulador na saída da ALU d : designa o registrador de destino do resultado (0=W, 1=f) 8

Controle de Processos por Meio de MCs Controle Ótimo e Sistemas Não-Lineares Problema de controle ótimo: Estado Inicial Estado Final Estados Variáveis de Estado Variáveis de Estado... Variáveis de Estado Variáveis de Estado : Estratégia Ação de Controle Ação de Controle... Ação de Controle : : Variável de Controle...... Variável de Controle t f - t 0 = mín t 0 t 1... t f t 9

Controle de Processos por Meio de MCs Controle Ótimo e Sistemas Não-Lineares Problemas: Soluções de controle normalmente implicam em funções altamente nãolineares: impossibilita uma solução matemática exata Geralmente os sistemas a serem controlados são lineares somente dentro de certos limites de operação: aproximação dos modelos 10

Controle de Processos por Meio de MCs Controle Ótimo e Sistemas Não-Lineares Contribuições da PG Sintetizar programas que implementem estratégias de controle ótimo, a partir apenas da modelagem por equações dinâmicas: contorna dificuldades matemáticas Sintetizá-los especificamente para uma plataforma limitada em recursos - um MC: contorna dificuldades de programação 11

Sumário Motivação Controle de Processos por Meio de Microcontroladores: Caracterização e Aplicação Programação Genética Sistema de Síntese Automática de Programas em Linguagem de Montagem Estudos de Caso Conclusões 12

Programação Genética Tradicional Formalizada por John Koza (1990) Representação dos indivíduos por árvores Evolui programas apenas em linguagens funcionais (p.ex. LISP) % * - Cromossomo do programa: ((a + b) % c) * (d - e) + c d e a b 13

Programação Genética Linear Representa indivíduos por uma lista linear de instruções Evolui programas em linguagens imperativas (p.ex. ling. assembly e C) a = a + b c = c / a Cromossomo linear: cada gene representa um instrução d = d - e c = c * d 14

Programação Genética Evolução de Programas em Linguagem Assembly Vantajosa quando necessita-se de soluções muito eficientes Plataformas com fortes restrições de tempo de execução e de uso de memória Otimização mais eficiente do código Nível mais baixo para se otimizar um programa Onde os maiores ganhos são possíveis Ferramentas de alto nível podem não existir Linguagem de montagem é considerada difícil de se trabalhar Pode ser mais fácil deixar o computador evoluir os programas 15

Sumário Motivação Controle de Processos por Meio de Microcontroladores: Caracterização e Aplicação Programação Genética Sistema de Síntese Automática de Programas em Linguagem de Montagem Estudos de Caso Conclusões 16

Sistema de Síntese Automática de Programas Sintetiza programas de controle em linguagem de montagem, a partir de um modelo matemático, por PG Desenvolvido para utilização nos estudos de caso Desenvolvido em C melhor desempenho computacional Diagrama em blocos do sistema: Conversor A/D Rotina principal Simulador da Planta Simulador do PIC Núcleo Evolutivo Conversor D/A 17

Sistema de Síntese Automática de Programas Núcleo Evolutivo Não existem ferramentas de PG linear Implementa o algoritmo de PG e os operadores genéticos Cria a população inicial, seleciona indivíduos e aplica os operadores genéticos Funcionamento do núcleo evolutivo: Cria população inicial Seleciona indivíduos Efetua disputa Substitui perdedores Aplica mutação Aplica cruzamento 18

Sistema de Síntese Automática de Programas Núcleo Evolutivo Representação dos indivíduos 1 o operando operação 2 o operando NEGF X BTFSC V 7 SETF U BTFSC X 7 ordem de execução INCF U F SUBWF X W MULWF X 19

Sistema de Síntese Automática de Programas Núcleo Evolutivo Iniciação da população Escolhe-se aleatoriamente o comprimento inicial de um indivíduo comp_ini_mín < comp < comp_ini_max Todos os genes são preenchidos com instruções geradas aleatoriamente Processo repete-se para todos os indivíduos da população 20

Sistema de Síntese Automática de Programas Núcleo Evolutivo Cruzamento Comprimento dos segmentos limitado a 4 ameniza o efeito destrutivo do cruzamento Genitor 1 Genitor 2 Descendente 1 Descendente 2 INCF Y,W ADDWFC U,F INCF Y,W ADDWFC U,F MOVF U,W ADDWFC R,W BTFSC Y,7 ADDWFC R,W NEGF R troca BTFSC Y,7 RLNCF Y,F MOVF U,W RLNCF Y,F RLNCF Y,F CPFSEQ R NEGF R RRCF Y,F CPFSEQ R RLNCF Y,F INCF Y,W INCF Y,W RRCF Y,F INCF R,F INCF R,F 21

Sistema de Síntese Automática de Programas Núcleo Evolutivo Mutação Aplicada no operador ou em um dos 2 operandos: micromutação Descendente NEGF X BTFSC V, 7 SETF U BTFSC X, 7 ADDWF SUBWF MULWF Gene selecionado aleatoriamente U, F X, W X Genitor NEGF X BTFSC V, 7 SETF U BTFSC X, 7 INCF U, F SUBWF X, W MULWF X Descendente NEGF X BTFSC V, 7 SETF U BTFSC X, 7 INCF X, F SUBWF X, W MULWF X 22

Sistema de Síntese Automática de Programas Núcleo Evolutivo Seleção e evolução Seleção aleatória Torneios Cruzamento Substituição Mutação 23

Sistema de Síntese Automática de Programas Núcleo Evolutivo Seleção Algoritmo de seleção por torneios Baseia-se na competição entre indivíduos de um subconjunto da população Prevalecimento das características dos melhores indivíduos sobre aquelas dos piores Não requer comparação centralizada de aptidões entre todos os indivíduos de uma população Acelera evolução Elimina overhead entre avaliações existente na seleção proporcional à aptidão Este método vem sendo muito utilizado em PG 24

Sistema de Síntese Automática de Programas Núcleo Evolutivo Evolução Algoritmo chamado steady-state Baseia-se no modelo de seleção por torneio Não há intervalos fixos definindo gerações Há um fluxo contínuo de indivíduos encontrando-se, unindo-se e produzindo descendentes Descendentes substituem indivíduos existentes na mesma população Método simples de se implementar Possui alguns benefícios de eficiência Bibliografia relata bons resultados de convergência Vem ganhando terreno entre pesquisadores 25

Sistema de Síntese Automática de Programas Simulador da Planta Três, um para cada estudo de caso Implementado por uma função Entradas Variáveis de estado da planta (por referência) Variável de controle da planta (por valor) Saídas Variáveis de estado da planta atualizadas Núcleo composto pelas equações dinâmicas que modelam t a planta t+1 Variáveis de estado Variável de controle Simulador da Planta Variáveis de estado 26

Sistema de Síntese Automática de Programas Simulador de Microcontrolador PIC Implementado por uma função Entradas Variáveis de estado da planta (por valor) Saída Variável de controle Variáveis de estado Simulador do PIC Execução do programa Variável de controle 27

Sistema de Síntese Automática de Programas Mnemônico e Operandos ADDWF f, d Soma W e f ADDWFC f, d Soma W e o bit de Carry a f CLRF f Atribui o valor zero a f Descrição CPFSEQ f Compara f com W, salta próxima instrução se f = W CPFSGT f Compara f com W, salta próxima instrução se f > W CPFSLT f Compara f com W, salta próxima instrução se f < W DECF f, d Decrementa f DECFSZ f, d Decrementa f, salta próxima instrução se f = 0 INCF f, d Incrementa f MOVF f, d Copia o conteúdo de f MOVFF f s, f d Copia o conteúdo de f s em f d MOVWF f Copia o conteúdo de W em f MULWF f Multiplica W por f NEGF f Complementa f a dois RLCF f, d Desloca f para a esquerda através do bit de Carry RLNCF f, d Desloca f para a esquerda sem o bit de Carry RRCF f, d Desloca f para a direita através do bit de Carry RRNCF f, d Desloca f para a direita sem o bit de Carry SETF f Atribui o valor um a todos os bits de f SUBWF f, d Subtrai W de f BTFSC f, b Testa o bit b de f, salta próxima instrução se b = 0 BTFSS f, b Testa o bit b de f, salta próxima instrução se b = 1 28

Sistema de Síntese Automática de Programas Conversores A/D e D/A Implementados por funções Estabelecem interfaces entre os valores analógicos das grandezas da planta e seus equivalentes digitais no PIC. Simulador da Planta Sensor Variável de estado A/D Simulador do PIC Porta de Entrada : : : : : Atuador Variável de controle D/A Porta de Saída 29

Sistema de Síntese Automática de Programas Visão Geral Sintaxe População Inicial Avaliação do Indivíduo Estados Iniciais Núcleo Evolutivo Simulador da Planta A/D D/A Simulador do PIC N Último Ciclo S Programa Evoluído 30

Sumário Motivação Controle de Processos por Meio de Microcontroladores: Caracterização e Aplicação Programação Genética Sistema de Síntese Automática de Programas em Linguagem de Montagem Estudos de Caso Conclusões 31

Estudos de Caso 1. Sistema de aquecimento de água (Waterbath) 2. Estacionamento do carro (Cart centering problem) 3. Pêndulo invertido Experimentos realizados em um PC Pentium IV de 2,8 GHz 32

Estudos de Caso 1. Waterbath Sistema de aquecimento de água baseado em uma planta real Aplicação real em processos de destilação Utilizado em diversos trabalhos de inteligência computacional Objetivos principais Avaliação preliminar da abordagem de síntese desenvolvida Auxiliar na definição inicial dos valores dos parâmetros evolutivos Tempo pequeno de processamento 33

oc Estudos de Caso 1. Waterbath 80 70 60 50 40 y(k) 30 20 10 ref(k) 8 0 0 20 40 60 80 100 120 140 160 180 k 0V a 5V Porta Porta D Porta 8 B C 8 PIC D/A A/D 20 o C a 85 o C u(k) PWM MS y(k) 25 o C a 80 o C Aquecedor Sensor 34

Estudos de Caso 1. Waterbath Modelo Matemático b( TS ) y( k 1) a( Ts ) y( k) u( k) [1 a( T )] Y 0,5y( k ) s 1 e T T s T s a( s ) e b( T s ) (1 e ) Y 0 : temperatura ambiente (25 o C) k : índice do tempo discretizado u(k) : entrada do sistema (V) y(k) : saída do sistema ( o C) T s : período de amostragem (30 s) Constantes: = 1,00151E-4, = 8,67973E-3, = 40, dependentes de: C : capacidade térmica do sistema R : resistência térmica entre as fronteiras do sistema e o ambiente 0 35

Estudos de Caso 1. Waterbath Função de Avaliação aptidão := 0 k := 0 k = 180 N S Fim da avaliação de um indivíduo Conversão A/D das variáveis de entrada do indivíduo: ref d (k) := A_D(ref(k)) y d (k) := A_D(y(k)) Execução do indivíduo pelo simulador de PIC: u d (k) := Executa(ref d (k), y d (k)) Conversão D/A da variável de saída do indivíduo: u(k) := D_A(u d (k)) Simulação da planta: y(k+1) := Simula(y(k), u(k)) diferença := abs(ref(k) y(k)) aptidão := aptidão + diferença k := k+1 36

Estudos de Caso 1. Waterbath Resumo do Experimento Objetivo: Sintetizar um programa em linguagem de montagem que possibilite a um MC PIC18F452 controlar uma planta water bath, de forma a acompanhar o mais proximamente possível um dado perfil de temperatura de referência. Conjunto de terminais: As variáveis: R (referência), Y (temperatura) e U (controle); A1 e A2 (auxiliares); PRODH e PRODL (registradores do hardware multiplicador); STATUS (registrador de flags). Conjunto de funções: As 22 instruções implementadas no simulador do PIC. Casos de treinamento: Os 180 pontos (k,ref(k)) de amostras do perfil de referência. Aptidão: ref ( k) y( k) k Avaliação: A menor aptidão e, como critério de desempate, o menor comprimento do indivíduo. Parâmetros principais: M = 500. Steady state. Número de indivíduos processados: 2.000.000, o que equivale a G = 4.000. p c = 0,8, p m = 0,4. Predicado de sucesso: Nenhum 37

oc Estudos de Caso 1. Waterbath Resultados 80 Desempenho de controle do programa evoluído 70 60 50 y(k) 40 ref(k) 30 20 10 u(k) 0 0 20 40 60 80 100 120 140 160 180 k 38

Estudos de Caso 1. Waterbath Resultados 1000 Evolução sem controle sobre o comprimento 900 800 700 600 500 400 Aptidão 300 200 100 Comprimento 0 0 50000 100000 150000 200000 250000 300000 350000 400000 450000 500000 Ciclos 39

Estudos de Caso 1. Waterbath Resultados 1000 Evolução com controle sobre o comprimento 900 800 700 600 500 ANFIS: 374 PG: 370 (50 min) 400 Aptidão 300 200 100 0 Comprimento 0 50000 100000 150000 200000 250000 300000 350000 400000 450000 500000 Ciclos 40

Estudos de Caso 1. Waterbath Resultados Programa resultante Código evoluído com 33 instruções Configuração PIC e montador Leitura das portas de entrada Código evoluído Escrita na porta de saída 41

Estudos de Caso 1. Waterbath Resultados Alocação de memória #INCLUDE <P18F452.INC> CBLOCK 0x08 R Y U A2 ENDC ;Início da memória de usuário ;Referência ;Temperatura ;Controle ;Auxiliar ;Fim do bloco de memória Configuração das portas Leitura das portas de entrada BEGIN LOOP ORG 0x00 GOTO BEGIN ;Vetor de reset ;Endereço inicial de execução SETF TRISD ;TRISD:=11111111b ;Define porta D como entrada SETF TRISC ;TRISC:=11111111b ;Define porta C como entrada CLRF TRISB ;TRISB:=00000000b ;Define porta B como saída CLRF W ;W:=0. Inicia reg.w CLRF PRODH ;PRODH:=0. Inicia reg.prodh CLRF PRODL ;PRODL:=0. Inicia reg.prodl MOVFF PORTD, R ;R:=PORTD ;Lê porta D (referência) MOVFF PORTC, Y ;Y:=PORTC ;Lê porta C (temperatura) 42

Estudos de Caso 1. Waterbath Escrita na porta de saída Resultados Programa resultante MOVFF U, PORTB GOTO LOOP END Código evoluído ;PORTB:=U ;Escreve na porta B ;Volta ao início do laço INCF Y, W MOVF U, W NEGF R RLNCF Y, F RRCF Y, F ADDWFC PRODL, F ADDWFC R, W BTFSC Y, 7 RLNCF Y, F CPFSEQ R INCF Y, W INCF R, F SUBWF U, F INCF U, F BTFSC PRODL, 7 RLCF R, F BTFSC PRODL, 7 CPFSGT R BTFSC Y, 7 RLCF R, F SUBWF PRODH, F INCF A2, F CPFSEQ Y BTFSC Y, 7 MOVWF U MULWF U INCF U, F RLCF R, W SUBWF PRODH, F BTFSC R, 7 SETF U CPFSGT R ADDWFC U, F 43

Estudos de Caso 2. Cart Centering Estacionar um carro, sobre um trilho, no menor tempo possível, aplicando-se força bang-bang Problema bem conhecido na literatura introdutória sobre controle ótimo Muito utilizado para testar novos conceitos em PG e em outras abordagens de inteligência computacional Problema de tempo ótimo Solução conhecida Objetivo principal Verificar a capacidade do sistema em evoluir um programa que implementasse a estratégia de controle ótimo 44

Estudos de Caso 2. Cart Centering m = 2,0 kg v(t) -0,75 m a 0,75 m 8 A/D x(t) Porta B dx/dt PIC Porta C 8 Porta D Amp u(t) -1,0 N ou 1,0 N v(t) Potenciômetro A/D Motor F(t) x(t) -0,75 m/s 0,0 a 0,75 m/s 45

Estudos de Caso 2. Cart Centering Modelo Matemático a( t) F( t) m v( t 1) v( t) a( t) x( t 1) x( t) v( t) a(t) : aceleração do carro (m/s 2 ) F(t) : força aplicada ao carro em t (1,0 N ou 1,0 N) m : massa do carro (2,0 kg) v(t) : velocidade do carro (m/s) x(t) : posição do carro (m) : período de amostragem (0,02 s) 46

v(t) Estudos de Caso 2. Cart Centering Estratégia de Controle Ótimo 0,75 0,6 0,45 F = -1 0,3 0,15 0-0,75-0,6-0,45-0,3-0,15 0 0,15 0,3 0,45 0,6 0,75-0,15-0,3 F = 1-0,45-0,6-0,75 x(t) F(t) é positiva se x( t) 2 v( t) Sign v( t) 2 F / m 47

Estudos de Caso aptidão := 0 k := 0 2. Cart Centering Função de avaliação k = 25 Conversão A/D das variáveis de entrada do indivíduo: x d (k,0) := A_D(x(k,0)) v d (k,0) := A_D(v(k,0)) N S Fim da avaliação de um indivíduo t:=0 Valores iniciais: x = -0,75; -0,375; 0,0; 0,375; 0,75 v = -0,75; -0,375; 0,0; 0,375; 0,75 (todas as 25 combinações) t = 10 s Execução do indivíduo pelo simulador de PIC: u d (k,t) := Executa(x d (k,t), v d (k,t)) N S touts := touts+1 Fim da avaliação da parcela da aptidão relativa ao caso k k:=k+1 Simulação da planta: (x(k,t+1), v(k,t+1)) := Simula(x(k,t), v(k,t), u(k,t)) aptidão := aptidão + 0,02 t:=t+0,02 N (x(k,t) 2 +v(k,t) 2 ) 1/2 < 0,025 S 48

Estudos de Caso 2. Cart Centering Resumo do Experimento Objetivo: Sintetizar um programa em linguagem de montagem que possibilite a um MC PIC18F452 controlar um carro em um trilho sem atrito, de forma a estacioná-lo em uma posição central final. Conjunto de terminais: X (posição), V (velocidade) e U (controle); A1 e A2 (auxiliares); PRODH e PRODL (registradores do hardware multiplicador); STATUS (registrador de flags). Conjunto de funções: As 22 instruções implementadas no simulador do PIC Casos de treinamento: 25 pontos de condições iniciais (x,v), escolhidos uniformemente espaçados, entre 0,75 e 0,75. 5 valores para x e 5 valores para v (-0,750, -0,375; 0; 0,375, 0,750). Acertos: Número de casos de treinamento que não causaram timeout Aptidão: Soma do tempo, sobre os 25 casos de treinamento, levado para estacionar o carro. Quando um caso de treinamento causa um timeout, a contribuição é de 10 segundos. Avaliação: O menor número de timeouts. Como primeiro critério de desempate, a menor aptidão. Como segundo critério de desempate, o menor comprimento do indivíduo. Parâmetros principais: M = 500. Steady state. Número de indivíduos processados: 400.000, o que equivale a G = 800. p c = 0,8, p m = 0,4. Predicado de sucesso: Nenhum. 49

Estudos de Caso 2. Cart Centering Resultados 300 Evolução sem controle sobre o comprimento 250 200 150 100 Aptidão Comprimento 50 0 Time outs 0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 Ciclos 50

Estudos de Caso 2. Cart Centering Resultados 300 Evolução com controle sobre o comprimento 250 200 150 Ciclo 7000 (12 min): Primeiros indivíduos c/ time outs = 0 Ciclo 80000 (2h 20min): Primeiros indivíduos desempenhando controle ótimo 100 Aptidão 50 Comprimento Time outs 0 0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 Ciclos 51

Estudos de Caso 2. Cart Centering Resultados Programa resultante Código evoluído com 25 instruções Configuração PIC e montador Leitura das portas de entrada Código evoluído Escrita na porta de saída BTFSC X,7 SUBWF V,W BTFSC V,7 SUBWF V,F MULWF X INCF V,W ADDWF X,F ADDWF X,F MULWF PRODH,W SUBWF PRODH,W MULWF X ADDWF X,F ADDWF X,F SUBWF PRODH,W BTFSC V,7 ADDWF X,F BTFSC X,7 SETF U MULWF PRODH SUBWF PRODH,W ADDWF X,F MULWF X MULWF PRODH BTFSC PRODH,7 SETF U 52

Estudos de Caso 3. Pêndulo Invertido Equilibrar um pêndulo sobre um carro no menor tempo possível Problema bem conhecido em teoria de controle Sistema mecânico inerentemente instável e de dinâmica não linear Solução desconhecida Controladores lineares obtiveram sucesso limitado Controladores não-lineares foram desenvolvidos por diversas abordagens de inteligência computacional Objetivos principais Verificar o desempenho do sistema ao sintetizar uma solução para uma planta mais complexa Comparar o resultado com a solução obtida por Koza (1992) 53

Estudos de Caso 3. Pêndulo Invertido Velocidade Angular Ângulo Velocidade V Potenciômetro -0,2 rad a 0,2 rad -0,2 rad/s a 0,2 rad/s -0,2 m/s a 0,2 m/s dx/dt dx/dt v A/D A/D A/D 8 8 8 Porta B Porta C Porta D u Amp Potenciômetro Porta E Motor Força F x(t) 0,0 54

Estudos de Caso 3. Pêndulo Invertido Modelo Matemático ( t) F g sen cos 4 3 m p m c m m p c 2 cos m p m p 2 sen : aceleração angular do pêndulo (rad/s 2 ) : velocidade angular do pêndulo (rad/s) : ângulo de inclinação do pêndulo (rad) F : força aplicada ao carro (1,0 N ou 1,0 N) m c : massa do carro (0,9 kg) m p : massa do pêndulo (0,1 kg) : altura do centro de gravidade do pêndulo (0,8106 m) g : gravidade (1,0 m/s) 55

56 Estudos de Caso 3. Pêndulo Invertido Modelo Matemático a : aceleração do carro (m/s 2 ) : período de amostragem (0,02 s) ) ( ) ( 1) ( t t t ) ( ) ( 1) ( t t t p c p m m m F t a cos sen ) ( 2 ) ( ) ( 1) ( t a t v t v

Estudos de Caso aptidão := 0 k := 0 3. Pêndulo Invertido Função de Avaliação k = 27 Conversão A/D das variáveis de entrada do indivíduo: v d (k,0) := A_D(v(k,0)) d (k,0) := A_D((k,0)); d (k,0) := A_D((k,0)) N S Fim da avaliação de um indivíduo Valores iniciais: v = -0,2; 0,0; 0,2 = -0,2; 0,0; 0,2 = -0,2; 0,0; 0,2 (todas as 27 combinações) t:=0 t = 6 s Execução do indivíduo pelo simulador de PIC: u d (k,t) := Executa(v d (k,t), d (k,t), d (k,t)) N S touts := touts+1 Fim da avaliação da parcela da aptidão relativa ao caso k k:=k+1 Simulação da planta: (v(k,t+1), (k,t+1), (k,t+1)) := Simula(v(k,t), (k,t), (k,t), u(k,t)) aptidão := aptidão + 0,02 t:=t+0,02 N (v(k,t) 2 +(k,t) 2 +(k,t) 2 ) 1/2 < 0,07 S 57

Estudos de Caso 3. Pêndulo Invertido Resumo do Experimento Objetivo: Sintetizar um programa em linguagem de montagem que possibilite a um MC PIC18F452 controlar um carro em um trilho, de forma a conduzir um pêndulo invertido ao equilíbrio. Conjunto de terminais: V (velocidade do carro), O (ângulo), w (velocidade angular) e U (controle); A1 e A2 (auxiliares); PRODH e PRODL (registradores do hardware multiplicador); STATUS (registrador de flags). Conjunto de funções: As 22 instruções implementadas no simulador do PIC Casos de treinamento: 27 pontos de condições iniciais (v,, ), escolhidos uniformemente espaçados, entre 0,2 e 0,2. São 3 valores para cada variável: -0,2; 0 e 0,2. Acertos: Número de casos de treinamento que não causaram timeout Aptidão: Soma do tempo, sobre os 27 casos de treinamento, levado para estacionar o carro. Quando um caso de treinamento causa um timeout, a contribuição é de 6 segundos. Avaliação: O menor número de timeouts. Como primeiro critério de desempate, a menor aptidão. Como segundo critério de desempate, o menor comprimento do indivíduo. Parâmetros principais: M = 1000. Steady state. Número de indivíduos processados: 400.000, o que equivale a G = 400. p c = 0,8, p m = 0,4. 58

Estudos de Caso 3. Pêndulo Invertido / Resultados 160 140 120 100 Ciclo 66000 (3h 20min): Primeiros indivíduos c/ time outs = 0 Aptidão Tempo médio p/ o cubo v - - : Pseudo-ótima: 2,96 PG: 2,84 80 60 40 Comprimento 20 Time outs 0 0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 Ciclos 59

Estudos de Caso 3. Pêndulo Invertido Resultados Programa resultante Código evoluído com 25 instruções Configuração PIC e montador Leitura das portas de entrada Código evoluído Escrita na porta de saída ADDWFC PRODH, F BTFSC STATUS, 0 RLCF PRODL, F RLCF w, F RLCF O, W ADDWF w, F ADDWFC PRODH, F ADDWF w, W ADDWFC V, W SUBWF PRODL, F MOVFF w, W RLCF U, F SUBWF PRODH, F RLCF PRODL, F ADDWF V, W ADDWFC V, W RLCF O, W ADDWFC PRODL, F CPFSGT V ADDWFC PRODL, F CPFSEQ PRODL CPFSGT V SUBWF PRODH, W BTFSS U, 7 RLCF U, F 60

Sumário Motivação Controle de Processos por Meio de Microcontroladores: Caracterização e Aplicação Programação Genética Sistema de Síntese Automática de Programas em Linguagem de Montagem Estudos de Caso Conclusões 61

Conclusões Evolução direta em assembly mostrou-se imprescindível Evolução de programas com otimização do código plataforma limitada A compilação, efetuada a cada avaliação, tomaria muito tempo e inviabilizaria o uso prático do sistema Sistema mostrou desempenho satisfatório nos estudos de caso Sintetizou programas com desempenho comparável a outras abordagens 62

Conclusões Uso prático do sistema mostrou-se vantajoso Programas obtidos diretamente do modelo matemático da planta Elimina busca matemática por uma solução de controle ótimo ou sub-ótimo Soluções no formato final da plataforma de implementação Elimina programação manual da solução encontrada Elimina possíveis etapas intermediárias entre a modelagem e a implementação 63

Conclusões Tempo de síntese competitivo com um ser humano Forneceu soluções em poucas horas Síntese tradicional pode levar alguns dias Complexidade dos sistemas típicos representados pelos estudos de caso Programação de um dispositivo limitado em recursos como o MC É importante diminuir o tempo total de evolução Mesmo sendo competitivo, ainda é relativamente longo 64

Conclusões Possíveis direções de trabalhos futuros Desenvolver algoritmo que identifique trechos não efetivos de código (introns) Introns não seriam executados pelo simulador do MC Economia de tempo Mutação aplicada apenas no código efetivo Maior rendimento do operador Investigar o uso de nichos (demes) Retardar convergência final Processamento paralelo 65

Conclusões Possíveis investigações Investigar as possíveis contribuições de se evoluir laços Estudar o tratamento de laços infinitos Desenvolver o sistema para MCs baseados na plataforma Intel x86 Aumento da velocidade do sistema Programas executados pela CPU do PC Estabelecimento de uma plataforma de evolução intrínseca 66