Anda di halaman 1dari 6

NFA-: the Non-Deterministic Finite Automaton

with Random -moves, Environment Awareness and


Memory for Serious Games Modeling
Allan Oliveira, Fernando Vieira Duarte
Departamento de Computao
Universidade Federal de So Carlos
So Carlos, So Paulo, Brasil
allancaixeta@gmail.com, prof.fernando.duarte@gmail.com

Abstract Deterministic Finite Automaton (DFA) and


Discrete Event System Specification (DEVS) are two of the most
used formalism to model serious games and simulations in the
literature. However, they do not support the input of random
events, that could generate -moves, they do not support the
specification of physical places and they do not have a memory,
thus past actions cannot be used as inputs. Therefore, to
complement these models of automatons for modeling
simulations, this paper proposes a Non-Deterministic Finite
Automaton with random -moves, environment awareness and
memory. A study case of a maintenance serious game situated in
a hydro power plant is presented to exemplify the use of the
proposed variation of the NFA.
KeywordsDFA; NFA; NFA-; Serious Games; Modeling and
Simulation

I. INTRODUO
A simulao de um procedimento de treinamento ou de
operao de manuteno (por exemplo, inspeo de uma
unidade geradora de usina hidreltrica) necessita de modelos
formais, tais como a Especificao de Sistema a Evento
Discreto (Discrete Event System Specification DEVS) e o
Autmato Determinstico Finito (Deterministic Finite
Automaton DFA), para modelagem dos comportamentos do
sistema e, se necessrio, a incluso dos pontos de avaliao do
desempenho, pela anlise da sequncia do procedimento
usando estes modelos formais [1].
O modelo formal possibilita identificar os pontos de
avaliao e as aes tomadas pelo operador/aprendiz, por meio
dos seus estados e transies. Quando o operador/aprendiz faz
uma ao, isto corresponde a uma transio que leva a um
novo estado que pode ser correto ou incorreto, e o
operador/aprendiz recebe um feedback sobre a ao realizada
(por exemplo, o esquecimento de um Equipamento de Proteo
Individual - EPI). Neste caso, a DEVS e o DFA so utilizados
para modelar estados e transies bem definidas (o primeiro
quando envolve tempo e o segundo quando no envolve
tempo).
Outros modelos formais oferecem diferentes possibilidades
de estilo de modelagem. Por exemplo, o Autmato Finito NoDeterminstico (Non-Deterministic Finite Automaton NFA)

permite modelar uma tarefa usando menos estados do que um


DFA (provado pelo teorema da equivalncia de um NFA para
um DFA [1]), por permitir que uma mesma entrada resulte em
duas transies diferentes. Outro exemplo o Autmato
Probabilstico (Probabilistic Automaton PA), que atribui uma
probabilidade para transies de estados.
Neste artigo apresentado um modelo formal nomeado
NFA-, baseado na juno de Autmato Finito NoDeterminstico com transies espontneas () e Autmato
Probabilstico. Alm disso, uma srie de notaes e regras
novas foram propostas, para que o modelo formal seja capaz de
oferecer entradas com valores aleatrios, cincia do ambiente e
memria.
O objetivo criar um autmato flexvel o bastante para
modelar jogos srios com certo nvel de complexidade, sem
precisar criar um autmato complexo.
O artigo esta dividido em: (II) Notaes e formalismo
adicionado ao modelo padro de autmato (DFA) para
transform-lo no NFA-; (III) Explicao e demonstrao das
regras usadas para construir um NFA-; (IV) Discusso sobre
os resultados do NFA-; (V) Concluso e trabalhos futuros.
II.

FORMALISMO ADICIONAL AO DFA

