SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
OTAVIO NEVES LARA
PROGRAMAÇÃO GENÉTICAAPLICADA À
GERAÇÃO AUTOMATIZADA DE
APLICAÇÕES PARA REDES DE SENSORES
SEM FIO
LAVRAS – MG
2014
OTAVIO NEVES LARA
PROGRAMAÇÃO GENÉTICAAPLICADA À
GERAÇÃO AUTOMATIZADA DE
APLICAÇÕES PARA REDES DE SENSORES
SEM FIO
Monografia apresentada ao Colegiado do
Curso de Ciência da Computação, para a
obtenção de título de Bacharel em
Ciência da Computação.
PROF. ANDRÉ LUIZ ZAMBALDE
LAVRAS – MG
2014
SUMÁRIO
1 INTRODUÇÃO ….............................................................................. 06
1.1 Contextualização e motivação ........................................................... 06
1.2 Problemas e objetivos …..................................................................... 06
1.3 Estrutura da Monografia . ................................................................ 06
2 REFERENCIAL TEÓRICO ............................................................. 08
2.1 Referencial básico …........................................................................... 08
2.2 Referencial relacionado....................................................................... 08
3 METODOLOGIA …........................................................................... 10
3.1 Tipo de pesquisa .................................................................................. 10
3.2 Procedimento metodológico ............................................................... 10
4. RESULTADOS E DISCUSSÕES ….................................................. 12
4.1 Gerador de instâcias ........................................................................... 12
4.2 Instâcias de teste ...................... …...................................................... 12
4.3 Análize de dados.................................................................................. 12
5 CONCLUSÃO …................................................................................. 13
6 REFERÊNCIAS ...................................................................................14
RESUMO
A programação de redes de sensores sem fio (RSSF) é uma tarefa
complexa devido à Programação em Linguagens de baixo nível e à necessidade
de uma aplicação distinta para cada sensor. Além disso, sensores sem fio
possuem grandes limitações de hardware, como baixo poder de processamento,
pouca memória e limitação energética. Portanto a programação automática de
RSSF é desejável, uma vez que pode-se contemplar essas dificuldades
automaticamente, além de economizar em custos, pois elimina a necessidade de
se alocar um Programador para programar a RSSF. A geração automática de
códigos-fonte por RSSF utilizando programação genética foi pouco estudada na
Literatura até o momento. A programação genética se mostrou promissora na
geração de códigos em diversas áreas de aplicação. Dessa forma, o presente
estudo propõe o desenvolvimento e a aplicação de algoritmos evolutivos para
gerar e evoluir códigos-fonte que solucionam problemas de RSSF. O objetivo é
que os algoritmos evolutivos desenvolvidos sejam capazes de resolver
problemas distintos de RSSF de forma correta e com uma eficiência satisfatória.
Os resultados obtidos mostram que a ferramenta é capaz de solucionar de
maneira ótima o problema de Detecção de eventos para RSSF com topologia
randômica me grade e de forma satisfatória para a RSSF topologia randômica.
Sendo assim o presente estudo traz contribuições para a área de RSSF, uma vez
que a programação automática de RSSF reduz consideravelmente a mão de obra
humana.
ABSTRACT
The wireless sensor networks (WSN) programming is a complex task
dive to the low-level programming languages and the need of a specific
application for each sensor. Furthemore, wireless sensors have many hardware.
Limitations such as slow processing power small memory and energic
limitations. Hence, the automatic Programming of WSNs is desirable since it
com automatically address these difficulties, besides saving costs by eliminating
the need to alocate a developer to program the WSN. The automatic code
gerenation for WSNs using genetic programminghas been poorly studied in
literatures so for the genetic programming has proved to be promising in code
generation for many application área. This study proposes the development and
application of evolutinary algorithms to generate source codes that salve WSNs
problems. The developed evolutinary algorithms should be able to solve
different problems as WSNs correctly and satsfactory efficiency the
obtained results show that the proposed. Framework is able to find
optimal solutions for the event detection. Problem fom WSN with gird to
find optimal solutions for the event detection problem for WSN grid.
Topology and to find satisfactory solutions for WSN with randomized
topology. Thus, this study brings many contribuitions to the WSN arco
since the automatic programming of WSNs drastically reducestre human
programming effort.
1. Introdução
Aqui falaremos como se organiza o trabalho para produção de RSSF e a
motivação para produção dos mesmos incluindo materiais que servem de base
para o assunto tratado.
1.1. Contextualização e motivação
Redes de sensores sem fio (RSSF) são redes compostas por vários nós sensores.
Esses nós sensores são compostos por um processador de baixo poder de
processamento, um rádio de baixa potência e memória de tamanho reduzido.
Eles são alimentados por uma bateria e por isso possuem limitações em sua
utilização. Além disso, existem várias limitações e dificuldades no projeto de
uma RSSF, como a programação de baixo nível dos nós sensores, especificidade
do comportamento de cada nó sensor, entre outras questões que afetam sistemas
massivamente distribuídos.
As RSSF são muito versáteis. Além do custo de implantação
relativamente reduzido, elas possibilitam o monitoramento e o mapeamento de
regiões de alto risco. Pode-se utilizar RSSF para monitoramentos sismográficos
em vulcões e monitoramento de temperatura e pressão em plataformas
petrolíferas e de regiões hostis (Yang, 2010).
Apesar da versatilidade das RSSF, a programação da rede é uma tarefa
complexa. A aplicação deve ser desenvolvida e customizada para cada nó sensor
da rede, uma vez que o comportamento de cada nó depende de fatores
específicos como posição geográfica, estado do nó, função do sensor, entre
outras. Essa heterogeneidade das RSSF torna o processo do desenvolvimento e
da programação dos nós uma tarefa árdua.
1.2. Problemas e objetivos
O objetivo geral do presente trabalho é desenvolver um framework capaz de
gerar, de forma automática, o código fonte de aplicações para RSSF. Esse
framework é composto por três camadas: Um simulador de RSSF, um
middleware que provê uma linguagem script de alto nível para
programação de aplicações para RSSF e um método baseado em
programação genética para gerar automaticamente aplicações para este
middleware.
1.3. Estrutura da Monografia
O projeto foi divido em algumas partes:
4
- Desenvolvimento de uma linguagem script que permita a descrição de
aplicações para RSSF.
- Desenvolver de um middleware que seja capaz de interpretar essa linguagem e
possibilite a programação do RSSF em alto nível.
- Adaptar o simulador Gruhix (GRUBI, 2013) para realizar simulações de RSSF.
- Desenvolver diferentes algoritmos de programação genética para modelar o
objetivo geral de uma RSSF e gerar automaticamente aplicações que visam
alcançar esse objetivo.
5
2. Referencial teórico
Nesse capítulo mostrarei s referenciais para pesquisa e explicarei de acordo com
alguns autores o motivo de desenvolver algoritmo genético para RSSF.
2.1. Referencial básico
As redes de sensores sem fio (RSSF) são uma tecnologia recente que
tem crescido muito nos últimos anos. As RSSF são compostas por dispositivos
eletrônicos (nós sensores) independentes que possuem capacidade de
comunicação sem fio (wireless). Os nós sensores possuem capacidade de
processamento computacional, comunicação sem fio, sensores que são capazes
de realizar medições no ambiente e atuadores que podem interagir com o meio
ambiente.
Esses nós sensores são alimentados por bateria, o que torna o consumo
de energia uma questão chave nesse tipo de tecnologia. Esse tipo de tecnologia
de sistema embarcado tem sido aplicado utilizando como forma de computação
ubíqua, sendo aplicada em diversas áreas da vida humana, como agricultura,
monitoramento, rastreamento, e até mesmo para controlar componentes
doméstico simples, como luzes, cortinas, eletrodomésticos, entre outras. (PARL,
WILLIG, 2005)
A computação ubíqua é definida como uma forma onipresente de
computação, é um conjunto de aparelhos e dispositivos eletrônicos que realizam
computação de forma transparente e imperceptível para os usuários.
(HANSHANN, et. al., 2002)
Apesar de cada nó sensor possuir capacidade de processamento e
sensoriamento de forma individual, em aplicações de RSSF um nó sensor não é
capaz de atingir o objetivo da rede individualmente. É necessário que os nós
sensores cooperem entre si através de comunicação sem fio, para que consigam
alcançar o objetivo da RSSF.
2.2. Referencial relacionado
Devido às características dos RSSF e por serem sistemas massivamente
distribuídos, os experimentos com dispositivos reais são caros e muito
demorados, em alguns casos se tornam impraticáveis. (XVE, et. al.¸ 2007) Essa
dificuldade trouxe a necessidade de desenvolver simuladores para que
protocolos e arquiteturas desenvolvidas em pesquisas pudessem ser previamente
testadas e avaliadas. Essa necessidade existe porque a implantação e construção
de arquiteturas em nós sensores reais é difícil e consome muito tempo e
recursos. Após essa avaliação preliminar com simuladores, esses protocolos e
6
arquiteturas podem ser implantado e avaliados em RSSF reais, com nós sensores
físicos.
Existem vários simuladores de redes de computadores (não apenas
RSSF) disponíveis atualmente. Muitos desses simuladores suportam a simulação
de rede sem fio e ab hoc, permitindo que sejam usados para simular RSSF. Esses
simuladores são complexos e simulam desde o meio físico de comunicação
(cabo, ar, entre outros) até as características de software e hardware dos nós da
rede, como baterias, rádios de comunicação, sensores e pilhas de protocolos.
Dentre os diversos simuladores de redes disponíveis atualmente pode-se
destacar alguns importantes. O ns3? (CONSORTIUM, 2013) é um simulador de
redes escrito em C++ e Python muito popular no meio acadêmico. Ele é
principalmente utilizado para simulações de rede sem fio, o que contempla o
universo do RSSF. O ns3 é um software gratuito e de código fonte aberto (Open
Source), o que incentiva a sua utilização em pesquisas.
7
3. Metodologia
A presente seção detalha a metodologia utilizada na execução deste
estudo. Serão apresentados todos os detalhes do framework, contemplando os
três módulos que compõem a ferramenta.
3.1. Tipos de pesquisa
O framework é um sistema que trabalha inserido no contexto de uma
RSSF. A ideia é: uma cópia do middleware proposto é instalado e executado em
todos os nós sensores da RSSF. Este middleware possui uma máquina virtual
capaz de interpretar scripts escritos em uma determinada linguagem. Esses
scripts são programas que escrevem em alto nível o ciclo de trabalho dos nós
sensores da RSSF. Esse ciclo de trabalho pode variar conforme as características
individuais de cada nó sensor, como posicionamento geográfico, variáveis do
ambiente e variáveis de controle interno do nó sensor.
O middleware deve ser implementado em linguagens de programação
específicos para programação de nós sensores. Ele deve prover uma máquina
virtual que interpreta a linguagem de script especificada e deve controlar os
aspectos de hardware dos nós sensores. Dessa forma o projetista é abstraído dos
aspectos específicos de cada nó sensor e pode se preocupar apenas os aspectos
globais da RSSF, mesmo que a rede seja heterogênea em termo de hardware dos
nós sensores.
3.2. Procedimento metodológico
O primeiro passo é trabalhar com o problema de detecção de eventos
(PDE). Visa comunicar um nó concentrador de informações (nós Sink) a
ocorrência de um determinado evento em alguma região do RSSF.
Este nó concentrador de informação normalmente é uma central de
monitoramento de uma região. Essa central recebe informação da RSSF e
precisa ser notificada caso o evento sobre monitoramento seja detectado.
Nesse tipo de problemas, as RSSF tem algumas caraterística comuns,
por exemplo:
- A rede fica “parada” (sem enviar informações entre nós) realizando medições
periódicas no ambiente.
- Quando um determinado comportamento no ambiente é detectado, um evento
ocorre.
- A detecção do evento gera uma mensagem que deve ser enviada até o nó Sink,
comunicando a ocorrência do evento.
Este é o comportamento padrão de uma aplicação que visa solucionar
um problema de detecção de eventos através a RSSF. Existem vários problemas
8
reais que seguem esse padrão de comportamento de problemas de detecção de
eventos.
A detecção de incêndios é um problema clássico desse tipo. Um rede de
sensores é espalhada por uma região, esses sensores fazem medições constantes,
se temperatura e pressão do seus arredores. Quando a temperatura e pressão
chegam em valores determinados, é disparado um evento que indica
provavelmente o que está ocorrendo naquela área. Essa informação deve ser
encaminhada até o nó sink, que pode ser um computador e/ou uma central de
monitoramento na região.
9
4. Resultados e discussões
Com intuito de avaliar o framework proposto alguns experimentos, foram
realizados para avaliar a capacidade da feramenta de gerar aplicações para RSSF
de forma automatica. Para isso foi implementado um gerados de instancias de
testes e posteriormente um benchmark de instâncias de testes para realizar os
experimentos.
4.1. Gerador de instâncias
Um gerador de instâncias foi criado para gerar diferentes RSSF que representem
o PDE. Este gerador de instâncias recebe uma configuração de parâmetro que
deduz quais características as instâncias que serão geradas devem possuir.
4.2. Instâcias de teste criadas (Benchmark)
Para avalir o desemprenho da abordagem proposta, oito instâncias de testes
foram criadas ultilizando o gerador de instâncias desenvolvido. Esse benchmark
foi criado pois, não existe na literatura um conjunto de instâncias similare para
que os experimentos fosse realizados. Cada instância de teste representa uma
RSSF para solucionar o PDE, onde cada nó sensor da rede possui outras
informações como qual nó da RSSF é nó sink, quais nós da rede detectará um
evento durante a simulação, o alcance de transmissão sem fio dos nós sensores e
o número total de nós na rede Dentre estas oito instâncias com dois tipos de
topologia, em grade(grid) e topologia randômica.
4.3 Analize de dados
Para avaliar o framework desenvolvido, este foi executado para solucionar as
oito instâncias descritas na seção 4.2. O método desenvolido foi executado 10
vezes em cada uma das instâncias de teste e os valores médios obtidos são
considerados nas análizes que seguem. A utilização de um valor médio de várias
execuções nas análizes é essencial, uma vez que a PG é um método estocástico e
pode fornecer diferentes soluções quando executada mais de uma vez com os
mesmos parâmetros. Além disso, a análise de valores médios serve também
como uma análise de estabilidade do método proposto.
Todos os experimentos aqui reportados foram realizados em
computadores idênticos. Esses computadores possuem cada um deles, um
processador Core 2 Duo 2,66GHz, 2 GB de memória RAM e executam no
sistema operacional Gentoo Linux 64bits.
O framework foi implementado utilizando a linguagem de programação C++ e
compilado atravéz do GNU cross compiler (GCC).
10
5 Conclusão
O presente estudo propõe o desenvolvimento de um framework que seja capaz
de gerar aplicações para RSSF que seja capaz de gera aplicações para RSSF de
forma automatizada. Esta ferramenta foi desenvolvida em três módulos que se
complementam, um simulador de RSSF, um middleware para RSSF que provê
uma linguagem de script para descrever aplicações e um módulo de
programação genética (PG).
O middleware proposto gerencia os recurso de hardware dos nós
sensorea de RSSF e fornece funcionalidades pré-programados para os usuários.
Ele também possui uma máquina virtual capaz de interpretar scripts de controle
escritos em uma linguágem pré-definida.
O módulo de simulação é utilizado para realizar a avaliação dos programas
gerados de forma automatizada pelo método de PG. A PG utiliza um algorítimo
evolutivo para gerar programas descritos nessa linguagem de script.
A junção desses três modulos forma um framework para que projetistas
da RSSF possam gera aplicações para diferentes problemas de forma
automatizada basta o projetista definir uma função objetivo que descreva o
problema que ele quer tratar com a RSSF e o framework se encarrega de gerar
um script de controle que soluciona este problema com uma boa performace.
11
REFERÊNCIAS
BAECK, T.; FOGEL, D.; MICHALEWICZ, Z. Handbook of
evolutionary computation. New York: Taylor and Francis, 1997. 1130 p.
Dispon ıvel em: <http://books.google.com.br/books?id=n5nuiIZvmpAC>.
Acesso em: 10 dez. 2013.
BHONDEKAR, A. P. et al. Genetic algorithm based node placement
methodology for wireless sensor networks. In: INTERNATIONAL
MULTICCONFERENCE OF ENGINEERS AND COMPUTER
SCIENTISTS, 2009, Hong Kong. Proceedings... Hong Kong: IEEE,
2009. 1 CD-ROM.
CONSORTIUM, N. The network simulator (ns-3). Dispon ıvel em:
<http://www.nsnam.org/>. Acesso em: 20 dez. 2013.
GROSSMANN, J.; SARAIVA, F. J. Graphical Network Simulator
(GNS3). Dispon ıvel em: <http://www.gns3.net/>. Acesso em: 20 dez.
2013.
GRUBI. GRUBIX Simulator. Dispon ıvel em:
<http://asteroide.dcc.ufla.br/ grubi/grubix/>. Acesso em: 20∼
dez. 2012.
GUO, W.; ZHANG, W. A survey on intelligent routing protocols in wireless
sensor networks. Journal of Network and Computer Applications,
London, v. 38, p. 185-201, Feb. 2014.
HANSMANN, U. et al. Pervasive computing. New York: Springer,
2003. 448 p.
OHTANI, K.; BABA, M. A smart optical position sensor with
genetic programming technique. In: INSTRUMENTATION AND
MEASUREMENT TECHNOLOGY CONFERENCE, 2005, Ottawa.
Proceedings... Ottawa: IEEE, 2005. v. 2, p. 1166-1171.
12

