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