A. Notaes
As notaes tradicionais de DFA/NFA utilizam a letra q
para a representao de estados, a letra e para a representao
de estados de erro, a letra p para a representao de uma
entrada que gera uma transio (no caso da manuteno, uma
transio equivalente a um procedimento de trabalho) e a
letra n para a representao de uma entrada negada, ou seja,
uma entrada no executada (um procedimento que deixou de
ser executado). Embora essas notaes sejam suficientes para
atender autmatos de problemas simples, quando se aumenta a
complexidade da simulao, sente-se a falta de uma variedade
maior de notaes.
Notao 1 Para aumentar a gama de possibilidades na
modelagem da simulao, prope-se primeiramente a notao
r. Essa notao representa a probabilidade de um evento
aleatrio acontecer (evento que exigir uma resposta do

usurio). Desta forma, possvel criar um nico NFA com


diversos comportamentos diferentes, aumentando o valor de
uma simulao gerada a partir desse autmato. Com essa
notao, um modelo de simulao pode ser usado repetidas
vezes, pois a experincia do usurio ser diferente em cada
utilizao. Sem essa notao (ou alguma outra forma de se
acrescentar eventos aleatrios), a simulao de um treinamento
gerada/modelada por um autmato se restringe a uma nica
utilizao por usurio.
Essa notao inspirada nas transies espontneas do
Autmato Finito No-Determinstico com Transies
espontneas (NFA-), porm a diferena que as transies r
tem uma probabilidade definida de acontecer, sorteada no
comeo da execuo da simulao (conceito tambm presente
no Autmato Probabilstico). Por isso, o autmato proposto
neste artigo foi nomeado NFA-, pois existe a probabilidade
de
transies
espontneas
(),
mas
elas
so
controladas/influenciadas (a letra delta usada
tradicionalmente na Matemtica para indicar uma diferena em
um valor de uma varivel).
Exemplo 1 Um exemplo de transio r apresentado na
Funo de Transio 1 e na Figura 1, onde a transio r01
representa um evento de temperatura acima do normal
(sobreaquecimento), com 20% de chance de acontecer, e caso o
evento acontea a transio leva ao estado q02.

Figura 3: Visualizao do espao para definio do autmato e o


espao para definio dos locais.

B. Transio Anytime
A transio Anytime (traduzida como a qualquer
momento) uma transio de alto nvel de abstrao que
usada para permitir a gerao de transies p, que podem
acontecer independente do estado q atual do autmato. Desta
forma, a transio Anytime facilita a construo de mquinas
de estados reduzidos, e por isso j usada em modelagens que
exigem alto nvel, tal como o sistema de animao Mecanim do
engine para jogos Unity3D [3].
Um exemplo de transio Anytime pode ser visto na Figura
4. Visualmente a diferena para a transio normal que as
transies Anytime no precisam ter uma origem e so
representadas por setas grossas tracejadas.

Funo de transio 1 r01: temperatura alta (20%) -> q02

Figura 1: Exemplo de transio r.

Notao 2 Outra notao proposta a l, que representa um


local/lugar. Com essa notao torna-se possvel indicar o local
onde um estado ou procedimento deve ser realizado. Atravs
desta notao, o NFA proposto considerado ciente do
ambiente do usurio. A representao visual desta notao
pode ser visto na Figura 2. Visualmente eles so similares a
estados, mas com os contornos tracejados.
Exemplo 2 Um exemplo de uso da notao de local l
l02: dentro do gerador

Figura 2: representao visual da notao l de local.

O exemplo 2 utilizado para representar que uma atividade


deve ser realizada dentro do gerador de uma usina hidreltrica.
Alm disso, as notaes de locais so definidas em um
espao fora do autmato, como pode ser visto na Figura 3.

Figura 4: Exemplo de uso de uma transio Anytime.

C. DFA com memria