Contenu connexe

Similaire à Gerando códigos para RSSF usando programação genética

Introdução as Redes de Sensores Sem Fio
Introdução as Redes de Sensores Sem FioIntrodução as Redes de Sensores Sem Fio
Introdução as Redes de Sensores Sem FioMatheus Araújo
 
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateAnálise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateRicardo Rinco
 
Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Flávio Lisboa
 
Tecnologia da informacao
Tecnologia da informacaoTecnologia da informacao
Tecnologia da informacaoLuiz
 
Proposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaesProposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaeslucassrod
 
Zabbix para IoT - Zabbix Conference LatAm 2018
Zabbix para IoT - Zabbix Conference LatAm 2018Zabbix para IoT - Zabbix Conference LatAm 2018
Zabbix para IoT - Zabbix Conference LatAm 2018André Déo
 
Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios
Software-Defined Networking (SDN) - Conceitos Básicos, Programação e DesafiosSoftware-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios
Software-Defined Networking (SDN) - Conceitos Básicos, Programação e DesafiosFelipe Alencar
 
Ufpe reuso de requesitos em cloud computing__artigo rnf cloud
Ufpe  reuso de requesitos em cloud computing__artigo rnf cloudUfpe  reuso de requesitos em cloud computing__artigo rnf cloud
Ufpe reuso de requesitos em cloud computing__artigo rnf cloudsergiofbrandao
 
