ANAIS EPOCA 2016 FINAL

advertisement
COORDENAÇÃO GERAL DO EVENTO
Isaac de Lima Oliveira Filho - UERN
COORDENAÇÃO DO COMITÊ DE PROGRAMA
Camila de Araújo Sena - UERN
REALIZAÇÃO
Universidade do Estado do Rio Grande do Norte (UERN)
Campus de Natal
PROMOÇÃO
Sociedade Brasileira de Computação (SBC)
APOIO
Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte (IFRN)
Universidade Federal do Rio Grande do Norte (UFRN)
Universidade Federal Rural do Semi-Árido (UFERSA)
APRESENTAÇÃO
Estes anais registram os trabalhos apresentados na 9ª edição da Escola Potiguar de
Computação e suas Aplicações (EPOCA 2014), realizada na cidade de Natal (RN), no
período de 23 a 25 de novembro de 2016.
Esta edição cumpre o seu objetivo de estabelecer uma ponte entre os conceitos e a
prática da computação, promovendo a interação e aproximação de estudantes,
professores, pesquisadores e profissionais de Computação do Estado do Rio Grande do
Norte (RN) e vizinhança.
O tema principal da EPOCA 2016 foi Desafios e Soluções para Cidades Inteligentes no
RN. Durante o evento foi possível vislumbrar à contribuição das mais diversas áreas da
computação para o surgimento de cidades inteligentes, onde a gestão dos recursos e
solução de problemas cotidianos acontecem de forma mais eficiente, por meio da
tecnologia.
Em sua 9ª edição, a Escola incluiu em sua programação minicursos, palestras,
apresentação de pôsteres, mesa redonda e sessões técnicas com apresentação dos
trabalhos científicos selecionados. As sessões técnicas contaram com a apresentação de
18 trabalhos, os quais foram avaliados por membros do comitê de programa. Foram
apresentados 16 trabalhos na categoria pôster.
Toda a programação apresentada colaborou para ampliar o conhecimento e reflexões
dos participantes sobre as Cidades Inteligentes e mostrar o quanto é desafiador para as
diversas áreas da Computação a implementação desse conceito, portanto, gostaria de
agradecer aos membros da mesa e aos palestrantes convidados pela dedicação e
contribuição ao evento. Também agradeço aos membros do Comitê de Programa, pela
alta qualidade do trabalho produzido, que foi determinante para a qualidade do
programa apresentado. Finalmente, gostaria de agradecer à Sociedade Brasileira de
Computação (SBC) pelo o apoio ao evento.
Natal (RN), novembro de 2016.
Camila de Araújo Sena
PALESTRAS CONVIDADAS
Cidades Inteligentes: Conceitos, Aplicações e a Experiência de Natal
Nélio Alessandro Azevedo Cacho
Doutor, University of Lancaster
Professor Adjunto do Departamento de Informática e Matemática Aplicada - UFRN
A Internet das Coisas Urbanas
Everton Ranielly de Sousa Cavalcante
Doutor, UFRN e Université Bretagne Sud
Professor Adjunto do Departamento de Informática e Matemática Aplicada - UFRN
A Internet das Coisas na Educação: uma Visão Geral
Rommel Wladimir de Lima
Doutor, UFRN
Professor Adjunto do Departamento de Informática - UERN
Natal como Cidade Inteligente e Humana: Integrando o Ecossistema de Inovação local
Irani Santos
Pós - Graduada em Gestão Pública, UFRN
Diretora de Desenvolvimento Socioeconômico – Prefeitura do Natal
Cidades Inteligentes e Humanas e Ecossistemas de Inovação
Álvaro de Oliveira
Doutor, University of London
Consultor do Banco Mundial (Inovação) e Presidente do Human Smart Cities Network
MESA REDONDA
Desafios e Soluções para Cidades Inteligentes na região metropolitana de Natal
Mediador:
Francisco Dantas - UERN
Participantes:
Álvaro de Oliveira - UERN
Irani Santos - SEMPLA
Nélio Alessandro Azevedo Cacho - UFRN
Rommel Wladimir de Lima - UERN
COMITÊ DE PROGRAMA
Artigos Longos
-
Anderson Abner de Souza - UERN
Adriana Takahashi - UERN
Andre Gustavo Almeida - IFRN
Andre Gustavo Silva - UERN
Angelica Castro - UFERSA
Aquiles Burlamaqui - UFRN
Araken Santos - UFERSA
Bartira Rocha - UERN
Bruno Cruz de Oliveria - UERN
Bruno Gurgel - IFRN
Camila de Araújo Sena - UERN
Carlos Alberto de Albuquerque
Carlos Andre Guerra Fonseca - UERN
Francisco Dantas - UERN
Daniel Araujo - UFRN
Felipe Aleixo - IFRN
Felipe Oliveira - UERN
Frederico Lopes - UFRN
Gilbran Andrade - IFRN
Glaucia Campos - UERN
Isaac de Lima Oliveira - UERN
Karla Ramos - UERN
Joêmia Leilane Martins - UFERSA
Lisa Cristina França - UERN
Lyrene Fernandes - UFRN
Marcelino Pereira Silva - UERN
Marilia Freire - IFRN
Marjory Abreu - UFRN
Placido Souza Neto - IFRN
Rafael Aroca - UFRN
Raul Paradeda - UERN
Rommel Lima - UERN
Rosiery Maia - UERN
Rummenigge Dantas - UFRN
Sebastião Alves - UERN
Tadeu Ferreira - IFRN
Tiago Gameleira - IFRN
Wilfredo Blanco - UERN
Artigos Curtos
- Anderson Abner de Souza - UERN
- Abrahao Christophe Bezerra Lopes - IFRN
-
Adriana Takahashi - UERN
Alberto Signoretti - UERN
Anchieta Gomes - IFRN
Andre Gustavo Pereira da Silva - UERN
Camila de Araújo Sena - UERN
Carlos Andre Guerra Fonseca - UERN
Claudia Ribeiro Fernandes - IFRN
Demostenes Santos de Sena - IFRN
Felipe Denis de Oliveira - UERN
Frederico Lopes - UFRN
Glaucia Campos - UERN
Jessica Figueredo Leite - UERN
Marjory Abreu - UFRN
Rafael Aroca - UFRN
Raul Paradeda - UERN
Rommel Lima - UERN
Rosiery Maia - UERN
Rummenigge Dantas - UFRN
Tiago Gameleira - IFRN
Uira Kulesza - UFRN
Minicursos
- Camila de Araújo Sena - UERN
- Isaac de Lima Oliveira Filho - UERN
ÍNDICE
Artigos Longos
Uma Análise Experimental de Algoritmos Exatos para a A rvore Geradora Biobjetivo .............. 11
Ferramenta de apoio a gerência das Unidades Básicas de Saúde do Estado do Piauí – Um Estudo
de Caso ....................................................................................................................................... 21
ATiNEU, uma proposta de uma ferramenta on-line de uso geral para gerenciar atlas digitais do
cérebro ....................................................................................................................................... 29
Desenvolvimento de um aplicativo Android para compressão de dados utilizando a metodologia
de desenvolvimento Ágil ICONIX ................................................................................................ 37
Um Algoritmo de Roteamento para Vistoria dos Estádios da Eurocopa 2016 .......................... 47
Uma heurística baseada no método de busca A* aplicada ao problema de roteamento.......... 57
Proposta de Implementação Paralela de Algoritmo Genético Para Funções de Duas Variáveis em
FPGA ........................................................................................................................................... 67
Arquitetura Paralela do Algoritmo de Aprendizagem por Reforço Q-learning para FPGA ........ 77
Análise de Qos dos protocolos de roteamento em RSSF energicamente eficientes e tolerantes a
falhas aplicados ao monitoramento de parques eólicos ........................................................... 87
Multithreading Support for Low Cost Internet of Things Microcontrollers ............................... 97
CO2Catcher: Uma plataforma para monitoramento de poluição veicular em cidades inteligentes
................................................................................................................................................... 107
Sistema de Controle de Acesso Utilizando Tecnologia Aberta ................................................ 117
Uma proposta de um Bot como instrumento facilitador do processo de ensino/aprendizagem na
disciplina "Construção de Algoritmos"...................................................................................... 127
A utilização da linguagem LOGO de programação como ferramenta colaborativa no processo
Ensino-Aprendizagem ............................................................................................................... 137
O avanço das publicações sobre as Linguagens de Programação Gráfica no Processo de EnsinoAprendizagem: uma Revisão Sistemática da Literatura focalizada no SBIE.............................. 147
Análise Comparativa de Estratégias de Varredura de Área para um Sistema de Comunicação
Multi Vants no Monitoramento da Área de Impacto de Foguetes Sobre o Mar ..................... 157
Teleoperação de um Robô Móvel Através do Controlador Leap Motion ................................ 167
Heurística para Planejamento de Caminho de Robôs usando representação por grade 2.5D
................................................................................................................................................... 177
Artigos Curtos
Sistema De Monitoramento Veicular De Baixo Custo, Com Antijamming Para Empresas De
Transporte ................................................................................................................................. 188
Proposta de Sistema de Reaproveitamento de Água em Laboratórios de Química nas
universidades do RN.................................................................................................................. 192
Lunapptico: Desenvolvimento de Software para Auxiliar na Comunicação de Crianças Autistas
do RN ......................................................................................................................................... 196
Anomalias Arquiteturais versus Refatoração: Um Estudo Preliminar utilizando Sistemas em
Evolução .................................................................................................................................... 200
Gestão Informatizada de Criações de Tilápia Nilótica em Sistema de Produção Semi-Intensivo
................................................................................................................................................... 204
Sistema Clínico de Comunicação de Mensagem HL7 ................................................................ 208
Avaliação Heurística da Interface do Moodle IMD-UFRN ......................................................... 212
Ferramentas de Código Aberto para Mineração de Dados: Uma Breve Pesquisa.................... 216
Heurística baseada no algoritmo A* para a localização de rotas com acessibilidade entre os
setores do campus central da UERN ......................................................................................... 220
Otimização do emprego da unidade móvel de pistoneio na explotação de poços de petróleo não
surgentes através da metaheurística BRKGA ............................................................................ 224
Uma Investigação do uso de Comitês de Classificadores Heterogêneos para Bases Biométricas e
Multibiométricas de Voz e Impressão Digital ........................................................................... 228
Contagem de Ovos do Aedes Aegypti Utilizando Processamento Digital de Imagens ............. 232
Desenvolvimento de uma Rede Definida por Software a Gerência De Redes Do Campus De Natal
................................................................................................................................................... 236
Aplicando o algoritmo genético de chaves aleatórias viciadas para otimização de entrega de água
com carro-pipa .......................................................................................................................... 240
Desenvolvimento de um sistema inteligente para apoio à Sala de aula no Ensino/Aprendizado
da taxonomia dos seres vivos utilizando redes neurais artificiais ............................................ 244
TaxoMobile: Protótipo de um aplicativo android inteligente para apoio à sala de aula no
ensino/aprendizado da taxonomia dos seres vivos .................................................................. 248
Minicursos
Análise das principais ferramentas de simulação de redes de sensores sem fio ..................... 253
Aprendendo lógica e linguagem de programação com a ferramenta Scratch ......................... 254
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Artigos Longos
10
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Uma Análise Experimental de Algoritmos Exatos para a
Árvore Geradora Biobjetivo
Islame Felipe da Costa Fernandes, Elizabeth Ferreira Gouvêa Goldbarg,
Silvia Maria Diniz Monteiro Maia, Marco Cesar Goldbarg
Departamento de Informática e Matemática Aplicada
Universidade Federal do Rio Grande do Norte (UFRN)
Caixa Postal 1524 – 59078-970 – Natal – RN – Brasil
[email protected], [email protected]
[email protected], [email protected]
Abstract. The Multiobjective Spanning Tree Problem (MSTP) is a generalization of the Minimum Spanning Tree Problem (MST). This latter one is polynomial, but its generalization is NP-hard. As your single-purpose version, the
multi-objective problem has several applications in several areas. In addition,
it models situations where there are conflicting criterias, which is common in
real situations. For this reason, it has been extensively explored in the literature. Although several exact algorithms have been proposed to the problem,
the literature does not show a comparison of such approaches. This paper presents a comparative experimental analysis of two categories of exact algorithms
for the MSTP: those who provide all the Pareto-optimal Set and those of the
preference-based approach.
Resumo. O Problema da Árvore Geradora Multiobjetivo (AGMO) é uma generalização do Problema da Árvore Geradora Mínima (AGM). Este último é
polinomial, porém sua generalização é NP-difícil. Assim como sua versão
mono-objetivo, o problema multiobjetivo possui inúmeras aplicações nas mais
variadas áreas. Além disso, ele modela situações onde existe a ocorrência de
objetivos conflitantes, o que é comum em situações reais. Por esta razão, vem
sendo intensamente explorado na literatura. Embora diversos algoritmos exatos tenham sido propostos para o problema, a literatura não apresenta uma
comparação entre tais abordagens. Este trabalho apresenta uma análise experimental comparativa entre duas categorias de algoritmos exatos aplicados à
AGMO: um algoritmo que fornece a Fronteira de Pareto completa e algoritmos
baseados em preferência.
1. Introdução
O problema da Árvore Geradora Mínima (AGM) é um dos modelos mais simples e mais
estudados da Otimização Combinatória. Tal problema tem aplicação direta em modelagens de sistemas eficientes de distribuição, de linhas de transmissão ou no projeto de redes
de infraestrutura [Hamacher & Ruhe, 1994]. Porém, a complexidade do mundo exige, por
vezes, um modelo que otimize vários critérios simultaneamente [Monteiro, 2011]. Neste
contexto, surge o problema da Árvore Geradora Multiobjetivo (AGMO).
11
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Este trabalho visa analisar o comportamento computacional de um algoritmo que
gera toda a Fronteira de Pareto para o problema da AGMO [Sourd & Spanjaard, 2008],
comparando-o com um algoritmo baseado em preferência, cuja relação definida é a dominância de Pareto [Perny & Spanjaard, 2005]. De fato, este último, diferente do primeiro,
pode gerar seja uma única solução eficiente, seja um superconjunto do Pareto ótimo.
Trata-se de duas abordagens distintas, cujos respectivos desempenhos computacionais serão analisados. O principal critério de desempenho analisado será o tempo despendido
pelo algoritmo. Como os algoritmos de Perny and Spanjaard (2005) podem gerar um
superconjunto de soluções eficientes, também se analisará o desempenho de tais algoritmos pela cardinalidade dos superconjuntos retornados. Também Drumond (2012), em
sua analise experimental, estuda tais algoritmos, sem, contudo, apreciar a execução dos
procedimentos de Perny and Spanjaard (2005) gerando superconjuntos, sem tampouco
analisar as cardinalidades destes.
Assim, nas palavras de Johnson [2002 apud Drumond, 2012], o presente trabalho
poderá contribuir para o entendimento da teoria e dos pontos fortes e fracos de cada
algoritmo, sendo útil, por exemplo, num momento em que se precisa escolher algum
destes métodos, por meio de uma análise custo-benefício.
A Seção 2 apresenta uma descrição do problema da AGMO, bem como um rápido
relato de estado da arte; as Seções 3 e 4, respectivamente, detalham os algoritmos de Sourd
and Spanjaard (2008) e Perny and Spanjaard (2005); a análise experimental é relatada na
Seção 5. Por fim, as considerações finais têm lugar na Seção 6.
2. O Problema da Árvore Geradora Multiobjetivo
O problema é definido em um grafo conexo não direcionado G(V, E) onde w : E → Rm
m
1
),
, . . . , wij
é uma função que atribui a cada aresta (i, j) ∈ E um vetor de pesos wij = (wij
e m > 1 é o número de objetivos. Seja X o conjunto de todas as árvores geradoras de
G, dito espaço solução; e Z ⊆ <m o conjunto de vetores objetivo, dito espaço objetivo.
Seja f : X → Z uma função que atribui a cada árvore T ∈ X um vetor de pesos no
P
q
formato f (T ) = (f1 (T ), . . . , fm (T )), onde, ∀q ∈ {1, ..., m}, fq (T ) =
wij
(T ). Para
(i,j)∈T
T, T 0 ∈ X, diz-se que T domina fracamente T 0 , denotado por T T 0 , se, e somente se,
fq (T ) ≤ fq (T ), q = 1, ..., m. Além disso, T domina T 0 , denotado por T ≺ T 0 , se, e
somente se, além de dominar fracamente, ∃q ∈ {1, ..., m} tal que fq (T ) < fq (T 0 ). Uma
árvore T ∗ ∈ X é dita eficiente se, e somente se, 6 ∃ T 0 ∈ X que a domine. O problema da
Árvore Geradora Multiobjetivo (AGMO) visa, portanto, encontrar o conjunto de árvores
eficientes X ∗ ⊆ X, dito conjunto Pareto ótimo, com f (X ∗ ) ⊆ Z, chamada Fronteira de
Pareto. No caso particular m = 2, a AGMO é chamada de Árvore Geradora Bi-objetivo
(AG-Bi). Aggarwal et al. (1982) provam que a AGMO pertence à classe NP-Difícil.
As soluções eficientes podem, ainda, ser classificadas como suportadas (aquelas
que podem ser obtidas por uma ponderação de seus objetivos e cujos pontos são extremidades do eixo convexo da Fronteira de Pareto) ou não suportadas (que não podem ser
obtidas desta forma, e que residem no triângulo formado entre duas soluções extremas
adjacentes).
Há duas abordagens para resolver o problema da AG-Bi: a exata e a heurística.
Existem diversos tipos de algoritmos exatos, dentre eles os métodos que geram todas as
12
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
soluções Pareto-ótimas, que geram a Fronteira de Pareto ou que geram apenas um conjunto de soluções ditas preferíveis (determinadas por uma relação de preferência fornecida
pelo tomador de decisão).
Dentre os algoritmos exatos, visando encontrar todo o conjunto Pareto-ótimo,
destacam-se os seguintes trabalhos: Corley (1985), que formula uma generalização do
método de Prim (1957); Pugliese et al. (2015), que concebe um algoritmo de programação dinâmica, muito semelhante ao Corley (1985); Ramos et al. (1998) e Steiner and
Radzik (2003) adotam o método duas fases, cuja primeira, em ambos os trabalhos, aplica
a busca dicotômica de Hamacher and Ruhe (1994) a fim de encontrar as soluções ditas
suportadas, e a segunda, por sua vez, encontra as soluções não-suportas, seja através de
um procedimento branch-and-bound [Ramos et al., 1998], seja utilizando um algoritmo
k-best [Steiner & Radzik, 2003]; Sourd and Spanjaard (2008) formulam um algoritmo
branch-and-bound para encontrar toda a Fronteira de Pareto.
Os trabalhos baseadas em preferência são: Alonso and Domínguez-Ríos (2009),
baseados nas propriedades clássicas do corte e do ciclo da AGM, propõem generalizações
do Prim (1957) e do Kruskal (1956) para construir o conjunto maximal de soluções preferíveis; Perny and Spanjaard (2005) também propõem generalizações do Prim (1957) e do
Kruskal (1956), mas desta vez para gerar um superconjunto das soluções preferíveis, cuja
relação seja quase-transitiva e atenda ao Axioma da Independência; finalmente, Galand
et al. (2010) concebem dois algoritmos (ranking e branch-and-bound) cuja relação de
preferência é a Integral de Choquet.
Diversas abordagens heurísticas foram aplicadas ao problema, dentre elas: busca
local [Hamacher & Ruhe, 1994; Davis-Moradkhan, 2010], algoritmos evolucionários
[Zhou & Gen, 1999; Knowles & Corne, 2002, 2000a, 2000b, 2001; Rocha et al., 2006,
2007; Chen et al., 2007; Davis-Moradkhan et al., 2009; Monteiro et al., 2009, 2010;
Monteiro, 2011] e GRASP [Arroyo et al., 2008].
Revisões bibliográficas do problema foram apresentadas por Ruzika and Hamacher (2009) e Climaco and Pascoal (2011). Uma análise experimental dos algoritmos
exatos foi proposta por Drumond (2012).
3. Algoritmo de Sourd and Spanjaard (2008)
Considere um grafo G(V, E), com |V | = n, em que cada aresta e ∈ E é ponderada por
um vetor bidimensional da forma (f1 (e), f2 (e)). Sourd and Spanjaard (2008) apresentam
um algoritmo branch-and-bound para encontrar a Fronteira de Pareto da AGMO com apenas 2 objetivos. Tal procedimento mantém, implicitamente, uma árvore de busca. Antes,
contudo, de iniciar o branch-and-bound, ainda no nó raiz da árvore de busca, o grafo G é
submetido a uma série de pré-processamentos. Inicialmente, utilizando uma metáfora de
coloração e baseando-se nas propriedades de otimalidade do corte e do ciclo da AGM, as
arestas são classificadas como proibidas (vermelhas) ou obrigatórias (azuis). As primeiras
não podem figurar em nenhuma solução eficiente, enquanto que as segundas devem estar
em alguma destas soluções. O objetivo é colorir o máximo de arestas possível. Arestas
não coloridas podem sobrar ao final, chamadas de arestas opcionais. Tal procedimento
remove, pois, as arestas vermelhas, sem alterar a Fronteira de Pareto. O próximo passo é
obter um conjunto de soluções iniciais, com base em todas as soluções suportadas (calculadas pelo método geométrico de Hamacher and Ruhe (1994)), e mais algumas outras
13
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
soluções não suportadas obtidas a partir de uma busca local que visita todos os pontos
extremos. Este conjunto de soluções iniciais constituirá o limite superior (U B) inicial
do procedimento branch-and-bound, detalhado mais adiante. Em seguida, após calcular
previamente um conjunto de vetores de escalarização, a busca finalmente inicia. Todos os
processos executados antes da busca visam torná-la mais rápida, pois obtém-se, com isso,
um espaço decisão menor.
A cada nó da árvore de busca, é selecionada uma aresta de E, formando uma
solução parcial. O critério de escolha da aresta é que a mesma não pertença à solução
parcial. Tal nó da árvore de busca é, assim, bifurcado em dois ramos: no primeiro, a
aresta selecionada será adicionada à solução corrente; no segundo, ela será excluída. Eis,
pois, a caracterização da fase Branch.
A seguir, descreve-se a fase Bound. Seja U B o limite superior do algoritmo, definido como sendo o conjunto de custos (f1 (x), f2 (x)) de cada solução eficiente encontrada.
Lembre-se que a inicialização de U B é com base nas soluções suportadas e em algumas
não suportadas (encontradas por uma busca local). Seja U B ≺ = {v ∈ <m |∀u ∈ U B, u 6
v} o conjunto de vetores de custos que não são fracamente dominados por nenhum ponto
atual contido em U B. Seja ainda χ(N ) o conjunto de soluções que pode ser obtido a
partir de um nó N na árvore de busca, e seja f (χ(N )) sua imagem no espaço objetivo.
O papel principal do Bound é reduzir o espaço de busca, por exemplo, descartando um
nó N da árvore de busca a partir do qual verifica-se ser impossível encontrar alguma
solução eficiente. Para tal, é necessário uma função contínua da forma h : <m → R,
chamada de hipersuperfície, tal que h(f (x)) ≥ 0 ∀x ∈ χ(N ), e h(v) < 0, ∀ v ∈ U B ≺ .
Sourd and Spanjaard (2008) definem uma família de boas funções para separar f (χ(N ))
de U B: h(v) = minλ∈Λ (hλ, vi − LBλ (N )), onde λ ∈ Λ são vetores de pesos da forma
(λ1 , . . . , λm ) ≥ 0, h., .i denota o produto escalar, e LBλ (N ) é um número real que representa o limite inferior para hλ, f i(χ(N )).
4. Algoritmo baseado em preferência de Perny and Spanjaard (2005)
Segundo Perny and Spanjaard (2005), um problema de grafos Π baseado em preferência
é definido como sendo uma quádrupla (I , S , , objetivo), onde I denota o conjunto
de instâncias de Π; ∀I ∈ I , dizemos que G(V (I), E(I)) é um grafo onde V (I) denota
o conjunto de vértices, E(I) denota o conjunto de arestas e P(E(I)) é o conjunto das
partes de E(I). Assim, dizemos que S (I) ⊆ P(E(I)) é o conjunto de soluções viáveis
ou conjunto de saída de I; (I) é uma relação de preferência definida sobre P(E(I));
e o objetivo é determinar o conjunto total de soluções viáveis maximais denotadas por
M (S (I), (I)) [Perny & Spanjaard, 2005].
Seguindo esta definição, os autores propõem dois procedimentos para resolver o
problema da AGMO baseado em preferência, o Kruskal-like e o Prim-like, respectivamente, generalizações do Kruskal (1956) e Prim (1957). O primeiro, a cada passo, ao
invés de escolher apenas uma aresta, testa todas as arestas -ef icientes não escolhidas
(t)
(t)
(t)
até o momento. Sendo Ti = (V (Ti ), E(Ti )) a i-ésima subárvore, t a quantidade de
arestas que ela possui, e I (t) o conjunto de índices das subárvores com t arestas, então
(t−1)
para cada t de 1 até n − 1, verifica-se todas as subárvores Ti
, para todo i ∈ I (t−1) ,
(t−1)
escolhendo-se as arestas e ∈ M (E\E(Ti
), ) que não formam ciclo, a fim de compor
(t)
uma subárvore Ti .
14
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Seja X um subconjunto de vértices e seja Ω(X) = {(v, w) ∈ E | v ∈ X e w ∈
V \X}. Considere ainda V (e), para e ∈ E, denotando as extremidades da aresta e. Deste
(t−1)
modo, o Prim-like, a cada passo, escolhe uma aresta de M (Ω(V (Ti
)), ), ou seja,
(t−1)
uma aresta -ef iciente que possui uma extremidade em Ti
e outra extremidade fora
dela. Tal abordagem exige a escolha de um vértice inicial qualquer v1 ∈ V .
Ademais, Perny and Spanjaard (2005) estabelecem condições para a corretude
dos algoritmos: a relação deve atender ao Axioma da Independência e deve ser quasetransitiva. Dizemos que uma relação binária , sobre um conjunto E, satisfaz ao Axioma
da Independência se, e somente se, ∀A, B, C ∈ P(E), tal que C ∩ (A ∪ B), é o caso que
(A B → A ∪ C B ∪ C). Como exemplo, cita-se a relação lexicográfica e a relação
de dominância, além da relação clássica ≤ mono-objetivo [Perny & Spanjaard, 2005].
A corretude de tais procedimentos garante que, se T é uma árvore -ef iciente,
então ela é encontrada. Porém, árvores não -ef iciente também podem ser retornadas. Portanto, o Kruskal-like e o Prim-like constroem, na verdade, um superconjunto de
M (T , ), onde T é o conjunto de todas as árvore geradoras de G. Os procedimentos
podem ainda ser adaptados para retornar apenas uma solução preferível. Observou-se,
deste modo, que, caso a relação de preferência seja a dominância de Pareto, os referidos
algoritmos se reduzirão, respectivamente, aos clássicos Kruskal (1956) e Prim (1957).
5. Resultados Experimentais
Nesta seção são apresentados os resultados dos experimentos que consistiram na aplicação, a instâncias biobjetivo do problema da árvore geradora, do algoritmo de Sourd and
Spanjaard (2008) (SS) e dos baseados em preferência retornando uma única solução preferível, Prim-Like (PLU) e Kruskal-Like (KLU), e retornando um superconjunto das árvores
maximais (ou seja, um superconjunto do Pareto-ótimo), Prim-Like (PLS) e Kruskal-Like
(KLS). A relação definida para os algoritmos baseados em preferência é a dominância
de Pareto. O experimento verificou como os algoritmos de Perny and Spanjaard (2005)
se comportam trabalhando com a dominância de Pareto como relação de preferência, e
comparou os resultados com o algoritmo SS que retorna exatamente a Fronteira de Pareto.
Os experimentos foram executados no ambiente Mac OS X Yosemite, versão
10.10, 1,6 GHz, Core i5, 4GB de memória. As instâncias testadas foram as mesmas
utilizadas no trabalho de Drumond (2012), as quais consistem em grafos completos de 5
a 50 vértices, geradas com o gerador proposto por Knowles (2002) considerando a correção proposta por Chen et al. (2007). Cada instância é classificada como correlated (corr),
anti-correlated (anticorr) e concave (conc). As duas primeiras dizem respeito à correlação β dos pesos das arestas, respectivamente, β = 0, 2 e β = −0, 2. As instâncias
concave, por sua vez, são assim denominadas devido ao formato de suas Fronteiras de
Pareto e foram geradas a partir de dois parâmetros, ζ ∈ [0, 008; 0, 15] e η ∈ [0, 09; 0, 25].
Para mais detalhes sobre tais classificações, consultar Knowles (2002).
A Tabela 1 mostra, em segundos, os tempos de execução dos algoritmos SS, PLS
e KLS. A sigla NT significa que o algoritmo não terminou sua execução dentro de um
intervalo de tempo pré-definido de 5 horas. Verifica-se que o tempo do SS é consideravelmente inferior ao dos algoritmos de Perny and Spanjaard (2005) na medida em que
cresce o tamanho da instância. Uma possível explicação para isso pode vir dos resultados
mostrados na Tabela 2. Os procedimentos PLS e KLS geraram conjuntos de árvores (su-
15
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
perconjunto do Pareto ótimo), a partir das quais se pôde conhecer seus respectivos pontos
associados ao espaço objetivo. De posse de tais pontos, percebeu-se que foi gerado um
número considerável deles que não se encontrava na Fronteira de Pareto. Na prática,
PLS e KLS, apesar de construir todas as soluções ótimas, apresentaram a desvantagem de
retornar demasiadas soluções não eficientes. Além disso, observou-se que o PLS gerou
superconjuntos bem maiores que o KLS. A Tabela 2 resume tais números. Ademais, o
PLS não terminou, segundo nosso limite de tempo computacional, para instâncias concave com mais de 25 vértices, e correlated com mais de 15; seu pior desempenho foi com
instâncias anti-correlated, não conseguindo terminar com mais de 12. O KLS apresentou
desempenho inferior ao PLS, exigindo, para uma mesma instância, tempo computacional superior a este último. Apenas para o grafo anti-correlated com 12 vértices, o KLS
foi melhor que o PLS. Nos demais casos, foi pior, não chegando a terminar para grafos
concave e correlated para 17 ou mais vértices.
Tabela 1. Tempo de execução dos algoritmos de SS, do PLS, KLS
SS
PLS
KLS
No de
Vértices
5
7
10
12
15
17
20
22
25
Conc.
Corr.
Anticorr.
Conc.
Corr.
Anticorr.
Conc.
Corr.
Anticorr.
0,1854
0,2434
0,1941
0,1937
0,1994
0,2493
0,2143
0,2411
0,2828
0,5128
0,1681
0,2199
0,1830
0,3219
0,3351
0,3073
0,3770
0,3968
0,2094
0,1858
0,3203
0,3525
0,4213
0,5361
0,7695
0,6102
0,6360
0
0,04
3,3
4,28
321,54
110,92
14,44
NT
3670.69
0
0,04
1,36
326,22
79,83
NT
NT
NT
NT
0
0,17
9,7
12948,6
NT
NT
NT
NT
NT
0,01
1,18
116,51
309
22125,9
NT
NT
NT
NT
0,01
0,35
20,19
600,17
4696,82
NT
NT
NT
NT
0
1,79
101,73
4324,38
NT
NT
NT
NT
NT
Tabela 2. Quantidade de pontos do espaço objetivo retornados pelos algoritmos
de SS, do PLS, KLS
SS
PLS
KLS
No de
Conc. Corr. Anticorr. Conc. Corr. Anticorr. Conc. Corr. Anticorr.
Vértices
5
6
7
2
10
11
2
8
7
2
7
16
10
20
80
43
383
37
14
129
10
35
24
45
1826
491
2980
750
133
930
12
26
55
80
736
26584
195342
448
1432
18981
15
39
45
185
15335 10826
NT
13727 1289
NT
17
34
59
189
3686
NT
NT
NT
NT
NT
20
30
72
272
203
NT
NT
NT
NT
NT
22
55
91
253
NT
NT
NT
NT
NT
NT
25
46
163
245
3977
NT
NT
NT
NT
NT
As Figuras 1 e 2 ilustram os resultados da Tabela 2, respectivamente, para instâncias concave e correlated, por meio de gráficos Boxplot em função do tamanho do
16
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
conjunto retornado por cada algoritmo. Em ambas as figuras fica clara a discrepância entre o tamanho do superconjunto encontrado por PLS e KLS, em comparação à Fronteira
de Pareto encontrada por SS. Inclusive, acerca dos dois primeiros, consoante a Figura 1,
percebe-se que aproximadamente 75% das cardinalidades dos superconjuntos encontrados para instâncias concave pelo KLS estão abaixo da mediana das cardinalidades dos
superconjuntos encontrados pelo PLS. Na Figura 2, a mediana do KLS está abaixo da mediana do PLS. Tudo isso demonstra que o PLS encontra superconjuntos bem maiores que
aqueles encontrados pelo KLS.
Figura 1. Pontos do espaço objetivo encontradas pelos algoritmos SS, do PLS,
KLS para instâncias concave tendo entre 5 e 25 vértices
Figura 2. Pontos do espaço objetivo encontradas pelos algoritmos SS, do PLS,
KLS para instâncias correlated tendo entre 5 e 15 vértices
A Tabela 3 mostra o resultado em tempo computacional para os algoritmos SS,
17
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
PLU e KLU, para grafos de até 50 vértices. Como se pode observar, os algoritmos PLU e
KLU apresentam tempo computacional inferior ao SS, uma vez que retornam apenas uma
árvore que atenda à relação de preferência. Como tal relação é a de Pareto, na prática,
tais algoritmos funcionam, respectivamente, como as versões clássicas mono-objetivo do
Prim (1957) e Kruskal (1956). Conforme cresce o número de vértices, a diferença de
desempenho entre o PLU e KLU se manteve equivalente.
Tabela 3. Tempo de execução dos algoritmos de SS, do PLU, KLU
SS
No de
Vértices
5
7
10
12
15
17
20
22
25
27
30
33
35
38
40
42
45
48
50
PLU
KLU
Conc.
Corr.
Anticorr.
Conc.
Corr.
Anticorr.
Conc.
Corr.
Anticorr.
0,1854
0,2434
0,1941
0,1994
0,1994
0,2493
0,2143
0,2411
0,2828
0,2520
0,2000
0,2972
0,2689
0,3534
0,6029
0,4133
0,4957
0,2122
0,4134
0,5128
0,1681
0,2199
0,1830
0,3219
0,3351
0,3073
0,3770
0,3968
0,5221
0,4374
0,5740
0,8475
0,4645
0,6137
0,7822
0,7888
0,9685
1,4718
0,2094
0,1858
0,3203
0,3525
0,4213
0,5361
0,7695
0,6102
0,6360
1,6356
2,0025
3,1854
2,9848
3,6421
4,1510
4,8295
8,2405
7,6161
9,2783
0
0
0
0
0
0
0,01
0,01
0,01
0,01
0,01
0,01
0,02
0,03
0,03
0,04
0,05
0,06
0,06
0
0
0
0
0,01
0
0
0
0,01
0,01
0,02
0,02
0,02
0,02
0,04
0,04
0,04
0,08
0,07
0
0
0
0
0
0
0,01
0,01
0
0,01
0,01
0,02
0,02
0,03
0,03
0,03
0,04
0,05
0,07
0
0
0
0
0
0,01
0
0,01
0
0,01
0,01
0,01
0,01
0,02
0,02
0,03
0,04
0,05
0,06
0
0
0
0
0,01
0
0
0
0,01
0,01
0,02
0,02
0,02
0,03
0,04
0,02
0,04
0,05
0,05
0
0
0
0
0
0
0
0
0,01
0,01
0,01
0,02
0,02
0,02
0,03
0,03
0,03
0,06
0,05
6. Considerações Finais
Esta pesquisa verificou o comportamento computacional dos algoritmos de Perny and
Spanjaard (2005), associado à dominância de Pareto, gerando uma solução ou um superconjunto, efetuando uma análise comparativa com o de Sourd and Spanjaard (2008).
Este se mostrou bastante eficiente frente à geração de superconjuntos, mas não conseguiu
ser melhor que os algoritmos que geram apenas uma solução. Como trabalhos futuros,
pode-se estender esta análise para outras relações de preferência (como a lexicográfica,
por exemplo), além de comparar os algoritmos de Perny and Spanjaard (2005) com outros
exatos presentes na literatura (que gerem todo o conjunto Pareto ótimo ou toda Fronteira
de Pareto). Também é possível analisar o Prim-Like e Kruskal-Like com mais de dois
objetivos, e compará-los com algum exato que possa executar com 3 ou mais critérios.
18
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Referências
Aggarwal, V., Aneja, Y., & Nair, K. (1982). Minimal spanning tree subject to a side
constraint. Computers Operations Research, 9, 287-296.
Alonso, S., & Domínguez-Ríos, M. (2009). Optimality conditions in preference-based
spanning tree problems. European Journal of Operational Research, 198, 232-240.
Arroyo, J. E. C., Vieira, P. S., & Vianna, D. (2008). A grasp algorithm for the multicriteria minimum spanning tree problem. Annals of Operations Research, 159,
125-133.
Chen, G., Chen, S., Guo, W., & Chen, H. (2007). The multi-criteria minimum spanning
tree problem based genetic algorithm. Information Sciences, 117(22), 5050-5063.
Climaco, C., J., & Pascoal, M. B., M. (2011). Multicriterio path and tree problems: discussion on exact algorithms and applications. International Transactions in Operational Research, 1-36.
Corley, H. (1985). Efficient spanning trees. Journal of Optimi- zation Theory and Applications, 45.
Davis-Moradkhan, M. (2010). Multi-criterion optimization in minimum spanning trees.
Studia Informatica Universali, 8, 185-208.
Davis-Moradkhan, M., Browne, W. N., & Grindrod, P. (2009). Extending evolutionary
algorithms to discover tri-criterion and non-supported solutions for the minimum
spanning tree problem. In Gecco ’09 – genetic and evolutionary computational
conference, 2009, montréal. proceedings of the 11th annual conference on genetic
and evolutionary computation (gecco ’09) (p. 1829-1830). ACM, New York.
Drumond, P. M. L. L. (2012, March). Uma análise experimental de algoritmos exatos
aplicados ao problema da Árvore geradora multiobjetivo. [Mestrado em Sistemas
e Computação]. Natal, RN, Brasil.
Galand, L., Perny, P., & Spanjaard, O. (2010). Choquet-based optimisation in multiobjective shortest path and spanning tree problem. European Journal of Operational
Research, 204, 303-315.
Hamacher, H., & Ruhe, G. (1994). On spanning tree problems with multiple objectives.
Annals of Operations Research, 52, 209-230.
Johnson, D. S. (2002). A theoretician’s guide to the experimental analysis of algorithms.
In Proc. 5th and 6th dimacs implementation challenges (m. goldwasser, d. s. johnson
and c. c. macgeoch, eds) (p. 215-250). AMS, Providence RI.
Knowles, J. (2002). Local-search and hybrid evolutionary algorithms for pareto optimization (Unpublished doctoral dissertation). Department of Computer Science,
University of Reading, Reading, UK.
Knowles, J., & Corne, D. (2000a). Approximating the nondominated front using the
pareto archived evolution strategy. European Journal of Operational Research,
8(2), 149-172.
Knowles, J., & Corne, D. (2000b). M-paes: A memetic algorithm for multiobjective
optimization. In Proceedings of the 2000 congress on evolutionary computation
(Vol. 1, p. 325- 332).
Knowles, J., & Corne, D. (2001). Comparison of encodings and algorithms for multiobjective spanning tree problems. In Proceedings of the 2001 congress on evolutionary computation (p. 544-551). CEC01.
19
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Knowles, J., & Corne, D. (2002). Enumeration of pareto optimal multi- criteria spanning
trees – a proof of the incorrectness of zhou and gen’s proposed algorithm. European
Journal of Operational Research, 143, 543–547.
Kruskal, J. (1956). On the shortest spanning subtree of a graph and the traveling salesman
problem. In Proceedings of the american mathematical society (Vol. 7, p. 48–50).
Monteiro, S. M. D. (2011, February). Algoritmos transgenéticos aplicados ao problema
da árvore geradora biobjetivo [Mestrado em Sistemas e Computação]. Natal, RN,
Brasil.
Monteiro, S. M. D., Goldbarg, E. F. G., & Goldbarg, M. C. (2009). A plasmid based transgenetic algorithm for the biobjective minimum spanning tree problem. In
Evocop09 - european conference on evolutionary computation in combinatorial optimization, 2009, tübingen. lecture notes in computer science. (Vol. 5482, p. 49-60).
Heidelberg: Springer.
Monteiro, S. M. D., Goldbarg, E. F. G., & Goldbarg, M. C. (2010). A new transgenetic
approach for the biobjective spanning tree problem. In Ieee cec 2010 congress on
evolutionary computation, 2010, barcelona. proceedings of ieee cec 2010 congress
on evolutionary computation. (Vol. 1, p. 519-526). Piscataway, IEEE.
Perny, P., & Spanjaard, O. (2005). A preference-based approach to spanning trees and
shortest paths problems. European Journal of Operational Research, 162, 584-601.
Prim, R. C. (1957). Shortest connection networks and some generalizations. Bell System
Technical Journal, 36, 1389-1401.
Pugliese, L. D. P., Guerriero, F., & Santos, J. F. (2015). Dynamic programming for spanning tree problems: aplication to the multi-objective case. Optimization Letters, 9,
437-450.
Ramos, R. M., Alonso, S., Sicília, J., & González, C. (1998). The problem of the optimal
biobjective spanning tree. European Journal of Operational Research, 111, 617628.
Rocha, D. A. M., Goldbarg, E. F. G., & Goldbarg, M. C. (2006). A memetic algorithm
for the biobjective minimum spanning tree problem. In 6th european conference on
evolutionary computation in combinatorial optimization, 2006. budapeste, lecture
notes in computer science (Vol. 3906, p. 222-233). Heidelberg, Springer Berlin.
Rocha, D. A. M., Goldbarg, E. F. G., & Goldbarg, M. C. (2007). A new evolutionary
algorithm for the bi-objective minimum spanning tree. In Sda’07 seventh international conference on intelligent systems design and applications, 2007, rio de
janeiro. proceedings of isda’07. (Vol. 1, p. 735-740). EEE Computer Society.
Ruzika, S., & Hamacher, W., H. (2009). A survey on multiple objective minimum spanning tree problems. In Lerner, j.,wagner, d., zweig, k. (eds) algorithmics of large
and complex networks. springer-verlag, berlin (p. 104–116).
Sourd, F., & Spanjaard, O. (2008). A multiobjective branch-and-bound: application to the
biobjective spanning tree problem. INFORMS Journal on Computing, 20, 472-484.
Steiner, S., & Radzik, T. (2003). Solving the biobjective minimum spanning tree problem
using a k-best algorithm. (Tech. Rep.). Department of Computer Science, King’s
College London.
Zhou, G., & Gen, M. (1999). A multiobjective branch-and-bound: application to the
biobjective spanning tree problem. European Journal of Operational Research,
114, 141-152.
20
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Ferramenta de apoio a gerência das Unidades Básicas de
Saúde do Estado do Piauí – Um Estudo de Caso
Paul Symon Ribeiro Rocha¹, Carlos Alberto da Silva Filho², Christian
Soares Diniz2, José Maria Coelho2, Leonardo Felipe de Sousa Pereira2
¹Programa de Pós-Graduação em Ciência da Computação (PPgCC) - Universidade
Estadual do Rio Grande do Norte - UERN/Universidade Federal Rural do
Semiárido - UFERSA
² Instituto Federal de Educação, Ciência e Tecnologia do Piauí Campus Floriano
(IFPI)
CEP 64.800-000 - Floriano - PI - Brasil
[email protected], [email protected],
[email protected], [email protected],
[email protected]
Abstract. This paper presents the development of a system for basic health
unit (BHU. The goal is the activity of the nursing management in a UBS and its
main difficulties faced by the lack of technological resources. For the
functionality of the system, was used records of information pertaining to UBS
and its catchment area, as well as records of events: live births,
hospitalizations, lower one-year death, death greater than one year The system
facilitates the consolidation of production of Community Health Agent (CHA)
and issue monthly reports.
Keywords: System. UBS. Nurse. (CHA). Report. Management.
Resumo. O presente artigo apresenta o desenvolvimento de um sistema para
Unidades Básica de Saúde (UBS). O objetivo é a atividade de gerência do
enfermeiro(a) em uma UBS e suas principais dificuldades enfrentadas pela
falta de recursos tecnológicos. Para a funcionalidade do sistema, utilizou-se
cadastros das informações referentes a UBS e sua área de abrangência, como
também os registros das ocorrências: nascidos vivos, hospitalizações, óbito
menor de um ano, óbito maior de um ano. O sistema facilita a consolidação da
produção dos Agentes Comunitários de Saúde (ACS) e emissão de relatórios
mensais.
Palavras-chave: Sistema. UBS. Enfermeiro (a). ACS. Relatório. Gerência.
1. Introdução
Os sistemas de informação objetivam apoiar as tomadas de decisões e aperfeiçoar os
processos das organizações. Cada vez mais presentes tanto nas organizações privadas
como nas públicas, onde ambas se beneficiam do controle das operações, reduzindo o
quantitativo de erros e melhorando a qualidade da produção (REZENDE, 2003).
Na área da saúde os sistemas de informações dependem do correto
21
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
preenchimento dos dados de coleta e da periodicidade dos fluxos de dados. Nesse
sentido nota-se a importância do desempenho dos envolvidos, pois deles dependem a
qualidade e efetividade do trabalho prestado (MELO, 2012).
Como exemplo de organização pública de saúde podemos citar as Unidades
Básicas de Saúde (UBS), locais onde se podem receber atendimentos básicos e
gratuitos dentre os quais podemos destacar: Ginecologia, Clínica Geral, Enfermagem
e Odontologia, entre outros serviços. São consideradas a porta de entrada dos serviços
de saúde, pois são responsáveis em atender até 80% dos problemas de saúde da
população, sem que haja a necessidade de encaminhamento para hospitais (BRASIL,
1998).
Os profissionais das UBS utilizam tecnologias de cuidado complexas e de
baixa densidade (ou seja, mais conhecimento e pouco equipamento), no manejo das
demandas e necessidades de saúde de maior frequência e relevância em seu território
(BRASIL, 2014).
A responsabilidade pelo gerenciamento do processo de trabalho em uma UBS
é atribuída ao enfermeiro(a) que necessita de informações atualizadas, confiáveis e
completas para tomar decisões sobre as operações e o desempenho das ações de saúde
(PINHEIRO, 2009).
Nesse contexto almejou-se identificar os fatores que possam interferir no
gerenciamento de enfermagem na UBS, pois o enfermeiro(a) além de prestar
assistência aos clientes também se depara com a parte burocrática da unidade para a
qual presta serviço. Na tentativa de tornar mais eficiente e eficaz o processo de
gerência, foi desenvolvido um sistema para reduzir a quantidade de horas gastas com
preenchimento de formulários e emissão de relatórios das produções da UBS.
O artigo está divido em quatro seções, iniciando com uma contextualização da
problemática encontrada, além de outras informações referentes as políticas de saúde
públicas no Brasil ao qual a referida organização faz parte.
Em seguida são apresentadas as linguagens de programação, e o Sistema
Gerenciador de Banco de Dados adotados para implementação do sistema. Na mesma
seção são descritos os métodos utilizados para entendimento e modelagem do sistema
através da técnica escolhida. A seção posterior descreve os resultados obtidos após a
implementação do sistema, através da apresentação das telas e suas funcionalidades.
Por fim, seguem as conclusões a respeito do sistema desenvolvido onde se apresenta
os objetivos alcançados.
2. Fundamentação Teórica
As UBS são constituídas por um médico, um enfermeiro, dois auxiliares de
enfermagem e seis agentes comunitários de saúde. Sendo que cada equipe fica
responsável por acompanhar cerca de 1000 famílias num território definido dentro da
área de abrangência da unidade (BRASIL, 1998).
Cada Agente Comunitário de Saúde (ACS) é responsável por realizar visitas
mensais em sua micro área1, fazendo a coleta de dados através das fichas dos
1
Espaço geográfico delimitado onde residem cerca de 100 a 150 famílias.
22
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
nascidos vivos (quantidade de recém nascidos na micro área), das hospitalizações
(número de hospitalizações na micro área), dos óbitos menores de um ano (total de
óbitos com idade inferior a um ano), dos óbitos maiores de um ano (total de óbitos
com idade igual ou superior a um ano de idade).
No início de cada mês todos os ACSs entregam sua produção composta pelas
fichas de coleta de dados devidamente preenchidas ao enfermeiro(a) da UBS. Sendo
este encarregado de verificar o preenchimento das fichas, transpondo e totalizando a
produção de todos os ACSs no intuito de gerar manualmente os relatórios referentes
às diferentes fichas para posterior envio a Secretaria Municipal de Saúde, como
produção mensal da UBS (BRASIL, 1998). A Secretaria Municipal de Saúde por sua
vez transfere os dados contidos nos relatórios para o Sistema de Informação da
Atenção Básica (SIAB).
“O Sistema de Informação da Atenção Básica (SIAB) foi criado em 1998
pelo Departamento da Atenção Básica/Secretaria da Atenção à Saúde, em
conjunto com o Departamento de Informática e Informação do Sistema
Único de Saúde (DATASUS). Essa ferramenta foi desenvolvida como um
instrumento de apoio às equipes de saúde da família com o objetivo de
identificar problemas individuais e coletivos do quadro sanitário de uma
população [...] e dessa forma, poderão realizar o planejamento das ações
de saúde” (DUARTE et al., 2012, p. 112).
Os principais problemas apontados por Capucho et al (2013) nas notificações e
formulários manuscritos são aqueles que se referem ao número de ocorrências e
registros, qualidade do relato, legibilidade, tempo gasto em coletar, ordenar e
contabilizar todos os dados das fichas de cadastro e acompanhamento de cada agente
sobre uma área em um mês referência, gerar um novo relatório com os dados da
correspondente base de arquivo cadastral e históricos de acompanhamento para envio
a secretaria municipal de saúde.
Verificou-se por meio de entrevistas e pesquisas de produções cientificas que
não existe atualmente no estado do Piauí um sistema que virtualize dados relativos a
emissão dos relatórios de produção mensal de uma UBS, surgiu então o interesse do
desenvolvimento de um sistema de apoio às atividades de gerência do enfermeiro(a),
onde toda documentação gerada pelo mesmo é guardada em armários vulneráveis ao
extravio e a deterioração.
3. Materiais e Métodos
Nessa seção são apresentadas as ferramentas adotadas na implementação do sistema e
os métodos utilizados na modelagem.
3.1 Materiais
Como ferramentas de implementação para o sistema foram usadas a linguagem de
programação Java, o Sistema Gerenciador de Banco de Dados (SGBD) PostgreSQL e
o aplicativo gráfico iReport para construção dos relatórios.
O iReport para Netbeans IDE é um programa Open Source, capaz de criar
visualmente os mais complexos relatórios para aplicações Java no formato da
23
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
biblioteca JaperReports2.
“Através de uma interface gráfica intuitiva, o desenvolvedor é capaz de
criar qualquer tipo de relatório de forma simples e rápida. Mesmo sabendo
que o iReport desenvolve um formato XML usado pelo JasperReports, o
que não é difícil de manipular, há uma vantagem em usar esta ferramenta.
Se o desenvolvedor é um usuário iniciante no formato XML do
JasperReports, o iReport supre suas necessidades evitando que seja
necessário fazer modificações no código fonte. Caso seja experiente nesse
formato, o iReport minimiza o tempo na criação dos mais complexos.”
(GONÇALVES, 2009, p.XIII).
Com o paradigma Java estruturado foi feita a implementação do sistema,
utilizando componentes visuais, persistência de dados, conceitos básicos de
programação comercial, separação das camadas do aplicativo utilizando um ambiente
de programação visual e de dados na aplicação.
A escolha do SGBD PostgreSQL se deu por ser um sistema gerenciador de
banco de dados objeto-relacional, que permite o adicionamento de novos tipos de
dados e funções por meio de linguagens procedurais o que possibilitou a criação da
base de dados e todos elementos necessários.
3.2 Métodos
Os métodos foram as principais atividades necessárias para compreensão do
problema e desenvolvimento do sistema por meio de ferramentas de modelagem.
A UBS Pedro Simplício da Silva Neto, do bairro São Borja, município de
Floriano-PI serviu de referência para o estudo de caso, onde foram realizadas
entrevistas com o enfermeiro(a) e um ACS para o levantamento e coleta dos dados
pertinentes a análise do caso, como: fichas de produção, relatórios, agentes e áreas
envolvidas.
Para maior embasamento do problema local também foram realizadas buscas
nas bibliotecas eletrônicas Scielo 3e Google Acadêmico4, por periódicos como a
Revista Gaucha de Enfermagem e Revista de Atenção Primária à Saúde (APS), por
produções cientificas relacionadas ao tema em questão, no entanto poucas foram
encontradas.
Quanto à análise do sistema, a técnica adotada foi a Análise Estruturada
Moderna que traz a abordagem de dados, funções e controle, onde para Pompilho
(2002, p. 17) “[...] tem como uma de suas propostas fundamentais usar os eventos
como base para o particionamento dos sistemas. ” Considerando as diversas
perspectivas que envolvem o problema através das ferramentas dessa técnica,
composta por: Normalização, Diagramas de contexto, Diagrama de Entidade
Relacionamento (DER), Diagramas de Fluxo de Dados (DFD) particionados por
eventos, Lista de eventos e Dicionário de Dados (DD).
O primeiro passo no desenvolvimento foi a Normalização das entidades e
relacionamentos, evitando as anomalias de Inclusão, Exclusão e Alteração.
2
JasperReports é uma biblioteca escrita em java, projetada para ajudar o desenvolvedor com a tarefa de
criar relatórios para aplicações, tanto Desktop como web, fornecendo uma API que facilita sua geração.
3
http://www.scielo.org/php/index.php
4
http://scholar.google.com.br/
24
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Permitindo assim, a criação de um DER purificado, como mostra a Figura 1.
Figura 1 – Diagrama de Entidade Relacionamento (DER).
Em seguida foi elaborado o Diagrama de Fluxo de Dados, como apresenta a
Figura 2, onde o sistema está circunscrito a um universo de interesse como uma única
grande função, onde as entidades externas (enfermeiro(a) e ACS) estabelecem uma
fronteira entre o sistema e o ambiente através de fluxos de dados de acordo com
(POMPIHO,2002).
Figura 2 - Diagrama de Fluxo de Dados.
A partir do Diagrama de Fluxos de Dados (DFD), foi possível criar a Lista de
Eventos, que mostra de forma clara todas as funcionalidades do sistema, permitindo
saber qual a resposta do sistema mediante cada estímulo que por sua vez é a
consequência de um evento externo ao mesmo.
Com base na Lista de Eventos deu-se início a formação dos DFD particionado
por eventos, onde cada evento existente representa uma função do sistema formado
25
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
por entidades externas, processos, fluxos de dados e depósitos de dados, decompondo
assim o DFD inicial.
Depois de identificar os elementos e suas interações foi necessária a
concepção de um Diagrama de Dados para descrever os significados, valores e
conteúdo de todos os elementos do sistema por meio de dados elementares e
estruturas de dados.
4. Resultados
Essa seção mostra as funcionalidades do sistema desenvolvido, apresentando as telas
que o compõe.
A tela principal representada pela Figura 3 direciona o usuário as telas de
cadastro do ACS e cadastro da micro área, como também as telas de registros dos
nascidos vivos, hospitalizações, registros de óbitos maiores de um ano, registro de
óbitos de menores de um ano e emissão de relatórios.
Figura 3 - Tela principal do sistema.
O sistema oferece o recurso para o cadastramento dos ACSs lotados na UBS,
através da tela de cadastro do ACS que exibi todos já cadastrados. Permitindo inserir
um novo ACS e seus dados necessários ao cadastro. Caso já exista o sistema não
permitirá cadastrá-lo novamente. Ainda na mesma tela existe a possibilidade de
pesquisar as informações sobre os ACSs.
Pela necessidade de cadastramento das micro áreas, foi desenvolvida a tela de
cadastros de micro áreas, onde o código da micro área vincula os bairros de
responsabilidade do ACS. Com finalidades de fazer novo cadastro, atualizar, excluir,
listar todas e de pesquisa.
Um fator importante na produção do ACS é o acompanhamento dos
resultados das gestações, dessa forma, criou-se a tela de registro dos nascidos vivos
representada pela Figura 4, com finalidade de registrar todas as crianças nascidas no
mês de referência, sendo possível inserir, alterar e excluir os dados da mãe e do
recém-nascido.
26
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 4 – Tela de registro dos nascidos vivos.
Uma tela de bastante relevância presente no sistema é a tela de registro dos
óbitos das crianças com idade menor que um ano, onde são registrados os dados da
mãe e da criança. A tela de registro óbitos maior de um ano descrita neste artigo
possibilita registrar as informações como o nome do hospital, a causa do óbito, local
do óbito além dados pessoais do falecido.
Depois de registrar a produção mensal dos ACSs fazendo uso das telas de
registro, o enfermeiro (a) pode emitir os relatórios necessários. A figura 5 mostra um
dos relatórios que o UBS Ocorrência é capaz de emitir.
Figura 5 - Relatório dos Óbitos de Menores de Um Ano.
5. Considerações finais
O resultado dessa pesquisa culminou no presente artigo que elucida todo o percurso
trilhado no desenvolvimento de um sistema de ocorrências para UBS, mostrando
desde a análise até a implementação do sistema.
27
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Este trabalho culminou no desenvolvimento de um sistema que otimiza o
trabalho de gerência do enfermeiro (a) no cadastro das informações da equipe e da
própria unidade, como também no registro da produção dos ACSs por meio das
documentações geradas por eles. Sendo esses registros necessários ao objetivo maior
do sistema, o de informatizar a emissão dos relatórios das ocorrências mensais:
nascidos vivos, hospitalizações, óbito menor de um ano e óbito maior de um ano.
A partir da análise dos resultados, observou se uma contribuição significativa
do sistema como provedor de informações de suporte ao enfermeiro (a), na redução do
tempo das atividades de conferência e totalização da produção dos ACSs e na
segurança dos dados oferecida pelo sistema. Aumentando o tempo para outras
atividades do enfermeiro(a) como o de realização de visitas domiciliares.
6. Referências
Brasil. Ministério da Saúde. (1998) "SIAB: manual do sistema de informação de
atenção básica / Secretaria de Assistência à Saúde, Coordenação de Saúde da
Comunidade" Brasília.
Brasil. Ministério da Saúde. (2014) "DAB: Departamento de Atenção Básica,
Secretaria de
Atenção
a
Saúde",
Brasilia-DF.
Disponível
em:
<http://dab.saude.gov.br/portaldab/smp_como_funciona.php>. Acessado em agosto.
Capucho HC, Arnas ER, Cassiani SHBD. (2013) "Segurança do paciente:
comparação entre notificações voluntárias manuscritas e informatizadas sobre
incidentes em saúde", Rev Gaúcha Enferm.
Duarte MLC, Tedesco JR, Parcianello RR. (2012) "O uso do sistema de informação
na estratégia saúde da família: percepções dos enfermeiros", Rev Gaúcha Enferm.
Gonçalvez, Edson. (2009) “Desenvolvendo Relatório Profissionais com iReport™
para Netbeans IDE”, Rio de Janeiro: Editora Ciência Moderna Ltda.
Melo, Tamara de Oliveira. (2012) "A gestão dos profissionais das equipes da
estratégia saúde da família: Algumas reflexões preliminares", Campina Grande.
TCC – trabalho de conclusão de curso – UEPB.
Pinheiro, Alba Lúcia Santos. (2009) "Gerência de enfermagem em unidades básicas:
A informação como instrumento de decisão", Rev APS.
Pompilho S. (2002) "Análise Essencial: Guia prático de análise de sistemas", Rio de
Janeiro: Editora Ciência Moderna Ltda.
Rezende, Denis Alcides. (2003) "Planejamento de sistemas de informação e
informática: Guia prático para planejar a tecnologia da informação integrada ao
planejamento estratégico das organizações", São Paulo: Editora Atlas.
28
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
ATiNEU, uma proposta de uma ferramenta on-line de uso
geral para gerenciar atlas digitais do cérebro
José Elias de Oliveira da Costa1, Lucas Felipe da Silva1, Anderson Souza1,
Wilfredo Blanco12*
1 Departamento de Ciência da Computação, Universidade do Estado do Rio Grande do
Norte, Natal, RN, Brasil;
2 Learning and Memory Laboratory, Instituto do Cérebro, Universidade Federal do Rio
Grande do Norte, Natal, RN, Brasil;
[email protected], [email protected], [email protected], [email protected]
Abstract: A Digital Brain Atlas (DBA) can be constituted by sequences of
digital images of one or more representations of the brain. DBAs play a very
important role to explore the morphology of brain regions. Recently, the
DBAs incorporate an important feature, they can be seen as containers, a
computational framework that integrate several data sources (images,
functionality and time dynamic among others) to describe and understand
better the central nervous system of species. This article presents the
methodology for the creation of ATiNEU, an on-line system to storage,
manage, visualize and annotate DBAs images.
Resumo. O Atlas Digital para o Cérebro (ADC) pode ser constituído por
sequências de imagens digitais de uma ou mais representações do cérebro.
ADCs desempenham um papel muito importante para explorar a morfologia
das regiões cerebrais. Recentemente, os ADCs incorporam uma característica
importante, eles podem ser vistos como recipientes, um contêiner
computacional que integra diversas fontes de dados (imagens, funcionalidades
e tempo dinâmico, entre outros) para descrever e compreender melhor o
sistema nervoso central das espécies. Este artigo apresenta a metodologia para
a criação do ATiNEU, um sistema on-line para armazenar, gerenciar,
visualizar e anotar imagens em ADCs.
1. Introdução
O Atlas/mapas Digitais paro o Cérebro (ADC) é construído a partir de uma ou mais
representações de cérebro. Tradicionalmente, os ADC eram uma coleção de imagens 2D
sequenciais adquiridas através de técnicas de imageamento (PET- Tomografia por
Emissão de Pósitrons, CT - Tomografia Computadorizada, MRI - Imagem de
Ressonância Magnética, usando “ScanScope” scanners) de um sistema ou região do
sistema nervoso. Com o desenvolvimento de novas tecnologias foi possível obter
imagens com altíssima resolução (aproximadamente 1 μm/pixel), assim como coletar
dados (macroscópicos e microscópicos) do cérebro. Neste contexto, um novo
conceito/geração de ADC surgiu, onde interatuam diferentes áreas: imageamento, banco
de dados, computação gráfica e tecnologias Web. Esta integração faz com que os mapas
atuais não se limitem somente à visualização de imagens; eles se tornaram uma
29
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
ferramenta dinâmica, altamente interativa, integrada com as mais recentes descobertas
da literatura científica.
A construção de ADC contempla três fases: (a) aquisição, registro e alinhamento
das imagens, (b) armazenamento das imagens em um Banco de Dados (DB) de alta
velocidade para consultar e recuperar dados de estruturas do cérebro e (c) aplicação
"front-end" como uma interface gráfica de usuário capaz de navegar através das
imagens. Na continuação descreveremos brevemente estas fases.
(a) Aquisição, registro e alinhamento das imagens: Existem diversas
modalidades de aquisição de imagens para a construção dos ADC; algumas nos
fornecem resultados espaciais macroscópicos (TC - Tomografia Computadorizada, IRM
- Imagem por Ressonância Magnética) e microscópicos (ISH - In situ hybridization),
outras mostram aspectos de funcionalidade (PET e FMRI - Imagem Funcional por
Ressonância Magnética). Durante o processo de aquisição, as imagens sofrem
transformações (rotações, translações e escalamento) indesejadas, alterando assim o
sistema de coordenadas. Algoritmos computacionais de registro e alinhamento de
imagens são executados para solucionar este problema, tanto para imagens 2D ("slices")
pertencentes a um, como a vários indivíduos (Dinov et al., 2009).
(b) Armazenamento das imagens em um Banco de Dados (DB): As imagens
e suas correspondentes informações são estudadas/analisadas, assim poderão ser
coletados os requisitos necessários para conhecer o relacionamento entre estas
informações. Estas relações são representadas através de diagramas (exemplo:
Linguagem de Modelagem Unificada - UML) que modelam e organizam os dados de tal
forma que eliminamos redundância. Uma vez organizada a informação, os dados são
armazenados no BD e aplicações “front-end” são desenvolvidas para mostrar os dados.
(c) Aplicação "front-end": As aplicações e ferramentas utilizadas para
visualizar as imagens do ADC são de grande importância. Elas, entre outras
funcionalidades, nos permitem navegar, anotar, segmentar, analisar e processar as
imagens do ADC. Nesta etapa se desenvolvem estratégias de visualização, juntamente
com uma interface gráfica accessível e didática aos usuários (neurocientistas, biólogos,
médicos, professores, etc). A acessibilidade e usabilidade adequada destas ferramentas
farão com que estas aplicações sejam promissoras para ajudar a criar uma compreensão
abrangente do sistema nervoso e do cérebro, em particular.
Extensões destas aplicações têm sido criadas tanto para executar no computador
("standalone aplication") como para a Internet. Um exemplo de "standalone
aplication", bem conhecido internacionalmente, é o "Allen Human Brain Atlas - Brain
Explorer 2". Esta aplicação visualiza, em 3D, a anatomia do cérebro humano
conjuntamente com dados de expressão gênica. Como exemplo de aplicativos
desenvolvidos para Web, podemos citar o "Scalable Brain Atlas" (SBA). Trata-se de
uma aplicação ou "engine" totalmente desenvolvido para Web, que nos fornece serviços
de visualização e navegação 3D interativa para os ADC.
2. ADC visto como contêineres ("containers") dinâmicos
Os ADC apresentam uma habilidade singular: integrar informações de múltiplas fontes.
Esta nova funcionalidade de enxergar os atlas como contêineres, permite-nos combinar,
por exemplo, imagens PET juntamente (co-registradas) com imagens provenientes de
30
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
MRI assim nos provendo de informações anatômicas e metabólicas. Em outras palavras,
indica a estrutura ou região que estamos observando, revelando o seu funcionamento
bioquimicamente.
Podemos encontrar uma lista variada de diferentes fontes de dados coexistindo
nos ADC, entre elas podemos mencionar: Informação morfológica, informação
genética, conexões morfológicas entre regiões, 2D e 3D anotações, entre outras. A
escala temporal também tem sido uma funcionalidade adicionada aos ADC. Assim, as
fontes de dados (morfológica, genética, etc) podem ser observadas em momentos
diferentes ao longo do tempo. Uma das utilidades mais relevantes desta nova
capacidade adquirida pelos ADC, seria o fato de permitir avaliar a evolução de doenças;
especificamente como elas deterioram estruturas/regiões e suas correspondentes funções
ao longo de seu desenvolvimento.
3. Projetos existentes mais importantes
No quadro abaixo, descrevemos as características principais de 4 projetos.
Projeto
Características
Allen Brain Atlas
Uma coleção crescente de recursos públicos online integrando dados de neuro-anatomia e
expressão gênica, assim como um conjunto novo
de ferramentas de busca e visualização. Um
portal com dados de vários atlas: conectividade
do cérebro do rato, desenvolvimento do cérebro
humano, entre outros.
http://www.brain-map.org/
BrainInfo
BrainInfo é um portal de informações
neuroanatomicas na web. Ele ajuda a identificar
http://braininfo.rprc.washington.edu/
estruturas no cérebro. Também contém três bases
únicas conhecimento: NeuroNames, que fornece
o índice de estruturas cerebrais e informações
sobre eles; Atlas molde, que mostra as estruturas
que se encontram no cérebro dos primatas, e
NeuroMaps, um conjunto de várias centenas
sobreposições que irá mostrar a localização de
diferentes tipos de informações sobre as
estruturas cerebrais em outras espécies.
http://brainmaps.org
BrainMaps é um “multiresolution” atlas do
cérebro é baseado em mais de 20 milhões de
megapixels de resolução sub-micron, imagens
anotadas, digitalizadas de cortes seriados de
ambos os cérebros de primatas e não-primatas e
que é integrado com banco de dados de alta
velocidade, para consulta e recuperação de dados
31
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
sobre a estrutura e função cerebral. É um sistema
desenvolvido para internet. Inclui várias espécies
como: Macaca mulatta, Chlorocebus aethiops,
Felis catus, Mus musculus, Rattus norvegicus,
Tyto alba, e muitos outros vertebrados.
Laboratory
(UCLA)
of
NeuroImaging O objetivo do LONI é melhor compreender o
funcionamento do cérebro. O laboratório é
dedicado ao desenvolvimento de abordagens
http://www.loni.ucla.edu/
científicas para o mapeamento completo da
estrutura e função cerebral. LONI também
oferece bibliotecas e ferramentas para analisar
neuroimagens.
Apesar da relevância dos estudos e trabalhos previamente mencionados, nas
pesquisas realizadas não encontramos nenhuma ferramenta para gerenciar Atlas Digitais
Neurais criada ou desenvolvida na América Latina, incluindo o Brasil. Em 2008 foi
criada a Rede Latino Americana de Mapeamento de Cérebro (www.labman.com) com
participantes de Argentina, Brasil, Colômbia, Cuba e México. O objetivo principal
desta instituição é de promover, normalizar e colaborar usando as técnicas de
neuroimagem. Assim sendo podemos afirmar que esta área de pesquisa está em plena
expansão na atualidade, principalmente na América Latina.
Neste trabalho apresentamos uma aplicação “front-end” para Web, intitulada
ATiNEU, para povoar, navegar e visualizar as informações do ADC com suas
respectivas imagens; assim como também inclui o desenvolvimento de uma ferramenta
de anotação gráfica para as imagens.
4. Resultados e Discursões
O resultado principal deste trabalho foi à criação de uma aplicação/ferramenta para Web
para gerenciar os ADCs e suas respectivas imagens.
O ATiNEU é uma aplicação web de código aberto que usa a linguagem de
marcação HTML5 para apresentar os dados e a linguajem JavaSprict para programação
lógica. Foi desenvolvida utilizando-se da abordagem MVC usando a linguagem PHP
para a construção de páginas Web dinâmicas. O banco de dados foi construído e
gerenciado com MySQL.
Utilizando-se de alguns conceitos da Engenharia de Software, foram levantados
os requisitos do sistema, visando a investigação, definição e escopo do sistema, tendo
como meta bom funcionamento com o atendimento das demandas apuradas. De forma
simplista, para o sistema proposto, tem-se como demanda principal, a construção de um
ambiente computacional para o armazenamento, manipulação e visualização de imagens
de alta resolução de um Atlas Digital para o Cérebro (ADC).
32
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
5. O Sistema e o Gerenciamento dos Atlas
O layout da interface do ATiNEU é apresentado na Figura 1. Pode ser observada a tela
inicial do sistema (Figura 1A), e a interface de listagem das imagens do Atlas (Figura
1B), onde no lado esquerdo da tela se encontram informações relevantes sobre o Atlas,
como: nome, doador, tipo de doador, técnica de corte, entre outras informações; já no
lado direito da imagem pode ser observado uma lista com todas as imagens
armazenadas no atlas, onde a imagem pode ser selecionada para visualização e inserção
de anotações gráficas.
A
B
Figura 1: Layout da interface Web do ATiNEU, com a interface de boas vindas e a
interface de listagem de imagem dos Atlas. (A) Tela inicial do sistema com recursos para
fazer login e visualizar os atlas como visitante. (B) Tela de gerenciamento do atlas com
exibição das imagens em modo lista.
5.1 Gerenciamento/visualização das anotações gráficas das imagens do atlas
O sistema possui uma ferramenta para anotar/marcar graficamente as imagens do atlas,
proporcionando aos pesquisadores, um instrumento para destacar detalhes relevantes
para futuros estudos. Para cada uma das imagens do atlas, a ferramenta de anotações
encontra-se disponível e sua interface web pode ser observada na Figura 2A. Existem
três tipos de anotações gráficas: ponto (“point”) , linha (“line”) e região (“region”)
. Uma vez escolhido o tipo de anotação, o usuário administrado/pesquisador (checar
seção de metodologia, diagrama de caso de uso) poderá inserir a anotação em qualquer
lugar da imagem (Figura 2A).
33
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
A
B
C
D
Figura 2: Layout da interface Web para gerenciamento das informações e visualização
das anotações gráficas nas imagens do atlas. A tela principal do sistema de anotação
para gerenciar os tipos de anotações em uma imagem. (A) imagem escolhida é
carregada juntamente com suas anotações caso elas existem. Podem ser observadas
ferramentas como: zoom in/out, movimentação da imagem, assim como a operação de
escolha/adição de uma anotação. (B) tela de edição de anotações do tipo ponto. (C) tela
de edição de anotações do tipo linha. (D) Tela de Edição de anotações do tipo ponto.
Para cada tipo de anotação inserida, alguns cálculos são realizados em segundo
plano: caso seja o ponto, são calculadas as coordenadas reais do ponto e a sua cor na
imagem (Figura 2B); caso seja uma linha, são calculas as coordenadas dos dois pontos
(inicial e final), assim como a distância e a função de cor ao longo das coordenadas
entre eles (Figura 2C); e caso seja uma região, são calculas as coordenadas de cada
linha que compõem essa região, perímetro, área, cor mínima, media e máxima dessa
região (Figura 2D). Ademais das características geométricas/matemáticas mencionadas,
o sistema também permite a edição as características da aparência visual de cada
anotação gráfica. Entre estas propriedades, podemos encontrar: cor ("color"), grossura
em pixels ("thickness") e tipo de marcador ("tick"), que pode ser um: quadrado (),
circulo () ou diamante (). A mudanças realizadas nestes atributos serão previsualizadas em tempo real ainda sem ter sido salvo estas alterações no banco de dados.
34
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
6. Conclusão
ATiNEU será de grande utilidade para comunidade cientifica, principalmente para os
cientistas do campo da neurociência, contribuindo na integração e compartilhamento de
informações de diferentes atlas em um único sistema computacional.
Acreditamos que este projeto tem uma importância crucial para o
desenvolvimento regional, especificamente para o Estado do Rio Grande do Norte, que
ultimamente tem conquistado uma importante visibilidade nacional e internacional na
área de neurociência. A inserção da UERN neste contexto seria muito importante, dando
a possibilidade da criação de novas áreas de pesquisas onde os estudantes poderiam
desenvolver habilidades inovadoras, facilitando a criação de projetos futuros
relacionados com a neurociência e áreas da saúde, em geral.
No momento de publicação deste artigo, o projeto ATiNEU se encontra
hospedado no servidor da Universidade do Estado do Rio Grande do Norte, podendo ser
acesso por meio do endereço: http://natal.uern.br/ADC/view/. Embora esse projeto
esteja em faze de identificação e correção de erros, o usuário poderá acessa-lo e utilizar
as suas funcionalidades básicas. Estará futuramente disponível o registro de novos
usuários administradores de atlas digitais, de modo a disponibilizar, a esses usuários,
todos os recursos que o ATiNEU tem a oferecer.
Funcionalidades adicionais estão sendo estudadas para que sejam implantadas
no sistema, a fim de aperfeiçoar cada vez mais o ATiNEU e poder oferecer
funcionalidades que venham a atender os diversos tipos de necessidades de trabalho.
Entre as funcionalidades adicionais podemos citar a inserção de plug-ins e serviços web
para interagir informações com outros projetos, previamente mencionados na seção 3,
que são bem conhecidos no cenário internacional, principalmente no campo da
neurociência.
7. Referencias
BAKKER, R.; TIESINGA, P.; KÖTTER, R. (2015) “The Scalable Brain Atlas: Instant
Web-Based Access to Public Brain Atlases and Related Content”.
Neuroinformatics.Nova York, v. 13, n. 3, p. 353-366.
DINOV, I. D. et al. (2009) "Efficient, distributed and interactive neuroimaging data
analysis using the LONI pipeline". Frontiers in neuroinformatics, v. 3.
GEARY, D. M. (2012) "Core HTML5 canvas: graphics, animations, and game
development". Crawfordsville: Prentice Hall.
PRIETO-MARQUEZ, A. et al. (2007) "Morphbank, an avenue to document and
disseminate anatomical data: phylogenetic and paleohistological test cases". Journal
of Morphology, WILEY-LISS DIV JOHN WILEY & SONS INC, 111 RIVER ST,
HOBOKEN, NJ 07030 USA. p.1120-1120.
RONQUIST, F. et al. (2005) "MorphBank, The Development of a General Purpose
Bioinformatics Database". International Conference on Internet Computing. p.31-37.
SALES, D. S. Desenvolvimento de um software livre para análise de imagens com
estereologia quantitativa. Tese para obtenção de titulo de Doutor – Universidade
Estadual do Norte Fluminense, Campos dos Goytacazes, 2014.
35
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
SILVA, A.; VIDEIRA, C. (2005) "UML, Metodologias e Ferramentas CASE, 2ª
Edição, Volume 1. Centro Atlântico, Portugal, Maio". ISBN 989-615-009-5.
SILVA, Lucas F. (2014) "Desenvolvimento de uma aplicação web para gerenciamento
de atlas digitais neurais (atineu)". Trabalho de Conclusão de Curso (Bacharelado) –
Universidade do Estado do Rio Grande do Norte, Nova Cruz.
SOMMERVILLE, I. et al. (2003) "Engenharia de software".
Paulo.
Addison Wesley São
SWEAT, J. E. An Introduction to MVC using PHP. Architect–www.phparch. com 9p.
2003.
TORI, R. et al. (2009) "VIDA: Atlas Anatômico 3D Interativo para Treinamento a
Distância". In XXIX Congresso da Sociedade Brasileira de Computação. 1-10. Bento
Gonçalves, Porto Alegre: SBC.
TOKUNO , H. et al. (2009) "Web-accessible digital brain atlas of the common
marmoset (Callithrix jacchus)". Neuroscience Research. Fuchu, Japão, v. 64, n. 1, p.
128-131.
36
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Desenvolvimento de um aplicativo Android para compressão
de dados utilizando a metodologia de desenvolvimento Ágil
ICONIX
Alan Bruno Moreira Martins1, Cainara Marina dos Santos Silva1, Carlos Alberto
de Albuquerque Silva1, Hugo Leonardo de Lima Oliveira1, Maria Gracielly
Fernandes Coutinho1
1
Ciência da Computação – Universidade do Estado do Rio Grande do Norte (UERN)
Avenida Doutor João Medeiros Filho, 3419 –– 59120-555 –– Natal – RN – Brasil
[email protected], [email protected],
[email protected], [email protected],
[email protected],
Abstract. The rzw application was constructed with the purpose to unite the
concepts learned in the computer science course by the software engineering
(systems development) and multimedia systems (compressing/decompressing
data) disciplines, besides to provide a dynamic knowledge about data
compression through Lempel–Ziv–Welch (LZW) and Run-lenght Encoding
(RLE) algorithms for the academic community. The android was chosen to be
the development platform because it is the most widespread in smartphones
and the development methodology was the ICONIX to be classified as agile,
therefore more productive in a short term.
Resumo. O aplicativo rzw foi construído com o propósito de unir os conceitos
aprendidos nas matérias de engenharia de software (desenvolvimento de
sistemas) e sistemas multimídias (compressão/descompressão de dados) do
curso de ciência da computação, além de fornecer um conhecimento dinâmico
sobre a compressão de dados, por meio dos algoritmos Lempel–Ziv–Welch
(LZW) e Run-lenght Encoding (RLE) para a comunidade acadêmica. O
sistema Android foi escolhido para ser a plataforma de desenvolvimento por
ser o mais difundido em smartphones e a metodologia de desenvolvimento foi
a ICONIX, por ser classificada como ágil, sendo assim mais produtiva a curto
prazo.
1. Introdução
Com a disseminação da internet, a população passou a vivenciar um cenário tecnológico
que modificou principalmente os paradigmas tradicionais da comunicação e informação.
Esta nova era propõe a seus usuários uma rede ágil e de fácil acesso, na qual o fluxo de
dados transmitidos pela rede vem crescendo de forma significativa. Assim, para manter
o desempenho da rede, de forma que a transmissão ocorra de maneira eficiente e em
menor tempo, os dados devem passar por um tratamento como o processo de
compressão.
Neste contexto, a compressão de dados é imprescindível em uma rede mundial
de computadores. Pois o tamanho dos arquivos devido à alta resolução, principalmente
37
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
de imagens, é relativamente alto; o que ocasiona um processo lento ou até mesmo
impossível, como em e-mails que delimitam a taxa para envios. Assim, a atuação da
compressão, que busca atender a premissa da retirada das redundâncias preservando a
informação, se torna indispensável para garantir que grandes arquivos sejam enviados
eficientemente em tamanho reduzido (RODRIGUES, 2005).
Dessa forma, o presente trabalho tem como objetivo desenvolver um aplicativo
android para compressão de dados utilizando a metodologia de desenvolvimento ágil
iconix. Tal aplicativo será capaz de realizar a compressão de imagens ou sequência de
palavras utilizando os algoritmos de compressão Lempel–Ziv–Welch (LZW) e Runlenght Encoding (RLE).
Nesta introdução foi feita uma breve contextualização, na qual foram
apresentadas a problemática e a justificativa e, ainda, o(s) objetivo(s) do trabalho. Na
seção 2, 3 e 4 serão apresentados, respectivamente, os conceitos referentes à
compressão e descompressão de dados, a tecnologia Android e a metodologia Iconix.
Na seção 5 será apresentado o processo utilizado para o desenvolvimento do aplicativo.
Já a seção 6 apresenta os resultados e discursões referentes a implementação do
aplicativo e, por fim, a seção 7 apresenta a conclusão do trabalho relacionado.
2. Compressão e descompressão de dados
Os benefícios adquiridos com a redução da quantidade de bytes presentes em uma dada
informação torna o uso da compressão de dados mais atrativo. O ato de comprimir um
arquivo, através dos diversos métodos de compressão, permite amenizar ou até mesmo
eliminar suas redundâncias, ocasionando um arquivo compacto, que pode ser medido
dividindo o tamanho original do arquivo pelo tamanho do arquivo comprimido, que é
capaz de manter não só sua qualidade, mas também atuar de forma eficiente durante a
propagação na rede.
Este tratamento é possível pelo uso de dois algoritmos: a compressão
propriamente dita ou codificação, e a descompressão ou decodificação (MARQUES
FILHO; VIERA NETO, 1999; ROSA, 2006).
Entre os diversos algoritmos existentes, este mecanismo se classifica em duas
categorias tituladas de compressão sem perdas e compressão com perdas. A compressão
sem perdas, também chamada de compactação, não permite que no processo de
eliminação das redundâncias a informação fique comprometida, ou seja, após o
processo de descompressão seus valores serão iguais aos originais. Já a compressão com
perda é importante para sistemas ou aplicações que necessitam de uma taxa de
compressão maior, possibilitando em sua descompressão uma perda considerada
insignificante para a aplicação (REIS, 2008).
Para este projeto, foram escolhidos dois algoritmos de compressão sem perdas
para serem utilizados no sistema, o LZW e o RLE. Os algoritmos se enquadram nas
categorias de codificação baseada em dicionários e em supressão de sequências
repetitivas, respectivamente (FARIA; SILVA; PACHECO, 2016; SILVA, GALOCHA;
ALVES, 2016).
2.1. Algoritmo RLE
O RLE é um algoritmo de codificação baseada em supressão de sequências repetitivas,
ou seja, utiliza um método simples de substituição de símbolos repetitivos. Sua
38
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
premissa básica é substituir um dado "caractere" X que aparece N vezes na informação,
e para que isso ocorra, é associado na codificação um valor de contagem do símbolo que
se repete em uma sequência e o símbolo em si, como exemplificado abaixo.

Exemplo 1: Dada a sequência BBBBNNAAA
Compressão é igual a 4B2N3A
Este tipo de compressão é mais adequado para imagens em preto e branco, ou
monocromáticas, pois a taxa de compressão será maior devido a possibilidade de
repetição de símbolos iguais, porém, isto não impede sua utilização em imagens
policromáticas, apenas não será tão eficiente com relação a taxa de compressão
(PERNA, 1994).
2.2. Algoritmo LZW
O LZW, diferentemente do algoritmo RLE, é um método de codificação baseado em
dicionários, que codifica uma sequência de caracteres em vez de caracteres isolados. O
processo inicia-se com a criação de um dicionário, que irá receber os elementos isolados
contidos na informação original. Posteriormente, a leitura continuará desde o primeiro
caractere da sequência, até o último, buscando adicionar cada nova palavra ao
dicionário. No exemplo 2, com auxílio das tabelas 1 e 2, é possível visualizar mais
claramente estes conceitos.

Exemplo 2: Dada a sequência a iara agarra
Compressão é igual a 0120350489
Palavra
Código
a
""
i
r
g
a""
""i
ia
ar
ra
a""a
ag
ga
arr
0
1
2
3
4
5
6
7
8
9
10
11
12
13
Tabela 1: Dicionário.
Fonte: Adaptada de (FARIA;
SILVA; PACHECO, 2016).
Referenciar
a saída de
acordo o
código
Palavra
Atual
Já existe no
dicionário?
Saída
a
""
i
a
r
a
a""
a
g
a
ar
r
ra
A
""
I
A
R
A
""
a
g
a
r
r
a
<EOF>
a
a""
""i
ia
ar
ra
a""
a""a
ag
ga
ar
arr
ra
0
1
2
0
3
5
0
4
8
9
Tabela 2: Algoritmo LZW.
Fonte: Adaptada de (FARIA; SILVA; PACHECO, 2016).
A incorporação dessas sequências se dá a partir de códigos que referenciam cada
nova palavra formada, ao qual, se analisa o símbolo da entrada atual e verifica se a
39
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
palavra é, ou não, pertencente ao dicionário. Caso não pertença, a palavra será
adicionada, e se pertencer, a leitura é continuada até que a compressão seja finalizada,
ou seja, até que não existam mais atualizações a serem inseridas. Assim, a compressão é
concluída tendo em sua saída o arquivo comprimido com códigos referidos às palavras
(MARQUES FILHO; VIERA NETO, 1999).
3. Tecnologia Android
O Android é um sistema operacional de fácil utilização que está presente em mais de
um bilhão de dispositivos ao redor do mundo, dentre eles, smartphones, tablets, Tvs,
relógios e carros. Novos aplicativos são criados e disponibilizados gratuitamente, ou
não, todos os dias. Estas aplicações objetivam proporcionar desde entretenimento, no
caso dos jogos, até a disseminação do conhecimento, no caso dos aplicativos
educacionais.
Vislumbrando atingir um maior público possível, estimular o conhecimento
acerca do assunto e proporcionar aos usuários uma maneira eficiente de reduzir o
tamanho da informação, optou-se por desenvolver o aplicativo para smartphones com
tecnologia Android como sistema operacional. Na construção da aplicação foi utilizada
como IDE, o Android Studio, ferramenta que viabilizou todos os recursos necessários
para o desenvolvimento do projeto.
4. Metodologia ICONIX
Ao se pensar na criação de um software, uma escolha importante a ser feita é o tipo de
metodologia que será utilizada em seu desenvolvimento. Esta necessidade se justifica
devido ao poder que essas técnicas possuem para contornar a complexidade envolvida
na construção de um software, de forma a organizar o conjunto de métodos
ordenadamente, buscando amenizar ou retirar a subjetividade durante sua execução,
para que se alcance o real objetivo da aplicação. Na atualidade, existem diferentes
metodologias que se enquadram em diferentes tipos de aplicações, e para o projeto em
questão foi utilizada a metodologia ágil denominada ICONIX (LEITE, 2016).
Diferentemente dos modelos tradicionais, a metodologia ágil Iconix oferece um
processo simplificado que proporciona maior flexibilidade ao desenvolvedor, que agora
consegue aproximar sua equipe do usuário final. Essa aproximação tem por objetivo
auxiliar em quaisquer modificações necessárias durante as fases do projeto, onde este
método utiliza basicamente o ciclo de vida iterativo e incremental, para que a cada
iteração desenvolvida ocorra, se necessário, a atualização ao incremento anterior. Este
tipo de método é direcionado a aplicações de curto prazo e é composto pelas etapas:
modelo de domínio, modelo de caso de uso, análise robusta, diagrama de sequência e
diagrama de classe (CAETANO, 2009; UM POUCO..., 2013). A Figura 1 exibe de
maneira resumida o detalhamento destas etapas.
40
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 1: Fases do ICONIX.
Fonte: Adaptada de (SIICONIX, 2016).
A Figura 1 expõe as etapas da metodologia ICONIX, que iniciam-se a partir do
levantamento dos requisitos necessários para a criação do sistema. A partir destas
informações, pode-se criar o modelo de domínio, que se assemelha com o diagrama de
classe, e é responsável por representar as entidades do sistema, além do diagrama de
casos de uso, que será a ponte entre a fase da análise de requisitos e da implementação.
Ao finalizar esta primeira fase, cada fluxo de dados presente no diagrama de
casos de uso será utilizado na criação do diagrama de robustez. Em paralelo,
atualizamos o modelo de domínio, que agora receberá os atributos das entidades,
podendo dar andamento a terceira etapa do processo.
Na etapa de detalhamento, será introduzido o diagrama de sequência para cada
caso de uso, especificando o que será implementado futuramente. Com base nas
operações detalhadas, será feita mais uma atualização no modelo de domínio,
compondo o diagrama de classes, com suas entidades, operações e atributos do sistema.
É importante lembrar que como seu ciclo de vida é iterativo e incremental, a cada etapa
serão verificadas as possíveis modificações e ao concluir com êxito cada uma delas
estaremos aptos para a fase de implementação (AZEVEDO, 2010).
A metodologia ICONIX nos auxiliou fortemente durante a criação deste projeto.
Onde seu método, de uma forma simplificada proporcionou a equipe uma maior
organização e disciplina a cada fase projetada, e não só foi possível visualizar as
eventuais mudanças necessárias, como também executar essas mudanças de forma
simples e objetiva. O que trouxe uma maior facilidade na revisão dos requisitos já
especificados, para assim serem implementados em nossa etapa final, que previamente,
já se conseguia ter uma melhor compreensão sobre a qualidade do produto final.
5. Modelagem do sistema
Seguindo a metodologia ICONIX, para iniciar o projeto, primeiramente foi realizado o
levantamento dos requisitos do sistema. Dando continuidade ao processo, seguiu-se
com a criação dos diagramas, que forneceram a base de toda a implementação do
sistema, buscando-se obter um detalhamento do projeto de forma que ao final, a
modelagem possa condizer com o que é realmente foi implementado.
41
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Na Figura 2, pode-se visualizar o Modelo de Domínio do Sistema. Na Figura 4,
é exibido o Diagrama de Casos de Uso. O Diagrama de Robustez do Caso de Uso
“Compressão RLE de palavra” é exposto na Figura 5, e o Diagrama de Sequência do
mesmo Caso de Uso, na Figura 6. Por fim, tem-se o Diagrama de Classes ilustrado na
Figura 3.
Figura 2: Modelo de Domínio do Sistema.
Fonte: Elaborada pelos autores.
Figura 3: Diagrama de Classe.
Fonte: Elaborada pelos autores.
Figura 4: Diagrama de Casos de Uso do Sistema.
Fonte: Elaborada pelos autores.
42
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 5: Diagrama de Robustez do Caso de Uso: Compressão RLE de palavra.
Fonte: Elaborada pelos autores.
Figura 6: Diagrama de Sequência do Caso de Uso “Compressão RLE de palavra”.
Fonte: Elaborada pelos autores.
6. Resultados obtidos
O processo de análise e modelagem do sistema teve como base os protótipos das telas,
que serão exibidas nesta seção. Ou seja, a partir destes protótipos foram levantados os
requisitos e em seguida realizada a tarefa de análise e modelagem. Isso ocorre para
validar os requisitos levantados e verificar se nenhum requisito foi esquecido. Este ciclo
é repetido, devido ao processo ser iterativo e incremental. Nas Figuras 7, 8, 9 e 10,
43
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
pode-se visualizar as telas da aplicação, como parte dos resultados. Com relação a
compressão dos dados por meio da aplicação, os resultados obtidos foram os esperados,
a compressão de imagens e de dados que tinham uma sequência de símbolos mais
frequente, tiveram uma taxa de compressão maior utilizando o algoritmo RLE, em
contrapartida, blocos de símbolos espalhados em uma sequência, tiveram uma maior
taxa de compressão utilizando o algoritmo LZW.
Figura 7: Tela de login.
Fonte: Elaborada pelos autores
Figura 9: Compressão de palavra.
Fonte: Elaborada pelos autores.
Figura 8: Tela de inicial.
Fonte: Elaborada pelos autores.
Figura 10: Compressão de imagem.
Fonte: Elaborada pelos autores.
44
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
7. Conclusão
Ao término deste trabalho, constatou-se que a proposta da aplicação Android
apresentada consegue atuar de forma eficiente. Alcançando os resultados esperados em
sua fase inicial, esta ferramenta é capaz de possibilitar ao usuário um maior
entendimento sobre a compressão com ênfase nos algoritmos RLE e LZW. Nos testes
realizados, constou-se que é preferível utilizar a compressão RLE em imagens ou
sequencias de palavras que possuam poucas variações de símbolos e o LZW nas que
possuam blocos de símbolos parecidos, estando de acordo com o esperado. Além disso,
o presente trabalho aborda também o acompanhamento de todas as etapas de
desenvolvimento do software, mostrando o passo a passo da metodologia utilizada, o
ICONIX.
Além dos testes mencionados acima, busca-se aprofundar os conhecimentos
acerca da aplicação desenvolvida. Assim, pretende-se como trabalhos futuros, trabalhar
de forma minuciosa na fase de testes da aplicação, pois como é de conhecimento, os
objetivos iniciais foram alcançados, porém, é necessário verificar possíveis falhas,
como: se há limitação do tamanho da imagem a ser comprimida, se o aplicativo
consegue comprimir arquivos já comprimidos e como seria a descompressão destes
arquivos, ou outras possibilidades a serem pensadas, para assim, após essa identificação,
realizar as correções cabíveis ao projeto.
Referências
AZEVEDO, Márcio. Quantas fases tem o ICONIX? 2010. Disponível em:
<http://oengenheirodesoftware.blogspot.com.br/2010/11/quantas-fases-tem-oiconix.html>.
Acesso
em:
10
set.
2016.
MARQUES FILHO, Ogê; VIEIRA NETO, Hugo. Processamento digital de imagens.
Rio
de
Janeiro:
Brasport,
1999.
307
p.
Disponível
em:
<http://andersonmedeiros.com/e-book-processamento-de-imagens/>. Acesso em: 31
ago. 2016.
RODRIGUES, Charlana Majory de Sá. Estudo comparativo de algoritmos de compressão de imagens para a transmissão em redes de computadores. 2005. 186 f.
Dissertação (Mestrado) - Curso de Engenharia Elétrica, Universidade Federal do
Pernambuco,
Recife,
2005.
Disponível
em:<
http://repositorio.ufpe.br/bitstream/handle/123456789/5622/arquivo7042_1.pdf?sequ
ence=1&isAllowed=y >. Acesso em: 31 ago. 2016.
LEITE, Alessandro. Metodologia de desenvolvimento de Software. Disponível em:
<http://www.devmedia.com.br/metodologia-de-desenvolvimento-de-software/1903>.
Acesso em: 10 set. 2016.
CAETANO, Rodrigo. Metodologias de desenvolvimento: qual a mais adequada?:
Tradicionais ou ágeis. Cada método tem suas vantagens e desvantagens. Saiba qual é
o
mais
indicado
para
o
seu
projeto.
2009.
Disponível
em:
<http://computerworld.com.br/gestao/2009/08/05/metodologias-de-desenvolvimentoqual-a-mais-adequada>. Acesso em: 10 set. 2016.
45
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Um
pouco
mais
sobre
o
ICONIX.
2013.
Disponível
<http://siiconix.blogspot.com.br/p/fases.html>. Acesso em: 10 set. 2016.
em:
ROSA, Janaina Oleinik Moura. Um estudo de compactação de dados para
biossequencias. 2006. 135 f. Dissertação (Mestrado) - Curso de Informática,
Informática, Pontifica Universidade Católica, Rio de Janeiro, 2006. Disponível em:
<http://www.maxwell.vrac.puc-rio.br/9762/9762_1.PDF>. Acesso em: 05 ago. 2016.
PERNA, Marco Antonio Lemos. Módulo de compactação de imagens discretas. 1994.
92 f. Dissertação (Mestrado) - Curso de Ciências em Sistemas e Computação,
Instituto Militar de Engenharia, Rio de Janeiro, 1994. Disponível em:
<http://www.carto.eng.uerj.br/maperna/tese/tese-maperna2.pdf>. Acesso em: 06 ago.
2016..
SILVA, Gonçalo; GALOCHA, Pedro; ALVES, João. Run-length Encoding. 2016.
Disponível em: <http://multimedia.ufp.pt/codecs/compressao-sem-perdas/supressaode-sequencias-repetitivas/run-length-encoding/>. Acesso em: 1 ago. 2016
FARIA, Cláudia; SILVA, Patrícia; PACHECO, Rafael. LZW. 2016. Disponível em:
<http://multimedia.ufp.pt/codecs/compressao-sem-perdas/codificacao-baseada-emdicionarios/lzw/>. Acesso em: 1 ago. 2016.
REIS, Antenor Celidônio Gomes dos. Compressão e qualidade de imagem. Integração:
Ensino, pesquisa, extensão, São Paulo, v. 53, n. 14, p.159-169, abr. 2008. Trimestral.
Disponível em: <ftp://ftp.usjt.br/pub/revint/159_53.pdf>. Acesso em: 07 ago. 2016.
46
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Um Algoritmo de Roteamento para Vistoria dos Estádios da
Eurocopa 2016
Carlos H. P. Liberalino1 , Francisco C. de L. Júnior1 , Gelson L. do Nascimento2 ,
José E. B. Júnior1 , Serafim do Nascimento Júnior2
1
Programa de Pós-graduação em Ciência da Computação
Universidade do Estado do Rio Grande do Norte (UERN)
Rua Almino Afonso, 478 – Centro – 59.610-210 – Mossoró – RN – Brasil
2
Programa de Pós-graduação em Ciência da Computação
Universidade Federal Rural do Semi-Árido (UFERSA)
Av. Francisco Mota, 572 – Costa e Silva – 59625-900 – Mossoró – RN – Brasil
{charlesbat,fclimajr,gelsonlopes.san,jose.etiene,serafim.snj}@gmail.com
Abstract. Holding soccer events requires too much responsibility of their organizing committees. An important task to be carried out before the beginning and
after the end of these events is the inspection of the stadiums where the games are
going to be hosted. This paper presents an optimal routing algorithm that finds
and calculates the minimum cost route in order to help an inspection company
to inspect stadiums rapidly and economically. The algorithm was implemented
by utilizing the Branch & Bound paradigm to solve the travelling salesman problem. After applying it to the inspection of stadiums of the UEFA Euro 2016, it
was possible to conclude by the results that the proposed algorithm is efficient
and effective and, thus, it is very useful for carrying out inspections.
Resumo. A realização de eventos de futebol requer muita responsabilidade de
seus organizadores. Uma tarefa primordial a ser realizada nestes eventos é
a vistoria dos estádios sediadores dos jogos, pois garante a segurança dos
usuários. Este artigo apresenta um algoritmo de roteamento ótimo que encontra
e calcula o caminho de custo mı́nimo que uma empresa de vistoria pode utilizar
para tornar mais econômica e rápida a execução desta tarefa. O algoritmo foi
implementado utilizando o paradigma Branch & Bound para solucionar o problema do caixeiro viajante. Após aplicá-lo ao problema de vistoria dos estádios
da Eurocopa 2016, os resultados permitem concluir que o algoritmo é eficiente
e eficaz e, portanto, é de grande utilidade para realização de vistorias.
1. Introdução
A Eurocopa é o principal campeonato de futebol europeu entre as seleções dos paı́ses
associados à União das Federações Europeias de Futebol (UEFA). O evento é realizado a
cada quatro anos desde 1960 e a cada copa, um dos paı́ses se torna a sede do evento. Originalmente, a Eurocopa era chamada de Copa das Nações Europeias, então a partir de 1968
o Campeonato Europeu de Futebol passou a se chamar apenas Eurocopa [UEFA 2016].
Este ano, a Eurocopa foi sediada na França dentre os dias 10 de junho e 10 de julho. As
cidades que sediarão os jogos são apresentadas na Figura 1.
47
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 1. Cidades-sede da Eurocopa 2016 (EURO, 2016).
De acordo com [UEFA 2016], a base da estrutura organizacional da Eurocopa é
realizada pela própria sediadora do evento em parceria com a federação de futebol do
paı́s sede. Antes da realização dos jogos, a UEFA envia uma equipe de vistoria que, conforme [Buriol 2000], tem o intuito de realizar uma verificação geral em todos os estádios
onde irão ocorrer os jogos do evento, tais como: sistema estrutural, impermeabilização,
vedação e revestimento, esquadrias, cobertura, instalações hidrossanitárias, instalações
elétricas e combate a incêndio.
Como mencionado anteriormente, a vistoria consiste em passar por todos os
estádios em que ocorrem os jogos da Eurocopa. Desta maneira, nota-se que há um grande
gasto de tempo e dinheiro durante a realização deste processo. Com base nesta problemática, este trabalho tem o objetivo de apresentar e propor um algoritmo para encontrar o roteamento ótimo do percurso realizado por uma determinada empresa de vistoria
entre as cidades que sediarão os jogos da Eurocopa 2016, visando a minimização dos
gastos e tempo de realização desta tarefa.
Para atingir este objetivo, foi implementado um algoritmo que resolve o problema do caixeiro viajante utilizando-se o paradigma Branch and Bound (B&B) para
determinação do caminho de custo mı́nimo que uma empresa de vistoria pode utilizar e,
assim, otimizar recursos e tornar mais econômica e rápida a vistoria dos estádios da Eurocopa 2016, seja antes do inı́cio dos jogos seja após o término. Neste artigo, apresentamos
o algoritmo desenvolvido aplicado ao problema de vistoria dos estádios.
Este trabalho está organizado de acordo com as seguintes seções: a seção 2 apresenta a fundamentação teórica necessária para a implementação do algoritmo; a seção 3
denota alguns trabalhos relacionados que utilizam abordagens semelhantes as deste trabalho; a seção 4 descreve os materiais e métodos utilizados para implementação do algoritmo; a seção 5 demonstra os resultados obtidos com a aplicação do algoritmo sobre o
problema de vistoria dos estádios da Eurocopa 2016; e, finalmente, a seção 6 apresenta as
conclusões.
48
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
2. Referencial Teórico
Com o intuito de realizar a tarefa de vistoria dos estádios da maneira mais otimizada
possı́vel, é necessário realizar um estudo sobre quais procedimentos devem ser tomados
para se implementar um algoritmo que retorne o caminho de custo mı́nimo assim como
seu custo para, desta maneira, se efetuar tal função. Sendo assim, nesta seção apresentamos o estudo que foi necessário para se obter o embasamento teórico requerido para
implementação do algoritmo.
2.1. Roteamento de veı́culos
Consoante [da Cunha 2000], o termo roteamento, do Inglês “routing”, é definido como
um processo de determinação de um ou mais rotas ou sequências de paradas a serem
cumpridas por veı́culos de uma frota objetivando visitar um conjunto de pontos geograficamente distribuı́dos, em locais pré-determinados, que necessitam de atendimento.
Os problemas de roteirização reais de acordo com [Dumitrescu and Stützle 2003]
são definidos por três principais fatores: decisões, objetivos e restrições. Onde as decisões se dizem a respeito do grupo de vértices a serem visitados, e envolvendo também
a programação e o sequenciamento das visitas. Como objetivos principais, o processo de
roteamento visa proporcionar um serviço de alto nı́vel, porém mantendo os custos operacionais e de capitais tão baixos quanto possı́vel. Por outro lado, devem-se obedecer as
restrições geradas pelos problemas.
Podemos reformular o problema de roteamento de veı́culos de forma simples,
como um conjunto de veı́culos V idênticos, onde podemos representá-los pelo conjunto
V ={1, 2, ..., n}, onde os mesmos necessitam realizar entregas ou prestar serviços em uma
determinada região, sendo assim seu ponto de partida sendo sua central. Os diversos
pontos a serem visitados junto com a central são representados pelo conjunto C, que são
os vértices de um grafo G=(C, A), onde A é o conjunto de arestas do grafo, representando
a distância entre os vértices [dos Reis 2007].
2.2. Caixeiro Viajante
O Problema do Caixeiro Viajante (PCV) consiste na problemática onde existe um caixeiro
viajante e este quer encontrar o menor caminho para percorrer um conjunto de cidades
que são atendidas por este caixeiro. Em outras palavras, o caixeiro conhece um conjunto
de N cidades que se conectam umas com as outras, se encontra em uma delas e seu
objetivo é passar, somente uma vez, por todas as cidades retornando a cidade de origem
[Dorigo and Stützle 2004], formando assim um ciclo hamiltoniano.
A sua origem é creditada a William Rowan Hamilton, pois inventou um jogo cujo
objetivo era traçar uma rota visitando um conjunto de cidades (vértices), onde o trajeto
se iniciava e terminava na mesma cidade, sem repetir a mesma visita à uma cidade a qual
já se tinha passado anteriormente. O ciclo Hamiltoniano construiu uma solução para o
jogo de Hamilton [Guedes et al. 2009].
Segundo [Rodrigues et al. 2000], a formulação matemática para o caso simétrico
do caixeiro viajante, isto é, onde Cij = Cj i para todo i, j pertencente a V , é apresentada
na Figura 2.
A parte (1) da formulação representa o custo total do circuito; as partes (2) e (3)
são as restrições que forçam a chegada e a saı́da do caixeiro viajante exatamente uma vez
49
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 2. Formulação matemática do problema do caixeiro viajante.
de cada cidade, respectivamente; a parte (4) tem como objetivo impedir a formação de
subcircuitos e a (5) retrata a seguinte condição: se Xij = 1, o trecho (rota) de i para j se
encontra no circuito; caso contrário, se Xij = 0, o trecho não está.
2.3. Branch and Bound
Uma boa forma intuitiva de se obter uma solução ótima para o PCV seria testar por
exaustão todas as possibilidades. Porém, como o PCV é um problema N P -Árduo, logo a
abordagem exaustiva se torna inviável. No entanto, existem diversas outras estratégias baseadas em programação inteira que podem garantir a obtenção de uma solução ótima para
o problema. Estas abordagens algorı́tmicas, chamadas de exatas, garantem a obtenção
do resultado ótimo e ainda provam a solução ótima obtida num tempo de execução finito
ou provam que a solução viável não existe. Como um exemplo de métodos exatos baseado em programação inteira, podemos citar o método Branch & Bound [Dumitrescu and
Stützle 2003].
Contudo, ainda nota-se que há algumas vantagens e desvantagens quanto a
aplicação de algoritmos exatos na solução de problemas que envolvem otimização combinatória. A vantagem dos algoritmos exatos que utilizam programação inteira é que eles
permitem provar e encontrar soluções ótimas, obtidas quando o algoritmo tem sucesso na
sua execução. [Dumitrescu and Stützle 2003].
A desvantagem é o fato de que, para muitos problemas, o tamanho da instância
que pode ser solucionada encontra-se limitado pelo seu custo computacional, que é muito
elevado, pois o tempo de processamento está em função do número de possibilidades e,
sendo assim, cresce com o tamanho da instância [Prestes 2006].
3. Trabalhos Relacionados
Entre todos os problemas de otimização combinatória, o problema do caixeiro (PCV) é
um dos problemas mais amplamente estudados. Embora a versão de otimização deste
problema é N P -difı́cil, técnicas de solução prática não requerem otimização. E muitas
50
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
diferentes heurı́sticas de aproximação de algoritmos são utilizados para resolver este problema [Matei and Pop 2010]. Na literatura encontramos várias aplicações utilizando o
problema do caixeiro viajante. Podemos citar uma empresa de produção de jornais, onde
estes jornais são distribuı́dos em vários locais diferentes. Para isto, o funcionário responsável por fazer a distribuição dos jornais, tem que encontrar uma rota de menor custo
entre as cidades atendidas e ao final retornar a sua empresa [Zaeri et al. 2007]
Há também um aplicativo onde o caixeiro viajante é utilizado para encontrar a
menor rota para pontos de saúde, tais como: postos de saúde, hospitais e outros. Uma
aplicação que tem apresentado resultados satisfatórios, pois permite que o tempo gasto no
atendimento seja minimizado [Hoffmann et al. ].
Em outra situação, tem-se a utilização do caixeiro viajante para a colocação de
pontos estratégicos das bases policiais, e assim posicionando em pontos que minimizem
a rota destes policiais, permitindo assim uma abrangência maior da polı́cia (Gurgel et al.,
2010). Percebe-se que ao longo do tempo surgiram vários algoritmos que proporcionam
melhorias para a sociedade. Em outras palavras, estes algoritmos otimizam as ferramentas
tecnológicas e, consequentemente, problemas do nosso cotidiano.
Outro exemplo de algoritmo é o Branch & Bound para solução do PCV.
[dos Reis 2007], apresenta uma solução do problema fazendo uma alocação ótima de medidores de energia elétrica, no qual isso é aplicado dentro de uma rede de transmissão
elétrica de potência. Para a sua implementação foi utilizado o software Matlab, e tem a
função de minimizar o custo total do sistema, fazendo assim um monitoramento e, desta
forma, determinando o número ótimo e também a localização dos monitores, com suas
restrições sob as observações da rede.
Outro caso que vale a pena citar é o algoritmo de roteamento de veı́culos, apresentado em [Arsie et al. 2009]. Nele, é considerada uma classe dinâmica de problemas
de roteamento de veı́culos, em que um número de agentes móveis no plano deve visitar
pontos alvo gerados ao longo do tempo por um processo estocástico. Desta forma, fornecendo estratégias de coordenação de movimento, a fim de minimizar o tempo esperado
entre o aparecimento de um ponto de destino e o tempo que é visitado por um dos agentes.
4. Materiais e Métodos
Nesta seção são apresentados os materiais e métodos que foram necessários para implementar o algoritmo apresentado neste artigo.
4.1. Modelagem do Problema
Inicialmente foi realizada a coleta de dados por meio da obtenção dos valores referentes
as distâncias (em Km) entre as cidades-sede da Eurocopa 2016. A ferramenta utilizada
para execução desta tarefa foi a Google Maps. Os dados obtidos foram tabulados como
pode ser visto na Figura 3.
A partir da tabela apresentada na Figura 3, foi possı́vel criar um grafo G = (V, A),
apresentado na Figura 4, para melhorar a visualização do problema. Para isto, a ferramenta GraphViz foi utilizada. Neste grafo, o conjunto V de vértices representam as
cidades-sede e, consequentemente, o conjunto A de arestas representam as distâncias entre duas cidades distintas.
51
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 3. Distâncias entre as cidades-sede da Eurocopa 2016.
Figura 4. Grafo que representa as distâncias entre as cidades.
4.2. Algoritmo proposto
Para solucionar o problema de vistoria especificado anteriormente foi implementado
um algoritmo de roteamento de veı́culos utilizando o paradigma Branch & Bound para
solução do problema do caixeiro viajante. Onde o mesmo, resumidamente, segue o seguinte procedimento: dada uma matriz de adjacência, é gerada uma estrutura de árvore
de decisão, em que se percorre todos os seus nós de forma sistemática e, assim, procurando evitar caminhos com soluções inviáveis ou piores das rotas já encontradas
[Machado et al. ]. Esta estratégia pode ser visualizada através do pseudocódigo apresentado a seguir:
A priori, faz-se um relaxamento para adaptação do problema transformando a matriz num problema Branch & Bound. Diante desta situação, para verificar se o algoritmo
está correto, é apresentada a corretude dele a seguir. Como o algoritmo é iterativo, a sua
corretude é verificada por meio do invariante de laço.
• Invariante: retorna-se uma lista (referente ao percurso ótimo) com o caminho de
custo mı́nimo armazenado sendo que cada um de seus elementos representam uma
cidade onde a vistoria deve ser feita.
• Antes do laço: como não se saiu da cidade inicial, a lista referente ao percurso
ótimo não teve nenhum elemento adicionado referente ao caminho. Logo, ela é
nula.
52
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Algorithm 1
Inicio do algoritmo
Definir um valor inicial para o melhor custo (custo mı́nimo) do caminho;
Inicializar a fila de prioridades;
Gerar o primeiro nó com o caminho parcial [1] e calcular seu limite inferior;
Inserir este nó na fila de prioridades F P ;
Enquanto não esvazia a fila de prioridades F P ;
Remova o primeiro elemento dentro da fila de prioridades F P e atribua ele ao nó pai;
Se o limite inferior < melhor custo do caminho;
Defina o nı́vel do nó para o nı́vel do nó pai + 1;
Se este nı́vel é igual a n − 1 (isto é, n ser o número de cidades);
Adicione 1 para o fim do caminho e calcule o custo do caminho inteiro;
Se este custo < custo do melhor caminho;
Defina o custo da melhor rota (caminho) e o melhor caminho adequadamente;
Senão (isto é, o nı́vel não é igual a n − 1 );
Para todo i tal que 2 = i ≤ n e i não está no caminho do pai;
Copie o caminho do pai para o novo nó;
Adicione i para o fim deste caminho;
Calcule o limite inferior para este nó;
Se o limite inferior é menor do que o custo da melhor rota;
Insira este novo nó na fila de prioridades;
Fim do algoritmo
• Durante o laço: a cada iteração do laço, traça-se a rota de um novo caminho na
árvore. Caso o novo caminho tenha o menor custo do que o caminho já anteriormente obtido, esta nova rota é aderida e adicionada na lista referente ao percurso
ótimo. Logo, o caminho aderido anteriormente é podado. Caso o caminho seja
inviável (pior do que o caminho já anteriormente obtido) este caminho é podado.
Em seguida, inicia-se uma busca a um novo caminho e tudo se repete sucessivamente.
• Após o laço: ao término do laço, haverá uma lista que indica o caminho com a
solução ótima, isto é, o caminho de custo mı́nimo.
Como visto anteriormente, o algoritmo demonstra-se estar correto. Para verificar a
sua complexidade, vemos que no pior caso a árvore de subproblemas será completamente
expandida. Sabendo que a cada expansão dos nós, a quantidade de subproblemas di-minui
fatorialmente, isto é: na 1a expansão: (n − 1) nós; na 2a expansão: (n − 2) nós; na 3a
expansão: (n − 3) nós; até a e-nésima: (n − n). Logo, conclui-se que a complexidade do
algoritmo, no pior caso, é O(n!).
4.3. Ferramentas utilizadas
O algoritmo foi implementado utilizando a linguagem de programação C auxiliada pelo
ambiente de desenvolvimento Dev-C++ e utilizando-se o compilador minGW, sob o sistema operacional Windows 7.
53
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
5. Resultados
Os resultados foram obtidos aplicando-se o algoritmo sobre a matriz de adjacência referente ao problema de vistoria dos estádios da Eurocopa 2016. Foi suposto que a empresa
de vistoria se encontra na cidade de Bordéus, cidade de origem do percurso. Para que a
vistoria seja feita da maneira mais econômica e rápida possı́vel, o caminhão da empresa
precisa percorrer todas as demais cidades e, por fim, retornar a sua cidade de origem.
Desta maneira, aplicando o algoritmo proposto neste trabalho para solucionar este problema, obtivemos os seguinte resultados apresentados na Figura 5.
Figura 5. Cronograma com os dados pa-ra a vistoria
Como podemos observar na Figura 5, o algoritmo retorna que o custo total mı́nimo
da menor rota, saindo de Bordéus, é de 2908 km. Ademais, ele também apresenta o percurso que deve ser seguido saindo de Bordéus, passando pelas demais cidades um única
vez e, finalmente, retornando para a cidade inicial do percurso. Estas informações auxiliam um determinada empresa de vistoria a executar esta tarefa de maneira mais rápida e
econômica. O grafo apresentado na Figura 6 representa melhor o percurso ótimo que foi
retornado pelo algoritmo.
6. Conclusão
Diante do problema de vistoria dos estádios da Eurocopa deste ano, que consiste na necessidade de uma empresa fazer a inspeção de cada um dos estádios-sede dos jogos, neste
artigo uma solução tanto para este problema quanto para problemas similares é proposta.
O algoritmo de roteamento de veı́culos apresentado neste trabalho utiliza o paradigma
Branch & Bound para solucionar o Problema do Caixeiro Viajante.
Ao aplicar o algoritmo para o problema de vistoria da Eurocopa 2016, os resultados obtidos apontam que o algoritmo apresenta uma solução ótima para encontrar o
caminho de custo mı́nimo. Com isto, pode-se concluir que ele resolve o problema das
vistorias nos estádios de maneira eficiente e eficaz. Portanto, pode ser utilizado para
qualquer problema que envolva o cálculo de caminhos de custo mı́nimo.
54
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 6. Grafo com o caminho de custo mı́nimo de-terminado pelo algoritmo
proposto
Como trabalhos futuros, pretende-se desenvolver um sistema de organização de
eventos de futebol e, consequentemente, adicionar o algoritmo proposto neste trabalho
a ele. Com o intuito de atingir este objetivo, serão implementadas mais funcionalidades
ao algoritmo. Uma delas será a inserção de perfis de torcedores para gerar um cronograma mostrando todas as informações referentes aos jogos que o torcedor deseja assistir.
Também como proposta de trabalho futuro, visa-se otimizar o algoritmo proposto o tornando capaz de se trabalhar com múltiplas equipes de vistoria por meio da criação de
rotas.
Referências
Arsie, A., Savla, K., and Frazzoli, E. (2009). Efficient routing algorithms for multiple
vehicles with no explicit communications. IEEE Transactions on Automatic Control,
54(10):2302–2317.
Buriol, L. S. (2000). Algoritmo memetico para o problema do caixeiro viajante assimetrico como parte de um framework para algoritmos evolutivos.
da Cunha, C. B. (2000). Aspectos práticos da aplicação de modelos de roteirização de
veı́culos a problemas reais. Transportes, 8(2).
Dorigo, M. and Stützle, T. (2004). Ant colony optmization, massachusetts institute of
technology.
dos Reis, D. C. S. (2007). Um algoritmo branch and bound para o problema da alocaçao
otima de monitores de qualidade de energia elétrica em redes de transmissao. Juiz de
Fora, MG.
Dumitrescu, I. and Stützle, T. (2003). Combinations of local search and exact algorithms.
In Workshops on Applications of Evolutionary Computation, pages 211–223. Springer.
Guedes, A. d. C. B., Leite, J. N. F., and Aloise, D. J. (2009). Um algoritmo genético com
infecção viral para o problema do caixeiro viajante. Revista PublICa, 1(1).
55
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Hoffmann, E. H., Aebi, K. W. Z., and Bortoleto, S. Sistema de roteirização urba a:
Aplicação a saúde pública.
Machado, F. C., de Queiroz, T. A., Resende, M. G., Morabito, R., and Miyazawa, F. K.
Problema do caixeiro viajante com coleta e entrega de objetos com base retangular.
Matei, O. and Pop, P. (2010). An efficient genetic algorithm for solving the generalized
traveling salesman problem. In Intelligent Computer Communication and Processing
(ICCP), 2010 IEEE International Conference on, pages 87–92. IEEE.
Prestes, Á. N. (2006). Uma análise experimental de abordagens heurı́sticas aplicadas ao
problema do caixeiro viajante. PhD thesis, Universidade Federal do Rio Grande do
Norte.
Rodrigues, M. A. P. et al. (2000). Problema do caixeiro viajante: Um algoritmo para
resoluçao de problemas de grande porte baseado em busca local dirigida.
UEFA (2016).
UEFA EURO 2016 France: Le Rendez-Vous. Disponı́vel em:
<http://pt.uefa.com/multimediafiles/download/competitions/general/02/28/61/20/2286
120 DOWNLOAD.pdf>. Acesso em: 01 jul. 2016.
Zaeri, M. S., Shahrabi, J., Pariazar, M., and Morabbi, A. (2007). A combined spatial
cluster analysis - traveling salesman problem approach in location-routing problem: A
case study in iran. In 2007 IEEE International Conference on Industrial Engineering
and Engineering Management, pages 1599–1602.
56
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Uma heurística baseada no método de busca A* aplicada ao
problema de roteamento
Ana Patrícia de Sousa1 , Mayrton Dias de Queiroz1 , Carlos Alberto de Souza1 ,
Augusto Cesar B. P. Guimarães1 , Natasha C. Queiroz Lino 1
1
Centro de Informática - Universidade Federal da Paraíba (UFPB) –
João Pessoa – PB – Brasil
{anapatricia,mayrtondias,carlossouza}@ppgi.ci.ufpb.br,
[email protected], [email protected]
Resumo. Este artigo apresenta a modelagem da proposta de um algoritmo heurístico para solucionar o problema de roteamento, baseado na menor distância
e no número de acidentes entre determinados pontos. O algoritmo é resultado
da combinação do método de busca A* com a estrutura de dados heap. A estrutura de heap foi usada para otimizar a decisão do nó de menor custo, no
entanto, é preciso mensurar o ganho em relação a outros algoritmos encontrados na literatura, dessa forma, foi realizada uma comparação do algoritmo
A* com insertion sort, com algoritmo A* com busca Linear e com o algoritmo
de busca em profundidade. Os testes realizados utilizaram como entradas as
distâncias das rotas entre 25 pontos (cidades, praias ou bairros) do estado do
Rio Grande do Norte (RN), bem como os números de acidentes ocorridos nessas rotas. A análise comparativa do algoritmo comprovou que o mesmo é mais
eficiente em termos de tempo de execução.
Abstract. This article presents the modeling of proposal for a heuristic algorithm to solve the routing problem, based on the shortest distance and the number of accidents between certain points. The algorithm is the result of the combination of A * search method with the heap data structure. The heap structure
is used to optimize the decision of the lowest cost node, however, it is necessary to measure the gain in relation to other algorithms found in the literature,
like this was performed a comparison of the algorithm A* with insertion sort,
with A* algorithm with the linear search and the depth search algorithm . The
tests used as inputs distances of routes between 25 points (cities, beaches and
neighborhoods) of Rio Grande do Norte State (RN) and the accident occurred
num-bers on those routes. The comparative analysis of algorithm proved that it
is more efficient in terms of execution time.
1. Introdução
Segundo informações do Departamento Nacional de Infraestrutura de Transportes
(DNIT)1 , de 2007 a 2011 houve um aumento de 29% no número de acidentes com vítimas em rodovias federais, neste mesmo período, o número de mortos entre as vítimas
cresceu 2%. No estado do Rio Grande do Norte (RN), em 2011 houve um aumento de
4% no número de vítimas (mortos e feridos) em relação ao ano de 2007.
1
http://www.dnit.gov.br/
57
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
O problema de roteamento de veículos (PRV), é definido por Ribeiro et al. (2003)
como um problema clássico da literatura onde, dado um conjunto de cidades (ou consumidores), cada um com uma demanda qi por um produto, e um depósito com veículos
de capacidade Q, encontrar as rotas para os veículos reduzindo os custos de transporte.
Segundo o autor este problema é uma generalização do Problema do Caixeiro Viajante
(PCV). O PRV é um problema combinatório classificado como NP-Difícil, ou seja, não
há algoritmos que encontrem soluções ótimas para ele em tempo polinomial.
Conforme Subramanian et al.(2013), o PRV tem sido um dos problemas mais
abordados nas áreas de Otimização Combinatória e Pesquisa Operacional especialmente
nas últimas décadas. Encontrar a melhor rota demanda em encontrar o menor caminho.
O algoritmo A* mostra-se eficiente quando aplicado para a busca do caminho mais curto
por ser completo e ótimo e ainda fornecer um bom desempenho (RUSSEL e NORVIG,
2013).
Este trabalho descreve a modelagem de um algoritmo heurístico baseado no método de busca de melhor escolha A* e na estrutura de dados heap como estratégia para
encontrar o caminho mais curto e com a menor ocorrência de acidentes em determinada
rota. Com o intuito de avaliar o desempenho do algoritmo, tendo como métrica, o tempo
de execução quando comparado a outros algoritmos também baseados em busca A*, porém baseados no algoritmo de ordenação InsertionSort e A* com busca linear. O algoritmo resultante também foi comparado a um algoritmo baseado no método de busca em
profundidade. Para a análise comparativa realizada neste trabalho foram utilizadas informações relativas às distâncias de todas as possíveis rotas entre 25 diversos locais (cidades,
praias ou bairros) do estado Rio Grande do Norte. Também foram utilizadas informações
sobre a quantidade de acidentes ocorridos nessas rotas.
As próximas seções deste trabalho estão organizadas em: Trabalhos Relacionados
(próxima seção), que mostra os trabalhos realizados utilizando heurísticas e/ou tecnologias parecidas ou iguais às utilizadas neste trabalho; Busca A* (seção 3), que descreve o
método de busca A* (lê-se A estrela); A estrutura de dados heap (seção 4), seção que trata
das principais características na estrutura de dados heap; Algoritmos de ordenação (seção
5), que inclui uma breve descrição sobre algoritmos de ordenação. A seção 5 possui a subseção InsertionSort (subseção 5.1), que descreve o algoritmo de ordenação InsertionSort.
A seção 6, nomeada como: Modelagem do Algoritmo, apresenta a estrutura do algoritmo
proposto; a seção 7, Análise Comparativa apresenta o resultado da comparação do algoritmo com as outras propostas de algoritmos baseadas em busca em profundidade e no
algoritmo InsertionSort de modo a verificar sua eficiência em termos de tempo de execução. Este trabalho é finalizado com a seção Conclusões (seção 8), que avalia a eficácia da
proposta.
2. Trabalhos Relacionados
Jaques et al. (2012), propõe em seu trabalho, a utilização do algoritmo A* de modo propor
uma solução para o problema do caminho mais curto em uma rede de transporte público
de modo a permitir trocas de linhas, o algoritmo resultante foi testado com dados reais da
cidade Porto Alegre. O problema consiste basicamente na escolha de um caminho Po,d , a
partir da parada mais próxima do ponto de origem até a parada mais próxima do destino.
Um conjunto de paradas de uma cidade ligadas por linhas de ônibus foi representada
58
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
como um grafo G(N, A), onde N representa os nós (paradas de ônibus) e A = (id, i, j)
as arestas (linhas de ônibus). Cada aresta é identificada por id e representa uma linha de
ônibus que sai de i e chega a j (podendo continuar). As arestas também possuem um
determinado custo ca . A Figura 1 apresenta o pseudocódigo do algoritmo de roteamento
para o caminho mais curto definido no trabalho.
Figura 1. Pseudocódigo do algoritmo para o caminho mais curto
Foram gerados randomicamente 532 problemas (cada problema é uma parada de
origem e uma de destino) que foram testados igualmente com o algoritmo A*, o Dijkstra
e o Busca em Largura (BL). Conforme os resultados o A* apresentou custos menores que
o BL para as rotas testadas, no entanto, o desempenho do algoritmo A* foi igual ao do
Dijkstra (a linha que representa os resultados para o Dijkstra na Figura 2 está por trás da
que representa o A*) (JAQUES et al., 2012).
Figura 2. Desempenho dos algoritmos testados
Sommer, Konrad e Jaques (2013) realizaram um trabalho que propõe uma especialização do algoritmo A*, por meio da inclusão no algoritmo de uma heurística que
59
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
penaliza rotas com transbordo e prioriza trajetos sem baldeações quando isso for possível, como alternativa para solucionar o problema de roteamento em transporte público
por meio da busca pelo caminho mais curto. O algoritmo foi testado utilizando 186 casos
gerados aleatoriamente a partir de uma base de dados de paradas e linhas de ônibus da
cidade de Porto Alegre. Foram realizados testes com o algoritmo A* proposto no trabalho
Jaques et al. (2012) (descrito anteriormente) e o algoritmo A* modificado. Com o último
foi possível encontrar rotas com menos necessidades de baldeações.
É possível que se encontre na literatura uma grande quantidade de trabalhos relacionados à busca de soluções para o problema do roteamento de veículos. Subramanian
et al. (2013) realiza a modelagem de um algoritmo heurístico, baseado na meta-heurística
Iterated Local Search para resolver uma variedade de generalizações do PRV. Sosa, Galvão e Gandelman (2007) propõem em seu trabalho a criação de heurísticas que usam o
conceito da meta-heurística Busca Dispersa (BD) para a solução do PRV.
Seguindo o contexto dos trabalhos descritos nesta seção, o presente artigo apresenta como proposta a definição de uma heurística baseada na estrutura do método de
busca de melhor escolha A* em conjunto com a estrutura de dados heap, de modo a encontrar o caminho mais curto e com menos possibilidades de ocorrências de acidentes de
uma determinada origem até um destino estabelecido previamente. Uma análise comparativa é realizada neste trabalho entre o algoritmo proposto e um algoritmo A* baseado
no algoritmo InsertionSort e ainda entre um algoritmo A* com busca linear. O desempenho do algoritmo resultante deste trabalho também foi comparado ao desempenho de
um algoritmo baseado no método de Busca em Profundidade. Para as comparações foram
utilizados dados reais das distâncias das rotas entre 25 pontos (cidades, prais ou bairro)
do estado do Rio Grande do Norte. Foram utilizados também informações reais relativas
à quantidade de acidentes ocorridos nessas rotas. As informações quanto às distâncias e
o número de acidentes foram obtidas através do site DistanciaCidades.com 2 e de informações do Detran RN 3 respectivamente.
3. Busca A*
Conforme Russel e Norvig (2013), busca A* é a forma de solução mais amplamente
conhecida da busca de melhor escolha. Segundo os autores, a busca A* avalia os nós
através da combinação de g(n), que é o custo para alcançar o nó, e h(n), o custo para ir
do nó ao objetivo. Conforme a seguinte função:
f (n) = g(n) + h(n).
Onde, g(n) fornece o custo do caminho desde o nó de destino até o nó n e h(n) apresenta
uma estimativa para o custo do caminho menos oneroso de n até o objetivo. Assim, é
possível ter-se a partir da função mostrada:
f (n) = custo estimado da solução de menor custo a partir de n.
Dessa forma, se o objetivo é encontrar a solução menos custosa, seria razoável inicialmente, tentar o nó com o menor valor de g(n) + h(n). Caso a função heurística h(n)
satisfaça certas condições, a busca A* poderá ser completa, ou seja, sempre encontra uma
solução se existir e ótima, ou seja, sempre encontra a melhor solução caso a heurística
2
3
http://distanciacidades.com/
http://adcon.rn.gov.br/acervo/detran/doc/DOC000000000124783.PDF
60
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
estabelecida seja admissível. A versão de busca em árvore A* será ótima se h(n) for
admissível enquanto a versão de busca em grafos de A* será ótima caso h(n) seja consistente (RUSSEL e NORVIG, 2013). Neste trabalho, a heurística de busca definida para
encontrar o caminho mais curto utiliza a versão de busca em grafos de A*.
4. A estrutura de dados heap
Segundo Cormem et al. (2002), a estrutura heap (ou monte) é um objeto arranjo que pode
ser visto como uma árvore binária praticamente completa (Figura 3), onde cada nó da
árvore representa um elemento do arranjo que armazena o valor do nó. Um arranjo A que
representa um heap é um objeto com dois atributos: comprimento[A], que corresponde
ao número de elementos do arranjo e tamanho-do-heap[A], o número de elementos do
heap armazenado dentro do arranjo A. A raiz da árvore é A[i] e, dado o índice de um nó,
os índices do nó pai PARENT(i), do nó filho da esquerda LEFT(i) e do filho da direita
RIGHT(i) podem ser calculados de forma simples:
PARENT (i)
return bi/2c
LEFT(i)
return 2i
RIGHT(i)
return 2i + 1
Existem dois tipos de heaps binários são eles: heaps mínimos e heaps máximos. A
propriedade de heap máximo é que, para todo nó i diferente da raiz, A[P AREN T (i)] ≥
A[i], isto é, o valor de um nó é no máximo o valor de seu pai. Um heap mínimo é
organizado conforme a propriedade: A[P AREN T (i)] ≤ A[i], isto é, o menor elemento
em um heap mínimo está na raiz (CORMEM et al., 2002).
Figura 3. Um heap máximo visto como (a) uma árvore binária e (b) um arranjo. (CORMEM et al., 2002)
Na estrutura heap o valor de cada nó não é menor do que os valores contidos em
cada um dos seus filhos e a árvore é perfeitamente balanceada com todas as suas folhas
nas posições mais à esquerda.
5. Algoritmos de Ordenação
Conforme Drozdek (2010), a utilização de critérios de ordem para disposição de dados
pode aumentar substancialmente a eficiência do seu manuseio. Segundo o autor é inquestionável a conveniência de usar dados ordenados, e tal conveniência precisa ser aplicada
também a ciência da computação. Os algoritmos de ordenação possuem diferentes níveis
de complexidade. Um simples método de ordenação pode ser apenas 20% menos eficiente
61
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
que um mais sofisticado. Se a ordenação é usada vez ou outra e para ordenar pequenas
quantidades de elementos, não é recomendável utilizar um algoritmo sofisticado, porém
se é necessário ordenar uma quantidade considerável de elementos, não se pode desprezar
um ganho de 20%.
Algoritmos simples frequentemente têm melhor desempenho com pequenas quantidades de dados do que os mais complexos, que apenas podem ser comprovadamente
efetivos quando utilizados para ordenar conjuntos muito grandes de dados (DROZDEK,
2010). A próxima subseção descreve resumidamente o algoritmo de ordenação InsertionSort.
5.1. InsertionSort
A ordenação por inserção inicia considerando os dois primeiros elementos da vetor:
data[0] e data [1]. Se os mesmos estiverem fora da ordem crescente uma troca de posições é realizada, conforme na Figura 5 (DROZDEK, 2010).
Figura 4. Pseudocódigo do algoritmo insertionsort(DROZDEK, 2010).
6. Modelagem do algoritmo proposto
Baseando-se no método de busca A* (seção 3) e na estrutura de dados heap (seção 4) foi
definido um algoritmo heurístico que tem como objetivo encontrar o caminho mais curto e
com menos possibilidades de ocorrências de acidentes de um ponto inicial (origem) a um
ponto final previamente estabelecido (destino). A estrutura do algoritmo proposto pode
ser observada no pseudocódigo da Figura 5.
O algoritmo recebe como entradas 3 grafos nomeados graf o, distancia e
acidentes, o primeiro deve conter as ligações entre cada vértice que representa os pontos (cidades), o segundo deve incluir todas as distâncias entre dois pontos, e o número
de acidentes ocorridos nas rotas. Enquanto não se chegar ao destino, as posições atuais
serão adicionadas a uma lista após passar pela função heurística (Figura 7). A escolha
da rota menos custosa (caminho mais curto) será realizada por meio da definição de um
heap de mínimo. Ao fim da execução da estrutura de repetição “enquanto”, uma lista terá
sido preenchida com as rotas mais vantajosas em termos de distâncias. Os passos a serem
seguidos pelo algoritmo de modo a alcançar o objetivo descrito está ilustrado na Figura 6.
7. Análise Comparativa
Para testar a eficiência da proposta de algoritmo apresentada neste trabalho foram utilizados dados reais referentes às distâncias de todas as possíveis rotas entre 25 pontos que
podem ser cidades, praias ou bairros do estado do Rio Grande do Norte, dispostos conforme a estrutura em grafo constante na Figura 8. O resultado em milissegundos para 5
entradas (distâncias entre 5, 10, 15, 20 e 25 pontos) fornecidas para teste com o método
62
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 5. Pseudocódigo do algoritmo proposto. Fonte: Os autores
Figura 6. Funcionamento do algoritmo proposto.
de busca A* com InsertionSort, A* com busca linear e ainda com o método de Busca em
profundidade, podem ser observados na Tabela 1.
O resultado da comparação do algoritmo proposto com os algoritmos supracitados
pode ser observado no gráfico da Figura 9. A partir da sua análise, pode-se observar
63
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 7. Implementação em C++ da função heurística.
que o algoritmo proposto neste trabalho mostra-se como a alternativa mais eficiente para
solucionar o problema de roteamento de veículos.
Figura 8. Grafo das distâncias entre as 25 cidades do RN.
64
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Tabela 1. Resultados dos testes para todos os algoritmos para 5 conjuntos de
entradas
Número de cidades
5
10
15
20
25
A* com
heap
3
7
14
15
16
Resultados em milissegundos
A* com
A* com
Busca em
busca linear insertionSort profundidade
2
2
9
10
3
15
16
19
18
18
17
30
18
30
339
Como pode ser visto na Tabela 1, o algoritmo proposto é o que apresenta os melhores resultados pois seu tempo de execução foi o menor para todas as entradas fornecidas.
Os resultados para os algoritmos baseados em busca A* com busca linear e insertionSort
são bem próximos dos obtidos com a execução do A* com heap. No entanto, o algoritmo baseado em busca em profundidade apresentou-se altamente custoso para todas os
conjuntos de entradas em termos de tempo de execução, não sendo, portanto, alternativa
viável para solucionar o PRV.
Na Figura 8 é possível identificar a solução apresentada pelo algoritmo proposto,
de forma que o usuário deseja sair da da cidade de Natal e chegar na cidade de Vera Cruz.
Diante dessa instância do problema, o algoritmo retorna como solução a rota saindo de
Natal em direção a cidade de Macaíba até chegar no destino desejado que é a cidade de
Vera Cruz mostrado pela rota destacada de vermelho na Figura 8.
Figura 9. Comparativo dos algoritmos quanto ao tempo de execução.
8. Conclusões
A partir dos resultados da análise comparativa realizada na seção anterior, pode-se observar que o algoritmo proposto, que tem como base o método de busca A* em conjunto com
65
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
a estrutura heap, apresenta-se comprovadamente eficiente, em termos de menor tempo de
execução, quando aplicado ao problema de roteamento.
Para o problema específico abordado neste artigo (busca do caminho menos custoso e menos perigoso para ir de uma cidade a outra do estado do Rio Grande do Norte),
o algoritmo ofereceu com precisão a melhor alternativa de rota entre determinada origem
e destino a um custo mínimo para sua execução. Assim, pode-se concluir que a heurística
definida neste trabalho é uma alternativa eficaz quando aplicada com o fim de resolver o
problema de roteamento.
Referências
CORMEM, Thomas H.; LEISERSON, Charles E.; RIVEST, Ronald L.; STEIN, Clifford.
Algoritmos: teoria e prática. Rio de Janeiro: Elsevier, 2002.
DOZDEK, Adam. Estrutura de dados e algoritmos em C++. São Paulo: Cengage Learning, 2002.
JAQUES, Patricia A.; BASTOS, Rodrigo; PASIN, Marcia; CHIWIAKOWSKI, Leonardo;
SOMMER, Tiago; KONRAD, Tiago. Um Estudo de Caso com o Uso do A * para o
Problema do Caminho Mais Curto em Transporte Público. In: Brasilian Conference on Intelligent System – Encontro Nacional de Inteligência Artificial, Curitiba,
2012.
JAQUES, Patricia A.; SOMMER, Tiago; KONRAD, Tiago. Adaptando o algoritmo A*
para o uso em sistemas inteligentes de transporte: sistema antares. Universidade
do vale do Rio dos Sinos: Porto Alegre.
RIBEIRO, Filipe N.; MINE, Marcio T.; SILVA, Matheus de S. A.; SOUZA, Marcone J. F.
Problema de roteamento de veículos. Universidade Federal de Ouro Preto: Minas
Gerais, 2003.
RUSSEL, Stuart; PETER, Norvig. Inteligência Artificial. Rio de Janeiro: Elsevier, 2013.
SOSA, Nélida Gladys M.; GALVÃO, Roberto D.; GANDELMAN, Dan A. Algoritmo de
busca aplicado ao problema clássico de roteamento de veículos. Pesquisa Operacional. v27. p 293-310. 2007.
SUBRAMANIAN, Anand; PENNA, Puca H. V.; OCHI, Luiz Satoru; SOUZA, Marcone
J. F. Um algoritmo heurístico baseado em Iterated Local Search para problemas
de roteamento de veículos. In: Lopes et al. Meta-heurísticas em pesquisa operacional. Universidade Federal Fluminense. 2013. 165-180.
66
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Proposta de Implementação Paralela de Algoritmo Genético
Para Funções de Duas Variáveis em FPGA
Matheus F. Torquato, Marcelo A. C. Fernandes
1
Departamento de Engenharia da Computação e Automação - DCA
Centro de Tecnologia - CT
Universidade Federal do Rio Grande do Norte - UFRN
Natal, Brasil
{matheusft,mfernandes}@dca.ufrn.br
Abstract. This paper aims to propose a parallel implementation of a genetic algorithm able to optimize two variable functions in FPGA (Field-programmable
gate array). The implementation aims to optimize the genetic algorithm processing speed in order to allow its use in real-time systems. Results associated with the processing time and area occupancy for various population size
were analyzed. The implementations were validated optimizing the f (x, y) =
8x2 + 4y 2 + 1023 function. The project was developed using the System Generator software (Xilinx development platform) and the Virtex7 xcv7vx550t-1ffg1158
FPGA.
Resumo. Este artigo possui como objetivo propor uma implementação paralela de um algoritmo genético para otimizar funções de duas variáveis em
FPGA (Field-programmable gate array). A implementação tem como objetivo
otimizar a velocidade de processamento de algoritmos genéticos para possibilitar seu uso em sistemas de tempo real. Resultados associados com a velocidade
de processamento e a área de ocupação para vários tamanhos de população
foram analisados. As implementações foram validadas a partir da otimização
da função f (x, y) = 8x2 + 4y 2 + 1023. Todo projeto foi desenvolvido utilizando
a plataforma de desenvolvimento System Generator da Xilinx tendo como FPGA
alvo uma Virtex7 xcv7vx550t-1ffg1158.
1. Introdução
Nos últimos anos, a exigência por velocidades de processamento cada vez maiores tem
sido impulsionada pela demanda de aplicações que necessitam fornecer soluções com
respostas mais rápidas que milissegundos. Uma forma de atacar essas demandas de desempenho é utilizando técnicas de paralelização de algoritmos. Ao aliar a implementação
em hardware à paralelização, as duas formas de aceleração de um algoritmo genético segundo [Mengxu and Bin 2015], tem-se uma solução satisfatória para aplicações de alto
desempenho que demandam respostas em tempo real.
Algoritmos genéticos (AGs) são técnicas de busca direcionadas que
procuram soluções tomando como inspiração o método da seleção natural
[Deliparaschos et al. 2008].
Implementações em hardware de AGs e em Fieldprogrammable Gate Arrays (FPGAs) já foram descritas por outros autores com a principal finalidade de reduzir o tempo de execução. Como apresentado em [Zhu et al. 2007],
67
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
as implementações em hardware podem reduzir o tempo de processamento por um fator
de aproximadamente 50× quando comparadas a implementações em software (speedup).
Nos trabalhos apresentados em [Thirer 2012] e [Mengxu and Bin 2015] uma
implementação de AG em FPGA é desenvolvida. Todavia estes trabalhos não apresentam
detalhes de análise de ocupação e velocidade de processamento associada a construção
do algoritmo em FPGA. Nos trabalhos apresentados em [Fernando et al. 2008] e
[Chen et al. 2008], a implementação do AG em FPGA é mais genérica na qual os autores
geram um módulo de propriedade intelectual (IP Core) de um AG de propósito geral com
ênfase na facilidade para modificação de parâmetros, arquitetura e suporte à múltiplas
funções de avaliação. Por outro lado, essas arquiteturas apresentadas comprometem bastante o speedup (apenas em torno de 5×) devido a serialização da implementação do AG.
Já em [Chen et al. 2008] foi desenvolvido um soft IP core em C++ na construção do AG.
É de conhecimento na literatura que existe um tradeoff entre desempenho×flexibilidade
e os autores em [Fernando et al. 2008] e [Chen et al. 2008] optaram na flexibilização da
implementação reduzindo o desempenho do IP core em termos de speedup.
Assim, este trabalho tem como objetivo apresentar uma proposta de
implementação paralela de um AG em hardware para otimização de funções com duas
variáveis. Os detalhes associados à implementação, assim como uma análise de desempenho em hardware para vários tamanhos diferentes de populações do AG são apresentados. Esse trabalho busca otimizar o desempenho e reduzir o tempo de processamento
do AG objetivando sua viabilidade em aplicações de tempo real como robótica, sistemas
com tactile internet, sistemas crı́ticos, entre outros.
2. Algoritmos Genéticos
Os AGs são utilizados para resolver problemas de busca e otimização no qual, uma
solução ótima pode ser encontrada utilizando um processo iterativo cujo a busca se dá
a partir de uma população inicial, que combinando os melhores representantes, obtém-se
uma nova população, que substitui a anterior [Holland 1975].
O AG é um algoritmo iterativo que é iniciado a partir de uma população de N
indivı́duos, criados aleatoriamente. Em cada k-ésima iteração os N indivı́duos são avaliados, selecionados, recombinados e mutados para formar uma nova população também de
N indivı́duos. A nova população então é utilizada como entrada para a próxima iteração
(geração) do algoritmo, e esse procedimento de atualização dos valores da geração anterior é repetido K vezes, onde K é número de gerações do algoritmo.
O Algoritmo 1 apresenta o pseudo-código do funcionamento do AG. Esse código
detalha todas as variáveis e procedimentos que serão utilizados na implementação a ser
apresentada na Seção 3. A variável xj [m](k) representa o j-ésimo individuo de m bits na
k-ésima geração e X[m](k) é um vetor que armazena todos os N indivı́duos, ou seja,


x1 [m](k)


..
X[m](k) = 
(1)

.
xN [m](k)
Após o processo de inicialização, a função de avaliação, chamada de FA (Linha 4 do Algoritmo 1), calcula a aptidão dos N indivı́duos xj [m](k) da população. Essa operação é
68
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
aplicada para todos os indivı́duos e resulta em um respectivo valor yj [b](k) para cada jésimo indivı́duo, onde b é o número de bits que representa o valor de aptidão. Quanto melhor o valor yj [b](k) do indivı́duo xj [m](k), maior a probabilidade do mesmo prosseguir
nas novas gerações. Os valores de aptidão de todos os N indivı́duos são armazenados em


y1 [b](k)


..
Y[b](k) = 
(2)
.
.
yN [b](k)
Algorı́tmo 1 Algoritmo Genético
1: Inicializa X[m](k) com indivı́duos aleatórios
2: for k ← 1 até K do
3:
for j ← 1 até N do
4:
yj [a](k) ← FA (xj [m](k))
5:
end for
6:
for j ← 1 até N do
7:
wj [m](k) ← FS (Y[b](k), X[m](k))
8:
end for
9:
for i ← 1 até N/2
do
z2i−1 [m](k)
w2i−1 [m](k)
10:
← FC
z2i [m](k)
w2i [m](k)
11:
end for
12:
for v ← 1 até P do
13:
xv [m](k) ← FM (zv [m](k))
14:
end for
15: end for
Após o cálculo da aptidão de cada j-ésimo indivı́duo da k-ésima geração é realizada a operação de seleção. Existe na literatura uma grande variedade de métodos de
seleção e entre eles podem ser citados: método da seleção por ranking, torneio, roleta e
elitismo. O método da seleção por torneio que foi utilizado nessa implementação, é um
dos mais utilizados [Noraini and Geraghty 2011] e faz uma competição entre dois ou mais
indivı́duos escolhidos aleatoriamente a partir da população armazenada em X[m](k). A
função de seleção, chamada aqui de FS (Linha 7 do Algoritmo 1), possui como entrada
os vetores Y[b](k) e X[m](k) da k-ésima geração e como saı́da a variável wj [m](k) que
pode assumir o valor de qualquer um dos N indivı́duos armazenados em X[m](k). Todos
valores de wj [m](k) são agrupados em


w1 [m](k)


..
(3)
W[m](k) = 

.
wN [m](k)
para serem utilizados na etapa de cruzamento.
O processo de cruzamento da k-ésima geração ocorre após a seleção dos indivı́duos mais aptos da população (armazenados em W[m](k)) pela função de seleção
69
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
e tem como objetivo originar novos indivı́duos que após a etapa de mutação irão compor
a próxima geração do AG (atualização do vetor X[m](k)). A estratégia adotada nesta
implementação foi o cruzamento com um ponto de corte. A operação de cruzamento,
chamada aqui de FC (Linha 10 do Algoritmo 1), possui como entrada pares de elementos
do vetor W[m](k) da k-ésima geração e como saı́da pares do vetor


z1 [m](k)


..
Z[m](k) = 

.
(4)
zN [m](k)
cujo armazena os indivı́duos após o cruzamento, ou seja, os filhos da k-ésima
geração.
A última etapa do AG é caracterizada pela operação de mutação que altera o valor
de um grupo P de indivı́duos, a fim de permitir uma maior diversidade na população. A
taxa de mutação, T M , é o parâmetro que controla a quantidade de indivı́duos a sofrerem
mutação. Normalmente, T M varia em torno de 0, 1% e o valor de P pode ser facilmente
calculado pela expressão
TM
)e.
(5)
P = dN (
100
A operação de mutação é apresentada na Linha 13 do Algoritmo 1.
3. Descrição do Projeto
A Figura 1 apresenta uma arquitetura geral da implementação em hardware do AG proposto. A estrutura, ilustrada na Figura 1, permite a visualização de uma população de N
indivı́duos de m bits no qual xj [m](k) representa o j-ésimo indivı́duo da população na
k-ésima geração. Cada j-ésimo individuo xj [m](k) é armazenado em um registrador de
m bits, chamado aqui de RXj cujo seu valor é atualizado a cada k-ésima geração pela
nova população de N indivı́duos gerada nos processos de seleção, cruzamento e mutação.
Tendo em vista que a implementação otimiza funções de duas variáveis, cada
registrador RXj armazena os valores das duas entradas da função de avaliação. Os registradores usam o artificio da concatenação de bits para tal armazenamento. Os primeiros
m
bits do registrador representam a primeira entrada da função de avaliação, pxj [ m2 ](k) e
2
o segundo bloco de m2 bits armazena a segunda entrada da função de avaliação, qxj [ m2 ](k).
Sendo assim, xj [m](k) = pxj [ m2 ](k) + qxj [ m2 ](k) onde + é o operador de concatenação.
Todos os valores aleatórios foram criados por geradores de números pseudoaleatórios baseados em registradores de deslocamento do tipo Linear Feedback Shift Register (LFSR). Foram utilizados LFSR’s independentes de 32 bits baseados no polinômio
r32 + r22 + r2 + 1 [Goresky and Klapper 2006]. Cada gerador é caracterizado como
LFSRCClj cujo CC, l e j são rótulos para sua posição no circuito. A cada k-ésima
geração do AG uma variável aleatória de 32 bits, chamada aqui de CCrlj [32](k), é produzida. Para evitar uma mesma sequencia de valores, cada gerador LFSRCClj possui um
valor inicial de 32 bits diferente, chamado CCseedlj [32].
Os módulos da implementação serão apresentados em detalhes a seguir.
70
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
x1[m](k)
MFA1
y1[a.b](k)
MS1
w1[m](k)
w2[m](k)
MFA2
MS2
͘͘͘
͘͘͘
͘͘͘
x2[m](k)
RX2
RXn
xj[m](k)
MFAn
yj[a.b](k)
z1[m](k)
z2[m](k)
MC1
MM1
͘͘͘
RX1
wj-1[m](k)
zj-1[m](k)
zj[m](k)
MCn/2
wj[m](k)
MSn
Figura 1. Arquitetura geral da proposta de implementação paralela de algoritmo.
3.1. Módulo da Função de Avaliação - MFA
O Módulo da Função de Avaliação tem como objetivo calcular o valor da aptidão de cada
j-ésimo individuo a partir de uma função de avaliação f (·). A estrutura proposta possui
N módulos do tipo MFA e cada j-ésimo módulo, chamado aqui de MFAj, é associado a
um individuo xj [m](k) e gera como saı́da em cada k-ésima geração um valor de aptidão
em ponto fixo expresso por
yj [a.b](k) = MFAj(xj [m](k)),
(6)
onde a representa o número total de bits e b o tamanho da parte fracionaria (equivalente a
linha 4 do Algoritmo 1).
Para o caso da função f (x, y) = 8x2 + 4y 2 + 1023 a Figura 2 detalha o funcionamento do j-ésimo MFA. O valor de entrada do MFA, xj [m](k) armazenado no RXj
registrador, é dividido em duas metades de m2 bits, pxj [ m2 ](k) e qxj [ m2 ](k), pelos divisores de bits MFADIV1j e MFADIV2j para que assim seja possı́vel operar cada variável
independentemente. Após a divisão, a variável pxj [ m2 ](k) é direcionada para a memória
ROM MFAROM1j que implementa a função f (p) = 8p2 em forma de LUT e a variável
qxj [ m2 ](k) é direcionada para MFAROM2j que implementa a função f (p) = 4q 2 .
Após isso, ambos valores são somados pelo somador MFAADD1j e depois somados à constante MFACONSTj pelo somador MFAADD2j e então o valor é repassado ao
MS.
D&/sϭ
pxj[m/2](k)
ũ
D&ZKDϭ 8pxj2[m/2](k)
>hd
ũ
xj[m](k)
MFAADD1j
+
D&/sϮ
qxj[m/2](k)
ũ
2
D&ZKDϮ 4qxj [m/2](k)
>hd
ũ
+
ϭϬϮϯ
MFACONSTj
yj[a.b](k)
MFAADD2j
Figura 2. Arquitetura do j-ésimo módulo de Função de Avaliação (MFAj).
3.2. Módulo de Seleção - MS
O módulo de seleção (MS) implementa o método de seleção por torneio, detalhando na
Seção 2, com competição entre dois indivı́duos. Semelhante ao MFA existem N MS
71
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
responsáveis por selecionar um grupo de N indivı́duos. Como detalhado na Figura 3,
cada j-ésimo MS, chamado aqui de MSj, possui como entrada os N valores de aptidão,
yj [a.b](k), e os N indivı́duos, xj [m](k), da k-ésima geração (equivalente a linha 7 do
Algoritmo 1).
y1[a.b](k)
y2[a.b](k)
͘
͘
͘
D0
D0
D1
x1[m](k)
MSMUX1j [a.b]
x2[m](k)
MSMUX4j
͘
͘
͘
yj[a.b](k)
D1
MSMUX3j wj[m](k)
͘
͘
͘
͘
͘
͘
DN
D1
[Log2(N)]
MSLFSR1j
D0
D0
xj[m](k)
MSMUX6j
[Log2(N)]
A
DN
A>B
y1[a.b](k)
y2[a.b](k)
͘
͘
͘
yj[a.b](k)
MSLFSR2j
MSCOMPj
D1
MSMUX2j
͘
͘
͘
B
D0
[a.b]
D0
D1
MSMUX5j
MAXMINMSj
DN
[Log2(N)]
[1]
D1
Figura 3. Arquitetura do j-ésimo módulo de seleção (MSj).
Cada j-ésimo MSj possui dois geradores aleatórios chamados de MSLFSR1j
e MSLFSR2j. Além dos geradores aleatórios este módulo é formado por três multiplexadores de N entradas chamados aqui de MSMUX1j, MSMUX2j e MSMUX3j,
um comparador de m bits, chamado de MSCOMPj e três multiplexadores de duas
entradas, chamados de MSMUX4j, MSMUX5j e MSMUX6j. Os multiplexadores
MSMUX1j e MSMUX2j trabalham na seleção da melhor aptidão a partir do sinal de
saı́da dos geradores MSLFSR1j (MSr1j [32](k)) e MSLFSR2j (MSr2j [32](k)), respectivamente. Como apresentado na Figura 3 o sinal de saı́da de cada gerador (MSr1j [32](k) e
MSr2j [32](k)) é truncado nos dlog2 (N )e bits mais significativos para se ajustar ao MUX.
Finalmente, o MSMUX3j seleciona o indivı́duo associado a melhor função a partir da
saı́da do MSMUX6j que seleciona se o objetivo é maximizar ou minimizar a função de
avaliação através da variável MAXMINMSj.
3.3. Módulo de Cruzamento - MC
A Figura 4 apresenta o circuito responsável pela etapa de cruzamento, chamado aqui de
MCi. Existem N2 MC’s e cada i-ésimo circuito é formado por quatro divisores de bits,
dois submódulos de cruzamento e dois concatenadores. Os pares de divisores de bits
MCDIV1i-MCDIV2i e MCDIV3i-MCDIV4i são responsáveis por separar as variáveis
de cada pai da geração e encaminhá-las para os submódulos de cruzamento. Essa divisão
de bits é feita de tal forma que a primeira variável, pw2i−1 [ m2 ](k), do pai w2i−1 [m](k)
será cruzada com a primeira variável, pw2i [ m2 ](k), do pai w2i [m](k) e a segunda variável,
qw2i−1 [ m2 ](k), do pai w2i−1 [m](k) será cruzada com a segunda variável, qw2i [ m2 ](k), do
pai w2i [m](k).
Após as variáveis semelhantes terem sido cruzadas, ambos os concatenadores
MCCCATi irão dar origem a novos indivı́duos da população concatenando ambas as
partes que os formam, pz[m/2](k) e qz[m/2](k).
72
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
D/sϭ
pw2i-1[m/2](k)
w2i-1[m](k)
pw2i[m/2](k)
D/sϮ
pz2i-1[m/2](k)
ŝ
ƌƵnjĂŵĞŶƚŽW
DWYϭ
ŝ
qz2i-1[m/2](k)
ŽŶĐĂƚĞŶĂĚŽƌ z2i-1[m](k)
Ddϭ
ŝ
ŝ
D/sϯ
w2i[m](k)
D/sϰ
pz2i[m/2](k)
qw2i-1[m/2](k)
ŝ
qw2i[m/2](k)
ƌƵnjĂŵĞŶƚŽY
DWYϮ
ŝ
qz2i[m/2](k)
ŽŶĐĂƚĞŶĂĚŽƌ z2i[m](k)
DdϮ
ŝ
ŝ
Figura 4. Arquitetura do i-ésimo módulo de cruzamento (MCi).
A Figura 5 apresenta o circuito interno do i-ésimo submódulo de cruzamento
CMPQi. Ele é formado por um MUX de m + 1 entradas, chamado aqui de MCPQMUX, cujo objetivo é selecionar de forma aleatória um dos m2 possı́veis pontos para o
corte do cruzamento. A seleção de cada MCPQMUX é controlada pelo gerador aleatório
MCPQLFSR cujo seu sinal de saı́da, MCPQr1i [32](k), é truncado nos dlog2 (m + 1)e bits
mais significativos antes de entrar no seletor do MUX.
2m-1
X>>1
D0
X>>2
D1
hpw2i-1[m/2](k)
[m]
pz2i-1[m/2](k)
tpw 2i[m/2](k)
͘͘͘
MCPQMUXj
hpw2i[m/2](k)
X>>m
MCPQLFSR1j
DN
[Log2(m+1)]
pw2i-1[m/2](k)
pw2i[m/2](k)
pz2i[m/2](k)
tpw 2i-1[m/2](k)
Figura 5. Arquitetura do i-ésimo submódulo de cruzamento (MCPQi).
Em cada k-ésima geração, as duas entradas do módulo MCPQi, os pais
pw2i−1 [ m2 ](k) e pw2i [ m2 (k) para o submódulo de cruzamento da primeira variável e
qw2i−1 [ m2 ](k) e qw2i [ m2 (k) para o submódulo de cruzamento da segunda variável, são
divididas em cabeça
m
(7)
hw2i−1 [m](k) = ¬si [m](k) ∧ pw2i−1 [ ](k)
2
m
hw2i [m](k) = si [m](k) ∧ pw2i−1 [ ](k)
(8)
2
e calda
m
tw2i−1 [m](k) = ¬si [m](k) ∧ pw2i [ ](k),
(9)
2
m
tw2i [m](k) = si [m](k) ∧ pw2i [ ](k),
(10)
2
onde si [m](k) é a saı́da do MCPQMUX. Após esta etapa, o cruzamento será realizado
concatenando a cabeça do pai 1, hpw2i−1 [ m2 ](k), com a calda do pai 2, tpw2i [ m2 ](k), e a
cabeça do pai 2, hpw2i [ m2 ](k), com a calda do pai 1, tpw2i−1 [ m2 ](k), dando origem assim,
a dois novos filhos da nova população, ou seja,
m
m
m
pz2i−1 [ ](k) = hpw2i−1 [ ](k) ∨ tpw2i [ ](k)
(11)
2
2
2
73
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
e
pz2i [
m
m
m
](k) = hpw2i [ ](k) ∨ tpw2i−1 [ ](k).
2
2
2
(12)
3.4. Módulo de Mutação - MM
Semelhante ao Algoritmo 1 na Linha 13 a operação de mutação será realizada em um
grupo de P indivı́duos, ou seja, existem P módulos de mutação e cada v-ésimo módulo,
MMv, altera o indivı́duo a ser mutado através de uma operação XOR com um número
criado aleatoriamente por um gerador associado chamado de MMLFSRv (Figura 6).
Como feito no MC, o MM também divide a sua entrada, zv [m](k), em duas
metade, pzv [ m2 ](k) e qzv [ m2 ](k), através dos dois pares de divisores de bits, MMDIV, com
o intuito de operar separadamente cada variável a ser minimizada. A saı́da do v-ésimo,
MMv, módulo em cada k-ésima geração pode ser expressa por
xv [m](k + 1) = (¬zv [m](k) ∧ MMrv [m](k))
∨ (zv [m](k) ∧ ¬MMrv [m](k))
(13)
onde MMv [m](k) representa o número pseudo-aletório gerado por MMLFSRv.
No entanto, a operação XOR entre zv [m](k) e MMv [m](k) é dividida em duas partes
de [ m2 ] bits onde pzv [ m2 ](k) e MM1v [ m2 ](k) são as primeiras metades de zv [m](k) e
MMv [m](k), respectivamente, e qzv [ m2 ](k) e MM2v [ m2 ](k) as segundas. Após a operação
XOR as metades de zv [m](k) que sofreram mutação são concatenada pelo MMCCATv
como mostrado na Figura 6.
MMDIV1v
zv[m](k)
pzv[m/2](k)
MM1v[m/2](k)
yKZ
MMDIV2v
pxv[m/2](k)
qxv[m/2](k)
MMDIV3v
MMLFSRv
MMv[m](k)
MMDIV4v
qzv[m/2](k)
MM2v[m/2](k)
Concatenador xv[m](k+1)
MMCCATv
yKZ
Figura 6. Arquitetura do v-ésimo módulo de seleção (MMv).
4. Resultados
Objetivando validar a proposta de implementação do AG em FPGA foram realizadas
análises de sı́ntese e funcionamento do algoritmo na otimização da função de avaliação
f (x, y) = 8x2 + 4y 2 + 1023 para vários tamanhos de população. Todos os resultados foram obtidos utilizando a plataforma de desenvolvimento Xlinx - System Generator
[Xilinx 2015] e um FPGA Virtex7 xcv7vx550t-1ffg1158. O FPGA Virtex 7 utilizada possui 86.600 slices que agrupam 692, 800 registradores (flip-flops), 554.240 células lógicas
que podem ser utilizados para implementar funções lógicas ou memórias e 2.880 células
de DSP com multiplicadores e acumuladores [Xilinx 2015]. Em todos os testes realizados as operações do AG são realizadas a uma taxa de amostragem, Rg = T1g onde Tg é o
tempo entre cada k-ésima geração.
74
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
A tabela 1 apresenta os resultados de sı́ntese na FPGA. Observa-se claramente,
em todos os casos, que a taxa de amostragem, Rg , e área de ocupação são parâmetros
muito sensı́veis ao tamanho da população. A ocupação de área gasta em registradores,
apresentadas na segunda coluna, é devido ao armazenamento dos valores da população
e dos geradores de número pseudo-aleatório, principalmente. Já a ocupação de células
lógicas (LUTs), apresentadas na terceira coluna, foi crescente e não linear com N . Este
crescimento não linear é causado pelo pelo módulo de seleção (Subseção 3.2) que para
cada j-ésimo módulo, MSj, existem três multiplexadores de N entradas (MSMUX1j,
MSMUX2j e MSMUX3j). É importante observar que a implementação com 64 indivı́duos não atinge a metade das células da FPGA (em torno de 31% da Virtex 7). Isso é
um fato positivo para implementações com populações maiores.
Tabela 1. Resultados da sı́ntese do algoritmo genetico na FPGA
N
4
8
16
32
64
Registradores Células Lógicas
(flip-flops)
(LUTs)
237
2.051(1%)
437
4.540(1%)
833
11.022(5%)
1.5492
33.934(9%)
3.433
110.343(31%)
Rg
(MHz)
50.57
46.73
38.54
33.17
22.53
Finalmente, a quarta coluna mostra as taxas de amostragem para cada valor de
N e verifica-se uma redução da taxa, Tg , com o crescimento da população. Observa-se
que a taxa de redução não é linear o que favorece o circuito. Outro ponto importante a
ser verificado é que mesmo com a redução, cada geração do AG de 64 indivı́duos pode
trabalhar a uma velocidade de T g ≈ 44 ns, em outra palavras, 22.500 gerações a cada
1 ms. Este resultado trás um impacto bastante significativo e viabiliza o AG em várias
aplicações embarcadas de tempo real como em robótica, telecomunicações e outras.
A Figura 7 apresenta o funcionamento do circuito proposto para o caso de N = 64.
Na figura é mostrado o melhor valor de aptidão da população para cada k-ésima geração.
Observa-se que o algoritmo genético convergiu como esperado, encontrando o valor de
mı́nimo global, f (x, y) = 1023, da função validando desta forma a implementação em
hardware.
5. Conclusões
Este trabalho apresentou uma proposta de implementação paralela para FPGA de algoritmo genético. Todos detalhes de implementação da proposta foram apresentados e analisados em termos de área de ocupação e tempo de processamento. A estrutura proposta
foi submetida a um teste de minimização para otimização de uma função de avaliação
quadrática. Os resultados obtidos são bastante significativos e apontam para novas possibilidades de utilização de algoritmos genéticos embarcados em hardware para aplicações
de tempo real. Trabalhos futuros apontam para uma modificação do MFA de tal forma a
generalizar a implementação do AG e permitir a otimização de quaisquer funções de duas
variáveis apenas alterando o valor armazenado na memória ROM.
75
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
1030
1029
y[a.b](k) (Melhor Aptidão)
1028
1027
1026
1025
1024
1023
1022
1021
1020
0
50
100
150
k (Geração)
Figura 7. Melhor indivı́duo de cada geração, N = 64.
Referências
Chen, P.-Y., Chen, R.-D., Chang, Y.-P., Shieh, L.-S., and Malki, H. A. (2008). Hardware implementation for a genetic algorithm. Instrumentation and Measurement, IEEE
Transactions on, 57(4):699–705.
Deliparaschos, K., Doyamis, G., and Tzafestas, S. (2008). A parameterised genetic algorithm ip core: Fpga design, implementation and performance evaluation. International
Journal of Electronics, 95(11):1149–1166.
Fernando, P., Sankaran, H., Katkoori, S., Keymeulen, D., Stoica, A., Zebulum, R., and
Rajeshuni, R. (2008). A customizable fpga ip core implementation of a general purpose
genetic algorithm engine. In Parallel and Distributed Processing, 2008. IPDPS 2008.
IEEE International Symposium on, pages 1–8. IEEE.
Goresky, M. and Klapper, A. (2006). Pseudonoise sequences based on algebraic feedback
shift registers. IEEE Transactions on Information Theory, 52(4):1649–1662.
Holland, J. H. (1975). Adaptation in natural and artificial systems: an introductory analysis with applications to biology, control, and artificial intelligence. U Michigan Press.
Mengxu, F. and Bin, T. (2015). Fpga implementation of an adaptive genetic algorithm. In
Service Systems and Service Management (ICSSSM), 2015 12th International Conference on, pages 1–5. IEEE.
Noraini, M. R. and Geraghty, J. (2011). Genetic algorithm performance with different
selection strategies in solving tsp. World Congress on Engineering 2011 Vol II.
Thirer, N. (2012). About the fpga implementation of a genetic algorithm for solving
sudoku puzzles. In Electrical & Electronics Engineers in Israel (IEEEI), 2012 IEEE
27th Convention of, pages 1–3. IEEE.
Xilinx (2015). Xilinx system generator user’s guide. www.xilinx.com.
Zhu, Z., Mulvaney, D. J., and Chouliaras, V. A. (2007). Hardware implementation of a
novel genetic algorithm. Neurocomputing, 71(1):95–106.
76
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Arquitetura Paralela do Algoritmo de Aprendizagem
por Reforço Q-learning para FPGA
Lucileide M. D. da Silva1 , Marcelo A. C. Fernandes2
1
Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte
Rua São Braz, 304, Bairro Paraı́so, CEP: 59200-000| Santa Cruz-RN
2
Programa de Pós-graduação em Engenharia Elétrica e de Computação
Universidade Federal do Rio Grande do Norte
Caixa Postal 1524 - Lagoa Nova, CEP 59078-970 | Natal-RN
[email protected], [email protected]
Abstract. This paper proposes a parallel architecture implementation of
a Q-learning reinforcement learning technique for field-programmable gate
array (FPGA). Implementation details of the developed architecture are
presented. Results of hardware synthesis are analyzed for seven scenes with
different number of states and actions, where processing time and area occupancy in FPGA are emphasized. The project was developed using the
System Generator software (Xilinx development platform) and the Virtex6 xc6vcx240t 1ff1156 FPGA.
Resumo. Este trabalho descreve uma proposta de arquitetura em hardware
da técnica Q-learning de aprendizagem por reforço (AR) usando FPGA.
Detalhes de implementação da arquitetura desenvolvida são apresentados.
Além de uma análise de resultados de sı́ntese em hardware para sete diferentes cenários, onde são analisados o desempenho da arquitetura em termos
de área de ocupação em hardware e velocidade de processamento de dados.
O projeto foi desenvolvido utilizando a plataforma de desenvolvimento System Generator da Xilinx sendo projetado para a FPGA Virtex 6 xc6vcx240t
1ff1156.
1. Introdução
A pesquisa e o desenvolvimento de algoritmos de aprendizagem de máquinas em
hardware para as mais diversas aplicações têm crescido significativamente nos últimos anos. Isso se dá devido a sua flexibilidade e potencial de performance. Várias implementações de arquiteturas em hardware de algoritmos de aprendizagem
de máquina e inteligência artificial são encontrados na literatura [Reyneri 2003],
[de Souza and Fernandes 2014], [Barron et al. 2009], [Leiner et al. 2008].
Em [Reyneri 2003] é feita uma visão geral das implementações de hardware
de redes neurais artificiais e sistemas fuzzy salientando as principais limitações, vantagens e desvantagens de várias técnicas de aplicação. São analisados vários parâmetros de desempenho de hardware, gargalos e o custo-beneficio intrı́nseco a várias
metodologias de implementação. Já em [Leiner et al. 2008] a implementação de uma
arquitetura de hardware em FPGA para uma rede neural de memória associativa
aplicada a sistemas de reconhecimento de padrão de imagens é descrita.
77
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Contudo, pouco ainda se encontra sobre implementação em hardware de arquitetura programável e/ou fixa da técnica de aprendizagem por reforço Q-Learning.
No trabalho de [Liu and Elhany 2007] foi descrito uma arquitetura em pipeline do
Q-learning em hardware. Entretanto, o autor não apresenta maiores detalhes de
implementação, nem análise de ocupação. É dado ênfase a análise do atraso ocasionado devido a escolha das ações e a atualização da função valor para estruturas
com grandes conjuntos de ações.
Uma solução prática para o projeto de arquiteturas de hardware é a utilização de ferramentas reconfiguráveis como o FPGA que é uma ferramenta com a
capacidade de proporcionar uma performance de densidade semelhante a um ASIC
(Application Specific Integrated Circuit) com a vantagem de utilização de prototipagem rápida e flexibilidade [de Souza and Fernandes 2014]. Devido à sua natureza
reconfigurável, novas funções podem ser sempre adicionadas e a atualização do sistema pode ser realizada, conforme necessário. Em [Prabha and Monie 2007] uma
arquitetura em hardware do algoritmo SARSA (ou On-line Q-learning) de aprendizagem por reforço é desenvolvida para a aplicação em gerenciamento dinâmico de
potência. Este sistema foi modelado em VHDL (modelsim) e simulado e sintetizado
na Xilinx Spartan 2E.
Uma outra vantagem pertinente para a utilização de FPGA neste tipo de
projeto é a possibilidade de projetar módulos de hardware que trabalhem em paralelo
aumentando a capacidade de processamento do sistema. Em [Barron et al. 2009] é
apresentado uma técnica de decomposição para o Processos de Decisão Markoviano
(MDP - Markov Decision Processes) em subproblemas, apresentando uma estrutura
para a paralelização de técnicas de aprendizagem por reforço. Uma técnica, segundo
eles, capaz de diminuir o tempo de processamento em até dez vezes. Apontando
a paralelização como uma alternativa interessante para a diminuição do tempo de
treinamento para o aprendizado da polı́tica.
Assim, este trabalho apresenta uma proposta de implementação da técnica
Q-learning de aprendizagem por reforço em hardware reconfigurável do tipo FPGA.
Assim como para outras arquiteturas de inteligência artificial implementadas em
hardware [de Souza and Fernandes 2014] e [Leiner et al. 2008], este artigo também
faz uma análise da área de ocupação, além de apresentar detalhes da implementação
da arquitetura.
O desenvolvimento desde trabalho, assim como todas as simulações e resultados, foi realizado a partir da plataforma de desenvolvimento Xilinx - Sistem
Generator configurada para trabalhar com uma FPGA Virtex 6 xc6vcx240t 1ff1156.
2. Q-learning
O Q-learning [Watkins and Dayan 1992] é uma das técnicas de aprendizagem classificadas como um método de diferença temporal off-policy, já que a convergência
para valores ótimos de Q não depende da polı́tica que está sendo utilizada. A função
da recompensa futura no estado s ao executar uma ação a, denotada como Q(s, a),
é assimilada por interações com o ambiente. É tido como o mais popular algoritmo
de AR e foi proposto como uma maneira de aprender iterativamente uma polı́tica
ótima quando o modelo do sistema não é conhecido.
78
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
A equação de atualização da função valor dos pares estado-ação Q(s, a) do
algoritmo q-learning fundamenta-se na função valor-ação denotada a seguir:
Qk+1 (snk , azk ) = Qk (snk , azk ) + α[r(snk , azk ) + γ max(Q(snk+1 , azk )) − Qk (snk , azk )]
(1)
Onde:
•
•
•
•
•
•
•
k é uma sequência discreta de iterações, em cada instante de amostragem Ts .
snk é o n-ésimo estado do ambiente na k-ésima iteração.
azk é a z-ésima ação tomada no n-ésimo estado snk também na k-ésima iteração.
Qk (snk , azk ) é o valor atribuı́do a ação azk no estado snk .
r(snk , azk ) é o reforço recebido no estado snk por ter tomado a ação azk .
snk+1 é o estado futuro.
max(Q(snk+1 , azk )) é o valor Q correspondente a ação com maior valor de reforço no estado futuro.
• α e γ representam o coeficiente de aprendizagem e o fator de desconto.
O coeficiente de aprendizagem determina até que ponto a informação nova substituirá a informação anterior. Enquanto que o fator de desconto mais próximo a
um reduz a influência das recompensas imediatas e considera a recompensa a longo
prazo. Enquanto a função recompensa (r) indica as ações promissoras imediatas, a
função valor (Q) indica o ganho total acumulado. Quando o agente muda de um
estado para um estado futuro, o Q-learning atualiza a nova estimativa da função
valor (Q) do novo estado para o estado anterior.
Um aspecto relevante da técnica de aprendizagem por reforço q-learning é que
a escolha das ações que serão realizadas durante o processo de estimativa da função
valor Q(s, a) pode ser realizada por qualquer método de exploração/explotação, até
mesmo de forma aleatória.
O Algoritmo 1 apresenta o pseudocódigo do Q-learning.
Algoritmo 1: Q-learning
Entrada: α, γ, r
inı́cio
Inicialize matriz Q;
Inicialize s0 ;
enquanto iteração k menor que limite de passos faça
Sortear uma ação azk para o estado snk ;
Executar a ação azk ;
Observar o estado snk+1 e atualizar Qk (snk , azk ) de acordo com:
Qk+1 (snk , azk ) = Qk (snk , azk ) + α[r(snk , azk ) + γ.maxQ(snk+1 , azk ) − Qk (snk , azk )];
sk ← sk+1 ;
fim
retorna matriz Q;
fim
3. Arquitetura
Uma visão geral da arquitetura é apresentada na Figura 1. O sistema foi projetado
para operar com N estados e Z ações e portanto, uma combinação de N·Z pares
estado-ação possı́veis.
79
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
n
u
k
EN1
r
RS1
S1
γ . max Q
D
Q
s
k
k
REG1
a
k
ENN
a ...
k
Seleção estado
futuro
1
s
r
S2
...
.
.
.
u
0
k
1
γ . max Q
z
k +1
maxQ0
Q
k +1
RS2
.
.
.
Q
GA
u
0
z
α ...
1
EN2
k
s
0
...
n
s ...
α ...
0
z
a ...
.
.
.
N −1
RSN
Armazenamento
da função valor
γ . max Q
SEL
k +1
N −1
SN
z
.
.
.
s
k
r
S k +1
&
k
α ...
N −1
max Q1
1
Qk
maxQN−1
Q
N −1
k
a ...
k
Figura 1. Visão geral da arquitetura proposta.
O sistema é composto por cinco tipo de módulos principais: O módulo GA,
responsável pelo sorteio das ações do algorı́timo; Os módulos EN, que determinam
qual o par estado-ação deve ser atualizado; Os módulos RS, responsáveis por armazenar os valores da recompensa; Os módulos S, responsáveis pelo cálculo da função
valor Q; E o módulo SEL, onde é feita a seleção do estado futuro e o armazenamento
da função valor Q.
3.1. GA - Sorteio das Ações
Como visto no pseudocódigo do Q-learning apresentado em Algoritmo 1 é preciso
fazer o sorteio da ação azk para o estado snk . Para tanto, um gerador de números
pseudo-aleatórios (Pseudo Random Number Generator - PRNG) foi implementado.
O gerador sorteia dentre todas as ações possı́veis (0 à Z-1) qual será a ação executada.
Cada z-ésima ação é formada por uma palavra de log2 (Z) bits. O primeiro estado
s0 é inicializado aleatoriamente, dentre todos os estados possı́veis (0 à N-1), no
registrador REG1, e tem um tamanho de log2 (N ) bits.
Para que ocorra a convergência do algoritmo é necessário que todos os pares
estado-ação sejam visitados um número suficientemente grande (idealmente infinito)
de vezes. E para tanto utilizamos o gerador de números pseudo-aleatórios baseado
na congruência numérica descrita em [Wu 1997]. A expressão utilizada para implementar o PRNG é apresentada como
azk = P1 · azk−1 + P2 (mod Z),
(2)
onde os valores P1 e P2 são constantes, azk é um inteiro entre 0 e Z −1 e azk−1 é o valor
no instante anterior da série de números pseudo-aleatórios. A arquitetura interna
do gerador de números aleatórios está ilustrada na Figura 2. Para a implementação,
80
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
z
P1
a
+
x
a
GA
k
z
k −1
Q
D
Q
Figura 2. Arquitetura do gerador de números aleatórios - GA.
a constante P2 foi adotada como zero. O módulo (mod Z) é feito a partir de uma
função intrı́nseca do multiplicador de tratamento de estouro, o wrap-around.
O gerador de números pseudo-aleatórios é o ponto de partida para a execução
do algoritmo. Pois a partir dele, determinamos a ação a ser executada. O estado
é definido pela realimentação como consequência das ações anteriores do sistema.
Havendo determinado o par estado-ação em cada iteração, sabe-se qual dos elementos
da matriz função valor Q deve ser atualizado.
3.2. EN - Módulo de Atualização
Os módulos de atualização EN são os responsáveis por selecionar qual par estadoação (snk , azk ) será atualizado. Cada n-ésimo módulo, ENn, possui como entrada o
k-ésimo estado, snk , e ação, azk , e sua saı́da é um vetor de Z elementos, aqui denotado
como unk e representado por
 n,0 
uk
 un,1 
 k 
unk =  ..  .
(3)
 . 
un,Z−1
k
Considerando as saı́das de todos os N módulos, são N · Z saı́das, o mesmo número
de pares estado-ação. Contudo, somente uma saı́da de um desses módulos terá nı́vel
lógico alto por cada iteração. A operação lógica que determina unk é expressa como

(1 >> azk )||A se snk = n
n
uk =
(4)

A
onde A é um vetor de Z zeros.
Os valores referentes a cada par estado-ação da função valor Q são armazenados em N · Z registradores que têm suas entradas enable ligadas justamente às
saı́das dos módulos EN.
3.3. RS - Função Recompensa
Os valores dos reforços imediatos, ou recompensa, ficam armazenados nos N módulos
chamados de RS. A função recompensa rn é um vetor de Z elementos, representado
como


rn,0
 rn,1 


rn =  ..  .
(5)
 . 
rn,Z−1
81
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Cada n-ésimo módulo RS possui Z constantes associada a cada uma das Z ações do
n-ésimo estado. Essas constantes expressam o objetivo que o agente quer alcançar.
Ações que levam ao estado objetivo tem um valor de reforço numérico rn,z positivo,
enquanto ações que levam aos demais estados recebem rn,z = 0.
3.4. S - Cálculo da Função Valor
A arquitetura, conforme observado no diagrama principal apresentado na Figura 1, é
paralelizada com relação aos seus estados (snk ). O cálculo da função valor Qk (snk , azk )
é realizada nos módulos Sn. Cada n-ésimo módulo calcula o vetor
 n,0 
Qk
 Qn,1 
 k 
Qnk =  .. 
(6)
 . 
Qn,Z−1
k
e esse conjunto de N vetores forma a matriz função valor que pode ser expressa
como
Qk (snk , azk ) = Q0k Q1k ... QN−1
.
(7)
k
Parte da arquitetura interna dos módulos Sn está ilustrada na Figura 3,
também é uma arquitetura paralela, paralelizada em relação as ações do sistema. A
cada iteração a matriz Q é atualizada. Para tanto, são utilizados 2· Z somadores
(SOM1nz e SOM2nz), Z subtratores (SUBnz) e Z multiplicadores (MULTnZ) em
cada um dos n-enésimos módulos Sn que implementam a Equação 1, e ainda Z
registradores para o armazenamento de Qnk .
...
. max Q
SOM1n1
SOM2n1
+
+
r
+
x
+
-
n 0
,
REGn1
+
+
D
ukn , 0
MULTn1
SUBn1
Q
en
Qkn , 0
Q
...
SOM1n2
SOM2n2
+
+
r
+
x
+
-
n1
,
REGn2
+
+
D
u kn ,1
MULTn2
SUBn2
.
.
.
.
.
.
.
.
.
Q
en
Q kn ,1
Q
COMPn
maxQ n
.
.
.
.
.
.
...
SOM1nZ
SOM2nZ
+
+
r
+
+
-
x
n , Z −1
MULTnZ
SUBnZ
REGnZ
+
+
Q
D
ukn ,Z −1
en
Q kn , Z −1
Q
Figura 3. Arquitetura do módulo Sn - Cálculo da função valor.
82
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Ademais de calcular a função valor, o módulo Sn é também onde é calculado
o valor de Q corresponde à ação com maior valor no n-ésimo estado. Esta variável
esta ilustrada na Figura 3 como maxQn e é obtida a partir da comparação (COMPn)
de todos os z-ésimos elementos do vetor Qnk no n-ésimo estado.
Há ainda uma terceira funcionalidade implementada no módulo Sn. Nele é
n
para a ação ak sorteada pelo GA. A
determinado qual seria o estado futuro Sk+1
estrutura ilustrada na Figura 4 representa a porção da arquitetura do módulo Sn
responsável pela execução dessa funcionalidade. Por se tratar de uma arquitetura
paralelizada, um estado futuro é determinado em cada um dos N módulos Sn tomando em consideração somente a informação da ação ak sorteada. No módulo SEL
n
seguirá adiante no algorı́timo e se
será decidido qual o n-ésimo estado futuro Sk+1
tornará o estado atual na seguinte iteração.
a
k
Skn+,11
.
.
.
MUX1n
S kn+, 01
Skn+1
Skn+,Z1−1
Figura 4. Arquitetura do módulo Sn - Escolha do estado futuro.
3.5. SEL - Seleção do Estado Futuro
Para determinar o estado futuro sk+1 , todos os n-ésimos estados futuros snk+1 , provenientes do N módulos Sn são colocados em um multiplexador MUX2, que tem como
seletor o estado atual sk . Essa estrutura está apresentada na Figura 5. Esse valor de
estado futuro é realimentado para o inı́cio da arquitetura e torna-se o estado atual
na próxima iteração.
Para determinar a ação com maior valor no estado futuro maxQ, o estado
futuro sk+1 é usado como seletor do multiplexador MUX3 que tem como entrada as
N ações com maior valor dos N estados da arquitetura maxQn . O valor de maxQ
será multiplicado pelo fator de desconto temporal γ e realimentado às entradas do
módulos Sn para o cálculo dos vetores Qnk que compõem função valor.
4. Resultados
Para validação da arquitetura foram analisados sete cenários distintos, onde foram
variados o número de estados e ações da implementação. Os cenários foram caracterizados usando como problema um robô que se movimenta em uma arena, tendo
como objetivo alcançar uma determinada região da arena. O número de estados representa a granularidade da arena, quanto mais estados maior a sua granularidade.
Enquanto que as ações representam os possı́veis movimentos do robô.
Os quatro primeiros cenários foram caraterizados para quatro ações possı́veis:
a1 - cima, a2 - baixo, a3 - esquerda, a4 - direita. Onde o agente se movimenta
83
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Sk
S k0+1
S k1 +1
S k +1
MUX2
.
.
.
S kN+11
maxQ0
.
.
.
maxQN
MUX3
maxQ1
. max Q
1
Q0k
Q1k
QNk
1
.
.
.
Qk (s nk , a zk )
SEL
Figura 5. Arquitetura do módulo SEL.
de uma posição na direção indicada pela ação. Os três próximos cenários foram
caracterizados para oito ações possı́veis: a1 - cima, a2 - baixo, a3 - esquerda, a4 direita, a5 - cima2, a6 - baixo2, a7 - esquerda2, a8 - direita2. Onde o comportamento
do agente é o mesmo dos cenários anteriores para as quatro primeiras ações, enquanto
que nas demais ações ele se movimenta duas posições, também na direção indicada
pela ação. Em todos os cenários, se o agente choca-se com as bordas da arena
recebe uma recompensa negativa (rn,z = −500), se atinge a região desejada uma
recompensa positiva (rn,z = 100), e nas demais transições, recebe recompensa nula
(rn,z = 0). A Tabela 1 apresenta os parâmetros utilizados nas sete implementações.
4.1. Resultados de Simulação e Precisão da Resposta
Os resultados numéricos da função valor Qk (snk , azk ) obtidos através de uma implementação em ponto flutuante realizada em Matlab foram comparados com os valores
da função valor Qk (snk , azk ) obtidos após a simulação da arquitetura desenvolvida para
todos os sete cenários descritos, utilizando os mesmos parâmetros de simulação.
Após as simulações, os resultados para a polı́tica ótima, Qk (snk , azk ) na simulação em ponto flutuante no Matlab e na simulação na arquitetura paralela em
hardware foram numericamente muito próximos. Apresentando um erro de resolução máximo de 1, 59% para todos os sete cenários. Esse erro de resolução pode ser
melhorado aumentando o número de bits utilizado na implementação. No entanto,
isso implicaria diretamente no aumento da área ocupada na FPGA e do tempo de
processamento.
84
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Tabela 1. Paramêtros de Simulação.
Paramêtros
Valores
Número de Estados
n
Número de Ações
z
Coeficiente de Aprendizagem (α)
0,8
Taxa de Desconto (γ)
0,8
Representação Digital
Ponto Fixo
Número Total de Bits
24
Número de Bits para Ponto Binário
14
Estado-Ação
(n, z)
(6, 4)
(12, 4)
(20, 4)
(30, 4)
(12, 8)
(20, 8)
(30, 8)
Tabela 2. Sı́ntese de Hardware
Registradores Cél. Lógicas
Multiplicadores
(Flip-Flops)
(LUTs)
58 (7%)
788 (1%)
2597 (1%)
106 (13%)
1509 (1%)
5070 (5%)
170 (22%)
2470 (1%)
8349 (5%)
250 (32%)
3670 (1%)
12379 (8%)
202 (26%)
2661 (1%)
10379 (6%)
330 (42%)
4390 (1%)
17188 (11%)
490 (63%)
6550 (2%)
25627 (17%)
Freq. Amostragem
(MHz)
22,462
20,831
17,824
16,570
18,079
16,742
15,531
4.2. Resultados de Sı́ntese
A Tabela 2 apresenta os resultados de sı́ntese de hardware para os cenários descritos.
É observado que área de ocupação é determinada pela complexidade do problema. A
ocupação utilizada em multiplicadores se dá pelo seu uso no PRNG (módulo GA),
também nos módulos S onde é realizado o cálculo da função valor, mais especificamente a multiplicação do coeficiente de aprendizagem (α) (MULTnz) e para a
multiplicação do fator de desconto (γ) pela ação com maior valor de reforço futuro
(maxQ) (módulo SEL). A área ocupada devido aos registradores se dá por conta
do armazenamento da função valor Qk (snk , azk ) (REGnz) que é calculada para cada
um dos pares estado-ação. Registradores também foram utilizados para armazenar
o valor da função correspondente à ação com maior valor maxQn para cada um dos
estados e para armazenar o estado futuro (sk+1 ) durante uma iteração, antes que ele
seja realimentado ao inı́cio da arquitetura e se torne o estado atual (sk )(REG1). A
ocupação das células lógicas é relacionada as operações aritméticas implementadas
nos N blocos S. É relevante notar que para as sı́nteses realizadas o número de células
lógicas LUTs, no pior caso, representa somente 17% da FPGA utilizada.
A partir dos dados de amostragem, é observado uma pequena diminuição na
taxa de frequência máxima com o crescimento do número de estados do problema.
Assim como também é possı́vel notar que essa frequência também diminui com o
aumento do número de ações possı́veis por estado. Isso é explicado pelo aumento da
complexidade do problema o que acarreta uma maior quantidade de dados a serem
processados. Entretanto, como o sistema foi desenvolvido de maneira a paralelizar
ao máximo o fluxo de dados, essa variação não é tão expressiva. Uma pequena diminuição na frequência de amostragem ocorre, conforme é possı́vel verificar na Tabela
2, pois aumentando o número de ações por estado é preciso fazer a comparação
(COMPn) da função valor Q(s, a) de todas as ações possı́veis de modo a determinar a função valor máxima maxQ(st+1 , a) para a melhor ação no n-ésimo estado.
85
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Em aumentado o número de estados, consequentemente o número de entradas dos
multiplexadores que seleciona o próxima estado (MUX1n) no módulos Sn também
cresce. Assim como dos multiplexadores que selecionam o próximo estado (st+1 )
(MUX2), e a máxima função valor do estado futuro maxQ(st+1 , a) (MUX3). Esses
são os principais gargalos para a paralelização completa do sistema e os pontos que
influenciam na diminuição da taxa de amostragem de acordo com o aumento da
complexidade do problema.
5. Conclusão
Este trabalho apresentou uma proposta de arquitetura paralela em hardware da técnica Q-learning em FPGA. O Q-learning é uma técnica de aprendizagem por reforço
que tem como sua principal vantagem a possibilidade de obter uma polı́tica ótima
interagindo com o ambiente sem que o modelo do sistema necessite ser conhecido.
Desenvolver essa técnica em hardware permite otimizar o espaço ocupado pelo sistema e seu tempo de processamento. A FPGA foi utilizada pela possibilidade de
prototipagem rápida e flexibilidade. Foi feita uma análise detalhada da implementação além da análise de dados de sı́ntese, tais comotempo de processamento e área de
ocupação. Pela observação dos dados presentes neste trabalho foi observado que com
desenvolvimento deste algoritmo, diretamente em hardware, seria possı́vel alcançar
alto potencial de performance da técnica, tanto em termos de taxa de ocupação
quanto de tempo de processamento. Essas caraterı́sticas permitem a sua utilização
em situações práticas mais complexas e com os mais diversos tipos de aplicação,
inclusive com aplicações em tempo real.
Referências
Barron, J. T., Golland, D. S., and Hay, N. J. (2009). Parallelizing reinforcement
learning. UC Berkeley.
de Souza, A. C. D. and Fernandes, M. A. C. (2014). Parallel fixed point implementation of a radial basis function network in an fpga. Sensors 2014, 14.
Leiner, B. J., Lorena, V. Q., Cesar, T. M., and Lorenzo, M. V. (2008). Hardware
architecture for fpga implementation of a neural network and its application in
images processing. Eletronics, Robotics and Automotive Mechanics Conference.
Liu, Z. and Elhany, I. (2007). Large-scale tabular-form hardware architecture for
q-learning. Circuits and Systems.
Prabha, V. L. and Monie, E. C. (2007). Hardware architecture of reinforcement
learning scheme for dynamic power management in embedded systems. EURASIP
Journal on Embedded Systems.
Reyneri, L. M. (2003). implementation issues of neuro-fuzzy hardware: Going toward
hw/sw codesingn. IEE Transactions On Neural Networks, 14(1).
Watkins, C. J. C. H. and Dayan, P. (1992). Technical note: Q-learning. Machine
Learning.
Wu, P.-C. (1997). Multiplicative, congruential random-number generators. ACM
Transactions on Mathematical Software, Vol. 23, No. 2.
86
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Análise de Qos dos protocolos de roteamento em RSSF
energicamente eficientes e tolerantes a falhas aplicados ao
monitoramento de parques eólicos
Álisson O. Alves1, Jorge C. G. C. Nunes1, Felipe D.M. de Oliveira1
1
Departamento de Computação - Universidade do Estado do Rio Grande do Norte –
(UERN)
Natal, RN - Brasil.
[email protected], [email protected],
[email protected]
Abstract. This paper presents the Quality of Service (QoS) analysis in the
monitoring of wind farms using Wireless Sensor Networks (WSNs) based on
the IEEE 802.15.4 standard, performing a performance comparison of the
most used flat and hierarchical protocols, through a simulated environment.
The results presented in this paper will assist in the choice of protocol that
ensures the best response time of the system, improving the margin of safety
and the economy of energy resources, treating faults that can damage the
equipment and generate huge losses.
Resumo. Este artigo apresenta a analise da Qualidade de Serviço (QoS) no
monitoramento de parques eólicos utilizando Redes de Sensores sem Fio
(WSNs), baseadas no padrão IEEE 802.15.4, realizando uma comparação de
desempenho dos principais protocolos planos e hierárquicos utilizados nesta
rede, através de ambiente simulado. Os resultados apresentados neste artigo
auxiliarão na escolha do protocolo que garanta o melhor tempo de resposta
do sistema, melhorando a margem de segurança e a economia dos recursos
energéticos, tratando falhas que possam danificar o equipamento e gerar
grandes perdas.
1. Introdução
Como consequências da crescente preocupação ambiental, muitos países têm evidado
esforços para produzir eletricidade a partir de fontes renováveis. A energia eólica é uma
destas fontes, com disponibilidade infinita e sem emissões nocivas. O uso da energia
eólica aumenta a cada ano. No Brasil, por exemplo, existem cerca de 4.415
aerogeradores, distribuídos por 361 parques eólicos, gerando 8.715.000 KW de potência
[The Wind Power 2015]. Infelizmente, a quantidade de energia eólica integrada em
sistemas de energia elétrica é muito pequena, em comparação com as usinas térmicas
convencionais, nucleares e hidrelétricas.
Entretanto, os avanços tecnológicos em equipamentos utilizados para a obtenção
de energia eólica, tais como sistemas avançados de transmissão, melhor aerodinâmica,
estratégias de controle e operação dos aerogeradores tem reduzido seus custos, além de
que tais avanços também permitiram melhorar o desempenho e a confiabilidade do
equipamento. Contudo, apesar dos equipamentos tecnológicos envolvidos em parques
87
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
eólicos, ainda há vários problemas a serem superados. Um deles está relacionado com a
previsão do dano. Outro desafio está relacionado com a manutenção preventiva dos
parques eólicos, já que as turbinas eólicas sofrem constantes danos. Os componentes de
turbinas eólicas (geradores, engrenagens e lâminas dos rotores) têm sido historicamente
sujeitos a falhas, registrando, em média, de 2 a 3 incidentes por ano para um único aero
gerador, representando metade dos acidentes relacionados aos componentes mecânicos.
Enquanto o monitoramento convencional das estruturas existentes nos controles de
turbinas eólicas envolve a presença humana com um custo elevado, o uso de um
mecanismo para controle remoto automatizado não apenas aumenta a margem de
segurança, automatizando a frequência de inspeções, como também reduz o seu custo
[Zhang et al. 2010].
Existem dois tipos de rede de comunicação em parques eólicos: com e sem fio.
O Padrão Ethernet baseado em fibra ótica consiste de uma infraestrutura de
comunicação para supervisão, controle e aquisição de dados do sistema em parques
eólicos, enquanto as Redes de Sensores sem Fios (RSSF) são comumente utilizadas para
a comunicação de longo alcance [Khan et al. 2009]. Assim, o uso de RSSF no
acompanhamento do estado das turbinas oferece várias vantagens, como a economia de
custos em cabeamento e rápida instalação da infraestrutura de comunicação, permitindo
tomar medidas preventivas antes de falhas críticas e catastróficas ocorrerem.
Uma rede de sensores sem fio deve fornecer quatro requisitos de QoS
imprescindíveis para uma implementação confiável em ambientes industriais:
escalabilidade, confiabilidade, pontualidade e eficiência [Willig 2008] e [Zurawski
2009]:
O estado-da-arte de técnicas e aplicações envolvendo o monitoramento de
parques eólicos foi discutido em [Shen et al. 2016], [Guo et al. 2012] e [Park et al.
2014]. Um algoritmo heurístico de posicionamento de nós sensores sem fio no
monitoramento de parques eólicos foi proposto em [Chen et al. 2013] para estimar a
melhor posição dos nós que conectavam cada turbina do parque eólico. Os resultados
simulados atestaram a viabilidade deste algoritmo. Uma arquitetura de sistema de RSSF
para a construção e manutenção de parques eólicos offshore foi proposto por [Wehs et
al. 2012]. O desempenho da RSSF neste ambiente de condições adversas foi analisado.
O sistema proposto baseou-se na tecnologia de rádio Ultra Wide Band (UWB), o que
permitiu atingir maiores distâncias no ambiente offshore, sem prejudicar o desempenho
da rede. Em [Popeanga et al. 2012] uma RSSF foi desenvolvida no interior de uma
turbina eólica, verificando o comportamento e resposta nos parâmetros de controle e
carga do gerador, utilizando um algoritmo de controle redefinido para este sistema. O
desempenho das turbinas eólicas sob alguns cenários de falha foi apresentado em [Wei
e Chen 2010]. Os autores compararam o desempenho com e sem os sistemas da rede de
comunicação de energia do parque eólico, utilizando dispositivos Ethernet
eletronicamente inteligentes (Ethernet Intelligent Electronic Devices - IED).
Todas as pesquisas anteriormente citadas consideram um número pequeno de
nós sensores (abaixo de 20 nós) no monitoramento do comportamento das turbinas
eólicas, sem se preocupar com qual protocolo de roteamento utilizar. De acordo com
[Wijetunge et al. 2010] é difícil ou impossível analisar o comportamento de falhas
localizadas com uma pequena quantidade de nós sensores. A escolha do melhor
88
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
protocolo de roteamento impacta diretamente nos aspectos de QoS e de tolerância a
falhas, bem como nos aspectos de conservação de energia dos nós quando o número de
nós sensores aumenta. O presente trabalho simulará uma RSSF com mais de 30 nós.
A principal contribuição deste trabalho é analisar os protocolos de roteamento
que garantam a QoS de RSSF baseado no padrão IEEE 802.15.4 [IEEE 802.15.4 2006]
em parques eólicos, através de ambiente simulado, levando em consideração os
principais parâmetros de rede, como o número de pacotes enviados e perdidos, vazão,
atraso fim-a-fim, Jitter, energia residual e tolerância a falhas. Em relação aos
resultados, será possível determinar qual o protocolo é o mais adequado para esta
aplicação.
2. Visão geral dos protocolos de roteamento utilizados e arquitetura do
sistema utilizado nas simulações
Um sistema de monitoramento de energia eólica é responsável por monitorar a torre, as
lâminas, o eixo, a caixa de velocidades, o gerador e as condições gerais na nacele. Isto
envolve uma variedade de sensores, isto é, acelerômetros, rotores, sensores de
temperatura, sensores de nível de óleo, contador de partículas, sensores de tensão,
corrente e umidade [Camm et al. 2009]. Os dispositivos para monitoramento e controle
de turbinas eólicas instaladas nas torres estão ligados ao gerenciamento central do
parque eólico geralmente através de conexões de fibra ótica, o que aumenta os custos
de implantação em determinadas áreas de solo com afloramentos rochosos e traz
problemas de instalação em áreas de difícil acesso [Pinho 2008]. Neste contexto, a
utilização de RSSF, em particular, as que trabalham no padrão IEEE 802.15.4, torna-se
uma alternativa viável, devido aos aspectos de baixo custo, baixo consumo de energia,
confiabilidade, facilidade de instalação e reconfiguração [Petersen et al. 2007].
Para uma RSSF com grande quantidade de nós sensores, distribuídos nas
turbinas que compõem um parque eólico, é necessário o uso de um protocolo de
roteamento que garanta aspectos de QoS para o monitoramento satisfatório da rede. Os
protocolos de roteamento podem ser classificados como planos (reativo e proativo),
hierárquicos, baseados em localização e híbridos [Hong et al. 2002].
A. Protocolos utilizados nas Simulações
O protocolo de comunicação ZIGBEE [XBee 2015], utilizado no padrão IEEE
802.15.4, é um dos mais empregados pela indústria devido à sua confiabilidade e
robustez. Para realizar a comunicação de nós em uma RSSF baseada em ZIGBEE, é
utilizado o protocolo de roteamento híbrido ZBR. Dependendo do tamanho e da
topologia da rede, três estratégias podem ser empregadas: o roteamento direto de
mensagens dos nós sensores para o nó sorvedouro através da topologia estrela, ideal
para pequenas redes (neste caso, a ZBR não age, quem realiza a comunicação é a
camada MAC do padrão IEEE 802.15.4); utilizar uma versão melhorada do AODV
[Perkins e Royer 1999], chamada AODVjr [XBee 2015], para as redes ad-hoc cuja
topologia seja mesh; rotear hierarquicamente, através do protocolo HTR [XBee 2015]
para as redes de topologia Cluster Tree.
Assim, para as grandes redes de sensores, tais como as utilizadas em parques
eólicos, descobrir qual protocolo de roteamento que garanta os melhores parâmetros de
89
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
QoS relacionados ao desempenho, permitem a utilização deste protocolo em
dispositivos que trabalhem com o padrão IEEE 802.15.4. Os protocolos a serem
simulados e comparados são: AODVjr, DSR [Jonhson et al. 2001], LEACH
[Heinzelman et al. 2000] e HTR.
B. Esquema de Comunicação.
Para os nós sensores poderem se comunicar com o sink, é importante determinar
se essa comunicação ocorre sempre em modo “sempre ligado” (sem hibernação dos
transceptores dos nós sensores) ou no modo de sleep (transmissão de dados periódica,
intercalado com o desligamento dos transceptores dos nós sensores, exceto o sink, que
fica permanentemente acordado).
No caso do modo de comunicação sleep, é necessária uma metodologia que
garanta os tempos de envio de dados do sensor para o sink, provendo eficiência e
maximizando a economia de energia dos nós sensores. Foi desenvolvido um esquema
de comunicação temporal, baseado em [Vakulya e Simon 2012], o que será descrito a
seguir.
Um diagrama temporal utilizado pelos RFDs (Reduced Function Devices) é
mostrado na Figura 1. Para fins de simplificação, consideram-se dois sensores.
Inicialmente o sensor (S1) mede (MX) uma variável física e transmite (Tx) os dados ao
sink (C). Neste caso, o FFD recebe (Rx) os dados e, em seguida, começa a hibernar por
1s. Quando o sensor (S1) hiberna, o sensor (S2) também está hibernando, acordando em
um tempo fixo Δt, que é gerado pelo micro controlador acoplado a ele. Depois de
acordar, o sensor (S2) realiza o mesmo procedimento do sensor (S1).
Figura 1. Diagrama temporal do RFD
C. Arquitetura do Sistema
A Figura 2 mostra a arquitetura do sistema utilizada nas simulações, baseada
nos seguintes subsistemas, de acordo com [Vieira et al. 2003]:
1) Subsistema de alimentação: nas RSSF, os nós sensores são chamados de
Reduced Function Device (RFD) e o sink é chamado Full Fuction Device (FFD). Cada
RFD é alimentado pelo aerogerador ao qual o mesmo está acoplado. O FFD é
alimentado pela mesma fonte de energia que alimenta os RFDs ou outra fonte de
energia permanente, como a rede elétrica, por exemplo.
2) Subsistema de Sensoriamento: realiza a aquisição de dados dos sensores. Ele
se comunica com o Subsistema Computacional.
3) Subsistema computacional: constitui-se de uma memória flash e um
microcontrolador PIC. É parte integrante dos nós RFD e FFD. Também realiza uma
90
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
comunicação, que permite a integração com serviços de alto nível, incluindo
dispositivos de acesso para um sistema de monitoramento como um supervisório, por
exemplo. Este supervisório pode ser acessado via Internet.
4) Subsistema de comunicação: É basicamente composto por alguns módulos de
rádio frequência (RF), de acordo com o padrão IEEE 802.15.4. É parte integrante dos
nós RFD e FFD.
Figura 2. (a) Diagrama de blocos do RFD. (b) Diagrama de Blocos do FFD
3. Resultados das Simulações
Todas as simulações foram realizadas no NS-2, utilizando os parâmetros do XBeePro
(TM), com base no padrão IEEE 802.15.4, operando na frequência de 2,4 GHz. A taxa
de dados é de 250kbps e a potência de transmissão é definida como 60mW, cuja
comunicação outdoor tem um alcance de até 1.600m [XBee 2015]. O cenário de
simulação baseia-se no parque eólico “Rei dos Ventos 3”, situado à região norte do
estado do Rio Grande do Norte, nas proximidades da cidade de Galinhos. O acesso à
área pode ser realizado através da rodovia federal BR 406 e rodovia estadual RN 402.
O Parque comporta 36 aerogeradores, numa área de 512ha, que compreende 13
vias de acesso de 10,50 metros de largura e extensão total de 12,8Km. A FIG. 3 ilustra
a planta do parque eólico Rei dos Ventos 3, onde destaca-se, circulado, o local onde o
sink está instalado. Cada nó é composto de sensores de temperatura, vibração e pressão.
O tamanho da mensagem é de 70 Bytes. O tempo de transmissão é configurado para 41
ms e, nas comunicações em modo sleep, o tempo de hibernação é de 5s. Para melhorar
a exatidão dos testes, foram realizados 10 ciclos de 1 hora (3600ms) para cada um. Os
gráficos que refletem a média das 10 rodadas em cada teste foram plotados para
sintetizar os dados. Os parâmetros dos testes foram baseados em [Popeanga et al.
2012].
91
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 3. Planta do parque eólico Rei dos Ventos 3.
[Brasventos 2014]
Fonte modificada
A. Perda de pacotes com e sem a presença de falhas
Para a realização dos testes de tolerância a falhas no modo de transmissão
contínuo ou alternado (modo de hibernação) tais falhas foram incluídas nas
comunicações que participam do roteamento, inabilitando o nó responsável pelo
roteamento após 5 segundos decorridos do início da comunicação. Cada falha tem
duração de 10 segundos. Passados esses 10 segundos, o nó roteador é novamente
habilitado, voltando a comunicar-se normalmente. Cada comunicação tem 20 segundos
de duração, no total.
A Figura 4a ilustra o cenário de falhas no modo de comunicação contínua.
Todos os protocolos apresentaram falhas que variaram entre o máximo de 87,87% no
DSDV e o mínimo de 31,24% no HTR. Tais resultados mostraram que, de todos os
protocolos que realizaram roteamento no modo contínuo, os protocolos hierárquicos
foram os que melhor conseguiram encontrar rotas alternativas, variando pouco a
quantidade de perdas de pacotes, em relação ao cenário sem falhas. Vale salientar,
entretanto, que o percentual de perda de pacotes em todos os protocolos testados é alto,
inviabilizando o uso dos mesmos nesta aplicação, quando do uso de comunicação
contínua. O DSDV tem a necessidade de redefinir os vetores de distância entre cada nó
roteado com mais frequência, se comparado ao AODVjr. Isso se reflete diretamente na
enorme perda de pacotes, tanto na comunicação contínua quanto na intercalada. Um
fator que pode ter influenciado a grande perda de pacote em todos os protocolos é a
disputa de ganho de permissão dos nós da rede para se comunicar com o sink.
No modo de comunicação alternada descrito na Figura 4b o percentual de
perdas de pacotes foi bastante elevado nos protocolos planos (51,29% para o AODVjr e
83,40% para o DSDV) em comparação aos protocolos hierárquicos, indicando que os
protocolos hierárquicos conseguem definir mais rapidamente e eficazmente rotas
alternativas de roteamento, quer entre nós do próprio cluster, quer juntando-se ao
cluster vizinho. Mais uma vez o protocolo HTR mostrou-se o mais eficiente de todos,
92
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
mantendo uma perda de pacotes apenas 2,01% maior que no modo sem falhas contra
3,32% do LEACH.
Figura 4. Média dos pacotes perdidos com e sem a presença de falhas nos
esquemas “sempre ligado” (a) e em “modo de hibernação” (b). Comparativo
entre AODVjr, DSDV, LEACH e HTR.
B. Vazão
A Figura 5a mostra a média da vazão dos protocolos simulados. Neste gráfico,
observa-se que todos os protocolos mantiveram um rendimento maior no modo
contínuo. Isto se deve ao fato da vazão da comunicação fluir continuamente, ao
contrário do modo alternado, em que há uma interrupção de 1s para o reinício de cada
comunicação. O HTR se saiu melhor na comunicação intercalada, se comparado a
outros protocolos (351,7B/s).
C. Atraso fim-a-fim.
A média do atraso fim-a-fim, expressa no gráfico da Figura 5b, mostra que todos
os protocolos mantiveram valores de atraso aceitáveis, exceto o DSDV, que manteve
1,35s em comunicação contínua e 0,46s em modo de hibernação, confirmando que os
protocolos proativos não são recomendados para sistemas de tempo real sem fio. O
HTR se saiu melhor, tanto no modo de comunicação contínuo (0,10s) como no modo de
hibernação (0,08s).
Figura 5. Média da vazão (a) e do atraso fim-a-fim (b) nos esquemas de
comunicação “sempre ligada” e em “modo de hibernação”. Comparativo entre
AODVjr, DSDV, LEACH e HTR.
93
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
D. Jitter médio e energia residual
Como o tempo entre duas amostras consecutivas pode variar, perdas de pacotes
talvez ocorram. Neste sentido, o jitter é definido como a diferença da variação de tempo
entre duas amostras consecutivas. Esta é uma maneira de medir o atraso de
comunicação entre os nós da RSSF.
A Figura 6a mostra que em todos os protocolos, exceto no DSDV, o jitter médio
permaneceu em níveis aceitáveis. Novamente, o HTR foi o protocolo de roteamento
que teve o melhor desempenho nos testes simulados, apontando para a sua eficiência e
adequação ao cenário onde há um número expressivo de aerogeradores, distribuídos em
ampla área.
A energia residual média no modo “sempre ligado” é menor do que no modo de
hibernação já que os nós transceptores não hibernam. Portanto, no modo “sempre
ligado” o consumo de energia é sempre maior. A Figura 6b descreve uma comparação
entre a energia residual média dos protocolos de roteamento nos esquemas sempre
ligado e em modo de hibernação.
Figura 6. Jitter médio (a) e energia residual média (b) nos esquemas de
comunicação “sempre ligado” e em “modo de hibernação”. Comparativo entre
AODVjr, DSDV, LEACH e HTR.
O AOMDV é o protocolo de roteamento que consome mais energia, já que tenta
encontrar múltiplas rotas, usando mais recursos e, obviamente, consumindo mais
energia. Assim, sua energia residual média é baixa. O DSDV consome pouca energia,
considerando que ele preenche suas tabelas de roteamento sem usar técnicas tais como
a de roteamento utilizada pelo AODV. O protocolo HTR mostrou-se o mais
econômico, em termos de energia residual média em modo de hibernação.
4. Conclusões
Este trabalho apresentou a análise de quatro protocolos de roteamento mais utilizados
nas RSSF baseados no padrão IEEE 802.15.4, através de cenário de simulação do
Monitoramento de parques eólicos, garantindo os quatro requisitos essenciais de QoS,
tais como perdas de pacotes, vazão, atraso fim-a-fim e jitter com ou sem a presença de
falhas. A energia residual dos nós também foi analisada.
94
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Os resultados das simulações mostraram que os protocolos de roteamento
hierárquicos (em particular o HTR, utilizado no ZIGBEE, inclusive na presença de
falhas do nó roteador) tiveram melhor desempenho em relação aos protocolos planos.
Isso demonstrou que, nas RSSF com grande número de nós, como no caso de parques
eólicos, a topologia por divisão hierárquica em clusters permite melhor
encaminhamento de mensagens, garantindo uma melhor comunicação de dados entre os
nós sensores para o sink, mesmo quando falhas de roteamento se fazem presentes.
Para
trabalhos
futuros,
pretende-se
estudar
o
impacto
do
modo de hibernação implementado neste trabalho no tocante aos aspectos de QoS,
tolerância à falhas e economia de energia em redes com um número maior de sensores.
5. Referências
Brasventos
(2014)
“EOL
Rei
dos
Ventos
3”.
Disponível
http://www.brasventos.com.br/projeto-03. Acessado em 15/09/2014.
em
Camm, E.H., Behnke, M.R., Bolado, O., Bollen, M., Bradt, M., Brooks, C., Dilling, W.,
Edds, M., Hejdak, W.J., Houseman, D., Klein, S., Li, F., Li, J., Maibach, P., Nicolai,
T., Patino, J., Pasupulati, S.V., Samaan, N., Saylors, S., Siebert, T., Smith, T., Starke,
M. e Walling, R. (2009) “Characteristics of wind turbine generators for wind power
plants,” Power & Energy Society General Meeting, pp. 1-5.
Chen, Q., Hu, Y., Chen, Z., Grout, V., Zhang, D., Wang, H. e Xing, H. (2013)
"Improved relay node placement algorithm for Wireless Sensor Networks application
in Wind Farm," Smart Energy Grid Engineering (SEGE), pp. 1-6.
Guo, P., Infield, D. e Yang, X. (2012) "Wind turbine generator condition-monitoring
using temperature trend analysis," IEEE Transactions on Sustainable Energy,
Volume 3, Issue 1, pp. 124-133.
Heinzelman, W., Chandrakasan, A. e Balakrishnan, H. (2000) "Energy-efficient
communication protocol for wireless microsensor networks," Proceedings of the
33rd International Conference on System Sciences (HICSS '00), pp. 1-10.
Hong, X., Xu, K. e Gerla, M. (2002) “Scalable routing protocols for mobile ad hoc
networks,”, IEEE, Volume 16, Issue 4, pp. 11-21.
IEEE 802.15.4. (2006) “Wireless medium access control (MAC) and physical layer
(PHY) specifications for low-rate wireless personal area networks (LR_WPANs),
IEEE Standard”.
Johnson, D. B., Maltz, D. A. e Broch, J. (2001) “DSR: the dynamic source routing
protocol for multihop wireless ad hoc networks,” Ad hoc networking, pp. 139-172.
Khan, Z.H., Catalot, D. G. e J. M. Thiriet, (2009) "Wireless network architecture for
diagnosis and monitoring applications," MASAUM Jornal of Computing, Volume 1,
Issue 1, pp. 318-325.
Park, J. Y., Lee, J. K., Oh, K. Y. e Lee,J. S. (2014) "Development of a novel power
curve monitoring method for wind turbines and its field tests," IEEE Transactions on
Energy Conversion, Volume 29, Issue 1, pp. 119-128.
95
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Perkins, C. E. e Royer, E.M. (1999) “Ad-hoc on-demand distance vector routing,”
Mobile Computing Systems and Applications, pp. 90-100.
Petersen, S., Doyle, P., Vatland, S., Aasland, C. S., Andersen, T. M. e Dag, S. (2007)
”Requirements, drivers and analysis of wireless sensor network solutions for the Oil
& Gas Industry,” Emerging Technologies and Factory Automation, ETFA, pp. 102114.
Pinho, Antonio M. (2008) "Gestão de Projetos de Parques Eólicos: Contribuições para
melhoria do processo," Thesis, Faculdade de Engenharia da Universidade do Porto.
Popeanga, C., Dobrescu, R. e Cristov, N. (2012) "Smart monitoring and controlling of
wind turbines farms based on wireless sensors networks," Systems and Computer
Science (ICSCS), pp. 1-6.
Shen, Ge, et al. "Monitoring wind farms occupying grasslands based on remote-sensing
data from China’s GF-2 HD satellite—A case study of Jiuquan city, Gansu province,
China." Resources, Conservation and Recycling (2016).
The wind power: base de datos de turbinas eólicas y parques eólicos (2015),
http://www.thewindpower.net/country_windfarms_es_26_brasil.php. Acessado em
23/10/2015.
Vakulya, G. e Simon, G. (2012) “Energy-efficient and reliable round-robin TDMA for
wireless sensor networks,” Instrumentation and Measurement Technology
Conference (I2MTC), pp.1179-1183.
Vieira, M. A. M., Coelho, C. N. Jr., Silva, D. C. Jr. e Mata, J. M. (2003) “Survey on
wireless sensor network devices,” Prof. IEEE-ETFA conf., pp. 537–544.
Wehs, T., Janssen, M., Koch, C. e von Colln, G. (2012) "System architecture for data
communication and localization under harsh environmental conditions in maritime
automation," Industrial Informatics (INDIN), pp. 1252-1257.
Wei, M. e Chen, Z. (2010) "Study of LANs access technologies in wind power system,"
Power and Energy Society General Meeting, pp. 1-6.
Wijetunge, S., Gunawardana, U. e Liyanapathirana, R. (2010) "Wireless Sensor
Networks for Structural Health Monitoring: Considerations for communication
protocol design," International Conference on Telecommunications (ICT), pp. 694699.
Willig, A. (2008) “Recent and emerging topics in wireless industrial communications:
A selection,” IEEE Transaction Industrial Informatics, Volume 4, no. 2, pp. 102–
124.
Xbee. Xbee/RF Family Features Comparison Datasheet (2015). Apr.
Zhang, Y., Chowdhury, A. A. e Koval, D.O. (2010) “Probabilistic wind energy
modeling in electric generation system reliability assessment,” Industrial and
Commercial Power Systems Technical Conference (I&CPS), pp. 1-8.
Zurawski, R. (2009) “Networked embedded systems: An overview,” Networked
Embedded Systems, pp. 1.11–1.16.
96
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Multithreading Support for Low Cost Internet of Things
Microcontrollers
Rubem Kalebe1 , Gustavo Girão1 , Itamir Filho1
1
Instituto Metrópole Digital
Universidade Federal do Rio Grande do Norte (UFRN)
Caixa Postal 1524 – 59078-970 – Natal – RN – Brazil
[email protected], {girao,itamir.filho}@imd.ufrn.br
Abstract. The ever-increasing use of microcontrollers and diversified components on Internet of Things applications brings problems on code development
and maintenance, and blocking tasks. Concurrent computing is useful for catch
the logic structure of a problem or solution and handle different and independent components, meeting that demand. Therefore, we propose a multithreading
approach to solve that problem, showing a high-level library for supporting it.
In addition, we demonstrate how it could be applied on real world with a Smart
Parking application.
1. Introduction
The idea behind Internet of Things (IoT) is to connect any device or component to the
Internet. The analyst company Gartner said that 6,4 billion connected things would be in
use worldwide in 2016, a increasing of 30 percent in relation to 2015, and would reach
20,8 billion by 2020 [Gartner 2015]. They also estimated that, in 2016, 5,5 million new
things would get connected every day.
Indeed, over the last ten years IoT became more popular with the sale success
of Arduino1 prototyping boards, such as Uno, Mega and LilyPad. David Cuartielles,
co-founder of the Arduino platform, said on 2013 that they had registered over 700,000
official boards, without counting derivative or clone boards [Cua 2013]. Most part of Arduino boards are microcontroller based and are ideal for prototyping, or even produce
final products, on IoT, because of its low cost, high processing power, ease of programming and high availability of tutorials. In addition, to those boards, another products are
popularizing IoT applications, such as PIC microcontrollers2 , Raspberry Pi3 and BeagleBoard4 single-board computers, and recently the Galileo and Edison boards, produced by
Intel5 . We also should not forget about the diversity of sensors, actuators and electronic
components which are sold today with decreasing prices [Carbone 2013] [Lesser 2015]
[Miller 2015]. All that products has enabled researches and hobbyists to develop countless applications.
The IoT field has a strong connection between software and hardware, in a way
which they are not developed separated, but at the same time and collaboratively. IoT
1
https://www.arduino.cc/
http://www.microchip.com/
3
https://www.raspberrypi.org/
4
https://beagleboard.org/
5
https://software.intel.com/iot/
2
97
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
solutions need to connect to the physical world and so, most of them use microcontrollers
for some task, since their price and most appropriate processing power (in the majority
of cases). The software complexity increases with the evolving on IoT and embedded
systems. The need to control different sensors, actuators and other components, send
and receive data, and check events are complicating the life of those developers. The
source codes are increasingly longer and more complex. Furthermore, some tasks can
be blocking, stopping the embedded application at some point. But that is undesirable,
because the system constantly needs to communicate with some component, or send or
receive some data. Last of all, the microcontrollers used are single-core precluding the
use of threads.
Concurrent computing is a modular programming paradigm mainly used to take
advantage of the modern architectures for accelerating application execution by implementing distinct control flows, called threads. That paradigm is also useful for
[Scott 2000]:
• Catch the logic structure of a problem or solution: some problems or solutions
are better modeled by separate tasks. A simple process of reading of a sensor is
more user-friendly as implemented by a distinct control flow;
• Handle different and independent components: those IoT applications are connected to different sensors, actuators and other electronic components. It is more
user-friendly to control those devices by distinct control flows.
Due to hardware constraints we cannot accelerate the applications with that
paradigm, but we can take advantage of those two benefits.
In this paper we use the main idea from concurrent computing of programming
with distinct control flow in order to improve the development process of microcontrollers
used on IoT applications, bringing benefits on development time, code readability and
software maintenance. This solution can also help with blocking tasks, being useful when
you need to wait some data while control another device, for example. The rest of this
paper is organized as follows. Section 2 describes the tools studied and where the work is
based. Section 3 takes a brief look on solutions proposed on literature. Section 4 describes
the operation of the solution proposed, pointing the implemented methods, examples and
life cycle of a thread. Section 5 shows how the library can be used to implement the
hardware layer of a Smart Parking application. Finally, Section 6 states our conclusion
and future work.
2. Background
The development of this work was based on two main tools: the POSIX Threads
[POS 2016], also known as Pthreads, and ATmega microcontroller series, produced by
Atmel, vastly used on Arduino boards and industry leader [PRN 2004].
In the past, many hardware sellers and computer enterprises used to implement
their own library for thread supporting. Naturally, these different libraries made more
difficult to develop portable applications with threads. A standard was specified by IEEE
initially with the POSIX 1003.1c standard. That pattern has defined an API (Application
Programming Interface) for writing multithreaded programs and implementations of it are
called POSIX Threads [POS 2016] [Barney 2016].
98
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
The most known is the pthread.h C library [Butenhof 1997]
[Nichols et al. 1996]. There are around 60 Pthreads procedures, all prefixed with
pthread_ and they can be categorized into four groups: (i) thread management
(creating, joining, killing threads), (ii) mutexes, (iii) condition variables and (iv)
synchronization between threads using read/write locks and barriers.
The AVR is a modified Harvard architecture 8-bit RISC single-chip microcontroller, which was developed by Atmel in 1996. The AVRs are generally classified into
series and the most famous is the the ATmega series, or simply megaAVR, which was
popularized with the Arduino boards and vastly used on IoT applications. So it is one of
the most relevant microcontrollers series we have today. That series can get a performance
up to 20 MIPS and it is characterized by the following:
• 4–256 KB program memory;
• 28–100-pin package;
• Extended instruction set (multiply instructions and instructions for handling larger
program memories);
• Extensive peripheral set.
The most popular microcontrollers are ATmega168 (8-bit AVR Microcontroller,
16 KB Flash, 32-pin), ATmega328 (8-bit AVR Microcontroller, 32 KB Flash, 28/32-pin)
and ATmega2560 (8-bit AVR Microcontroller, 256 KB Flash, 100-pin). They can be
programmed in C/C++ language with Atmel Studio6 or even with Arduino Integrated Development Environment (IDE)7 . The well-known Arduino Uno board has a ATmega328P
microcontroller as the brain of its architecture.
With the advent of the Arduino, a framework has been vastly used for programming ATmega processors. This API can be used natively with the Arduino IDE or adding
Arduino.h library in your pure C/C++ code.
Program 1. Program structure with Arduino framework.
1
// external declarations
2
3
4
5
void setup() {
// setup code which will run once
}
6
7
8
9
void loop() {
// main code which will run repeatedly
}
This framework became so popular that Intel adopted it for programming its
Galileo Gen 2 boards. But that boards have a more robust processor: a Intel Quark SoC
X1000, which is 32-bit, single-core and single-thread8 . Furthermore, the programs based
6
http://www.atmel.com/Microsite/atmel-studio/
https://www.arduino.cc/en/Main/Software
8
http://ark.intel.com/pt-br/products/79084/Intel-Quark-SoC-X1000-16K-Cache-400-MHz
7
99
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
on Arduino framework run on top of a Arduino simulator, which can bring us some delay
on programs execution.
We did tests with Arduino Uno R3 (ATmega328P), Arduino Mega 2560 (ATmega2560) and Galileo Gen 2. The results achieved on the two ATmega were identical,
unlike on Galileo.
3. Related Work
The microcontrollers miss high level tools for improving their development. Thus, a lot
of libraries has been developed for Arduino boards, including a Scheduler library to run
multiple functions at the same time [Ard 2016]. But this library is experimental, it is
not finished (it has only two methods) and only works on boards with ARM core (for
example, Zero and Due).
A few works have been proposed to the Scheduling problem such as
[Cheng et al. 2015] and [Buonocunto et al. 2016]. They focus on Arduino platform and
need some operating system kernel, which is not desirable since the limited microcontrollers resources. Those works implement too many resources and that are not needed
for the most part. They also do not follow the POSIX Threads pattern.
Many solutions have a threshold about the maximum number of threads, because
they use static allocation for their data structures. This is not desirable since they can
have or too much space allocated, or to little. The dedicated space is strongly dependent
of the hardware. Thus, in this work we use a linked list to store the threads, giving more
freedom to the developer.
The solution presented in this paper is also simpler than others, easy to use and
predict thread behaviour. Thus, the library is interesting for beginners or useful on limited
microcontrollers.
Finally, there is other library for scheduling tasks in Arduino platform [Tas 2016].
They also have a simple library where the tasks are executed in a predefined sequence.
However, that library does not follow any standard and the developer interface was not
based on some known API for threads. They also have a support for layered task prioritization, where the developer has to create more than one scheduler for the different
priority layers needed and manage those schedulers. This management is not trivial and
can make tasks management very hard. As was said in [Tas 2016] most tasks do not need
a priority assignment and this resource requires an additional scheduling overhead. Thus,
the developer needs to evaluate if that resource is really required for its project, using that
feature only for critical tasks.
4. The Scheduler Library
The Scheduler library was written in C++. It handles a thread as a procedure. First, the
developer models a procedure for each task, which can be a reading of a sensor or a reply
to a server, for example. Implementing the procedures it is needed to interact with the
Scheduler object provided by the library, creating explicitly a thread by calling the
createThread() method. That method receives the procedure which represents the
task and a time interval that it needs to run.
100
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
The Scheduler algorithm is a First-come, first-served (FCFS), which is a nonpreemptive scheduling algorithm, easy to understand and implement, where all tasks are
attended. This solution seems to be very adequate for being simple, even to beginners,
and demonstrate the library’s purpose. Due to the Scheduler algorithm there is no support
for real-time tasks yet.
The time execution of a thread is managed by two attributes: last_run, which
stores the last runned time, and _cached_next_run, which stores the next time when
the thread can execute, calculated based on the thread interval. These attributes,
except the interval, are updated every time the thread goes on. However, the interface
of a thread is not accessible for the developer. Only the Scheduler manipulates directly the
threads. The methods the user may need are accessible by calling the Scheduler object.
This structure was chosen for making library programming and management easier.
Follow the Program 2. It creates two threads, the first one executes every 100 ms
and the last one executes every 500 ms. When the run() method of the Scheduler is
called, it starts to execute the threads which were add to the list (the library uses a linked
list as we said on Section 3). When running, the algorithm check thread by thread if it
should execute. If it should execute, the Scheduler runs it, otherwise it checks the next
thread. When a thread finishes its execution, the Scheduler searches for another thread
able to run. The Scheduler works like that until check all the threads on the list. For
Arduino this program uses 4,268 bytes of program storage space and global variables use
254 bytes of dynamic memory.
We show a part of a execution trace of the Program 2 on Figure 1. In (a) we got the
results by running on a Arduino Uno R3 and in (b), on a Galileo Gen 2. In (a) we could
schedule perfectly the threads on the provided time, but in (b) we had a kind of delay on
execution, because on Galileo the programs which are based on Arduino Framework run
on a Arduino simulator. But in general, since the scheduler algorithm is a FCFS we have
a consistent result where the Thread 1 always runs before Thread 2.
Program 2. Basic example of library use.
1
#include <Scheduler.h>
2
3
unsigned int threadID[2];
4
5
6
7
8
void procedure1() {
Serial.print("Thread 1: ");
Serial.println(millis());
}
9
10
11
12
13
void procedure2() {
Serial.print("Thread 2: ");
Serial.println(millis());
}
14
15
16
void setup() {
Serial.begin(9600);
101
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
threadID[0] = Scheduler.createThread(procedure1, 100);
threadID[1] = Scheduler.createThread(procedure2, 500);
17
18
19
}
20
21
22
23
void loop() {
Scheduler.run(); // Runs the Scheduler
}
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
1:
1:
1:
1:
1:
2:
1:
1:
1:
1:
1:
2:
1:
1:
1:
1:
100
200
300
400
500
500
600
700
800
900
1000
1000
1100
1200
1300
1400
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
(a)
1:
1:
2:
1:
1:
1:
1:
1:
2:
1:
1:
1:
1:
2:
1:
1:
373
473
504
579
685
791
897
1003
1011
1109
1215
1321
1427
1516
1533
1639
(b)
Figure 1. Execution trace of the Program 2.
The library supports the following methods:
• run(): it starts the Scheduler, which traverses the linked list, thread by thread,
checking if it should run;
• createThread(): it inserts a thread at the end of the linked list. The method
receives two arguments (a pointer to a function and the execution time interval)
and returns the thread ID;
• join(): this method should be called inside a thread and receives as an argument
the ID of the thread that should execute. The current thread is suspended and the
control pass to the other, backing to the first when the joining thread finishes its
execution;
• remove(): receives a thread ID as an argument and removes it from the linked
list;
• yield(): this method should be called inside a thread and it suspends the execution of the current thread, passing the control to the next one on the linked
list;
• exit(): this method should be called inside a thread and it suspends the execution of the current thread and removes it from the linked list;
• sleep(): this method receives the ID of a thread and the time which it should
sleep, changing the time of the next execution;
• wakeUp(): this method wakes up a thread which ID is passed as an argument;
• disableThread() and enableThread(): this method receives the ID of a
thread and then enable or disable it. A disabled thread it will not run;
102
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figure 2. The life cycle of a thread.
• clear(): this method removes all the threads added on the linked list;
• size(): this method returns the number of threads on the Scheduler;
• getCurrentThread(): this method returns the ID of the current thread. If
the Scheduler is not running it should return zero;
• changeInterval(): this method receives a thread ID and the new execution
time interval, changing it for a thread.
The library implementation was based on POSIX Threads and Java threads native
support, adequating it to this context. It was planned to be simple and take less memory space. There is no support for controlling critical section access yet, passing that
responsibility to the programmer.
The life cycle of a thread in this library is shown on Figure 2, where is indicated the
library methods (represented with parentheses), events (represented without parentheses)
and the possible thread states. The events are an abstraction to an occurrence: if the
current, or the secondary thread has finished its execution or if it is time for the thread
start to run. A thread is waiting when is not time to run. After the time interval be
reached it becomes runnable and becomes running when the Scheduler starts it.
When is running it can join with another thread becoming suspended and backing
to running when the secondary thread finishes its execution. In any moment a thread
can be disabled. Finally, a thread can be dead when is made a call to remove() or
exit().
In the Program 3 we show one example more interesting, where we demonstrate
the use of join() and exit(), creating a scheduling harder. Its execution trace is
shown in Figure 3, where in (a) we got the results by running on a Arduino Uno R3 and
in (b), on a Galileo Gen 2. As we saw on the previous example, in (a) we could schedule
perfectly the threads on the provided time, but in (b) the program starts to run later, due to
the Arduino simulator. But the Scheduler managed well all the three threads on these two
platforms and we achieve similar behaviors. For Arduino this program uses 4,696 bytes
of program storage space and global variables use 280 bytes of dynamic memory.
103
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Program 3. Example with more library methods.
1
#include <Scheduler.h>
2
3
unsigned int threadID[3];
4
5
6
7
8
9
10
11
void procedure1() {
Serial.print("Thread 1A: ");
Serial.println(millis());
Scheduler.join(threadID[1]);
Serial.print("Thread 1B: ");
Serial.println(millis());
}
12
13
14
15
16
void procedure2() {
Serial.print("Thread 2: ");
Serial.println(millis());
}
17
18
19
20
21
22
void procedure3() {
Serial.print("Thread 3: ");
Serial.println(millis());
Scheduler.exit();
}
23
24
25
26
27
28
29
void setup() {
Serial.begin(9600);
threadID[0] = Scheduler.createThread(procedure1, 100);
threadID[1] = Scheduler.createThread(procedure2, 500);
threadID[2] = Scheduler.createThread(procedure3, 200);
}
30
31
32
33
void loop() {
Scheduler.run(); // Runs the Scheduler
}
5. Proof of Concept: Smart Parking
Consider an application of a Smart Parking with the following requisites:
• Detect a vehicle in a Parking Spot: it will be made with a ultrasonic sensor which
measures distance to an object;
• Identify a driver in a Reserved Spot: it will be made by a RFID card, when the
driver parks, he needs to pass his card on a RFID reader;
• Alarm if the the driver has no authorization to parking in a Reserved Spot.
Furthermore, consider that we have an SoC covering more than one spot (at least
one “normal” and one reserved). We need to determine from time to time the spot status,
if it is free or occupied. In addition, to that we need to identify the driver, in case of
104
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
(a)
1A: 100
2: 100
1B: 100
1A: 200
2: 200
1B: 200
3: 201
1A: 300
2: 300
1B: 300
1A: 400
2: 400
1B: 400
1A: 500
2: 500
1B: 500
1A: 600
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
Thread
1A: 371
2: 371
1B: 371
3: 372
1A: 475
2: 479
1B: 482
1A: 587
2: 591
1B: 594
1A: 699
2: 703
1B: 706
1A: 811
2: 815
1B: 818
1A: 923
(b)
Figure 3. Execution trace of the Program 3.
reserved spots. Naturally, when the driver parks in a Reserved Spot we need to activate
the RFID reader waiting his identification (which the driver eventually will not do, if he
has no authorization). We cannot stop on a procedure which wait the driver identification,
because we need to continue determining the spots status. One attractive solution is to
model this application with threads. One possible solution consists of a main thread
(responsible for managing the spots, identifying when is free or occupied), a thread for
driver identification, which is initially disabled and will be activated when a Reserved
Spot becomes occupied, and a thread for warning a buzzer (in case of missing driver
identification).
So we can create three threads with 1500 ms, 100 ms and 100 ms of execution
time interval, respectively. But initially the last two do not need to be enabled, so we
disable them, activating when a reserved spot becomes occupied. When this occurs we
activate that last two threads. We can disable the driver identification thread when the
driver passes his RFID card or when the spot becomes free. The warning thread will
be disabled when the spot becomes free or when the driver passes a valid RFID card.
The Scheduler will control those threads according to that configuration, which is made
simply with enableThread() and disableThread().
6. Conclusion
This paper presented a simple and effective library for multithreading support for low cost
microcontrollers, especially on ATmega series and another boards which support Arduino
Framework. We studied that library and saw how we can apply it to a real application.
With that library many other applications can be created and it is also attractive for helping
to develop a more legible code, easy to maintain and write. The library use is also easy
for beginners and it is very useful to handle blocking tasks.
In a future work we intend to make a more platform-independent library. This
goal can be reached thanks to C/C++ language. We can also implement more scheduling
algorithms, especially those for real-time supporting, making they available to the user
and letting him choose what algorithm he wants.
105
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
References
(2004).
Atmel’s
AVR
Microcontroller
Ships
500
Million
Units.
http://www.prnewswire.com/news-releases/
atmels-avr-microcontroller-ships-500-million-units-72278687.
html. Accessed: 2016-09-03.
(2013). Arduino FAQ – With David Cuartielles. http://medea.mah.se/2013/
04/arduino-faq/. Accessed: 2016-08-30.
(2016). IEEE SA - POSIX - Austin Joint Working Group. http://standards.
ieee.org/develop/wg/POSIX.html. Accessed: 2016-09-05.
(2016). Scheduler Reference. https://www.arduino.cc/en/Reference/
Scheduler. Accessed: 2016-08-30.
(2016). Task Scheduler – Cooperative multitasking for Arduino microcontrollers. http:
//www.smart4smart.com/TaskScheduler.html. Accessed: 2016-10-26.
Barney, B. (2016). POSIX Threads Programming. https://computing.llnl.
gov/tutorials/pthreads/. Accessed: 2016-09-02.
Buonocunto, P., Biondi, A., Pagani, M., Marinoni, M., and Buttazzo, G. (2016). Arte: arduino real-time extension for programming multitasking applications. In Proceedings
of the 31st Annual ACM Symposium on Applied Computing, pages 1724–1731. ACM.
Butenhof, D. R. (1997). Programming with POSIX threads. Addison-Wesley Professional.
Carbone, J. (2013). Expect sensor prices to fall. http://www.digikey.com/en/
articles/techzone/2013/dec/expect-sensor-prices-to-fall.
Accessed: 2016-09-05.
Cheng, Z., Li, Y., and West, R. (2015). Qduino: A multithreaded arduino system for
embedded computing. In Real-Time Systems Symposium, 2015 IEEE, pages 261–272.
IEEE.
Gartner (2015). Gartner says 6.4 billion connected ”things” will be in use in 2016, up
30 percent from 2015. http://www.gartner.com/newsroom/id/3165317.
Accessed: 2016-09-05.
Lesser,
A. (2015).
Declining sensor costs open up new consumer
applications.
https://gigaom.com/2015/01/25/
declining-sensor-costs-open-up-new-consumer-applications/.
Accessed: 2016-09-05.
Miller, R. (2015).
Cheaper sensors will fuel the age of smart
everything.
https://techcrunch.com/2015/03/10/
cheaper-sensors-will-fuel-the-age-of-smart-everything/.
Accessed: 2016-09-05.
Nichols, B., Buttlar, D., and Farrell, J. (1996). Pthreads programming: A POSIX standard
for better multiprocessing. ” O’Reilly Media, Inc.”.
Scott, M. L. (2000). Programming language pragmatics. Morgan Kaufmann.
106
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
CO2 Catcher: Uma plataforma para monitoramento de
poluição veicular em cidades inteligentes
Júlio Oliveira1 , Jefferson Lemos1 , Wellington Souza1 , Ivanovitch Silva1
1
Universidade Federal do Rio Grande do Norte
Instituto Metrópole Digital
{juliocesar,brunoluno,wellingtonsilva,ivan}@imd.ufrn.br
Abstract. The growth of Information and Communication Technologies has
enabled connections between devices and systems, generating data that can be
used for more effective urban planning. Thus, this papers aims to present a
platform, named CO2 Catcher, which will contribute to a proactive planning of
cities from the real-time monitoring of vehicle pollution. Techniques of Crowd
Sensing and an embedded hardware will be used to extract data from vehicles
and transmit them to a cloud infrastructure. The results have been indicated
that is possible to extract pollution patterns and additionally, it was possible to
infer the state of traffic on public roads.
Resumo. O crescimento das Tecnologias da Informação e Comunicação tem
permitido que dispositivos e sistemas se conectem, gerando dados que podem
ser utilizados para planejamento urbano mais eficiente. Assim, nesse trabalho
será apresentado uma plataforma, nomeado de CO2 Catcher, que irá contribuir
para o planejamento proativo das cidades a partir do monitoramento em tempo
real da poluição veicular. Técnicas de Crowd Sensing e um hardware embarcado no veı́culo serão utilizados para extrair dados e comunicar com uma infraestrutura de computação em nuvem. Os resultados indicaram que é possı́vel
extrair os padrões de poluição e adicionalmente, inferir a partir desses o estado
do trafego nas vias públicas.
1. Introdução
A urbanização desenfreada, aliada ao rápido crescimento populacional, tornaram-se grandes desafios ao desenvolvimento sustentável nos centros urbanos. Essas caracterı́sticas
passaram a ser alvo de estudos e colocaram em destaque um tema pouco explorado: as cidades inteligentes [Zanella et al. 2014]. Torna-se necessária, portanto, a implementação
de soluções inteligentes que facilitem o planejamento e a tomada de decisões baseados
em informações estratégicas, de modo a dar uma resposta mais eficaz à dinâmica das
cidades [Bonino et al. 2015].
Cidades inteligentes são formadas pela combinação de sistemas de
comunicação ubı́quos, sistemas autônomos de gerenciamento, redes de sensores sem fio, uma infraestrutura de comunicação robusta e integração dos diversos
serviços [Soheily-Khah et al. 2016], responsáveis pela coleta de uma quantidade massiva de dados, constituindo a base do que conhecemos atualmente por “Internet das
Coisas” [Al-Fuqaha et al. 2015]. A interpretação dos dados brutos gera informação que
107
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
pode ser utilizada na criação de novas aplicações, oferecendo um leque de serviços que
beneficiam a sociedade e o desenvolvimento sustentável [Stankovic 2014, Monzon 2015].
Felizmente, o desenvolvimento de aplicações para Cidades Inteligentes não está
condicionado apenas aos governos. Esta realidade possibilita ao cidadão desenvolver e
comercializar suas soluções [Ojo et al. 2015]. Mesmo que os dados coletados pelo governo não sejam abertos ao público, existe a possibilidade de realizar a extração de outras
maneiras, como CrowdSensing [Bellavista and Ianniello 2015], por exemplo. Nessa abordagem os sensores são representados pelas próprias pessoas, criando uma infraestrutura
virtual em paralelo à infraestrutura fı́sica já existente. Os cidadãos, através de seus celulares, carros e outros gadgets, compartilham informações que irão alimentar o sistema
[Newman et al. 2016].
Nesse contexto, sabe-se que a emissão de gases produzidos pelos veı́culos contribui com uma das maiores parcelas da poluição do ar nos grandes centros urbanos, inclusive, com ı́ndices de poluição similares à indústria [Brienza et al. 2015]. Assim, o
presente trabalho tem como objetivo definir uma infraestrutura de comunicação e processamento de dados para o monitoramento em tempo real da poluição veicular. Técnicas de
crowdsensing serão utilizadas para compartilhar os dados referentes às emissões de CO2
produzido pelos veı́culos entre a infraestrutura de comunicação e processamento de dados
da cidade.
O restante deste documento é organizado da seguinte forma: na Seção 2 são apresentados os trabalhos relacionados. Na Seção 3 é feita uma revisão teórica dos principais
conceitos. A estrutura da plataforma CO2 Catcher é mostrado na Seção 4. Os resultados
são descritos na Seção 5. Finalmente, as conclusões são apresentadas na Seção 6.
2. Trabalhos Relacionados
O monitoramento da poluição urbana a partir das emissões dos poluentes veiculares é
uma tarefa complexa. Envolve diversos desafios, desde a captura das emissões de gases
nos veı́culos, transmissão dos dados pela infraestrutura de comunicação das cidades até o
armazenamento, geração e visualização da informação processada.
Na década de 60 nos EUA, o Comitê de Administração dos Recursos do Ar da
Califórnia (CARB) criou uma legislação para a redução da poluição por veı́culos automotores. O advento dos sistemas eletrônicos automotivos ocorreu no mesmo perı́odo em que
o CARB e a Agência de Proteção Ambiental (EPA - Environmental Protection Agency)
definiam resoluções para controle das emissões, impulsionando a criação de um sistema
capaz de auto-diagnosticar e alertar o motorista sobre eventuais defeitos nos sistemas veiculares. Esse sistema foi batizado de On-board diagnostics (OBD) e lançado em 1988,
quando passou a ser obrigatória em todos os novos veı́culos que circulariam na Califórnia
a partir daquele ano [Hernandez-Alcantara et al. 2016]. Desde 1996, todos os carros fabricados e vendidos nos EUA são obrigados a possuir o sistema OBD. A União Europeia
adotou medida similar em 2003 enquanto que Brasil, Rússia e China o fizeram a partir de
2010.
Recentemente, diversos trabalhos tem explorado o OBD para extrair dados e gerar
informação que podem ser utilizadas no monitoramento da poluição em cidades inteligentes. Em [ZENG et al. 2015], os autores realizaram um estudo sobre a influência da
108
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
distância percorrida e velocidade média do veı́culo no consumo de combustı́vel. Com
técnicas de Machine Learning é possı́vel prever o consumo de combustı́vel nos trechos percorridos. Os mesmos autores estenderam a ideia, criando o conceito de Ecodriving [Zeng et al. 2016]. A partir da previsão do consumo de combustı́vel e consequentemente a emissão de CO2 (estimadas por aproximações lineares do consumo de
combustı́vel), rotas entre dois pontos são traçadas considerando a distância e os poluentes
emitidos pelos veı́culos. Em ambas as soluções, os dados coletados via OBD são armazenados localmente no veı́culo e processados de forma offline por uma aplicação. Atualmente é possı́vel encontrar um número razoável de trabalhos acadêmicos e soluções comerciais que se utilizam do sistema de auto-diagnóstico OBD-II para criar novos serviços
ou dispositivos que beneficiam o motorista [Taha and Nasser 2015].
A partir da discussão acima fica claro que existem lacunas a serem resolvidas.
Dentro deste contexto temos a proposta de uma aplicação mobile móvel, para plataforma
Android, acessı́vel a um grande número de dispositivos, onde os usuários tem acesso ao
histórico das emissões dos gases poluentes de seus veı́culos, possibilitando, com isso, a
disponibilidade de dados para o desenvolvimento de novas soluções.
3. OBD
Trata-se de uma interface criada para facilitar a comunicação entre os componentes
eletrônicos dos veı́culos e o mundo externo. Sua primeira versão foi adotada entre 1988
e 1996, e se chamava OBD-I. Ela não apresentava uniformidade, pois cada fabricante
desenvolvia a sua própria solução, e deste modo apenas eles teriam acesso aos dados coletados. Com o passar dos anos, o CARB chegou à conclusão de que o padrão OBD-I
era insuficiente e ineficiente para realizar o diagnóstico e controle das emissões. Isto
porque ele basicamente se reduzia a detectar curto-circuitos ou interrupções nos circuitos elétricos de sensores e atuadores. Outro fator que levou à sua substituição foi o fato
de que, durante as inspeções, eram detectados diversos casos de falsos negativos, isto
é, veı́culos que ultrapassavam os limites de emissão de poluição conseguiam passar no
conjunto de testes do OBD-I [Manavella 2010].
Na busca pela padronização dos sistemas de diagnóstico veicular, foi lançado
o OBD-II no ano de 1996, nos EUA. Essa nova versão tinha como objetivo adicionar
funcionalidades que não existiam em sua predecessora e também facilitar a inspeção e
manutenção veicular. Note que daqui em diante, quando o termo OBD for referido neste
texto, estará sempre sendo feito uma referência ao OBD-II, que é o padrão instalado nos
carros atuais e também o utilizado nos testes da aplicação CO2 Catcher.
3.1. Modos de operação do OBD-II
O OBD-II define identificadores padrões (identificadores genéricos) para um grande
número de requisições. São estes identificadores que um scanner1 deve conhecer e ser
capaz de enviar pela rede de comunicação (CAN - Controller Area Network) embarcada
no veı́culo, via CAN podemos realizar a comunicação entre diferentes ECUs (Unidade de
Controle Eletrônico), dispositivo capaz de controlar os sistemas eletrônicos do veı́culo.
Os identificadores são chamados de PID(Parameter ID), sendo códigos usados para a
requisição de dados do veı́culo.
1
Scanners ou adaptadores são dispositivos que se conectam diretamente à porta OBD e permitem que
aplicações se comuniquem com os veı́culos.
109
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Os PIDs foram criados seguindo um padrão. Os dois primeiros dı́gitos correspondem ao modo de operação, e os dois seguintes ao tipo de informação que se deseja obter.
Existem 10 modos de operação, mas não significa que todo veı́culo, nem todo scanner
oferece suporte a todos eles. A abrangência de cada modo de operação é descrita na
Tabela 1.
Tabela 1. Modos de Operação do OBD-II.
Modo
1
2
3
4
5
6
7
8
9
10
Descrição
Dados(tempo-real) fornecidas pela ECU conectada aos sensores e atuadores.
Correspondem a informações de quando um erro especı́fico aconteceu.
Usado para requisitar todos códigos de erro armazenados no veı́culo.
Responsável por limpar os códigos de erro armazenados.
Informações de diferentes sensores de O2 espalhados pelo motor do veı́culo.
Oferece informações relacionadas ao monitoramento não-contı́nuo.
Modo avançado, não sendo implementado por qualquer scanner. Informações
de teste feitos enquanto o veı́culo está ligado. Utilizado na inspeção de
emissão de poluentes.
Outro modo avançado. Utilizado por técnicos para conduzir testes visando
encontrar as causas de algum problema.
Utilizado para obter informações sobre o veı́culo, como o VIN (Vehicle Identification Number), sendo um identificador do veı́culo, também informações
sobre o software do veı́culo e dados do motor.
O veı́culo realiza testes automáticos de emissão e os armazena por um tempo.
4. CO2 Catcher
O objeto de estudo desse trabalho é a poluição gerada por veı́culos automotores. Automóveis contribuem com uma grande parcela na poluição do ar, e isso deve-se aos gases
gerados a partir da queima de combustı́veis.
Este trabalho visa, portanto, criar uma arquitetura que possibilite o monitoramento
remoto em tempo-real da poluição veicular. A fim de se adequar a tais requisitos, foi
adotada a metodologia crowdsensing. A ideia é transformar o smartphone do motorista
em um sensor capaz de medir a quantidade de CO2 instantânea gerada enquanto o veı́culo
se movimenta. A arquitetura do sistema está descrita na Figura 1.
O sistema desenvolvido divide-se em 3 componentes principais, nomeadamente:
veı́culo equipado com OBD-II, aplicação mobile e serviços na nuvem. Os detalhes sobre
o funcionamento de cada um deles é descrito a seguir.
4.1. Veı́culo
O veı́culo deverá possuir um scanner OBD-II para que seja possı́vel a comunicação entre
a aplicação CO2 Catcher e o veı́culo. Foi adotado durante todo o desenvolvimento do
projeto o scanner ELM327. Seu custo é baixo, implementa o modo de operação 1 e
ainda conta com um módulo bluetooth, permitindo que qualquer aplicação móvel para
plataforma Android possa se conectar.
110
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 1. Arquitetura do sistema
As informações necessárias ao cálculo da poluição veicular são fornecidas por
uma mesma ECU. Detalhes relacionados ao cálculo do CO2 , além de explicações e justificativas arquiteturais da aplicação CO2 Catcher são apresentados na seção seguinte.
4.2. Plataforma
CO2 Catcher é o nome dado ao aplicativo desenvolvido para a plataforma Android. Devido à comunicação entre o dispositivo e o veı́culo ser via bluetooth, é necessário manter
uma distancia máxima entre 10 e 15 metros, para não ocorrer falhas na comunicação.
Adicionalmente, para o registro do histórico de poluição do veı́culo, é necessário que o
smartphone esteja conectado com à internet.
Na Figura 2 temos o funcionamento da comunicação entre a aplicação e o veı́culo.
Os detalhes do funcionamento são mostrados abaixo:
Figura 2. Fluxo de comunicação do sistema
1. A aplicação envia uma requisição de conexão para o adaptador ELM327 via bluetooth. Com a comunição estabelecida, o CO2 Catcher é capaz de enviar comandos
OBD.
2. A aplicação requisita a massa de ar (MAF).
111
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
3. A resposta é recebida; o CO2 Catcher calcula o CO2 emitido pelo veı́culo. O
método usado será mostrado em 4.3. Para obter o valor do CO2 emitido, o veı́culo
monitorado precisa implementar o comando OBD-II 0110.
A interface apresentada pela ferramenta pode ser visualizada na Figura 3. Os
quatro medidores estão em funcionamento: o medidor de velocidade indica 45km/h, o de
massa de ar registra 16,84 g/s enquanto que o medidor de autonomia aponta para 8,79
km/litro e o de CO2 marca 3,61 gCO2 /s. Os medidores são atualizados a cada segundo.
Assim, o usuário pode acompanhar o desempenho do seu carro a todo instante.
Figura 3. Tela do CO2 em funcionamento
4.3. Métodos de cálculo do CO2
A combustão é responsável por gerar diferentes moléculas, como CO2 (dióxido de carbono), CO (gás carbônico), NOx (óxidos de nitrogênio), HC (hidrocarbonetos), entre outros. Portanto, através de cálculos estequiométricos é possı́vel medir a massa dos produtos
caso seja conhecida previamente a massa dos reagentes [Wallington et al. 2008].
Dependendo da quantidade de combustı́vel injetada, um determinado fluxo de
oxigênio é exigido para que ocorra a queima completa. No caso da gasolina, por exemplo, a cada 1 grama de gasolina são necessários 14.7 gramas de oxigênio. Essa relação
se chama air-fuel ratio (AFR), e o motor do veı́culo busca injetar a quantidade correta de
gasolina e ar, de modo a manter a relação válida.
A unidade de medida do MAF e Fuel é g/s, e o AFR é uma constante. Os valores
do AFR para a gasolina, diesel e etanol são descritos na Tabela 2.
Tabela 2. Fatores de conversão de combustı́vel.
[IEEP 2010], [InnovateMotors 2014]
Fuel
Gasoline
Diesel
Ethanol
CO2 PL
2310 g/L
2660 g/L
1510 g/L
AFR
14.7:1
14.6:1
9.0:1
Source: [Hill et al. 2012],
Density (ρ)
737 g/L
850 g/L
789 g/L
Dessa forma, considerando que o AFR é conhecido, e que é possı́vel extrair o
MAF através do barramento CAN do veı́culo, a massa de combustı́vel pode ser encontrada
através do desenvolvimento da Equação 1.
112
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
AF R =
M AF (g/s)
M AF (g/s)
, F uel(g/s) =
F uel(g/s)
AF R
(1)
É necessário encontrar o volume de combustı́vel injetado, visto que Fuel na
Equação 1 representa a massa do combustı́vel, e não seu volume. Portanto, a fim de
calcular o CO2 emitido, é preciso converter a massa do combustı́vel em volume. A coluna
Density (ρ) da Tabela 2 exibe a densidade dos combustı́veis por litro. O cálculo para
obtenção do volume é descrito na Equação 2.
V fuel (L/s) =
F uel(g/s)
Density(g/L)
(2)
Como dito anteriormente, a emissão de CO2 está intimamente ligada ao volume de
combustı́vel queimado. O cálculo final da massa de CO2 é descrito na Equação 3, onde o
volume do combustı́vel (Vfuel ) é multiplicado pela massa de dióxido de carbono (CO2 PL)
gerada após a queima de 1 litro do combustı́vel em questão, resultando na estimativa da
massa de CO2 emitida no ambiente por segundo.
CO2 (g/s) = V fuel CO2 P L
(3)
4.4. Serviços em nuvem
Com o objetivo de incentivar a inovação por meio da criação de novas aplicações móveis
e serviços, os dados referentes à emissão de dióxido de carbono e outras informações
sobre o estado do veı́culo capturadas pela estrutura de sensoriamento crowdsensing são
armazenados em uma base de dados aberta [Kitchin 2014].
Figura 4. Descrição API RESTful
A camada de acesso aos dados é mantida por uma API REST (REpresentational
State Transfer) desenvolvida especificamente para este projeto [Masse 2011], podendo ser
visualizado na Figura 4. A API RESTful foi implementada usando a plataforma Node.js,
que se baseia na linguagem JavaScript optimized to server-side runtime. O servidor se
encontra na infra-estrutura de nuvem e pode ser visto na Figura 1, representado pelo
componente (1).
113
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
5. Resultados
A fim de validar a plataforma CO2 Catcher, foram realizados testes com um Jeep Renegade
2016, onde foi coletado dados de poluição durante 5 percursos que podem ser vistos na
Tabela 3.
Tabela 3. Estatı́stica de dados coletados do Renegade 2016
Percurso
Horário
Duração
Amostras Distancia CO2
1. A→ B
2. B→ C
3. C→ A
4. A→ C
5. C→ A
Total
01/06 11:42h
01/06 12:07h
01/06 13:01h
02/06 12:31h
02/06 13:18h
10 min
10 min
5 min
6 min
8 min
39 min
574
564
261
336
479
2214
4.5km
5.1km
3.34km
3.2km
4.88km
21.59km
2303g
2440g
1387g
1849g
2558g
10537g
Resumidamente, foram coletadas 2214 amostras de CO2 durante os 21.59km percorridos. O somatório das amostras resulta em uma média de 10.5kg CO2 emitidos. juntamente com as amostras coletadas também é enviado a latitude e a longitude onde foram
obtidas, possibilitando saber as áreas com maiores incidências, e com isso realizar uma
melhor análise dos dados por meio de mapas de calor, onde regiões mais acometidas pelo
dióxido de carbono possuem uma coloração mais forte (avermelhada), e áreas menos acometidas possuem coloração mais suave (esverdeada), como pode ser visto na Figura 5.
Figura 5. Mapa de calor
O mapa inclui os 5 percursos descritos na Tabela 3. Três marcadores foram inseridos no gráfico para indicar áreas com maior emissão de poluentes durante os testes
realizados.
Analisando o mapa, percebemos que os principais motivos os quais levam ao aumento da emissão de poluentes são:
114
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
• Durante a partida e o estacionamento. Pode-se ver na Figura, áreas vermelhas
próximas dos marcadores, pois o veı́culo está em pequenas áreas tende a ser mais
afetada pela poluição.
• Locais intermediários das rotas devido engarrafamentos, o trecho entre B e C, por
exemplo.
• Momentos em que o veı́culo teve a velocidade reduzida para atravessar cruzamentos e lombadas, também causou o aumento da emissão dos gases, como por
exemplo entre os trechos C e B.
Vale observar que os teste foram realizados por volta do meio-dia, horário em que
as pessoas tendem a se locomover e a ocorrência de congestionamento é mais notória.
6. Conclusão
O monitoramento e indicação de áreas poluidoras em um ambiente urbano é um requisito
iminente para o desenvolvimento das chamadas Cidades Inteligentes. Nesse sentido, foi
apresentado a solução CO2 Catcher, uma plataforma capaz de fornecer análises em tempo
real da quantidade de emissão de CO2 por veı́culos em um ambiente urbano.
Os resultados demonstraram que a solução pode ser útil também no controle
de tráfego nas cidades, haja visto que áreas com maior concentração de poluição geralmente compreendem cruzamentos, semáforos e regiões congestionadas (em horários
especı́ficos). Este potencial poderia ser explorado pelos gestores das cidades a fim de
realizar um melhor gerenciamento das vias com grande tráfego, mostrando potencial da
plataforma para outras análises.
Por último, destacamos como trabalho futuro o estudo e desenvolvimento de uma
estratégia para calcular o teor de combustı́vel em uma dada mistura, com o objetivo de
tornar os cálculos de emissão mais precisos no caso de veı́culos que utilizem combustı́veis
combinados, além de verificar o funcionamento da ferramenta com outras classes de automóveis.
Referências
Al-Fuqaha, A., Guizani, M., Mohammadi, M., Aledhari, M., and Ayyash, M. (2015).
Internet of things: A survey on enabling technologies, protocols, and applications.
IEEE Communications Surveys Tutorials, 17(4):2347–2376.
Bellavista, Paolo, G. C. A. C. L. F. and Ianniello, R. (2015). Crowdsensing in Smart
Cities: Technical Challenges, Open Issues, and Emerging Solution Guidelines, chapter 15, pages 316–338. IGI Global.
Bonino, D., Alizo, M. T. D., Alapetite, A., Gilbert, T., Axling, M., Udsen, H., Soto, J.
A. C., and Spirito, M. (2015). Almanac: Internet of things for smart cities. In Future
Internet of Things and Cloud (FiCloud), 2015 3rd International Conference on, pages
309–316.
Brienza, S., Galli, A., Anastasi, G., and Bruschi, P. (2015). A low-cost sensing system for
cooperative air quality monitoring in urban areas. Sensors, 15(6):12242.
Hernandez-Alcantara, D., Tudon-Martinez, J. C., Amesquita, L., Vivas-Lopez, C. A., and
Morales-Menendez, R. (2016). Modeling, diagnosis and estimation of actuator faults
in vehicle suspensions. Control Engineering Practice, 49:173 – 186.
115
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Hill, N., Walker, H., Choudrie, S., and James, K. (2012). Guidelines to defra/decc’s ghg
conversion factors for company reporting: Methodology paper for emission factors,
department for environment. Food and Rural Affairs (Defra).
IEEP (2010). Subsidy level indicators for the case studies. pages 1–2.
InnovateMotors (2014). Digital air/fuel ratio (lambda) meter. pages 2–3.
Kitchin, R. (2014). The data revolution: Big data, open data, data infrastructures and
their consequences. Sage.
Manavella, H. J. (2010). Diagnóstico automotivo avançado. Injeção/ignição eletrônica.
Sistemas OBDII. MTE-THOMSON.
Masse, M. (2011). REST API design rulebook. ”O’Reilly Media, Inc.”.
Monzon, A. (2015). Smart cities concept and challenges: Bases for the assessment of
smart city projects. In Smart Cities and Green ICT Systems (SMARTGREENS), 2015
International Conference on, pages 1–11.
Newman, R., Chang, V., Walters, R. J., and Wills, G. B. (2016). Web 2.0 the past and the
future. International Journal of Information Management, 36(4):591 – 598.
Ojo, A. K., Curry, E., and Zeleti, F. A. (2015). A tale of open data innovations in five
smart cities. In 48th Hawaii International Conference on System Sciences, HICSS
2015, Kauai, Hawaii, USA, January 5-8, 2015, pages 2326–2335.
Soheily-Khah, S., Douzal-Chouakria, A., and Gaussier, E. (2016). Generalized k-meansbased clustering for temporal data under weighted and kernel time warp. Pattern Recognition Letters, 75:63 – 69.
Stankovic, J. A. (2014). Research directions for the internet of things. IEEE Internet of
Things Journal, 1(1):3–9.
Taha, A. E. M. and Nasser, N. (2015). Utilizing can-bus and smartphones to enforce safe
and responsible driving. In 2015 IEEE Symposium on Computers and Communication
(ISCC), pages 111–115.
Wallington, T. J., Sullivan, J. L., and Hurley, M. D. (2008). Emissions of co2, co, nox, hc,
pm, hfc-134a, n2o and ch4 from the global light duty vehicle fleet. Meteorologische
Zeitschrift, 17(2):109–116.
Zanella, A., Bui, N., Castellani, A., Vangelista, L., and Zorzi, M. (2014). Internet of
things for smart cities. IEEE Internet of Things Journal, 1(1):22–32.
ZENG, W., MIWA, T., and MORIKAWA, T. (2015). Exploring trip fuel consumption by
machine learning from gps and can bus data. Journal of the Eastern Asia Society for
Transportation Studies, 11:906–921.
Zeng, W., Miwa, T., and Morikawa, T. (2016). Prediction of vehicle {CO2} emission and
its application to eco-routing navigation. Transportation Research Part C: Emerging
Technologies, 68:194 – 214.
116
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Sistema de Controle de Acesso Utilizando Tecnologia
Aberta
Hemerson Rafael P. Pontes¹, Anderson Souza², Rosiery Maia²
¹Escola de Ciências e Tecnologia– Universidade Federal do Rio Grande do Norte
(UFRN) Natal – RN – Brasil
²Departamento de Informática– Universidade Estado do Rio Grande do Norte (UERN)
Natal – RN – Brasil
[email protected], {andersonabner,rosierymaia}@uern.br
Abstract. Access control is a common problem in many types of environment,
they can be residential or business. In many situations the access control is held
through a manual door lock with key, which can presents some problems. When
we are talking about automating solutions. There are many commercial
alternatives, but they present high costs. This work presents an alternative
system capable of solving these problems. The project is a system of access
control micro-controlled by an “Arduino” board, which is based on the
identification of cards or RFID tags to actuate a magnetic lock, releasing the
user’s entry to this restrict environment.
Resumo. Controle de acesso é um problema comum em diversos tipos de
ambientes, sejam eles residenciais ou empresariais. Em muitas situações, o
controle é feito através de clavícula manual, que apresenta alguns problemas.
Quando se trata de soluções automatizadas, existem diversas soluções no
mercado, mas apresentam um alto custo. Este trabalho visa apresentar um
sistema alternativo de baixo custo, capaz de substituir as soluções manuais
simples e automatizadas de alto custo. O sistema de controle de acesso
desenvolvido é microcontrolado por uma placa Arduino, que se baseia na
identificação de cartões ou tags RFID para acionar um fecho magnético,
liberando a entrada do usuário a um ambiente restrito.
1. Introdução
Com o advento de novas tecnologias, tanto de hardware como de software, a ideia de ter
ambientes automatizados se torna cada vez mais real, e diversos recursos esperados
(como, gerenciar a abertura e fechamento de portas e/ou janelas e acionar uma variedade
de dispositivos) já estão disponíveis no mercado. Porém, essas tecnologias possuem um
elevado custo, além de sua customização para novas funcionalidades ser limitadas às
organizações proprietárias das tecnologias [Mioranza et. al. 2013]. Cada vez mais, as
pessoas estão investindo em equipamentos eletrônicos capazes de proporcionar uma
maior comodidade, satisfação e segurança. Neste último caso, sem muito esforço, podese perceber inúmeros equipamentos eletrônicos desenvolvidos para esse fim, tanto para
empresas, quanto para residências.
Proteger informações e produtos pode ser de suma importância para qualquer
instituição pública ou privada. Para tal, a melhor forma de evitar fraudes é utilizar
fechaduras com senhas ou algum tipo de dispositivo de acionamento. Uma fechadura
117
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
eletrônica é um equipamento de extrema importância para segurança do estabelecimento,
pois é ela que vai determinar se libera, ou não, a entrada das pessoas através de senhas
previamente cadastradas. O preço das fechaduras eletrônicas ainda é alto, por esta razão,
seu uso não se expandiu em larga escala. Todavia, este produto é mais seguro, prático e
simples para utilização em lugares onde há grandes acessos.
Sendo assim, a finalidade deste trabalho é desenvolver um sistema de controle de
acesso (fechadura eletrônica) de baixo custo, utilizando a plataforma de hardware livre
Arduino. Essa plataforma oferece uma arquitetura composta por hardware e software,
podendo manipular e obter informações de dispositivos, como por exemplo, sensores,
motores, telas de cristal líquido ou LCD (do inglês “Liquid Crystal Display”), e placas
Shields, que podem ser conectadas ao Arduino, ampliando suas capacidades funcionais.
2. Trabalhos Relacionados
Existem atualmente no mercado inúmeros sistemas que possuem propósito semelhante
ao aqui apresentado. Mas, por se tratarem de sistemas proprietários, por vezes
patenteados, não é comum encontrar em seus documentos de especificações técnicas,
descrições detalhadas de tais dispositivos.
As diferenças entre os sistemas de controle de acesso se dão em vários quesitos:
na complexidade do sistema, no propósito do mesmo, na estrutura de hardware e nos
mecanismos de identificação [Peixoto 2013].
No trabalho de Oxer & Blemings (2009), é demonstrado como se construir um
sistema de controle de acesso utilizando a plataforma Arduino juntamente com um leitor
de cartões ou tags RFID. Nesse projeto são utilizados, além de uma placa Arduino e um
leitor RFID, um fecho magnético juntamente com alguns componentes eletrônicos para
possibilitar a abertura de uma porta ao ser reconhecido à identificação de um cartão ou
uma tag previamente cadastrada no sistema. É uma aplicação bem simples de controle de
acesso à um espaço.
Pode ser visto que os códigos de identificação são inseridos dentro do sketch do
Arduino, o que impossibilita uma futura e fácil inclusão de novos códigos. É necessário
que o usuário desmonte o projeto para poder conectar a placa a um computador, sendo
assim, possível atualizar o sketch com novos códigos. Além disso, não há qualquer tipo
de interface com o usuário ou modo de armazenar informações acerca dos acessos
autorizados ou tentativas de acesso não permitidas pelo sistema.
Nas pesquisas feitas por Monk (2010), é mostrado como construir uma tranca
magnética para utilização em qualquer tipo de porta. Nesse projeto é utilizado como
componentes principais, uma placa Arduino, um teclado 4x3 (quatro linhas por três
colunas) e um pequeno solenoide. É cadastrada uma senha padrão na memória EEPROM
do Arduino, havendo a possibilidade de mudar essa senha. Caso o usuário venha a
esquecer seu código secreto, desligando e religando a energia do Arduino não irá redefinilo para uma senha padrão. Deverá conectar a placa ao computador para fazer o
carregamento do sketch, e então voltar a utilizar a senha padrão.
Neste sistema é utilizado somente uma senha para todos os usuários. Não há
qualquer tipo de interface visual com o usuário, além de LEDs, informando quando a
senha é, ou não, digitada corretamente. Também não possui maneira alguma de gravar
registros sobre seu acionamento.
118
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Coelho & Maia (2007) fazem uso de um microcontrolador PIC para criação de
um sistema de segurança de baixo custo. Possui como interface com o usuário um LCD
e um teclado. As senhas utilizadas para destrancar a trava magnética são constituídas de
seis dígitos compostos por números de zero à nove. O projeto permite até três tentativas
para destrancar a porta, caso a última tentativa falhe, um alarme sonoro é disparado.
Apesar de haver uma interface visual com o usuário através de um LCD, e também a
opção através de uma senha de administrador, de cadastrar usuários e senhas diversas,
não há um modo de registrar, através de data e hora, quando a tranca é acionada.
Silva (2013) apresenta um dispositivo de controle de acesso em uma porta,
baseando-se nos intervalos dos sons de batida na porta. O projeto integra uma placa
Arduino com o microcontrolador ATmega328, um fecho magnético, um relé para acionar
o fecho e um botão responsável pela mudança das batidas sem ter que alterar o sketch.
Apesar de ser uma ideia a se considerar, esse sistema não possui nenhum tipo de interface
com o usuário, além de um jogo de luzes produzido por um LED e um botão que deve
ser pressionado caso o usuário deseje gravar uma nova batida no sistema. Esse sistema
possui somente um tipo de batida (senha) para qualquer usuário que queira acionar o
sistema para liberar a porta. Não há como algum tipo de administrador ter um controle
sobre as pessoas que tiveram acesso ao ambiente protegido por esse sistema, pois não
possui nenhum dispositivo para armazenar essas informações, como usuário, data e hora
em que tiveram acesso.
Diferentemente de outros projetos anteriormente mencionados, o enfoque deste
trabalho se dá na construção de um sistema independente, que não necessita conexão com
um computador para funcionar e que irá realizar a validação dos cartões ou tags RFID
através de um módulo leitor/gravador de cartões de memória Secure Digital Card, ou SD
Card, que contém um arquivo, de extensão TXT, com uma lista dos cartões que possuem
permissão de acesso. Além disso, realiza a gravação de um registro contendo as seguintes
informações: identificação do cartão ou tag RFID, data e horário da liberação, ou não, do
acesso ao ambiente. Esse registro é feito no mesmo cartão de memória que está contido
no módulo leitor/gravador de cartões anteriormente mencionado, e utiliza as informações
(data e hora) disponibilizadas pelo módulo RTC (sigla em inglês para Real Time Clock).
3. Tecnologias Utilizadas
Antes de apresentar o sistema desenvolvido em sua forma final, é importante expor as
principais tecnologias utilizadas para implementá-lo.
3.1. Plataforma Arduino
Arduino é uma plataforma de prototipagem eletrônica e de placa única criada com o
objetivo de permitir o desenvolvimento de controle de sistemas interativos, de baixo custo
e acessível a todos. Além disso, todo material (hardware, software e bibliotecas) é opensource, ou seja, pode ser reproduzido e usado por todos sem a necessidade de pagamento
de direitos autorais.
Pode ser utilizada para desenvolver objetos que sejam independentes ou que
podem ser conectados a um computador, uma rede ou até mesmo à Internet para recuperar
e enviar dados. O Arduino é capaz de armazenar aplicações criadas em seu ambiente de
desenvolvimento podendo assim, realizar as funções desejadas por conta própria, sem a
necessidade de um computador [Arduino 2014].
119
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
A plataforma é projetada com um microcontrolador Atmel AVR, com suporte de
entrada/saída embutido, uma linguagem de programação padrão, a qual tem origem em
Wiring, e é essencialmente C/C++. O objetivo do projeto é criar ferramentas que são
acessíveis, com baixo custo, flexíveis e fáceis de usar por artistas e amadores.
Principalmente para aqueles que não teriam alcance aos controladores mais sofisticados
e de ferramentas mais complicadas [Arduino 2014].
O uso de um Arduino pode ser estendido através do uso de placas de circuito
periféricas contendo outros dispositivos, como um leitor RFID a leitor/gravador de cartão
de memória. São conhecidas por shields e são conectadas diretamente ao Arduino,
utilizando as portas adequadas [Mcroberts 2010].
O Arduino foi escolhido para este trabalho pela facilidade e agilidade que a
plataforma oferece para o desenvolvimento das aplicações. Por possibilitar a
programação de circuitos em um nível mais alto, o Arduino faz a computação física ficar
mais semelhante ao desenvolvimento de softwares aplicativos, que está mais presente no
nosso dia a dia. O modelo UNO R3, utilizado neste projeto, é a versão mais indicada para
aqueles que estão iniciando. Sua plataforma é composta essencialmente de duas partes:
O Hardware e o Software.
Figura 1. Arduino UNO R3 [Arduino 2014].
3.2. Programação do Arduino
Quando se trata de software na plataforma Arduino, refere-se à IDE e o código fonte
(sketch) desenvolvido pelo usuário enviado para a placa Arduino.
O Arduino IDE trata-se de uma aplicação multiplataforma escrita em Java
derivada dos projetos Processing e Wiring [Nunes 2012]. É esquematizado para
introduzir a programação a pessoas não familiarizadas com o desenvolvimento de
software. Inclui um editor de código com recursos de realce de sintaxe, parâmetros
correspondentes e endentação automática, sendo capaz de compilar e carregar programas
para a placa com um único clique [Arduino 2014]. Durante esse processo o compilador
converte os sketchs em arquivos assembly e o transfere via porta serial [Silva & Cândido
2011]. Para realizar o download do software, basta ir até a página oficial do Arduino,
escolher a versão compatível com o sistema operacional (Windows, Mac ou Linux) e
baixá-lo.
3.3. Módulo leitor RFID (Shield RFID)
A identificação por radiofrequência (RFID, sigla em inglês para Radio-Frequency
IDentification) é uma tecnologia para identificação automática de objetos e pessoas. Um
120
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
dispositivo RFID é comumente conhecido como cartão, tag ou token RFID. Consiste de
um pequeno microchip construído para transmissão de dados sem fio em resposta a
interação com um leitor RFID.
3.4. Módulo leitor/gravador de cartão SD (Shield SD)
O Shield SD é uma solução simples para a transferência de dados de e para um cartão SD
padrão. A pinagem é diretamente compatível com o Arduino, mas também pode ser usado
com outros microcontroladores. Ele permite que seja possível adicionar armazenamento
em massa e registro de dados ao projeto.
3.5. Módulo RTC (Shield RTC)
Este módulo RTC (sigla em inglês para Real Time Clock) é um sistema composto
normalmente por um circuito integrado, um cristal oscilador e uma fonte de energia
(bateria). Este módulo é baseado no chip Maxim DS1307 [Maxim Integrated 2008]. O
RTC é capaz de fornecer o tempo atual (computa segundos, minutos, horas, dias da
semana, dias do mês, meses e anos de 2000 até 2099, quando necessário, pois o mesmo
o mantém sempre atualizado, possibilitando a implementação de funções como alarme e
calendário.
3.6. Display OLED 0.96" (Shield OLED)
A tela de Diodo Emissor de Luz Orgânico (OLED, sigla em inglês para Organic LightEmitting Diode) é um elemento fundamental para que os equipamentos eletrônicos
tornem-se mais compactos, interativos e de fácil operação, pois pode facilitar a forma de
interação do usuário com o equipamento e, consequentemente, aumentar o valor agregado
a este. Uma das vantagens do OLED, que resulta em uma economia considerável de
energia, é que ele não precisa de uma luz traseira (backlight) como as telas de LCD/LED
convencionais. O próprio material orgânico tem uma propriedade chamada
Eletroluminescência (EL), que faz com que o material "brilhe" ao ser estimulado por uma
corrente ou um campo elétrico.
3.7. Buzeer (Sirene)
Um buzzer (campainha em inglês) é um dispositivo sonoro de sinalização, que pode ser
mecânico, eletromecânico ou piezelétrico. Usos típicos de campainhas e apitos incluem
dispositivos de alarme, temporizadores e confirmação da entrada do usuário, como um
clique do mouse ou tecla. O buzzer utilizado neste projeto. Ele é alimentado por uma
tensão de 5 volts.
3.8. Fecho Eletromagnético
O fecho eletromagnético utilizado neste trabalho é da marca Amelco, este fecho (modelo
FE61) foi desenvolvido para funcionamento com baixa voltagem através de dispositivos
acionador com saída entre 12 a 18 volts em corrente continua ou alternada. Dispositivo
responsável por manter a porta travada.
4. Sistema de Controle de Acesso
O sistema é composto por todos os dispositivos descritos acima e softwares
desenvolvidos para a plataforma Arduino. Durante o processo de testes dos componentes
121
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
e módulos foi utilizada uma placa de ensaio (ou protoboard) para evitar a necessidade de
soldas que seriam difíceis de serem desfeitas no caso de montagem incorreta. A ligação
definitiva entre os componentes do sistema pode ser vista na Figura 2. Por fim, esses
componentes serão organizados dentro de um invólucro para uso final.
Figura 2. Ligação entre os componentes do sistema.
A Figura 2 que demostra quais são as ligações e seus tipos (SPI1, sigla do inglês para
Serial Peripheral Interface) e (I²C 2, sigla do inglês para Inter Integrated Circuit), tem
como correspondente a cada número os seguintes componentes: 1) Placa Arduino UNO,
2- Módulo RFID, 3- Módulo SD Card, 4- Módulo RTC, 5- Módulo Display OLED, 6Buzzer, 7- Módulo Relé e 8- Fecho Eletromagnético.
5. Teste do Protótipo
Para verificar o bom funcionamento do sistema, foram realizados testes de configuração,
funcional, integração e performance. Um exemplo de teste de integração é gravação dos
dados de registro no cartão SD, nele foi utilizado o monitor serial da IDE do Arduino para
exibir algumas mensagens.
Assim que o protótipo é energizado, uma mensagem é exibida no display LCD
(“Passe seu cartão”). Sempre que um cartão é aproximado ao leitor RFID, sua ID é
capturada, e armazenada numa String para posteriores comparações. O próximo passo, o
1
Serial Peripheral Interface ou SPI é um protocolo que permite a comunicação do microcontrolador com
diversos outros componentes, formando uma rede.
2
I²C (Inter-Integrated Circuit) é um barramento serial Barramento multimestre desenvolvido pela Philips
que é usado para conectar periféricos de baixa velocidade a uma placa mãe, a um sistema embarcado ou
a um telefone celular.
122
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
sistema abre o arquivo CARDS.TXT (Figura 3), que contém todas as IDs com permissão
para acionar a fechadura.
Figura 3. Exemplo de registro das IDs de cartões RFID no arquivo CARDS.TXT.
É feita uma comparação entre a String armazenada e cada linha do arquivo aberto.
Caso haja alguma linha idêntica, o shield relé é ativado, liberando o fecho magnético, é
gravado uma linha no arquivo LOGIN.TXT (Figura 4) contendo a ID do cartão, data,
hora e a mensagem “Acesso Permitido! ”, e por fim exibido no display LCD essa mesma
mensagem, “Acesso Permitido! ”.
Figura 4. Alguns registros gravados no arquivo LOGIN.TXT.
Caso a ID do cartão não seja idêntica a alguma linha desse arquivo, uma
mensagem é exibida no display LCD informando que o acesso foi negado. Mesmo assim,
será gravado no log do arquivo os dados desse cartão, data e hora da tentativa de acesso
seguido da mensagem, “Acesso Negado! ”. A Figura 6 mostra a montagem feita para a
realização dos testes.
Figura 5. Teste do protótipo.
Foi feito teste de stress, aproximando-se os cartões à antena do shield RFID
inúmeras vezes com curto intervalo de tempo. Em todas as ocorrências, foram exibidas
no monitor serial da IDE do Arduino a mesma mensagem que foi gravada no arquivo
LOGIN.TXT. Tantos foram os testes realizados com cartões que, reconhecidamente,
123
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
tinham suas IDs contidas no arquivo CARDS.TXT, como os que não tinham suas IDs
contidas.
6. Protótipo desenvolvido
O protótipo desenvolvido foi construído em módulos, tanto a parte do invólucro como a
de hardware. Visto que, quando todos ou grande parte dos componentes são integrados
em uma única Placa de Circuito Impresso (PCI) é agregado um valor alto a ela, logo a
substituição da placa torna-se inviável e a adesão de um novo produto mais favorável.
Dessa forma, a modularização da fechadura evita essa situação e facilita a manutenção,
como, por exemplo: substituição apenas dos módulos com defeitos e identificação das
falhas.
O invólucro da figura 6 foi dividido em duas unidades, uma é a interna e a outra
externa, em relação ao ambiente protegido. Pensando na segurança o relé, o qual é
responsável pelo acionamento do feche eletromagnético que liberando a abertura da porta,
não pode estar accessível na parte externa do ambiente restrito, já que é possível ativa-lo
realizando um jumpeamento. Desse modo, para garantir a segurança, o relé encontra-se
na unidade interna anexado a PCI e junto ao microcontrolador.
Figura 6. Unidade externa à esquerda e Unidade interna à direita.
A PCI da Figura 7 foi projetada com base no modelo Arduino standalone para
atender necessidades do projeto, tendo em vista o valor elevado de uma placa Arduino.
Com a produção do modelo próprio foi possível economizar mais 75% em relação a
aquisição de uma placa Arduino UNO original.
A escolha do microcontrolador fabricado pela Atmel do modelo ATmega328p-PU é
o mesmo utilizado na placa Arduino UNO, que foi motivada pelas suas especificações
técnicas e seu encapsulamento do tipo DIP (do inglês “Dual In-Line Package”), que
facilita a troca do componente em decorrências de defeitos.
Figura 7. Placa de Circuito Impresso desenvolvida para fechadura eletrônica.
124
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
7. Conclusão
O controle de acesso é um mecanismo que deve ser tratado com cuidado em qualquer
instituição pública e privado, balanceando o custo de implantação com o benefício de
assegurar o patrimônio institucional. Nesse contexto, esse trabalho apresentou a
elaboração de um protótipo de sistema para controle de acesso aos ambientes restritos,
utilizando a plataforma Arduino. Ele surgiu pela necessidade de se adquirir uma
fechadura eletrônica para instalação no laboratório LAR da Universidade do Estado do
Rio Grande do Norte, visando aumentar sua segurança e o controle dos usuários que
poderão ter acesso ao ambiente em questão.
Visto que, a despesa para se adquirir uma das soluções disponíveis atualmente no
mercado demanda um alto custo para a instituição de ensino em questão, foi proposta a
elaboração desse protótipo como alternativa de baixo custo. Na Tabela 1 pode ser
visualizado uma lista com o material utilizado para a construção deste sistema e seus
respectivos valores (menores valores no mercado brasileiro).
Tabela 1. Lista de componentes, consulta realizada em agosto de 2016.
Lista de componentes
Nº
1
2
3
4
5
Descrição
Kit standalone arduino - 15 componentes
Módulo leitor RFID
Real time clock
Módulo sd card
Display OLED 0.96"
Valor
R$ 17,90
R$ 39,90
R$ 19,00
R$ 14,90
R$ 46,90
6
7
Placa de Circuito Impresso
Relé 5v 1 canal
R$ 5,00
R$ 3,50
8
9
10
11
-
Buzzer 5V
Led rgb
Fonte chaveada 12v
Fecho FE 61
Total
R$ 2,50
R$ 1,05
R$ 17,00
R$ 57,57
R$ 225,22
Tabela 2. Comparação entre o protótipo desenvolvido e a fechadura da Samsung SHS 1321.
Protótipo desenvolvido Fechadura Samsung SHS 1321
Display
Sim
Não
Avisos sonoros
Sim
Sim
Capacidade de Usuários
500*
21
Métodos de Abertura
Cartões ou Tags RFID
Cartões ou Tags RFID e Senha
Gera relatório
Sim
Não
Painel touch screen
Não
Sim
Data e Hora
Sim
Não
Tipo de trava
Eletromagnética
Mecânica
Alimentação
Fonte 12v 2A
4 Pilhas tipo AA Alcalinas 1.5v
Valor médio
R$ 323,25
R$ 886,92
*Suporta mais de 500 usuários, mas o tempo de resposta pode variar significativamente.
Atualmente pode ser encontrado no mercado algumas fechaduras eletrônicas que
custam de R$ 600,00 até R$ 3.500,00. Desde fechaduras que permitem acesso ao ser
digitado uma senha em teclado numérico, outras que, como este trabalho, permitem
125
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
acesso ao aproximar-se um cartão RFID, até as que funcionam mediante a leitura
biométrica do usuário. As fechaduras mais baratas permitem armazenagem de poucos
usuários, algo entre 10 e 100 usuários. Já as mais caras, além de permitirem uma grande
quantidade de usuários armazenados, também realizam um registro de suas operações em
memória.
O sistema proposto neste trabalho se mostrou com custo acessível devido o valor
gasto para sua implementação ter ficado entre 30% e 40% do valor de muitas fechaduras
com o mesmo propósito oferecidas no mercado. Além disso, permite o armazenamento
de inúmeros usuários, e também de inúmeros registros de suas operações, já que conta
com um dispositivo de armazenamento em massa (Cartão SD). Fechadura foi instalada
em janeiro de 2014 atendendo a necessidade do LAR e atualmente encontra-se em pleno
funcionamento.
Referências
Arduino. (2014) “Arduino Home Page”, http://arduino.cc, Julho.
Coelho, J.F., Maia, V. (2007) “Projeto de uma Trava Elétrica Microprocessada”. 5º
Encontro Cientifico Cultural Interinstitucional (ECCI), Coordenadoria de Pesquisa e
Extensão (COOPEX), Faculdade Assis Gurgacz, Paraná.
Computação) – Universidade Federal de Juiz de Fora, Juiz de Fora, 2013.
Freeduino. (2014) “Nome do Microcontrolador
http://www.freeduino.org/duino.html, julho.
do
“Rei
Arduino””,
Gimenez, S.P. (2005) “Microcontroladores 8051”, 1. ed. Pearson, São Paulo.
Groover, M.P. (1987) “Automation, Production Systems and Computer Integrated
Manufacturing Systems”, 2 ed. New Jersey, USA: Prentice Hall.
Maxim Integrated. (2008) “DS1307 64 x 8, Serial, I2C Real-TimeClock”, Product Data
Sheet, San Jose. 88.
Mcroberts, M. (2010) “Beginning Arduino”, New York, USA: Apress.
Mioranza, G.B., Esteves, M.P. & Semkiv, J.E. (2013) “Casa Inteligente”,
http://www.ficiencias.org, fevereiro.
Monk, S. (2010) “30 Arduino Projects for the Evil Genius”. Nova Iorque, USA: McGrawHill.
Nunes, A.C. (2012) “Desenvolvimento de um Controle de Demanda de Energia Elétrica
Residencial”, 81 f. Monografia (Especialista em Desenvolvimento de Produtos
Eletrônicos) – Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina.
Santa Catarina.
Oxer, J.; Blemings, H. (2010) “Practical Arduino: Cool Projects for Open Source
Hardware”. Nova Iorque, USA: Apress.
Peixoto, T.M. (2013) “Sistema de Controle de Acesso utilizando Dispositivos
Embarcados”. Trabalho de Conclusão de Curso (Graduação em Ciência da
Silva,P.H.O. (2013) “Sistema de Segurança de Tranca de Porta e Controle de Acesso”,
78 f. Trabalho de Conclusão de Curso (Graduação em Engenharia de Computação) –
Centro Universitário de Brasília (UniCEUB), Brasília.
126
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Uma proposta de um Bot como instrumento facilitador do
processo de ensino/aprendizagem na disciplina “Construção
de Algoritmos”
Ceres G. B. Morais¹, Alexsandra F. Gomes¹, Jéssica N. de F. Leite¹, Kléber K.
de A. Silva², Thiago J. Barbalho¹
¹Departamento de Informática - Universidade do Estado do Rio Grande do Norte.
Avenida Antônio Campos, Bairro Costa e Silva, Mossoró/RN. CEP 59.610-090.
²Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte.
Campus Ipanguaçu. RN 118, Povoado Base Física. , Ipanguaçu/RN. CEP 59.508-000.
{ceresgbmorais, alexsandrafg, thiagojobson}@gmail.com,
[email protected], [email protected]
Resumo. Este artigo apresenta uma proposta de um bot de perguntas e
respostas para o apoio do processo de ensino/aprendizagem da disciplina
“Construção de Algoritmos”. A ideia central é propor uma metodologia que
proporcione aos alunos um ambiente de aprendizagem extraclasse, divertido e
desafiador, com base nos conceitos de gamificação. O trabalho apresenta
tanto a ferramenta quantos os resultados obtidos por meio de estudo de caso.
Abstract. This article presents a proposal for a bot of questions and answers
to support teaching and learning process of the course "Algorithm
Construction". The central idea is to propose a methodology that provides
students with an extra-class learning, funny and challenging environment. The
paper presents both the tool developed and the results obtained by case study.
1. Introdução
Hoje, no Brasil, a quantidade de celulares é maior que a quantidade de habitantes. É
estatisticamente mais provável que um brasileiro possua um telefone celular em vez de
energia elétrica ou água encanada em casa, e quase duas vezes mais provável que
possua acesso à internet do que a uma rede de esgotos [Hermes, 2016]. Tais
informações mostram que tecnologias móveis estão inseridas no cotidiano do brasileiro,
sendo utilizadas em variadas finalidades. Este crescente uso de tecnologias por parte da
população brasileira tem alterado o comportamento dos alunos e professores em sala de
aula, isto porque a aprendizagem por meio dessas tecnologias vem se expandindo
[Alencar et al, 2015].
Porém, no meio educacional, há uma clara resistência a mudanças; os
professores ensinam da mesma forma que aprenderam, e assim velhos hábitos vão se
perpetuando, ainda que o mundo seja outro [Alencar et al, 2015][Weinberg, 2016]. Não
podemos ignorar que o ensino não se restringe mais única e exclusivamente a uma sala
de aula, mas ocorre em um ecossistema maior, amplificado pelo universo on-line e pelo
computador, que está na vida de todos [Weinberg, 2016].
127
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Diante disto, este trabalho busca fazer uma proposta, baseada em um estudo
bibliográfico prévio de trabalhos relacionados, de uma ferramenta que utilize
tecnologias populares entre os jovens com o objetivo de facilitar o ensino/aprendizagem
na disciplina de “Construção de Algoritmos”. Esta disciplina está presente nos primeiros
semestres da matriz curricular dos cursos da área de Computação e é essencialmente
voltada para resolução de problemas; ela é também conhecida pelas dificuldades de
aprendizagem por parte dos alunos, sendo considerada, por muitos autores, como
corresponsável pelas altas taxas de evasão nos cursos da área [Iepsen, 2013].
O objetivo esperado deste software é que possa ser uma contribuição relevante;
que venha a oferecer uma experiência positiva para os alunos, engajando-os e
motivando-os na disciplina, além de proporcionar um aprendizado mais sincronizado
com os estudantes.
2. Referencial Teórico
2.1. Informática na Educação
Informática na Educação significa a inserção de recursos digitais no processo de
aprendizagem dos conteúdos curriculares de todos os níveis e modalidades de educação,
enfatizando que o professor da disciplina curricular deva ter conhecimento sobre os
potenciais educacionais do computador e ser capaz de alternar adequadamente
atividades tradicionais de ensino/aprendizagem e atividades que o utilizem.
Segundo Martins (2012), é muito comum as escolas apresentarem seus projetos
de inserção a tecnologia com a justificativa de que esse trabalho é importante por ser a
realidade dos estudantes de hoje em dia. A geração atual, da qual estes estudantes fazem
parte, possui facilidade em utilizar ferramentas digitais e em interagir em ambientes
virtuais como smartphones, redes sociais, blogs, sites, etc. Porém, isso não significa que
eles possuem facilidade em utilizar essas ferramentas no ambiente escolar.
2.2. Mobile Learning
Mobile Learning (M-Learning) significa utilizar dispositivos móveis (laptop, celular ou
tablet) para disponibilizar o aprendizado em qualquer lugar, a qualquer momento.
Permitir também a atualização mais rápida dos conteúdos, em relação aos métodos mais
tradicionais de ensino, o que dá maior qualificação aos profissionais que as instituições
formam [Castro,2014].
O M-Learning não almeja substituir nenhum processo de ensino/aprendizagem;
pelo contrário, esta tecnologia possibilita ser um tópico auxiliador neste processo, sendo
apenas um meio de interação e ajudando o discente em suas atividades [Weinberg,
2016][Silva et al,2013].
2.3 Gamificação
Segundo Fardo [2013], a gamificação é o “uso de mecânicas, estéticas e pensamentos
dos games para engajar pessoas, motivar a ação, promover a aprendizagem e resolver
problemas, usando todos os elementos dos games que forem apropriados”. Sendo assim,
o processo de gamificação pode ser entendido como a utilização de metáforas de jogos
em contextos específicos, visando a influenciar um comportamento e o engajamento do
seu jogador em uma atividade simulada [Medeiros, 2014]. O conceito de gamificação é
128
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
diferente de jogos sérios, uma vez que estes últimos descrevem o design pleno de um
jogo com propósitos educacionais. Uma aplicação se diz gamificada quando se utilizam
elementos de jogos como: medalhas, conquistas, desafios, rankings [Dicheva et al,
2015].
Nos últimos anos, a gamificação teve um rápido crescimento em negócios e
ambientes empresariais, marketing, iniciativas ecológicas e educação. Isso se deu
devido ao seu potencial em moldar o comportamento dos usuários em uma direção
desejada. Aplicativos como Foursquare, Nike+ são exemplos de produtos de mercado
que utilizam gamificação [Dicheva et al, 2015].
3. Trabalhos Relacionados
3.1 Ferramenta de Apoio à aprendizagem de Algoritmos
Iepsen et al (2010) propôs uma abordagem para evitar a evasão dos alunos de cursos da
área de Computação com o desenvolvimento de um sistema web que realiza a
personalização, aliado ao uso de Computação Afetiva, dos exercícios de algoritmos.
Posteriormente, Iepsen (2010) realizou uma pesquisa para detectar os alunos que
evidenciam sinais de frustração em atividades de ensino/aprendizagem na área de
Algoritmos, para então, auxiliá-los com ações proativas de apoio. Os resultados dos
experimentos mostraram que evidências como, o alto número de tentativas de
compilação de um programa sem sucesso, o grande número de erros em um mesmo
programa ou a quantidade de tempo gasto na tentativa de resolver, podem estar
relacionados ao estado de frustração do aluno.
Raab et al (2015) apresentou uma abordagem para a construção de um gerador
de dicas sobre os erros cometidos pelos estudantes, usando como base uma combinação
de casos de testes aplicados ao programa a ser avaliado e uma análise estrutural do
código, detectando padrões de erros comuns realizados por estudantes. A avaliação
obtida pelos autores do trabalho foi de que “o mecanismo de correções e geração de
dicas proposto teve um impacto positivo e auxiliou os estudantes na resolução dos
exercícios” e a “melhorar a legibilidade do código”.
3.2. Aplicativos de conversação como Ambiente Virtual de Aprendizagem
O trabalho desenvolvido por Oliveira et al (2014), foi um estudo do resultado de um
curso a distância, denominado M-Learning por meio do WhatsApp: Games e
Gamificação em EaD, que utilizou como Ambiente Virtual de Aprendizagem (AVA) o
aplicativo WhatsApp, a professores e tutores que atuam na Universidade Federal da
Paraíba Virtual (UFPB Virtual). O curso abordava os assuntos aprendizagem móvel,
games e gamificação e games aplicados à educação. Os assuntos eram discutidos em
grupos criados no aplicativo. Os autores do estudo chegaram à conclusão de que “tal
proposta é vista como uma inovação” e “visualizou-se o aplicativo WhatsApp como
uma alternativa eficaz para o ensino/aprendizagem”.
O estudo apresentando em Alencar (2015) foi o resultado de um trabalho que
adotou como Ambiente Virtual o aplicativo WhatsApp e teve como público-alvo alunos
de um curso de nível superior presencial. Tinha como objetivo funcionar como um
fórum de discussão, algo similar ao Moodle, mas que possuísse maior interatividade e
portabilidade devido ao uso de smartphones. Ao final do estudo, os autores concluíram
que o WhatsApp “no contexto educacional, pode ser uma ótima ferramenta se mediada
por alguém, seja um professor ou tutor, que direcione o sentido das conversas” e que
129
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
“os ambientes virtuais de aprendizagem podem ser sistematicamente substituídos pelo
WhatsApp, ou se apresentar como alternativa a esses ambientes”.
4. Bot de apoio ao processo de Ensino/Aprendizagem de Algoritmos
O ensino de Algoritmos é fundamental nos cursos da área tecnológica por ser o passo
inicial para o desenvolvimento do raciocínio lógico, e, por consequência, para a
introdução dos conceitos e prática da programação. A disciplina destaca-se ainda por
exigir do docente, e seus auxiliares, uma forte demanda de interação a fim de atender,
acompanhar, mediar e avaliar individualmente os alunos [Raab et al, 2015].
No geral, as disciplinas que necessitam da prática de uma grande quantidade de
exercícios para a aprendizagem dos conteúdos - onde a resolução de um exercício
necessita da execução de um conjunto de passos - apresentam as maiores dificuldades
para parte dos alunos. No caso de Algoritmos, em que o raciocínio lógico é necessário,
esta dificuldade é ainda maior. Assim, muitos alunos não conseguem acompanhar o
ritmo das sequências de exercícios com nível de complexidade e recursos
computacionais crescentes passadas pelo professor [Iepsen, 2013].
A fim de auxiliar na dificuldade de aprendizagem dos alunos, este trabalho
propõe o desenvolvimento de uma ferramenta de apoio ao ensino/aprendizagem de
Construção de Algoritmos e tem os seguintes objetivos esperados:

Objetivo 1: Utilizar a Application Programming Interface (API) do Telegram
como ferramenta de construção no desenvolvimento de um aplicativo para apoio
ao ensino/aprendizagem de Construção de Algoritmos, apelidado de Donuts;

Objetivo 2: Aplicar aspectos de gamificação ao bot, de forma que possua uma
característica lúdica;

Objetivo 3: Validar o bot por meio de um estudo de caso em uma turma de
Construção de Algoritmos de um curso de Ciência da Computação;

Objetivo 4: Demonstrar que, a partir do uso de tecnologias na sala de aula, é
possível manter os alunos em um estado positivo de aprendizagem.
4.1 Donuts
4.1.1. Visão Geral
Como ambiente para utilização do bot, o aplicativo Telegram foi escolhido por ser um
software popular entre usuário de smartphone e possuir uma API pública e apropriada
para o desenvolvimento de bots. Além disso, é um aplicativo de mensagens gratuito e
pode ser utilizado em múltiplos dispositivos ao mesmo tempo. Possui clientes para os
principais sistemas móveis, web e desktop. É possível enviar mensagens de texto, fotos,
vídeos e arquivos de qualquer tipo, criar grupos de conversação, canais de broadcast e
bots. Estes são aplicativos que funcionam dentro do Telegram e usuários podem
interagir com bots enviando mensagens. Este trabalho utiliza a Bot API do Telegram
para criar o Donuts: um bot em forma de perguntas e respostas para apoio ao
ensino/aprendizagem de Construção de Algoritmos.
Vale salientar que a Bot API do Telegram possui muitos recursos, como bots
que interagem em grupos, com múltiplos usuários ao mesmo tempo e também bots de
pesquisa, chamados inline bots, que pesquisam mídia na internet (imagens, gifs e
vídeos) ao serem solicitados pelo usuário. Apesar da vasta gama de funcionalidades,
130
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Donuts utiliza somente interação por mensagens de texto e botões, e interage
individualmente com cada usuário.
4.1.2. Questões
Ao interagir com o bot, o usuário é desafiado a responder questões. Donuts utiliza um
sistema de dificuldades, baseado em níveis. Acertando questões, o usuário ganha
pontuação e, ao atingir uma determinada pontuação, avança de nível, abrindo um leque
de novas questões que podem ser desafiadas. Ao todo, são 34 questões sobre
Construção de Algoritmos, dentre eles, Conceitos de Algoritmos, Variáveis e Tipos,
Operações e Expressões, e Entrada e Saída de Dados.
As questões perguntadas por Donuts são sempre objetivas e compostas de
enunciado e quatro alternativas (a, b, c e d), com somente uma resposta correta. Ao errar
uma questão, Donuts gerará uma nova, de forma aleatória, que será enviada para o
usuário; questões respondidas de forma errada podem vir a ser desafiadas novamente,
conforme o usuário for progredindo.
4.1.3. Níveis
Como um aspecto de gamificação, Donuts possui níveis. Usuários começam no
primeiro nível e, ao atingir uma determinada pontuação, avançam. Vale salientar que os
níveis têm como objetivo proporcionar uma sensação de progresso e reforçar o lúdico,
não tendo, assim, correlação com a realidade. São eles: Novato (0 ponto), Aprendiz de
Programador (25 pontos), Programador (76 pontos), Maratonista (130 pontos), Mestre
do código (200 pontos). Contabilizando uma pontuação perfeita em todas as questões,
um usuário atingiria um total de 249 pontos; já o pior desempenho seria de 62 pontos,
sendo, assim, incapaz de alcançar o nível Programador.
4.1.4. Implementação
A arquitetura é baseada no modelo cliente-servidor e é composta por três componentes
principais:

Donuts Cliente: processo que interage com o usuário através de uma interface.
Sendo que um Donuts funciona dentro do aplicativo Telegram, o cliente é a
janela de conversação a qual o usuário pode interagir com ele enviando-o
mensagens;

Servidor Telegram: a troca de mensagens entre Cliente e Servidor é
intermediada pelo Telegram. As mensagens do cliente para o Donuts são
encaminhadas para o servidor do Telegram. Esse, por fim, encarrega-se de
repassa-las para o bot.

Donuts Servidor: responsável por receber as mensagens encaminhadas pelo
servidor do Telegram e respondê-las de forma apropriada.
As conversações entre Donuts Cliente e Donuts Servidor podem ser de dois
tipos, conforme:

Comando: mensagem de texto que inicia com “/” e tem como objetivo executar
uma determinada ação. São eles: start (início da conversação entre um usuário e
o bot) e rank (pede que o bot retorne a classificação de pontuação dos usuários).

Mensagem: Todas as demais mensagens de texto. Uma mensagem pode ser
composta de diferentes informações, tais como Questões, Resposta de questão,
Indicação de Resposta, Pontuação, Indicação de avanço de nível.
131
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
A Figura 1 representa o diagrama de sequência de uma conversação entre um
usuário e o Donuts, de acordo com os passos: 1) Primeira interação do usuário com o
bot. O comando /start é enviado e é feito o registro do usuário. Em seguida, o bot inicia
as perguntas e respostas, enviando a primeira questão; 2) A questão é recebida pelo
usuário como uma mensagem de texto; 3) Ao ler o enunciado e analisar as alternativas,
o usuário responde a alternativa que julga ser a correta; 4) Recebendo a alternativa, o
bot começa a compor a mensagem de retorno. Tal mensagem é uma concatenação de
diferentes informações. São elas: indicativo de mensagem correta ou errada, pontuação
(se usuário acertou a questão), indicativo de avanço de nível (se usuário passou de
nível) e nova questão a ser perguntada; 5) O usuário deseja saber a classificação atual,
enviando o comando /rank; 6) O usuário recebe a classificação.
Figura 1: Diagrama de Sequência do Donuts
Como forma de garantir a persistência das informações, o servidor conta com
um pequeno banco de dados que armazena os usuários e questões e seus respectivos
níveis, assim como as questões respondidas por cada usuário.
4.1.5. Funcionamento
A seguir é apresentado o Donuts funcionando em um smartphone Lumia 630 com
Windows Phone 8.1 e Telegram 1.23.9.0. É possível acessar e começar a interagir em
qualquer dispositivo que já possua o Telegram instalado, basta acessar o endereço
https://telegram.me/DonutsBot pelo navegador web do dispositivo. Ao primeiro contado
com Donuts, será apresentado uma breve introdução, como mostra a Figura 2A.
Depois de iniciado, Donuts começará a enviar as perguntas. Para auxiliar nas
respostas, o bot conta com um teclado de alternativas. Onde é possível enviar a
alternativa escolhida apertando o botão relacionado a ela, como mostra a Figura 2B.
Outrossim, é possível ver a questão descrita na tela e teclado, na parte de baixo, com
quatro botões: um para cada alternativa. Clicar em um botão envia automaticamente a
alternativa selecionada como resposta e o processo continua, conforme descrito nas
seções anteriores.
132
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
(A)
(B)
Figura 2: Telas do Donuts
4.1.6. Tecnologias utilizadas
O Donuts foi totalmente escrito na linguagem Python, versão 2.7. Sendo essa uma
linguagem de script, de altíssimo nível, orientada a objetos, interpretada e
multiplataforma. Também foi utilizado o wrapper Python Telegram Bot uma vez que
esse agiliza o desenvolvimento, pois encapsula a API oficial do Telegram e provém
funcionalidades que podem ser estendidas. Para o banco de dados foi utilizado o ObjectRelational Mapping (ORM) Peewee. Um ORM, é um framework ou um conjunto de
classes que permite que você faça este trabalho sem precisar escrever códigos de
conexão com o banco, nem é necessário escrever consultas diretamente em SQL,
preservando as características de orientação a objetos da linguagem face à natureza
relacional dos bancos de dados atuais [OKANO, 2015]. Peewee possui suporte para os
bancos de dados SQLite, Postgresql e MySQL. O banco escolhido para o Donuts foi o
SQLite.
5. Estudo de Caso
O estudo de caso do Donuts foi realizado em uma disciplina de Construção de
Algoritmos, com alunos do segundo período do curso de Ciência da Computação em
uma Universidade Pública. A disciplina possui 26 alunos e, dentre eles, 15 utilizaram o
Donuts dentro do período definido. Os alunos, ao serem apresentados ao Donuts,
mostraram-se bastante empolgados e curiosos. Quando começaram a utilizar, notou-se
que eles respondiam as questões muito rapidamente e logo acabavam. Muitos
perguntaram se era possível começar de novo a partir do início, apagando todo o
progresso.
Com relação ao desempenho dos alunos na ferramenta, 12 alunos completaram
todas as questões, e a média entre eles foi de 203,6 pontos, o que equivale a 81,7% da
pontuação total, que é de 249 pontos. Ao término do estudo de caso, os alunos
receberam um questionário que utilizaram para avaliar o bot de acordo com suas
opiniões. O questionário é composto de 10 afirmações e o aluno deveria avaliar o
quanto concorda ou discorda das seguintes afirmações:
133
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
Tabela 1: Afirmações do questionário de avaliação
No início, me interessei pela ideia apresentada
O conteúdo do bot é compatível com o da disciplina
O funcionamento do bot está adequado ao meu jeito de aprender
Foi fácil entender o bot e começar a utilizá-lo como material de estudo
Ao passar pelos níveis do bot, senti que estava aprendendo
Já utilizo outros aplicativos para aprender
O bot promove competição entre as pessoas que participam
Gostei da ideia de ter níveis, pontuação e classificação geral
O bot me incentivou a estudar Construção de Algoritmos
Gostaria de utilizar este bot em outras disciplinas
Análise dos resultados
A seguir são apresentados os dados coletados resultando da aplicação do questionário de
avaliação.
A respeito da afirmação A1, a maioria dos alunos respondeu que se interessou
pela ferramenta desde o início, quando foi apresentada. Nela, 54% dos alunos
concordaram fortemente; 31% concordaram e partes e 15% mostraram-se indiferentes.
Este item foi a confirmação da experiência vivida em sala de aula que os alunos, ao
serem apresentados ao Donuts, mostraram-se interessados e curioso com relação à
ferramenta. A A2 avalia a opinião dos alunos sobre compatibilidade de conteúdos entre
o Donuts e a disciplina ministrada no curso. Neste item, 69% dos alunos concordaram
fortemente e 31% dos alunos concordaram em partes. Assim, é possível afirmar que o
conteúdo abordado pelo bot pertence e está compatível com a disciplina de Construção
de Algoritmos. Mesmo assim, alguns alunos comentaram que as questões estavam
fáceis e sugeriram adicionar outras com níveis mais altos, o que constitui um objetivo
futuro.
A A3 os alunos avaliaram se a metodologia do bot, de perguntas e respostas,
está adequada a forma como eles costumam aprender. Os resultados foram que 69%
concordaram fortemente; 16% concordaram em partes e 15% discordaram em partes. A
A4 avalia a opinião dos usuários sobre a facilidade de utilizar o bot. Avaliando, assim, a
sua interface e usabilidade. Dos alunos, 69% concordaram fortemente; 15%
concordaram em partes; 8% foram indiferentes e 8% discordaram fortemente.
Analisando os resultados, 84% dos alunos acharam a interface do bot fácil de se utilizar,
mas sendo que o Donuts não possui um tutorial inicial que ensina ao usuário como
utilizá-lo, é normal que parte deles tenham dificuldade.
A afirmação A5 busca saber se os estudantes aprendem ao responder as
questões desafiadas. Nela, 54% concordaram fortemente; 30% concordaram em partes e
16% foram indiferentes. Este resultado é um indicativo de que os alunos aprenderam ao
utilizar o Donuts, mas não é possível afirmar, já que não existem dados do
conhecimento prévio dos alunos que possam ser comparados ao conhecimento dos
alunos após a utilização. A A6 busca saber se os alunos já utilizam outros aplicativos
para aprender. Os resultados mostraram que 8% concordaram fortemente; 23%
concordaram em partes; 39% indiferentes e 15% discordaram em partes e 15%
discordaram fortemente.
A A7 avalia se os alunos concordam se o Donuts promove uma competição
entre os alunos. Nela, 77% concordaram fortemente e 13% concordaram em partes. A
A8 avalia se os usuários apreciaram a gamificação do Donuts. Nela, 100% concordaram
fortemente. A A9 é de grande importância para esta pesquisa; ela avalia se os alunos se
134
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
motivaram a estudar Construção de Algoritmos. Nela, 54% concordaram fortemente;
38% concordaram em partes e 8% foram indiferentes. Conforme os resultados, é
possível afirmar que o Donuts cumpriu o papel de motivar os alunos, embora ainda haja
espaço para melhoras. A A10 avalia se a experiência de utilizar o Donuts foi prazerosa a
ponto de os alunos desejarem utilizar este modelo em outras disciplinas. Os resultados
foram que 84% concordaram fortemente e 16% concordaram em partes.
Embora seja muito precipitado afirmar que este bot possa ser integrado ao
ensino regular da disciplina, é possível dizer que esta pesquisa se encontra em um
caminho válido para tal. Mesmo não sendo possível afirmar que Donuts, por si só, fez
com que os alunos aprendessem, o bot obteve sucesso em manter os alunos motivados
através da gamificação e que, a partir do uso de tecnologias na sala de aula, é possível
manter os alunos em um estado positivo de aprendizagem.
6. Considerações Finais
Este trabalho apresentou uma proposta de um bot como instrumento facilitador do
processo de ensino/aprendizagem de Construção de Algoritmos. Para isso, foi realizada
uma pesquisa de trabalhos e tecnologias, relacionadas e utilizadas recentemente para o
apoio ao ensino dentro da sala de aula, fundamentais para este trabalho. Com a
utilização do Telegram, foi possível atingir a todos os requisitos exigidos para o
funcionamento do projeto, tais como: fácil acesso ao bot; comunicação com o servidor;
persistência dos dados; capacidade de utilizar e continuar o progresso por qualquer
dispositivo que possua Telegram e acompanhamento do progresso próprio e dos outros
usuários.
O estudo de caso realizado possibilitou validar esta proposta de diversificação
de como os alunos cursam uma disciplina. Entre os benefícios, estão: atrair a atenção
dos alunos, engajando-os e motivando-os; tornar as atividades mais envolventes e
atrativas, por meio de uma competição saudável; e proporcionar um auxílio ao professor
e ao aluno, em seu aprendizado.
Sendo assim, o uso de bots de perguntas e respostas pode ser livremente
explorado em disciplinas que possuam um forte cunho teórico e de conhecimento
progressivo, em que os assuntos estudados são construídos sobre conteúdos e
disciplinas anteriores, principalmente naquelas que auxiliam no desenvolvimento de
software que, apesar de serem, em partes, práticas, também exigem que os alunos
possuam uma robusta base teórica e, até mesmo, como um instrumento de preparação
para o Exame Nacional para Ingresso na Pós-Graduação em Computação (POSCOMP),
abordando questões de provas passadas.
Referências
Alencar, G. A., Pessoa, M. dos S., Santos, A. K. de F. S., Carvalho, S. R. R. de, Lima,
H. A. de B.. WhatsApp como ferramenta de apoio ao ensino. In: Latin American
Conference of Learning Objects (LACLO), 2015. Maceió. Anais do LACLO 2015.
p. 787-795
Castro, I.. Mobile Learning: as tecnologias móveis e a educação. 2014. Disponível em:
< http://www.intermidias.com.br/mobile/mobile-learning/>. Acesso em: 13 abr.
2016.
135
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Dicheva, D., Dichev, C., Agre, G., Angelova, G.. Gamification in Education: A
Systematic Mapping Study. Educational Technology & Society, 18 (3), 2015. p. 7588.
Hermes, F.. 6 perguntas para entender o quão estúpida é a proposta que visa limitar a
sua internet fixa. 2016. Disponível em: < http://spotniks.com/6-perguntas-paraentender-o-quao-estupida-e-a-proposta-que-visa-limitar-a-sua-internet-fixa>.
Acesso em 12 abr. 2016.
Iepsen, E. F M., Bercht, E. Reategui, E. Persona-Algo: Personalização dos Exercícios de
Algoritmos auxiliados por um Agente Afetivo. In: Simpósio Brasileiro de
Informática da Educação (SBIE), 2010. Anais do SBIE 2010.
Iepsen, E. F.. Ensino de Algoritmos: Detecção do Estado Afetivo de Frustração para
Apoio ao Processo de Aprendizagem. 2013. 157 p. Tese (Doutorado em Informática
na Educação) – Universidade Federal do Rio Grande do Sul.
Fardo, M. L. Conjectura: Filos. Educ., v. 18, n. 1, Caxias do Sul, 2013. p. 201-206,
jan./abr.
Martins, R. dos S.. O Uso das Tecnologias de Informação e Comunicação na Educação.
2012. Disponível em: <http://escolabakhita.com.br/educacao/o-uso-das-tecnologiasde-informacao-e-comunicacao-na-educacao>. Acesso em 6 mar. 2016.
Medeiros, H. E. G. B.. Desenvolvimento de um aplicativo móvel para informatização do
cartão da gestante baseado na plataforma Android. 2014. 46 p. Trabalho de
Conclusão de Curso – Universidade do Estado do Rio Grande do Norte.
Nascimento, J. K. F. do. Informática aplicada à educação. Capacitação de funcionários.
I. Título. II. Universidade de Brasília, Centro de Educação a Distância. 2007.
Okano, M.. Análise dos melhores ORM (Object-Relational Mapping). 2015. Disponível
em
<http://www.devmedia.com.br/analise-dos-melhores-orm-object-relationalmapping-para-plataforma-net/5548>. Acesso em: 30 mar. 2016.
Oliveira, E. D. S. de, Hercilio, M. S., Anjos, E. G. dos, Dias, J. J. L. J., Leite, J. E. R.,
Oliveira, F. S.. Experiência de uso de WhatsApp como Ambiente Virtual de
Aprendizagem em um curso a distância. In: Workshop de Informática na Escola
(WIE), 2014, Dourados. Anais do WIE 2014. p. 179-183.
Raab, A. L. A., Jesus, E. A., Hodecker, A., Pelz, F. Avaliação do Feedback Gerado Por
um Corretor Automático de Algoritmos. In. Simpósio Brasileiro de Informática na
Educação (SBIE), 2015, Maceió. Anais do SBIE 2015. p. 358-366.
Silva, L. F. , Oliveira, E. D., Bolfe, M.. Mobile Learning: Aprendendo com mobilidade.
2013.
Weinberg, M.. A escola que funciona. Veja, n. 2469, p. 11-18, 16 mar. 2016. Entrevista
concedida à Katherine Merseth.
136
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
A Utilização da Linguagem LOGO de Programação como
Ferramenta Colaborativa no Processo Ensino­Aprendizagem.
Cynthia Moreira Maia, Maria Luíza Santos da Silva, Jacimara Villar Forbeloni
PET Conexões Comunidade do Campo – Universidade Federal Rural do Semi ­
Árido (UFERSA) – Campus de Angicos 59515­000 – Angicos – RN – Brasil
[email protected], [email protected],
[email protected]
Abstract. The LOGO programming language is characterized by helping
children in their educational process, based on this, fellows and volunteers
PET Conexões Comunidades do Campo ­ UFERSA underwent a procedure
for developing knowledge through training and planning contents to apply the
knowledge to the children of the School Espedito Alves, Angicos ­RN. The
Short course aimed to provide new ways of learning of the contents taught in
the classroom where school teachers highlighted the need for cooperation in
mathematics and Portuguese content. Despite the structural difficulties of the
school, the Short Course was successful in its application.
Resumo. A linguagem de programação LOGO se caracteriza por auxiliar as
crianças no seu processo educacional, com base nisso, os bolsistas e
voluntários do PET Conexões Comunidades do Campo ­ UFERSA passaram
por um processo de elaboração do saber, por meio de formação e
planejamento de conteúdos para aplicar os conhecimentos com as crianças
da Escola Espedito Alves, Angicos­RN. O Minicurso teve como objetivo
proporcionar novos meios para aprendizagem dos temas ministrados em sala
de aula, onde os professores da escola destacaram a necessidade de
cooperação nos conteúdos de matemática e português. Apesar das
dificuldades estruturais da escola, o Minicurso obteve êxito na sua aplicação.
1. Introdução
Apresenta­se neste trabalho a utilização do LOGO como uma ferramenta auxiliadora na
aprendizagem de conteúdos. Para a sua efetivação, os bolsistas e voluntários do PET
Conexões Comunidades do Campo – UFERSA passaram por um processo de formação
na Linguagem LOGO, para a aplicação com crianças no município de Angicos/RN.
Após a formação teórica, os alunos organizaram um curso de pequena duração para as
crianças da Escola Municipal Espedito Alves – Angicos ­ RN. O processo de formação
e a prática se deram com 16 crianças de 8 a 9 anos. Nesse sentido, apresenta­se os
elementos que nortearam a ação e o debate sobre o uso dessa ferramenta na educação.
Foi visto que ela pode servir de instrumento inovador nas práticas pedagógicas,
137
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
transformando o ambiente escolar em recinto mais atrativo, assim comprovando a
importância desta no processo construtivo de conhecimento.
2. Sobre A Linguagem Logo De Programação
A linguagem de programação LOGO foi criada em 1967 em Massachusetts no Institute
of Technology (MIT), Boston E.U.A., pelo Professor Seymour Papert (PAPERT, 1980).
O objetivo dessa linguagem é oportunizar as crianças a aprender com prazer a
programar e assim potencializar a aprendizagem (PAPERT, 1997; SOUZA, 2007).
Segundo Papert (1997, p. 8), a educação tem o papel de “criar os contextos adequados
para que as aprendizagens possam se desenvolver de modo natural”.
De acordo com Valente (1998), a linguagem de programação LOGO apresenta
as seguintes características do ponto de vista computacional: exploração de atividades
espaciais, fácil terminologia e capacidade de criar novos termos ou procedimentos. A
linguagem utilizada no LOGO é uma linguagem simples, fácil de manusear e de criar
novos procedimentos. Desta forma, os comandos básicos tornam­se termos comuns e
essenciais no dia­a­dia da criança, para que assim haja sucesso no domínio da
linguagem.
O uso do computador como ferramenta no processo educacional, permite que as
pessoas dominem conceitos mais profundos de Matemática, Ciências, Linguagem e em
muitas áreas do conhecimento.
De acordo com PAPERT (1985, p. 45).
Os ambientes intelectuais oferecidos às crianças pelas sociedades atuais são
pobres em recursos que as estimulem a pensar sobre o pensar, aprender a
falar sobre isto e testar suas idéias através da exteriorização das mesmas. O
acesso aos computadores pode mudar completamente esta situação. Até o
mais simples trabalho com a tartaruga pode abrir novas oportunidades para
tornar mais acurado nosso ato de pensar sobre o pensar: programar a
tartaruga começa com a reflexão sobre como nós fazemos o que gostaríamos
que ela fizesse; assim, ensiná­la a agir ou pensar pode levar­nos a refletir
sobre nossas próprias ações ou pensamentos.
O curso de LOGO proposto para as crianças seguiu essa lógica com a realização
de atividades que visam possibilitar um ambiente escolar mais atrativo e assim
contribuir de maneira satisfatória na aprendizagem das disciplinas ministradas na sala
de aula, trabalhando na pratica os conceitos ensinados.
2.1. Comandos Básicos do LOGO
O LOGO utiliza como instrumento visual a imagem de uma tartaruga como uma espécie
de objeto a ser manipulado. Isto facilita a condução das atividades, conduzindo o
usuário a manipular a tartaruga em diferentes sentidos e ângulos, sendo possível a partir
de alguns comandos básicos como mostra na Tabela 1.
Tabela 1. Comandos Básicos do LOGO. Fonte: (Oliveira, 2014).
COMANDO
VALOR
AÇÃO
PF
Pixel
Anda para frente
138
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
PT
Pixel
Anda para trás
PE
Graus
Gira para esquerda
PD
Graus
Gira para direita
REPITA
Número
Repetir comandos
Os comandos mais utilizados no LOGO são PF (para frente) e PT (para trás) que
irão se movimentar de acordo com a quantidade estabelecida, PE (para esquerda) e PD
(para direita) que irão girar de acordo com o grau especificado, e o REPITA que irá
repetir o número de vezes o comando estipulado pelo usuário. Outros comandos básicos
são: UN (Use Nada) fazendo com que a tartaruga se movimenta sem deixar traços. UB
(Use Borracha) que apaga traço da tartaruga na tela. UL (Use Lápis) que retorna a
movimentar­ se desenhando os traços. DT (Desapareça Tat) onde a tartaruga fica
invisível. AT (Apareça Tat) faz com que a tartaruga volta a ser visível. TAT limpa a
tela, recoloca a tartaruga no centro da tela.
No processo de comandar a tartaruga para ir de um ponto a outro, estes
conceitos devem ser explicitados. Isto fornece as condições para o
desenvolvimento de conceitos espaciais, numéricos, geométrico, uma vez
que a criança pode exercitá­los, depurá­los e utilizá­los em diferentes
situações. (Valente, 1998, p. 19).
3. Formação dos Estudantes
O trabalho de formação foi iniciado com os participantes do PET – Conexões
Comunidades do Campo – UFERSA. Foram 12 estudantes do curso Bacharelado em
Ciência e Tecnologia e Bacharelado em Sistemas de Informação. Os processos
utilizados na formação foram voltados para pesquisa e extensão, envolvendo os aspectos
teóricos e didáticos sobre o LOGO, desenvolvendo­se um material didático para a
aplicação com as crianças de modo colaborativo.
O objetivo central do material foi de auxiliar os estudantes para a aplicação dos
conceitos com as crianças, onde cada estudante precisou pesquisar e criar estratégias
didáticas. Destaca­se a conscientização da necessidade do planejamento e da
responsabilidade com a construção do conhecimento, pois os mesmos sentiram­se
preparados e direcionados para ministrar o curso. O planejamento teve o auxilio dos
professores da escola, pois estes ajudavam fornecendo os conteúdos que estavam
ensinando em sala de aula para, assim, os estudantes elaborarem suas aulas com base
nos assuntos destacados. Os professores ressaltaram a importância na matemática das
operações aritméticas e no português a listagem de palavras e solicitaram para
relacionar esses assuntos com o tema de reciclagem já que estariam na semana do lixo
no período de aplicação do curso.
A elaboração do planejamento didático do curso abrangeu conceitos
introdutórios do LOGO, os comandos básicos, as figuras geométricas, a estrutura repita,
operações aritméticas e ao final foi realizado exercícios de fixação dos assuntos que
foram ministrados ao longo das aulas.
139
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 1. Formação dos estudantes
4. Aplicação Do Logo Na Escola
A aplicação do LOGO na Escola Municipal Espedito Alves se deu com 16 crianças de 8
a 9 anos. O período de realização do curso efetuou­se no contra turno de aulas das
crianças no turno da tarde já que as mesmas estudam pela manhã, sendo ministradas
quatro aulas com duração de uma hora e meia cada aula. Foram ensinados às crianças os
conceitos do LOGO e os seus comandos, auxiliando­os nos computadores da escola já
que a maioria das crianças tinham dificuldades em manusear o computador, por não
terem de forma acessível acesso a tecnologia.
Figura 2. Estudante ensinando o conceito do LOGO
Figura 3. Estudantes auxiliando as crianças no manuseio do computador.
140
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
O primeiro desafio encontrado foi superar a noção de falta de estrutura física,
uma vez que os computadores da escola eram vistos pela gestão escolar como não
apropriado para a aplicação da formação, além de um ambiente muito pequeno. Mesmo
com essas dificuldades, o programa SLOGO (SuperLogo) foi instalado nos
equipamentos, e dos dez computadores, oito puderam ser utilizados, atendendo
perfeitamente a demanda do curso. O segundo desafio, foi a falta de experiência dos
bolsistas e voluntários em relação à didática, pois nunca tiveram contato com sala de
aula antes do projeto LOGO na escola, mas ao decorrer do Minicurso esse desafio
tornou­se um estímulo para cada um que ali aplicara as aulas.
Ao começar às aulas, os alunos puderam aprender a parte teórica e lógica da
linguagem, as crianças foram aprimorando seus conhecimentos na prática, com
atividades que despertaram o interesse das crianças, comprovando que a utilização da
ferramenta LOGO é um excelente meio de aprendizagem dos conteúdos desenvolvidos
no ambiente escolar. As atividades tinham como propósito central proporcionar um
ambiente mais atrativo, despertar o raciocínio lógico das crianças, estimular sua
criatividade, e que estas percebessem que existem diferentes formas de resolver uma
situação onde cada pessoa pode ter um pensamento diferente, porém o objetivo central a
ser alcançado é o mesmo, independente do caminho que cada um resolveu seguir.
Aqui, o erro deixa de ser uma arma de punição e passa a ser uma
situação que nos leva a entender melhor nossas ações e
conceitualização. É assim que a criança aprende uma série de
conceitos antes de entrar na escola. Ela é livre para explorar e os erros
são usados para depurar os conceitos e não para se tornarem a arma do
professor. (CORREIA, 2005, p. 35).
A imagem 4 mostra as atividades desenvolvidas pelas crianças, onde cada
criança teve a criatividade de elaborar desenhos com formas e cores diferentes.
Figura 4. Criança desenvolvendo atividade do LOGO
Algumas das atividades do LOGO que foram realizadas:
a) Desenhar um Quadrado:
[pf 100 pd 90 pf 100 pd 90 pf 100 pd 90 pf 100 ]
141
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 5. Desenho de um quadrado
b) Desenhar uma flor com o repita:
Repita 7 [Repita 90 [pf 1 pd 1] pd 90 Repita 90 [pf 1 pd 1] pd 40]
Figura 6. Desenho de uma flor
c)
Fazer a Letra M:
[PD 90 PF 20 PE 90 PF 100 PD 120 PF 50 PE 30 PF 20 PE 30 PF 50 PD 120 PF 100
PE 90 PF 20 PE 90 PF 120 PE 90 PF 20 PE 30 PF 50 PD 30PF 20 PD 30 PF 50 PE 30
PF 20 PE 90 PF 120]
Figura 7. Desenho de uma letra
5. Avaliação das Crianças
Para perceber o impacto da atividade, desenvolveu­se um instrumento avaliativo,
aplicado com as crianças participantes. Cerca de 88% das crianças responderam que não
tinham computador em casa, e 50% enfatizou que tinha acesso a computadores fora do
ambiente escolar. Com isso, todos eles destacaram que gostariam de continuar com as
142
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
aulas sobre a linguagem LOGO, pois, além de ser uma atividade recreativa, elas, acima
de tudo, aprendiam brincando.
De acordo com o questionário, as crianças salientaram que o que mais
gostaram no LOGO foi jogar e desenhar, e não tiveram muitas dificuldades no manuseio
do programa, mas alguns relataram que não sabiam manipular o computador, por falta
de acesso as tecnologias de informação, porém isso não foi empecilho para o
desenvolvimento do Minicurso, pois logo pegaram a prática na ferramenta. As crianças
também destacaram que o que gostariam de continuar fazendo com o LOGO seria jogar,
fazer atividades escolares, desenhar e aprender mais coisas novas sobre a linguagem.
Tabela 2. Respostas das crianças relacionadas ao questionário.
Acesso ao
computador
em casa
Acesso ao
computador
em outro local
Gostariam de
Já usaram a sala Dificuldades em
continuar com as de computadores aprender o LOGO
aulas do LOGO da escola antes do
minicurso
2
8
16
16
7
143
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
144
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
As atividades desenvolvidas com as crianças mostraram que, além de ser um
instrumento divertido, o LOGO faz com que estas estimulem sua criatividade,
produzindo os interesses que cada um deseja realizar no computador, desenvolvendo
assim o raciocínio lógico e como resultado a efetivação dos conhecimentos.
O computador passa a ser utilizado como uma ferramenta educacional que nos
possibilita vivenciar novas situações de aprendizagem onde o próprio aluno é
agente ativo na sua aprendizagem e o professor passa a ser um facilitador deste
processo. A linguagem LOGO contribui para que o aluno possa desenvolver sua
criatividade, refletir sobre o próprio erro, trocar informações com seus colegas de
forma mais crítica, ativa e atualizada. (Em Aberto, 1993, p. 95).
6. Avaliação dos Estudantes
O projeto do LOGO desenvolvido pelo PET conexões Comunidades do Campo teve um
papel fundamental para o crescimento dos bolsistas e voluntários, pois além de ser um
projeto de extensão gratificante, onde os estudantes tiveram contato diretamente com as
crianças humildes e de baixa renda da cidade de Angicos – RN, os mesmos puderam ter
a sensação de poder ajudar, brincar, e acima de tudo, passar o conhecimento adquirido
sobre o tema. A alegria das crianças, do começo ao fim do curso, foi gratificante para
todos.
Em avaliação coletiva, todos os participantes disseram que a aproximação com a
prática pedagógica despertou uma qualidade de educador, algo que viam como distante
das possibilidades de sua formação, uma vez que os participantes são oriundos dos
cursos de Bacharelado em Ciência e Tecnologia e Bacharelado em Sistemas de
Informação, ambos, sem a ênfase do conhecimento didático, tendo pela primeira vez, o
contato com as práticas pedagógicas, percebendo as etapas do processo ensino­
aprendizagem e sua importância. “Quem ensina aprende ao ensinar e quem aprende
ensina ao aprender” (FREIRE, 1998, p.25).
Como forma de avaliar os beneficios e as experiências obtidas pelos estudantes,
foi utilizado uma ferramenta para análisar os pontos fortes e fracos da aplicação do
LOGO, chamada Análise FOFA. A análise permitiu identificar informações relevantes,
com a finalidade de ressaltar os pontos fortes e corrigir os pontos fracos.
Os pontos fortes observados foram: união da equipe, os bolsistas destacaram que
o trabalho em equipe possibilitou uma aproximação maior entre eles, podendo
identificar caracteristicas próprias de cada um no decorrer da aplicação. Outro ponto
forte foi o interesse e envolvimento dos participantes, entre alunos e professores da
escola. O planejamento das aulas foi outro ponto, pois os mesmos perceberam a
importância de se realizar um planejamento, organizando o conteúdo abordado de forma
a atingir o êxito no processo ensino­aprendizagem, destacando a importância de se
conhecer o público­alvo e realizar o planejamento baseado nestes. Outro ponto foi a
solicitação dos alunos e professores para o retorno da aplicação do LOGO na escola. Já
os pontos fracos identificados foram: A estrutura fisica da escola, os estudantes tiveram
que realizar a aplicação com a falta de agua na escola, como tambem a falta de
equipamentos que eram necessarios, como exemplo, alguns teclados estavam com
defeitos e alguns computadores não estavam funcionando. Outro ponto fraco analisado
foi a falta de conhecimentos por parte de alguns alunos, já que não conseguiam
145
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
acompanhar a aplicação pois tinham dificuldades na escrita e nos números. A
inexperiência com didática por parte dos estudantes e a adaptação do planejamento de
acordo com a realidade da escola, para encaixar as datas da aplicação de acordo com os
dias possíveis da escola foram outros pontos identificados pelos estudantes.
Referências
CORREIA, Luiz Henrique Andrade; SILVA, Alexandre José de Carvalho. Computador
Tutelado. Lavras: UFLA/FAEP, 2005.
EM ABERTO, Brasília, ano 12, n. 57, jan./mar.1993.
FREIRE, Paulo. Pedagogia da autonomia: saberes necessários à prática educativa. 9
ed. São Paulo: Paz e Terra, 1998.
OLIVEIRA, C.: Linguagem Logo. 2014. Disponível em <http://slideplayer.com.br
/slide/1639425> Acesso em: 01 set. 2016.
PAPERT, S. A família em rede: ultrapassando a barreira digital entre gerações. Lisboa:
RelógioD’ÁguaEditores, 1997.
PAPERT, S. Mindstorms ­Children, Computers, and Powerful Ideas. New York: Basic
Books. 1980.
PAPERT, Seymour. Logo: Computadores e Educação. Editora brasiliense s.a. 1985, São
Paulo. Disponível em <https://repositorium.sdum.uminho.pt/bitstream/1822/3971/
3/CORPO%20DA %20TESE.pdf > Acesso em: 09 jan. 2015
SOUZA, A. F. A maior vantagem competitiva é a habilidade de aprender. Disponível
em:<http://www.dimap.ufrn.br/~jair/piu/artigos/seymour.html> Acesso em: 08 jan.
2016.
VALENTE,J. A. (Org). Computadores e conhecimento: Repensando a Educação.
UNICAMP/ Núcleo de Informática Aplicada à Educação (NIED), Campinas, São
Paulo, 1998.
146
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
O avanço das publicações sobre as Linguagens de
Programação Gráfica no Processo de EnsinoAprendizagem: uma Revisão Sistemática da Literatura
focalizada no SBIE
Alexandre R. Caitano1, Rommel W. de Lima1, Edjane M. S. de Azevedo2
1
Programa de Pós-graduação em Ciência da Computação (PPgCC) - UERN/UFERSA
CEP 59600-000 – Mossoró – RN – Brasil
2
Programa de Pós-graduação em Cognição Tecnologias e Instituições (PPgCTI) UFERSA
CEP 59600-000 – Mossoró – RN - Brasil
{alexandrercaitano,rommel.lima}@gmail.com, [email protected]
Abstract. This article introduces the implementation of a systematic review of the
literature (SRL) focused on studying the progress of publications on the graphical
programming languages in the process of teaching and learning. The research in
question is aimed at see the state of the art of these publications in the Annals of the
Brazilian Symposium of Informatics in Education (SBIE) between the years 2007 and
2016. The results presented by the analysis guide the practice of actions and research
designed and implemented by the authors.
Resumo. Este artigo apresenta a implementação de uma revisão sistemática da
literatura (RSL) focada em estudar o avanço das publicações sobre as linguagens de
programação gráfica no processo de ensino e aprendizagem. A pesquisa em questão
visa enxergar o estado da arte das publicações presentes nos anais do Simpósio
Brasileiro de Informática na Educação (SBIE) entre os anos de 2007 e 2016. Os
resultados apontados pela análise nortearão a prática de ações e pesquisas
projetadas e executadas pelos próprios autores.
1. Introdução
A sociedade atual vem passando por diversas mudanças, ressaltando o domínio e a
produção do conhecimento que vêm sendo abalizadas pela influência dos novos recursos
tecnológicos da informação e comunicação, que possibilitam a criação de espaços
interativos para o aprendizado e aquisição de novas competências (GIRAFFA, 2009). A
autora ressalta a presença dos novos recursos tecnológicos da informação e comunicação
nos tempos hodiernos que, de certa forma, contribuem para a produção de conhecimento.
Dentro do contexto educacional, nota-se que são encontrados diversos desafios
aos quais devem, necessariamente, ser transpostos a fim de uma implementação de ações
que chamem atenção do aluno, ou mais do que isso, que possibilitem uma melhor
construção do conhecimento. Em alguns casos, o educador tem, até mesmo em
decorrência de sua formação acadêmica, a visão de que sua única função é repassar o
conteúdo programático, sem se dar conta no real aprendizado do educando, sem buscar
alternativas que possam vir a possibilitar uma melhora no processo de ensino e
147
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
aprendizado. Sobre a utilização dos novos recursos tecnológicos da informação e
comunicação no contexto escolar, Kenski (2012) vem afirmar que:
A imagem, o som e o movimento oferecem informações mais realistas
em relação ao que está sendo ensinado. Quando bem utilizadas
provocam alteração dos comportamentos de professores e alunos,
levando-os ao melhor conhecimento e maior aprofundamento do
conteúdo estudado. As tecnologias comunicativas mais utilizadas em
educação, porém, não provocam ainda alterações radicais na estrutura
dos cursos, na articulação entre conteúdos e não mudam as maneiras
como os professores trabalham didaticamente com seus alunos.
(KENSKI, 2012, p. 45).
Ainda hoje no contexto escolar, mesmo estando alicerçado em uma sociedade
imersa em tecnologias digitais, há uma ausência de inclusão da computação enquanto um
instrumento de auxílio no processo de ensino-aprendizagem. A inclusão destes recursos
não precisa necessariamente ocorrer como uma disciplina obrigatória, mas, onde os
aspectos computacionais e informacionais sejam inseridos no contexto da sala de aula
visando a construção de ciência. Sem a construção de práticas que exercitem tais ações,
Bezerra (2014) vem afirmar que isso pode vir a comprometer o entendimento docente
com relação aos trabalhos desenvolvidos pelos profissionais das áreas tecnológicas, e
também, pode vir a limitar as futuras escolhas profissionais destes jovens.
Sobre a utilização dos novos recursos da informação e comunicação na escola, o
Comitê Gestor da Internet no Brasil (CGI) vem realizando pesquisas desde 2010, por
meio de entrevistas e questionários, buscando ouvir alunos, professores e coordenadores
pedagógicos no ensejo de verificar a real situação das tecnologias da informação na
escola. Recentemente, em 2013, foi divulgado o resultado de uma pesquisa que abarcava
o tema sobre o uso do computador e da internet na escola, nela foram indicadas quais as
atividades desenvolvidas com a utilização destes recursos (CGI, 2013), são elas:
atividades de interpretação de texto (em 23% dos professores de instituições públicas);
realização de aulas expositivas (em 31% dos professores de instituições públicas);
realizam exercícios com os alunos (em 30% dos professores de instituições públicas).
Ao ponderar os dados apresentados na pesquisa vê-se que, nestas três principais
atividades desenvolvidas pelos professores na sala de aula, em nenhuma delas é visto
conteúdo voltado para atividades que visem o desenvolvimento do raciocínio lógico, ou
de programação com o uso de aplicativos ou sites. Na grade curricular do ensino básico
não há obrigatoriedade de inserção dos recursos tecnológicos da informação e
comunicação, como ferramenta de apoio pedagógico ou de ciência, por isso, pode
contemplar-se que o uso destes recursos ocorre de forma, mais atrelada a forma
tradicional de ensino, visto que, muitas vezes, os profissionais da educação não receberam
formação adequada para um uso mais diverso, com ações mais específicas, como fazendo
uso de uma linguagem de programação gráfica, em uma aula de matemática, por exemplo.
Analisar a prática pedagógica mediante o uso das tecnologias digitais em sala de
aula, mostra-se, cada vez mais importante. A práxis na ação docente deve ser prática
constante, porém, visualizar a ação docente por meio de pesquisas e produções cientificas
cumprem papel crucial na disseminação das mais diversas práticas.
A presente revisão sistemática emerge do interesse de identificar o avanço das
produções científicas relacionadas ao uso das linguagens de programação gráfica em sala
148
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
de aula, tendo como base de dados os anais do Simpósio Brasileiro de Informática na
Educação (SBIE), decidiu-se ater-se a esta base pelo fato de o SBIE ser um importante
evento nacional relacionado a educação com tecnologias, que, anualmente reúne
estudiosos da área no intuito de discutir, mostrar e fomentar práticas pedagógicas que
utilizem os novos recursos tecnológicos. A revisão das publicações focou-se na
programação gráfica inserida na prática pedagógica como forma de atrair a atenção do
aluno e, possivelmente, facilitar o processo de ensino e aprendizagem, e não apenas no
ato de ensinar o aluno a programar e construir softwares.
Para melhor apresentar o trabalho realizado, o resultado deste artigo organiza-se
do seguinte modo. Na seção 2 é apresentado o método utilizado na revisão sistemática de
literatura; as questões norteadoras da pesquisa; processo de busca; critérios de inclusão e
exclusão; avaliação de qualidade; coleta de dados; análise dos dados; e análise dos artigos.
Na seção 3 encontra-se os resultados gerais adquiridos com a execução da revisão
sistemática. Já na seção 4 são discutidas as questões norteadoras da pesquisa. Na seção 5
são apresentadas as considerações finais.
2. Método
Em meio aos processos existentes para a instauração de uma revisão sistemática, utilizouse do modelo sugerido por Biolchini et al. (2005), que foi baseado nas diretrizes iniciais
sugeridas por Kitchenham (2004), este processo envolve três etapas, são elas:
planejamento da revisão, execução e análise dos resultados (BIOLCHINI et al. 2005).
2.1 Questões de pesquisa
Tendo o SBIE como base de dados para esta pesquisa, foram vistas como assuntos
norteadoras as seguintes questões:
 QP1: Quais linguagens de programação gráficas estão sendo utilizadas no
processo educacional?
 QP2: Quais são as características destas linguagens de programação gráficas?
 QP3: Qual a eficiência destas linguagens de programação gráficas no
processo de ensino-aprendizagem?
 QP4: Como estas linguagens de programação estão sendo utilizadas no
contexto da sala de aula?
2.2 Processo de busca
O processo de busca utilizado nesta revisão usou-se de artigos disponíveis nos anais do
SBIE, publicadas entre 2007 e 2016. O ano de 2007 foi escolhido como início da base de
pesquisa devido ter sido o ano de criação uma das mais conhecidas linguagem de
programação gráfica, o Scratch, pois, segundo constatado em pesquisas anteriores a esta
revisão, após o surgimento desta ferramenta, o uso da linguagem de programação gráfica
foi se popularizando entre estudiosos da área de tecnologias, programação, e até mesmo
da pedagogia. O Simpósio Brasileiro de Informática na Educação foi escolhido como base
de dados para esta pesquisa pela importância e qualidade dos estudos que nela se
encontram, e por incluir tanto trabalhos teóricos quanto práticos nas mais diversas áreas
da informática na educação.
A abordagem de pesquisa ocorreu em uma única etapa, os estudos foram
selecionados baseados em seus títulos, palavras-chave e ano de publicação.
149
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
2.3 Critérios de inclusão e exclusão
A pesquisa ocorreu utilizando-se da ferramenta StArt 3.0 para fazer a busca dos artigos,
tendo como base de dados os anais do SBIE publicados entre os anos de 2007 e 2016.
Para a seleção de inclusão e exclusão dos estudos, foram utilizados os seguintes critérios
apresentados na Tabela 1.
Tabela 1. Critérios de Inclusão e Exclusão dos artigos
CRITÉRIOS DE EXCLUSÃO
CRITÉRIOS DE INCLUSÃO
- Critério de Exclusão 1: Produções que não - Critério de Inclusão 1: Apenas estudos da
são artigos acadêmicos completos (slides, área de Computação aplicada à Educação;
resumos, entre outros);
- Critério de Inclusão 2: Produções
- Critério de Exclusão 2: Produções publicadas entre 2007 e 2016;
publicadas antes de 2007;
- Critério de Inclusão 3: Produções que
- Critério de Exclusão 3: Produções que não transcorram sobre a utilização das linguagens
estejam em conformidade com o objetivo da de programação gráficas e sua aplicação no
pesquisa;
processo educacional;
- Critério de Exclusão 4: Produções que não
apresentem relação com as questões
norteadoras da pesquisa;
- Critério de Inclusão 4: Produções que
mostrem como as linguagens de programação
gráfica estão sendo inseridas no contexto
escolar;
- Critério de Exclusão 5: Produções que
mostrem o ensino de programação, mas sem - Critério de Inclusão 5: Produções que
nenhuma
relação
clara
com
o estejam aptas a contribuir para o alcance das
desenvolvimento do processo de ensino- respostas para as questões norteadoras da
presente pesquisa.
aprendizagem.
- Critério de Exclusão 6: Produções que não
deixem claro como a linguagem de
programação gráfica foi inserida no processo
educacional;
- Critério de Exclusão 7: Produções de
idioma diferentemente de português ou
inglês;
- Critério de Exclusão 8: Produções repetidas.
2.4 Avaliação de qualidade
Para cada artigo foram aplicadas, também, questões de avaliação de qualidade, a fim de
vir a melhor selecionar os estudos que fizeram parte da revisão. Os critérios de avaliação,
foram:




Critério de Qualidade 1: O direcionamento das informações relacionadas as
linguagens de programação gráficas;
Critério de Qualidade 2: O embasamento teórico encontrado na produção;
Critério de Qualidade 3: Validação das utilizações das linguagens de
programação gráficas em sala de aula;
Critério de Qualidade 4: As produções deverão caracterizar de cada uma das
linguagens de programação gráficas mostradas;
150
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações

Critério de Qualidade 5: As produções deverão mostrar como as linguagens
de programação gráficas estão sendo incluídas no contexto escolar.
2.5 Coleta e análise dos dados
Nesta etapa foram extraídos os dados referentes aos artigos que foram selecionados,
foram eles: título, ano, evento, autores, instituições fomentadoras da pesquisa e resumo
de partes principais da produção que visavam responder as perguntas norteadoras da
pesquisa.
3. Resultados
Esta seção apresenta os resultados alcançados pelo estudo.
3.1 Números da pesquisa
As buscas pelas produções baseadas em títulos e palavras-chave, encontrou um total de
125 artigos, destes 125 artigos, 96 deles foram selecionados devido ao ano de publicação,
como mostrado na Tabela 2. Baseado nos critérios de inclusão e exclusão, resultaram dos
96 artigos, 3 foram incluídos e serviram de base para pesquisa. As referências dos artigos
incluídos para a revisão final encontram-se na seção Referências juntamente com as
demais obras utilizadas neste artigo.
Tabela 2. Resultado das buscas
FONTE
SBIE
TOTAL DE
ARTIGOS
ARTIGOS PRÉSELECIONADOS
ARTIGOS
INCLUÍDOS
ARTIGOS
INCLUÍDOS
(%)
125
96
3
3.12%
A Tabela 3 mostra os artigos que foram incluídos para o estudo, eles representam
3,12% das 96 produções que pré-selecionadas.
Tabela 3. Artigos incluídos
ID
TÍTULO
AUTORES
INSTITUIÇÃO
ANO
EANewProg - um editor de
atividades para o ambiente
online
NewProg
TOREZANI,
Carpegieri;
TAVARES,
Orivaldo
Universidade Federal do
Espirito Santo – UFES
2014
02
Um
framework
para
criação de jogos voltados
para
o
ensino de lógica de
programação
MEDEIROS,
Universidade Federal do
Tainá;
BRASIL, Rio Grande do Norte –
Pedrona;
UFRN
ARANHA,
Eduardo
2014
03
Avaliando o Uso da
Ferramenta Scratch para
Ensino
de
Programação através de
Análise Quantitativa e
Qualitativa
BELCHIOR,
Universidade Federal do
Hannah;
Amazonas – UFAM
BONIFÁCIO,
Bruno; FERREIRA,
Rallyson
2015
01
L.
Na Tabela 4 são apresentados o índice de exclusão dos artigos após a aplicação
dos critérios da exclusão e inclusão na revisão. A tabela está dividida em critérios, etapa
151
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
da seleção e mostra o percentual de exclusão baseado no número de artigos referentes
para aquela etapa. Conforme mencionado em etapas anteriores, antes da pré-seleção o
total de artigos era 125, após a aplicação dos critérios de exclusão na pré-seleção ficaram
96, após isso, foi dado continuidade a aplicação dos critérios, resultando na inclusão de 3
artigos na pesquisa.
Tabela 4. Critérios de Exclusão Mais Recorrentes em Cada Etapa
da Seleção
CRITÉRIOS
ETAPA DA
SELEÇÃO
PERCENTUAL DE EXCLUSÃO DE
ARTIGOS NESTA ETAPA (%)
Critério de Exclusão 2:
Produções publicadas antes de
2007;
Pré-seleção
23.2%
Inclusão
96.8%
Critério de Exclusão
Produções repetidas.
8:
Critério de Exclusão 3:
Produções que não estejam em
conformidade com o objetivo
da pesquisa;
Critério de Exclusão 4:
Produções que não apresentem
relação com as questões
norteadoras da pesquisa;
Critério de Exclusão 5:
Produções que mostrem o
ensino de programação sem
nenhuma relação clara com o
desenvolvimento do processo
de ensino-aprendizagem.
Critério de Exclusão 6:
Produções que não deixem
claro como a linguagem de
programação
gráfica
foi
inserida
no
processo
educacional.
PERCENTUAL TOTAL DE ARTIGOS EXCLUÍDOS (%):
97.6%
Os critérios utilizados na primeira etapa serviram como base para a primeira
parte de exclusão e inclusão das produções na revisão. Nota-se que, antes do ano de 2007
o número de publicações sobre as linguagens de programação gráficas era pequeno,
correspondendo a 29 produções identificadas no SBIE.
Na segunda etapa de aplicação dos critérios, os parâmetros que mais
influenciaram na exclusão dos artigos foram aqueles relacionados a temática central dos
artigos, aos objetos e objetivos dos estudos, devido a isso, das publicações não
apresentarem ações que se encaixassem ao que a RSL almejava, ocorreu a exclusão de
96.8% destes artigos que, a priori haviam sido pré-selecionados, restando apenas 3
publicações.
152
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
4. Discussões
Nesta seção são apresentadas as discussões a respeito dos questionamentos que nortearam
a pesquisa.
4.1 Quais linguagens de programação gráficas estão sendo utilizadas no processo
educacional?
Aplicando os critérios de inclusão e exclusão chegou-se a um número de 3 artigos, aos
quais foram lidos completamente e observadas suas características. Foram identificadas
4 linguagens de programação gráficas e um framework, são elas: as linguagens Scratch,
Alice, Greenfoot e Blockly, e um framework o EANewProg.
A leitura das produções apresentou de forma indireta e sem muitos detalhes, as
linguagens Alice e Greenfoot, foram citadas como forma de mostrar a existência de outras
linguagens de programação gráficas, mas, neste caso em especial, foi dado maior
importância a linguagem Scratch, que, atualmente, pode-se afirmar que é uma das mais
conhecidas, junto com as já anteriormente citadas linguagens. O Scratch, que inclusive
foi tomado como base para a definição do período de tempo das publicações buscadas
nesta revisão, encontra-se presente em inúmeras produções cientificas e, vem sendo
estudado, principalmente como forma de iniciar os estudos na área de programação em
cursos de ensino superior.
A linguagem Blockly é um ambiente implementado em HTML 5 e utilizado para
a programação visual, apresenta características bastante parecidas com o Scratch, utilizase de uma técnica visual onde o usuário faz as operações, monta o código, como se
estivesse montando um quebra-cabeças. Identificou-se, nas produções lidas, a existência
de um framework chamado EANewProg, criado especificamente para o ambiente online
NewProg, esta ferramenta veio para aliar-se ao NewProg – desenvolvido no intuito de
auxiliar crianças na aprendizagem inicial de programação –, e ser um editor de atividades
para o NewProg.
4.2 Quais são as características destas linguagens de programação gráficas?
Dentro do processo de leitura das produções foi feita uma avaliação baseada na
especificação que cada artigo dava para as linguagens de programação apresentadas. A
avaliação ocorreu atribuindo-se notas de 0 até 10, baseadas no detalhamento dado a cada
linguagem, as notas foram atribuídas pelos autores, pós isso, foi feito a média das notas,
e montado um gráfico. A fim de haver uma avaliação concisa e adequada, foi avaliado,
como os detalhes são apresentados no texto; se havia exemplos; figuras e ilustrações;
clareza no repasse das informações; e se havia entendimento das especificações.
Nas produções encontradas apresentam-se linguagens de programação gráficas
nas quais podem ser inseridas no contexto educacional, porém, apenas duas delas
possuem um bom detalhamento destas linguagens, conforme vê-se no Gráfico 1.
Gráfico 1. Nível de detalhamento das linguagens de programação citadas
nas publicações incluídas
153
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Scratch
Alice
Greenfoot
Blockly
Durante o processo de análise dos dados e até mesmo durante a leitura dos artigos,
foi visto que as publicações não davam maiores esclarecimentos acerca das linguagens
citadas, apenas as linguagens Scratch e Blockly. O Gráfico 1 foi montado baseado em
valores atribuídos ao nível de detalhamento oferecido nas produções em relação as
linguagens de programação citadas.
Scratch e Blockly trabalham utilizando técnicas visuais de montagem de blocos,
na parte visual são bastante semelhantes. Implementar ações no código fazendo uso de
montagem de blocos visuais pode chamar atenção do aluno, a partir desta ação uma série
de outras possibilidades podem ser exploradas pelo docente no processo educacional.
Os dados da pesquisa não oferecem pormenores a respeito destas linguagens, mas
com os detalhes que são oferecidos o leitor, se houver algum conhecimento na área, pode
ser que se venha a ter um entendimento mais geral sobre o funcionamento destas
ferramentas.
4.3 Qual a eficiência destas linguagens de programação gráficas no processo de
ensino-aprendizagem?
As linguagens de programação apresentadas, apresentam bons motivos para haver
aplicação no contexto da sala de aula, porém, o uso relatado nas três publicações, em
nenhuma delas encontra-se um uso que una o conhecimento de programação em prol da
construção do conhecimento aplicado em outra disciplina, construindo-se ações de
interdisciplinaridade.
O foco das pesquisas incluídas para o processo final, não estão plenamente dentro
do que a pesquisa procurava, pois, buscava-se a inserção destes recursos como sendo mais
uma forma de desenvolver e aprimorar o conhecimento dos educandos.
4.4 Como estas linguagens de programação estão sendo utilizadas no contexto da
sala de aula?
A utilização das linguagens de programação no contexto da sala de aula, segundo os dados
apresentados nas produções estudadas estão sendo inseridas, principalmente para
iniciação em disciplinas voltadas para o raciocínio lógico e algoritmos. Assim sendo, vêse que, no ensino básico, por exemplo, carece de estudos e ações que venham verificar os
benefícios/possibilidades proporcionadas pelo uso destas linguagens na sala de aula.
154
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
5. Considerações finais
Nesta pesquisa foram apresentados artigos buscados nos anais do Simpósio Brasileiro de
Informática na Educação, propondo-se verificar o avanço das pesquisas sobre o uso das
linguagens de programação gráfica em sala de aula, bem como analisar as publicações
dentro desta temática, que tenham sido publicadas no SBIE. Em alguns dos artigos foi
verificado que não constava o ano de escrita da produção, assim sendo, para fins de
organização da revisão, tais artigos sem o ano foram tidos como Não Consta.
Houve um crescimento significativo, no número de publicações relacionadas ao
uso de linguagens gráficas de programação no contexto técnico/acadêmico, o Gráfico 2
ilustra este crescimento.
Gráfico 2. Crescimento das publicações 2007-2016
40
30
20
10
0
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
NÃO
CONSTA
É notável o crescimento do número de produções relacionadas ao uso destas
linguagens de programação, mas também se compreende que os estudos e ações
amparadas nesta temática restringem-se em permanecer arraigadas em cursos técnicos,
ou em sua maioria, na própria universidade. Assim sendo, percebe-se que, existe a
carência da implementação de estudos que tenham como foco principal verificar o uso
das linguagens de programação gráficas no contexto educacional e pedagógico, ou seja,
que não venham necessariamente estudar a introdução do ensino de linguagem de
programação na escola na grade curricular, mas que, sejam utilizados como ferramentas
educacionais no processo de ensino e aprendizagem.
O baixo índice de produções nas quais fossem exploradas atividades pedagógicas
que se utilizassem da programação gráfica, ou visual, como alguns estudiosos preferem
falar, impulsionam o interesse em planejar ações que possam contribuir com a ciência, o
aprendizado e a educação.
Agradecimentos
Os autores agradecem a CAPES pelo apoio a esta pesquisa.
Referências
BELCHIOR, Hannah; BONIFÁCIO, Bruno; FERREIRA, Rallyson. Avaliando o Uso da
Ferramenta Scratch para Ensino de Programação através de Análise Quantitativa e
Qualitativa. In: XXVI Simpósio Brasileiro de Informática na Educação, Maceió,
Alagoas, 2015.
155
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
BEZERRA, F. Bem mais que os bits da computação desplugada. 3º Congresso Brasileiro
de Informática na Educação (CBIE) – Tecnologias Digitais e Educação: Integração,
Mediação e Construção de Conhecimento. Anais do XX Workshop de Informática na
Educação – WIE 2014, Dourados, Mato Grosso do Sul, nov. 2014. Disponível em:
<http://www.brie.org/pub/index.php/wie/article/view/3090/2598>.
Acesso
em:
31/08/2016.
BIOLCHINI, J., MIAN, P. G., NATALI, A. C., and TRAVASSOS, G. H. (2005).
Systematic review in software engineering: Relevance and utility. Technical Report
RT-ES 679/05, PESC/COPPE/UFRJ.
BUCKINGHAM, D. Aprendizagem e Cultura Digital. Revista Pátio, Ano XI, No. 44, jan.
2008.
Disponível
em:
<http://www.cereja.org.br/arquivos_upload/david_buckingham_aprendizagem_cultur
a_digital.pdf>. Acesso em: 01/08/2016.
CGI (Comitê Gestor da Internet no Brasil). Pesquisa sobre o uso das tecnologias de
informação e comunicação no Brasil: TIC Educação 2012. Núcleo de Informação e
Coordenação do Ponto BR. São Paulo, 2013. Disponível em:
<http://www.cetic.br/media/docs/publicacoes/2/tic-educacao-2012.pdf>. Acesso em:
01/08/2016.
GIRAFFA, L. M. Uma odisséia no ciberespaço: O software educacional dos tutoriais aos
mundos virtuais. Revista Brasileira de Informática na Educação, vol. 17, n° 1, 2009.
Disponível em: <http://www.br-ie.org/pub/index.php/rbie/article/view/3/3>. Acesso
em: 03/09/2016.
MEDEIROS, Tainá; BRASIL, Pedrona; ARANHA, Eduardo. Um framework para
criação de jogos voltados para o ensino de lógica de programação. In: XXV Simpósio
Brasileiro de Informática na Educação, Dourados, Mato Grosso do Sul, 2014.
KENSKI, Vani Moreira. Educação e tecnologias: O novo ritmo da informação.
Campinas, SP: Papirus, 2012.
KITCHENHAM, B. Procedures for performing systematic reviews Technical Report
TR/SE-0401, Keele University and NICTA, 2004.
TOREZANI, Carpegieri; TAVARES, Orivaldo. EANewProg - um editor de
atividades para o ambiente online NewProg. In: XXV Simpósio Brasileiro de
Informática na Educação, Dourados, Mato Grosso do Sul, 2014.
156
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Análise Comparativa de Estratégias de Varredura de Área
para um Sistema de Comunicação Multi Vants no
Monitoramento da Área de Impacto de Foguetes Sobre o Mar
Mauricio R. Silva1, Filipe V. Monteiro1, Pablo J. Alsina1, Adelardo A. D. de
Medeiros1, Luiz F. Q. Silveira1, Marcelo B. Nogueira1, Glauberto L. A. de
Albuquerque2, João B. D. Dantas2
1
Universidade Federal do Rio Grande do Norte, Natal-RN, Brasil,
2
Centro de Lançamento de Foguetes Barreira do Inferno, Parnamirim-RN, Brasil,
[email protected], [email protected], [email protected]
Abstract. This paper presents a comparative analysis of scan area strategies to set a flight
scheme to be applied in a communication network of a squadron of Unmanned Aerial
Vehicles (UAVs) to be used to scan the rocket impact area. It presents the main features of
communication networks for multi UAV systems and the details of its application. Two
different strategies for scanning the rocket impact areas are proposed. The characteristics of
the networks for multi UAV systems better suited to these strategies are analyzed in order to
make a comparative analysis between them, and define the most appropriate architecture for
the application.
Resumo. Este trabalho apresenta uma análise comparativa de estratégias de varredura de
área para definir um esquema de voo a ser aplicada em uma rede de comunicação de uma
esquadrilha de Veículos Aéreos Não Tripulados (VANTs) a serem utilizados na varredura da
área de impacto de foguetes. São apresentadas as principais características das redes de
comunicação para sistemas Multi VANT e as especificidades da aplicação abordada neste
projeto. Duas estratégias são propostas para a varredura da área de impacto de foguetes,
sendo então realizado uma análise comparativa das características das redes para sistemas
Multi VANTs mais adequadas a estas estratégias com a finalidade de definir a arquitetura
mais apropriada para a aplicação em estudo. Palavras chaves— Estratégia de Varredura,
Sistema Multi VANT, Rede de Comunicação.
1. Introdução
Nos últimos tempos, Veículos Aéreos Não Tripulados (VANTs) vêm sendo
utilizados em diversas aplicações civis e militares. Particularmente, sistemas Multi
VANTs são uma alternativa eficiente e econômica para aplicações em que é necessário
varrer uma grande área para fins de monitoramento. Na cronologia de lançamento de
foguetes no Centro de Lançamento da Barreira do Inferno (CLBI – Natal – RN – Brasil),
antes do lançamento, é necessário realizar uma varredura da provável área de impacto
no mar, para monitorar a presença de possíveis embarcações e evitar lesões ou prejuízos
à pessoas que estejam nestas áreas. Por razões de segurança, só é autorizado o
lançamento do foguete se a área de impacto estiver livre de embarcações.
Atualmente, o procedimento de varredura da área de impacto é executado no CLBI
por meio de aeronave tripulada, procedimento custoso e demorado, sendo então
sugerido a utilização dos VANTs como uma forma mais econômica e segura. Em
lançamentos de Foguete de Treinamento Básico (FTB), cujo alcance e raio da provável
área de impacto são de poucos quilômetros, um único VANT seria capaz de realizar a
varredura, monitorar a superfície do mar e identificar embarcações em tempo razoável.
157
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Porém, em lançamentos de foguetes de maior porte, onde o alcance é maior e a área a
ser varrida mais extensa, um único VANT pode não atender ao cronograma da missão,
devido a uma maior demanda de tempo e autonomia de voo para realizar a varredura.
Nestes casos, um sistema Multi VANT, constituído por uma esquadrilha de aeronaves
autônomas, permitiria que uma grande área seja varrida de forma eficiente e em tempo
hábil, possibilitando o aumento do raio de alcance da comunicação por meio da criação
de uma rede de comunicação Mesh, Ad Hoc, entre os VANTs, também conhecido como
FANET (Flying Ad hoc Network), transmitindo de forma confiável a informação entre
as aeronaves e a estação base. Neste contexto, o presente trabalho realiza a análise
comparativa entre duas estratégias de varreduras de área, para definir uma arquitetura e
desenvolver uma solução utilizando uma Rede de VANTs para varredura da área de
impacto de foguetes lançados em direção ao mar pelo CLBI, de forma que a sondagem
desta área seja feita de maneira eficiente e confiável, reduzindo custos e tempo de
varredura.
Após comparar as características, vantagens e desvantagens de diversas alternativas
apresentadas na literatura para redes de comunicação em sistemas Multi VANT, dois
esquemas de formação para a varredura da área de impacto são propostos, uma na qual
as aeronaves mantêm uma formação única e sincronizada, fazendo a varredura conjunta
de toda a área, e outra na qual a mesma é decomposta em subáreas, onde cada subárea é
monitorada por um único VANT. Logo, com base na análise das diversas alternativas de
redes de comunicação e das características específicas dos métodos de varredura
propostos, será permitido definir uma arquitetura de redes adequada para esta aplicação
particular e um plano de testes para avaliar o desempenho da arquitetura de rede
proposta em termos de robustez, confiabilidade e economia de energia. As próximas
seções discutem as características da rede de comunicação proposta. A seção 2 apresenta
as características das principais soluções de redes de comunicação para sistemas Multi
VANT. Na seção 3 são propostos dois esquemas diferentes para varredura da área de
impacto. A seção 4 apresenta propõe um esquema varredura a ser utilizado para a
aplicação abordada e as considerações finais.
2. Redes de Comunicação para VANTs
Redes de comunicação para sistemas Multi VANTs (FANETs) apresentam
características e requisitos bastante específicos, ao contrário de outras redes sem fio,
como por exemplo as Redes Ad Hoc Veiculares (VANETs - Vehicular Ad-Hoc
Netwoks) ou Redes Móveis Ad Hoc (MANET - Mobile Ad hoc Networks).
A. Comparando características de redes sem fio MANET, VANET e Rede para
Sistemas Multi VANTs (FANET)
MANET [1] é uma rede composta por plataformas móveis na qual os nós não
dependem de infraestrutura ou ponto de acesso para operar. O movimento dos nós é
lento e aleatório (menos de 3 m/s) estando conectados em uma rede Ad Hoc. A mudança
da topologia é dinâmica com os nós entrando e saindo na rede de forma imprevisível.
VANET [1] é uma rede composta por carros que se comunicam com outros carros ou
pontos de acesso próximos às estradas. Os nós se movimentam a uma velocidade de 2030 m/s em rodovias e 6-10 m/s em áreas urbanas. O movimento é previsível, limitado ao
traçado da pista, condições de tráfego e regras de trânsito. A topologia é definida como
uma rede em estrela entre os pontos de acesso e Ad hoc entre os veículos. A topologia
158
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
muda de forma mais dinâmica que na rede MANET, apresentando movimentos lineares
em função das rodovias. FANET [1] é uma rede composta por aeronaves não tripuladas
que se comunicam entre si e com a estação base de controle. A velocidade varia de zero
e a pouco mais de 100 m/s com movimentos em duas ou três dimensões, controlados de
acordo com a missão. A topologia pode ser fixa ou sujeita a mudanças lentas ou muito
rápidas, com movimentação desordenada ou sincronizada, dependendo do objetivo.
[1,2,3] A figura 1 ilustra uma MANET, VANET e FANET com sua composição e
topologia.
Figura 1. Composição e topologia das redes de comunicação MANET, VANET e
FANET. Adaptado de [1]
Numa FANET, o projeto da arquitetura de rede leva em consideração um protocolo
de roteamento com capacidade de se reorganizar em casos de falha de um VANT. Os
protocolos com algoritmos pró ativos ou reativos podem não funcionar devido à baixa
capacidade de processamento e memória dos nós. Na presença destes fatores, a FANET
deve ser capaz de encaminhar pacotes entre um nó fonte e um nó destino, otimizando a
métrica escolhida, incorporando mecanismos para economizar energia e maximizando a
vida útil da rede.
B. Caracterizando a Rede de VANTs (FANET)
Uma rede de VANTs pode ser definida quanto à sua aplicação, sendo categorizada
em três grupos distintos [3], apresentando características como rota e velocidade do voo,
tipo e quantidade de dados a ser transportados, bem como impacto na falha ou perda de
conexão entre os nós da rede.
Categorização de uma Rede de VANTs
Rede de VANTs como infraestrutura de acesso à Internet é planejada para servir de
infraestrutura como ponto de acesso à Internet
Rede de VANTs para localização e ataque com fins militares são projetadas para
que um nó localize um alvo. O objetivo é procurar um alvo, de forma que não é
necessário fazer a varredura total da área.
Rede de VANTs para sensoriamento remoto ou varredura são projetadas para o
monitoramento de determinada área. Para alcançar este objetivo, é preciso que toda
a área a ser monitorada seja coberta.
Neste trabalho, o objetivo é que a Rede de VANTs faça o sensoriamento e
monitoramento de uma área de impacto de foguetes lançados em direção ao mar,
utilizando-se técnicas de visão computacional para que toda a área a ser monitorada seja
coberta. A capacidade de captura e processamento de imagens é um fator limitante para
a velocidade do voo. No comportamento de voo típico desta categoria, os VANTs
executam rotas coordenadas, a velocidade constante, sendo possível determinar pontos
futuros e realizar o planejamento do voo na rede. Em casos de falha de um nó, a rede
159
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
deve ter capacidade de se rearranjar de modo que a área onde houve a falha seja
monitorada por outros nós da rede, resultando numa completa varredura da área em
análise [3].
C. Transporte de dados e estratégia de roteamento
Segundo Gupta [3], ainda não foi estabelecido qual é a melhor arquitetura para uma
FANET. Primeiramente deve-se analisar o objetivo da rede, o plano de voo e as rotas
das aeronaves, para então ser adotado uma estratégia de roteamento. Uma rede onde o
roteamento é feito por aeronaves, fatores como localização dos nós, economia de
energia, maior robustez frente a links intermitentes e mudança de topologia devem estar
presentes para que haja uma melhor qualidade no serviço. Projetar a camada de rede
para sistemas Multi VANT ainda é uma tarefa desafiadora [1,3].
Os principais protocolos de roteamento em redes sem fio entre dispositivos móveis
podem ser categorizados como protocolos de Roteamento Estático, Pró Ativos,
Reativos, Híbridos, Geográficos 2D e 3D, e, segundo Gupta [3], todos estes apresentam
problemas na aplicação de redes VANTs.
O conhecimento das características de uma rede de VANTs aplicada para varredura
de área tais como a movimentação sincronizada e velocidade constante dos seus nós,
possibilita definir um protocolo de roteamento adequado. Em uma FANET, recursos
como armazenamento, potência do sinal e largura de banda são limitados. A taxa de
entrega é afetada pela quantidade de saltos, interferência e condições da rede em função
da distância e movimentos dos nós. Neste trabalho considera-se que o roteamento tem
características determinísticas, em função da velocidade e da rota prevista, considerando
que movimentos futuros e ligações são conhecidas. A topologia da rede não muda
frequentemente. Algoritmos de roteamento determinístico são baseados na formulação
de um modelo dependente do tempo, onde é possível definir um plano de voo que
mantenha a distância ideal entre os VANTs para que não ocorram problemas de perda
do sinal, utilizando métricas com técnicas otimizadas de entrega de pacotes fim-a-fim,
com pacotes Unicast. Assim, este tipo de roteamento proporciona um bom desempenho
com menor consumo de recursos em relação à técnicas de roteamento estocástico [7].
3. Estratégia de Varredura da área de impacto de foguetes
Nesta seção são propostas duas estratégias diferentes para varredura da área de
exclusão por meio de um sistema Multi VANT, de forma que a área possa ser
monitorada, ao mesmo tempo minimizando o consumo de energia das aeronaves e
garantindo o estabelecimento de uma rede de comunicação confiável entre os diversos
nós do sistema.
No estabelecimento da estratégia de varredura da área deve-se levar em conta
aspectos relacionados ao propósito da varredura. Por exemplo, um requisito pode ser
capturar imagens aéreas da área completa, de forma que a abertura da câmera, a altura e
a velocidade do voo são parâmetros relevantes no planejamento da rota a ser seguida.
Além desses aspectos inerentes à tarefa a ser executada, devem ser levados em conta
aspectos importantes relativos aos recursos necessários para executar a missão. Desta
maneira, uma boa estratégia deve procurar definir rotas que minimizem o consumo de
energia, para garantir mais autonomia, assim como manter as aeronaves suficientemente
próximas para garantir uma boa qualidade nos links de comunicação entre as mesmas,
minimizando a probabilidade de ocorrência de falhas.
160
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Na aplicação proposta neste trabalho, a área pode abranger desde alguns poucos
quilômetros quadrados até algumas centenas de quilômetros quadrados e, dependendo
do alcance dos foguetes lançados, esta área pode estar centrada a poucos quilômetros do
litoral até mais de cem quilômetros da linha costeira. Dentro deste contexto, a
esquadrilha de VANTs necessária para fazer a varredura desta área deve ser constituída
por uns poucos VANTs, com autonomia de pelo menos 4 horas de voo e com pelo
menos uma das aeronaves dotada de link de comunicação confiável, com boa largura de
banda, que alcance a estação base até os limites extremos da área a ser monitorada.
A. Estratégias de Varredura da área de impacto
Quando a área a ser varrida é pequena, um único VANT pode ser suficiente para
realizar o procedimento de varredura. Neste caso, duas estratégias simples são
encontradas na literatura: varredura em espiral e varredura vai e volta. No método de
varredura em espiral [6], a missão tem início no perímetro externo da área e, a seguir, o
VANT executa uma trajetória de formato em espiral, até chegar ao centro da mesma
(Figura 2). Levando em consideração que o centro da área é onde existe a maior
possibilidade de impacto, a rota pode ser também alterada para iniciar do centro para o
perímetro externo da área a ser analisada.
a)
b)
Figura 2. Varredura em espiral. a) Representação esquemática. b) Varredura em
espiral da área monitorada.
Outro método de varredura é o vai e volta (Back and Forth Method) [6]. A Figura 3
demostra como é feito o trajeto, onde, ao completar uma linha, deverá fazer uma
manobra, voltando no caminho no sentido inverso.
Figura 3. Rota com varredura vai e volta.
B. Estratégia de Varredura por sistema Multi VANT sem decomposição da
área monitorada
Neste trabalho, propõe-se que os VANTs voem em formação, lado a lado, realize a
varredura da área paralelamente, conforme ilustrado na Figura 4. Neste esquema, cada
VANT mantem-se equidistante a duas outras aeronaves. Desta forma, é possível
161
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
estabelecer uma rede de comunicação em que cada nó da mesma (VANT), tenha
garantia de redundância nos links de comunicação entre as aeronaves. Periodicamente é
capturado um mosaico de imagens de uma área de largura aproximada à da área coberta
pela câmera de um único VANT vezes o número de VANTs da formação, descontando
uma faixa de superposição das imagens capturadas por VANTs vizinhos, a qual é
estipulada para garantir que nenhuma região deixará de ser fotografada. Assim, nesta
estratégia de varredura, a distância entre os VANTs é determinada de forma a garantir
esta superposição de imagens, o que depende da abertura da câmera e da altura do voo.
Como, além da disponibilidade de links redundantes é favorecida pela formação e
tipicamente, a distância máxima entre os VANTs para garantir a superposição de
imagens é menor do que o alcance máximo dos sistemas de transmissão embarcados,
esta estratégia de varredura tende a garantir uma comunicação mais confiável.
Largura da faixa coberta
pela formação
VANT
Área coberta pela câmera Faixa de superposição de imagens
entre dois VANTs
embarcada
Figura 4. Formação de esquadrilha para varredura em espiral.
Para varrer a área completa, a formação pode seguir um padrão em espiral ou vai e
volta. Aplicando o algoritmo de varredura em espiral descrito por Gustav [6] e
modificado por Petruševski [5] o mesmo pode ser adaptado para que os VANTs tenham
uma formação conjunta e fiquem todos próximos. Em uma formação com velocidade
constante, devido à diferença nos percursos, os nós terminam a missão em tempos
distintos, e ocasionar perda de link de comunicação entre VANTs devido ao
afastamento dos mesmos.
Uma alternativa para esta estratégia é, em lugar da formação seguir um padrão em
espiral, adotar um padrão de varredura vai e volta. Neste método, como as inversões de
direção ocorrem, ora para um lado, ora para o outro, em uma das inversões as aeronaves
que farão a curva mais externa estarão de um lado da formação e na inversão seguinte
serão as do outro lado, compensando os atrasos diferentes e, em média, garantindo
percursos de comprimentos semelhantes para todos os VANTs. Isto facilita a
manutenção da formação e a estabilidade dos links de comunicação entre os VANTs. A
Figura 5 ilustra a varredura de área total por uma formação de VANTs seguindo o
padrão espiral e o padrão vai e volta.
162
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Formação
Formação
Figura 5. Estratégias de varredura de área por uma formação de VANTs,
seguindo padrão em espiral e padrão vai e volta
Varrer toda a área mantendo os VANTs em formação fixa é útil em casos onde a
velocidade de processamento e o tempo de varredura são os principais fatores a serem
considerados. Neste caso, deve existir pelo menos um VANT com potência de
transmissão suficiente para manter um link de comunicação confiável com a estação
base ao longo de toda a área monitorada. Além disso, esse link deve garantir banda
suficiente para intermediar a comunicação de todos os outros VANTs com a estação
base. Assim, a rede pode ser construída utilizando um nó que possua maior alcance de
comunicação, o qual funciona como um hub para os nós vizinhos, dotados de potência
menor, que se comunicam com a estação base por intermédio deste hub. Na falha de um
nó, os vizinhos devem aproximar-se, reconfigurando a formação. Se só uma aeronave
funcionar como hub, a sua falha pode causar o colapso do sistema como um todo, de
forma que é recomendável dispor de mais de um para garantir redundância em caso de
falha. Uma estratégia para aumentar o alcance do sistema é estabelecer um padrão de
formação onde o hub seja o nó mais próximo à estação base e os outros possam se
afastar além do alcance máximo entre a estação base e hub, mas mantendo uma rede de
comunicação estável com este último.
C. Estratégia de Varredura por sistema Multi VANT com decomposição da
área monitorada
Quando a comunicação entre a estação base e o ultimo nó da rede fica comprometido
devido à distância, a solução é dividir a área a ser monitorada em subáreas, atribuindo a
varredura de cada uma delas a um único VANT, estabelecendo uma rede Mesh entre as
aeronaves da esquadrilha, de modo que a informação seja transportada de nó em nó até
chegar à estação base. A figura 6 ilustra esta abordagem, a qual permite que o alcance
do sistema seja ampliado.
Figura 6. Área decomposta em 4 subáreas utilizando a varredura vai e volta.
Com uma formação varrendo subáreas de mesmo tamanho, os aviões, mesmo
distantes, podem ser coordenados em uma formação de voo sincronizada. O tamanho de
cada subárea deve permitir que as aeronaves tenham capacidade de comunicação com
outras áreas vizinha.
163
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Um fator importante na aplicação abordada é que não existem obstáculos na área a
ser monitorada, uma vez que o voo é sobre o mar, facilitando o planejamento da rota.
Mas quando um nó falhar, áreas já monitoradas não devem ser visitadas novamente. Em
caso de falha de um nó, o método proposto por Marro e Gonçalves [4] pode ser adotado
para subdividir a área ainda não monitorada em novas subáreas, considerando o que já
foi monitorado e dispondo de um algoritmo de roteamento que seja capaz de
encaminhar pacotes de dados entre todos os VANTs da esquadrilha e a estação base de
forma confiável, garantindo os requisitos de comunicação estabelecidos. A vantagem da
divisão em subáreas é que o alcance da área a ser monitora é maximizado com a
formação de uma rede Mesh. O problema é definir a distância ideal entre os nós.
D. Análise comparativa entre as estratégias de varredura de área usando
sistema Multi VANT
A fim de definir a melhor estratégia de varredura que garanta a cobertura da área de
impacto em tempo hábil, assegurando, ao mesmo tempo, uma comunicação confiável e
de qualidade entre a esquadrilha e a estação base, serão comparadas as duas estratégias
propostas. Esta comparação é sumarizada na Tabela 1.
Para as duas estratégias, o tempo de varredura de uma área é proporcional à
quantidade de VANTs utilizados. O tamanho máximo da área a ser monitorada, quando
a mesma não é subdividida, é restrito pelo alcance de transmissão do VANT utilizado
como hub. Quando a área é subdividida, o tamanho da área a ser varrida pode ser maior,
uma vez que a informação pode ser roteada de aeronaves distantes até a estação base
adotando uma topologia de rede mesh. O dado é enviado de nó em nó até chegar ao
destino final. Quando a área não é subdividida, o sistema depende de um link dedicado e
robusto entre o VANT, que funcionará como hub, e a estação base. A comunicação dos
VANTs restantes com a estação base é intermediada pelo VANT hub. Para uma
comunicação confiável, o ideal é que os outros VANTs se comuniquem com o hub
através de uma rede configurada em uma topologia estrela coordenada pelo hub.
Alternativamente, para aumentar o alcance, é possível estabelecer uma topologia de rede
mesh entre os diversos VANTs, no caso de algum nó não tenha capacidade de se
comunicar diretamente com o hub.
Na estratégia de varredura sem subdivisão da área, uma vez que os nós se mantêm
próximos, o tempo para reorganizar a rede se torna menor, quando ocorrer a falha de um
nó, bastando reconfigurar a formação. Como os nós estão próximos, o gasto de energia
envolvido na transmissão de sinais é menor, pois menos potência é requerida, podendo
até aumentar a capacidade da banda para transmissão de dados. Na estratégia em que a
área é subdividida, como os nós estão mais distantes, em caso de falha de um deles, a
área remanescente ainda não monitorada deve ser subdividida novamente entre os nós
restantes. Além disso, devido à maior distância entre os nós, uma maior potência de
transmissão deve ser disponibilizada a todos os VANTs.
Tabela I. Característica da rede de comunicação do sistema Multi VANT para as
duas estratégias de varredura propostas.
Características
Sem subdivisão
de área
Com subdivisão de
área
Formação
Nós próximos, em função da abertura
da câmera
Nós distantes, em função do alcance do
rádio
164
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Tempo para varredura da área
Tamanho da área monitorada
Tipo de comunicação /
Roteamento
Topologia da Rede entre
VANTs (nós)
Topologia da Rede entre
VANTs e Estação Base
Distância entre nós
Tempo de Interrupção em caso
de falha do nó
Proporcional à quantidade de nós
Limitada pelo alcance de rádio do
VANT hub
Estrela ou Mesh, pouca modificação
de design
Proporcional à quantidade de nós
Pode ser estendida com VANTs fora do
alcance através da rede Mesh
Estrela ou Mesh
Mesh
Estrela, necessário um nó hub com
capacidade de comunicar-se em toda
a área com a Estação Base
Curta distância
Mesh
Mesh, maior capacidade de alcance de
comunicação
Longa distância
Baixo
Alto
Reorganização em caso de falha
do nó
Pouco custo operacional
independente do método de
varredura
Médio no método vai e volta e alto no
método espiral
Consumo de Energia
Baixo nos dispositivos finais
Médio / Alto nos Roteadores e
Coordenadores
Tipo de Nós
Aplicação
Para Estrela: 1 ou 2 Coordenadores,
1 roteador e o restante dispositivo
final
O importante é o tempo de varredura.
Precisa de um nó com maior
capacidade de transmissão e
processamento
1 ou 2 coordenadores e o restante
Roteadores
Áreas de varredura maiores. Os nós têm
a mesma capacidade de transmissão e
roteamento
Considerando o comportamento da rede para cada estratégia proposta, assim como as
características especificas da aplicação abordada, onde poucos nós estão disponíveis,
adotou-se, à priori, uma estratégia de varredura sem subdivisão da área a ser
monitorada. Isto se deve pelo pequeno número de VANTs disponíveis, um dos quais
com um sistema de comunicação robusto e de longo alcance. Com base nesta estratégia
escolhida, será possível elaborar um plano de testes experimentais e estabelecer métricas
para medir consumo de energia e parâmetros de rede, tais como intensidade do sinal
(RSSI – Radio Signal Strength Indicator), latência, taxa de transferência, taxa de perda
de pacotes, jitter e overhead, para analisar o desempenho da rede de comunicações, bem
como a sua confiabilidade e capacidade de reorganização quando ocorrer a adição ou
remoção de nós.
4. Considerações finais
Este artigo fez uma análise comparativa entre duas estratégias de varreduras de área e
os estudos iniciais para especificação da arquitetura de rede de comunicação para um
sistema Multi VANT que será aplicado na varredura de área de impacto de foguetes
lançados a partir do CLBI, com a finalidade de detectar embarcações invasoras da área
de exclusão marítima estabelecida durante a cronologia de lançamento.
Foram apresentadas as principais características das redes moveis MANET, VANET
e FANET. Apesar dos avanços nos estudos relacionados à redes de comunicação para
sistemas Multi VANT, não existe ainda uma arquitetura de rede que atenda de forma
satisfatória às necessidades e características de aplicações de natureza diversa, uma vez
que as diferentes aplicações destes sistemas apresentam requisitos variados, existindo
ainda muitos problemas em aberto. No caso específico de aplicação para varredura da
área de impacto de foguetes, onde estão presentes fatores tais como a propagação e a
atenuação dos sinais de radiofrequência sobre a superfície do mar, que apresentam
165
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
características muito peculiares, o desafio é ainda maior. A rede de comunicação deve
ser constituída com um pequeno número de aeronaves ou nós. Na varredura da área de
impacto, com base na estratégia em que a mesma não é subdividida, os nós têm
comportamento de voo coordenado, executando rotas similares a velocidade constante,
sendo possível determinar pontos futuros e prever o comportamento da rede. Os
Algoritmos de roteamento determinístico são baseados na formulação de um modelo
dependente do tempo. Assim, com a estratégia de varredura proposta, é possível definir
um plano de voo que minimize a distância entre os nós da rede para evitar problemas de
perda de sinal e usar técnicas otimizadas de entrega de pacotes fim-a-fim, com pacotes
unicast.
Comparando estas duas estratégias, verificou-se que a varredura sem subdivisão da
área a ser monitorada, usando uma formação compacta, resulta em uma maior
confiabilidade da rede de comunicação, enquanto que a estratégia de varredura baseada
na subdivisão da área permite que áreas mais distantes que o alcance de rádio do VANT
hub possam ser monitoradas, através do estabelecimento de uma rede mesh entre as
aeronaves. Porém, nesta última abordagem, a confiabilidade do sistema de comunicação
é menor, devido à maior distância entre os VANTs.
Para validar o sistema proposto, será definida uma arquitetura de rede baseada em
tecnologia Zigbee, para o enlace e roteamento de mensagens de controle, de dados e de
confirmação entre os nós e a estação base. Correntemente está sendo implementada a
arquitetura de hardware e software que dará suporte à rede de comunicação, a qual será
embarcada em uma esquadrilha de helicópteros quadrirrotores. Com esta infraestrutura
serão realizados testes experimentais que permitirão validar a arquitetura de rede
proposta, bem como escolher qual será a melhor alternativa entre as duas estratégias de
varredura de área apresentadas.
5. Referências
[1] BEKMEZCI, Ilker; SAHINGOZ, Ozgur Koray; TEMEL, Şamil. Flying ad-hoc networks (FANETs):
A survey. Ad Hoc Networks, v. 11, n. 3, p. 1254-1270, 2013.
[2] Y. Li, M. St-Hilaire, T. Kunz, “Enhancing the RGR Routing Protocol for Unmanned Aeronautical Adhoc Networks,” Carleton University, Systems and Computer Engineering, Technical Report SCE-1201, August 2012
[3] L Gupta, R Jain, G Vaszkun, Survey of Important Issues in UAV Communication Networks In IEEE
Communications Surveys and Tutorials, 2015. Volume:PP I: 99.
[4] Marro A. A., L. Gonçalves M. G., "A Path Planning Method for Multi-UAV System," Robotics
Symposium and Competition (LARS/LARC), 2013 Latin American, Arequipa, 2013, pp. 129-135.
[5] Petruševski, Ljiljana, Dabić, Milana, Devetaković, Mirjana. Parametric curves and surfaces:
Mathematica demonstrations as a tool in exploration of architectural form. In Spatium, 2010.
[6] Gustav Öst. Search path generation with UAV applications using approximate convex decomposition.
PhD thesis, Link¨oping, 2012
[7] I. Cardei, C. Liu, J. Wu, “Routing In Wireless Networks With Intermittent Connectivity”
Encyclopaedia of Wireless and Mobile Communications, 2013
[8] ZigBee Alliance, ZigBee Pro, [Online] [Visitado 04/05/2016] http://www.zigbee.org/zigbee-fordevelopers/network-specifications/zigbeepro/4. Sections and Paragraphs
166
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Teleoperação de um Robô Móvel Através do Controlador
Leap Motion
Ronaldo B. Da Costa Junior, Rosiery da S. Maia, Anderson Abner de S. Souza
Departamento de Ciência da Computação - Universidade do Estado do Rio Grande do
Norte (UERN)
Natal – RN – Brasil
[email protected], {rosiery,andersonabner}@uern.br
Abstract. Robot teleoperation or control of their remotely functionality is one
of Robotics area that is in evidence, with applications in different parts of
society. For example, in the robot control to disarm bombs, in robots used for
space exploration and underwater exploration, in robots used in remote
surgery, among others. There are several ways to remotely control these
robots, ranging from simple mechanisms to control movements naive to
mechanisms of virtual reality, with online transmission of real images. Within
this context, this work presents a teleoperation system for a mobile robot using
the control device and scanning hands Leap Motion. Through the scanning
and interpretation of the movements of the hands of a person, a mobile robot
is controlled remotely.
Resumo. A teleoperação de robôs ou o controle de suas funcionalidades de
forma remota é uma área de estudo da Robótica que está em evidência, com
aplicações em diferentes partes da sociedade atual. Por exemplo, no controle
de robôs que desarmam bombas, nos robôs usados para exploração espacial e
exploração submarina, em robôs utilizados em cirurgias remotas, entre
outras. Diversas são as maneiras de se controlar remotamente esses robôs,
variando desde mecanismos simples para controle de movimentos ingênuos
até mecanismos de imersão de realidade virtual, com transmissão online de
imagens reais. Dentro deste contexto, este trabalho apresenta um sistema de
teleoperação para um robô móvel, utilizando o dispositivo de controle e
escaneamento de mãos Leap Motion. Através do escaneamento e
interpretação dos movimentos das mãos de uma pessoa, um robô móvel é
controlado de forma remota.
1. Introdução
Os robôs móveis podem ser utilizados na realização de diversas tarefas, em auxílio aos
seres humanos, como, cirurgias, desarmamento de bombas, vigilância, monitoramento,
explorações de ambientes hostis, entre outras. Para essas atividades, uma alternativa é se
utilizar robôs teleoperados, ou robôs que são remotamente controlados por um operador
humano. Para isso, é necessário que o mecanismo de controle permita que os usuários
ou operadores dos robôs possam controla-los à distância, que pode ser de alguns metros
ou milhares de quilômetros. A Internet então, se apresenta como um possível meio, bem
fundamentado em seus protocolos, para permitir essa ponte entre operador e robô
controlado.
167
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Com a Internet é possível que médicos realizem cirurgias em pacientes
localizados em outros países, através do controle de robôs teleoperados localizados no
lado dos pacientes [Lum et al., 2009]. Também é possível realizar uma visita virtual a
uma galeria de artes com um robô inserido no local da exposição [Burlamaqui et al.,
2006], assim como, na monitoria de pessoas idosas [Wadhawan & Gupta, 2012].
Um requisito importante para os sistemas de teleoperação de robôs é o uso de recursos ou dispositivos que aumente a sensibilidade do operador sobre o local, no qual o
robô controlado está inserido [Burlamaqui et al., 2006]. Assim, o uso de câmeras, dispositivos de controle mais sofisticados e técnicas de realidade virtual é desejável para a
implementação de sistemas de teleoperação robótica.
Neste sentido, este trabalho apresenta um sistema de teleoperação para um robô
móvel, utilizando o dispositivo de controle e escaneamento de mãos, chamado de Leap
Motion. Através do escaneamento e interpretação dos movimentos das mãos de uma
pessoa, um robô móvel é controlado de forma remota, obedecendo os comandos
interpretados. Com esse dispositivo de realidade virtual o usuário tem a sensação que
está manipulado presencialmente o dispositivo robótico. Além do controle dos
movimentos do robô, o usuário tem como retorno do sistema imagens capturadas por
uma câmera embarcada no dispositivo robótico e informações dos sensores embarcados
no robô. Dessa forma, o usuário tem uma noção da situação do ambiente no qual o robô
está inserido.
Para a apresentação geral do sistema de teleoperação, este trabalho segue as
seguintes seções: A seção 2 apresenta o Leap Motion e suas funcionalidades; a seção 3
matérias e métodos; e a seção 4 apresenta as considerações finais do trabalho, com
algumas ideias a serem adotadas na implementação de trabalhos futuros.
2. Leap Motion
O Leap Motion é um pequeno dispositivo que pode ser ligado a um computador através
da porta USB, que utiliza luz de LED e câmeras para escanear uma área cúbica de
aproximadamente, 70x70x70 cm3, acima do dispositivo. Ele pode rastrear ambas as
mãos e todos os 10 dedos a medida que eles se movem dentro da região de alcance do
sensor. Uma API (Application Programming Interface) específica permite a criação de
programas que detectam as mãos, os dedos e seus movimentos, e traduzem esses dados
em informações para um computador [Leap Motion, 2016]. Este dispositivo pode ser
visualizado na Figura 1.
Leap Motion
Figura 1. Leap Motion.
A arquitetura de funcionamento do Leap Motion pode ser visualizada na Figura
2. O sensor do Leap Motion faz a detecção das mãos através de um modelo prévio já
168
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
estabelecido, que seria o modelo de uma mão humana com 5 dedos. Os dados
capturados pelo sensor são lidos por um serviço chamado “Leap Service”, que processa
essas informações e as envia para uma aplicação habilitada a usar os dados do Leap
Motion. Essas aplicações devem ser implementadas utilizando-se a biblioteca nativa de
acesso ao Leap Motion, disponibilizada pelo fabricante. Por padrão, os dados são
enviados à aplicações que estejam em primeiro plano (Foreground Leap-enabled
Application), porém aplicações em segundo plano (Background Leap-enabled
Application) podem também ter acesso aos dados fazendo requisições.
Figura 2. Arquitetura de funcionamento do Leap Motion.
https://developer.leapmotion.com/documentation/csharp/devguide/Leap_Architecture.html
O Leap Motion apresenta seus dados em relação a um sistema de coordenadas
cartesiano baseado na mão direita, com a origem dos eixos centrada no topo do
dispositivo (Figura 3).
Figura 3. Sistema de coordenadas do Leap Motion.
https://developer.leapmotion.com/documentation/csharp/devguide/Leap_Overview.html
Na detecção de uma mão o sensor provê informações sobre a identidade da mão
detectada, a sua posição dentro do campo de visão do sensor, o braço que a mão está
vinculada, e uma lista de dedos associados com a mão. Os dedos podem ser
diferenciado por nomes que são thumb, index, middle, ring, e o pinky. Vetores são
associados aos dedos para dar a posição dos mesmos e a direção em que estão
apontando (Figura 4).
169
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
(a)
(b)
Figura 4. Identificação de mãos e dedos.
https://developer.leapmotion.com/documentation/csharp/devguide/Leap_Overview.html
3. Materiais e métodos
3.1.. Robô Móvel X80
O robô X80 (Figura 5) foi desenvolvido pela empresa Dr. Robot. Dotado de sensores,
foi desenvolvido para cientistas que desejam aprimorar o controle e até mesmo incluir a
teleoperação de robôs. O robô é composto por uma câmera, sensor de infravermelho,
sensor ultrassônico e sensor de presença, o suficiente para se fazer um sistema de
navegação avançado [Souto, 2014].
Figura 5: Robô X80 com suas características [Dr. Robot, 2009].
O Robô é conectado a um computador via wifi, onde um roteador devidamente
configurado, faz a transferências de dados. Por se utilizar uma transmissão sem fio, temse uma maior mobilidade do X80.
A arquitetura do sistema do robô é subdividida em 3 partes, uma referente ao
robô outra ao roteador wifi, que permite a comunicação wifi entre robô e um PC local,
que deve conter o software para controle do robô (Figura 6). Assim, é possível que,
além de ter condições de controlar os movimentos do robô, o usuário pode obter
informações da câmera e de todos os sensores do robô, tendo condições de ter uma
visão geral do ambiente no qual o robô está inserido.
170
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 6: Arquitetura de funcionamento do robô X80[Dr. Robot, 2009].
Isso é possível porque o robô um módulo de comunicação sem fio com interface
802.11b e protocolo TCP/IP (Figura 7).
Figura 7. Módulo wifi do robô X80[Dr. Robot, 2009].
3.2. Sistema de teleopereção com Leap Motion
A ideia geral do sistema é que um usuário possa controlar remotamente o robô X80
através dos movimentos de uma mão, por meio do Leap Motion. Além do controle dos
movimentos do robô, o usuário tem acesso às imagens coletadas pela câmera do robô e
informações de seus sensores em uma única tela de interface do sistema. Isso permite
que se aumente a sensibilidade do operador sobre o local, no qual o robô controlado está
inserido [Burlamaqui et al. 2006].
Arquitetura geral do sistema de teleoperação pode ser vista na Figura 8. Como
mostra a imagem, é necessário que exista um computador com o Leap Motion
conectado, e habilitado a se comunicar via wifi. Esse computador faz a leitura dos dados
capturados pelo sensor do Leap Motion através de uma porta USB. Esses dados são
oriundos do posicionamento de uma das mão e dos dedos do operador dentro da área de
captura do Leap Motion. Neste computador, tem-se o software de teleoperação que o
operador humano terá acesso. O software recebe os dados capturados pelo Leap Motion
e tratados por sua biblioteca nativa e traduz para movimentos entendíveis pelo robô
X80. Esses dados traduzidos são enviados via roteador wifi para o robô, que executa o
movimento associado ao comando recebido.
Além disso, o operador também conta com as informações da câmera e dos
sensores do robô, todos enviados ao computador do usuário também por wifi.
171
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Robô X80
Roteador wifi
Computador com o Leap
Motion
Figura 8. Arquitetura do sistema de teleoperação.
Os movimentos utilizados foram movimentos simples o suficiente para dar a
direção ao robô: a mão fechada tem-se um comando para o robô parar; a mão com
palma fechada e apontada para um dos lados, indica que o robô deve girar em torno do
próprio eixo para o lado indicado pela (Figura 9(a)); a mão aberta apontada para indica
que o robô deve realizar um movimento linear para frente; a mão aberta apontada para
algum lado, é o comando para o robô fazer curvas suaves na direção indicada pela mão
(Figura 9(b)). Visto que o robô consegue girar em torno de seu próprio eixo, não foi
inserido o movimento de ré.
(a)
(b)
Figura 9. Movimentos das mão para o robô fazer giro e curvas.
A interface do software de teleoperação pode ser vista na Figura 10. É possível
ver no canto superior esquerdo a janela de visualização das imagens capturadas pelo
robô. As demais informações dos sensores podem também ser conferidas em seus
devidos campos. É possível também, nessa interface, controlar a velocidade do robô e o
posicionamento da câmera.
172
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 10. Interface do software de teleoperação[Dr. Robot, 2009].
Testes foram realizados com o sistema implementado e o robô obedeceu bem
aos comandos, todas as instruções inseridas foram obedecidas. O robô se locomoveu
para todas as direções e as curvas também puderam ser feita com o robô em movimento,
não havendo a necessidade de parar o robô para fazer curvas.
4. Considerações Finais
Este trabalho apresentou um sistema de teleoperação de um robô móvel com o
dispositivo de realidade virtual Leap Motion para controlar os movimentos do robô.
Além do controle de movimentos, o sistema de teleoperação permite que o operador
humano tenha informações do ambiente no qual o robô está inserido, por meio da
câmera e dos sensores do robô. Com isso, esse sistema pode ser utilizado em situações
reais de exploração e monitoramento de ambientes hostis.
Como trabalhos futuros pode-se aplicar melhorias no controle, com as quais
poderia se obter curvas mais precisas e velocidades mais controláveis com o movimento
da mão. Além disso, pode-se aproveitar a capacidade de o Leap Motion detectar ambas
as mãos para que, com uma delas o usuário controle os movimentos do robô e com a
outra, o usuário controle os movimentos da câmera no robô.
Referencias
Burlamaqui, A. F., Souza, A. A. S., Bezerra, J. P. A., Dantas, R. R., Schneider, C. A.,
Xavier, J., Gonçalves, L. M. G. (2006) “Multimedia Framework for Collaborative Interaction of People and Robots Through the Web”, IEEE International Conference on
Virtual Environments, Human-Computer Interfaces, and Measurement Systems –
VECIMS 2006, La Coruña, Epanha.
Dr. Robot (2009) “Wifi Mobile Robot Development With extreme mobility and
video/áudio Capability: Quick start guide”. Canadá.
173
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Leap
Motion
(2016).
Disponível
em
https://developer.leapmotion.com/documentation/v2/csharp/index.html> acesso em:
17 de set. de 2016
Lum, M. J. H., Rosen, J., King, H., Friedman, D. C. W., Lendvay, T. S., Wright, A. S.,
Sinanan, M. N., Hannaford, B. (2009) “Teleoperation in surgical robotics – network
latency effects on surgical performance”, Annual International Conference of the
IEEE Engineering in Medicine and Biology Society - EMBC 2009.
Souto, J.R.A (2014) “SISNAV – X80 Um Sistema de Navegação Para o Robô Móvel
80”, Monografia (Graduação em ciência da computação) – Universidade do Estado
do Rio Grande do Norte Campus de Natal.
Wadhawan, Y., Gupta, S. (2012), “Tele-Operation of Web Enabled Wireless Robot for
Old Age Surveillance”, Advances in Computer Science and Information Technology.
Computer Science and Engineering, Ed. Spriger.
174
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Heurı́stica para Planejamento de Caminho de Robôs
usando representação por grade 2.5D
Maria Gracielly Fernandes1 , Bruno Agenor1 , Rosiery Maia1 , Anderson A. Souza1
1
Departamento de Computação – Universidade do Estado do Rio Grande do Norte
Natal – RN – Brasil
{gracielly fernandes23,bruno.basswn}@hotmail.com,
{rosierymaia,andersonabner}@uern.br
Abstract. This paper shows a heuristic for robot path planning, from an environmental representation through maps occupancy grid, initially with discrete
and three-dimensional information. The application of heuristic goes from the
treatment of the 3D mapping data structure to another 2.5D, where each cell
stores a conditional placement up to the mapped object. Thus, the heuristic is
able to decide on the possibilidde to navigate over the obstacle or not, according to the intrinsic characteristics of the robot. Empirical experiments (with
simulated robots) validate the method built for planning paths.
Resumo. Este trabalho mostra uma heurı́stica para planejamento de caminho
de robôs, partindo de uma representação do ambiente através de mapas em
grades de ocupação, inicialmente com informações discretas e tridimensionais.
A aplicação da heurı́stica vai desde o tratamento dessa estrutura de dados 3D
mapeando-a para outra 2.5D, em que cada célula armazena uma ocupação
condicionada à altura do objeto mapeado. Dessa forma, a heurı́stica é capaz
de decidir sobre a possibilidde de navegar sobre o obstáculo ou não, de acordo
com as caracterı́sticas intrı́nsecas do robô. Experimentos empı́ricos (com robôs
simulados) validam o método construı́do para planejamento de caminhos.
1. Introdução
A robótica é uma das áreas das ciências exatas e tecnológicas que mais se desenvolveu
nos últimos anos. A utilização de robôs para a realização de tarefas com o intuito de
auxiliar e/ou substituir os humanos em atividades diárias, vem se tornando cada vez mais
frequente e, com isso, novas aplicações em diversas áreas vêm surgindo a cada dia. Os
robôs podem auxiliar ou substituir o homem em tarefas corriqueiras, como em uma linha
de produção industrial, ou em tarefas executadas em ambientes que conferem risco à vida
humana, como por exemplo, no fundo do mar, em proximidades de incêndios, em terrenos
minados ou em áreas com contaminação radioativa [Pedrosa 2001].
De uma maneira mais formal, a robótica como sendo a ciência de perceber
e manipular o mundo fı́sico através de dispositivos controlados computacionalmente
[Trhun et al. 2005]. Dessa forma, é fácil compreender que essa área abrange o estudo
de robôs, os quais podem ser agrupados em duas principais categorias: robôs manipuladores e robôs móveis. Na robótica de manipuladores, se encontra o grupo de robôs cujas
atividades são realizadas a partir de um ponto fixo (chamado de base), tendo seus movimentos limitados a uma área em torno dessa base [Siegwart and Nourbakhsh 2004]. Já no
175
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
grupo dos robôs móveis, se encontram os robôs que possuem a capacidade de se mover
por uma grande área e habilidade de realizar suas atividades de maneira dinâmica. Nesse
caso, os robôs podem ser autônomo ou não [Souza 2008].
A navegação é uma das aplicações desenvolvidas com a utilização dos robôs
móveis. Nela, o robô tem a capacidade de se locomover em um determinado ambiente,
percorrendo uma trajetória especı́fica de maneira autônoma. Segundo [Souza 2012], um
dos grandes desafios para a comunidade dos roboticistas é fazer com que os robôs móveis
executem suas tarefas de forma eficiente e segura com o mı́nimo de interferência humana. Espera-se que, cada vez mais, os robôs sejam mais dotados de autonomia, sejam
em aplicações domésticas (aspiradores de pó, cortadores de grama), industriais (transporte automatizado), urbanas (transportes públicos, cadeiras de rodas robotizadas), militares e defesa civil (sistemas de monitoramento aéreo remoto, transporte de suprimentos
em zonas de guerra, sistemas táticos de combate, patrulhamento de ambientes, resgate e
exploração em ambientes hostis, combate a incêndios) [Wolf et al. 2009].
A navegação autônoma trata da capacidade do robô móvel se locomover no ambiente, sem a necessidade de intervenção humana, de forma eficiente e segura. A partir
da representação dos obstáculos do ambiente em um modelo (mapa), o robô deverá se
movimentar partindo de sua configuração (posição) inicial objetivando chegar em uma
configuração final, desviando-se de obstáculos e buscando, idealmente, percorrer o melhor caminho. Se a área de movimentação do robô for restringida por paredes, objetos,
pessoas, ou outros obstáculos, ele deve encontrar seu caminho para evitá-los e alcançar
sua posição de destino. Finalmente, o robô deve sempre conhecer sua posição em relação
ao seu objetivo final.
Muitas questões envolvidas na navegação de robôs podem ser resolvidas com a
ajuda de um mapa, que é uma representação espacial da localização de elementos do
ambiente. Na navegação autônoma, os elementos representados em um mapa podem ser
utilizados, por exemplo, para planejar um caminho entre a posição atual do robô e seu destino, especialmente se o mapa representar as áreas por onde é permitido navegar. Neste
trabalho, é utilizado um mapa com a posição dos obstáculos do ambiente, adicionando
um atributo correspondente à altura desses obstáculos. Dessa forma, a heurı́stica é capaz de verificar o melhor caminho a ser percorrido no ambiente, dadas as caracterı́sticas
intrı́nsecas do robô.
2. Navegação robótica
O processo de navegação de robôs pode ser subdividido em cinco etapas sequenciais
que devem ser seguidas e executadas, conforme mostra a Figura 1 [Alsina et al. 2002,
Santana 2011].
Figura 1. Sequência das cinco etapas do processo de navegação autônoma:
mapeamento, localização, planejamento de caminho, geração da trajetória e
execução.
176
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
• Etapa 1: o mapeamento é responsável por construir um mapa do ambiente e armazenar no robô, de modo que o mesmo possa reconhecer espaços vazios e espaços
com obstáculos. Esse mapa pode ser uma grade de ocupação, que define aproximadamente todos os componentes situados no ambiente.
• Etapa 2: a localização determina a configuração do robô, que consiste na posição
e na orientação.
• Etapa 3: o planejamento de caminho projeta um caminho factı́vel pelo robô, a
partir da configuração (posição) inicial até a configuração final, sempre buscando
desviar dos obstáculos.
• Etapa 4: a geração de trajetória é responsável por definir um caminho (ou trajetória), que deve ser adaptado às restrições temporais especı́ficas do ambiente,
além de calcular a velocidade com que o robô deve se movimentar.
• Etapa 5: a execução manipula os atuadores do robô, a partir da trajetória ideal já
definida.
O mapeamento pode ser realizado em diferentes tipos de espaços, seja em ambientes internos (indoor), externos (outdoor), subterrâneos ou subaquáticos [Souza 2012].
Quanto à aplicação, os mapas construı́dos podem ser considerados na realização de diversas tarefas, desde as mais simples (desvio de obstáculos, planejamento de caminhos
e localização), às tarefas de maior complexidade (exploração de minas subterrâneas e
de instalações nucleares, limpeza de ambientes tóxicos, combate a incêndios, resgate de
vı́timas).
Quanto às caracterı́sticas robóticas requeridas, os mapas podem ser utilizados por
robôs de diferentes capacidades motoras, seja um micro-veı́culo aéreo para mapear ambientes para fins de localização e planejamento de caminho [Dryanovski et al. 2010];
um time de robôs terrestres que utilizam um mapa para exploração e detecção de fogo
em um ambiente [Marjovi et al. 2009]; ou um robô subaquático que utiliza um algoritmo de mapeamento para atuar em vigilância de portos e inspeções de casco de navios
[Johannsson et al. 2010].
A grade de ocupação 2.5D é um método de mapeamento robótico de ambientes internos e/ou externos, utilizado em [Souza 2012], baseado em um sistema de visão
estéreo, que usa uma representação de informações tridimensionais inspirada em uma
abordagem métrica probabilı́stica do ambiente. Com esse sistema de visão, o robô pode
coletar informações de diferentes lugares com variados tipos de obstáculo. O algoritmo
de mapeamento considera uma modelagem probabilı́stica que resulta em mapas coerentes
com as informações sensoriais colhidas pelo robô utilizado. Esse processo de construção
do mapa em grade de ocupação 2.5D se dá a partir de dados processados e interpretados
pelo sistema de visão e da pose estimada do robô (coordenadas e orientação).
Partindo de uma representação do ambiente, deve haver um planejamento de caminho, que significa encontrar uma trajetória livre de colisão de um ponto inicial a um
destino satisfazendo algum critério, tal como, menor consumo de energia, menor caminho, menor tempo, dentre outros. A maioria das técnicas que tratam esse problema adota
o critério de menor caminho [Raja and Pugazhenth 2012].
177
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
3. Planejamento de Caminho
O planejamento de caminho (ou trajetória) em robótica móvel tem como objetivo prover aos robôs a capacidade de planejar seus próprios movimentos, sem a necessidade de
interferência humana. Muitos são os trabalhos que visam prover uma contribuição significativa para o problema da navegação autônoma. Contudo, para que o robô possa executar
a trajetória planejada, é necessário que o mesmo tenha conhecimento do ambiente em que
irá se locomover. Ou seja, que o robô possua o mapa do ambiente ou que o mapa seja
formado em tempo de execução, de acordo com a locomoção do robô.
Para obter o planejamento de caminho livre de obstáculos, alguns trabalhos merecem ser citados. [Souza 2008] propôs a utilização do método de decomposição celular para a discretização do espaço de estados de um robô e desenvolveu uma estratégia baseada na modificação do algoritmo de busca A-Estrela [Hart et al. 2012].
[Gasperazzo 2014] implementou um algoritmo hı́brido, sendo a meta-heurı́stica Enxame
de Partı́culas (Particle Swarm Optimization - PSO) [Kennedy and Eberhart 1995] que utiliza o algoritmo A-Estrela, em ambientes estáticos e para veı́culos holonômicos e não holonômicos. Outros trabalhos obteveram bons resultados para situações complexas, como
[Alba 2009, Dolgov 2010, Dunwei and Ming 2009].
Esta pesquisa contribui no desenvolvimento de uma opção para obtenção de um
caminho factı́vel para um robô móvel, dado que o ambiente entá representado por um
mapa 2.5D, diferenciando-se dos trabalhos enunciados.
3.1. Heurı́stica desenvolvida
Esta pesquisa utiliza a ideia do mapemento por grade de ocupação-elevação 2.5D, realizando algumas alterações sobre as informações representadas. Nesse mapa, estão representados os obstáculos do ambiente, associados às alturas iniciais e finais. Para facilitar o
entendimento, a Figura 2 mostra um ambiente fictı́cio representado com dois obstáculos.
Percebe-se que um dos obstáculos está flutuando no ambiente e outro está em contato com
o chão. Esses dois tipos de obstáculos (o aéreo e o terrestre) são tratados através de suas
alturas inicial (ai ) e final (af ). Dessa forma, é possı́vel identificar os locais por onde o
robô poderá percorrer exatamente, avaliando-se as alturas dos obstáculos e considerando
o padrão de hardware do robô.
Figura 2. Mapa com representação de obstáculos aéreos e terrestres, que são
espeficados em função de sua localização na grade e suas alturas de elevação
inicial (ai ) e final (af ).
178
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Para o planejamento do caminho, é necessário que uma sequência de passos seja
obedecida, que está informada no fluxograma da Figura 3. Inicialmente, são executados
dois procedimentos simultaneamente: selecionar robô e receber mapa. Em seguida, uma
seguência de procedimentos são acionados: receber obstáculos, atualizar mapa, aplicar a
heurı́stica, enviar a trajetória para o robô.
Figura 3. Fluxograma de passos necessários para obtenção da trajetória do robô
através da heurı́stica.
• Selecionar robô: escolhe qual é o robô que deverá efetuar a execução da trajetória.
• Receber mapa: obtém o mapa que representa o ambiente. Esse mapa compreende
apenas a representação do espaço, sem a presença dos obstáculos.
• Receber obstáculos: insere cada obstáculo presente no ambiente, passando por
parâmetro a posição do obstáculo (x, y) e sua elevação (altura inicial ai e final
af ).
• Atualizar mapa: realiza um tratamento no mapa, avaliando a elevação dos
obstáculos em função do tamanho do robô. Caso ele seja maior do que a altura inicial do obstáculo, então trata-se de um obstáculo real. Caso contrário, esse
obstáculo não será retirado do mapa.
• Aplicar a heurı́stica: planeja o caminho, propriamente dito. É necessário passar a
posição do robô inicial (xi , yi ) e final (xf , yf ), o tamanho do mapa (quantidade de
linhas nlinhas e colunas ncolunas) e o robô escolhido (para obter seu tamanho).
• Enviar a trajetória: envia os comandos para que o robô execute a trajetória (caminho). Até o momento, esse comando está sendo enviado para o simulador do robô
Pioneer 3-AT.
3.1.1. Geração da trajetória
Para a geração da trajetória pelo sistema é utilizada o algoritmo de Manhattan, que pode
ser definido como sendo uma heurı́stica baseada na atribuição de pesos ao Campo Potencial. Nesse caso, um robô é representado por um ponto localizado no Espaço de
Configuração e os movimentos realizados pelo robô levam em consideração um caminho especificado, de acordo com o gradiente negativo de um Campo Potencial. Em outras
palavras, essa abordagem atribui um Potencial Atrativo para a posição final do robô e um
Potencial Repulsivo aos obstáculos. O Potencial Atrativo é independente dos obstáculos
e o Repulsivo é independente da posição final. Contudo, a soma desses Campos Potencias (de Atração e de Repulsão) age sobre o robô, uma vez que, se ele seguir o gradiente,
espera-se que ele atinja seu objetivo evitando os obstáculos [Almeida 2011].
O Algoritmo de Manhattan visa o preenchimento do mapa, onde é gerado um Potencial para cada célula de forma crescente a partir da célula que contém a posição final
que o robô precisa alcançar. A Figura 4(a) mostra um mapa preenchido de acordo com
179
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
esse algoritmo. A célula que contém a posição final (qf , destacada com amarelo) recebe o
Potencial nulo. Em seguida, suas adjacentes recebem o Potencial da célula central acrescido de uma unidade. Continuamente, as células adjacentes também recebem Potenciais
acrescidos de uma unidade de suas vizinhas. Esse procedimento continua até que todo
Mapa esteja preenchido por um Potencial. É importante mencionar que os obstáculos
representados pelas células em cinza não são levados em consideração durante o preenchimento das células livres, não possuindo um Potencial alocado.
Figura 4. Geração de Campo Potencial através do Algoritmo de Manhattan, em
um ambiente representado por um mapa. A célula vermelha é a posição inicial
(qini ), a amarela é a posição final (qf im ), as cinzas indicam obstáculos, as brancas
indicam o Potencial definido com o algoritmo e as que estão destacadas de verde
informam a trajetória gerada.
Após o preenchimento do mapa, inicia-se a etapa de busca pelo melhor caminho. Existem várias abordagens de busca, como o Algoritmo A-Estrela, no entanto, essa
pesquisa implementa o método e utiliza o conceito de ”Vizinhança-em-Oito”, ou N 8(P )
[Goldbarg and Luna 2005]. Neste tipo de abordagem, o mais importante é a seleção da estrutura da vizinhança, ou seja, a forma que ela será definida. Quanto maior a vizinhança,
melhor é a qualidade das soluções encontradas. A Figura 5 mostra a representação da
vizinhança N 8(P ) de um estado P de coordenadas (x, y). O espaço de busca está representado em forma de mapa, com um conjunto de 8 vizinhos da coordenada central
(x, y). O algoritmo analisa essas 8 células vizinhas e busca a de menor Potencial, até que
a célula encontrada seja a célula final. Finalmente, é traçado um caminho que o robô deve
percorrer.
Figura 5. Disposição das coordenadas das 8 células vizinhas N 8(P ), de uma
célula central de coordenadas (x, y).
Na Figura 4(b) é demostrado o resultado da aplicação do algoritmo N 8(P ) para
a geração da trajetória. O caminho gerado está destacado de verde. A célula de cor
vermelha representa a posição inicial do robô (onde ele deve iniciar o seu percurso), a que
está com a cor amarelal representa a posição destino do robô (onde ele deve concluir o
seu percurso) e as de cor cinza simbolizam obstáculos contidos no ambiente, ou seja, por
onde o robô não deve se locomover. A partir desse momento, o controlador cinemático
de posição gera os comandos de controle (velocidades linear e angular) para acionar os
atuadores do robô, de modo que o mesmo execute a trajetória planejada.
180
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
4. Experimentos e resultados
Para a validação da heurı́stica, foram realizados testes em um ambiente fechado, de dimensão 3,8x6,0 m2 . Cada célula do mapa corresponde a um espaço real de dimensão
0,2x0,2 m2 . O mapa (ou grade) possui 19 células na horizontal e 30 na vertical. As
informações de elevação são inseridas durante a execução da heurı́stica.
A Figura 6 ilustra o mapa do ambiente, simplificado nas coordenadas 2D (x, y).
Ele demonstra uma célula (representada pela cor azul) que indica a posição de saı́da (inicial), e outra (de cor vermelha) que indica a posição final. Mais especificamente, a posição
inicial no ambiente real corresponde ao ponto (3,0; 1,4), representando 3,0 e 1,4 metros,
nessa ordem. Já a final, corresponde ao ponto (3,0; 4,4), representando 3,0 e 4,4 metros,
respectivamente. As células representadas pela cor verde indicam o caminho gerado com
a execução do Algoritmo de Manhattan.
Figura 6. Representação da trajetória gerada pela heurı́stica, em ambiente representado por mapa, de dimensão real 3,8x6,0 m2 . As células brancas indicam
lugares livres, as cinzas indicam os obstáculos, a vermelha é a posição inicial e
a azul indica a posição final. A trajetória gerada está destacada de verde.
181
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
O caminho especificado pelo simulador do robô, com a realização desse experimento, está representado na Figura 7. É possı́vel perceber que esse resultado constata que
o simulador mostrou o caminho desejado e a heurı́stica funciona de maneira eficaz. De
acordo com esse dado, é possı́vel inferir que o resultado obtido foi o esperado, já que a
trajetória lançada pelo simulador do robô foi semelhante à trajetória especificada na etapa
de planejamento de caminho.
Figura 7. Representação da trajetória executada pelo simulador do robô, seguindo a orientação do caminho planejado pela heurı́stica.
5. Conclusão
Neste trabalho foi apresentado uma heurı́stica para planejamento de caminho para robô
em ambiente fechado. Esse ambiente estava, inicialmente, representado por um mapa
2.5D, conforme proposto por [Souza 2012], mas depois sofreu uma atualização de acordo
com as caracterı́sticas intrı́nsecas do robô. A heurı́stica, por sua vez, tem a função de fazer
o robô partir de sua configuração inicial e percorrer um caminho até uma configuração
final especı́fica, desviando dos possı́veis obstáculos contidos no ambiente. Foram necessárias quatro etapas para o desenvolvimento desse trabalho: receber obstáculos, atualizar mapa, aplicar a heurı́stica, enviar a trajetória para o robô.
O ambiente fechado utilizado para validação do sistema foi o Laboratório de
Aprendizagem Robótica - LAR do Campus de Natal da Universidade do Estado do Rio
Grande do Norte - UERN, de dimensões 3,8x6,0 m2 . Como já dito, para a representação
foi utilizado mapa 2.5D. A posição inicial do robô foi representada com a especificação de
uma célula no mapa, e da mesma forma, a posição final (onde o robô deveria chegar após
percorrer a trajetória). Para a geração da trajetória foi utilizado o algoritmo de função
Manhattan, e para sua execução foi utilizado um simulador.
Com base nos experimentos empı́ricos realizados, conclui-se que heurı́stica implementada funcionou de maneira satisfatória, confirmando a eficácia da representação
do ambiente através do mapa atualizado com as informações das elevações (alturas) dos
obstáculos e da geração da trajetória utilizando o Algoritmo de função Manhattan. Diante
dessa conclusão, inicia-se o processo de execução da trajetória, gerada pela heurı́stica, em
robôs reais.
182
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Referências
Alba, E. (2009). Optimization techniques for solving complex problems. Hoboken (Wiley
series on parallel and distributed computing).
Almeida, C. E. (2011). Navegação de robô móvel utilizando decomposição do ambiente
em células e funções potenciais. Monografia. Escola de Engenharia de São Carlos da
Universidade de São Paulo.
Alsina, P. J., Gonçalves, L. M. G., Medeiros, A., and Vieira, D. P. F. C. (2002). Navegação
e controle de robôs móveis. Mini-Curso: Congresso Brasileiro de Automática (CBA).
Dolgov, D. (2010). Path planning for autonomous vehicles in unknown semi-structured
environments. International Journal of Robotics Research, v. 29, n. 5, pages 485–501.
Dryanovski, I., Morris, W., and Xiao, J. (2010). Multi-volume occupancy grids: an efficient probabilistic 3d mapping model for micro aerial vehicles. Proc. of IEEE/RSJ
International Conference on Robotics and Systems, pages 1553–1559.
Dunwei, G. L. and Ming, L. (2009). Robot path planning in uncertain environments based
on particle swarm optimization. IEEE Congress on Evolutionary Computation, pages
2127–2134.
Gasperazzo, S. T. (2014). Um algoritmo pso hı́brido para planejamento de caminhos em
navegação de veı́culos utilizando a*. Dissertação (Mestrado em Informática). Universidade Federal do Espı́rito Santo, Centro Tecnológico.
Goldbarg, M. C. and Luna, H. P. (2005). Otimização combinatória e programação linear.
Elsevier, 2th edition.
Hart, P., Nilsson, N., and Raphael, B. (2012). A formal basis for the heuristic determination of minimum cost paths. IEEE Transactions on Systems Science and Cybernetics,
v. 4, n. 2, pages 100–107.
Johannsson, H., Kaess, M., Englot, B., Hover, F., and Leonard, J. (2010). Imaging sonaraided navigation for autonomous underwater harbor. Proc. of IEEE/RSJ International
Conference on Intelligent Robots and Systems, pages 4396–4403.
Kennedy, J. and Eberhart, R. (1995). Particle swarm optimization. IEEE International
Conference on Neural Networks, v. 4, pages 1942–1948.
Marjovi, A., Nunes, J. G., Marques, L., and Almeida, A. (2009). Multi-robot exploration
and fire searching. Proc. of IEEE/RSJ International Conference on Intellingent Robots
and Systems, pages 1929–1934.
Pedrosa, D. P. F. (2001). Sistema de navegação para robôs móveis autônomos.
Dissertação. Programa de Pós-Graduação em Engenharia Elétrica e de Computação
da Universidade Federal do Rio Grande do Norte.
Raja, P. and Pugazhenth, S. (2012). Optimal path planning of mobile robots: A review.
International Journal of Physical Sciences, v. 7, n. 9, pages 1314–1320.
Santana, A. M. (2011). Localização e mapeamento de ambientes planos usando visão
monocular e representação hı́brida do ambiente. Tese. Programa de Pós-Graduação
em Engenharia Elétrica e de Computação da Universidade Federal do Rio Grande do
Norte.
183
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Siegwart, R. and Nourbakhsh, I. R. (2004). Introduction to Autonomous Mobile Robot.
MIT Press, 2th edition.
Souza, A. A. S. (2008). Mapeamento com sonar usando grade de ocupação baseado em
modelagem probabilı́stica. Dissertação. Programa de Pós-Graduação em Engenharia
Elétrica e de Computação da Universidade Federal do Rio Grande do Norte.
Souza, A. A. S. (2012). Mapeamento robótico 2,5-d com representação em grade de
ocupação elevação. Tese. Programa de Pós-Graduação em Engenharia Elétrica e de
Computação da Universidade Federal do Rio Grande do Norte.
Trhun, S., Burgard, W., and Fox, D. (2005). Probabilistic Robotics. MIT Press, 2th
edition.
Wolf, D. F., Simões, E. V., Osório, F. S., and Junior, O. T. (2009). Robótica móvel
inteligente: Da simulação às aplicações no mundo real. Mini-Curso: Jornada de
Atualização em Informática (JAI), Congresso da SBC.
184
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Artigos Curtos
185
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
186
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
187
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
188
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
189
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Proposta de Sistema de Reaproveitamento de Água em
Laboratórios de Química nas universidades do RN
Aryanne Gabrielle S. de Brito, Pedro Paulo A. de Sena, Isaac B. T. da Silva,
Leonardo A. Casillo.
Universidade Federal Rural do Semi-Árido (UFERSA)
Mossoró – RN – Brasil
[email protected], [email protected],
[email protected], [email protected]
Abstract. The increasing on the consumption of water in the various activities
of everyday make the water levels diminish each year. Such waste can also be
observed within the universities and, at certain points, can be reduced with the
adoption of smart practices. In order to reduce water wastage caused by the
constant use of distillers located in chemistry labs, this paper proposes the
production of an automated water reuse system to be initially installed in
public universities in the state.
Resumo. O crescente consumo de água para as diversas atividades do dia a dia
fazem com que os níveis de água potável diminuírem a cada ano. Tal
desperdício também pode ser observado dentro das universidades e, em certos
pontos, podem ser reduzidos com a adoção de práticas inteligentes. Visando a
redução do desperdício de água ocasionada pelo uso constante dos destiladores
localizados nos laboratórios de química, este artigo propõe a produção de um
sistema automatizado de reaproveitamento de água a ser instalado inicialmente
nas universidades públicas do estado.
Introdução
As práticas diárias do ser humano moderno produzem impactos sociais e naturais de
maior ou menor magnitude, sendo grande parte deles irreversíveis. Dentre os problemas
mais comuns, encontra-se o desperdício de água, decorrente da realização de diversas
atividades do dia a dia. Apesar das campanhas de conscientização sobre o tema, o gasto
desnecessário de água não mostra reduções significantes.
Baseando-se nesses dados, devemos buscar formas de reduzir o consumo de
água em quaisquer locais que isto se mostre possível. Em nossas universidades, local de
passagem de diversos alunos, professores e gestores, além da comunidade local, essas
práticas sustentáveis devem ser incentivadas e divulgadas, para que alcance o maior
número de pessoas possível. A redução deve ocorrer desde os banheiros e demais
pontos de consumo direto pelos transeuntes, até os laboratórios e salas de pesquisa em
que grande quantidade de água seja utilizada com frequência.
Analisando a problemática, propõe-se a produção de um sistema de
reaproveitamento de água para resfriamento de um destilador, reduzindo parcialmente o
190
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
consumo e desperdício de água nos laboratórios, em especial das disciplinas de química,
onde o uso deste equipamento é necessário diariamente, das universidades públicas do
Rio Grande do Norte.
A ideia inicial surgiu após reclamação dos professores e técnicos de laboratório
de química da UFERSA – Campus Mossoró acerca do grande desperdício de água em
experimentos de destilação, onde ocorre o uso do condensador, visto que, para o uso
desse aparelho, há a necessidade do uso de uma grande quantidade da mesma. A água
utilizada vem diretamente do reservatório do edifício e, após a passagem pelo
condensador, é descartada, apesar de ainda estar limpa, por não haver forma de
armazenamento adequada dessa água.
Esta ideia também pode ser utilizada em outros sistemas para reaproveitamento
de água, como coolers hidráulicos para uso em diversos equipamentos dissipadores de
calor.
Objetivos Gerais
O projeto tem como principal objetivo a proposta, estudo e elaboração de um sistema de
reaproveitamento de água a ser instalado nos condensadores utilizados nos laboratórios
de química das universidades, institutos e escolas do Rio Grande do norte, com a
finalidade de reduzir o desperdício de água.
Objetivos Específicos
O projeto possui, dentre os seus objetivos específicos:
- Evitar o descarte da água utilizada em processos de destilação;
- Realizar o armazenamento da água para uso posterior;
- Estudo das variáveis envolvidas no funcionamento do sistema;
- Implementação em todos os laboratórios da UFERSA em que o uso do sistema
seja necessário;
- Expansão do sistema para quaisquer instituições que possuam a mesma
necessidade apresentada;
- Em longo prazo, redução nas contas de água da instituição.
Metodologia e Procedimento
O projeto busca uma forma de construir um tanque de água acoplado a um motor
propulsor, capaz de realizar o bombeamento da água contida no reservatório para as
mangueiras do condensador. O tanque deve possuir volume suficiente para que a água
possa fluir entre as mangueiras e o condensador, e ainda manter um nível considerável
no tanque, para evitar mau funcionamento da bomba de água. Para o projeto, foi
idealizado o uso de um tanque de aproximadamente 20 litros, tomando como base a
quantidade de água utilizada para 1 litro de água ser destilada.
191
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
As condições da água no tanque devem ser medidas com o auxílio de um sensor
de nível, que verificará o volume de água disponível dentro do reservatório, posicionado
em um ponto adequado do mesmo. Em condições ideais de funcionamento, o motor
pode ser ligado e desligado manualmente. Além disso, o projeto deve contar com um
indicador das condições da água no tanque. No caso específico do protótipo idealizado,
o indicador será montado com o uso de dois LEDs (Light Emitting Diode, em
português: Diodo Emissor de Luz) que, após o Arduino receber as informações do
sensor, indica se as condições do sistema são ideais.
Figura 1. Sistema de destilação simples montado em laboratório.
Na figura 1, mostrada acima, vemos um esquema de destilação simples montada em
laboratório. No projeto idealizado, o local indicado como “Entrada de água” do
Condensador será ligado, com o uso de uma mangueira apropriada, à “Saída de água”
do reservatório, onde se localiza o motor de bombeamento (vide Figura 2). O local
indicado como “Saída de água” do Condensador será ligado, também com o uso de
mangueira apropriada, ao “Retorno de água” do tanque.
Devido ao fato de a água fria ser mais densa do que a água quente, esta tende a
se manter no fundo do tanque, fazendo com que a água que saia do reservatório através
do bombeamento seja a mais fria possível, proporcionando uma otimização do processo
de destilação. Pelo mesmo motivo, devemos fazer a instalação da mangueira de retorno
no ponto mais alto do reservatório e em sentido contrário ao da saída de água, visando
evitar que a água seja aquecida acima da temperatura normal e isto faça com que seu
uso se torne inviável para esta finalidade.
Figura 2. Esquema do projeto, contando com seus principais componentes.
192
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Conclusão
Conclui-se que o projeto idealizado, após o desenvolvimento, tem grandes chances de
implementação satisfatória, visto que trata de uma necessidade real. Esta é uma
problemática que influenciaria toda a comunidade acadêmica e, em longo prazo, poderia
incentivar práticas semelhantes em outras instituições de estados vizinhos, o que
afetaria, em condições ideais, a qualidade de vida dos habitantes da nossa região.
Sabe-se dos grandes problemas causados pela falta de água potável e devemos
realizar a economia da mesma sempre que pudermos. Práticas como essa devem ser
consideradas como um passo avante para chegarmos ao sistema ideal de economia de
água no mundo.
Referências
A
função do destilador de água em laboratórios. Disponível em
<http://www.bie.blog.br/equipamentos-para-laboratorio/a-funcao-do-destilador-deagua-em-laboratorios/> Acesso em 30 Mai. 2016.
COMO CONECTAR O SENSOR ULTRASSÔNICO HC-SR04 AO ARDUINO.
THOMSEN, Adilson. Disponível em <http://blog.filipeflop.com/sensores/sensorultrassonico-hc-sr04-ao-arduino.html> Acesso em 25 Mai. 2016.
Laboratório da UNIFAL-MG implementa sistema para aproveitamento de água.
ARAÚJO,
Ana
Carolina.
Disponível
em
<http://www.unifalmg.edu.br/comunicacao/laboratorioimplementasistemadeaproveitamenteagua>
Acesso em 19 Out. 2016.
REAPROVEITAMENTO DA ÁGUA DE REFRIGERAÇÃO DE DESTILADOR
PARA LAVAGEM DE VIDRARIAS EM LABORATÓRIO DE ANÁLISE
QUÍMICA BONFIM, Thays Rejane Silva. MAIA, Carlos Henrique. Disponível em
<http://www.unirv.edu.br/conteudos/fckfiles/files/REAPROVEITAMENTO%20DA
%20AGUA%20DE%20REFRIGERACAO%20DE%20DESTILADOR%20PARA%
20LAVAGEM%20DE%20VIDRARIAS%20EM%20LABORATORIO%20DE%20
ANALISE%20QUIMICA.pdf> Acesso em 19 Out. 2016.
Sistema capaz de reaproveitar a água utilizada para a produção de água destilada
no laboratório integrado de águas residuais e de mananciais – LIAMAR do
IFCE. Disponível em <http://melhorespraticas.mec.gov.br/arquivos/ceara.pdf>
Acesso em 19 Out. 2016.
193
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Lunapptico: Desenvolvimento de Software para Auxiliar na
Comunicação de Crianças Autistas do RN
Elizeu Sandro da Silva¹, Alyson Ricardo de Araújo Barbosa¹, Arlan de Medeiros¹,
Joêmia Leilane Gomes de Medeiros Martins¹, Welliana Benevides Ramalho¹,
Andrezza Cristina da Silva Barros Souza¹
1
Universidade Federal Rural do Semi-Árido (UFERSA)
Caixa Postal 59515-000 – Angicos – RN – Brasil
[email protected], [email protected],
[email protected], {leilane.gomes, welliana.ramalho,
andrezza}@ufersa.edu.br
Abstract. Autism is considered a pervasive developmental disorder, which may
represent a barrier to the intellectual and cognitive development of children
with this type of disability. In order to provide alternatives to them to
contribute to their integration in the social environment, this paper proposes
the development of a software called Lunapptico. For this, a detailed study
along the APAEs Angicos, Assu and Mossoro for to carry out the survey and
analysis requirements. The software will be developed considering the use of
quality criteria with a focus on usability and accessibility.
Resumo. O autismo é considerado um transtorno invasivo de
desenvolvimento, que pode representar uma barreira no desenvolvimento
intelectual e cognitivo de crianças com esse tipo de deficiência. Com o intuito
de propiciar à elas alternativas que contribuam para sua inserção no meio
social, este trabalho propõe o desenvolvimento de um software chamado
Lunapptico. Para isto, será realizado um estudo junto às APAEs de Angicos,
Assu e Mossoró para realizar o levantamento e análise de requisitos. O
software será desenvolvido considerando critérios de qualidade de uso com
enfoque na usabilidade e acessibilidade.
1.
Introdução
Este trabalho faz parte de um projeto de pesquisa, pertencente ao GERQS (Grupo de
Engenharia de Requisitos e Qualidade de Software), da Universidade Federal Rural do
Semi-Árido, campus de Angicos, submetido e aprovado com duas bolsas de Iniciação
Científica, selecionados para o Programa Institucional de Bolsas de Iniciação Científica
– PIBIC-AF, financiada pelo CNPq para Ações Afirmativas e outra para o Programa de
Iniciação Científica Institucional – PICI, financiado exclusivamente pela UFERSA, e
tem como proposta estudar e desenvolver um software de tecnologia assistiva que ajude
na comunicação e desenvolvimento das habilidades cognitivas de crianças autistas.
Segundo Bosa (2006), o autismo é considerado um transtorno invasivo de
desenvolvimento (TID), que envolve graves dificuldades cognitivas, que são
implicativos para desenvolver habilidades sociais e comunicativas, além de causar
deficiências mentais e de comportamento, como também interesses limitados e
repetitivos. O Transtorno do Espectro Autista (TEA) compromete as principais
características e funções que propiciam a inserção do ser humano na sociedade, como a
comunicação, interação e ainda provoca um déficit de comportamento. Desta forma
vem se tornando um desafio para pais de crianças autistas incluí-los no meio social.
194
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Com o intuito de minimizar os sintomas, contribuir para o desenvolvimento
social e garantir aos autistas as mesmas oportunidades das demais pessoas, surgiu a
ideia de desenvolver um aplicativo baseado em tecnologias assistivas: o Lunapptico.
O maior desafio é compreender as necessidades das pessoas com deficiência da
síndrome do autismo e elaborar os requisitos do sistema de acordo com suas precisões.
Para isso, será realizado o levantamento de requisitos necessários para a implementação
do sistema, que segundo Sommerville (2011), existem inúmeras técnicas que
contribuem para tal finalidade, que são as chamadas técnicas de elicitação de requisitos.
Dentre as técnicas de elicitação de requisitos existentes, serão aplicados
questionários, entrevistas e estudos etnográficos, junto às APAEs (Associação de Pais e
Amigos dos Excepcionais) de Assu, Angicos e Mossoró que associadas aos critérios de
usabilidade e acessibilidade da Interação Homem Computador (IHC), garantam que o
Lunapptico possa contribuir impactantemente com o desenvolvimento das capacidades
cognitivas de crianças autistas do estado do Rio Grande do Norte.
2.
Trabalhos Relacionados
Na literatura existem alguns trabalhos na área de Tecnologias da Informação e
Comunicação (TICs), que investigam soluções de software para melhorar a interação
social e o desenvolvimento intelectual de crianças autistas.
Avila (2011) apresenta o Sistema de Comunicação Alternativa e Letramento de
Pessoas com Autismo (SCALA), que é uma ferramenta de software educacional, cuja a
proposta é disponibilizar uma plataforma online especialmente direcionada às crianças
autistas, com o objetivo de apoiar o seu letramento e desenvolvimento de habilidades e
competências de comunicação. Souza et al (2012) propôs o WorldTour, que é um
software cuja a proposta é apresentar interfaces adaptativas capazes de entender as
diferentes necessidades de uma criança autista, além de várias atividades lúdicas que
exploram a curiosidade delas por diferentes lugares do mundo. Nessa dimensão, outro
interessante projeto de um software educacional, o Perceber, desenvolvido por de
Carvalho e Lima (2014) apresenta como proposta, apoiar o trabalho pedagógico
desenvolvido com estudantes autistas clássicos visando ajudar a criança a perceber que
através da comunicação ela pode conseguir mais rápido as coisas que deseja,
estimulando assim a comunicação, e consequentemente, contribuindo para minimizar
seus problemas comportamentais.
Nesta perspectiva, nota-se a carência de trabalhos que utilizem os critérios de
IHC. Segundo Barbosa (2010), é indispensável o estudo de IHC em desenvolvimento de
sistemas, devido aos fenômenos de interação existentes entre seres humanos e sistemas
computacionais, ao qual nos permite a compreensão para aperfeiçoarmos a concepção,
construção e inserção das tecnologias de informação e comunicação (TICs) na vida dos
envolvidos.
3.
Interação Homem Computador
Os sistemas computacionais voltados para a interação usuário-sistema devem considerar
características de interface e interação adequadas ao contexto de uso, de forma que o
usuário aproveite ao máximo o apoio computacional oferecido pelo sistema.
Diante disso, Barbosa (2010) descreve quatro critérios de qualidades de uso da
IHC, que são: usabilidade, experiência do usuário, acessibilidade e comunicabilidade. A
usabilidade é uma qualidade que se relaciona diretamente com o aprendizado e a
195
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
facilidade dele, como também a satisfação do usuário com o uso do sistema, ambos por
meio de sua interface. A experiência do usuário é descrita como a relação dos sistemas
interativos por meio das emoções e sentimentos ocasionados a quem os utiliza. A
acessibilidade, é definida como os meios que o sistema oferece aos usuários para
acessá-lo, proporcionando-os igualdade de acesso às pessoas com necessidades ou não.
Sobre comunicabilidade, o autor fundamenta como sendo a ferramenta que permite ao
beneficiário aproveitar ao máximo do sistema, como também à utilização de estratégias
adequadas de uso para cada situação.
Nessa perspectiva, Ferreira (2013) destaca a possibilidade do aprendizado do
autista em um ambiente computacional, uma vez que este apresenta comportamento
consistente, estruturado e explícito. Para possibilitar esse aprendizado, este trabalho
realizará uma análise que permita investigar quais os critérios de qualidade de uso da
IHC se enquadram nas reais necessidades encontradas nas crianças com espectro autista,
consideradas público alvo dessa pesquisa.
Para validar a aplicabilidade do Lunapptico ao contexto de uso será utilizado,
inicialmente, protótipos que auxiliem o designer no desenvolvimento e validação da
interface de interação do usuário com o sistema. À posteriori, serão utilizadas as
heurísticas apresentadas por Nielsen (1993), que é um método de avaliação onde são
diagnosticados problemas de usabilidade em uma interface com o usuário por meio da
análise e interpretação de um conjunto de princípios.
4.
Metodologia
Este trabalho será baseado na pesquisa de campo a ser realizada nas instituições
filantrópicas, como APAEs, com o intuito de analisar e estudar o comportamento de
crianças autistas na realização de suas atividades rotineiras, para entender o quanto a
síndrome afeta o desenvolvimento de suas capacidades cognitivas. Com o propósito de
elencar as funcionalidades do Lunapptico, será executado o levantamento de requisitos
juntamente com o desenvolvimento de protótipos que validem as reais necessidades das
crianças com a síndrome do espectro autista para com o sistema.
Estes requisitos, proverão a base para o desenvolvimento da aplicação. Serão
utilizados recursos computacionais que possuam licença de software livre e/ou
disponibilizados gratuitamente para fins didáticos. Simultaneamente com o
desenvolvimento, serão disponibilizadas versões intermediárias do aplicativo, como
forma de garantir o feedback do usuário para com os desenvolvedores, assim como
também poderão ser aplicados testes automatizados para verificar a usabilidade e
acessibilidade do sistema. Para garantir a usabilidade e acessibilidade, faz-se necessário
o estudo dos critérios de qualidade de uso da IHC, e concomitantemente, as diretrizes e
normas nacionais e/ou internacionais que permeiam o desenvolvimento do aplicativo
Lunapptico, com o fim de promover maiores benefícios aos seus usuários.
Para o desenvolvimento metodológico do projeto, é importante realizar um
cronograma das tarefas a serem desenvolvidas, tendo em vista a necessidade de
execução em um período máximo de um ano, onde são definidas a seguir: no primeiro
trimestre serão estudados sobre os níveis da deficiência do espectro autista, assim como,
os critérios de qualidade de uso da IHC, o que permitirá a descoberta dos requisitos
necessários para o desenvolvimento do Lunapptico. No segundo trimestre, será dado
continuidade à fase de implementação do aplicativo, a partir dos protótipos que serão
desenvolvidos. O terceiro trimestre será reservado ao desenvolvimento do aplicativo,
assim como serão feitos os testes de usabilidade, de acessibilidade, que permitirão a
196
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
comunicabilidade do usuário com o sistema, efetuando assim, a sua validação. O último
trimestre, permitirá os ajustes finais do aplicativo, bem como a elaboração e escrita de
relatórios finais que transcorrerão à apreciação aos órgãos financiadores da pesquisa, e
também, a produção e submissão de artigos científicos.
5.
Conclusão
De acordo com os propósitos explanados ao longo deste artigo, as crianças autistas que
apresentam um TID, e que interagem com softwares aplicativos tem o seu
desenvolvimento cognitivo estimulado, o que proporciona um melhor desempenho nas
suas interações sociais no cotidiano. Com o objetivo de instituir ações mais eficazes e
úteis para atender esse público com a deficiência do autismo, pretende-se causar os
seguintes impactos na sociedade: disseminar o uso contínuo do Lunapptico nas
entidades filantrópicas APAEs dos municípios anteriormente citados, através de ações
emergentes que contribuam, principalmente, para assegurar melhorias na vida social das
crianças assistida por este projeto.
Não menos importante, serão oferecidas para essas crianças a capacidade de
rearticular a concentração, a percepção e a oralidade, dentre elas, a percepção e a
memória, de maneira que sejam desenvolvidas, consequentemente, os fazendo adquirir
novas habilidade de interação. Sendo assim, espera-se que o Lunapptico seja um meio
interativo e capaz de facilitar o desenvolvimento e intelecto das crianças que irão
utilizá-los.
6.
Referências Bibliográficas
Avila, B. G. (2011) “Comunicação aumentativa e alternativa para o desenvolvimento da
oralidade de pessoas com autismo”, In Dissertação - UFRGS, Porta Alegre.
Bosa, C. (2006) “Autismo: intervenções psicoeducacionais”, In Revista Brasileira de
Psquiatria. v.28.
Barbosa, S. D.J. and Silva, B. S. (2010) “Interação Humano-Computador”, CampusElsevier.
Carvalho, A., Lima, F. V. (2014) “Perceber: software educacional de atividades para o
desenvolvimento da percpção visual de estudantes autistas clássicos”, In Monografia
- UNB, Brasília.
Ferreira, M. P. B. (2013) “Algoritmos de detecção do comportamento de autistas –
Análise comparativa”, In Dissertação - UC, Coimbra.
Nielsen, J. (1993) “Usability Engineering”. San Francisco: Morgan Kaufman.
Sommerville, I. (2011) “Engenharia de Software”, 9ª ed., São Paulo: Pearson Addison
Wesley.
Souza, F. R. M., Costa, E. A. B., Castro, T. H. C. (2012) “WorldTour: sofware para
suporte no ensino de crianças autistas”, In Anais do XXII Simpósio Brasileiro de
Informação na Educação”, 9ª ed., São Paulo: Pearson Addison Wesley.
197
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Anomalias Arquiteturais versus Refatoração: Um Estudo
Preliminar utilizando Sistemas em Evolução
Robson Locatelli1,2 , Rafael Jullian3 , Francisco Dantas1
1
Universidade do Estado do Rio Grande do Norte (UERN)
Caixa Postal 70 – CEP 59610-190 – Mossoró, RN – Brazil
2
3
Programa de Pós-Graduação em Ciência da Computação
Secretaria de Estado da Administração e Recursos Humanos - RN
[email protected], [email protected], [email protected]
Abstract. Software architecture tends to evolve by means of the reuse of its components. Unfortunately, the reuse of architectural components does not always
happen as expected, mainly due to structural problems that require constant
refactoring operations. In general, structural problems are related to architectural anomalies occurrence. In this context, there is a lack of studies that
investigate the simultaneous occurrence of anomalies and architectural refactoring operations. This work aims at analyzing the co-occurrence of anomalies
and architectural refactoring operations. For this purpose, we used the MobileMedia architectural software diagrams, which evolves trough 8 versions. Our
results indicated that the versions infected with a larger amount of anomalies,
which are also experienced a greater number of refactoring operations.
Resumo. Projetos arquiteturais de software tendem a evoluir priorizando o
reuso de seus componentes. No entanto, este reuso nem sempre acontece como
esperado, devido principalmente a problemas estruturais do projeto, que demandam constantes operações de refatoração. Problemas estruturais, em sua
maioria, estão relacionados a existência de anomalias arquiteturais. No entanto, existe uma carência em estudos que mapeiem a ocorrência simultânea
de anomalias arquiteturais e operações de refatoração. Este trabalho tem por
objetivo analisar a coexistência de anomalias arquiteturais e operações de refatoração. Para tanto, analisou-se o projeto arquitetural de 8 versões de um
software em evolução, denominado MobileMedia. Os nossos resultados indicaram que as versões infectadas com uma quantidade maior de anomalias, são
também as que sofreram um maior número de operações de refatoração.
1. Introdução
Sistemas de software tendem a evoluir desde o momento que são postos em utilização. Idealmente, para cada nova versão do sistema, uma nova versão do projeto arquitetural é gerada, priorizando o reuso dos componentes existentes. No entanto, devido
a problemas estruturais, ocasionados em sua maioria pela falta de planejamento adequado, projetos arquiteturais são recorrentemente refatorados [Samarthyam et al. 2016].
Refatoração arquitetural refere-se a reestruturação dos componentes arquiteturais existentes, sem necessariamente promover a modificação do seus comportamento externo
[Samarthyam et al. 2016].
198
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
De acordo com [Garcia et al. 2009] problemas estruturais estão relacionados, em
boa parte dos casos, a existência de anomalias arquiteturais. Anomalias arquiteturais são
sintomas que emergem nos artefatos arquiteturais de sistemas de software e que são capazes de comprometer a qualidade do projeto. Segundo [Garcia et al. 2009] tratar anomalias
arquiteturais significa fazer mudanças corretivas na estrutura dos projetos arquiteturais.
Alguns estudos tem analisado o impacto das anomalias na evolução de sistemas
de software [Arcoverde et al. 2011, Macia et al. 2011]. Enquanto [Arcoverde et al. 2011]
investiga os efeitos das anomalias sobre o código fonte, [Macia et al. 2011] investiga o
impacto das anomalias arquiteturais no processo de evolução dos seus artefatos. Porém,
existe também uma carência em analises que tenham como foco a coexistência de anomalias arquiteturais e operações de refatoração. Sabe-se que o tratamento de anomalias minimiza a ocorrência de operações corretivas nos projetos [Arcoverde et al. 2011,
Macia et al. 2011]. Porém, nem todas as operações de refatoração acontecem em função
do tratamento das anomalias e consequentemente pouco se sabe sobre a relação existente
entre a ocorrência simultânea de anomalias arquiteturais e operações de refatoração.
Neste contexto, o objetivo deste trabalho é apresentar um estudo preliminar sobre
a coexistência de anomalias arquiteturais e operações de refatoração. A ideia é verificar
se a quantidade de operações de refatoração é influenciada pela existência de anomalias.
Na Seção 2 revisão literária sobre a temática. Na Seção 3 descrevemos a metodologia utilizada na condução para esse estudo. Na Seção 4 apresentamos a discussão descrevendo
os resultados obtidos. Os trabalhos relacionados a temática são apresentados na Seção 5.
Por fim, na Seção 6 apresentamos as considerações finais deste estudo.
2. Anomalias Arquiteturais
Segundo [Garcia et al. 2009] o termo anomalia arquitetural refere-se aos sintomas que
emergem no projeto arquitetural de um sistema de software e que podem indicar um problema estrutural profundo. O trabalho de [Garcia et al. 2009] propôs ainda um catálogo
de anomalias arquiteturais, que inclui: Ambiguous Interface (AI), Connector Envy (CE),
Scattered Parasitic Functionality (SFP) e Component Concern Overload (CCO).
A anomalia Ambiguous Interface ocorre quando o interfaces são usadas como
único ponto genérico de entrada para o componente, por onde oferece e processa vários
serviços. A anomalia Connector Envy ocorre quando um componente faz uso excessivo
de algumas das quatro categorias de conectores: comunicação, coordenação, conversão
e facilitação. Esta anomalia gera dependência entre os serviços de aplicação e interação.
Scattered Funcionality Parasitic ocorre quando interesses são espalhados entre vários
componentes. Esta anomalia viola o princípio de separação de interesses, porque o interesse é espalhado através de múltiplos componentes. Finalmente, anomalia Component
Concern Overload ocorre quando componentes são sobrecarregados com dois ou mais
interesses.
3. Procedimentos Metodológicos
Este trabalho foi conduzido por meio da análise de 8 versões do MobileMedia
[Figueiredo et al. 2008]. O MobileMedia é uma Linha de Produto de Software (LPS)
com 8 versões para gerenciamento (criar, apagar, visualizar, reproduzir, enviar) de mídia
(áudio, vídeo, imagens) em dispositivos móveis. Entre as principais características estão:
199
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
criar, excluir e reproduzir mídias. As características opcionais são: enviar mídia por SMS
e copiar mídias.
A analise das versões do MobileMedia foi conduzida através do mapeamento de
todas as operações de refatoração realizadas. O mapeamento foi conduzido através da
inspeção manual dos projetos arquiteturais. No entanto, para cada projeto arquitetural foi
gerado um arquivo xml. Usando a ferramenta Diff [SourceGear 2016], a versão xml do
projeto arquitetural de Vi foi comparada com a sua versão sucessora Vi+1 , onde i corresponde ao número da versão e varia de 0 a 7. Em cada comparação foi contabilizado o
total de mudanças realizadas. No que diz respeito a contabilização das anomalias, foi utilizado a quantificação proposta por [Macia et al. 2011], que realizou um estudo utilizando
o MobileMedia.
4. Resultados Preliminares
A Figura 1 ilustra a relação existente entre a ocorrência de anomalias e as operações de refatoração para as 8 versões (V1-V8) do MobileMedia. O eixos y primário e y secundário
representam o número de anomalias e operações de refatoração, respectivamente.
Figura 1. Operações de Refatoração vs. Anomalias - MobileMedia
Como podemos observar o número de refatorações atingiu seu pico em V6. Coincidentemente, V6 apresentou um acréscimo considerável no número de anomalias instaladas, quando comparado com V5. Em particular, V6 apresenta um crescimento significativo da anomalia Ambiguous Interface (AI), o que significa que interfaces estão sendo
usadas como único ponto genérico de entrada para um mesmo componente, ao mesmo
tempo que operações de refatoração se tornam mais frequente. Foi possível também identificar um aumento de operações de refatoração já em V2. Nesta versão, surgiram mais
anomalias do tipo AI e Connector Envy (CE). No que diz respeito a CE, o crescimento
foi de 100%. Enquanto V1 possuía 4 anomalias do tipo CE, V2 apresentou 8.
Diante desta analise preliminar, podemos extrair indicadores da relação existente
entre a ocorrência simultânea de anomalias arquiteturais e operações de refatoração. Em
especial, a ocorrência de anomalias do tipo AI e CE varia alinhada com a quantidade de
operações de refatoração.
200
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
5. Trabalhos Relacionados
Nos trabalhos de [Macia et al. 2011, Andrade 2013] foram apresentadas estratégias
para a detecção de anomalias arquiteturais. Em paralelo, [Arcoverde et al. 2011,
Macia et al. 2011] fez uma investigação semelhante considerando as anomalias arquiteturais do código fonte. No entanto, nenhum dos trabalhos analisados teve como objetivo
estudar os efeitos da ocorrência simultânea de anomalias arquiteturais e operações de
refatoração durante a evolução de projetos arquiteturais.
6. Considerações Finais
Este trabalho apresentou um estudo preliminar sobre a coexistência de anomalias arquiteturais e operações de refatoração. Com base nos resultados encontrados, foi possível
concluir que as versões mais infectadas por anomalias são também as que apresentam um
maior número de operações de refatoração. Em particular, as anomalias do tipo Ambiguous Interface e Connector Envy emergem com indicadores mais precisos da ocorrência
de refatoração. Como trabalhos futuros, propõe-se uma investigação mais aprofundada
que relacione o tipo de anomalias com a operação de refatoração, bem como com o impacto das operações de refatoração no reuso dos componentes arquiteturais. Ademais, há
uma necessidade de incluir novas aplicações de software para que possamos generalizar
os resultados.
Referências
Andrade, H. S. (2013). Software product line architectures: Reviewing the literature and
identifying bad smells.
Arcoverde, R., Garcia, A., and Figueiredo, E. (2011). Understanding the longevity of
code smells: Preliminary results of an explanatory survey. In Proceedings of the 4th
Workshop on Refactoring Tools, WRT ’11, pages 33–36, New York, NY, USA. ACM.
Figueiredo, E., Cacho, N., Sant’Anna, C., Monteiro, M., Kulesza, U., Garcia, A., Soares,
S., Ferrari, F., Khan, S., Dantas, F., et al. (2008). Evolving software product lines
with aspects. In Software Engineering, 2008. ICSE’08. ACM/IEEE 30th International
Conference on, pages 261–270. IEEE.
Garcia, J., Popescu, D., Edwards, G., and Medvidovic, N. (2009). Toward a catalogue
of architectural bad smells. In Proceedings of the 5th International Conference on the
Quality of Software Architectures: Architectures for Adaptive Software Systems, pages
146–162. Springer-Verlag.
Macia, I., Garcia, A., von Staa, A., Garcia, J., and Medvidovic, N. (2011). On the impact
of aspect-oriented code smells on architecture modularity: An exploratory study. In
Software Components, Architectures and Reuse (SBCARS), 2011 Fifth Brazilian Symposium on, pages 41–50. IEEE Computer Society.
Samarthyam, G., Suryanarayana, G., and Sharma, T. (2016). Refactoring for software
architecture smells. In Proceedings of the 1st International Workshop on Software
Refactoring, IWoR 2016, pages 1–4, New York, NY, USA. ACM.
SourceGear, L. (2016). DiffMerge. https://sourcegear.com/diffmerge/.
[Online; accessed 19-August-2016].
201
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Gestão Informatizada de Criações de Tilápia Nilótica em
Sistema de Produção Semi-Intensivo
Filipe A. Bastos, Thiago V. Lima Brasil, Heriberto De Sousa T. Filho, Iaslan Do
Nascimento P. Da Silva, Joel de O. Santos, Laércio N. Medeiros, Taniro C.
Rodrigues, Laura Emmanuella A. Dos Santos S. De Oliveira
Escola Agrícola de Jundiaí (EAJ) - Universidade Federal do Rio Grande do Norte
(UFRN) - Macaíba, RN - Brasil
[email protected], [email protected],
[email protected], [email protected],
[email protected], [email protected],
[email protected], [email protected]
Abstract: Oreochromis niloticus (also known as "tilapia") is a freshwater fish
with a high scale production on Rio Grande do Norte. In its cultivation, the
familiar aquaculturists find difficulties on the production management, because
they don’t have an effective data control, so are generated elevated costs on
their production. This work has of central objective the development of a
specific software to manage productions management of “tilapia” on excavated
tanks, that’ll generate secure and proactive data to the producer, with the
inclusion of a prediction module to a cycle production, based on fuzzy logic.
Resumo: Oreochromis niloticus (ou "tilápia") é um peixe de água doce
produzido em larga escala no estado no Rio Grande do Norte. Em seu cultivo,
os aquicultores familiares encontram dificuldades quanto ao manejo produtivo,
pois não possuem um controle de dados eficaz o que gera custos mais elevados
em sua produção. O presente trabalho tem como objetivo central desenvolver
um software específico para gestão de processos produtivos de "tilápia" em
tanques escavados que possa gerar dados seguros e proativos para o produtor,
inclusive com um módulo de predição da produtividade de um ciclo, baseado
em lógica fuzzy.
1. Introdução
A Tecnologia de Informação (TI) pode afetar de forma substancial a gestão dos negócios
agropecuários. O uso extensivo de tecnologia de informação necessita ser promovido para
a comunicação entre pesquisadores e agricultores para transferir tecnologias e
informações de uma forma rentável [Dhaka and Chayal 2010].
Independente dos sistemas de cultivo e das estratégias de produção adotadas, o
conhecimento dos conceitos que envolvem a cultura e a quantificação da capacidade de
suporte, como a biomassa crítica e biomassa econômica, bem como dos índices de
desempenho das espécies cultivadas como é na aquicultura, é fundamental para o
adequado planejamento e otimização da produção.
Para a produção da “tilápia” o conhecimento da biomassa econômica ao longo do
ciclo produtivo é muito importante para a viabilidade financeira do negócio. A biomassa
deve ser sistematicamente aferida, através de medições periódicas dos peixes para que o
produtor tenha uma noção real da situação da sua produção e possa tomar as medidas
202
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
necessárias no menor tempo possível. A utilização da aprendizagem de máquina para a
predição da biomassa econômica traz uma nova perspectiva de melhor planejamento ao
produtor.
Este trabalho apresenta a arquitetura, bem como as tecnologias utilizadas para o
desenvolvimento de um software para o gerenciamento para tanques de criação da
“tilápia”. O artigo está organizado da seguinte forma: a seção 2 trata dos trabalhos
relacionados, a seção 3 apresenta a arquitetura e o desenvolvimento do software e a seção
4 mostra as referências que contribuíram para este artigo.
2. Trabalhos Relacionados
Existem diversos trabalhos relacionados ao gerenciamento do ambiente de criação da
“tilápia” onde são desenvolvidos monitores para alimentação e para o bem-estar da
espécie durante o seu crescimento. Em um dos trabalhos foi utilizado um controlador
lógico programável para averiguação do estado da água e quantidade de ração presente,
onde se observa, mais precisamente, que o ambiente interfere diretamente na conversão
alimentar, resultado esse encontrados em tanque-rede [Carmelin Junior, 2014].
Hodiernamente o avanço das tecnologias está possibilitando a melhora da
interação do usuário com as aplicações. Nessa perspectiva, o desenvolvimento de
softwares que auxiliam na produção vem crescendo, tendo como exemplo um sistema
desenvolvido pelo Instituto Federal do Ceará – Campus Crato (IFCE-Crato) que consiste
em uma plataforma de gerenciamento de produção da “tilápia”, o procedimento abrange
tanto um aplicativo para dispositivos Android quanto uma página Web, no entanto, este
trabalho possui um gerenciamento muito simplificado, tendo em vista que o mesmo só
acompanha o produtor até o início de um ciclo produtivo e não se atém aos gastos gerados
durante a produção [“Sistema de Manejo Alimentar e Nutricional de Tilápias
(SISMANT)” 2016]. Porém há trabalhos como o aquaManager, que apesar de prover o
acompanhamento necessário, contendo inclusive suporte a dispositivos móveis como
forma de acompanhamento e coleta de dados da produção, porém estas ferramentas
avançadas são presentes somente em sua versão paga e, portanto, tornando este software
em uma solução inviável para pequenos produtores brasileiros devido a limitações
financeiras e as impostas pelo idioma da versão gratuita do mesmo, onde somente a versão
paga inclui o suporte a outros idiomas [“aquaManager” 2016].
O software apresentado neste artigo possibilita o cadastro de processos usuais
como registro da fazenda, quantificação dos tanques existentes e seus tipos, a escolha da
espécie animal que ocupará o tanque. Além disso, utiliza um algoritmo de aprendizagem
de máquina para possibilitar gerenciamento do manejo alimentar. Tal funcionalidade é
auxiliada por conjunto de alarmes que indicam ao produtor o horário de ações que devem
ser tomadas. Dessa forma, o software busca prever a biomassa econômica do animal
utilizando um sistema web para facilitar a comunicação.
3. Desenvolvimento
O sistema em desenvolvimento propõe-se a dirimir os problemas do cultivo da “tilápia”,
onde sua atual forma de controle e gerenciamento demonstra-se defasada. Este trabalho
fundamenta-se nas metodologias adotadas pelos pequenos produtores do estado do Rio
Grande do Norte, na qual todos os dados são adicionados em planilhas eletrônicas. Dessa
203
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
forma, o sistema está habilitado a armazenar dados inerentes à cultura em questão para
auxiliar o produtor na predição de um cultivo mais rentável.
O acesso e tráfego de informações do software proposto são baseados em uma
arquitetura distribuída na web. Por fim, este projeto possui uma ênfase em acessibilidade,
independente do seguimento da aquicultura que será implantado. Tendo em vista este
objetivo, a implementação do sistema foi voltada para dispositivos móveis que suportem
o SO Android da Google, já que este, tem uma grande fatia de mercado e possui uma
quantidade maior de dispositivos móveis compatíveis. Para comunicação com o banco de
dados, está sendo construído um serviço web PHP com o framework CakePHP, a adoção
desta ferramenta é devido à sua flexibilidade e quanto à implementação da conexão e
manipulação de informações com o banco de dados, especialmente com o MySQL por
possuir integração nativa com o framework.
A arquitetura do software está organizada em três módulos (figura 1). O primeiro
deles está relacionado ao Servidor, onde se encontra a base de dados, juntamente com o
serviço web e o aprendizado computacional, que tem como funcionalidade obter de dados
para a realização das predições sobre as formas de manejo do animal. O segundo módulo
faz referência ao Desktop, que possui o ator produtor, que lhe é permitido visualizar e
acompanhar os dados da sua produção diariamente através de um dispositivo Desktop,
por fim há o ator mercado, que possui como função a inserção de dados financeiros acerca
de rações usadas na produção. O terceiro módulo presente no diagrama, representa o
Mobile, este módulo abrange os atores: técnico, que é o responsável pelo conhecimento
especialista, o ator funcionário, que é o profissional que realizará o manejo dos animais e
para este fim, o mesmo receberá alarmes que o avisem sobre ações que deve tomar em
determinado tempo e como último ator, o produtor, que realiza basicamente as mesmas
funções que lhe são permitidas no módulo anterior.
Figura 1. Diagrama de Implantação de estrutura do software.
Neste trabalho, um sistema fuzzy (figura 2) será usado para prever a produtividade
do ciclo produtivo, também chamada de biomassa econômica. A biomassa econômica de
um ciclo produtivo normalmente é inferida por um especialista na área e indica como o
manejo produtivo se dá no espaço determinando uma maior ou menor produção. A partir
desse índice são feitas as definições quanto ao manejo produtivo, como cálculos sobre
quantidade e qualidade de ração, horários de alimentação e etc. O objetivo de usar um
sistema fuzzy para inferir o valor da biomassa econômica é permitir que o sistema possa
ser utilizado mesmo sem a presença de um especialista humano.
204
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 2. Diagrama de Predição da Biomassa Econômica.
Com a lógica fuzzy inserida neste trabalho, se fará possível para o produtor ter
conhecimento sobre como suas ações estão influenciando em sua produção e, portanto,
permitindo que o mesmo tome decisões antecipadamente para contornar possíveis
prejuízos em seu empreendimento.
4. Conclusão e trabalhos futuros
Para obtenção de sucesso num sistema de produção é imprescindível um gerenciamento
detalhado de todas as etapas. Para esta gerência, a forma com que essas informações são
coletadas e armazenadas podem interferir no tempo de tomada de decisões durante o
processo criativo, estas, por sua vez, podem comprometer o êxito da criação.
Dessa forma, o software possibilita ao produtor ter uma organização panorâmica
de toda sua infraestrutura, desde os materiais utilizados na produção até o valor do que o
produto terá no mercado para venda.
Como trabalho futuro é proposto uma inclusão de sistemas de sensores, com
estudos sobre parâmetros da qualidade da água, e atuadores para automatizar tarefas.
Dessa forma é possível evitar problemas que poderão surgir em um tanque evitando
assim, por exemplo, a proliferação de doenças. Com a presença de sensores em futuros
trabalhos, se fará necessário uma reestruturação na arquitetura do servidor remoto para
que haja a possibilidade dos dados obtidos por estes sensores serem acessados
remotamente, para ser efetuado o monitoramento da produção em tempo real e estes
dados se tornem parte do sistema de inferência fuzzy e, consequentemente, aumentem a
precisão das suas estimativas.
Referências
aquaManager (2016). http://www.aqua-manager.com/.
Carmelin Junior, C. A. [UNESP] (2014). Sistema automatizado de alimentação
de juvenis de tilápia. Aleph, p. vii, 36 : il., il.tabs.
Dhaka, B. L. e Chayal, K. (2010). Farmers ’ Experience with ICTs on Transfer
of Technology in Changing Agri-rural Environment. v. 10, n. 3, p. 114–118.
Sistema de Manejo Alimentar e Nutricional de Tilápias (SISMANT) (2016).
http://sismant.crato.ifce.edu.br/.
205
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Sistema Clínico de Comunicação de Mensagem HL7
Rodrigo de Lima Silva1, João Marcos T. Lacerda2, Felipe Denis M. de Oliveira3
1
Universidade Estadual do Rio Grande do Norte (UERN)
Natal – RN – Brasil
2
Laboratório de Inovação Tecnologia em Saúde
Universidade do Rio Grande do Norte (UFRN) - Natal – RN – Brasil
3
Departamento de Ciência da Computação
Universidade Estadual do Rio Grande do Norte (UERN) – Natal – RN – Brasil
[email protected], [email protected],
[email protected]
Abstract. Telemedicine is used of information technology in distance
communication of clinical data and the optimization of care for doctors,
resulting in the need for communication standards for data formats
transmitted between different hospital systems. This type of technology is still
expensive and limited in processing information, it was in this sense that this
work originated from IFRN partnership, campus New Cross and UFRN, has
developed a system based on HL7 protocol (Health Level Server) supported
version 2x, for the treatment of clinical messages as well as an Android
application for exchanging messages ambulatory patient.
Resumo. A telemedicina utiliza-se da tecnologia da informação na
comunicação a distância de dados clínicos e a otimização de atendimento de
consultas médicas, resultando na necessidade de criar padrões de
comunicação destinados aos formatos de dados transmitidos entre diferentes
sistemas hospitalar. Este tipo de tecnologia ainda custa caro e limitasse no
processamento de informações, foi nesse sentido que o presente trabalho
oriundo da parceria do IFRN, campus Nova Cruz e UFRN, foi desenvolvido
um sistema baseado no protocolo HL7 (Health Level Server) com suporte a
versão 2x, para tratamento de mensagens clínicas, bem como uma aplicação
Android para troca de mensagens ambulatoriais de paciente.
1. Introdução
O protocolo HL7 (Health Level Server) remota ao final de meados dos anos 1970, na
Universidade da Califórnia em San Francisco (UCSF) Medical Center dirigido por
Donald W. Simborg e frente ao projeto junto com Steve Tolchin da Johns Hopkins
University Applied Physics Laboratory (APL) levou a implantação de uma rede de backend na UCSF ao invés de uma rede front-end, o resultado foi a criação do primeiro nível
da aplicação do protocolo de intercâmbio de dados na área da saúde.
O padrão HL7 compreende a camada de aplicação do modelo IOS (Open
Systems Interconnection), a ser utilizado na área da saúde. Para Bogdan et. 2010, o HL7
abrange aspectos mais gerais de processamento médico e gestão de dados digital. HL7 é
206
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
utilizado para a transmissão de dados relacionados com os prontuários dos pacientes,
arquivos e outros documentos associados.
A formalização de padrões entre sistemas de informação são essências para
manter a integridade e interoperabilidade da comunicação entre a rede de saúde na troca
de mensagens hospitalares, permitindo maior integração entre os meios, redução dos
custos dos serviços.
Os custos elevados na aquisição de software clínicos e os limites que oferecem
motivarão a desenvolver um sistema baseado no protocolo HL7 de mensagem clínica,
visado sua implantação com menos custos e maior flexibilidade de análise de dados,
bem como a comutação de informação ambulatorial entre vários terminais e o acesso
seguro da entrega de mensagem.
A pesquisa também contou com o desenvolvimento de uma aplicação para
dispositivo móvel como parte integrante do sistema que receberá mensagens por meio
do servidor HL7 e disponibilizadas para a demais setores de saúde.
2. Metodologia
O trabalho baseou-se no protocolo HL7 Health Level 7, padrão reconhecido pela ANSI
e ISO e especificada pela portaria 2.073, de 31 de agosto de 2011 do Ministério da
Saúde para estabelecer a interoperabilidade entre sistemas, com vistas à integração dos
resultados e solicitações de exames clínicos.
As tecnologias utilizadas para o desenvolvimento do sistema e aplicativo foi o
ambiente de desenvolvimento do eclipse, com suporte à linguagem em Java, o programa
foi baseado no protocolo MLLP (Minimum Lower Layer Protocol) para leitura de
mensagem HL7 recebidas pelo servidor.
Os primeiros testes de comunicação entre cliente e servidor foram utilizados os
softwares TestPanel, Soup HL7 e a aplicação socket cliente java também implementado,
a fim de estabelecer comunicação com servidores HL7. Durante a simulação de uma
rede física foi usado a máquina virtual VMware Play. Por fim para obter os resultados
finais foram utilizadas oito máquinas físicas clientes e um servidor do laboratório de
redes do IFRN, Campus Nova Cruz. Na captura da conexão e tráfego de mensagens foi
empregado o programa Wireshark.
3. Mensagem HL7
3.1. segmentos
Os segmentos são importantes estruturas de mensagem HL7, cada um deles carregam
informações peculiares atribuídas, “um segmento é um grupo de campos e que contém
diferentes tipos de dados” [HL7 Brasil], são criados independente e usado em várias
mensagens com ondem distintas. Alguns segmentos podem ser mais necessários que
outros dependendo da mensagem e são esperados pelo caractere escape ‘\r’ (carreige
return).
O formato das mensagens HL7, são especificadas através de segmentos e
caracteres especiais, a primeira linha da mensagem HL7 é formada pelo cabeçalho de
mensagem (Message Header - MSH) que é composto por campos, cada campo desse
207
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
segmento leva informação sobre a mensagem criada, como nome do aplicativo de onde
estar enviado a mensagem, dados de segurança, tipos de mensagem, versão da
mensagem e outras atribuições.
3.2. caracteres de separação
O campo de segmento MSH2, define os caracteres de separação em HL7 ou
delimitadores de mensagem, também chamado de caracteres especiais de codificação,
responsáveis para construírem a mensagem.
4. Resultados
Durante a simulação foram utilizadas oito máquinas físicas, representando setores
clínicos distintos, os dados de portuários coletados dos pacientes atendidos são enviados
ao servidor, por meio de mensagem hl7, o servido é responsável por armazenar a
informação e realizar consulta do mesmo por profissionais médicos. Seu desvio padrão
é um tempo no intervalo de 46,8 milissegundos para retorno de resposta de confirmação
da mensagem.
Para garantir segurança das informações de pacientes na transmissão de
mensagens, fez uso da implementação do protocolo TLS, utilizando o framework de
comunicação segura Java Secure Socket Extension (JSSE) e algoritmo de criptografia
Java Cryptographic Archiecture.
As consultas poderão ser realizadas por meio do sistema HL7 ou aplicativo
mobile, o proposito visa facilitar os meios de acessos dos prontuários de pacientes por
clínico, o aplicativo foi desenvolvido para plataformas androide, mostrado na figura 2.
Figura 1. Interface gráfica cliente, envia mensagem HL7 para o servidor, o qual
responde com mensagem de confirmação ACK, retorna-se o ID da mensagem
Figura 2. Aplicativo para consulta de mensagens HL7
208
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
5. Conclusão
O projeto teve início no segundo semestre de 2015, realizando o estudo com a
ferramenta HAPI (HL7 Application Programming Interface) que disponibiliza recurso
do HL7 para programação Orientado a Objeto OO, mas sem muito sucesso com a
comunicação, foi então preciso o uso de outro recurso mais simples usando o protocolo
HL7 MLLP definindo delimitadores de identificação de início e fim da mensagem para
a transmissão TCP/IP (Protocol Control Transmission). Após a comunicação realizada,
a pesquisa voltou-se a criação de interface para gráfico de dados de mensagens HL7 e
aplicativos móveis como extensão do sistema.
6. Referências
Brasil. Ministério da Saúde. Secretaria de Ciência, Tecnologia e Insumos Estratégicos.
Departamento de Ciência e Tecnologia. Política Nacional de Gestão de Tecnologias
em Saúde / Ministério da Saúde, Secretaria de Ciência, Tecnologia e Insumos
Estratégicos, Departamento de Ciência e Tecnologia. – Brasília: Ministério da Saúde,
2010. 48 p. – (Série B. Textos Básicos em Saúde).
FONSECA, D. S. Análise do Padrão HL7 para Sistemas de Informação Hospitalares.
São Paulo, 2008.
GONÇALVES, L. W. Prontuário Eletrônico do Paciente Adotando Padrões para a
telemedicina no Brasil. Porto Alegre, Jun. de 2010.
GUIMARÃES, R. et al. Defining and implementing a National Policy for Science,
Technology, and Innovation in Health: lessons from the Brazilian experience. Cad
Saúde Pública. 2006; 22(9):177594.
KUROSE, J. F. Redes de computadores e internet: abordagem top-down; tradução
Oppotuny translation; revista técnica Wagner Zucchi. 5. Ed. São Paulo: Addilson
Wesley, 2010.
ORZA BOGDAN, et al. Integrated Medical System Using DICOM and HL7 Standards,
New Advanced Technologies, Aleksandar Lazinica (Ed.) 2010, ISBN: 978-953-307067-4, InTech, Disponível em: <http://www.intechopen.com/books/new-advancedtechnologies/integrated-medicalsystem- using-dicom-and-hl7-standards>. Acesso
em: 05 abr. 2016.
PETRY, K. LOPES, P. M. A. Modelo para interoperabilidade de sistemas hospitalares
utilizando padrão hl7. Florianópolis, 2015/2.
GUIMARÃES, R. F. N. VIANNA, C. M. DE M. V. Ciência e Tecnologia em Saúde.
Tendências Mundiais. Diagnóstico Global e Estado da Arte no Brasil.
THE EARLY HISTORY OF HEALTH LEVEL 7. Disponível em:
<http://www.ringholm.com/docs/the_early_history_of_health_level_7_HL7.htm>.
Acesso em: 05 abr. 2016.
209
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Avaliação Heurística da Interface do Moodle IMD-UFRN
Julio Cartier M. Gomes1, Washington Luiz da Silva Lima¹, Cynthia Moreira
Maia¹, Welliana Benevides Ramalho¹, Joêmia Leilane Gomes de M. Martins¹,
Andrezza Cristina da S. B. Souza¹
1
Universidade Federal Rural do Semi-Árido (UFERSA)
CEP 59515-000 – Angicos – RN – Brazil
Departamento de Ciências Exatas, Tecnológicas e Humanas – DCETH
Universidade Federal Rural do Semi-Árido (UFERSA) – Angicos, RN – Brazil
[email protected], [email protected], [email protected], {welliana.ramalho, leilane.gomes,
andrezza}@ufersa.edu.br
Abstract. This work presents a usability evaluation in the tutor module moodle
platform Digital Metropole Institute of the Federal University of Rio Grande do
Norte. This evaluation will be conducted through the application of Nielsen
heuristics. From the information collected from the evaluators will be
conducted an analysis of the data, and then the points where the system meets
or not the usability requirements of its users will be scanned to thereby
determine and suggest factors that can be used to improve user interaction with
the system.
Resumo. Este trabalho apresenta uma avaliação de usabilidade no módulo
tutor da plataforma moodle do Instituto Metrópole Digital, da Universidade
Federal do Rio Grande do Norte. Tal avaliação será realizada por meio da
aplicação das heurísticas de Nielsen. A partir das informações coletadas junto
aos avaliadores será realizado uma análise dos dados, e então serão verificados
os pontos em que o sistema atende ou não aos requisitos de usabilidade de seus
usuários, para com isso, determinar e sugerir fatores que possam ser utilizados
para melhorar a interação do usuário com o sistema.
1. Introdução
À medida que os sistemas computacionais modernos avançam, a quantidade de desafios
colocados para os profissionais desenvolvedores na área também aumenta. Um dos
principais desafios diz respeito à área da interface humano-computador (Canny, 2006)
(Nielsen, 1993).
Investir em pesquisas em Interação Humano-Computador (IHC) é atualmente
uma área de estudos em avanço. Segundo Hewett (2009), IHC é uma disciplina
concentrada no projeto, avaliação e implementação de software interativo para humanos
em um contexto social, com estudos sobre os principais fenômenos acerca deste ambiente.
Sob outra perspectiva, Preece (1994) coloca que a IHC preocupa-se com o projeto de
sistemas computacionais que possam prover aos usuários segurança e produtividade na
realização de suas atividades e, além do mais, não refere-se apenas ao hardware e ao
software, mas sim a todos os aspectos impactantes no ambiente onde o sistema está
localizado.
Preocupados com a forma como os usuários irão interagir com a plataforma
Moodle utilizada nos cursos semipresenciais do Instituto Metrópole Digital (IMD), da
Universidade Federal do Rio Grande do Norte (UFRN), este trabalho tem como objetivo
210
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
fazer uma avaliação de usabilidade da interface do módulo tutor do Moodle, utilizado no
IMD. Para isto, serão aplicados questionários aos usuários finais baseados nos fatores de
usabilidade apresentados no decorrer do artigo e também será realizada uma avaliação
heurística por alguns tutores do IMD, com base nas heurísticas de Nielsen.
2 Moodle IMD/UFRN
O IMD é uma Unidade Suplementar da UFRN, criada no ano de 2011, que atua na
formação de pessoas de nível técnico, superior e pós-graduação, que utiliza a plataforma
Moodle em seus cursos semipresenciais implementado pela secretaria de educação e pela
equipe de atividades do IMD à distância da UFRN.
O Moodle é o acrônimo de "Modular Object-Oriented Dynamic Learning
Environment", um software livre de apoio à aprendizagem executado em um ambiente
virtual. É uma plataforma de aprendizagem projetada para fornecer aos educadores,
administradores e alunos um sistema robusto, seguro e integrado para criar ambientes
virtuais de aprendizagem personalizados (Santos, 2008).
O Moodle utilizado pelo IMD nos cursos técnicos na modalidade de ensino
semipresencial, permite que os alunos realizem suas atividades acadêmicas por meio do
ambiente virtual. Além do envio e execução de tarefas, o estudante poderá ainda sanar
dúvidas com relação aos conteúdos estudados utilizando os chats e os fóruns com tutores
e outros alunos. As ferramentas presentes nesta plataforma podem auxiliar na eficiência
do curso virtual dividida em dois grupos como Atividades e Recursos.
Essa modalidade de ensino a distância facilita o acesso de uma quantidade maior
de pessoas e a capacitação profissional e individual. O Moodle é capaz de atender aos
anseios da universalização de ensino, por meio de uma atualização dos conhecimentos
sem a necessidade de um contato presencial. Dessa forma a plataforma de ensino precisa
satisfazer a necessidade do usuário que está utilizando por meio da usabilidade e as
heurísticas, visando assim, atender as expectativas.
3. Avaliação Heurística
O método de avaliação heurística é um método analítico que visa identificar problemas
de usabilidade conforme um conjunto de heurísticas ou diretrizes (Nielsen, 1994). A
avaliação se baseia em melhores práticas definidas por profissionais experientes e
especialistas em IHC, ao longo de diversos anos de trabalho e estudo nessa área. Essa
forma de avaliar refere-se a vários métodos nos processos de design.
Essa forma de avaliação é a mais popular de medição de usabilidade, dada a sua
facilidade de entendimento e agilidade de aplicação (Nielsen, 1995). Esse é um método
que não envolve usuários, sendo assim, bastante rápido e tem um menor custo que a maior
parte dos métodos de avaliação amplamente publicados.
Para essa avaliação heurística foram escolhidas pessoas com experiência no
sistema e na avaliação. Assim, ao avaliar a plataforma Moodle-IMD, os avaliadores
devem elencar os pontos mais problemáticos de manuseio, isto é, os principais problemas
que os usuários possam ter relacionados a dificuldade de uso e execução de suas
atividades no sistema.
Com essa avaliação serão sugeridas correções para sanar problemas de
usabilidade presentes na plataforma, de modo que os responsáveis técnicos do sistema
211
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
possam corrigir os problemas encontrados e os usuários não venham a ter dificuldades ou
problemas de uso ao operar o sistema.
4. Heurística analisadas no Moodle IMD/UFRN
As heurísticas escolhidas para analisar e avaliar a usabilidade do sistema moodle são
apresentadas a seguir.
● Faça design paralelos: ao longo da análise da plataforma foram encontrados
pequenos erros.
Na página inicial logo após efetuar o login da plataforma verificou-se que aparece
um banner em slide, no qual são colocadas notícias a respeito de eventos e notificações
que cobrem toda a página, dificultando assim a visualização das turmas e salas que o tutor
ou aluno teriam acesso. Seria importante diminuir o espaço do banner e mostrar as turmas
e salas as quais os tutores e alunos estão cadastrados, fazendo assim com os usuários sem
experiência não compreendam o propósito e que o tempo seja otimizado ao ter que baixar
a página para ver o conteúdo das salas ao quais eles pertencem, pois na maioria das vezes
as notificações são antigas e não são interessantes, assim aumentando a sua eficiência e
melhorando o seu layout.
Figura 3 - Print screen página inicial do Moodle.
Outra deficiência encontrada após realizar a análise, foi o menu lateral chamado
de Visão Geral dos Cursos. O menu apresenta a sala ao qual estão cadastrados os tutores,
mas, que são salas inutilizadas e antigas, de turmas que já foram encerradas. Uma maneira
de solucionar o problema é realizar a criação de uma pasta no menu especificando o que
são salas antigas, garantindo que estas sejam visualizadas apenas quando o tutor precisar
acessar alguma de suas turmas já concluídas, facilitando assim, a navegação, tendo em
vista, que muitas vezes, as salas possuem nomes idênticos.
● Defina as metas de usabilidade: os critérios de usabilidade utilizados para
adquirir uma visualização do projeto nos pontos que poderiam ser melhorados nesse
projeto, foram: facilidade de aprendizagem, facilidade de recordação e eficiência.
Das pessoas que realizaram a avaliação heurística do critério facilidade de
aprendizagem, 80% consideraram que o Moodle-IMD é de fácil manuseio.
A plataforma não atende adequadamente ao fator eficiência, destacando que
várias vezes a mesma ficou indisponível para a realização das requeridas atividades, 60%
dos avaliadores consideraram que o Moodle-IMD pecou na rapidez do acesso às
informações.
● Realize testes empíricos: neste trabalho foi feito a observação da tarefa
desempenhada pelo tutor na qual ele deveria acrescentar uma atividade na sua sala de
aula.
Ao observar o tutor adicionar uma nova atividade para seus alunos verificou-se o
quanto se torna difícil e cheio de passos essa atividade desempenhada pelo tutor, pois ele
tem que, ao entrar na sua sala clicar em ativar edição, para só assim ser mostrada a opção
212
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
adicionar uma atividade ou recursos, e posteriormente clicar em adicionar uma atividade
ou recursos, para então abrir o menu com os tipos de atividades e recursos aos quais ele
pode adicionar para seus alunos, ficaria muito mais fácil já deixar essa opção ativada
sempre aos tutores, ativar edição, dessa forma ficaria mais acessível e rápida apenas
clicando em adicionar uma atividade ou recurso, diminuindo assim o tempo de adição de
uma nova atividade.
5. Conclusão
Esta pesquisa apresentou uma avaliação de usabilidade da plataforma Moodle utilizada
pelo IMD. Dentre as heurísticas de avaliação propostas por Nielsen, foram utilizadas
“faça design paralelos”, “defina as metas de usabilidade” e “realize testes empíricos”.
Em “faça design paralelos”, foi sugerido que houvesse uma divisão entre o acesso
ás antigas e novas turmas de cada tutor. Já em “defina as metas de usabilidade”, podese observar que o Moodle-IMD atende ao critério de facilidade de aprendizagem, porém
não atende aos critérios de facilidade de recordação e eficiência. E por fim, o “realize
testes empíricos”, ao qual o tutor adiciona uma nova atividade, possibilitando a
diminuição dos espaços da página para realizar a submissão da atividade.
Com os dados apresentados nesse estudo, pôde-se observar que a plataforma
Moodle-IMD possui pontos que precisam ser aperfeiçoados para permitir uma melhor
interação usuário sistema.
Referências
Canny, J. The future of human-computer interaction. Queue, ACM, New York, NY, USA,
v. 4, n. 6, p. 24–32, jul. 2006. ISSN 1542-7730. Disponível em:
<http://doi.acm.org/10.1145/1147518.1147530>.
Hewett, P. for Human-Computer Interaction. New York, NY, USA: ACM Special Interest
Group on Computer-Human Interaction Curriculum Development, Jul 2009.
Consultado na INTERNET: http://old.sigchi.org/cdg/cdg2.html, 2016.
Nielsen, J. (1994) “Heuristic Evaluation”, in Mack, R. & Nielsen, J. (eds.) Usability
Inspection Methods. New York, NY: John Wiley & Sons, 1994, 25-62. Nielsen, J.
(1998) “Cost of User Testing a Website”, Alertbox. Disponível online em
http://www.useit.com/alertbox/980503.html.
Nielsen, J. Usability Engineering. San Francisco, CA, USA: Morgan Kaufmann
Publishers Inc., 1993. ISBN 0125184050.
Nielsen, J. Technology Transfer of Heuristic Evaluation and Usability Inspection. 1995
Disponível em: http://www.useit.com. Acesso em maio de 2016.
Santos, D. C.: Arquitetura de Software para Ambiente de Colaboração Educacional,
Baseado em CMS. Florianópolis. Setembro de 2008. Pg. 22
Preece, J. et al. Human-Computer Interaction. [S.l.]: Addison-Wesley, 1994.
213
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
214
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
215
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
216
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
217
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Heurística baseada no algoritmo A* para a localização de
rotas com acessibilidade entre os setores do campus central da
UERN
Rosemary P. Borges1, Ingridy M. P. Barbalho2, Pablo R. F. Oliveira3
1,2,3
Universidade do Estado do Rio Grande do Norte (UERN) – Campus Central –
Mossoró, RN – Brasil
[email protected], [email protected],
[email protected]
Abstract. This work is justified by the need to identify and display routes with
the shortest path available to the institution's buildings, serving as a guide for
people with limited mobility who attend or visit the UERN. For this, an
application that can generate the best route with accessibility of a point of
origin to the destination point, previously informed. For application
development, we used the shortest path algorithm A*. For it will be presented
the full analysis of the algorithm, identifying the base case, as in maintenance,
finishing and finally, the complexity in the worst case.
Resumo. Este trabalho justifica-se pela necessidade de identificar e exibir
rotas com menor caminho acessível aos prédios da instituição, servindo como
um guia para pessoas com dificuldade de locomoção que frequentam ou
visitam o Campus Central da UERN. Para isso, foi desenvolvido um aplicativo
capaz de gerar a melhor rota com acessibilidade de um ponto de origem ao
ponto de destino, previamente informados. Para o desenvolvimento do
aplicativo, foi utilizado o algoritmo de caminho mínimo A*. Para isso será
apresentada a análise completa do algoritmo, identificando o caso base, como
ocorre a manutenção, o término e por fim a complexidade no pior caso.
1. Introdução
De modo a atender o que diz a Lei Federal nº 10.098, de 19 de dezembro de 2000, a
Universidade Estadual do Estado do Rio Grande do Norte (UERN) tem investido na
quebra de barreiras arquitetônicas para facilitar a acessibilidade da comunidade interna
e externa com necessidades especiais relativas a locomoção, como cadeirantes, idosos e
mães com carrinho de bebê. Uma das ações executadas é relativa ao desenvolvimento
de projeto para adaptação dos espaços físicos da universidade que determina a
disponibilização de rampas de acesso, construídas de acordo com os parâmetros
estabelecidos pelas normas técnicas de acessibilidade da ABNT, banheiros acessíveis
possuindo equipamentos e acessórios específicos para a sua utilização, e caminhos que
promovam segurança para as pessoas com dificuldade de locomoção.
De acordo com o Departamento de Apoio à Inclusão da UERN (UERN, 2015)
há 112 (cento e doze) acadêmicos com necessidades distintas, distribuídos entre o
Campus Central (Mossoró), os demais Campis (Caicó, Assu, Patu, Pau dos Ferros e
Natal) e os 11 (onze) Núcleos. Para auxiliar os alunos e os visitantes com esse perfil,
218
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
que necessitem se deslocar nas dependências da UERN/Campus Central, foi
desenvolvido o aplicativo UERN Acessível. Esse aplicativo tem o objetivo de auxiliar
pessoas portadoras de necessidades físicas ou dificuldade de locomoção a encontrar
caminhos que possuam acessibilidade no interior da UERN, possibilitando ao usuário a
informação de rotas com mais segurança, comodidade e autonomia durante o seu
percurso. Assim, essas pessoas podem se deslocar na instituição utilizando o aplicativo
como ferramenta visual para orientação sobre qual a menor rota acessível que os levem
de algum ponto de origem a algum ponto de destino dentro do Campus.
Para a implementação do algoritmo deste aplicativo, utilizou-se uma heurística
para gerar o melhor caminho, tendo em vista que esse caminho é o que garante a
acessibilidade. Para isso, o App UERN Acessível utilizou-se de uma heurística de
identificação de menor caminho com o A* identificando o menor caminho acessível no
Campus Central da UERN de Mossoró.
2. Algoritmos para caminho mínimo
Os algoritmos que geram caminho mínimo vêm sendo bastante estudados e aplicados
nos diversos problemas da atualidade. Seu objetivo é reduzir variáveis como custo e
tempo em problemas práticos do dia a dia, encontrando o menor caminho a percorrer
entre dois pontos. Tais algoritmos podem ser aplicados em problemas de transportes,
logística, redes de computadores, bem como em problemas mais complexos de
otimização combinatória, como a roteirização de veículos (ATZINGEN, et al. 2007).
Alguns algoritmos são bastante conhecidos na literatura devido a sua aplicação
em problemas de caminho mínimo. Os mais utilizados são: Algoritmo de Dijkstra,
Algoritmo de Bellman-Ford, Algoritmo A*, Algoritmo de Floyd-Warshall e Algoritmo
de Johnson. Juntamente com os algoritmos supracitados, as heurísticas podem ser
utilizadas para auxiliar na minimização dos custos resultando em um caminho mais
próximo possível do ótimo.
Para a implementação do problema proposto foi utilizado o algoritmo A*, esse
algoritmo foi desenvolvido por Peter Hart, Nils Nilsson e Bertram Raphael no ano de
1968, combinando as estratégias de buscas utilizadas no algoritmo de Dijkstra e a Busca
gulosa (LORENÇO, 2015). Sua aplicação vai desde implementações para encontrar
melhores rotas entre localidades e resolução de problemas, como no desenvolvimento
de jogos (ROCHA, 2007).
Com a definição do problema do caminho mínimo, o algoritmo A* avalia
os nós de um determinado grafo combinando uma heurística g(n) que considera o
custo somado até então para alcançar o nó, h(n) que considera o custo de ir do nó
atual ao nó final em linha reta. Somando esses custos temos o custo total
estimado de um nó de origem ao nó de destino f(n), ou seja f(n)=g(n)+h(n)
(GASPERAZZO, 2014).
3. Metodologia
O ambiente de trabalho adotado foi o Campus Central da UERN em Mossoró RN. Inicialmente obteve-se a planta baixa do projeto de reforma que está em
andamento na instituição com a indicação dos pontos acessíveis. Posteriormente,
219
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
mapeou-se diversos pontos como laboratórios, salas, centro de convivência,
dentre outros. Para isso, foi realizado o mapeamento da universidade indo a
campo e identificando os caminhos acessíveis em comparação com o projeto
antes cedido a esta equipe, e em um segundo momento utilizamos o GoogleMaps
para identificação das coordenadas para a utilização do Algoritmo A* e
desenvolvimento do aplicativo UERN Acessível.
4. Implementação do A* no aplicativo UERN Acessível
O aplicativo UERN Acessível e é um app Mobile, específico para a plataforma Android,
e tem como objetivo indicar o menor caminho com acessibilidade aos usuários, para
isso, estes de devem informar o ponto onde estão na UERN e o destino desejado dentro
dessa universidade. De posse desses dados, o aplicativo identifica e exibe a menor rota
acessível.
Para a implementação do App UERN Acessível, foi definido como caso base a
validação da existência do ponto de origem e do ponto de destino, bem como se esses
pontos são diferentes. A cada iteração o algoritmo verifica qual o nó, entre os próximos
possíveis, tem menor custo considerando o custo do caminho já percorrido até este nó,
mais o custo em linha reta desse nó até o destino. De forma que, o custo total dado pela
função f(n) será igual a g(n), que é o custo do caminho percorrido da origem até o nó
analisado, mais h(n), que é o custo em linha reta do nó analisado até o destino. O nó que
apresentar o menor somatório, ou seja a menor distância, será o escolhido. Esse passo se
repete até que o destino seja encontrado. O custo de todas as arestas selecionadas do
ponto de origem ao ponto de destino, bem como os melhores nós, serão armazenados,
formando assim o menor caminho acessível. Logo após, esse mesmo passo acontece de
maneira invertida, onde o destino passa a ser origem e a origem passa a ser destino. Essa
heurística foi utilizada para garantir que o algoritmo, de fato exiba o menor caminho,
pois dependendo da referência, o algoritmo pode apresentar um caminho que não seja o
mínimo, considerando que o algoritmo apresenta aspectos de uma busca gulosa míope.
Com a realização dos passos anteriores, seus resultados são comparados, no qual, o
resultado apresentar o menor caminho, será a rota escolhida para ser exibida.
O critério de parada para o algoritmo é quando o ponto de destino for
encontrado. Com isso, será exibido o menor caminho acessível a ser percorrido ponto de
origem ao ponto de destino fornecido pelo usuário.
Considerando o tempo de execução do algoritmo apresentado, foi possível
identificar que a sua complexidade no piro caso, é O(n²).
5. Resultados
Como resultado, temos a implementação da heurística utilizando o algoritmo A* no
aplicativo UERN Acessível que, apresenta para o usuário a menor rota acessível dentro
da instituição. As figuras a seguir apresentam a aplicação, em que na Figura 1a temos a
tela inicial do aplicativo em que o usuário irá informar o ponto de origem e o destino, e
na Figura 1b, o aplicativo apresenta a menor rota pós o algoritmo efetuar o cálculo do
menor caminho.
220
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
6. Considerações finais
Foi possível verificar que a utilização do A* possibilitou a implementação correta do
aplicativo desenvolvido UERN Acessível, pois o mesmo apresenta a menor rota
acessível dentre as demais possíveis, ficando à cargo do usuário apenas indicar a origem
e o destino desejado.
Como perspectivas futuras objetiva-se aumentar o mapeamento da área da
universidade, disponibilizando mais possibilidades de locais para locomoção no
aplicativo, visto que para essa versão não foram mapeados todos os prédios existentes
na universidade pois o projeto de reestruturação da infraestrutura com relação a
acessibilidade ainda está em andamento. É desejável também que o aplicativo possa
reconhecer o local atual do usuário, caso o mesmo esteja dentro do Campus Central da
UERN. Pois assim, até mesmo os visitantes poderiam percorrer a universidade sem
conhecer suas dependências.
Esse aplicativo ainda poderá exercer a função de um canal para troca de
informações, ao passo que, ao se disponibilizar um espaço para comentários dos
usuários os mesmos poderão registrar e obter feedback com relação a acessibilidade do
espaço físico da universidade, além de sugestões, relacionadas ao próprio aplicativo.
Referências
ATZINGEN, J. V., et al. (2007). “Análise comparativa de algoritmos eficientes para o
problema de caminho mínimo”. Anais do XXI ANPET - Congresso Nacional de
Pesquisa e Ensino em Transportes, Rio de Janeiro.
GASPERAZZO, S. T. “Um algoritmo PSO híbrido para planejamento de caminhos em
navegação de veículos utilizando o A*”. 2014. 70 f. Dissertação (Programa de PósGraduação em Informática) - Universidade Federal do Espírito Santo. Vitória, 2014.
ROCHA, C. A. “Monitoramento do fluxo de control de processadores embarcados
baseado em profiling de software”. 2007. 78 f. Pontifícia Universidade Católica Do
Rio Grande Do Sul. Porto Alegre, 2007.
UERN (2015). “Departamento de Apoio à Inclusão”.
http://www.uern.br/site/dain >. Acesso em 27 de jul. de 2016.
Disponível
em:
<
221
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Otimização do emprego da unidade móvel de pistoneio na
explotação de poços de petróleo não surgentes através da
metaheurística BRKGA
Bruna M. N. Barros1, Michael C. F. da Silva1, Jeferson Q. Pereira2, Jonathan L. da
Silva2, Dario José Aloise3
1
Discente da Universidade do Estado do Rio Grande do Norte - UERN
2
Discente do PPgCC em Ciência da Computação – (UFERSA/UERN)
3
Professor do Departamento de Informática da UERN
{brunamary99,michelcharlesfs,jefersonqueiroga,nathan13joker}@gmail.com
[email protected]
Abstract. The objective this work was the development of metaheuristic
BRKGA applied to a optimization problem the use of the unit mobile oil
recovery the exploitation of non-insurgents oil wells. The problem is in
maximizing the production of oil, minimizing the time of route that will tell at
sequence of wells to be exploited.
Resumo. O objetivo deste trabalho foi o desenvolvimento da metaheurística
BRKGA aplicada ao problema de otimização do emprego da unidade móvel
de pistoneio na explotação de poços de petróleo não surgentes. O problema
constitui-se em maximizar a produção de óleo, minimizando o tempo da rota
que dirá a sequência de poços a serem explotados.
1. Introdução
Na Bacia Potiguar terrestre existe um grande número de poços de petróleo não surgentes
que necessitam do uso de métodos de elevação artificial para explotar o óleo, dos quais
uma parte significativa é composta por poços cuja vazão de óleo não justifica a fixação
de equipamentos de elevação artificial em caráter permanente, tais como Bombeio
Mecânico (Cavalo de Pau). Com o objetivo de aumentar os ciclos produtivos foi
implantado um método de elevação realizado através da Unidade Móvel de Pistoneio
(UMP), que se trata de um veículo com tanque e acessórios com capacidade para
explotar vários poços, um após o outro.
O princípio de funcionamento dessa unidade consiste na introdução no poço, de
um copo de pistoneio que submerge em torno de 30 a 50 metros no fluido e é puxado
através do cabo, acionado pelo guincho, para o tanque da unidade. Esta operação é
repetida até se atingir um baixo nível de fluido dentro do poço. A partir deste momento
a UMP se desloca para outro poço enquanto o reservatório passa a realimentar o poço
utilizado novamente.
Dentro de uma certa jornada de trabalho, dessa unidade, há várias alternativas de
definição da rota a ser seguida pela mesma, de tal modo que a produção de cada poço e
o tempo de operação, influirá na escolha do trajeto e produção de óleo obtida ao final da
jornada de trabalho. O problema detectado é como otimizar o emprego da UMP, que se
desloca em uma rede de estradas interligando os vários poços, com demanda variável e
222
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
reenchimento dinâmico. Mas especificamente, o problema constitui-se, portanto, em
maximizar a explotação do óleo, minimizando o tempo de rota, sobre vários poços não
surgentes.
Este é um problema de natureza combinatória (NP-difícil), tornando-se inviável
sua abordagem através de um algoritmo exato de enumeração implícita. Por este motivo
no presente trabalho é proposto à resolução através de uma metaheurística evolutiva
chamada de BRKGA, do inglês (Biased Random-Key Genetic Algorithm), com objetivo
de avaliar a seu desempenho e validação na aplicação em problemas reais da área de
petróleo.
2. Metodologia
A fim de se obter o melhor entendimento a respeito do problema de otimização das
unidades móveis de pistoneio, foi feita uma revisão da literatura onde foi possível
entender a problemática que segue:
A UMP deve extrair óleo de n poços pistoneáveis, com o objetivo de obter a
maior quantidade óleo possível no dia. Dada uma rota a UMP tem como partida e como
retorno a Estação de Tratamento do Óleo (ETO), sendo respeitado o tempo limite da
jornada de trabalho que pode ser de 960 minutos (16h/dia) ou 480 minutos (8h/dia).
Formalmente falando o problema pode ser descrito como: Um grafo não orientado G =
(V,D), onde os vértices são os n poços que são indexados por i=1,...,n, onde cada arco (i,
j) do conjunto D corresponde à distância entre os vértices i e j. Define-se também um
custo (tempo) de percurso cij entre os poços i e j quaisquer, obtido a partir das distâncias
mínimas dij Dm, onde Dm é a matriz de distâncias mínimas associada a G, divididas
pela velocidade média da UMP (vm). A ETO de onde a UMP sai e retorna, após uma
jornada diária de L horas é considerada como sendo o vértice 0.
As variáveis, constantes e o grupo de formulações e restrições escolhidas que
maximizam a produção de óleo, e minimizam o tempo da rota podem ser encontradas
em Neves (2000).
Depois de escolhida e compreendida a modelagem do problema, foi feita uma
revisão na literatura a respeito da BRKGA, aplicada ao nosso problema, onde esta é uma
metaheurística evolutiva para problemas de otimização baseada no algoritmo RKGA, do
inglês (Random Key Genetic Algorithm) de Bean (1994), no qual cada indivíduo
(cromossomo) é representado independentemente do problema por um vetor de n chaves
aleatórias, onde o valor dessas chaves é representado por um número real gerado
aleatoriamente no intervalo de [0,1). A conversão desse indivíduo em uma solução
viável é conhecida como decodificação. O procedimento que explica como ocorre os
passos da RKGA pode ser encontrado em Resende (2013), onde o mesmo afirma que a
RKGA e a BRKGA fazem o processo de cruzamento uniforme parametrizado de Spears
e DeJong (1991) para gerar o filho. A diferença entre os algoritmos está na escolha do
pai, que na RKGA não tem nenhum critério de seleção, e a BRKGA garante que um dos
pais seja elite e o outro não elite.
Após obter o conhecimento a respeito da metaheurística foi possível a sua
implementação na linguagem C. As instâncias utilizadas contendo: distância entre os
poços, tempos de operação, produção em cada poço, foram as mesmas utilizadas em
Neves (2000). Com os seguintes pontos levados em consideração:
223
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações





As características do poço: tempo de operação, montagem, desmontagem, e
produção, foram lidas a partir de um arquivo;
A matriz de distância foi lida a partir de um arquivo, e logo após foi aplicado
o algoritmo de Floyd Warshall para encontrar a menor distância entre todos
os poços;
A população inicial foi gerada aleatoriamente através do parâmetro:
(Tamanho do Cromossomo x 20) a população representará as possíveis rotas
do problema;
Com as soluções ordenadas da melhor avaliada, até a pior, estas são
divididas em dois grupos: 30% representando o grupo elite, e 70% o grupo
não elite;
Para o cruzamento é sorteado um pai do grupo elite, e uma mãe do grupo não
elite; e para saber se o alelo resultante do cruzamento será do pai ou da mãe é
feito um sorteio que gerará um filho com características de ambos ou não,
para isso a probabilidade de o alelo herdado ser do pai é maior com 70%.
Esse processo é feito paté a população atual seja preenchida, com o
acréscimo de novos indivíduos, sendo esse de 5%.
3. Resultados e discussão
Os resultados que seguem foram feitos utilizando as instâncias encontradas em Neves
(2000). Todos os testes foram realizados numa mesma máquina, com processador
Pentium dual core T4400, 4GB de memória RAM DDR2 – 800MHz, com o sistema
operacional Kubuntu Linux 14.04. As instâncias representam um campo real contendo
99 poços incluindo a ETO, com um grupo de 15 instâncias, onde a primeira contém
todos os poços, e as demais são retirados alguns para efeitos de teste.
Tabela 1. Tabela de Comparações
Cada instância foi executada 100 vezes, sendo o critério de parada da
metaheurística, o número de gerações, que no caso foram 100. A Tabela 1 apresenta os
resultados do algoritmo genético encontrado em NEVES (2000) para o mesmo
problema das unidades móveis, nossa proposta foi a de utilizar a BRKGA e comparar
seu desempenho com o algoritmo genético, utilizando o mesmo grupo de instâncias do
224
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
trabalho citado. A comparação utilizou as mesmas instâncias, em que os melhores
resultados das duas foram observados.
4. Conclusão
A BRKGA mostrou-se eficiente quando comparada ao Algoritmo Genético,
apresentando desempenho superior na produção de 7 instâncias, tendo menor
desempenho em 8, porém mesmo nas que a BRKGA obteve uma produção inferior os
valores ainda são próximos, assim como o tempo que levou em cada instância. Algumas
levaram mais tempo comparadas ao Algoritmo Genético, outras menos tempo. Contudo,
nas instâncias que continham mais poços, a BRKGA mostrou-se mais eficiente,
percorrendo mais poços, assim fazendo com que a unidade móvel fosse melhor
otimizada e a produção de óleo fosse aumentada.
Referências
Aloise, D. J.; Neves, J. A.; Barros, C. A.; Moura, L. S. S.; Assmann, B. W. Um
Algoritmo Genético na Otimização do Emprego da Unidade Móvel de Pistoneio.
Anais do XXXII Simpósio Brasileiro de Pesquisa Operacional. 18-20 out 2000.
Universidade Federal de Viçosa/SOBRAPO. Viçosa (MG), Brasil. 2000(c).
Bean, J. C., Genetic algorithms and random keys for sequencing and optimization.
ORSA Journal on Computing, v. 6, n. 2, p. 154–160. (1994)
Neves, Josemir Araújo. Uma aplicação de algoritmo genético na otimização do emprego
da unidade móvel de pistoneio. 2000. 108 f. Dissertação (Mestrado em Sistemas e
Computação) – Programa de Pós-Graduação em Sistemas e Computação,
Universidade Federal do Rio Grande do Norte, Natal, 2000.
Resende, M. G. C.; Introdução aos algoritmos genéticos de chaves aleatórias viciadas,
Anais do Simpósio Brasileiro de Pesquisa Operacional - SBPO, (2013).
225
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Uma Investigação do uso de Comitês de Classificadores
Heterogêneos para Bases Multibiométricas de Voz e
Impressão Digital
Dayane de Oliveira Araújo¹, Isaac de Lima Oliveira Filho²
1
Departamento de Computação – Universidade Do Estado Do Rio Grande do Norte
(UERN)
Avenida Doutor João Medeiros Filho, 3419 - Potengi, Natal - RN, 59120-555
[email protected], [email protected]
Resumo. Este artigo aborda alguns métodos destinados ao controle de
usuários via autenticação biométrica. Esses métodos utilizam características
de um indivíduo nas quais as informações adquiridas são transformadas em
dados numéricos e aplicadas a técnicas de Inteligência Artificial (aprendizado
de máquina), denominados classificadores. Estes classificadores podem ser
organizados na forma de comitês, que segundo a literatura, podem apresentar
melhores resultados que os classificadores aplicados isoladamente. Portanto,
este trabalho visa uma investigação quanto ao aumento na confiabilidade no
processo de classificação de características biométricas em um sistema de
autenticação utilizando comitês em conjunto com as bases biométricas e
multibiométricas de Voz e Impressão Digital.
1. Introdução
Existem inúmeras maneiras de verificar a autenticidade de um indivíduo em um sistema
que necessita de controle de acesso. Estes sistemas podem exigir de um usuário
modelos tradicionais de controle de acesso, como por exemplo, login, senha, smartcard,
etc. Nestes sistemas, os elementos de autenticação, podem ser utilizados por terceiros
não garantindo sua autenticidade, ou seja, há uma fragilidade neste tipo de autenticação.
Neste sentido, existem alternativas mais confiáveis de controle, como por exemplo, os
sistemas de autenticação biométrica, que utilizam características pessoais e exclusivas
de cada indivíduo. Podem-se citar alguns exemplos de características biométricas, como
a íris, a impressão digital, a voz, assinaturas e etc.
Os sistemas de autenticação biométrica, segundo (BOLLE E PANKANTI 1998)
podem utilizar uma ou mais características biométricas para um único individuo,
diferenciando apenas na quantidade de características, usadas em paralelo em um
sistema de autenticação biométrica. Esta abordagem segundo, (JAIN, 2004) combina
várias fontes biométricas. Esta combinação agrega ainda mais confiabilidade na
autenticação, visto que o sistema esta regido por várias fontes biométricas.
Em sistemas biométricos ou multibiométricos podem ser utilizados algoritmos
de classificação para garantir maior confiabilidade no processo de autenticação de
usuários. Estes algoritmos de classificação são conhecidos como classificadores de
aprendizado de máquina (FACELI, 2011) que utilizam conceitos ligados a inteligência
artificial para atingir uma maior confiabilidade do sistema quanto à precisão no
reconhecimento de um indivíduo via características biométricas do mesmo.
Os classificadores de aprendizado constroem hipóteses de classificação para
determinados bases de dados e aplicar estas hipóteses para inferir conhecimento. Este
conjunto de classificadores, alocados em estruturas bem elaboradas, são denominados
226
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
comitês de classificadores e podem apresentar um ganho na classificação sobre estes
tipos de bases. A principal idéia por trás de um comitê é que diferentes classificadores
podem explorar diferentes formas de representação, diferentes espaços de busca e
funções diferentes de suposição e avaliação em que cada um utiliza um subconjunto de
dados. Essas estruturas são úteis, pois quando bem aplicados apresentam melhor
desempenho que classificadores aplicados de forma individual.
Neste sentido, o trabalho investiga como aumentar a confiabilidade no processo
de classificação, desenvolvendo comitês de classificadores heterogêneos, aplicando-os
inicialmente sobre as bases de dados biométricos de Voz e Impressão Digital, e
posteriormente na abordagem multibiométrica. Neste sentido, é possível identificar que
a uso de duas ou mais características biométricas pode aumentar a confiabilidade no
sistema de autenticação. Os resultados da aplicação nos comitês sobre as bases
biométricos são analisados em função da acurácia e desvio padrão de cada teste.
2 Métodos e Materiais
dos experimentos se utilizou a
MultiLayerPerception
k- NearestNeighbors, e NaiveBayes
As bases biométricas empregadas neste trabalho são; (i) Impressão Digital e (ii)
base de Voz. Bases estas compostas por instâncias com dimensão relacionada à
quantidade de atributos. Ambas as bases têm 800 instâncias que representam 100
usuários, logo, para cada usuário tem-se 8 instâncias que representam diferentes coletas
de uma característica biométrica. Em relação a quantidade de atributos utilizadas, a base
de Voz possui 156 atributos, enquanto a base de Impressão Digital 71 atributos. Cada
atributo representa um valor (numérico ou categórico) correspondente a uma
característica da biometria capturada.
A base Multibiométrica aplicada é desenvolvida através da junção das instâncias
de duas bases (Voz e de Impressão Digital). Diante disso, utilizou um préprocessamento sobre a base de Voz, utilizando a WEKA para equiparar à quantidade de
atributos de ambas as bases. Neste caso, usou-se o AttributeSelection para compor a
base com mesmo número de atributos que a base de Impressão Digital. Desta forma a
base Multibiométrica (VOZ_IMP), composta por 141 atributos e 800 instâncias, ou seja,
cada usuário tem 8 instâncias e cada instância é representada por 141 atributos
alternados em atributos de Voz e Impressão Digital.
3 Metodologia dos Experimentos
Neste trabalho se desenvolveu 16 comitês de classificadores, onde cada comitê é
composto por 3 classificadores e um meta-classificador. Por exemplo, o primeiro
comitê, rotulado por 1RN1AD1KN é composto por um classificador do tipo Rede
Neural (MultiLayerPerception – MLP), um classificador do tipo Árvore de Decisão
(J48) e um classificador do tipo K-NN (IBK). O algoritmo utilizado para compor cada
comitê no WEKA foi o Stacking, no entanto, segundo (QUINLAN, 1996) existem
outros algoritmos como, por exemplo, o Bagging e o Boosting. Neste caso, cada comitê
é aplicado sobre uma base biométrica, e para cada execução é aplicado um metaclassificador diferente, ou seja, todos os comitês são aplicados 4 vezes sobre cada base.
227
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
COMITÊS
META-CLASSIFICADORES
1RN 1AD 1KN
MLP
1RN 1NB 1KN
J48
1AD 1KN 1NB
NaiveBayes
1RN 1AD 1NB
IBK
BASES BIOMÉTRICAS
VOZ
IMPRESSÃO
DIGITAL
VOZ_IMP
MULTIBIOMÉTRICA
LEGENDA:
RN = Rede Neural
AD = Árvore de Decisão
NB = Naive Bayes
KN = K-nn
Figura 1: Arquitetura dos Experimentos
A Figura 1 A arquitetura dos experimentos mostra a configuração padrão de 4 comitês,
on
ii
4 meta-classificador, assim cada combinação é
aplicada sobre as bases de Voz, Impressão Digital e Multibiométrica VOZ_IMP.
Ao realizar e executar os comitês é possível avaliar os resultados em função da taxa
de acurácia e desvio padrão para cada comitê. Esta análise tem por objetivo identificar o
comitê mais eficaz, assim como apresentar um comparativo deste comitê sobre as bases.
3.1 Resultados dos Comitês sobre a Base de Impressão Digital
Mediante os resultados obtidos, é plausível observar na Tabela 1 que o comitê
1AD1KN1NB utilizando MLP (rede neural) como meta-classificador teve melhor
desempenho. No entanto, o comitê 1MLP1AD1KN, utilizando o IBK como metaclassificador atingiu um bom resultado com base de Impressão Digital este obteve 80%
da acurácia.
Tabela 1 – Composição dos comitês de classificadores.
META-CLASSIFICADORES
IBK
AD
MLP
NB
COMITÊS
1MLP1AD1KN
1AD1IK1NB
1AD1KN1NB
1MLP1AD1KN
Acurácia / DP
80,00 + -4,32
79.22 + -4.57
81.58 + -4.38
71,91+- 5.02
3.2 Resultados dos Comitês sobre a Base de Voz
Na Tabela 2 pode se observar os resultados obtidos pelos quatro meta-classificador
utilizados e seus comitês mediante sob a base de Voz. É possível destacar que o melhor
resultado adquirido entre os conjuntos de comitê foi o 1AD1MLP1NB, usando como
meta-classificador o MLP. Neste caso o número de redes neurais foi um fator
determinante para o melhor desempenho, havendo aumento da taxa de acuraria.
Tabela 2 – Resumo do desempenho para cada meta-classificador.
META-CLASSIFICADORES
MLP
IBK
NA
AD
COMITÊS
1AD1MLP1NB
1NB1KN1MLP
1NB1KN1MLP
1AD1KN1NB
Acurácia / DP
83.25 +- 2.75
69.38 +- 3.38
68.88 +- 3.87
45.53 +- 4.15
3.3 Resultados dos Comitês sobre a Base Multibiométrica
A Tabela 3 apresenta os resultados dos comitês sobre a base. Nos testes realizados, o
comitê independente do meta-classificador obteve sempre os melhores resultados para a
base multibiométrica. Neste caso, o comitê consegue bom desempenho quando usa o
MLP como meta-classificador.
228
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Tabela 3- Resultados dos comitês utilizando o AD como meta-classificador.
COMITÊS
1AD1KN1NB (J48)
1AD1KN1NB (NaiveBayes)
1AD1KN1NB (MLP)
Acurácia / DP
82.15 +-4.45
43.23+- 6.33
82.19 +- 4.36
3.4. Comparação dos Resultados Biométrica e Multibiométrica
A Tabela 4 se depara a comparação dos comitês com melhores resultados sob as bases
biométricas e Multibiométrica. O resultado da taxa acurácia do comitê 1AD1KN1NB na
Impressão Digital é de 79% a segunda maior taxa entre as 3 bases. Ao apurar esse
mesmo comitê alterando a base para Voz percebe-se que este apresentou queda no
desempenho obtendo apenas 45% da acurácia. Usando mesmo comitê alterando a base
biométrica para multibiométrica percebe-se aumento significativo comparado com os
demais, obtendo acurácia de 82% estando acima da média de taxas no qual tem índices
entre 60 a 80%.
Desta forma é possível confirmar o aumento de confiabilidade ao usar a
Multibiometria (Voz e Impressão) gerando através deste o melhor resultado
aumentando a confiabilidade na classificação de características biométricas na
autenticação.
Tabela 12 – Comparação Biometria e Multibiometria.
COMITÊS
1AD1KN1NB
IMPR. DIGITAL
79.22 + -4.57
VOZ
45.53 +- 4.15
MULTIBIOMETRIA
82.15 +-4.45
4. Considerações Finais
N
b h ,
ii n
v
bi
i
b v
h
f
i
i
.
ifi
n
f
n WEKA. E
iê f
ibi
i . Di n
i ,f i
nh ,
in
i , vi n i
nfi bi i
ni
N
ni
b h f
,
ibi
i
i g f
, vi q
inv ig
çã
iê
n
x
nfi bi i
n
çã
i i n
i i çã
iê
inv ig
nfi bi i
vi
b
i
i
ív inv
q
b
çã
bi
i
b
áq in f
b b
ig q
iê
ibi
i
ái
i
,
i
b
i
in g i
,
bi
i
i
ív
.
Referências
[BOLLE E PANKANTI 1998] BOLLE, R.; PANKANTI, S. Biometrics, Personal
Identification in Networked Society: Personal Identification inetworked Society.
Norwell, MA, USA: Kluwer Academic Publishers, 1998.
[FACELI 2011] FACELI, K. et al. n igên i A ifi i
Ab
g
A n i
áq in . 1rd. ed. [S.l.]: LTC, 2011.
[JAIN 2004] JAIN, A. K.; ROSS, A. Multibiometric systems. Commun. ACM, ACM,
New York, NY, USA, v. 47, n. 1, p. 34–40, jan. 2004.
[QUINLAN 1996] QUINLAN, J. R. Bagging, Boosting, and C4.5. AAAI Press, 1996.
[UNIVERSITY WAIKATO, 2004]W. T. U, Weka 3: Data Mining Software in Java,
Disponível em: http://www.cs.waikato.ac.nz/ml/weka/ Acessado em: agosto de 2016.
229
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Contagem de Ovos do Aedes Aegypti Utilizando
Processamento Digital de Imagens
Thiago V. Lima Brasil, Gustavo P. Xavier, Fausto P. de Lima Junior, Elidiel D.
Costa, Heriberto S. Tinoco Filho, Iaslan N. P. da Silva, Alessandra Mendes P. G.
Vale, Taniro C. Rodrigues
Tecnologia em Análise e Desenvolvimento de Sistemas – Escola Agrícola de Jundiaí
(EAJ) - Universidade Federal do Rio Grande do Norte (UFRN) - Macaíba, RN, Brasil
[email protected], [email protected],
[email protected] {fausto.pegadojr, elidieldantas,
iaslannascimento, alemendesp, tanirocr}@gmail.com
Resumo: O Aedes Aegypti é o principal vetor dos vírus da dengue,
chikungunya e zika. Uma das técnicas de combate ao mosquito é a utilização
das armadilhas de oviposição para coleta de ovos e posterior contagem
manual, estimando-se a população do mosquito em cada região da cidade.
Este trabalho propõe um sistema automático para detecção e contagem dos
ovos, tornando o processo de contagem mais rápido e confiável.
Abstract: Aedes Aegypti is the main vector of dengue, chikungunya and zika.
One of the techniques of combating mosquitoes is the use of oviposition traps
to collect and count eggs in order to estimate the population of the vector in
each region of the city. This work presents an automatic system to detect and
count eggs, making the fast and reliable counting process.
1. Introdução
O Aedes Aegypti, principal vetor dos vírus da dengue, chikungunya e zika, mostra-se um
grande problema de saúde pública. Atualmente e em se tratando especificamente da
dengue, cerca de 50 milhões de infecções ocorrem no mundo (IOC/Fiocruz, 2016). Para
o controle e combate ao mosquito, foca-se especialmente na sua reprodução, que ocorre
a partir da água limpa e do depósito dos seus ovos próximos da superfície, e na
identificação das áreas com maior incidência. Objetivando mensurar a presença do
Aedes Aegypti, é realizada a coleta dos ovos em de armadilhas de oviposição. Esse
método, inicialmente proposto por (Fay & Perry, 1965), possui como vantagens o baixo
custo, a segurança e a não agressividade ao meio ambiente. Após esta coleta, as
amostras são levadas para um laboratório onde um técnico especializado realiza a
contagem microscópica dos ovos. Contudo, essa verificação é realizada de forma
manual e pode levar a imprecisões e erros nas análises.
A automatização de processos manuais como este é um dos principais focos da
tecnologia da informação. As técnicas de processamento digital de imagens (PDI)
mostram-se eficientes por permitirem viabilizar grande número de aplicações em duas
categorias bem distintas: (i) o aprimoramento de informações pictóricas para
interpretação humana; e (ii) a análise automática por computador de informações
extraídas de uma cena (Ogê, Hugo, 1999).
Neste sentido, este trabalho propõe um sistema automatizado para identificação
e contagem de ovos do Aedes Aegypti obtidos através de armadilhas de oviposição. Este
230
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
sistema divide-se em três passos: (i) Detecção automática dos objetos, utilizando
técnicas de PDI, em imagens adquiridas com o auxílio de uma câmera digital acoplada à
lente do microscópio; (ii) Caracterização dos objetos encontrados a partir de um
conjunto de descritores; (ii) Classificação e contagem dos objetos classificados como
ovos por um Sistema de Inferência Fuzzy (SIF). Assim, pretende-se, com uso de
técnicas de PDI e de um SIF, informar a quantidade ovos presentes em cada amostra e
identificar as regiões que apresentam maior incidência do mosquito.
2. Trabalhos Relacionados
Atualmente existem pesquisas que buscam aprimorar o processo de detecção e
contagem de ovos do Aedes Aegypti baseadas pré-processamento, segmentação e pósprocessamento de imagens (Feitosa, 2015). Portela et. al. (2009) apresenta uma proposta
utilizando limiarização, algoritmos de agrupamento de dados, mudanças de sistemas de
cores e programação evolucionária. Em Mello et al (1998), os autores abordam o
desenvolvimento de métodos para contagem de ovos utilizando, além de PDI, técnicas
de segmentação e filtros não lineares baseados em morfologia matemática. Porém, foi
observado que ainda há a necessidade de melhorias tanto na padronização das
armadilhas e aquisição das imagens quanto na identificação de descritores que
representem o conhecimento do especialista responsável pelo processo manual.
3. Materiais e Métodos
O sistema proposto está sendo desenvolvido seguindo os passos do PDI, conforme
esquema exibido na figura 1. As subseções seguintes descrevem cada uma destas etapas.
Figura 1. Diagrama do Proc. Digital de Imagens (Gonzalez, Woods, 2000)
3.1 Aquisição de imagens
A etapa de aquisição consiste na obtenção das imagens digitais das amostras utilizadas
nas armadilhas de oviposição. Este trabalho propõe um modelo de armadilha utilizando
filtro de café (tamanho 103). Este papel apresenta, como pontos positivos importantes, o
custo baixo e o fácil acesso. As armadilhas são confeccionadas, colocadas em campo e
retiradas após 7 dias. O processo de aquisição é realizado no Centro de Controle de
Zoonoses - CCZ, Natal/RN, utilizando uma câmera BIOFOCUS acoplada a um
microscópio Stemi 305 body (Carl Zeiss Microsscopy GmbH), a uma distância média
de 12 à 14 centímetros de altura entre o papel e a lente objetiva. As imagens adquiridas
passam a compor o banco de imagens para serem, posteriormente, analisadas pelo
sistema (desenvolvido utilizando a ferramenta de programação Matlab, versão R2014a).
3.2 Pré-processamento
A etapa de pré-processamento tem como objetivo realçar a imagem para aumentar as
chances de sucesso dos processos seguintes. Neste trabalho, a etapa de pré-
231
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
processamento realiza automaticamente a separação entre os objetos e o fundo da
imagem a partir do seu histograma. Em seguida, são aplicados operadores morfológicos
de dilatação e erosão a fim de eliminar pequenos objetos que não fazem parte das
regiões de interesse.
3.2 Segmentação
A etapa de segmentação é responsável por dividir a imagem de entrada em partes ou
objetos constituintes. Neste trabalho, os objetos resultantes na imagem pré-processada
são segmentados em imagens distintas de tal forma que cada imagem segmentada
contenha somente um objeto.
3.2 Representação e descrição
A etapa de representação e descrição visa rotular os dados de forma que as
características de interesse sejam enfatizadas e descritas. Neste trabalho, a cada objeto
resultante da segmentação é associado um vetor de características utilizando os
descritores cor, área, convexidade, forma e perímetro (Figura 2). Estes descritores são
calculados respeitando-se, respectivamente, as seguintes definições: média de cores
RGB do objeto, área ocupada pelo objeto na imagem segmentada, quantidade de pixels
dentro do menor polígono convexo no qual o objeto está contido e que não pertencem a
ele, quantidade de curvas presentes no objeto e medida do contorno do objeto.
(a)
(b)
(c)
(d)
(e)
Figura 2. Descritores (a) Cor, (b) Área, (c) Convexidade, (d) Forma, (e) Perímetro
3.3 Reconhecimento e interpretação
A etapa de reconhecimento atribui um rótulo a um objeto baseado na informação
fornecida pelo seu vetor de características. Neste trabalho, é proposto um SIF para
classificar os objetos. O SIF é um sistema baseado em regras fuzzy e possui cinco
componentes básicos: a interface de fuzificação, a base de conhecimento, a base de
dados, o procedimento de inferência e a interface de defuzificação (Figura 3).
Figura 3. Sistema de Inferência Fuzzy (adaptado de Leite, 2009).
A Interface de Fuzzificação recebe os valores de entrada e associa-os aos
respectivos universos de discurso, permitindo uma avaliação do grau de pertinência aos
conjuntos fuzzy associados às variáveis linguísticas. As Bases de Regras e de Dados
expressam as regras para a classificação dos objetos e as definições das funções de
pertinência, entre outros. O Procedimento de Inferência processa os dados fuzificados
232
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
de acordo com as regras fuzzy definidas objetivando inferir as ações de controle.
Finalmente, a Interface de Defuzificação processa as saídas fuzzy do procedimento
anterior em saídas não-fuzzy através de um escalamento, de modo a compatibilizar os
valores normalizados com os valores dos universos de discurso reais.
Neste trabalho, considerando como variáveis linguísticas fuzzy de entrada o vetor de
características (descritores), suas respectivas funções de pertinência e a base de regras
fuzzy, o SIF fuzzifica cada uma das imagens segmentadas, aplica as regras definidas na
Base de Conhecimento (modeladas com o auxílio do especialista) e as defuzzifica,
classificando-as individualmente como um dos tipos de saída, positivo ou negativo para
ovo, utilizando o método da Média dos Máximos. Finalmente, é feito o realce e a
contagem final de todos os objetos classificados como positivo na imagem original.
4. Conclusão e trabalhos futuros
O sistema de contagem automática dos ovos do Aedes Aegypti presentes em armadilhas
de oviposição pode contribuir com o monitoramento e controle de sua proliferação. A
contagem de ovos é baseada em técnicas de PDI, definição de descritores e uso de SIF.
Assim, ações de prevenção e controle podem ser tomadas pontualmente, de acordo com
a necessidade de cada região. Como trabalhos futuros, propõe-se o aumento do banco de
imagens e a análise comparativa entre os resultados automáticos promovidos pelo
sistema e os resultados manuais provenientes das análises manuais feitas pelo
especialista. Pretende-se ainda realizar uma análise comparativa do método proposto
com outros desenvolvidos com o mesmo objetivo.
Referências
Fay, R. W., & Perry, A. S. (1965). One method for surveillance is the detection of adult
female mosquitoes through. Lab. Studies of Opp. Preferences of Aedes Aegypti
Gonzalez, R. C.; Woods, R. E. (2002) Digital Image Processing. 2nd.ed.NJ: Prentice
Hall, 2002.
Instituto Oswaldo Cruz (IOC/Fiocruz). (2016). Dengue - Virus e Vetor. Retrieved
August 23, 2016, from http://www.ioc.fiocruz.br/dengue/textos/aedexculex.html
Feitosa, L. N. (2015) "Sistema de contagem automática de ovos do Aedes aegypti a
partir de Processamento de Imagens das palhetas de Ovitrampas". Pau dos Ferros.
Leite, L.C.M. (2009) Geração e simplificação da base de conhecimento de um sistema
híbrido fuzzy-genético. Dissertação de Mestrado. UFRJ- Rio de Janeiro, 2009.
Marques Filho, Ogê e Vieira Neto, Hugo.(2009) Processamento Digital de Imagens. Rio
de Janeiro: Brasport, 1999.
MathWorks Matlab R2014a software (The MathWorks, Inc., 3 Apple Hill Drive,
Natick, Massachusetts 01760 USA.
Mello CAB et al (2009). Automatic counting of Aedes aegypti eggs in ovitraps images.
In: Naik GR, organizer. Rec. Adv. in Biom. Engg. Vukovar: In-Teh; 2009. p. 211-22
Miranda Portela et al (2009) "Contagem Automática de Ovos de Aedes Aegypti em
Imagens de Ovitrampas". Recife. 2009.
233
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Desenvolvimento de uma Rede Definida por Software a
Gerência De Redes Do Campus De Natal
Maria Emília do N. Salustino1, Isaac de Lima O. Filho1
1
Departamento de Computação – Universidade Do Estado Do Rio Grande do Norte
(UERN)
Avenida Doutor João Medeiros Filho, 3419 - Potengi, Natal - RN, 59120-555
[email protected], [email protected]
Resumo. Este artigo descreve uma alternativa para a melhoria da gerência de
redes do Campus de Natal da UERN. Esta alternativa está relacionada ao uso
de um novo paradigma de rede, conhecido como Rede Definida por Software
(SDN). Ao utilizar este paradigma, é possível gerenciar de forma mais eficaz e
flexível, os equipamentos que compõem uma infraestrutura de rede, através da
ênfase sobre o gerenciamento do protocolo OpenFlow. Neste sentido, este
artigo, mostra um cenário de aplicação de Redes Definida por Software que
apresenta uma arquitetura via SDN utilizando o Emulador GNS3 em conjunto
com um gerenciador de máquinas virtuais. No entanto, a rede desenvolvida
será sugerida para ser integrada na gerência de redes do Campus de Natal.
1. Introdução
As Redes Definidas por Software (Software Defined Networking – SDN) possibilitam a
implementação de aplicações de rede que realizam lógicas de monitoração e
acompanhamento de tráfego de forma mais completa que a atual tecnologia ligada ao
hardware (Costa, 2013, p.24). Estas redes compõem paradigmas que são capazes de
separar o plano de controle e o plano de dados de uma arquitetura de rede, assim,
permite-se um controle centralizado e mais adaptável a gerência de redes. A Figura 1
(a) apresenta a arquitetura de uma SDN. Esta arquitetura é representada através das
camada de aplicação, de controle e de infraestrutura, que simplifica o modo de controlar
a rede, ou seja, otimiza a gerência do plano de controle e o plano de dados.
(a)
(b)
Figura 1: (a) Arquitetura Da Rede Definida Por Software e (b) Comunicação de
um Switch OpenFlow com um Controlador
Fonte: (Araújo, 2013)
A comunicação entre a camada de infraestrutura e a camada de controle é
realizada por meio de um protocolo padrão da SDN, denominado OpenFlow, que
encaminha os pacotes em dispositivos de rede, como, por exemplo, comutadores,
234
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
roteadores e pontos de acesso sem fio (Nascimento; Salvador; Magalhães, 2011). Do
mesmo modo, o OpenFlow é capaz de analisar o tráfego de rede, podendo tomar ações
sobre todos os fluxos de pacotes de forma dinâmica (Lobato; Figueiredo; Lopez; Duarte,
2014), assim como pode ser apresentado na Figura 1(b).
Diante do uso de uma SDN, este trabalho tem como objetivo, buscar uma
solução para os problemas relacionados a infraestrutura de rede, com adesão dos
recursos de programação e aderência da mesma, recomendando uma nova distribuição
da rede do Campus Natal.
2. Metodologia e Ferramentas Utilizadas
O presente trabalho propõe a utilização de uma tecnologia a ser aplicada no ambiente de
rede do Campus da UERN - Natal que será incialmente desenvolvido através do
levantamento dos elementos da infraestrutura da rede. Em seguida será iniciado o
desenvolvimento do cenário proposto para a infraestrutura do Campus de Natal, assim
como a implantação da rede SDN por meio do uso do controlador Openflow.
Posteriormente, serão realizadas as análises do controle de fluxo, de congestionamento
do tráfico da rede, assim com os efeitos das perdas de pacotes na rede SDN.
Para o desenvolvimento de cada etapa, são necessárias algumas ferramentas para
promover o cenário, assim como oferecer os serviços essenciais para designar uma
SDN. Estas ferramentas são o OpenFlow, o Virtual Box, o Wireshark e o GNS3, que
serão apresentadas a seguir.
O OpenFlow produz as ações de encaminhamento de pacotes em dispositivos de
rede, por exemplo, comutadores, roteadores e pontos de acesso sem fio. Sendo que, as
determinadas regras e ações instaladas no hardware de rede são responsabilidade de um
elemento externo, chamado controlador, que pode ser praticado em um servidor comum
(Nascimento; Salvador; Magalhães, 2011).
Para otimizar a utilização dos recursos computacionais da rede, faz-se necessário
utilizar a virtualização de elementos de rede. Neste sentido, serão desenvolvidas
máquinas virtuais para servidores assim como para fornecer o serviço de controle
(OpenFlow). Neste contexto, de acordo com (Almeida, 2011), o Virtual Box é um
aplicativo de virtualização multiplataforma para computadores baseados na plataforma
Intel e AMD. Esta ferramenta foi escolhida por ter compatibilidade na criação de
máquinas virtuais que possam ser inicializadas via GNS3 Emulator.
Para desenvolver o cenário de forma mais robusta e real possível, foi adotada a
utilização da ferramenta GNS3. Esta ferramenta é um emulador de redes, que emula os
mais diversos equipamentos ativos de uma rede, por exemplo, roteadores, switches,
PCs, telefones, firewalls, etc. Considerando por exemplo um router (roteador), o GNS3
permite-nos emular o IOS (sistema operativo dos equipamentos Cisco) de um router
real assim como proceder às mesmas respectivas de configurações (Pinto, 2015).
A respeito da análise dos pacotes que trafegam na rede, a utilização da
ferramenta Wireshark é aconselhável, por trata-se de um robusto sniffer1 de rede, onde é
1
Segundo (Reis Junior; Soares Filho, 2002), o sniffer é um software usado para capturar e analisar o
tráfico de rede.
235
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
possível identificar e apresentar de forma estruturada os pacotes coletados via interface
de rede do servidor que hospeda o controlador (OpenFlow).
3. Cenários Desenvolvidos
O cenário desenvolvido no GNS3 deve emular a rede representada na Figura 2, que
contém a descrição do diagrama da rede do Campus de Natal. Neste caso, existe a
utilização de VLANs (Redes Locais Virtuais) baseada na separação de portas nos
switches. Assim cada departamento terá sua própria sub-rede. Para permitir a
comunicação destas VLANS com os demais serviços da rede, cada switch terá o modo
de acesso trunk ativado. Com isso, apesar de dividirem a mesma infraestrutura física, as
máquinas são logicamente separadas pelos switches em redes diferentes.
Figura 2: Diagrama da Rede do Campus de Natal
A Figura 3 apresenta o primeiro esquema da rede do campus de Natal utilizando
o GNS3. Neste esquema, estão definidas as faixas de ip, informações sobre os
servidores DHCP, sub redes, etc. Outros componentes podem ser destacados, como por
exemplo, a localização do OpenFlow – Firewall, que será conectado entre as saídas dos
dois links para as redes RNP e Intra (OI). Os ícones que representam computadores e
servidores são efetivamente máquinas virtuais (Ubuntu ou Debian) que rodam os
serviços, como por exemplo, o DNS (Domain Name System), DHCP (Dynamic Host
Configuration Protocol), Firewall, Servidor WEB, etc. Em relação aos demais itens,
vistos na Figura 3, representam os switches, roteadores, access points, etc. Este modelo
poderá sofrer alterações devido a compatibilidades de serviços disponíveis no Campus
de Natal, o que exige do desenvolvedor uma adequação da rede SDN proposta.
Figura 3: Projeto da Rede do Campus de Natal no GNS3.
236
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
4. Conclusão
O presente artigo ocasionou uma breve descrição da SDN que está sendo desenvolvida
através do emulador GNS3. Também foi possível implementar a máquina virtual que
hospedará o serviço de controle do OpenFlow, assim como os demais serviços (DNS,
DHCP, WEB, etc). No entanto, ainda faz-se necessário discutir e revisar alguns pontos
do projeto, como por exemplo a utilização de VLAN’s por porta, visto que ao evoluir no
desenvolvimento do projeto, é possível deparar com obstáculos relacionados a
atualização de equipamentos disponíveis atualmente no campus de Natal.
Entretanto, para perspectivas futuras é esperado que o projeto seja implementado
na infraestrutura de rede, e desta forma, possa ser ampliado de forma significativa.
Oferecendo aos usuários mais eficácia e flexibilidade, nesse contexto proporcionando a
probabilidade da criação de uma nova rede virtual, sendo uma opção de baixo custo com
o foco de aperfeiçoamento da gerência de redes no Campus da UERN de Natal.
Referências
Almeida, Rodrigo. “Instalação do Oracle Virtualbox 4.0.2. Instalação do Oracle
Virtualbox4.0.2”,
2012.
Disponível
em
http://www.oracle.com/technetwork/pt/articles/virtualization/instalacao-oraclevirtualbox-4-2-513998-ptb.html, Junho.
Araújo, Márcio Ricardo Alves Gadelha de. “Uma Abordagem para Aprovisionamento
de QoS em Redes Definidas por Software baseadas em OpenFlow”. 2013
http://www.cin.ufpe.br/~tg/2013-1/mraga.pdf, Janeiro.
Costa, Lucas Rodrigues. “OpenFlow e o Paradigma de Redes Definidas por Software”,
http://monografias.cic.unb.br/dspace/bitstream/123456789/391/1/Monografia_Vesao
_Leitura_em_PC.pdf , Janeiro.
Lobato, Antonio Gonzalez Pastana; Figueiredo, Ulisses da Rocha; Lopez, Martin
Andreoni; Duarte, Otto Carlos Muniz Bandeira. “Uma Arquitetura Elástica para
Prevenção de Intrusão em Redes Virtuais usando Redes Definidas por Software,
http://sbrc2014.ufsc.br/anais/files/anais_sbrc2014.pdf, Janeiro.
Nascimento, Marcelo Ribeiro; Salvador, Marcos Rogério; Magalhães, Mauricio
Ferreira. “OpenFlow e redes definidas por software: um novo paradigma de controle
e
inovação
em
redes
de
pacotes”,
http://www.cpqd.com.br/cadernosdetecnologia/Vol7_N1_jul2010_jun2011/pdf/artigo
6, Janeiro.
Pinto, Pedro. “GNS3 1.3 – A ferramenta perfeita para quem gosta de Redes”,
http://pplware.sapo.pt/tutoriais/gns3-1-3-a-ferramenta-perfeita-para-quem-gosta-deredes/PDF, Junho.
Reis Junior, Ademar de Souza; Soares Filho, Milton. “Um Sistema de Testes para a
Detecção
Remota
de
sniffers
em
Redes
TCP/IP”,
http://sniffdet.sourceforge.net/pt_BR/sniffers-ademar_milton-2002.pdf, Outubro.
237
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Aplicando o algoritmo genético de chaves aleatórias
viciadas para otimização de entrega de água com carro-pipa
Jeferson Queiroga Pereira1, Jefferson da Silva Reis1, Francisco Chagas Lima
Junior1, Carlos Heitor Pereira Liberalino1
1
Pós-Graduação em Ciência da Computação – Universidade Estadual do Rio Grande do
Norte (UERN) – Universidade Federal Rural do Semi-Árido (UFERSA) –
Av. Francisco Mota, 572 – Bairro Costa e Silva – Mossoró – RN – Brasil
{jefersonqueiroga, jeffersonreis0013}@gmail.com, {limajunior,
heitornliberalino}@uern.edu
Abstract. This article presents the use of genetic algorithm addicted random
keys (Biased Random-Key Genetic Algorithm - BRKGA) applied to the
Travelling Salesman Problem, in order to optimize water distribution journeys
made by several water trucks companies in the northeastern backlands. The
research aims to provide a web application already working for a mobile
application in order to facilitate the use of the application for the supply of
water.
Resumo. Este artigo apresenta a utilização do algoritmo genético de chaves
aleatórias viciadas (Biased Random-Key Genetic Algorithm – BRKGA)
aplicado ao Problema do Caixeiro Viajante, com intuito de otimizar os
percursos de distribuição de água realizados por várias empresas de carrospipa no sertão nordestino. A pesquisa busca disponibilizar uma aplicação web
já em funcionamento para uma aplicação mobile para que possa facilitar a
mobilidade do dispositivo durante as entregas de água.
1. Introdução
O nordeste brasileiro enfrenta desde de 2013 a maior seca dos últimos 50 anos, com mais
de 1.400 municípios afetados. Essa realidade, no entanto, não é isolada. A previsão das
Nações Unidas, por exemplo, é de que até 2030 quase metade da população mundial
estará vivendo em áreas com grande escassez de água. E esse é um problema que ocorre
em todos os lugares, sejam países pobres ou ricos (ONU, 2013).
Uma das alternativas para a solucionar o impacto causado pela seca é a
distribuição de água em carros-pipa para as chamadas populações difusas, que vivem na
zona rural ou pequenos núcleos no quais enfrentam problemas para a viabilização de
adutoras ou para a construção de uma rede de distribuição, e continuam dependendo dos
carros-pipa para o recebimento de água.
Como isso esse artigo apresenta um problema real para tratar a otimização da
distribuição de água em uma empresa localizada em Pau dos Ferros/RN, que o transporta
água para mais de 10 bairros e regiões rurais da cidade. Com a finalidade de se determinar
quais deveriam ser os caminhos ótimos, ou seja, que correspondam aos roteiros de menor
distância, visando economia de custos e de tempo, de modo que as entregas pudessem ser
feitas de forma mais rápida e econômica.
238
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Esse tipo de Problema de Roteamento de Veículos (PRV), que é uma
generalização do Problema do Caixeiro Viajante (PCV) e é um problema de otimização
combinatória pertencente à classe NP-Hard, pois sua solução determinística e
exponencial (Gutin e Punnen, 2002).
Este artigo utiliza o problema como análogo ao clássico Problema do Caixeiro
Viajante e busca otimizar o problema fazendo o uso do algoritmo genético de chaves
aleatórias viciadas (Biased Random-Key Genetic Algorithm – BRKGA) que é uma
metaheurística evolutiva para problemas de otimização discreta e global baseada no
algoritmo de chaves aleatórias de Bean (1994).
O artigo está organizado em cinco seções. A seção seguinte, apresenta o problema
do caixeiro viajante, na terceira seção, apresenta o algoritmo do BRKGA. A quarta seção
são apresentados a definição do problema na distribuição de água com os carros-pipa e
na quinta as conclusões
2. Problema do Caixeiro Viajante
De acordo com Goldbarg e Luna (2000) o Problema do Caixeiro Viajante (PCV), em
inglês chamado de Travelling Salesman Problem (TSP), é um dos mais tradicionais
problemas de programação matemática. É um problema de roteamento que lida na
maioria das vezes com passeios sobre pontos de demanda. Esses pontos podem ser
representados por cidades, postos de trabalho, clientes, depósitos, etc.
Para uma melhor compreensão do problema, o PCV consiste em visitar uma lista
de cidade, representas por grafo G = (N, A), onde N representa um conjunto de cidades e
A é a distância ou o tempo entre pares de cidades, de tal forma que inicie e termine a rota
na mesma cidade visitando as demais uma única vez, objetivando encontrar o caminho
com menor custo. Para Goldbarg e Luna (2005), o PCV possui grande dificuldade de
solução exata, devido a sua característica combinatória.
3. Algoritmo BRKGA
O algoritmo genético de chaves aleatórias viciadas (BRKGA, do inglês Biased RandomKey Genetic Algorithm), é uma metaheurística evolutiva para tratar assuntos de
otimização. Baseado no algoritmo genético de chaves aleatórias (RKGA, do inglês
Random-Key Genetic Algorithm) de Bean (1994), no qual cada indivíduo (cromossomo)
é representado independentemente do problema por um vetor de n chaves aleatórias, onde
o valor dessas chaves aleatórias é representado por um número real gerado aleatoriamente
no intervalo de [0,1). A conversão desse indivíduo em uma solução viável é conhecida
como decodificação. O procedimento de decodificação mapeia a solução no vetor de
chaves aleatórias, reordena os elementos baseados no valor das chaves aleatórias e em
seguida calcula o custo dessa solução (Resende, 2013).
O BRKGA, inicialmente P vetores de chaves aleatórias são calculados para gerar
a população inicial. A cada iteração a população é ordenada e dividida em dois conjuntos,
Pe conjunto de indivíduos elite e P-Pe conjunto de indivíduos não elite. Em seguida Pc
novos indivíduos são obtidos através do operador de crossover. Ao chegar na k-ésima
geração, todos os vetores elites são copiados para k+1-ésima geração, elitismo que
caracteriza o darwinismo. Na próxima etapa, Pm (conjunto de mutantes) vetores gerados
aleatoriamente e introduzidos na população da k+1-ésima geração, garantindo a
diversidade e evitando que a solução convirja para um ótimo local não global. A
239
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
quantidade de indivíduos mutante é obtida através de Pm=P-Pe-Pc. Completando a P
população da k+1-ésima geração, os vetores Pe+(Pc+ Pm) são combinados em pares
escolhidos aleatoriamente através combinação parametrizada de Spears Djong (1991).
No momento que a população seguinte é concluída, ou seja, quando se em P
indivíduos, os valores da função objetiva são calculados com base nas soluções geradas
pelo decodificador e a população é dividida em indivíduos elite e não-elite para iniciar a
nova geração. A Figura 1 temos um fluxograma do algoritmo BRKGA:
Figura 1. Fluxograma do Algoritmo BRKGA.
Fonte: Gonçalves e Resendes (2011).
4 Definição do Problema
No estado do Rio Grande do Norte cerca de 14 cidades estão em colapso de água, num
total de 77 que estão sendo abastecidos por rodízio em todo o estado, de acordo com
dados da CAERN (Companhia de Águas e Esgotos do Rio Grande do Norte), em
consequência, um dos problemas mais graves do semiárido continua sendo a questão de
distribuição pontual de água para o abastecimento de suas populações e de sua ampliação
para satisfazer as demandas maiores pelo crescimento populacional e pelas secas cada
vez mais prolongadas e mais frequentes, pelos efeitos das mudanças climáticas globais
(SILVA, 2015).
A distribuição de água pelo carros-pipa se enquadra no clássico Problema do
Caixeiro Viajante (PCV), que embora não seja prático encontrar a melhor solução,
heurísticas como o BRKGA, permitem encontrar uma solução “ótima” para o problema.
Nesse contexto uma solução será desenvolver a aplicação para dispositivo móvel
buscando otimizar os custo operacionais para as empresas e pessoas que vivem
diariamente entregando água nessas regiões de seca.
A aplicação receberá as informações dos pontos de entregas, utilizando as
ferramentas do Google Maps para facilitar a interação do usuários, em seguida será
passado todos os pontos para algoritmo BRKGA executar e disponibilizar como saída o
melhor caminho a ser percorrido. A aplicação já foi desenvolvida para ambiente web,
240
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
resta disponibilizar para os dispositivos móveis para que possa ser utilizado durante as
rotas praticadas pelos carros-pipa.
5 Conclusão
Neste artigo descrevemos um problema do caixeiro viajante aplicado numa empresa que
distribuição de água com carros-pipa utilizando a metaheurística BRKGA.
Os resultados obtidos para a versão da aplicação web foi satisfatório, pois os
experimentos demonstram que os valores obtidos estão próximo dos resultados ótimos da
literatura, porém essa versão não possui uma boa usabilidade para os motoristas dos
carros-pipa sendo necessário a disponibilidade da aplicação para versão mobile.
Através desse trabalho será possível determinar a menor rota que os carros-pipa
deverão percorrer durante as distribuições de água. Isso faz com que as empresas reduzam
os custos com a logística de distribuição e consequentemente possibilitará menores preços
para os usuários.
Referências
BEAN, J. C. (1994). “Genetic algorithms and random keys for sequencing and
optimization”. ORSA journal on computing, vol. 6, pp. 154-160.
GOLDBARG, M. C. and LUNA, H. P. (2000). “Otimização Combinatória e Programação
Linear - Modelos e Algoritmos”. Campus, Rio de Janeiro.
GONÇALVES, J. F. e RESENDE, M. G. C. (2011a). “Biased random-key genetic
algorithms for combinatorial optimization”. J. of Heuristics, 17:487–525.
RESENDE, M. G. C. (2013). “Introdução aos algoritmos genéticos de chaves aleatórias
viciadas”, Simpósio Brasileiro de Pesquisa Operacional - SBPO, 2013.
SPEARS, W. M., DEJONG, K. A. (1991). “On the virtues parameterized uniform
crossover”. Proceedings of the Fourh International Conference on Genetic Algorithms,
230-236.
SILVA, T. J. (2015). “Cisternas do P1MC e as ações emergenciais em épocas de estiagens
prolongadas no sertão paraibano”. UEPB.
TOSO, Rodrigo F. and RESENDE, M. G.C. (2011). “A C++ application programming
interface for Biased random-key genetic algorithms”. AT&T Labs Research Technical
Report
ONU-Organização das Nações Unidas. Pior seca dos últimos 50 anos no nordeste
brasileiro confirma estatísticas da ONU sobre escassez. 2013. Disponível em:
https://nacoesunidas.org/pior-seca-dos-ultimos-50-anos-no-nordeste-brasileiroconfirma-estatisticas-da-onu-sobre-escassez/. Acesso: 01 de setembro de 2016
241
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Desenvolvimento de um sistema inteligente para apoio à
sala de aula no Ensino/Aprendizado da taxonomia dos seres
vivos utilizando redes neurais artificiais
Álisson de Oliveira Alves1, Tiago de Albuquerque Gameleira2, Adriana Takahashi1
1
Departamento de Computação – Universidade Estadual do Rio Grande do Norte (UERN), Natal – RN – Brasil
2
Instituto Federal do Rio Grande do Norte – (IFRN), Natal – RN – Brasil
{alissoncc.oliveira,tiagogameleira,takahashi.adriana}@gmail.com
Abstract. This article deals with the implementation of an intelligent computer
system designed to support teaching/learning of taxonomy of living things.
This runs the recognition of taxonomic categories of filo "vertebrata" using
artificial neural networks. The main purpose is to promote one new
educational technology as alternative / complementary method to assist
teachers and biology students and thus demonstrate the importance of using
computer technologies to complement teaching in class due the difficulty and
lack of technological tools that help in addressing of complex contents of a
more attractive way.
Resumo. Este artigo trata da implementação de um sistema computacional
inteligente projetado para a apoio no ensino/aprendizagem da taxonomia dos
seres vivos. Este, executa o reconhecimento de categorias taxonômicas do filo
"vertebrata" utilizando redes neurais artificiais. O objetivo principal, é
promover
uma
nova
tecnologia
educacional
como
método
alternativo/complementar para auxiliar professores e estudantes de biologia
e, com isto, demonstrar a importância da utilização de tecnologias
computacionais para complementar o ensino em sala de aula, devido à
dificuldade e a falta de ferramentas tecnológicas que ajudam na abordagem
de conteúdos complexos de um modo mais atraente.
1. Introdução
Na natureza existem milhares de espécies de seres vivos. Estes organismos fazem parte
de uma hierarquia denominada hierarquia taxonômica, esta, por sua vez, segue a
seguinte estrutura: Reino, Filo, Classe, Ordem, Família, Gênero e Espécie. Os reinos são
divididos em filos e estes subdivididos em ordens que, são constituídos por famílias,
onde são subdivididas em gêneros e, porteriormente em espécies (Linneaus et al, 1758).
Com isto, a partir de um levantamento feito numa escola pública de Currais Novos no
interior do Rio Grande do Norte, foi observado que os professores possuem certa
dificuldade em abordar o conteúdo da taxonomia, visto que, se caracteriza como um
assunto um tanto complexo e detalhado, afirma uma das professoras entrevistada. Ainda
fora ressaltado que utilizar ferramentas e tecnologias que auxiliam no ensino e
aprendizagem são sempre preferíveis quando disponíveis.
242
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Diversos estudos mostram a importância e o crescimento de utilização da
tecnologia, seja ela caracterizada de diversas formas e abordadas em diferentes aspectos
no auxílio de professores e profissionais de diferentes áreas, é o caso das pesquisas de
(Oliveira e Brito, 2013); (Pontes e Filho, 2013); (Machado, 2014) onde os autores
relatam os avanços das tecnologias e os efeitos das mesmas, gerando grandes mudanças
no desenvolvimento do exercício de vários profissionais. Diante disso, no âmbito
educacional essas ferramentas tecnológicas vêm sendo utilizadas com maior frequência
com o intuito de facilitar, aperfeiçoar e criar novas metodologias para as relações do
ensino e aprendizagem de professores e alunos.
Portanto, o presente trabalho tem como objetivo principal relatar o
desenvolvimento de um sistema computacional inteligente, para reconhecimento de
classes animalescas a partir de características morfológicas, que auxilie os professores
biólogos na abordagem do ensino da taxonomia dos seres vivos para os alunos. O foco
será em abordar o conteúdo disciplinar de uma forma informatizada e simplificada,
visando disponibilizar um método alternativo a ser explorado pelos citados.
2. Desenvolvimento
Diversos autores discutem as constantes evoluções das tecnologias da informação e
Comunicação (TICs) dos computadores e, como consequência, a facilidade que estes
objetos e suas tecnologias nos proporcionam. (Posada e Baranauskas, 2016, p.2) opinam
sobre a crescente presença das tecnologias em ambientes públicos e privados. Os autores
(Fávero e Silva, 2013) confirmam, informando os equipamentos eletrônicos como
computadores, “tablets” e demais tecnologias vêm sendo incorporadas no contexto
educacional, em todo o mundo, como ferramenta de ensino e aprendizagem dentre as
mais diversas áreas e contextos.
Na contemporaneidade, diante dos diversos avanços dos computadores, em
relação a sua capacidade de processamento, tornou-se bem mais eficaz a busca de
informações através de sistemas computacionais, e pararelalmente a este
desenvolvimento, nasce a motivação para elaboração de pesquisas, análises científicas e
a investigação de aplicações que utilizam inteligência artificial para complementar o
ensino e aprendizado em salas de aula (Pereira, 2016, p.1).
A inteligência artificial muitas vezes citada pela sigla AI – “Artificial
Intelligence” é definida por diversos autores resumidamente como a inteligência ou
conhecimento similar ao cognitivo humano, processados e exibidos por técnicas e
modelos computacionais. A partir disto, existem os sistemas inteligentes que podem ser
desenvolvidos utilizando várias regras chaves ou técnicas, sendo assim, aplicadas em
conjunto ou isoladamente para auxiliar no processo decisório. Uma técnica dos sistemas
inteligentes que vem crescendo bastante são as redes neurais artificias que são de grande
valia em diversas áreas de estudos, por exemplo: previsão de séries temporais,
modelagem de sistemas, bem como a classificação e o reconhecimento de padrões,
afirma (Bezerra, 2016).
Neste trabalho, fora utilizado redes neurais artificiais para realizar o
reconhecimento de classes animalescas do filo “vertebrata” a partir de características
morfológicas padronizadas por tipo. Com isto, foi realizado a implementação de uma
rede neural do tipo “perceptron” multicamadas e para o processo de aprendizagem foi
utilizado o algoritmo “backpropagation”, que adapta de maneira ordenada, os pesos
sinápticos, definidos em (Haykin, 2001).
243
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
3. Metodologia
O presente trabalho trata-se de uma pesquisa de produção tecnológica, de acordo com o
ponto de vista de sua aplicação. Segundo (Machado, 2014), este tipo de pesquisa possui
como principal objetivo o desenvolvimento, a criação de novos produtos, ou a
modificação de produtos já existentes, visando um aumento de sua eficiência. Este
modelo de metodologia foi aplicado e, obteve-se como resultado final o
desenvolvimento de um sistema computacional inteligente para reconhecimento de
categorias taxonômicas, utilizando redes neurais artificiais para apoio de professores e
alunos.
Como técnica utilizada para o processo de desenvolvimento do sistema em
colaboração com a educadora da área, foi realizado o processo de prototipagem utilizada
na engenharia de software, onde temos como objetivo a criação de uma série de versões
do sistema, afim de buscar a interação, absorção de ideias e opiniões do usuário final,
para que o mesmo tenha uma noção prévia do funcionamento do sistema. Para a
implementação do sistema, foi utilizado às seguintes tecnologias: Linguagem de
programação Java e suas bibliotecas de comunicação com banco de dados, linguagens
de modelagem para o desenvolvimento da arquitetura, projeto do sistema, modelagem
conceitual e lógica do banco de dados utilizado.
4. Resultados e Conclusões
O desenvolvimento do sistema de classificação utilizando redes neurais artificiais
proposto, foi dividido nas seguintes etapas: representação do conhecimento do
especialista, modelagem da aplicação com os diagramas de caso de uso e de classes,
modelagem conceitual e lógica para acesso ao banco de dados, implementação da
estrutura funcional do sistema de reconhecimento bem como, implementação e
treinamento da rede neural utilizando o modelo “perceptron” multicamadas, e o
algoritmo backpropagation para a aprendizagem da rede. Por fim, os testes finais para
validar o protótipo, tarefas estas concluídas até o momento. A rede do tipo “perceptron”
implementada conta com três camadas, sendo elas a camada de entrada, camada oculta e
a camada de saída, com um total de treze neurônios, oito na camada de entrada, três na
camada oculta e dois na camada de saída. A rede neural exerce sua ação seguindo o
modelo de aprendizado supervisionado, expressando através da máquina o cognitivo do
especialista, que nesta aplicação, trata-se do conhecimento do biólogo. Ao final,
demonstra-se a partir das figuras 1 e 2 apresentadas posteriormente, as principais telas
do protótipo inicial do sistema em sua funcionalidade.
Figura 1. Tela Inicial do Sistema Proposto
244
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 2. Tela de reconhecimento a partir de características morfológicas dos animais
5. Referencias
Alves, A, O., Brito, D. B. De. (2013) “Tecnologias nas salas de aula do ensino médio:
Perspectivas nas pequenas cidades da região do trairí no estado do Rio G. Do Norte”.
VII Colóquio Nacional da Afirse – Seção Brasileira. Apresentação no Ateliê
Educação e Tecnologias de Informação e Comunicação, Mossoró, UERN.
An, D. Y., da Silva, C. D., Ribeiro, D. M. G., da Rocha, P. B. R., Maltinti, C., Nunes, V.
B., & Fávero, R. (2013). “Digita-um jogo educativo de apoio ao processo de
alfabetização infantil”. In Anais do Simpósio Brasileiro de Informática na
Educação (Vol. 24, No. 1, p. 154).
Bezerra, M. A. D. (2016) “Aplicação de redes neurais artificiais no reconhecimento de
padrões de cartas dinamométricas de fundo em sistemas de bombeio mecânico de
petróleo”.
Haykin, S. S. (2001) “Redes neurais: Princípios e Práticas”. Bookman.
Linnaeus, C. V.; and Salvius L. (1758) “Systema naturae per regna tria naturae:
secundum classes, ordines, genera, species, cum characteribus, differentiis,
synonymis, locis”. Holmiae.
Machado, J. F. (2014) “Produção tecnológica do protótipo cicatrizar: um sistema de
registro eletrônico para pacientes com feridas: pesquisa aplicada”.
Pereira, R. V. (2016) “A inteligência Artificial Aplicada na Educação”, Disponível em:
http://www.ceavi.udesc.br, agosto
Pontes, R. L. J., & de Castro Filho, J. A. (2013) “O uso do blog como ferramenta
pedagógica: um estudo de caso com professores participantes do Projeto Um
Computador por Aluno (UCA) ”. Revista Brasileira de Informática na
Educação, 21(02), 12.
Posada, J. E. G., Buchdid, S. B., & Baranauskas, M. C. C. (2016) “A informática na
educação: o que revelam os trabalhos publicados no Brasil”. Revista Brasileira de
Informática na Educação, 24(1), 142.
245
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
TaxoMobile: Protótipo de um aplicativo android inteligente
para apoio à sala de aula no ensino/aprendizado da taxonomia
dos seres vivos.
Álisson de Oliveira Alves1, Jorge Chrystiann Guimarães da Cunha Nunes1, Marcos
Thiago Pinheiro Santos2, Tiago de Albuquerque Gameleira3, Adriana Takahashi1
1
Departamento de Computação – Universidade Estadual do Rio Grande do Norte (UERN), Natal – RN – Brasil
2
3
Faculdade do Seridó – (FAS), Currais Novos – RN – Brasil
Instituto Federal do Rio Grande do Norte – (IFRN), Natal – RN – Brasil
{alissoncc.oliveira,jorge.chrystiann,marcosthiago75,tiagogameleira,tak
ahashi.adriana}@gmail.com
Abstract. This article deals with the implementation of application
"TaxoMobile", this aimed to support teaching/learning of taxonomy of living
beings in classroom. This application performs the recognition of taxonomic
categories of filo "vertebrata" through relevant morphological characteristics
of each animalistic class using expert system techniques present in artificial
intelligence. With this, the main purpose is intended to provide an alternative /
complement to assist teachers and biology students, more affordably, making
access to information about taxonomy beyond the classroom, through the
characteristics of mobile applications such as Mobility, Usability and
Accessibility.
Resumo. Este artigo trata da implementação do aplicativo “TaxoMobile”,
este, voltado para o apoio à sala de aula no ensino/aprendizado da taxonomia
dos seres vivos. Esta aplicação realiza o reconhecimento de categorias
taxonômicas do filo “vertebrata”, a partir de características morfológicas
pertinentes a cada classe animalesca, utilizando a técnica de sistemas
especialistas presente na inteligência artificial. Com isto, como principal
finalidade, pretende-se prover um alternativo/complementar para auxiliar
professores e alunos de biologia, de forma mais acessível, tornando o acesso a
informações sobre taxonomia além sala de aula, visto as características dos
aplicativos mobile como: Mobilidade, Usabilidade e Acessibilidade.
1. Introdução
Na natureza existem milhares de espécies de seres vivos. Estes organismos fazem parte
de uma hierarquia denominada hierarquia taxonômica, essa hierarquia por sua vez segue
a seguinte estrutura: Reino, Filo, Classe, Ordem, Família, Gênero e Espécie. Os reinos
são divididos em filos e estes subdivididos em ordens que, são constituídos por famílias
onde são subdivididas em gêneros e, posteriormente em espécies (Linneaus et al, 1758).
A partir de um levantamento feito numa escola pública de Currais Novos no
interior do Rio Grande do Norte, foi observado que os professores possuem certa
246
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
dificuldade em abordar o conteúdo da taxonomia, visto que se caracteriza como um
assunto um tanto complexo e detalhado, afirma a professora entrevistada. Ainda fora
ressaltado que, utilizar ferramentas e tecnologias que auxiliam no ensino e
aprendizagem são sempre preferíveis quando disponíveis.
Diversos estudos mostram a importância e o crescimento de utilização da
tecnologia, seja ela caracterizada de diversas formas e abordadas em diferentes aspectos
no auxílio de professores e profissionais de diferentes áreas, é o caso das pesquisas de
(Oliveira e Sampaio, 2013); (Oliveira e Brito, 2013); (Pontes e Filho, 2013); (Machado,
2014) onde os autores relatam os avanços das tecnologias e os efeitos das mesmas,
gerando grandes mudanças no desenvolvimento do exercício de vários profissionais.
Diante disto, no âmbito da educação, essas ferramentas tecnológicas vêm sendo
utilizadas com maior frequência com o intuito de facilitar, aperfeiçoar e criar novas
metodologias para as relações aluno-professor no ensino e aprendizagem.
Portanto, o presente trabalho tem como objetivo principal, relatar o
desenvolvimento de um aplicativo móvel inteligente para o reconhecimento de classes
animalescas a partir de características morfológicas que apoiem os professores biólogos
na abordagem do ensino da taxonomia e, paralelamente, aos alunos em sua
aprendizagem. O foco será em abordar o conteúdo disciplinar de forma informatizada e
simplificada, visando disponibilizar um método alternativo a ser explorado pelos
professores e alunos a fim de aperfeiçoar e complementar a forma convencional de
ensino.
2. Desenvolvimento
Diversos autores discutem as constantes evoluções das tecnologias da informação e
Comunicação (TICs), dos computadores e como consequência a facilidade que estes
objetos e suas tecnologias nos proporcionam. (Posada e Baranauskas, 2016, p.2) opinam
sobre a crescente presença das tecnologias em ambientes públicos e privados. Os autores
(Fávero e Silva, 2013) confirmam, informando que os equipamentos eletrônicos como
computadores, “tablets” e demais tecnologias vêm sendo incorporados no contexto
educacional, em todo o mundo, como ferramenta de ensino e aprendizagem dentre as
mais diversas áreas e contextos.
Na contemporaneidade, diante dos diversos avanços dos computadores, em
relação a sua capacidade de processamento, tornou-se bem mais eficaz a busca de
informações através de sistemas computacionais, e paralelamente a este
desenvolvimento, nasce a motivação para elaboração de pesquisas, análises científicas e
a investigação de aplicações que utilizam inteligência artificial para complementar o
ensino e aprendizado em salas de aula (Pereira, 2016, p.1).
A inteligência artificial, muitas vezes citada pela sigla AI – “Artificial
Intelligence” é definida por diversos autores resumidamente como a inteligência ou
conhecimento baseado no cognitivo humano expressado através de uma máquina. A
partir disto existem os sistemas inteligentes que são desenvolvidos utilizando várias
regras chaves ou técnicas, podendo ser aplicadas em conjunto ou também isoladamente
para auxiliar no processo decisório. Uma sub-área bastante estudada dos sistemas
inteligentes são os sistemas especialistas que tem como premissa principal solucionar
um problema que normalmente não são solucionados por especialistas humanos” (Streh,
2000).
247
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Neste trabalho, fora utilizado o modelo de sistemas especialistas para realizar o
reconhecimento de classes animalescas a partir de características morfológicas
padronizadas de cada classe do filo dos vertebrados. Com isto, para a representação do
conhecimento do especialista, foi utilizada um conjunto de regras de produção, técnica
esta bastante utilizada para representar conhecimento de uma forma descritiva através de
condicionais aninhadas. Nesse caso, a regra de produção utilizada no sistema é descrita
da seguinte forma: Se <condição> for satisfeita ENTÃO <ação> apontada por
(Figueira, 2000). A utilização dessas regras em um ambiente que se baseia em
conhecimento, visa simular o modelo de cognição humano. Na figura 1 é descrito o
ciclo funcional do aplicativo proposto.
Figura 1. Ciclo de funcionamento do aplicativo TaxoMobile
3. Metodologia
O presente trabalho trata-se de uma pesquisa aplicada de produção tecnológica, de
acordo com o ponto de vista de sua aplicação. Como técnica utilizada para o processo de
desenvolvimento do sistema em colaboração com a educadora da área, foi realizado o
processo de prototipagem, onde temos como objetivo a criação de diversas versões do
aplicativo afim de buscar a interação, absorção de ideias e opiniões do usuário final,
para que o mesmo tenha uma noção prévia do funcionamento da aplicação. Para a
implementação do sistema, utilizamos às seguintes tecnologias: A ferramenta APP
Inventor do MIT para desenvolvimento móvel. Foi utilizado a linguagem de modelagem
unificada (UML) para o desenvolvimento da arquitetura, projeto do sistema.
4. Resultados e Conclusões
O desenvolvimento do aplicativo “TaxoMobile”, utilizando a técnica dos sistemas
especialistas proposto, foi dividido nas seguintes etapas: representação do conhecimento
do especialista através das regras de produção, modelagem da aplicação com os
diagramas de caso, implementação da estrutura funcional do sistema de reconhecimento,
bem como a implementação e os testes para a validação final, tarefas estas concluídas
até o momento. Na figura 2, foi destacado as telas das principais funcionalidades do
sistema que vão desde a tela inicial, passando pela tela de reconhecimento de classes
animalescas até a tela que demonstra as descrições de cada classe individualmente.
248
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Figura 2. Principais telas do sistema.
Ao final da pesquisa demonstra-se o protótipo final do sistema, pronto para a
validação final, referente a utilização pelo usuário final dentro do âmbito educacional.
Com isto, foi alcançado o objetivo principal do sistema, que se trata da implementação
de uma nova ferramenta de ensino aprendizagem para diversos professores e alunos do
ensino básico e, a partir disto, suprir e criar um maior estímulo acerca do ensino da
biologia, da mesma maneira, pela taxonomia dos seres vivos. Para trabalhos futuros,
pretende-se realizar um teste experimental do sistema e verificar pontos positivos e
negativos do mesmo apontados pelos usuários finais.
5. Referências
Alves, A. O., Brito, D. B. De., Sampaio, R. (2013) “Software na educação infantil: A
emergência da tecnologia nas cidades de Santa Cruz, Currais Novos, Jaçanã e Campo
redondo” VII Colóquio Nacional da Afirse – Seção Brasileira. Apresentação no
Ateliê Educação e Tecnologias de Informação e Comunicação, Mossoró, UERN.
Alves, A, O., Brito, D. B. De. (2013) “Tecnologias nas salas de aula do ensino médio:
Perspectivas nas pequenas cidades da região do trairí no estado do Rio G. Do Norte”
VII Colóquio Nacional da Afirse – Seção Brasileira. Apresentação no Ateliê
Educação e Tecnologias de Informação e Comunicação, Mossoró, UERN.
Machado, J. F. (2014). “Produção tecnológica do protótipo cicatrizar: um sistema de
registro eletrônico para pacientes com feridas: pesquisa aplicada”.
Pereira, R. V. (2016) “A inteligência Artificial Aplicada na Educação”, Disponível em:
http://www.ceavi.udesc.br, agosto
Pontes, R. L. J., & de Castro Filho, J. A. (2013). “O uso do blog como ferramenta
pedagógica: um estudo de caso com professores participantes do Projeto Um
Computador por Aluno (UCA) ”, Revista Brasileira de Informática na
Educação, 21(02), 12.
Posada, J. E. G., Buchdid, S. B., & Baranauskas, M. C. C. (2016). “A informática na
educação: o que revelam os trabalhos publicados no Brasil”. Revista Brasileira de
Informática na Educação, 24(1), 142.
Strehl, M, 2000. “Sistemas Especialistas: definições e exemplos”.
Figueira, Carlos JEOPS, 2000. “Integração entre objetos e Regras de produção Java".
Recife – PE. P. 33 Dissertação de Mestrado.
249
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Minicursos
250
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Análise das principais ferramentas de simulação de RSSF
Felipe D.M. de Oliveira1
1
Departamento de Ciências da Computação - Universidade do Estado do Rio Grande do
Norte – (UERN)
Natal, RN - Brazil.
[email protected]
Resumo. As ferramentas de simulação computacionais são vitais para a
análise de sistemas complexos, caros e difíceis de serem construídos. São
ferramentas que auxiliam no desenvolvimento e avaliação de novas ideias e
algoritmos a serem usados em problemas do mundo real, em particular no
tocante às RSSFs (Redes de Sensores Sem Fio). Tais redes diferem-se de
redes de computadores tradicionais em vários aspectos, tais como possuírem
um grande número de nós sensores distribuídos numa região geográfica,
restrições no consumo de energia, possuindo mecanismos para
autoconfiguração e adaptação, para lidar com problemas, tais como falhas de
comunicação, atrasos e perdas físicas dos nós sensores. Este minicurso tem
como finalidade analisar algumas das principais ferramentas de simulação de
RSSF utilizadas no meio acadêmico, em particular, o uso do Network
Simulator (NS-2), onde serão demonstradas simulações práticas utilizando
essa ferramenta de simulação em conjunto com o WINSS, um ambiente de
desenvolvimento que facilita a geração de cenários e obtenção de resultados
através de gráficos e estatísticas das principais variáveis de QoS envolvidas
em RSSF.
251
EPOCA 2016 - IX Escola Potiguar de Computação e suas Aplicações
Aprendendo Lógica e Linguagem de Programação com a
Ferramenta Scratch
Edjane Mikaelly Silva de Azevêdo¹, Alexandre Rodrigues Caitano¹ ²
1
Universidade Federal do Semi-arido (Ufersa)
Mossoró, RN - Brazil.
2
Universidade do Estado do Rio Grande do Norte (UERN)
Mossoró, RN - Brazil.
[email protected], [email protected]
Resumo. Neste minicurso os participantes irão aprender sobre a lógica e a
linguagem de programação. Irão conhecer uma nova linguagem e ambiente
gráfico para desenvolvimento de aplicações, o Scratch. O Scratch é uma
linguagem deprogramação lúdica, onde o programador irá interligar blocos
como em um quebra-cabeças e esses comandos darão vida a animações
digitais, nas quais o usuário poderá inserir movimentos, sons e imagens. O
programador irá realizar suas tarefas de modo online,sem precisar de um
programa específico, a não ser de um navegador web. Além de aprender sobre
uma nova ferramenta para a área de programação, o participante também irá
aprender a diferenciar lógica de linguagem de programação. A lógica de
programação é o modo como se escreve um programa de computador, uma
sequência de passos que irão executar uma determinada função, como por
exemplo, uma receita de bolo que deve ser seguida passo-a-passo. Já
linguagem de programação é como o inglês, português, espanhol, enfim, é
como uma linguagem de uma determinada região ou país. Como exemplos de
linguagens de programação temos o Scratch (que é o nosso objeto de estudo),
o Java, o C, o C++, o C#, o Delphi, entre diversas outras linguagens.
252
Download
Random flashcards

Radiobiology

– Cards

Ethnology

– Cards

History of Europe

– Cards

Soviet phraseology

– Cards

Create flashcards