Assim como a mquina de Turing, o NFA- proposto tem
a capacidade de usar o fato de transies terem ou no
acontecidas no passado e utiliz-lo para decidir o estado futuro.
Desta perspectiva, uma transio p, aps realizada, pode ser
usada como entrada para alterar um estado futuro q, mesmo
que essa transio, na teoria, j tenha sido consumida.
Essa escolha tambm foi feita para poder criar autmatos
poderosos, mas simples/pequenos. Embora seja possvel
modelar um NFA com essas caractersticas com uso do modelo
base, ele teria diversas ramificaes e uma grande quantidade
de processos repetidos para atender as ramificaes.
A Figura 5 mostra um exemplo do uso da Memria para
mudar o resultado de uma transio. A regra usada nessa figura
ser definida na prxima seo (Regra 3), mas a explicao
geral da Figura 5 que a transio p05 ser executada caso a
transio n01 j tenha sido executada previamente.

Figura 5: Exemplo do uso da Memria em uma transio de


estados.

III. REGRAS PARA MODELAGEM DO NFA-


Para exemplificar o NFA- proposto, utiliza-se o Exemplo

Como visto na Figura 8, o uso do smbolo ponto em um


estado gera subestados. Esses subestados so equivalentes a um
autmato dentro de um autmato, ou seja, possvel definir
uma sequncia de procedimentos dentro de um estado.

Exemplo 3 O exemplo extrado de uma instruo de trabalho


para inspeo de um gerador de uma usina hidroeltrica,
apresentado na Figura 6.

J o uso do ponto em transies equivalente a operao


lgica OR, podendo ser utilizado, portanto, em procedimentos
que no tem uma sequncia fixa de execuo. Como visto na
Figura 8, subtransies podem ser representadas como um
conjunto usando chaves ({}) ou individualmente usando o
ponto (.).

3.

Exemplo 3.1 Com a combinao das regras 1 e 2, a Atividade


8.1 da Figura 6 pode ser modelada da forma a seguir e
visualizada na Figura 9:
q00: permisso para incio do servio
o p01: obter equipamento de proteo -> q01
o n01: esquecer um equipamento de proteo
n01.1: rdio -> q00
n01.2: lanterna -> q00
n01.3: cinto trava-quedas -> q00
o r01: unidade geradora em funcionamento (10%) > q00
Figura 6: Fragmento de uma instruo de trabalho para inspeo
de um gerador de usina hidroeltrica.

Para iniciar a modelagem dessa atividade, as regras de


como se usar o NFA- devem ser estabelecidas.
Regra 1 No estado qX, usando o procedimento pY, leva-se ao
estado qZ. A representao visual pode ser vista na Figura 7.
qX
o pY -> qZ

Figura 7: Representao visual da Regra 1.

Regra 2 Um estado q ou transio p, n ou r podem ser


extendidos usando-se o smbolo ponto (gerando um subestado ou sub-transio)
o p01 -> q01
p01.1
p01.2

Figura 9: Exemplo de modelagem da atividade 8.1 da Figura 6.

Neste caso, deve-se notar, alm da combinao das regras 1


e 2, o uso da memria, pois caso as transies n ou r
aconteam, elas retornam para o mesmo estado q00 e ficam
salvas na memria, podendo ser utilizadas, portanto,
futuramente como uma transio. Para demonstrar melhor o
uso da memria, primeiro a Regra 3 apresentada.
Regra 3 No estado qX, usando o procedimento pY, leva-se ao
estado qZ. Porm, caso o procedimento pH ou nH ou rH tenha
sido executado anteriormente, leva-se ao estado eW. A
representao visual pode ser vista na Figura 10.
qX
o pY -> qZ
&(p/n/r)H -> eW

Figura 8: (A) Representao visual de um conjunto de subtransies. (B) Representao visual de um conjunto de subestados.

Figura 10: Representao visual da Regra 3.

Na Regra 3, o smbolo & funciona como um AND lgico,


para utilizar a memria e ao mesmo tempo verificar se a
transio desejada ocorreu anteriormente, e assim alterar o
resultado da transio p.

transio. Como as transies representam procedimentos