Soa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviçosSoa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviçosFernando Palma
 
Seminário - Arquitetura de software para computação ubíqua
Seminário - Arquitetura de software para computação ubíquaSeminário - Arquitetura de software para computação ubíqua
Seminário - Arquitetura de software para computação ubíquaRubens Matos Junior
 
Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...
Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...
Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...frogstation
 
Merlinferramentassbc2006 Revisado Em6paginas
Merlinferramentassbc2006 Revisado Em6paginasMerlinferramentassbc2006 Revisado Em6paginas
Merlinferramentassbc2006 Revisado Em6paginasMarcelo Mrack
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoMagnos Martinello
 

Similaire à Gerando códigos para RSSF usando programação genética (20)

Introdução as Redes de Sensores Sem Fio
Introdução as Redes de Sensores Sem FioIntrodução as Redes de Sensores Sem Fio
Introdução as Redes de Sensores Sem Fio
 
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateAnálise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
 
Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3
 
Tecnologia da informacao
Tecnologia da informacaoTecnologia da informacao
Tecnologia da informacao
 
Relatório pedrocastro 2012_2013_v1
Relatório pedrocastro 2012_2013_v1Relatório pedrocastro 2012_2013_v1
Relatório pedrocastro 2012_2013_v1
 
Ap carla
Ap carlaAp carla
Ap carla
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Proposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaesProposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaes
 
