Você está na página 1de 7

AUTOMATIZAÇÃO DE SEMÁFORO UTILIZANDO CONTROLE FUZZY

Daniel Ribeiro Candeia - danielribeirocandeia@gmail.com


Gabriel Fernandes Couto Pereira – gabrielpcfernandes@gmail.com
Lucas Menezes Goetze - lmgmep@hotmail.com
Instituto Federal de Educação, Ciência e Tecnologia do Espírito Santo.
Av. Filogônio Peixoto, 2220 - Aviso, Linhares - ES, 29901-291

Resumo: Este artigo apresenta uma implementação em ambiente de simulação de sistema


inteligente para controle semafórico. Para isso, utilizou-se como técnica principal a lógica Fuzzy,
a fim de controlar um semáforo de acordo com a quantidade de carros presentes na via.

Palavras-chave: Fuzzy, Semáforo, Controle, Python.

1. INTRODUÇÃO

O grande aumento do fluxo de veículos nas cidades tem causado grandes dificuldades no
transporte rodoviário, sendo os cruzamentos de rodovias os principais focos. Os controladores de
semáforos convencionais são configurados com um tempo pré-estabelecido, não respondendo de
acordo com a demanda do trafego de transito local, no entanto, a lógica fuzzy pode ser usada para
determinar o tempo de duração do semáforo aberto ou fechado, de acordo com a demanda, já que
o semáforo é um bom controlador de trânsito que permite diminuir os conflitos entre os veículos
e aumentar a capacidade de escoamento, além de organizar o trânsito [Araújo 2006].

Figura 1 – Rodovia
2. AMBIENTE DE DESENVOLVIMENTO

O ambiente de desenvolvimento integrado (IDE) do Visual Studio, software


desenvolvido pela Microsoft, é um painel de inicialização criativo usado para editar, depurar e
compilar códigos. Este serviu como principal protagonista para a complementação do código,
código este disponibilizado por Tommy McLeroy no GitHub, plataforma de hospedagem de
código-fonte, escrito em Python e executado pela interface gráfica Pygame.

2.1 – PYTHON

O de Python é uma linguagem de programação alto nível, de script, imperativa,


orientada a objetos, interpretada e amplamente utilizada. Prioriza a legibilidade do código sobre a
velocidade ou expressividade. É uma linguagem de propósito geral, podendo ser utilizada para o
desenvolvimento de aplicações para desktop, web, dispositivos móveis, embarcados, além de ser
amplamente usada para análise de dados. Possuindo tipagem dinâmica, as principais
características do Python é permitir a fácil leitura do código e exigir poucas linhas de código se
comparado ao mesmo programa em outras linguagens.

2.2 – PYGAME

Pygame é uma biblioteca de código aberto que serve como uma “Engine” formada por
um conjunto de bibliotecas para o Python que possibilita fazer aplicações multimídia como jogos
ou interfaces gráficas. Seu desenvolvimento teve inicio nos anos 2000 tendo como base principal
a Simple DirectMedia Layer (SDL), outra biblioteca escrita na linguagem C, que possui interface
para diversas linguagens, incluindo o Python; com ela é possível criar gráficos, interfaces e sons,
o que facilita na criação de um jogo ou simulação, além de ser compatível com outras
plataformas e sistemas operacionais.
3. LÓGICA FUZZY

O controle fuzzy são técnicas para se manusear informações qualitativas de uma maneira
rigorosa. Se tratando do relacionamento entre entradas e saídas, agregando vários parâmetros de
processo e de controle. Estratégias de controle fuzzy nascem da experiência e de experimentos,
em vez de modelos matemáticos. No qual é baseada em regras e muito mais rápida e efetiva de se
implementar. As implementações comerciais de sistemas de controle fuzzy são de baixo custo
quando comparada com soluções convencionais de controle, isto devido a que a lógica fuzzy é
mais eficiente desde o ponto de vista de codificação e tempo computacional de execução. O
raciocínio fuzzy é dividido em etapas:
 Fuzzificação;
 Aplicação dos operadores fuzzy;
 Aplicação da implicação;
 Defuzzificação.
A "fuzificação" é responsável pela apresentação das entradas do conjunto fuzzy.
A "aplicação dos operadores fuzzy" é utilizada para definir o grau máximo e mínimo de
pertinência do conjunto.
A "Aplicação da implicação" é a formação de hipóteses de implicação.
Na ultima parte do processo são retornados os valores, obtendo um valor numérico
dentro da faixa estimulada pela lógica fuzzy, chamado de "defuzzificação".
O objetivo é obter-se um único valor numérico discreto que melhor represente os valores
fuzzy inferidos da variável linguística de saída, esquematizado na Figura 2.

Figura 2 – Sistema Fuzzy


No projeto as entradas foram definidas pelas seguintes variáveis: Carros da via principal
e Carros da via lateral, na qual foi usado um ciclo para o semáforo, ou seja, se em uma via ele
ficar um determinado tempo aberto, para contabilizar um ciclo, esse deverá ficar aberto o restante
que falta na outra via, definindo assim o tempo do semáforo na via principal ou lateral, através
das regras obtidas na inferência.

 Se carros na via principal baixo e carros na via lateral baixos, tempo baixo;

 Se carros na via principal médio e carros na via lateral médio, tempo médio;

 Se carros na via principal alto e carros na via lateral alto, tempo alto;

 Se carros na via principal baixos e carros na via lateral alto, tempo da via lateral alto;

 Se carros na via principal e lateral médio, tempo médio;

 Se carros na via principal alto e carros na via lateral baixo, tempo da via principal alto.

Figura 3 – Variáveis
4 – RESULTADOS E CONSIDERAÇÕES FINAIS

Após os diversos testes feitos com o programa sem o controle fuzzy implementado,
observamos que o tempo médio de viagem ficou em torno de 40 segundos, ou seja, o carro levava
40 segundos para sair do ponto de partida até chegar ao destino final, como é o caso da figura 4.

Figura 4 – Tempo médio de viagem sem a implementação do fuzzy

Já com o controle fuzzy implantado, percebeu-se uma diminuição de, pelo menos, 10
segundos no tempo médio da viagem, conforme a figura 5.

Figura 5 – Tempo médio de viagem com o controle fuzzy


Percebe-se que na versão original do programa (Figura 4), com o passar do tempo,
carros ficam aglomerados nas vias laterais, provocando assim um grande congestionamento. Já
na Figura 5, com o sistema fuzzy controlando os semáforos, fica perceptível que não é formado
engarrafamentos, pois ele consegue controlar perfeitamente o tempo do semáforo.

A partir dos testes realizados fica reconhecível que o sistema de controle por lógica
fuzzy é superior, em certos casos, que a lógica comum; chegamos a esse resultado com o fruto
das aulas de Lógica Fuzzy, que nos ajudaram a entender melhor como sistemas simples podem
ser melhorados para facilitar tarefas simples do dia a dia.

Para futuros trabalho, planeja-se uma melhor construção do cenário, adicionando novos
elementos com características distintas, novas intercessões com maior interação dos veículos e
vias, em um sistema de interface gráfica com desempenho melhorado.
REFERÊNCIAS BIBLIOGRÁFICAS

Araújo, S. C. (2006). Controlador de tráfego: semáforo inteligente.

Programação de jogos com Python e SDL. Disponível em:


<https://old.gustavobarbieri.com.br/palestras/pygame/>. Acesso em: 05 de dez. 2018.

SimTraffic-Master. Disponível em: <https://github.com/tmcleroy/SimTraffic>. Acesso em: 17 de


out. 2018.

Você também pode gostar