sendo executados, essa regra auxilia a modelar mquinas de
estado no qual o resultado do procedimento ir determinar qual
o prximo estado.

Exemplo 3.2 A Atividade 8.1 pode ser modelada utilizando a


Regra 3 como (visualizada na Figura 11):

Regra 5 F(qK,qZ) um simbolismo que significa que qK


executado como um estado especial e, em seguida, a mquina
procede para o estado qZ. Tal regra funciona como uma
chamada de funo/procedimento em algoritmos e sua
representao visual pode ser vista na Figura 14.

q02: cinto anexado


o p03: descer escada -> q03
&n01.2 -> e01

qX
o pY -> qZ | F(qK,qZ)

Figura 11: Exemplo de uso da Regra 3.

Para esse exemplo, pode-se ler: ao tentar descer a escada


com o cinto j anexado, caso se tenha esquecido a lanterna, o
usurio cometeu um erro.
Regra 4 No estado qX, usando o procedimento pY, leva-se ou
ao estado qZ ou ao estado qK, dependendo do resultado do
procedimento pY. A representao visual pode ser vista na
Figura 12.
qX
o pY -> qZ | qK

Figura 14: Representao visual da Regra 5.

A Regra 5 pode ser interpretada da seguinte forma: no


estado qX, usando o procedimento pY, leva-se ou ao estado qZ
ou ao estado qK, dependendo do resultado do procedimento
pY. Porm, devido ao F(qK), caso o estado escolhido seja qK,
o procedimento de qK executado e a mquina avana para o
estado qZ.
Exemplo 3.4 A Regra 5 pode ser utilizada para aprimorar a
modelagem da atividade apresentada no Exemplo 3.3. A
representao pode ser vista na Figura 15.
q03: Atividade Geral
o p04: verificar rudos -> q05 | F(q04,q05)

Figura 12: Representao visual da Regra 4.

q04: rudos anormais


q05: rudos normais

Exemplo 3.3 A Atividade 8.2 da Figura 6 pode ser modelada


com o uso da Regra 4 da seguinte forma, visualizada na Figura
13:
q03: Atividade Geral
o p04: verificar rudos -> q05 | q04
q04: rudos anormais

Figura 15: Exemplo de uso da Regra 5.

q05: rudos normais

Neste exemplo entende-se que caso a verificao de rudos


detecte rudos anormais, o usurio dever primeiramente
executar o procedimento para resolver o problema, para ento
poder avanar na execuo normal de suas tarefas.

Figura 13: Exemplo de uso da Regra 4, modelando a atividade


8.2 da Figura 6.

Observando o exemplo, entende-se que a Regra 4 pode ser


usada para especificar diversas sadas geradas por uma nica

Exemplo 3.5 Com a juno de todas as regras possvel


construir uma mquina de estados mais flexvel do que em um
NFA- normal, que necessita de menos estados e transies
para representar o mesmo procedimento, tal como
demonstradas a seguir e visualizado na Figura 16:
q05.1: rudo ou vibraes verificados e OK

o p06.1: verificar iluminao -> q05.1| F(q05.2,


q05.1)
& p06.2: q06 | F(q05.2, q06)
o p06.2: verificar condies de limpeza -> q05.1 |
F(q05.3, q05.1)
& p06.1: q06 | F(q05.3, q06)
q05.2: lmpadas apagadas
q05.3: local sujo
q06: iluminao e limpeza OK

Figura 17: Exemplo de uso das notaes de locais e de uma


transio Anytime.

O Exemplo 3.6 pode ser visualizado na Figura 17, e lido