Zabbix para IoT - Zabbix Conference LatAm 2018
Zabbix para IoT - Zabbix Conference LatAm 2018Zabbix para IoT - Zabbix Conference LatAm 2018
Zabbix para IoT - Zabbix Conference LatAm 2018
 
TEES - Apresentacao Final
TEES - Apresentacao FinalTEES - Apresentacao Final
TEES - Apresentacao Final
 
Android juliana-mono
Android juliana-monoAndroid juliana-mono
Android juliana-mono
 
Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios
Software-Defined Networking (SDN) - Conceitos Básicos, Programação e DesafiosSoftware-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios
Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios
 
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
 
Ufpe reuso de requesitos em cloud computing__artigo rnf cloud
Ufpe  reuso de requesitos em cloud computing__artigo rnf cloudUfpe  reuso de requesitos em cloud computing__artigo rnf cloud
Ufpe reuso de requesitos em cloud computing__artigo rnf cloud
 
Soa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviçosSoa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviços
 
Seminário - Arquitetura de software para computação ubíqua
Seminário - Arquitetura de software para computação ubíquaSeminário - Arquitetura de software para computação ubíqua
Seminário - Arquitetura de software para computação ubíqua
 
Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...
Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...
Apresentação - Estudo sobre comunicação bluetooth em um ambiente educacional ...
 
