Você está na página 1de 3

Resumo: A programação baseada em autômatos modela o comportamento de sistemas de

software por meio dos chamados objetos automatizados controlados, sendo estes divididos em
duas partes que são um objeto de controle e um autômato finito. A finalidade do autômato é levar
eventos e variáveis de entrada à um conjunto de saídas, chamados de ações de saída do objeto
controlado. Segundo os autores, para alguns problemas o automato finito pode ser construído
manualmente. No entanto, existem problemas para os quais a construção manual é muito difícil,
como por exemplo o controle de aeronave não tripulado. Uma das abordagens para solução deste
problema é o uso de algoritmos genéticos para a geração de autômatos finitos. Desta forma, os
autores propõe um algoritmo genético para modelagem de autômatos finitos, sem o uso de
modelagem para a função de aptidão, tornando-a mais geral, podendo ser utilizada para outros
objetos de controle. Outra vantagem é a possibilidade de atribuir valores contínuos
(representados por números reais) às ações de saída. Um conjunto de teste é dado como entrada
do algoritmo. A partir desta entrada, o algoritmo deve modelar um autômato finito para o qual o
comportamento dos testes de entrada é o mais próximo possível do desejado. Segundo os autores,
um objeto controlado é representado por seus parâmetros de estado (chamados no artigo de
parâmetros de entrada) e seus parâmetros de controle (por exempo, altitude e iniciador,
respectivamente, se o objeto controlado for um avião). Os parâmetros de controle podem ser
discretos ou contínuos. As ações de saída que alteram parâmetros discretos são chamadas de
ações discretas, e a mudança de parâmetros contínuos é chamada de ações contínuas. As ações
contínuas consecutivas são equivalentes à soma dessas ações e as ações discretas consecutivas
são equivalentes a última ação. Cada teste T, que representa os dados de treino do algoritmo, é
constituído de duas partes chamadas T.in e T.ans, de comprimento T.len cada um. A primeira
parte contém os valores dos parâmetros de entrada e a segunda parte contém os valores de
referência dos parâmetros de controle. Cada elemento T.in[t] contém P números que representam
o valor do parâmetro de entrada no instante de tempo t. Cada elemento T.ans[t] contém duas
coleções de números. A primeira coleção contém os valores de D parâmetros discretos,
referênciada como T.ans[t].d. A segunda coleção contém os valores de C parâmetros contínuos,
referênciada como T.ans[t].c. A coleção T.out representa sequência de parâmetros de controle
produzida pelo autômato finito no teste T, seguindo a mesma estrutura de T.ans. O i-ésimo teste
é denotado por T[i] e N representa o número total de testes. Segundo os autores, antes de tudo
devem ser definidos os predicados do objeto controlado. Um predicado representa o estado do
objeto controlado, descrito por meio de uma fórmula matemática, que pode expressar uma
relação de dependencia entre os parâmetros de entrada no momento atual, ou entre os parâmetros
dos estados em momentos anteriores de tempo. Um predicado pode ser “o avião está
decrescendo”, que significa dizer que a altitude atual do avião é menor em relação a altitude
anterior. É importante descatar que a lista de predicados é construída manualmente antes mesmo
da execução do algoritmo genético, e permanece fixa, não podendo ser alterada em tempo de
execução. Na execução do algoritmo, o número de estado é fixado e é o mesmo para todos os
indivíduos gerados. Cada transição tem uma condição de guarda especificada, sendo que esta
última tem uma de duas formas: “xi” ou “¬xi”, onde xi é o i-ésimo predicado. Cada indivíduo
gerado representa um esqueleto de um autômato finito, não especificando ações de saída nas
transições. As ações de saída são determinadas pelo algoritmo de rotuação de transição, que é
executado antes do calculo da função de aptidão, para maximização do valor da aptidão. Este
passo é o diferencial do método proposto em relação aos algoritmos genéticos clássicos. Cada
ação de saída produzida consiste e uma D-tupla de ações discretas em todos os controles discretos
C-tupla de ações em todos os controles contínuos. O esqueleto é representado por uma tabela de
transição completa, onde para cada estado e para cada valor de predicado (verdadeiro ou falso)
pode haver uma transição. A função de aptidão é calculada com base na minimização da distância
entre entre as ações de saída determinidas pelo algoritmo (T.out) e as ações de saída desejadas
(T.ans), dada pela seguinte fórmula:

1 𝜌(𝑇[𝑖].𝑜𝑢𝑡,𝑇[𝑖].𝑎𝑛𝑠)2
Fitness = 1 − √𝑁 ∑𝑁
𝑖=1 ,e
𝜌(𝑇[𝑖].𝑎𝑛𝑠,0)2

𝑇.𝑙𝑒𝑛 𝐷 𝐶

𝜌(𝑜𝑢𝑡, 𝑎𝑛𝑠) = √ ∑ (∑[𝑜𝑢𝑡[𝑡]. 𝑑[𝑘] ≠ 𝑎𝑛𝑠[𝑡]. 𝑑[𝑘]] + ∑(𝑜𝑢𝑡[𝑡]. 𝑐[𝑘] − 𝑎𝑛𝑠[𝑡]. 𝑐[𝑘])2 )
𝑡=1 𝑘=1 𝑘=1

Onde D é o número de controles discretos e C o número de controles contínuos. Os valores para


as ações.
Para o rótulo das transições, todas as transições do automato para todos os testes são gravadas.
A partir das transições obtidas é possível calcular os valores para cada um dos parâmetros
discretos e contínuos, por meio de um conjunto de equações. Para a validação da abordagem
proposta, o simulador de avião FlightGear é utilizado como o objeto controlado. O objetivo é
gerar um autômato capaz de controlar a avião executando o loop e depois continuar a avançar.
Para esta finalidade um conjunto de passos foi executado: um conjunto de predicados para
descrever os estados do avião foi criado; três conjuntos de testes foram utilizados separadamente,
consistindo cada um de 10 testes. O algoritmo foi executado para vários conjuntos de testes e
vários parâmetros do algoritmo: tamanho da população - 100 indivíduos; O autômato continha
não menos de 2 e não mais de 5 estados; A probabilidade de mutação foi de 0,5 e 0,1; Estratégia
de seleção - seleção de torneio, crossover - cronômetro de autômato genérico, mutação - mutação
de autômato genérico; Tamanho de elite - 2 indivíduos. A lista de predicados escolhidos consistia
de 13 predicados, descritos a seguir: x0 - o motor está ligado; x1 - aceleração da mudança de
direção do movimento do plano é maior que zero; x2 - velocidade de mudança de direção do
movimento do plano é maior do que zero; x3 - o valor do desvio da direção inicial é inferior a 1
grau; x4 - o valor do desvio da direção inicial é maior que zero ; x5 - aceleração da mudança de
inclinação do plano é maior do que zero; x6 - velocidade da mudança de inclinação plana é maior
do que zero; x7 - inclinação plana é pequena (menos de 1 grau); x8 - inclinação do plano é
positiva; x9 - acelerar a mudança da velocidade vertical do plano é maior que zero; x10 - a
velocidade de alteração da velocidade vertical do plano é maior que zero; x11 - a velocidade
vertical é pequena (menos de 0,1 m / s) x12 - a velocidade vertical é positiva. A lista de controles
incluiu magneto, starter, acelerador, ailerons, elevador e leme, sendo os dois primeiros discretos
e os demais contínuos. Os resultados obtidos mostraram que os autômatos com estados entre 3-
4 obtiveram os melhores resultados. Enquanto que os autômatos com mais estados, se normavam
cada vez mais piores a medida que o número de estados aumentava. Foram realizadas 50 vezes
do algoritmo. Em cada execução o melhor indivíduo é gravado. Na maioria dos casos, o avião
conseguiu executar exatamente um loop e depois continuava seu percurso normal. Raras vezes o
avião não conseguiu realizar nenhum loop. De acordo com os autores, o método foi testado com
sucesso sobre o problema real, mostrando resultados melhores do que o comportamento humano.
Além de fornecer um método mais rápido para cálculo da função de aptidão em relação a
trabalhos anteriores (cerca de 0,2s).
Universidade Federal do Pará
Mestrado em Ciência da Computação
Disciplina: Teoria da Computação
Aluna: Alessandra Pantoja de Araujo

RESUMO – SEMINÁRIO

GENETIC ALGORITHM FOR INDUCTION OF FINITE AUTOMATA WITH


CONTINUOUS AND DISCRETE OUTPUT ACTIONS

ALEXANDROV, Anton et al. Genetic algorithm for induction of finite automata with continuous
and discrete output actions. In: Proceedings of the 13th annual conference companion on
Genetic and evolutionary computation. ACM, 2011. p. 775-778.

Você também pode gostar