como: se o usurio estiver nos transdutores de posio das ps
do rotor e usar o rdio, ele comete um erro. Portanto, este
exemplo mostra no somente como deixar a mquina de estado
ciente do ambiente, mas tambm como possvel usar a
transio Anytime para criar regras globais que no podem ser
desobedecidas durante a execuo dos procedimentos da
instruo de trabalho.
IV. DISCUSSO SOBRE O DFA-
Autmatos so usados em jogos srios para passar o
conhecimento do modelador da simulao para o
desenvolvedor/programador. Eles tm o mesmo propsito que
documentos de design entregue a programadores, ou seja, so
ferramentas de design que ajudam a manter a consistncia de
um projeto durante seu ciclo de desenvolvimento.

Figura 16: Exemplo de uso das regras 1 a 5 em um NFA.

Este exemplo ajuda a entender a modelagem de


procedimentos que no tem ordem para serem realizados, mas
no qual somente aps a concluso o usurio avana no jogo.
Portanto l se o exemplo como: o usurio deve realizar a
verificao de iluminao e condies de limpeza, sem uma
ordem pr-determinada, e resolver qualquer problema
descoberto durante esses procedimentos, para poder avanar
para a prxima etapa.
Exemplo 3.6 Para finalizar, demonstra-se o uso da transio
Anytime e da notao l (de local). Os locais so definidos fora
da mquina de estados, tais como:
Locais
l1: fora do gerador
l2: dentro do gerador
o l2.1: transdutores de posio das ps do rotor
Com os locais definidos, consegue-se demonstrar o uso da
transio Anytime, que tambm so definidos em um espao
fora da mquina de estados, como:
Anytime
l2.1
o p101: usar o rdio -> e02

No desenvolvimento de jogos srios, game designers


geralmente usam autmatos como modelos formais para
modelagem comportamental [1]. Entretanto, na indstria de
jogos, grande parte do desafio, comportamento e experincia
que se quer passar para o jogador realizada no processo
chamado level design [4], que no suportado por um DFA. A
Notao 2, de local (l), proposta neste artigo como um
conector entre a modelagem comportamental (o autmato) e o
level design, para que seja possvel referenciar o ambiente na
modelagem do comportamento.
A Notao 2 ganha uma utilidade ainda maior quando
usada em conjunto com a transio Anytime. Como essa
transio permite criar regras independentes do estado atual do
usurio, quando usada em conjunto com a Notao 2 ela
permite modelar autmatos que sejam cientes do ambiente do
usurio. Em outras palavras seria possvel gerar uma tabela de
riscos da tarefa por local, e modelar esses riscos no autmato
para garantir que o jogo srio ajude o usurio a conhecer os
riscos de cada ambiente.
Para aprimorar a capacidade de modelar riscos, a Notao 1
(r) pode ser usada para projetar eventos que acontecero
durante a simulao. Tais eventos tm uma probabilidade de
acontecer a cada nova simulao iniciada. Dessa forma, o valor
de uma simulao modelada com o NFA- tende a ser maior
do que o DFA, pois ela vai permitir que os usurios realizem o
treinamento mais de uma vez para obter diversos
conhecimentos diferentes. Os eventos aleatrios foram o
jogador a se adaptar a situaes diferentes em cada partida.
A Memria tambm ajuda a aumentar a flexibilidade do
autmato para gerar diferentes partidas para o usurio. Caso
uma transio espontnea r acontecesse em um NFA

tradicional, a mquina de estados seria obrigada a trocar de


estado e criar uma ramificao para gerenciar essa transio.
Com a adio da Memria, transies podem acontecer a
qualquer momento e serem usadas posteriormente, o que tende
a diminuir o nmero de estados necessrios para construir um
autmato. Por exemplo, caso um evento aleatrio seja sorteado
em uma partida, ao invs de modelar uma transio para um
grupo de estados responsveis por esse evento, ele ficar salvo
na memria da mquina (como uma transio j realizada) e
pode ser usado posteriormente para levar a uma transio
diferente da esperada (como mostrado no exemplo 3.2).

de estado que conversam entre si, ao invs de um grande


autmato que modela toda a simulao.

Alm disso, as regras tambm ajudam a flexibilizar mais o