Wperformance 2015 (2)
Wperformance   2015 (2)Wperformance   2015 (2)
Wperformance 2015 (2)
 
Merlinferramentassbc2006 Revisado Em6paginas
Merlinferramentassbc2006 Revisado Em6paginasMerlinferramentassbc2006 Revisado Em6paginas
Merlinferramentassbc2006 Revisado Em6paginas
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do Futuro
 

Gerando códigos para RSSF usando programação genética

  • 1. OTAVIO NEVES LARA PROGRAMAÇÃO GENÉTICAAPLICADA À GERAÇÃO AUTOMATIZADA DE APLICAÇÕES PARA REDES DE SENSORES SEM FIO LAVRAS – MG 2014 OTAVIO NEVES LARA PROGRAMAÇÃO GENÉTICAAPLICADA À GERAÇÃO AUTOMATIZADA DE APLICAÇÕES PARA REDES DE SENSORES SEM FIO
  • 2. Monografia apresentada ao Colegiado do Curso de Ciência da Computação, para a obtenção de título de Bacharel em Ciência da Computação. PROF. ANDRÉ LUIZ ZAMBALDE LAVRAS – MG 2014
  • 3. SUMÁRIO 1 INTRODUÇÃO ….............................................................................. 06 1.1 Contextualização e motivação ........................................................... 06 1.2 Problemas e objetivos …..................................................................... 06 1.3 Estrutura da Monografia . ................................................................ 06 2 REFERENCIAL TEÓRICO ............................................................. 08 2.1 Referencial básico …........................................................................... 08 2.2 Referencial relacionado....................................................................... 08 3 METODOLOGIA …........................................................................... 10 3.1 Tipo de pesquisa .................................................................................. 10 3.2 Procedimento metodológico ............................................................... 10 4. RESULTADOS E DISCUSSÕES ….................................................. 12 4.1 Gerador de instâcias ........................................................................... 12 4.2 Instâcias de teste ...................... …...................................................... 12 4.3 Análize de dados.................................................................................. 12 5 CONCLUSÃO …................................................................................. 13 6 REFERÊNCIAS ...................................................................................14
  • 4. RESUMO A programação de redes de sensores sem fio (RSSF) é uma tarefa complexa devido à Programação em Linguagens de baixo nível e à necessidade de uma aplicação distinta para cada sensor. Além disso, sensores sem fio possuem grandes limitações de hardware, como baixo poder de processamento, pouca memória e limitação energética. Portanto a programação automática de RSSF é desejável, uma vez que pode-se contemplar essas dificuldades automaticamente, além de economizar em custos, pois elimina a necessidade de se alocar um Programador para programar a RSSF. A geração automática de códigos-fonte por RSSF utilizando programação genética foi pouco estudada na Literatura até o momento. A programação genética se mostrou promissora na geração de códigos em diversas áreas de aplicação. Dessa forma, o presente estudo propõe o desenvolvimento e a aplicação de algoritmos evolutivos para gerar e evoluir códigos-fonte que solucionam problemas de RSSF. O objetivo é que os algoritmos evolutivos desenvolvidos sejam capazes de resolver problemas distintos de RSSF de forma correta e com uma eficiência satisfatória. Os resultados obtidos mostram que a ferramenta é capaz de solucionar de maneira ótima o problema de Detecção de eventos para RSSF com topologia randômica me grade e de forma satisfatória para a RSSF topologia randômica. Sendo assim o presente estudo traz contribuições para a área de RSSF, uma vez que a programação automática de RSSF reduz consideravelmente a mão de obra humana. ABSTRACT The wireless sensor networks (WSN) programming is a complex task dive to the low-level programming languages and the need of a specific application for each sensor. Furthemore, wireless sensors have many hardware. Limitations such as slow processing power small memory and energic limitations. Hence, the automatic Programming of WSNs is desirable since it com automatically address these difficulties, besides saving costs by eliminating the need to alocate a developer to program the WSN. The automatic code gerenation for WSNs using genetic programminghas been poorly studied in literatures so for the genetic programming has proved to be promising in code generation for many application área. This study proposes the development and application of evolutinary algorithms to generate source codes that salve WSNs problems. The developed evolutinary algorithms should be able to solve different problems as WSNs correctly and satsfactory efficiency the obtained results show that the proposed. Framework is able to find optimal solutions for the event detection. Problem fom WSN with gird to
  • 5. find optimal solutions for the event detection problem for WSN grid. Topology and to find satisfactory solutions for WSN with randomized topology. Thus, this study brings many contribuitions to the WSN arco since the automatic programming of WSNs drastically reducestre human programming effort.
  • 6. 1. Introdução Aqui falaremos como se organiza o trabalho para produção de RSSF e a motivação para produção dos mesmos incluindo materiais que servem de base para o assunto tratado. 1.1. Contextualização e motivação Redes de sensores sem fio (RSSF) são redes compostas por vários nós sensores. Esses nós sensores são compostos por um processador de baixo poder de processamento, um rádio de baixa potência e memória de tamanho reduzido. Eles são alimentados por uma bateria e por isso possuem limitações em sua utilização. Além disso, existem várias limitações e dificuldades no projeto de uma RSSF, como a programação de baixo nível dos nós sensores, especificidade do comportamento de cada nó sensor, entre outras questões que afetam sistemas massivamente distribuídos. As RSSF são muito versáteis. Além do custo de implantação relativamente reduzido, elas possibilitam o monitoramento e o mapeamento de regiões de alto risco. Pode-se utilizar RSSF para monitoramentos sismográficos em vulcões e monitoramento de temperatura e pressão em plataformas petrolíferas e de regiões hostis (Yang, 2010). Apesar da versatilidade das RSSF, a programação da rede é uma tarefa complexa. A aplicação deve ser desenvolvida e customizada para cada nó sensor da rede, uma vez que o comportamento de cada nó depende de fatores específicos como posição geográfica, estado do nó, função do sensor, entre outras. Essa heterogeneidade das RSSF torna o processo do desenvolvimento e da programação dos nós uma tarefa árdua. 1.2. Problemas e objetivos O objetivo geral do presente trabalho é desenvolver um framework capaz de gerar, de forma automática, o código fonte de aplicações para RSSF. Esse framework é composto por três camadas: Um simulador de RSSF, um middleware que provê uma linguagem script de alto nível para programação de aplicações para RSSF e um método baseado em programação genética para gerar automaticamente aplicações para este middleware. 1.3. Estrutura da Monografia O projeto foi divido em algumas partes: 4
  • 7. - Desenvolvimento de uma linguagem script que permita a descrição de aplicações para RSSF. - Desenvolver de um middleware que seja capaz de interpretar essa linguagem e possibilite a programação do RSSF em alto nível. - Adaptar o simulador Gruhix (GRUBI, 2013) para realizar simulações de RSSF. - Desenvolver diferentes algoritmos de programação genética para modelar o objetivo geral de uma RSSF e gerar automaticamente aplicações que visam alcançar esse objetivo. 5
  • 8. 2. Referencial teórico Nesse capítulo mostrarei s referenciais para pesquisa e explicarei de acordo com alguns autores o motivo de desenvolver algoritmo genético para RSSF. 2.1. Referencial básico As redes de sensores sem fio (RSSF) são uma tecnologia recente que tem crescido muito nos últimos anos. As RSSF são compostas por dispositivos eletrônicos (nós sensores) independentes que possuem capacidade de comunicação sem fio (wireless). Os nós sensores possuem capacidade de processamento computacional, comunicação sem fio, sensores que são capazes de realizar medições no ambiente e atuadores que podem interagir com o meio ambiente. Esses nós sensores são alimentados por bateria, o que torna o consumo de energia uma questão chave nesse tipo de tecnologia. Esse tipo de tecnologia de sistema embarcado tem sido aplicado utilizando como forma de computação ubíqua, sendo aplicada em diversas áreas da vida humana, como agricultura, monitoramento, rastreamento, e até mesmo para controlar componentes doméstico simples, como luzes, cortinas, eletrodomésticos, entre outras. (PARL, WILLIG, 2005) A computação ubíqua é definida como uma forma onipresente de computação, é um conjunto de aparelhos e dispositivos eletrônicos que realizam computação de forma transparente e imperceptível para os usuários. (HANSHANN, et. al., 2002) Apesar de cada nó sensor possuir capacidade de processamento e sensoriamento de forma individual, em aplicações de RSSF um nó sensor não é capaz de atingir o objetivo da rede individualmente. É necessário que os nós sensores cooperem entre si através de comunicação sem fio, para que consigam alcançar o objetivo da RSSF. 2.2. Referencial relacionado Devido às características dos RSSF e por serem sistemas massivamente distribuídos, os experimentos com dispositivos reais são caros e muito demorados, em alguns casos se tornam impraticáveis. (XVE, et. al.¸ 2007) Essa dificuldade trouxe a necessidade de desenvolver simuladores para que protocolos e arquiteturas desenvolvidas em pesquisas pudessem ser previamente testadas e avaliadas. Essa necessidade existe porque a implantação e construção de arquiteturas em nós sensores reais é difícil e consome muito tempo e recursos. Após essa avaliação preliminar com simuladores, esses protocolos e 6
  • 9. arquiteturas podem ser implantado e avaliados em RSSF reais, com nós sensores físicos. Existem vários simuladores de redes de computadores (não apenas RSSF) disponíveis atualmente. Muitos desses simuladores suportam a simulação de rede sem fio e ab hoc, permitindo que sejam usados para simular RSSF. Esses simuladores são complexos e simulam desde o meio físico de comunicação (cabo, ar, entre outros) até as características de software e hardware dos nós da rede, como baterias, rádios de comunicação, sensores e pilhas de protocolos. Dentre os diversos simuladores de redes disponíveis atualmente pode-se destacar alguns importantes. O ns3? (CONSORTIUM, 2013) é um simulador de redes escrito em C++ e Python muito popular no meio acadêmico. Ele é principalmente utilizado para simulações de rede sem fio, o que contempla o universo do RSSF. O ns3 é um software gratuito e de código fonte aberto (Open Source), o que incentiva a sua utilização em pesquisas. 7
  • 10. 3. Metodologia A presente seção detalha a metodologia utilizada na execução deste estudo. Serão apresentados todos os detalhes do framework, contemplando os três módulos que compõem a ferramenta. 3.1. Tipos de pesquisa O framework é um sistema que trabalha inserido no contexto de uma RSSF. A ideia é: uma cópia do middleware proposto é instalado e executado em todos os nós sensores da RSSF. Este middleware possui uma máquina virtual capaz de interpretar scripts escritos em uma determinada linguagem. Esses scripts são programas que escrevem em alto nível o ciclo de trabalho dos nós sensores da RSSF. Esse ciclo de trabalho pode variar conforme as características individuais de cada nó sensor, como posicionamento geográfico, variáveis do ambiente e variáveis de controle interno do nó sensor. O middleware deve ser implementado em linguagens de programação específicos para programação de nós sensores. Ele deve prover uma máquina virtual que interpreta a linguagem de script especificada e deve controlar os aspectos de hardware dos nós sensores. Dessa forma o projetista é abstraído dos aspectos específicos de cada nó sensor e pode se preocupar apenas os aspectos globais da RSSF, mesmo que a rede seja heterogênea em termo de hardware dos nós sensores. 3.2. Procedimento metodológico O primeiro passo é trabalhar com o problema de detecção de eventos (PDE). Visa comunicar um nó concentrador de informações (nós Sink) a ocorrência de um determinado evento em alguma região do RSSF. Este nó concentrador de informação normalmente é uma central de monitoramento de uma região. Essa central recebe informação da RSSF e precisa ser notificada caso o evento sobre monitoramento seja detectado. Nesse tipo de problemas, as RSSF tem algumas caraterística comuns, por exemplo: - A rede fica “parada” (sem enviar informações entre nós) realizando medições periódicas no ambiente. - Quando um determinado comportamento no ambiente é detectado, um evento ocorre. - A detecção do evento gera uma mensagem que deve ser enviada até o nó Sink, comunicando a ocorrência do evento. Este é o comportamento padrão de uma aplicação que visa solucionar um problema de detecção de eventos através a RSSF. Existem vários problemas 8
  • 11. reais que seguem esse padrão de comportamento de problemas de detecção de eventos. A detecção de incêndios é um problema clássico desse tipo. Um rede de sensores é espalhada por uma região, esses sensores fazem medições constantes, se temperatura e pressão do seus arredores. Quando a temperatura e pressão chegam em valores determinados, é disparado um evento que indica provavelmente o que está ocorrendo naquela área. Essa informação deve ser encaminhada até o nó sink, que pode ser um computador e/ou uma central de monitoramento na região. 9
  • 12. 4. Resultados e discussões Com intuito de avaliar o framework proposto alguns experimentos, foram realizados para avaliar a capacidade da feramenta de gerar aplicações para RSSF de forma automatica. Para isso foi implementado um gerados de instancias de testes e posteriormente um benchmark de instâncias de testes para realizar os experimentos. 4.1. Gerador de instâncias Um gerador de instâncias foi criado para gerar diferentes RSSF que representem o PDE. Este gerador de instâncias recebe uma configuração de parâmetro que deduz quais características as instâncias que serão geradas devem possuir. 4.2. Instâcias de teste criadas (Benchmark) Para avalir o desemprenho da abordagem proposta, oito instâncias de testes foram criadas ultilizando o gerador de instâncias desenvolvido. Esse benchmark foi criado pois, não existe na literatura um conjunto de instâncias similare para que os experimentos fosse realizados. Cada instância de teste representa uma RSSF para solucionar o PDE, onde cada nó sensor da rede possui outras informações como qual nó da RSSF é nó sink, quais nós da rede detectará um evento durante a simulação, o alcance de transmissão sem fio dos nós sensores e o número total de nós na rede Dentre estas oito instâncias com dois tipos de topologia, em grade(grid) e topologia randômica. 4.3 Analize de dados Para avaliar o framework desenvolvido, este foi executado para solucionar as oito instâncias descritas na seção 4.2. O método desenvolido foi executado 10 vezes em cada uma das instâncias de teste e os valores médios obtidos são considerados nas análizes que seguem. A utilização de um valor médio de várias execuções nas análizes é essencial, uma vez que a PG é um método estocástico e pode fornecer diferentes soluções quando executada mais de uma vez com os mesmos parâmetros. Além disso, a análise de valores médios serve também como uma análise de estabilidade do método proposto. Todos os experimentos aqui reportados foram realizados em computadores idênticos. Esses computadores possuem cada um deles, um processador Core 2 Duo 2,66GHz, 2 GB de memória RAM e executam no sistema operacional Gentoo Linux 64bits. O framework foi implementado utilizando a linguagem de programação C++ e compilado atravéz do GNU cross compiler (GCC). 10
  • 13. 5 Conclusão O presente estudo propõe o desenvolvimento de um framework que seja capaz de gerar aplicações para RSSF que seja capaz de gera aplicações para RSSF de forma automatizada. Esta ferramenta foi desenvolvida em três módulos que se complementam, um simulador de RSSF, um middleware para RSSF que provê uma linguagem de script para descrever aplicações e um módulo de programação genética (PG). O middleware proposto gerencia os recurso de hardware dos nós sensorea de RSSF e fornece funcionalidades pré-programados para os usuários. Ele também possui uma máquina virtual capaz de interpretar scripts de controle escritos em uma linguágem pré-definida. O módulo de simulação é utilizado para realizar a avaliação dos programas gerados de forma automatizada pelo método de PG. A PG utiliza um algorítimo evolutivo para gerar programas descritos nessa linguagem de script. A junção desses três modulos forma um framework para que projetistas da RSSF possam gera aplicações para diferentes problemas de forma automatizada basta o projetista definir uma função objetivo que descreva o problema que ele quer tratar com a RSSF e o framework se encarrega de gerar um script de controle que soluciona este problema com uma boa performace. 11
  • 14. REFERÊNCIAS BAECK, T.; FOGEL, D.; MICHALEWICZ, Z. Handbook of evolutionary computation. New York: Taylor and Francis, 1997. 1130 p. Dispon ıvel em: <http://books.google.com.br/books?id=n5nuiIZvmpAC>. Acesso em: 10 dez. 2013. BHONDEKAR, A. P. et al. Genetic algorithm based node placement methodology for wireless sensor networks. In: INTERNATIONAL MULTICCONFERENCE OF ENGINEERS AND COMPUTER SCIENTISTS, 2009, Hong Kong. Proceedings... Hong Kong: IEEE, 2009. 1 CD-ROM. CONSORTIUM, N. The network simulator (ns-3). Dispon ıvel em: <http://www.nsnam.org/>. Acesso em: 20 dez. 2013. GROSSMANN, J.; SARAIVA, F. J. Graphical Network Simulator (GNS3). Dispon ıvel em: <http://www.gns3.net/>. Acesso em: 20 dez. 2013. GRUBI. GRUBIX Simulator. Dispon ıvel em: <http://asteroide.dcc.ufla.br/ grubi/grubix/>. Acesso em: 20∼ dez. 2012. GUO, W.; ZHANG, W. A survey on intelligent routing protocols in wireless sensor networks. Journal of Network and Computer Applications, London, v. 38, p. 185-201, Feb. 2014. HANSMANN, U. et al. Pervasive computing. New York: Springer, 2003. 448 p. OHTANI, K.; BABA, M. A smart optical position sensor with genetic programming technique. In: INSTRUMENTATION AND MEASUREMENT TECHNOLOGY CONFERENCE, 2005, Ottawa. Proceedings... Ottawa: IEEE, 2005. v. 2, p. 1166-1171. 12