autmato proposto. Elas aproximam o autmato a uma
linguagem de algoritmo, permitindo criar uma lgica de
execuo para eles. A regra 3 por exemplo, se aproxima de
uma estrutura SE-ENTO-SENO, pois caso a transio
dentro do & seja verdadeira ela executada, se no a
transio original a executada.

As novas regras e notaes sugeridas no artigo permitem


modelar jogos srios de forma mais fcil, ao diminuir o nmero
de estados necessrios para se criar modelos complexos de
comportamento em uma simulao.

J a regra 4 potencializa o autmato ao permitir que


transies retornem um resultado verdadeiro ou falso (ou no
caso, se funcionou ou se no funcionou). Devido a essa regra o
autmato proposto foi determinado como sendo nodeterminstico, ou seja, um autmato no qual uma mesma
entrada pode gerar diferentes transies. Porm, diferente do
NFA, a regra 4 subentende que o processo da transio que ir
determinar qual o prximo estado. Em outras palavras, em um
NFA, as entradas so o importante para definir as transies, j
no NFA-, o processo em si de executar a transio ganha
importncia (o procedimento tcnico), e o resultado deste
processo pode alterar a funo de transio. Essa regra
interessante devido a natureza do ambiente de simulao, que
exige uma interao com o ambiente virtual.
A ltima regra, 5, da ao autmato o poder da recursividade.
Com essa regra possvel modelar uma mecnica similar a
chamadas de procedimentos/funes em algoritmo. Entretanto,
enquanto que procedimentos visam a reduzir o cdigo ao
transformar um pedao de cdigo em reusvel, o principal
objetivo da regra 5 criar subprocedimentos que podem ser
acionados e quando finalizados o fluxo de execuo da
mquina de estado retoma o estado prvio. Futuramente ele
ser usado para comunicao entre diferentes mquinas de
estado, para que seja possvel definir diversas micro mquinas

V. CONCLUSO E TRABALHOS FUTUROS


Neste artigo proposto uma srie de adies a Autmatos
Finitos No-Determinsticos para melhor capacit-los a auxiliar
a modelagem do comportamento em jogos srios. Embora seja
possvel reproduzir a maioria das propostas no modelo original
de NFA, o modelo proposto NFA- tem como principal
objetivo facilitar a modelagem, atravs de regras que diminuam
a complexidade.

Futuramente o autmato proposto ser expandido para


atender a alguns requisitos ainda no listados neste artigo,
como por exemplo, permitir adicionar uma lista de riscos de
cada procedimento e o seu mtodo de controle de forma mais
fcil, e tambm definir melhor os espaos fora do autmato
central (tanto a transio Anytime como a notao de local l).
Alm disso, esse autmato ser usado para gerar simulaes
que treinaro o usurio a desenvolver um melhor nvel de
conscincia da situao, e algumas regras sero criadas para
atender esse requisito [5].
AGRADECIMENTOS
Agradecemos ao CNPq e FAPESP pelo financiamento ao
INCT-SEC, processos 573963/2008-8 e 08/57870-9.
REFERNCIAS
[1]

[2]
[3]
[4]
[5]

Rocha, R.V.; Araujo, R.B.; Metodologia de Design de Jogos Srios


para Treinamento: Ciclo de vida de criao, desenvolvimento e
produo, Simpsio Brasileiro de Jogos e Entretenimento Digital
(SBGames 2013), 2013, p. 63-72.
Hopcroft J., Motwani R., Ullman J.; Introduction to Automata Theory,
Languages, and Computation, Prentice Hall, 3 edio , 2006.
http://docs.unity3d.com/Manual/MecanimAnimationSystem.html
Rogers S; Level Up!: The Guide to Great Video Game Design, Wiley,
1 edio, 2010.
Endsley M.; Jones D.; Designing for Situation Awareness: An
Approach to User-Centered Design, CRC Press, 2 edio, 2011.