Você está na página 1de 111

UNIVERSIDADE FEDERAL DO RIO GRANDE DO

NORTE
CENTRO DE TECNOLOGIA CT/UFRN
ENGENHARIA DE COMPUTAO AUTOMAO INDUSTRIAL




Semforos de Trnsito
Operando sobre Demanda de
Fluxo



JOO CARLOS FREIRE NOGUEIRA FILHO

Orientador: Prof. Dr. Glucio Bezerra Brando
Co-orientadora: Prof. Dr. Ana Maria Guimares Guerreiro


Trabalho de Concluso de Curso apresentado
ao Programa de Graduao em Engenharia de
Computao da UFRN como parte dos
requisitos para a obteno do Ttulo de
Engenheiro de Computao.

Natal, RN, Julho de 2009

UNIVERSIDADE FEDERAL DO RIO GRANDE DO
NORTE
CENTRO DE TECNOLOGIA CT/UFRN
ENGENHARIA DE COMPUTAO AUTOMAO INDUSTRIAL


Trabalho de Concluso de Curso apresentado banca examinadora composta
pelos seguintes membros:

______________________________________________________
Prof Dr Glucio Bezerra Brando
Orientador
DCA / UFRN

______________________________________________________
Prof Dr Ricardo Alexsandro de Medeiros Valentim
CEFET / RN

______________________________________________________
Prof Dr Ana Maria Guimares Guerreiro
DCA / UFRN




Natal, RN, Julho de 2009




Agradecimentos


Ao meu professor orientador, Glucio Bezerra Brando, que no s me direcionou
para a escolha do tema como me forneceu as diretrizes para que o trabalho sasse
conforme o planejado, alm de ter demonstrado ateno, dedicao, compreenso e
tranqilidade sempre.
Ao professor Werner Kraus Junior, que foi surpreendentemente atencioso e bastante
prestativo ao responder dvidas por e-mail e me fornecer boas fontes de consulta para o
trabalho.
minha me, Magaly Cristina, que independente de qualquer coisa sempre esteve
ao meu lado e me deu foras para que eu conseguisse chegar at o fim, alm de ajudar
bastante nas correes deste trabalho.
minha namorada, Janana Carla, minha eterna paixo, por todo apoio, amor,
carinho e compreenso em todos os momentos e por toda sua colaborao direta e
indireta na concluso deste trabalho, sem ela eu no teria conseguido. Tenho sorte de t-
la ao meu lado para dividir comigo esse amor verdadeiro e maravilhoso.
A Diego, meu primo e amigo, pela excelente correo e reescrita do abstract e dicas
para elaborao deste trabalho, que foram fundamentais do comeo ao fim dessa
jornada.
Aldenora, no s pelos excelentes cafs da manh, almoo e jantar, mas por tudo
que vai alm do seu fiel e dedicado trabalho dentro de nosso lar, durante toda esta vida.
Seu carinho, seus sorrisos, suas opinies, sua f, so todos elementos caractersticos
dessa sua simpatia compartilhada conosco.
Aos meus amigos, por estarem comigo nas horas boas e ms e me fornecerem a
energia necessria nos momentos de lazer que me revitaliza e mantm a vontade de
vencer.

Aos meus colegas e companheiros da faculdade, que estiveram lado a lado comigo,
nesta dura batalha, durante todo este tempo, estudando juntos, trabalhando em grupo e
trocando conhecimentos e experincias fundamentais para o crescimento acadmico e
da vida.
minha cachorrinha, Bia, que esteve literalmente sempre no meu p durante todo o
perodo de estudo em casa e que com apenas um olhar conseguia transmitir a paz que eu
precisava.



















Resumo


O projeto desenvolve um sistema de controle semafrico atuando sob a demanda de
fluxo da malha viria de um trecho da Av. Senador Salgado Filho, que representada
atravs de uma estrutura de dados, com a finalidade de simular o controle semafrico
obtendo estatsticas de controle como o tempo de verde a ser aplicado s intersees da
malha. Alm disso, o sistema retorna parmetros de avaliao do controle como o atraso
veicular e o nmero de paradas de cada via.
O sistema simula duas estratgias de controle semafrico. Uma a temporizao de
semforos isolados obtida com o mtodo de Webster. A outra uma estratgia de
controle de trfego a tempos fixos baseada no software TRANSYT, que considera, no
s a interseo isolada, mas a malha viria como um conjunto.
Com a aplicao dessas estratgias no simulador da malha so obtidos resultados
satisfatrios que comprovam a eficincia do sistema.
O programa implementado em linguagem de programao Java. Para o seu
desenvolvimento utilizado o Eclipse, uma ferramenta excelente para programao em
Java.
Palavras-chaves: Semforo. Controle. Fluxo.









Abstract


This work presents the development of a traffic light control system analyzing the
traffic flow demand in the urban network. The scenario considered here is part of an
important road in Natal, Senador Salgado Filho Avenue, which is represented by a data
sctructure. The objective is to simulate the traffic light control obtaining statistics
controls about the green light time to be applied to the intersections of the road.
Moreover, the system feedbacks evaluation control parameters such as the vehicular
delay and the number of stops of each track.
The system simulates two strategies of traffic light control. One of these is the
isolated traffic lights temporization, using the Webster method. The other one is a traffic
control strategy using fixed times, based on TRANSYT software, that considers not
only the isolated intersection, but the road as a hole.
Applying these strategies on the simulator, it was obtained satisfactory results that
prove the efficiency of the system.
The program is implemented in Java programming language. The API was
developed in Eclipse, wich is an excellent tool for programming in Java.
Keywords: Traffic light. Control. Flow








i


Sumrio



Sumrio i
Lista de Figuras iii
Lista de Tabelas iv
1 Introduo 1
1.1 Descrio do problema .................................................... 1
1.2 Objetivos ......................................................................... 2
1.3 Sistema de controle de trfego ........................................ 2

2 Sistemas inteligentes de transporte 4
2.1 Definio ........................................................................ 4
2.2 Arquitetura ITS .............................................................. 6
2.3 Benefcios ...................................................................... 8
2.4 Viabilidade .................................................................... 9

3 Controle de trfego por rea 11
3.1 Definio ....................................................................... 11
3.2 O controle de trfego a tempo fixo .......................... ..... 12
3.2.1 Software TRANSYT ......................................... 13
3.3 O controle de trfego em tempo real ............................. 15
3.3.1 Sistemas acclicos .............................................. 16
3.2.1.1 ALLONS-D............................................ 18
3.2.1.2 OPAC..................................................... 20
3.2.1.3 PRODYN .............................................. 23
3.2.1.4 RHODES .............................................. 24
3.2.2 Sistemas cclicos .............................................. 26
3.2.2.1 SCATS ................................................. 26
3.2.2.2 SCOOT ................................................ 27
3.3 Concluso .................................................................... 28

4 Anlise de intersees isoladas 30
4.1 Caracterizao do fluxo veicular ................................. 30
4.2 Semaforizao no trfego ........................................... 35
4.3 Filas veiculares em interseo .................................... 39
4.4 Temporizao de semforos isolados ......................... 43
4.5 Determinao do atraso em intersees isoladas ........ 46

ii

4.6 Concluso ................................................................... 47
5 Desenvolvimento do projeto 48
5.1 Malha viria escolhida ................................................ 48
5.2 Desnvolvimeto............................................................. 50
5.2.1 Descrio do programa ................................... 51
5.2.2 Estratgias de controle .................................... 52
5.2.2.1 Estratgia 1 Mtodo de Webster ... ... 57
5.2.2.1 Estratgia 2 Controle semafrico a tempos fixos
............................................................................................................. 57
5.2.3 Resultados .......................................................... 59
5.2.4 Algoritmo Gentico ........................................... 61

6 Concluses e Perspectivas 64
6.1 Concluses .................................................................. 64
6.2 Dificuldades ................................................................ 65
6.3 Perspectivas ................................................................. 65

Referncias bibliogrficas 66

Anexos















iii


Lista de figuras


3.1 rvore de busca-semforo de dois estgios..................................................... 18
3.2 Arquitetura de ALLONS-D com 2 camadas..................................................... 19
3.3 Demanda na rede arterial de 3 intersees........................................................ 20
3.4 Arquitetura do OPAC-VFC............................................................................... 22
3.5 Arquitetura de RHODES................................................................................... 25
4.1 Propagao de uma onda de choque.................................................................. 31
4.2 Representao grfica da relao entre fluxo, velocidade e concentrao do modelo
Greenshield em uma rodovia................................................................................. 33
4.3 Ondas de fluxo.................................................................................................. 34
4.4 Curvas de Fluxo-Concentrao de uma via e de um gargalo qualquer............. 35
4.5 Cruzamento simples.......................................................................................... 36
4.6 Semaforizao de uma interseo isolada......................................................... 37
4.7 Aproximaes em intersees........................................................................... 38
4.8 Grfico representando o volume do trfego durante 24 horas.......................... 39
4.9 Semforo com Converso Direita................................................................. 40
4.10 Diagrama espao-tempo da passagem de veculos em uma interseo............ 41
4.11 Variao da descarga de veculos com verde totalmente saturado................... 42
4.12 Ciclo semafrico............................................................................................... 43
5.1 Trecho Simulado da Av. Senador Salgado Filho................................................. 49
5.2 Representao esquemtica da malha viria simulada modelo TRANSYT..... 49
5.3 Estgios dos semforos......................................................................................... 50
5.4 Representao esquemtica da interseo Av. Salgado Filho Av. Antnio Baslio
.................................................................................................................................. 53
5.5 Volume de Trfego da Av. Sen. Salgado Filho do dia 29/06 a 03/07 Sentido
Centro (L-O) ........................................................................................................... 54
5.6 Diagrama de Ciclo ............................................................................................. 56

iv


Lista de tabelas


2.1 reas de aplicao de sistemas ITS e suas respectivas funcionalidades .............. 4
2.2 Resultados de estudo de viabilidade econmica de aplicaes de sistemas ......... 9
3.1 Controle a Tempo Fixo Controle em Tempo Real ............................................ 15
5.1 Informaes relativas s intersees Estratgia 1 ............................................. 59
5.2 Informaes relativas aos links Estratgia 1 ..................................................... 59
5.3 Informaes relativas s intersees Estratgia 2 ............................................ 60
5.4 Informaes relativas aos links Estratgia 2 .................................................... 60






1

Captulo 1
Introduo

Este documento a descrio de todo o desenvolvimento do trabalho de concluso
de curso (TCC) a ser apresentado ao Curso de Graduao em Engenharia de
Computao da Universidade Federal do Rio Grande do Norte. Atravs deste ser
possvel acompanhar todo processo de construo do trabalho, passo a passo, que levou
a concluso do projeto.
Neste captulo introdutrio sero abordadas noes gerais sobre o tema proposto
com a finalidade de inteirar-vos do assunto.

1.1 Descrio do Problema
A dificuldade de monitoramento e gerncia das vias de trfego urbano, associadas
ao crescimento da frota de veculos, tem provocado um aumento significativo nos
tempos e custos de viagem. A soluo habitual para o problema a expanso fsica das
vias, que, apesar de produzir um efeito positivo e imediato sobre a capacidade da malha
viria, no assegura por si s a melhoria da qualidade dos servios. Alm disso, a
expanso de uma via acaba por utilizar espaos que poderiam ser ocupados por reas
verdes ou de lazer, degradando a qualidade de vida dos habitantes nos centros urbanos.
Diante destas questes, observou-se a necessidade de implementar estratgias de
controle de trfego urbano, com a finalidade de otimizar o uso dos recursos das vias j
existentes. Esta estratgia, tambm chamada gesto de trfego urbano, envolve desde o
controle operacional de semforos e da circulao viria, at o planejamento de
intervenes no sistema virio, passando pela fiscalizao e educao de trnsito. Este
conjunto de medidas visa proporcionar maior eficincia aos deslocamentos urbanos,
refletindo em reduo de tempos de viagem, nmero de acidentes, consumo de
combustvel e emisso de poluentes.
Contudo, o controle efetivo do trfego urbano de uma cidade requer, principalmente,
um conhecimento contnuo e sistmico do comportamento dos deslocamentos efetuados
2
sobre a malha viria [23]. Isto demanda um esforo peridico de coleta e tratamento de
dados especficos do sistema do trfego urbano, o que despende considerveis recursos
financeiros e mo-de-obra especializada. Esses dados expressam a quantidade, a
densidade ou a velocidade dos veculos e atravs deles extramos variveis como o
volume do trfego e atraso veicular em intersees, sendo este ltimo uma das variveis
que se deseja minimizar em uma rede de transportes [12].

1.2 Objetivos
O trabalho em questo visa desenvolver um sistema de semforos que atue sob
demanda. Suas configuraes sero implementadas a partir das caractersticas
particulares de cada via, baseado em estatsticas e anlise de uma rede viria especfica.
Pretende-se desenvolver um sistema que otimize o fluxo de veculos e gere estatsticas
para controle. O objetivo principal aproveitar melhor os tempos de verde, ocasionando
uma melhoria da utilizao da malha viria urbana, alm de otimizar o trnsito das
viaturas especiais. Como conseqncia direta, haver uma diminuio considervel dos
congestionamentos, que so agravados pela configurao dos semforos atuais.

1.3 Sistema de controle de trfego
Para atender ao objetivo do projeto necessrio criar um sistema de controle de
trfego que facilite o fluxo de veculos, diminuindo congestionamentos e o tempo de
espera nos semforos.
Uma alternativa bastante eficiente de controle e acompanhamento dos padres de
deslocamentos urbanos consiste em sistemas de Controle do Trfego por rea (CTA),
que ser detalhado no captulo 3 deste trabalho.
No Brasil existe um projeto de Controle de Trfego por rea em Tempo Real,
denominado Contreal, que um grupo de pesquisa do Departamento de Automao e
Sistemas da UFSC trabalha h mais de 8 anos, coordenado pelo professor Werner Kraus
Junior. Este projeto criou softwares que adaptam os semforos demanda de fluxo de
veculos de forma automtica e instantnea, com base na medio do trfego feita por
sensores instalados nas vias. O sistema evita retenes desnecessrias, proporcionando
3
economia de combustvel e tempo, e ajusta-se de forma autnoma a situaes
inesperadas, como acidentes de trnsito.
De acordo com o professor, o controle em tempo real surge como uma alternativa ao
sistema de planos fixos, em que os tempos dos semforos so programados de acordo
com a hora do dia, com base em contagens manuais do trfego. Esta soluo tradicional,
segundo Werner, limita o desempenho da operao viria, j que as condies de
trnsito no dependem somente do horrio, mas tambm de fatores como o crescimento
da frota e condies meteorolgicas, acidentes e eventos, situaes que no so
previstas nesses planos. Alm disso, os dados obtidos nas contagens se tornam
obsoletos com o tempo, sendo necessrias constantes atualizaes [70].
Dadas as circunstncias acima citadas, nota-se, portanto, a importncia do Controle
de Trfego por rea em Tempo Real para a soluo eficaz do trnsito no sistema virio
nas cidades. Este controle funciona da seguinte maneira: no pavimento das vias so
colocados sensores capazes de contar o nmero de veculos em trnsito. Esses sensores
contm um circuito eletrnico, o "detector eletrnico", que tem sua freqncia de
ressonncia alterada na presena de veculos, devido sua massa metlica. Os dados de
contagens de trfego so enviados central de controle a cada ciclo semafrico, que
dura de um a dois minutos. Com os dados do trfego, a central calcula em tempo real os
tempos semafricos para a regio controlada. A comunicao entre controladores e
central feita via celular, usando a tecnologia GPRS/GSM.
Para os fins deste trabalho de concluso de curso ser desenvolvido um programa
para simular de uma maneira geral este sistema.

4


Captulo 2
Sistemas Inteligentes de Transportes

Tendo em vista que sistemas de controle centralizado do trfego em rea, sistemas
CTA, so um tipo de aplicao de Intelligent Transportation Systems (ITS, SIT em
portuges), este captulo apresenta uma contextualizao a respeito desses sistemas.
Assim, so apresentadas uma conceituao, uma justificativa e alguns exemplos de
aplicaes e anlises de viabilidade de sistemas ITS.

2.1 Definio
Os Sistemas Inteligentes de Transportes consistem num conjunto de tecnologias
aplicadas ao gerenciamento de sistemas de transportes para melhorar a eficincia [11] e
a segurana viria [41], reduzindo custos de uma rede de transportes [56]. No
desempenho destas funes, segundo AQUINO [1], estes sistemas usam tecnologias de
informtica, de telecomunicaes e de controle automtico, o que exige o domnio de
conhecimento multidisciplinar(eletrnica, automao, comunicaes e engenharias).
A tabela 2.1 abaixo apresenta as reas de aplicao de sistemas ITS, bem como os
servios prestados aos usurios de sistemas de transportes [37];[1].
Tabela 2.1: reas de aplicao de sistemas ITS e suas respectivas funcionalidades
rea de Aplicao Servios ao Usurio
Advenced Traffic
Management Systems (ATMS)
Gerenciamento da demanda e planejamento de
transportes
Controle e fiscalizao do trfego e monitorao de
incidentes
Advanced Traveler
Information Systems (ATIS)
Navegao e orientao aos motoristas
Informaes aos usurios de transporte coletivo
Advanced Vehicle Control and
Safety Systems (AVCS)
Operao automtica de veculos
Preveno de colises laterais e longitudinais
Advanced Public
Transportation Systems (APTS)
Gerenciamento de transportes pblicos
Priorizao de transportes pblicos
Commercial Vehicle
Operations (CVO)
Gerenciamento de frota
Rastreamento de veculos comerciais
Emergency Management
Systems (EM)
Monitoramento de cargas perigosas
Gerenciamento de veculos de emergncia
Electronic Paymen (EP) Transaes financeiras eletrnicas (ex. pedgios
5

automticos)
Automatic Emission Control (AEC) Controle automtico da emisso de poluentes
Fonte: AQUINO [1].
Destaco agora, por oportuno, breve comentrio sobre 6 das 8 reas de aplicao
apresentadas, por serem de notria valia para a contextualizao do tema como um todo:
Sistemas Avanados de Gerenciamento de Trfego (ATMS) compreendem o
gerenciamento global do trfego. Empregam tecnologias em projetos que tentam reduzir
o congestionamento das vias urbanas ou rurais e garantir segurana. Tecnologias
avanadas so aplicadas em sistemas de sinalizao (semforos), segurana no trnsito e
gerenciamento de congestionamentos e rotas.
Sistemas Avanados de Informao ao Viajante (ATIS) empregam tecnologias
avanadas para melhor informar o viajante sobre a via, sobre as condies ambientais e
o trnsito. Incorporam o uso de sistemas de navegao e informao, que garantem
segurana ao motorista e auxiliam os usurios de transporte coletivo, dessa forma
minimizam os congestionamentos.
Sistemas Avanados de Controle Veicular (AVCS) garantem melhoria na
segurana viria, permitindo que os veculos auxiliem os motoristas (veculos
inteligentes). Os veculos so equipados com tecnologias que permitem monitorar as
condies de dirigibilidade e tomar medidas necessrias para evitar colises verticais e
horizontais, diminuindo assim o nmero de acidentes.
Sistemas Avanados de Transporte Pblico (APTS) representam o uso de
tecnologias avanadas para melhorar a segurana, eficincia e efetividade dos sistemas
de transporte pblico. Os benefcios para os usurios incluem a minimizao dos
tempos de espera, segurana e facilidade para o pagamento da tarifa, bem como
informaes precisas e atualizadas sobre itinerrios e horrios.
Operao de Veculos Comerciais (CVO) envolvem o gerenciamento e a operao
de veculos comerciais. Empregam tecnologias para melhorar a gerncia e o servio dos
transportes de carga e para minimizar as interferncias com relao s rotas e aos
tempos perdidos, procurando manter um alto nvel de segurana. E devem ser
projetados de forma a no onerar os custos do sistema como um todo.
Coleta Eletrnica de Pedgio (EP) utilizam tecnologias avanadas para prover os
mais adequados e eficientes mtodos de cobrana de pedgio, trabalhando para
minimizar tempos perdidos e reduzir os congestionamentos.
6

Todas essas aplicaes, segundo TANIGUCHI [56], utilizam trs elementos bsicos
para realizar suas atividades: aquisio, processamento e disseminao de dados. A
aquisio de dados feita por equipamentos de monitoramento e rastreamento do
trfego (ex: laos magnticos, radares, sensores) instalados em campo. Os dados
coletados so enviados s centrais de controle usando uma rede de transmisso de dados
(ex. fibra ptica, linhas telefnicas privadas, e sistemas de satlite). Em seguida,
softwares especficos (ex. TRANSYT, SCOOT, SCATS) processam os dados recebidos,
que so convertidos em informaes teis para a gesto de sistemas de transporte. Por
fim, estas informaes so disseminadas atravs de mltiplas mdias, tais como:
internet, telefone celular, painis de mensagens variveis e computadores de bordo, a
variados usurios, para diferentes fins.
Apesar dessa ampla rea de aplicao dos sistemas ITS, conforme j explicado no
captulo 1, o trabalho em questo trata de semforos de trnsito operando sob demanda
de fluxo e, portanto, se encaixa apenas na primeira das reas de aplicaes desse
sistema, qual seja, sistemas avanados de gerenciamento de trfego (ATMS).

2.2 Arquitetura ITS
Uma arquitetura uma estrutura global que define limites, entidades envolvidas e
estratgias para este processo de gerenciamento de informao, que, por sua vez, nos
leva a definir padres e que resulta em eficincia, economia de escala, compatibilidade
e interoperabilidade.
Os programas de transportes inteligentes e suas respectivas arquiteturas j se
encontram estruturados, definidos e em implantao nos EUA, Canad, Japo, Austrlia
e Comunidade Econmica Europia e so frutos da cooperao mtua entre os setores
pblicos e privados. Nesses pases a definio de uma arquitetura nacional foi iniciativa
dos organismos pblicos nacionais, o que destoa da situao brasileira, na qual o
governo federal tem feito pouco ou nada neste sentido.
Porm, o que acontece que, cada cidade, cada Estado adquire equipamentos e
sistemas, ao sabor das presses da moda, da indstria e da problemtica do cotidiano,
sem, todavia, ter desenvolvido um planejamento sistmico ou uma arquitetura que
preserve a economicidade dos investimentos, a integrao e interoperabilidade dos
sistemas e que garanta a consecuo dos objetivos.
7

O desenvolvimento da arquitetura ITS requer diversos passos. Abaixo seguem
descritos sequencialmente cada um deles [70]:
discusses pblicas dos benefcios dos sistemas ITS para seus diversos usurios e
definio da amplitude do programa;
descrio das metas do programa de ITS;
definio da arquitetura bsica do sistema, envolvendo a descrio das funes e
informaes necessrias e dos componentes fsicos necessrios implementao das
funes e troca de informaes;
considerao de questes prticas inerentes implantao, tais como:
restries(econmicas, sociais, institucionais, etc.), anlise de custos, ponto de vista e
feedback dos usurios;
definio de um cenrio coerente para o sistema ITS no futuro: plano diretor e
recomendaes para agilizar a implantao;
definio e descrio de padres e das necessidades e programas de treinamento e
formao de recursos humanos.
Basicamente, a arquitetura ITS est fundamentada na interao de trs camadas de
infra-estrutura:
Camada de Transportes: composta pela infra-estrutura fsica do sistema,
contendo os usurios, veculos, centros de controle e equipamentos virios.
Camada de Comunicaes: composta pela infra-estrutura de informaes que
conecta todos os elementos da camada de transportes. a camada que d a
caracterstica de sistema, propiciando coordenao e compartilhamento de
informaes entre sistemas e pessoas. A arquitetura descreve cuidadosamente quais os
tipos de informaes e comunicao so necessrios aos vrios servios de ITS; como
os dados devem ser compartilhados e usados por quais entidades fsicas (subsistemas); e
quais os tipos de padres so necessrios para facilitar este compartilhamento.
Camada Institucional: composta pelas organizaes e regras sociais que definem
as fronteiras institucionais e os papis dos organismos governamentais, empresas
privadas, associaes de usurios e outros participantes no contexto dos servios de
ITS. As atividades deste nvel incluem o desenvolvimento de uma poltica local, o
financiamento do sistema e a criao de parcerias que direcionem o desenvolvimento do
projeto. Neste caso, a arquitetura recomenda quem deve estar conectado com quem e
quais os tipos de informaes que devem ser trocadas.
8

Toda esta abordagem da arquitetura do sistema fundamental para a compreenso
de seu funcionamento. Com esse conhecimento possvel perceber a importncia e a
necessidade de um planejamento dos ITS, para que no haja equvocos nos
investimentos dos organismos em projetos que sejam inviveis.

2.3 Benefcios
Seguindo o objetivo do captulo de contextualizar o trabalho dentro desses sistemas
inteligentes de transporte, traz-se nesta sesso uma srie de benefcios gerados por este
sistema, objetivando mostrar por que vale a pena investir nesse trabalho.
Embora as aplicaes de sistemas ITS sejam caras, a relao custo-benefcio
melhor que em outros tipos de solues para o problema do trfego. Construes de
viadutos, por exemplo, geram solues imediatas, mas trazem outras complicaes,
como a destruio ambiental. Os sistemas inteligentes podem gerar inmeras vantagens
para a gesto do trfego urbano, dentre elas possvel destacar o(a):
a) Aumento de capacidade viria e reduo de custos de deslocamentos, por meio da
otimizao semafrica [56];
b) Melhoria na qualidade do ar, por meio do gerenciamento de frota e
monitoramento de poluio do ar [9];
c) Integrao entre sistemas de transportes, melhorando a acessibilidade de diversos
usurios, por meio do intercmbio de informaes entre as agncias gestoras [13];
d) Aumento de segurana viria, por meio de sistemas dedicados ao monitoramento
de cargas perigosas, bem como priorizao de veculos de emergncia [49];
e) Planejamento de transportes, por meio da compilao e modelagem adequada de
dados histricos do trfego coletados pelos sistemas ITS [38].
Todos estes benefcios resultam numa melhora da qualidade de vida da populao
em vrios sentidos. A melhoria das condies de deslocamentos urbanos e reduo de
impactos negativos sobre o meio ambiente urbano promovem o bem estar da populao
e o aumento da sustentabilidade de comunidades urbanas. Estas melhorias nos sistemas
de transportes urbanos possibilitam tambm um maior acesso s atividades urbanas e,
conseqente, maior integrao social [28].



9

2.4 Viabilidade
Variados trabalhos tm buscado identificar a relao custo-benefcio de
implantao, operao e manuteno de tecnologias ITS para a gesto de sistemas de
transporte.
PEARCE [46], por exemplo, destaca os benefcios do uso de sistemas ITS na gesto
de auto-estradas americanas (freeways), descritos no relatrio anual de 1996 do
Departamento de Transportes Americano [60] Dentre os benefcios citados, possvel
destacar: reduo de 20 a 48% no tempo de viagem, aumento de 16 a 62% na
velocidade de viagem, aumento de 17 a 25% de capacidade viria e reduo de 41% no
consumo de combustvel.
Conjuntamente a estes relatrios, vrios estados americanos tm efetuado seus
estudos de viabilidade quanto ao uso de tecnologias ITS. Por exemplo, o estado da
Gergia, segundo SNEDESKER [54], apresentou uma taxa custo-benefcio igual a
2,3:1, para um sistema de gerenciamento de incidentes virios em freeways, em 1997.
Outro exemplo de anlise da viabilidade de sistemas ITS para a gesto de sistemas
de transporte foi implementado, em escala nacional, pelo Transportation Development
Centre (TCD), em 1997, no Canad. Este instituto determinou taxas de custo-benefcio
para aplicaes de ITS em sistemas de transportes rurais, interurbanos e urbanos,
conforme apresentado na Tabela 2.2.
Tabela 2.2: Resultados de estudo de viabilidade econmica de aplicaes de
sistemas
ITS - Transportation Development Centre (TCD) Canad 1997
Abrangncia de sistema de transporte

Rural Interurbanas Urbanas
Tipos
de
Sistemas
Informao
de
situaes
adversas
no trfego
Coleta
eletrnica
de
pedgio
Alerta
automtico
de
colises
e obras
virias
Checagem
eletrnica
de veculos
(peso/
credenciais)
Inspeo
automtica
de
segurana
veicular
Gesto
do
trfego
urbano
Servio de
informao
ao usurio
Aplicaes ITS ATIS EP AVCS ATMS AVCS ATMS ATIS
Custo-benefcio 2,66 1,27 1,12 1,35 0,76 6,46 1,98
Fonte: LAM e JOHNSON [30].
Conforme apresentado na Tabela 2.2, os resultados demonstram que aplicaes
urbanas, tipo ATMS e ATIS, apresentaram melhores taxas de custo-benefcio do que as
rurais. Assim, os resultados de aplicaes ITS destinadas gesto do trfego urbano
obtiveram melhores taxas de custo-benefcio, igual a 6,46:1 [30].
10

Apesar dos bons resultados apresentados em diversos estudos de viabilidade, alguns
autores aconselham moderao no uso da tecnologia ITS. PUENTES [49] destaca o
carter divergente sobre benefcios de sistemas ITS. Segundo o autor, enquanto alguns
defendem esta tecnologia com base numa maior eficincia para deslocamentos urbanos,
economizando recursos naturais; outros acreditam que aumentar a eficincia dos
sistemas de transporte causa o aumento no nmero de viagens despendendo de mais
recursos.
Conforme PEARCE [46], os sistemas ITS no so uma panacia - a soluo para
todos os problemas da humanidade - para o problema de congestionamento das grandes
cidades. Embora esta tecnologia proporcione ganho de capacidade viria pela gesto
eficiente da infra-estrutura, os sistemas ITS no podem suprir toda a demanda por
viagens, principalmente, no caso de predominncia do transporte individual sobre os
demais modos.
Aps esta contextualizao da tecnologia ITS, o prximo captulo apresenta uma
conceituao e uma descrio de sistemas de Controle do Trfego por rea (sistemas
CTA), uma aplicao especfica de ITS para a gesto do trfego urbano.
11


Captulo 3
Controle de Trfego por rea

Dentre os sistemas que compem a aplicao de ITS(Sistemas Inteligentes de
Transporte) denominada Advanced Traffic Management Systems (ATMS) (ver Tabela
2.1), os sistemas centralizados de Controle do Trfego por rea (CTA) representam
uma das mais importantes ferramentas de gesto do trfego urbano. Na Inglaterra, por
exemplo, um estudo junto s autoridades gestoras do trfego urbano, realizado por
FABER [13], revelou um percentual de utilizao de sistemas CTA igual a 86 %. Aqui
no Brasil j existe, h mais de 8 anos, um projeto de Controle de Trfego por rea em
Tempo Real, chamado Contreal, j explicado no Captulo 1.

3.1 Definio
Os sistemas CTA conceituam-se como um conjunto de tecnologias empregadas para
aumentar a performance de redes urbanas do trfego, reduzindo acidentes, consumo de
combustvel, poluio sonora e por emisso de gases. Estes sistemas buscam otimizar o
uso da capacidade viria existente e reduzir o tempo de viagem dos seus usurios,
minimizando nmero de paradas.
De acordo com INSTITUTION OF HIGHWAYS AND TRANSPORTATION [24]
e WOOD [66], os sistemas CTA possibilitam incorporar outras aplicaes potenciais
para a gesto urbana, tais como:
a) Rede de informao ao usurio, disseminando informaes por meio de painis
de mensagens variadas;
b) Monitoramento de congestionamento e incidentes do trfego, por meio de
sistemas de cmera de vdeo e de deteco automtica de incidentes;
c) Gesto de estacionamentos, minimizando a circulao de veculos em busca de
vagas para estacionamento;
d) Prioridade para o transporte coletivo e veculos de emergncia, o que minimiza
tempo de espera e aumenta a confiabilidade destes sistemas;
12

e) Criao e manuteno de bases de dados do trfego, as quais subsidiam atividades
de planejamento de transportes.
De acordo com LOUREIRO, OLIVEIRA e SOUSA, o controle centralizado do
trfego urbano pode adotar trs estratgias: seleo dinmica de planos, operao em
tempo fixo e operao em tempo real. Todas atuam em uma rede viria especfica e
operam sob demanda de fluxo.
A primeira estratgia consiste em selecionar, atravs de informaes oriundas de
detectores veiculares, planos fixos e pr-definidos, calculados antecipadamente por
programas especficos de dimensionamento de planos semafricos. Um exemplo tpico
que ajuda na compreenso desta estratgia o de uma avenida que apresenta variaes
da intensidade de trfego. Quando a intensidade maior adota-se um plano onde o
tempo de verde para esta avenida seja maior, quando a intensidade menor o plano
adotado com um tempo de verde menor, sempre tentando manter a proporo
adequada quantidade de movimento da via.
A segunda e a terceira estratgia sero tratadas na prxima seo, devido ao seu alto
grau de importncia para o trabalho em questo.

3.2 O Controle de trfego a tempo fixo
Esta estratgia consiste na utilizao de planos de controle semafricos
determinados previamente, com base em dados histricos do trfego. A escolha do
plano a ser usado feita por programao horria, ou com base em dados de volume do
trfego coletados por sensores em campo. Para os planos a tempo fixo atuarem de
maneira eficiente necessitam de constante levantamento de dados em campo para
atender s variaes na demanda de trfego.
Os planos de tempo fixo podem ser determinados por meio do software TRANSYT
(Traffic Network Study Tool), desenvolvido por Robertson, em 1967, na Inglaterra.
Este programa determina planos timos variando defasagens e tempos de verde de um
plano inicial, buscando minimizar uma medida de custo que reflete as paradas e o atraso
de veculos numa rede semafrica [58].
Neste trabalho ser implementado um algoritmo baseado neste mtodo para o
controle de uma malha viria a ser determinada mais a frente. Os testes sero efetuados
a partir do simulador desta malha, tambm desenvolvido neste trabalho.
13

interessante, portanto, conhecer mais a fundo este programa, o qual se destaca
nesta rea de aplicao do controle semafrico de trnsito operando sob demanda de
fluxo.

3.2.1 Software TRANSYT
O programa TRANSYT [8] um mtodo para encontrar, e estudar, os melhores
planos de tempo fixo com os quais se deseja coordenar e sincronizar a semaforizao
em malhas virias. O objetivo do software minimizar o atraso e o nmero de paradas
dos veculos que percorrem a rede viria controlada. O mtodo possui dois elementos
principais: um modelo comportamental do fluxo do trfego e um modelo matemtico de
otimizao.
O TRANSYT, basicamente, simula o comportamento do fluxo veicular, em trechos
de vias do sistema, e atravs de uma funo de otimizao define a defasagem e os
tempos timos de verde para cada aproximao dos cruzamentos.
Em seu modelo de trfego ele assume as seguintes hipteses:
a) as principais intersees na rede so semaforizadas;
b) todos os semforos da rede possuem tempo de ciclo comum ou metade deste
valor, e detalhes dos estgios e valores mnimos so conhecidos;
c) as porcentagens de fluxo de converso em intersees, para cada aproximao,
so constantes.
No modelo, a rede viria representada por ns conectados por arcos (links). Cada
n representa uma interseo semaforizada e cada arco representa uma via de mo nica
que interliga um n a outro. A Figura 5.2 representa esquematicamente o modelo
TRANSYT do trecho da rede viria deste trabalho (Figura 5.1).
O ciclo, neste modelo de trfego, subdividido em intervalos de tempo iguais,
chamados passos. Os clculos do programa so realizados com base na mdia dos
valores de demanda de fluxo e filas de veculos que possam ocorrer para cada passo
deste ciclo. Trs tipos de padres, conhecidos como histogramas de fluxo, so
manipulados, em cada intervalo de tempo, com a finalidade de simular o
comportamento do trfego em cada link da malha. So eles:
a) padro de chegada: fluxo que chegaria faixa de reteno no fim do link, se os
veculos no fossem retidos pelo semforo. Este padro medido a cada passo chamado
cyclic flow profiles, que utilizado pelo sistema SCOOT, explicado mais a frente;
14

b) padro de sada: fluxo de escoamento de trfego de um link, ou seja, o nmero de
veculos atendidos;
c) padro de saturao: equivalente ao fluxo de saturao, que ser melhor definido
mais adiante.
Todos os clculos de atraso, nmero de paradas e outros, so feitos atravs desses
histogramas. Vale ressaltar que a simulao do comportamento do trfego feita,
relacionando os fluxos de chegada em um link aos fluxos de sada de links precedentes.
Atravs disso o TRANSYT capaz de esboar o movimento dos veculos na rede.
O outro elemento deste programa a ser analisado o seu processo de otimizao, o
qual sempre busca uma temporizao que minimize as filas e os atrasos. O otimizador
do TRANSYT altera as defasagens e as porcentagens de verde em cada interseo,
assim so geradas as ondas verdes. O tempo de ciclo no otimizado, porm existe um
programa chamado CYOP que pode ser utilizado, externamente, para avaliar uma faixa
de tempos de ciclo, da qual um timo pode ser selecionado [5].
De maneira geral, o modelo de otimizao, procura determinar uma combinao
ponderada do atraso e nmero de paradas para cada interseo da rede. Essa ponderao
representa o custo do congestionamento de trfego e definida de forma a prover o
melhor desempenho em relao a uma funo objetivo, denominada ndice de
desempenho (Performance Index - PI), dada por:

+ =
n
i
i i i i
S k
K
d w W PI
1
100
. . (3.1)
onde,
n nmero de links na rede;
W custo mdio por unidade de atraso;
w
i
coeficiente de ponderao de atraso na via i (1/s);
d
i
atraso mdio no link (s);
K custo mdio por 100 unidades de parada;
k
i
coeficiente de ponderao do nmero de paradas na via i;
S
i
nmero mdio de paradas na via i;
Como se pode perceber atravs da funo, o otimizador do TRANSYT procura
minimizar o PI e produzir ondas verdes multidirecionais. Como normalmente no
possvel zerar o nmero de paradas e o atraso, o software busca automaticamente um
valor mnimo, ou seja, o menor custo.
15

A soluo tima obtida por meio de processo hill climbing [24]. Neste processo, o
TRANSYT calcula o PI para a rede em um plano semafrico inicial. Posteriormente, o
programa altera a defasagem de uma das intersees e recalcula o PI da rede. Se este
novo valor for menor, ento a defasagem sucessivamente alterada na mesma direo e
no mesmo nmero de passos at obter um valor mnimo para o PI. Se o valor do PI
obtido aps a primeira alterao de defasagem for maior, a alterao caminha na direo
oposta at que um valor menor seja obtido. Na tentativa de diminuir mais ainda o PI, o
TRANSYT tambm realiza modificaes individuais nas reparties de verde de cada
uma das intersees.
Uma caracterstica deste processo que o timo encontrado nem sempre global.
Para reduzir esta possibilidade, TRANSYT usa mudanas grandes e pequenas
sucessivamente na defasagem.
Alm de tudo isso, o TRANSYT otimiza os tempos de verde, permite especificar
filas mximas para evitar bloqueios, avaliar ns em grupos, utilizar meio tempo de
ciclo, e repetir estgios.

3.3 O Controle de trfego em tempo real
Os sistemas de controle em tempo real conseguem ajustar-se automaticamente s
variaes de fluxo e eliminam o custo de atualizao dos planos de tempos fixos[64].
Alm disso, podem aproveitar-se de variaes de demanda ciclo-a-ciclo. Apesar das
vantagens, tem o problema do alto custo de implantao e manuteno. A tabela 3.1, a
seguir, apresenta as vantagens e desvantagens entre os sistemas a tempos fixos e os
sistemas em tempo real.
Tabela 3.1: Controle a Tempo Fixo Controle em Tempo Real

Controlador a Tempo Fixo Controlador em Tempo Real
VANTAGENS
a) Os tempos semafricos so
facilmente ajustados no campo do
trfego;
b) Mais simples e mais barato que
o outro Modelo;
c) Em um sistema coordenado so,
geralmente, eficientes, pois para a
existncia da progresso,
necessrio se ter tempos de verde
e comprimento do ciclo
constantes;
d) Podem operar com diferentes
planos semafricos durante um
a) ajustvel demanda e s
flutuaes;
b) Geralmente reduzem o atraso e
aumentam a capacidade da via;
c) Fornecem operao contnua,
inclusive com baixos volumes de
trfego.


16

mesmo dia, dependendo do
horrio.
DESVANTAGENS
a) No reconhecem, nem
acomodam flutuaes na demanda
do trfego.
a) Possuem altos custos de implantao
e manuteno

Fonte: Adaptada de Beck [61].

Esses sistemas de controle capazes de reagir s variaes de demanda de trfego so
objeto de grande interesse comercial e acadmico. O produto mais bem sucedido o
SCOOT [51], que implementa um algoritmo similar ao do programa de tempos fixos
TRANSYT [50], adaptado para funcionamento em tempo real. Muitos so os trabalhos
dedicados ao estudo desta tcnica; entre eles pode-se citar SCATS [33], PRODYN [14],
OPAC [17], RHODES [64], ALLONS-D [22].
Esses sistemas so divididos em duas categorias [29], os cclicos e os acclicos. Os
cclicos so aqueles em que o tempo dividido ciclicamente entre as fases e operam
com os conceitos de ciclo, defasagem e porcentagens de verde. Os acclicos no se
baseiam nestes conceitos e decidem a cada perodo de controle se o estado do semforo
mantido ou trocado, determinando assim que fases tm direito de passagem. As sees
seguintes explicam de maneira geral como os sistemas dos dois grupos funcionam.

3.3.1 Sistemas Acclicos
Os sistemas acclicos em geral usam tcnicas de otimizao e predio, e da tcnica
de horizonte deslizante.
A principal desvantagem dos sistemas acclicos o fato de o espao de solues ser
combinatrio. Por esse motivo estes sistemas costumam ser descentralizados e atuarem
localmente. A atuao local no proporciona explicitamente a coordenao semafrica,
que acaba sendo gerada atravs de nveis de controles mais altos e globais.
Por oportuno, importante abrir um pequeno espao para detalhar melhor o
funcionamento da tcnica do horizonte deslizante. Assim, a seguir destaco este tpico.

HORIZONTE DESLIZANTE
Esta tcnica utilizada para prever o futuro do trfego e descobrir o melhor controle
para o futuro. Ela consiste em simular, entre dois instantes de controle, a evoluo do
sistema durante vrios perodos. A simulao considera todas as possibilidades de
17

mudana de sinal e as restries de tempo de verdes mnimo e mximo. Ao final, tem-se
o valor timo do controle para ser aplicado, o qual ir vigorar apenas durante o perodo
subsequente. O horizonte deslizante reconstrudo a cada perodo. Apesar de testar
todas as possibilidades, encontrada a soluo tima, apenas a do perodo seguinte
aplicada. Para os perodos futuros um novo horizonte com informaes mais recentes
ser construdo. As possibilidades criadas pelo horizonte deslizante podem ser
representadas por uma rvore de deciso.
A rvore de deciso assim obtida adequada para organizar a tarefa de testar todas
as possibilidades. Ela montada a partir das diferentes opes que uma deciso entre a
indicao verde ou vermelha pode oferecer. Cada nova situao de trfego criada tem
um custo quantificado em atraso veicular. Um algoritmo de busca faz a tarefa de
encontrar o caminho na rvore que resulte no menor custo. O resultado levar ao
controle a ser aplicado no perodo seguinte.
A tcnica exige o conhecimento das chegadas de veculos no perodo inicial. Para os
perodos futuros do horizonte so utilizadas predies das chegadas. Estas predies so
obtidas para todas as possibilidades de controle durante um horizonte de tempo K, com
k = 1, . . . , K.
Utilizando um modelo de trfego e as medidas dos sensores, a cada perodo de
controle, K perodos de controle futuros so simulados e a rvore de deciso
construda. O tamanho do horizonte K, o tempo de um perodo e a tcnica de busca no
espao de solues, variam de sistema para sistema.
A Figura 3.1 mostra o exemplo de uma rvore completa para K = 3. A busca
realizada em profundidade, portanto escolhido o ramo superior e percorrido o caminho
at a ltima folha da rvore. Na Figura, o primeiro caminho, na parte superior, totaliza
um custo de 6. A restrio de verde mnimo cumprida, pois a indicao verde (g de
green em ingls) mantida durante todo o caminho. O segundo caminho a ser
percorrido o que testa a mudana para indicao vermelha (r de red em ingls), no
segundo nvel da rvore. Esta mudana permitida, pois o verde mnimo j foi
cumprido, no entanto, a partir deste ponto a restrio de verde mnimo reiniciada,
ento a folha imediatamente acima invivel (folha marcada sem sombreamento). J a
folha imediatamente abaixo soma um custo de 6. O procedimento repetido para a
metade inferior da rvore. A partir do segundo nvel, a mudana s permitida para a
folha abaixo, tornando todos os caminhos acima inviveis. O custo resultante para a
folha acima do segundo nvel da rvore 2 e o da folha abaixo 5. Assim, o caminho de
18

menor custo (igual a 2) aparece realado na figura e indica que a melhor deciso
mudar para o estgio r por pelo menos o tempo de permanncia mnimo.

Figura 3.1: rvore de busca - semforo de dois estgios. [16]

A seguir sero apresentados os sistemas acclicos ALLONS-D, OPAC, PRODYN e
RHODES.

3.2.1.1 ALLONS-D
O sistema ALLONS-D (Adaptive Limited Lookahead Optimization of Network
Signals Decentralized Version) um mtodo descentralizado de controle de trfego
urbano em tempo-real [22].
Ele baseia-se no conceito de Horizonte Deslizante em otimizao dinmica para
determinar a sequncia tima de mudana dos estgios em uma interseo. Tem como
objetivo minimizar o atraso veicular total nas aproximaes de cada interseo de uma
determinada malha viria. Cada interseo possui um controlador que, para realizar a
otimizao semafrica, necessita do tamanho atual de filas e das chegadas futuras em
suas aproximaes. Qualquer sequncia arbitrria de estgios permitida desde que
atendam s restries de tempo de verde mnimo e mximo, por questes de segurana e
equilbrio do trfego, respectivamente. possvel tambm considerar prioridade para
veculos de diferentes tipos e/ou nveis de ocupao da demanda de fluxos do trfego,
como, por exemplo, para veculos de transporte coletivo[20] ou ambulncia.
Estgio que ser implementado no
prximo perodo
19

Inicialmente o ALLONS-D no implementava explicitamente a coordenao
semafrica. Sua arquitetura era altamente centralizada e no considerava vias chegando
a intersees vizinhas, mas somente vias vindas das intersees vizinhas diretamente
interseo controlada [20], por isso comandos explcitos de coordenao no eram
emitidos. A obteno de coordenao implcita era devido coleta de dados de fluxo
das aproximaes, predio de chegadas obtidas atravs das contagens, e do baixo
valor dos intervalos do horizonte deslizante (normalmente entre 5 e 15 segundos) [19,
18].
Entretanto, estudos de desempenho em relao coordenao no foram
apresentados.
Posteriormente o ALLONS-D sofreu modificaes de maneira a induzir
explicitamente a coordenao semafrica em redes arteriais de intersees que pudesse
suportar sinalizao progressiva, ou seja, ondas verdes. Uma nova arquitetura em duas
camadas (Figura 3.2), de forma a obter otimizao semafrica para toda a rede, foi
implementada. Utilizou-se um mtodo de coordenao semafrica com o intuito de se
obter atraso global menor e/ou sinais progressivos. Esta mesma arquitetura possibilita a
reduo de tempos de viagem para rotas de nibus de transporte coletivo. Como em
uma malha viria com vrias intersees a otimizao local em cada interseo no
implica em um timo para toda a rede, procurou-se uma maneira de levar timos locais
em direo ao timo global.

Figura 3.2: Arquitetura de ALLONS-D com 2 camadas. Adaptado [21]

Esta nova arquitetura hierrquica implementa na camada local (local layer) o
ALLONS-D como descrito inicialmente. Na camada de malha viria (network layer)
so determinados os requisitos de coordenao. Estes requisitos so diretivas para
favorecer um estgio em relao a outro usando pesos [21], alm disso, eles podem ser
Camada da malha Viria
Determinao dos requisitos de
coordenao
Camada Local
Controlador da
interseo 1
Camada Local
Controlador da
interseo 2

Camada Local
Controlador da
interseo N

L
1
(t)
L
2
(t)
L
N
(t)
20

variantes no tempo. A notao L
i
(t) usada para representar uma sequncia de
preferncias para a interseo i. Assim, L
i
(t) indicaria para cada perodo discreto no
tempo t a importncia que um estgio de trfego tem em relao a outro. O mtodo
consiste em atribuir maior peso ao atraso de um determinado estgio em relao aos
demais, pesos estes que so usados na funo objetivo utilizada por ALLONS-D.
Resultados [21, 19] em uma rede arterial com trs intersees, Figura 3.3, mostram
que a performance do sistema melhor quando comparada com o controle
descentralizado com pesos unitrios para todos os estgios. Este por sua vez teve
resultados melhores ou compatveis com temporizao fixa coordenada ajustada
exaustivamente atravs de simulaes [20].


Figura 3.3: Demanda na rede arterial de 3 intersees. [16]

3.2.1.2 OPAC
O sistema OPAC ou Optimized Policies for Adaptive Control foi originalmente
desenvolvido na Universidade de Massachusetts [36], e uma estratgia de controle
distribuda provida de um algoritmo de programao dinmica com o objetivo de
diminuir o atraso e o nmero de paradas em intersees.
Ele utiliza tanto medidas reais de demanda como estimadas para determinar a
durao das fases, que so restritas apenas por valores mximos e mnimos do tempo de
verde, e por um tempo de ciclo virtual quando roda em modo coordenado.
O desenvolvimento deste sistema progrediu em quatro verses que so brevemente
apresentadas a seguir.
OPAC-1: Programao Dinmica
Esta primeira verso foi desenhada para servir de base para desenvolvimentos
futuros do projeto. A programao dinmica uma ferramenta que permite encontrar
um timo global para processos de deciso de mltiplos estgios. Devido grande
21

quantidade de processamento envolvido e falta de dados em tempo real no pode ser
utilizada diretamente para o controle. O que se faz criar todo tipo de cenrio possvel
como condio inicial e rodar o sistema guardando os resultados. Dessa forma, ela serve
como referncia para comparao com as outras estratgias de controle mais prticas.
OPAC-2: Otimizao Sequencial
Este segundo algoritmo desenvolvido consiste de uma simplificao do primeiro.
Ele foi concebido de forma a servir de mdulo de construo para uma estratgia online
distribuda.
A estratgia funciona da seguinte maneira: para cada estgio, dados os estados
iniciais de cada fila para cada aproximao e para cada intervalo do estgio, determina-
se os tempos de troca de fase, em termos de intervalos, que asseguram o atraso mnimo
para os veculos sobre todo o estgio.
O procedimento utilizado para resolver o problema conhecido como mtodo
OSCO (Optimal Sequential Constrained Search) [36] ou busca tima sequencial com
restries. uma busca exaustiva de todas as possveis combinaes de mudanas de
fase vlidas dentro de um estgio que determina um conjunto timo. Os tempos de
mudana de fase so sujeitos a restrio de tempos mximo e mnimo de durao de
verde.
OPAC-3: Horizonte Deslizante
Embora o OPAC-2 seja mais apropriado a operar em tempo real do que o OPAC-1,
ele necessita do conhecimento das chegadas de todo o perodo do estgio, que
tipicamente tem 1 ou 2 minutos de durao. Dessa maneira, o estgio dividido em n
intervalos, e, de acordo com os detectores posicionados atrs de cada link(via), as
chegadas reais so computadas para os k primeiros intervalos. O restante, ou seja,
aquelas chegadas que ainda no ocorreram, obtido atravs de um modelo para os nk
intervalos. O estgio ento chamado de Horizonte e tem normalmente a durao de
um ciclo mdio.
Uma poltica tima de mudana de fases calculada para todo o horizonte, porm
apenas parte dela implementada. Com o avano do tempo, o horizonte vai deslizando
e dados reais de fluxo vo sendo obtidos e utilizados para um novo clculo, permitindo
que as decises sejam revisadas e melhoradas.
Um menor perodo de estgio do horizonte implica num maior nmero de clculos
porm permite resultados mais prximos do timo.
22

OPAC-4: VFC (Virtual Fixed Cycle)
Como parte do projeto do Sistema de Controle em Tempo Real Adaptativo (RT-
TRACS Real-Time Traffic-Adaptive Signal Control System) da FHWA (Federal
Highway Administration) do Departamento de Transportes dos EUA [36], a
Universidade de Massachusetts, Lowell (UML), expandiu a lgica de controle do
OPAC para, a desejo do operador, utilizar a opo de estratgia de
sincronizao/coordenao em redes arteriais e malhas virias. Esta verso, conhecida
como VFC ou Ciclo Fixo Virtual recebeu este nome, pois o tempo de ciclo oscila ao
redor de um tempo de ciclo virtual podendo ser maior ou menor que este com a
finalidade de melhor gerenciar a dinmica do trfego.
Esta arquitetura de controle dividida em trs camadas, Figura 3.4. A camada 1 ou
Camada Local de Controle implementa o OPAC-3, ou seja, o procedimento de
horizonte deslizante, sujeito s restries da camada 3 de VFC. A camada 2 ou Camada
de Coordenao otimiza os offsets de cada interseo a cada ciclo. A camada 3 ou
Camada de Sincronizaao, calcula o tempo de ciclo virtual para toda a malha (uma vez
a cada n minutos, especificado pelo operador). A durao do tempo do ciclo pode ser
determinada separadamente para grupos de intersees, como for necessrio. Com o
passar do tempo o ciclo flexvel e os offsets so atualizados conforme o sistema se
adapta s condies de trfego.


Figura 3.4: Arquitetura do OPAC-VFC. Adaptada de [36]



Camada 1
Camada 2
Camada 3
Camada de Sincronizao
Camada de Coordenao
Camada de Controle Local
23

3.2.1.3 PRODYN
O PRODYN [23] faz parte de uma segunda gerao de sistemas de controle que
surgiu com a finalidade de aperfeioar o gerenciamento das malhas virias. Sua
estrutura de controle descentralizada e utiliza a estratgia de horizonte deslizante, ou
seja, o clculo feito considerando apenas uma interseo por vez. Quando um
controlador de uma determinada interseo termina a otimizao para o horizonte,
simula as sadas da interseo relativas ao controle timo para todos os passos do
horizonte.
Estabelecendo-se T como o perodo de amostragem (normalmente de 5 segundos), e
K o tamanho do horizonte, k = 1, 2,..., K, expresso em unidades de T, tem-se que o
mtodo, ao nvel da interseo durante os tempos kT e (k+1)T, consiste em:
a) prever as chegadas de veculos de cada via para o intervalo [kT, (k+K+1)T];
b) estimar as filas em kT e prev-las para (k+1)T;
c) prever as taxas de converso (ou seja, a porcentagem de veculos que viram
esquerda e/ou direita), o estgio e o tempo decorrido desde a ltima mudana de fase
para (k+1)T;
d) otimizar os controles no horizonte [(k+1)T, (k+K +1)T] para os estados
resultantes de b) e c) e as chegadas resultantes de a).
O resultado de d) fornece o controle a ser aplicado entre (k + 1)T e (k + 2)T.
Aquelas intersees que possuem frente outras intersees controladas pelo sistema,
simulam os resultados obtidos pela aplicao do controle timo no perodo [(k+1)T,
(k+K +1)T], usando taxas de converso fixas, e as enviam em uma mensagem para os
controladores de cada interseo frente. Durante o perodo (k+1)T e (k+2)T, estas se
baseiam nos dados recebidos e os utilizam para obter melhor predio de chegadas. As
chegadas para o resto do horizonte [(k+K+1)T, (k+K+2)T] so previstas como se no
houvesse intersees atrs. Em intersees muito afastadas (mais de 200 m) so
utilizados valores mdios, e em intersees muito curtas (menos de cinco segundos)
valores mdios so utilizados para predizer o ltimo perodo do horizonte.
A varivel de otimizao a ser minimizada para as intersees a soma dos atrasos
sofridos durante o horizonte e um critrio de parada que uma estimao do atraso
associado a um determinado estado ao final do horizonte.
No processo de otimizao, feito atravs de Forward Dynamic programao
dinmica direta, o controle limitado por quatro restries: o nmero de estgios
24

possveis para cada interseo; proibio algumas transies de estgios, determinadas
pelo operador; e os tempos mnimo e mximo de durao de cada estgio.

3.2.1.4 RHODES
Este sistema utiliza uma arquitetura de controle que decompe o problema em
vrios subproblemas interligados hierarquicamente [44]. Ele prev os fluxos de trfego
de acordo com os diferentes tipos (veculos individuais ou pelotes), visando um
controle proativo, e possui diversos mdulos de otimizao para resolver os
subproblemas utilizando uma estrutura de dados, mtodos de comunicao e algoritmos
computacionais que permitem uma rpida resoluo dos subproblemas, essas solues
podem ser baixadas pelo campo dentro dos limites de tempo impostos.
A arquitetura do RHODES baseada na decomposio do problema de
controle/estimao em trs nveis (Figura 3.5), (1) controle de carregamento da malha;
(2) controle de fluxo de malha; (3) controle de interseo.
Essencialmente, em cada um dos trs nveis h um componente estimador/preditor e
um componente de controle. Os critrios de otimizao utilizados podem ser quaisquer,
desde que sejam expressos em termos de medidas efetivas como atraso mdio, nmero
de paradas, capacidade de vazo, etc.
No topo da arquitetura, controle de carregamento de malha, encontra-se um modelo
dinmico da rede que captura as mudanas sutis das caractersticas do trfego ao longo
do tempo. Essas caractersticas se referem geometria das vias (rotas disponveis,
obras, desvios, etc.) e s rotas tpicas utilizadas. Baseando-se na carga do sistema como
um todo, pode-se estimar a carga em cada via particular em termos de veculos por hora.
Essas estimativas permitem ao sistema alocar os tempos de verde de acordo com as
demandas de fluxo existentes para cada sentido de movimento (Norte-Sul, Sul-Norte,
converso esquerda, etc.).
Essas decises so tomadas pelo nvel mediano da hierarquia, tambm chamado de
controle de fluxo da malha. As medidas de fluxo de trfego a esse nvel so expressas
em termos de pelotes de veculos e suas velocidades. Dados os tempos de verde
aproximados, o controle de interseo, ao terceiro nvel, seleciona a poca das
mudanas de fase baseado nas chegadas observadas e previstas de veculos individuais
em cada interseo.
25

No nvel inferior da hierarquia de controle do RHODES, para o Controle de
Interseo, utilizado um algoritmo de programao dinmica, conhecido como COP
(Controlled Optimization of Phases) [52]. O mtodo de horizonte deslizante permite que
as observaes e predies mais recentes sejam utilizadas na otimizao. A otimizao
iniciada em um determinado ponto t0 e considera um horizonte de tempo de Ts, que
normalmente varia entre 40 e 60 segundos. Todas as fases so inseridas no sistema na
forma de estgios, e quando nenhuma restrio de ordem imposta, possvel obter
sequenciamento varivel de fases e omisso destas, dependendo do que melhor servir
para a funo objetivo.

Figura 3.5: Arquitetura Rhodes. Adaptada de [44]
A lgica do Controle do Fluxo de Rede baseada no modelo REALBAND [49], que
otimiza o movimento de pelotes para sub-redes. Quando o objetivo selecionado o de
minimizar o nmero de paradas, o algoritmo procura formar bandas de progresso
baseadas em observaes reais de pelotes.
Cada peloto caracterizado em tamanho (nmero de veculos) e velocidade, e pode
ser identificado quando a densidade de fluxo captada pelos detectores atinge um
determinado nvel por um determinado perodo de tempo. As decises tomadas pelo
REALBAND so utilizadas como restries no Controle de Interseo (COP).



26

3.3.2 Sistemas Cclicos
Os sistemas cclicos, embora operem com os conceitos de ciclo, defasagem e
porcentagens de verde, diferentemente dos acclicos, que utilizam em comum o
horizonte deslizante, no seguem uma tcnica em comum para seu funcionamento. A
seguir so apresentados o SCATS e SCOOT, suas particularidades e algumas de suas
principais caractersticas.

3.2.2.1 SCATS
O Sydney Coordinated Adaptive Traffic System (SCATS) [45] um sistema
hierrquico de gerenciamento do trfego em tempo real. Ele foi desenvolvido com o
propsito de coordenar os semforos nas principais redes arteriais da cidade de Sydney.
Diferentemente dos demais sistemas, o SCATS no utiliza um modelo de trfego para
efetuar o controle. Possui uma estrutura distribuda com habilidade de comunicao
entre seus elementos.
Neste sistema, computadores regionais determinam ciclos, defasagens e parties
timas de verde, para at 250 intersees semaforizadas. Cada interseo possui um
controlador local com autonomia para efetuar modificaes nos parmetros de controle,
de acordo com a variao na demanda. Contudo, um computador central responsvel
pela definio de uma estratgia de controle semafrico (ex. minimizar paradas e/ou
atraso veicular) para os computadores locais, alm de monitorar suas performances e o
estado dos equipamentos.
Os controladores locais de cada regio so agrupados em sistemas e sub-sistemas.
Os sistemas no interagem entre si, pois no esto geograficamente relacionados, j os
subsistemas interagem entre si e podem ser ligados para compor os sistemas.
Os subsistemas so os elementos bsicos de controle no nvel estratgico e
compreendem de uma a dez intersees. Com base nas variaes de demanda e
capacidade, os valores apropriados de porcentagens de verde, defasagem e ciclo para
cada subsistema e a defasagem entre subsistemas, so escolhidos pelo algoritmo
estratgico de controle. As intersees dentro de um mesmo subsistema operam com o
mesmo tamanho de ciclo. Laos indutivos adquirem dados em todas as aproximaes
logo aps a faixa de reteno. Laos definidos como estratgicos so utilizados pelo
controle estratgico, enquanto os demais so utilizados para o controle local (pular um
estgio, encurtar o verde, etc.).
27


3.2.2.2 SCOOT
O sistema SCOOT [29, 30] (Split, Cycle, and Offset Optimisation Technique) uma
tcnica de controle em tempo-real de trfego urbano que visa minimizar o atraso
veicular, nmero de paradas e nveis de congestionamento abaixo dos obtidos pelos
melhores sistemas de tempo fixo, de eliminar a necessidade de atualizar planos fixos, e
de prover informaes para gerenciamento do trfego. Os princpios gerais do mtodo
SCOOT so os mesmos do mtodo TRANSYT para tempo fixo, inclusive o critrio de
otimizao, sendo que o primeiro atua em tempo real e o outro no.
O SCOOT procura minimizar a soma das filas mdias na rea controlada. Leva em
considerao tambm o nmero de paradas. Um fator de ponderao balanceia a
importncia de filas e nmero de paradas. Usa ainda estimativas de demanda do trfego
para o processo de otimizao semafrica. Estas estimativas so geradas a partir de
laos indutivos colocados em todas as aproximaes das intersees controladas. Os
laos devem ser posicionados a uma distncia tal(aproximadamente 20m) que resulte
num tempo de percurso mnimo na faixa de 8 a 12 segundos, necessrio para executar o
processo de otimizao [59].
Os dados so coletados em tempo real e armazenados em Cyclic Flow Profiles -
CFP por link. Os CFPs so uma mdia do fluxo de veculos que passaram por
determinado ponto da via em um determinado sentido, em intervalos de 4 segundos.
Eles contm a informao necessria para o controle de semforos adjacentes e para o
clculo das porcentagens de verde. Para cada via o modelo de trfego do SCOOT
conhece as indicaes semafricas, velocidades de cruzeiros e fluxos de saturao pr-
estabelecidos. Prev assim o tamanho corrente da fila e seu final. utilizado ento por
otimizadores para avaliar alternativas de controle e encontrar a melhor temporizao,
atravs de simulaes.
O SCOOT possui um conjunto de temporizaes que, se no fossem alterados pelos
otimizadores, seria efetivamente um plano de tempo fixo. O sistema utiliza frequentes
alteraes incrementais de porcentagens de verde, defasagens e ciclo diminuindo os
transientes e controlando os sinais com um plano que evolui ao longo do tempo.
Dentre os otimizadores utilizados pelo mtodo SCOOT esto o de porcentagens de
verde, de ciclo e de defasagens. Estes otimizadores atuam testando pequenas alteraes
28

na programao semafrica vigente, implementando aquelas que resultem em benefcios
detectados no modelo do trfego embutido [32].
O otimizador de porcentagens de verde verifica, antes de iniciar o prximo estgio,
se atrasar, adiantar ou manter a entrada do estgio seguinte gera uma melhoria na
saturao das aproximaes da interseo. Em caso de modificao no tempo de verde,
esta alterao no mantida para os ciclos seguintes e uma alterao permanente e
menor feita no plano. Assim, o SCOOT reage a variaes aleatrias de ciclo a ciclo,
mantendo a tendncia de variao na demanda de fluxo.
J o otimizador de ciclo opera sobre uma sub-rea calculando o ciclo que garanta
90% de saturao nas aproximaes, para cada interseo, a cada 2,5 a 5 minutos,
aproximadamente. A seguir verificado se o maior ciclo encontrado reduzir em 2% ou
mais nos atrasos atuais da sub-rea. Em caso afirmativo o novo ciclo implementado na
sub-rea, podendo ter mltiplos deste em qualquer das intersees semafricas [59].
O otimizador de defasagem, por sua vez, verifica se modificaes que ocorrerem
nos cyclic flow profile, no intervalo de tempo de 4 segundos, ocasionaro benefcios
progresso de pelotes do trfego nas ruas que esto imediatamente atrs e a frente da
interseo, uma vez por ciclo, para cada interseo de uma sub-rea. Um ndice de
performance utilizando atraso, nmero de paradas e nvel de congestionamento
utilizado.
Finalmente, executada a modificao que cause menor nmero de paradas e menor
atraso veicular.
O nvel de congestionamento, medido pelo modelo em cada via, utilizado para
modificar as decises dos otimizadores de porcentagens de verde e defasagem. O tempo
de verde pode ser aumentado para reduzir congestionamento e defasagem em uma via e
ser melhorada reduzindo o risco de bloqueio na interseo anterior.

3.4 Concluso
O contedo visto nesse captulo foi de extrema importncia para o desenvolvimento
deste trabalho, visto que no h como implementar um sistema de semforo de trnsito
operando sob demanda de fluxo, sem falar em controle de trfego e alguns dos
principais sistemas que utilizam esse conceito: TRANSYT, SCOOT, SCATS,
ALLONS-D, OPAC, PRODYN e RHODES.
29

A caracterstica comum e mais importante que nos leva a ressaltar a importncia
desses sistemas o modo dinmico como eles operam, decidindo as estatsticas de
controle ideais rede semafrica de acordo com a demanda de fluxo de veculos de
cada via da malha.
Os conceitos vistos neste captulo sero a base tomada para implementao do
sistema de controle semafrico proposto neste trabalho.
A seguir ser analisada a interseo isolada com mais detalhes, trazendo conceitos
de fila, caracterizao do fluxo veicular, determinao de atraso, temporizao de
semforos. E a partir da definitivamente ser possvel implementar o projeto.








30

Captulo 4
Anlise de intersees isoladas

O objetivo deste captulo abordar assuntos que caracterizam tecnicamente uma
interseo isolada no sistema de controle de trfego. O conhecimento do estado do
sistema a ser projetado importante tanto para projetistas de trfego, como tambm para
os sistemas dinmicos de controle de trfego em geral.
Para saber como funcionam os sistemas com semforos operando sob demanda de
fluxo em um sistema inteligente de controle de trfego urbano, essencial conhecer
quais so os termos tcnicos empregados. Alm disso, outro tema muito importante aqui
abordado o clculo dos tempos de cada fase de um semforo e o do atraso provocado
por filas em intersees isoladas.
No captulo anterior foram apresentados os sistemas de controle de trfego por rea
mais comuns, que so capazes de operar sob demanda de fluxo. Percebeu-se, com isso,
como eles so eficientes na melhoria do trnsito. Agora necessrio caracterizar como
so determinados os tempos de espera para condutores em filas que se formam nas
intersees entre outras variveis importantes a conhecer no controle do trfego.
Os assuntos tratados neste captulo so no sentido de verificar a caracterizao do
fluxo veicular, semaforizao no trfego, conceituao das filas, analisar como se
estabelece o controle de ciclo de intersees isoladas, alm de saber como determinar a
temporizao dos semforos nestas intersees. Por fim, verifica-se tambm a definio
da frmula de Webster [63] para a questo da determinao do tempo de verde e do
clculo do atraso de veculos.

4.1 Caracterizao do fluxo veicular
Quando se analisa o sistema de trfego com certo nvel de abstrao as grandezas
como fluxo, concentrao e velocidade dos veculos permitem que se possa fazer uma
analogia dinmica dos fluidos [6]. Deixando-se de levar em conta a individualidade de


31
cada veculo, fenmenos relacionados ao escoamento dos fluidos podem ser observados
e essa viso baseia-se justamente na interpretao dessa rea de estudo.
Um dos fenmenos mais importantes a ser estudado nessa rea a onda de choque.
Qualquer mudana das caractersticas da via que proporcione uma diferena de
concentrao como lombadas, estreitamento de vias, semforos e quaisquer outros tipos
de obstruo ao movimento, normalmente geram ondas de choque. Elas so
caracterizadas, portanto, pelo movimento de propagao de uma mudana de
concentrao ou fluxo na via [6].
Essa propagao da onda de choque mostrada na Figura 4.1. Inicialmente, o
semforo est fechado e a concentrao de veculos igual concentrao de
congestionamento, normalmente designada k
j
. Isso implica que eles esto parados bem
prximos uns aos outros. Assim que o semforo abre e os veculos comeam a se
locomover, a frente de onda vai se movendo em direo ao final da fila at terminar,
extinguindo a onda.

Figura 4.1: Propagao de uma onda de choque [7].

Essas oscilaes nos nveis de concentrao geram alteraes na velocidade dos
veculos, sejam elas causadas por mudanas da via ou por um aumento ou diminuio
do nmero de veculos decorrentes de acessos na via. Para relacionar essa concentrao
e velocidade foram desenvolvidos vrios modelos, conhecidos como Modelos de
Velocidade-Concentrao. O mais simples e usado deles o modelo linear de
Greenshield [34] dado por:


32

|
|

\
|
=
j
f
k
k
u u 1 (4.1)
sendo u
f
a velocidade de cruzeiro (free speed) da via, u, a velocidade do veculo e k, a
concentrao. O fluxo q dado por:
q = k.u (4.2)

A Figura 4.2 mostra os grficos obtidos , usando u
f
= 30 m/s (108 km/h) e k
j
= 0.25
veic/m, que foram traados com base apenas nas equaes 4.1 e 4.2. A relao linear
entre a velocidade e concentrao, dada na equao 4.1, mostrada na Figura 4.2a. Para
se obter os grficos de Velocidade Fluxo (Figura 4.2b) e Fluxo Concentrao
(Figura 4.2c) necessrio realizar algumas manipulaes com as equaes.
A relao entre a velocidade e o fluxo foi obtida combinando-se as equaes 4.1 e
4.2, resultando em:

|
|

\
|
=
j
f
uk
q
u u 1 . (4.3)
Rearranjando os termos, obtm-se:

j
f
j
uk
u
k u
q + =
2
. (4.4)
A expresso da relao entre fluxo e concentrao pode ser obtida substituindo-se u
em 4.1 por
k
q
, resultando, aps alguma manipulao, em:

f
j
f
u k
k
u k
q .
2
+ = . (4.5)

O grfico da Figura 4.2b, obtido a partir da equao 4.4, enquanto que o grfico da
Figura 4.2c, pela 4.5. Observa-se neste ltimo que na concentrao mxima k
j
, o fluxo
zero. O mesmo ocorre com a velocidade na concentrao mxima, conforme mostrado
na Figura 4.2b. Observe que no grfico desta figura, quando a velocidade mxima (u
f

= 30 m/s), o fluxo de veculos zero (q = 0). Pode parecer um tanto ilgico a primeira
vista, mas isso ocorre porque, quanto maior for a velocidade dos veculos, menor ser a
concentrao, ou seja, menos veculos tero na via. Em conseqncia disso menos
veculos estaro transitando em determinado ponto da pista por intervalo de tempo,
fazendo com que o fluxo tenda a zero.


33
Ao analisar a curva Fluxo Concentrao, observa-se que traando uma reta da
origem at um ponto qualquer da curva, obtm-se a velocidade no ponto dado pela
inclinao desta reta.
Os pontos destacados q
m
, u
m
, e k
m
na Figura 4.2 representam, respectivamente, os
pontos de mximo fluxo, velocidade dos veculos quando o fluxo mximo e
concentrao nesta mesma situao. O ponto de concentrao para o fluxo mximo
obtido derivando a equao 4.5 em relao a k, resultando em:

j m
k k
2
1
= . (4.6)
O valor da velocidade para o fluxo mximo obtido de maneira equivalente, a partir
da equao 4.4, derivando-a em relao a u:

f m
u u
2
1
= (4.7)


Figura 4.2: Representao grfica da relao entre fluxo, velocidade e concentrao
do modelo Greenshield em uma rodovia [7].

Alm das ondas de choque, que podem ser observadas em campo, existe tambm
outro tipo de onda, a de fluxo [34], que, mesmo no sendo observvel em campo,


34
permite a anlise de uma srie de situaes. A informao a respeito destas ondas pode
ser retirada da interpretao da curva de Fluxo Concentrao. Na Figura 4.3a, a reta
tangente ao ponto A representa a onda de fluxo naquele ponto, assim como a reta
tangente ao ponto B. Observe que quando o ponto A est presente a jusante( frente) do
ponto B, ou seja, existe um aumento do fluxo de veculos decorrente, por exemplo, de
um acesso via, o encontro das duas ondas de fluxo gera uma onda de choque com
inclinao igual a , que por sua vez observvel [34]. Basta imaginar que o acesso
via analisada se torna uma obstruo a ela, pois outros veculos entraro nessa via
aumentando a concentrao.
A Figura 4.3b define duas regies distintas, uma delas preenchida com ondas de
fluxo de mesma inclinao da reta tangente ao ponto A da Figura 4.3a, e a outra regio
com ondas de fluxo de mesma inclinao da reta tangente ao ponto B. O encontro das
duas regies destaca a onda de choque de inclinao .

Figura 4.3: Ondas de Fluxo [7].

Um ltimo fenmeno importante a ser estudado na caracterizao do fluxo veicular
o que ocorre quando o fluxo de uma via encontra um gargalo, ou seja, uma restrio
ou alterao do fluxo que leve a uma limitao da quantidade de veculos que passam
por um determinado local. O grfico de Fluxo Concentrao visto na Figura 4.4
representa esse fenmeno. Nesta figura esto traadas duas curvas, Fluxo
Concentrao da via e Fluxo Concentrao do gargalo. A curva que contm os pontos
2 e 3 representa a curva da via, e a que contm o ponto 1 a do gargalo. O fluxo na via
transcorre normalmente at que se aproxime do ponto 2, que coincide com o ponto de
mxima capacidade do gargalo, ponto 1. O ponto 2 representa o mximo fluxo possvel
na via at que o gargalo comece a influenciar o trfego. Quando a concentrao


35
aumenta alm deste ponto, o sistema comea a operar a partir do ponto 3, que permite
um mesmo fluxo, porm com velocidade inferior do ponto 2. Nesse momento, uma
fila comea a se formar e uma onda de choque transmitida logo em seguida com
velocidade
k
q

. Observe que no limite, quando o valor do fluxo est exatamente no


ponto 2, a onda de choque se move com velocidade nula, seguindo:
0
2 3
2 3
=

k k
q q
k
q
(4.8)
referente aos pontos 2 e 3 [7].

Figura 4.4: Curvas de Fluxo-Concentrao de uma via e de um gargalo qualquer [7].
Adaptado de [34].

4.2 Semaforizao no trfego
O maior responsvel pela formao de ondas de choque, principalmente quando se
observa o trfego urbano, o semforo. As caractersticas da sua temporizao so
descritas por trs termos: ciclo, split, e offset [8]. O ciclo caracterizado pela soma dos
tempos de verde, amarelo e vermelho de um determinado semforo. A proporo de
verde e vermelho no ciclo dada pelo split. Para que os veculos que partem de
determinada via, com vrias intersees, possam fluir melhor, sem parar em cada
cruzamento, interessante aplicar uma sincronizao dos verdes, formando o que se


36
chama de onda verde. A essa diferena de tempo na aplicao dos verdes das
intersees d-se o nome de offset ou defasagem.
Outros termos que definem o funcionamento dos semforos so a fase e o estgio
(intervalo). Geralmente a indicao de cores do semforo que forma um ciclo verde,
amarelo, vermelho e novamente verde. Esta sequncia, aplicada a uma ou mais
correntes de trfego, chamada fase [8]. O estgio, por sua vez, consiste em um
conjunto de fases, que dura um determinado perodo de tempo em que as indicaes
luminosas das fases no mudam, permitindo a passagem de uma ou mais correntes de
trfego de veculos e/ou pedestres.
A Figura 4.5 ilustra um cruzamento simples, onde se podem visualizar melhor estes
conceitos. Os veculos que trafegam na via A podem efetuar converso esquerda e
aqueles que trafegam na via B podem efetuar converso direita. Imaginando uma
situao de operao com trs configuraes de estgio possveis para este cruzamento
estabelece-se o funcionamento do mesmo de acordo com a Figura 4.6.


Figura 4.5: Cruzamento simples [7].





37

Figura 4.6: Semaforizao de uma interseo isolada [8].

Em captulos anteriores, muito se falou sobre aproximaes, mas at esse momento
seu conceito no foi abordado explicitamente. Esta definio cabe justamente nesta
sesso, pois faz parte do entendimento da semaforizao no trfego. Ento, todo trecho
de via que chega a uma interseo considerado uma aproximao. A Figura 4.7 mostra
duas intersees e seis vias de mo nica e seus sentidos. As vias (a) e (d) so
aproximaes da interseo (1) e as vias (b) e (e) so aproximaes da interseo (2).


38
As vias (c), (f) e (g) no so aproximaes de nenhuma das intersees da figura, mas
podem eventualmente ser aproximaes de intersees que no aparecem nela.


Figura 4.7: Aproximaes em intersees [5].

Os veculos, aglomerados em fila diante de um semforo, ao receberem o sinal
verde, partem mantendo uma certa distncia entre eles, o fator de disperso, e uma
mesma velocidade durante um certo perodo de tempo. Quando estes veculos
apresentam estas caractersticas so chamados de um peloto [27], mais um termo
tcnico utilizado nesta rea. Toda via que apresenta um volume de trfego superior s
vias adjacentes pode ser considerada uma arterial ou via principal.
Outro conceito necessrio de se destacar o atraso. Ele representa a quantidade de
tempo extra despendido por um determinado veculo devido incapacidade de cruzar
um determinado trecho no tempo previsto. Esse atraso imposto pelos semforos, e no
resta outra soluo a no ser distribuir melhor o tempo perdido entre as vias que se
cruzam ou conflitantes [8].
As variadas tcnicas que vimos no captulo anterior visam exatamente a otimizao
desse atraso atravs da sintonia dos parmetros citados (ciclo, split e offset). Alguns
sistemas de controle de trfego em tempo real [SCATS, SCOOT], frequentemente,
otimizam estas trs variveis independentemente, havendo tcnicas para harmonizar os
resultados numa ao de controle que melhor sirva ao desempenho do trfego.
Todos os termos tcnicos explicados nesta seo j foram mencionados
anteriormente. Dessa maneira, foi possvel se familiarizar mais com o ambiente que se
pretende simular no sistema de controle semafrico desenvolvido neste trabalho. A
seguir, ser verificado o conceito de fila, mais um tema dentro desse contexto.





39
4.3 Filas veiculares em interseo
Conforme visto no captulo anterior, algumas tcnicas de controle de trfego
dependem das filas, seja para utiliz-las como parmetro do sistema ou como uma das
variveis a ser otimizada. As filas fazem parte do dia-a-dia de condutores de veculos e
so conseqncias naturais dos semforos nas intersees. Por isso merecem destaque e
sero pormenorizadas para melhor entender seus conceitos.
Analogamente, a formao de uma fila de veculos pode ser comparada a um
sistema de atendimento a determinado servio [10]. No caso de uma interseo isolada,
entende-se que quando o semforo est na fase vermelha, a chegada de veculos formar
uma fila, surgindo assim o sistema de atendimento, onde o servio a verificao de
que o tempo de verde seja suficiente para atender a todos os veculos que esto parados.
Nos sistemas de trfego, as chegadas de veculos so irregulares, isto , a
probabilidade de uma chegada em um estgio igual probabilidade de uma chegada
em qualquer outro estgio de mesma durao [10]. A Figura 4.8 mostra um grfico que
representa a variao de volume de trfego durante o perodo do dia em uma interseo,
em uma determinada rea urbana de uma cidade.


Figura 4.8: Grfico representando o volume do trfego durante 24 horas. [57]



40
Diversos estudos tm sido realizados para caracterizar as filas em intersees
isoladas. necessrio, tambm, representar o fluxo real de veculos na malha viria.
Para isso, a expresso mais usada que define o atraso de veculos em decorrncia de
uma fila em uma interseo com semforo, a de Webster [63], a qual ser tratada
ainda neste captulo.
O problema das filas deve ser contornado reduzindo ao mximo o tempo global de
espera dos mltiplos usurios em uma interseo. Para isso necessrio determinar um
ciclo semafrico fixo. Alguns dados devem ser coletados para dimensionar este ciclo
como os volumes de trfego em cada sentido para cada uma das vias que se interceptam
naquele ponto. Como se sabe, o volume de trfego pode variar no decorrer do dia e
tambm no decorrer da semana, ento este dado conseguido atravs de uma mdia
diria (tomada ao longo de um ano) por um volume mdio dos perodos de pico.
A capacidade de atendimento de uma fila em um semforo depende tambm de
vrios outros fatores como a composio do trfego, a geometria da interseo, as
condies de converso, etc. A capacidade para uma fase verde de mesma durao
tende a ser maior quando a converso direita permitida, como mostra a Figura 4.9.


Fig. 4.9: Semforo com Converso Direita [57].

Por outro lado, a capacidade de atendimento diminui em uma interseo quando o
raio de curvatura da trajetria pequeno, obrigando uma sensvel reduo na
velocidade. Um exemplo disto so nibus e caminhes, que possuem comprimentos
relativamente grandes e menor acelerao do que automveis, fazendo com que gastem
mais tempo para atravessar uma interseo. Todos estes parmetros interferem
diretamente na formao de filas e resultam em uma maior influncia em relao a
avaliao do atraso.
A Figura 4.10, representa um diagrama de espaotempo do escoamento do trfego
numa interseo com semforo comum. Podemos verificar que no incio os veculos


41
esto em movimento e o semforo est na fase verde. Logo aps, observamos que na
fase amarela um veculo passa por esta, representando o fim do tempo de passagem de
veculos para este semforo. No tempo da fase vermelha, ocorre a formao de uma fila,
sendo que no incio da nova fase verde a fila est formada. Existem veculos que no
enfrentam esta fila, no sofrendo assim nenhum tipo de atraso.


Fig. 4.10: Diagrama espao-tempo da passagem de veculos em uma interseo [57].

Ainda descrevendo o diagrama, quando o veculo 1 chega prximo a interseo, o
sinal fica vermelho e este comea a diminuir sua velocidade at parar. Os outros
veculos (2, 3, 4,...) tambm executam o mesmo procedimento, parando um atrs do
outro. Quando o semforo entra na fase verde, o condutor do veculo 1 comea a
acelerar at atingir a velocidade normal de movimento. Logo aps, o veculo 2 tambm
executa o mesmo processo, acelerando at atingir sua velocidade normal de circulao,
o mesmo ocorrendo com os demais condutores.
A partir disto possvel definir alguns itens, dos quais esto em negrito os de maior
importncia, a fim de verificar uma avaliao dos modelos de atraso de veculos:
Fluxo de Saturao (s): h muitas divergncias a respeito do conceito de fluxo de
saturao. Neste trabalho, ser utilizada uma definio mais prtica e bastante
empregada em programao semafrica ou determinao desse parmetro em campo. O
s pode, ento, ser entendido como a taxa mxima de descarga de veculos,
representativo do comportamento veicular observado ao longo de vrios ciclos
semafricos e, referente somente ao perodo do verde em que se observa uma
estabilizao do fluxo de descarga [47], conforme Figura 4.11. Este dado importante


42
para descobrir qual a taxa mxima de descarga de automveis das filas formadas em
uma determinada faixa de pista.


Figura 4.11: Variao da descarga de veculos com verde totalmente saturado. [5]
Tempo Perdido (l): como podemos ver na Figura 4.10, a soma do tempo perdido
no incio do sinal verde (l
1
) com o tempo perdido no final (l
2
), j na fase amarela.
Quando os veculos arrancam, existe um tempo para a percepo do motorista e a
acelerao do automvel, gerando l
1
. Existindo ainda veculos na fila no final do sinal
verde, estes usam a fase amarela para atravessar a interseo, porm a taxa de descarga
neste instante menor, pois os veculos reduzem sua velocidade, perdendo-se um certo
tempo l
2
. Podemos ento definir que o tempo perdido dado por:
l = l
1
+ l
2
. (4.9)
Tempo de Verde Efetivo (g): o tempo durante o qual o semforo est com a luz
verde acesa definido como tempo de verde (k). Levando em considerao o tempo
perdido na arrancada dos automveis quando o sinal fica verde, este passa a ser o tempo
de verde lquido. Porm, o tempo de verde efetivo ser definido como o intervalo de
tempo realmente aproveitado pelos veculos, ou seja, o tempo em que o verde (k) e o
amarelo (a) esto acesos, subtrado do tempo perdido total (l), como segue:
g = k + a l. (4.10)
Percentual de Verde Efetivo (): a relao entre o tempo de verde efetivo (g) e o
ciclo C, soma dos tempos de verde, amarelo e vermelho, sendo atribudo a uma faixa de
uma via:

C
g
= . (4.11)
Grau de saturao (x): a relao entre o nmero mdio de veculos que chegam ao
cruzamento durante um ciclo atravs de uma faixa e o nmero mximo de veculos que


43
podem ser atendidos pelo cruzamento atravs desta faixa durante um ciclo. Podemos
ento definir a seguinte equao:

s C
q C
s g
q C
atendidos vec de mx n
fila a chegam que vec de n
x
. .
.
.
.
. .
.

= = = (4.12)

s
q
x
.
= (4.13)
Onde q a demanda de fluxo de veculos e s o fluxo de saturao de veculos da faixa
considerada.

4.4 Temporizao de semforos isolados
Para se conseguir a temporizao adequada em uma determinada interseo,
necessrio definir um tempo em segundos do ciclo e a partir da encontrar, atravs de
clculos, os tempos de verde e de amarelo, sendo o restante, o tempo de vermelho. No
sistema de controle semafrico desenvolvido neste trabalho, esses parmetros sero
calculados pelo sistema de acordo com a demanda de fluxo do trfego simulado de
modo a otimizar o atraso veicular. A Figura 4.12 a seguir, detalha as fases (vermelho,
amarelo e verde) de um ciclo semforico.


Figura 4.12: Ciclo semafrico. Adaptado de [57].

Pelo grau de importncia que este assunto tem para o trabalho, esta seo ir
destacar, ainda, alguns mtodos utilizados para se calcular os tempos das fases amarela
e verde. A fase amarela o sinal de alerta para os condutores. Quando o semforo est
nessa fase os veculos que j alcanaram a interseo atravessam-na, enquanto que os
outros veculos reduzem a velocidade e param. Para o clculo do tempo da fase amarela
(a), Olson e Rothery [40] sugerem a adoo de um mtodo, dado por:


u
d L d
t a
e f
r
+ +
+ = . (4.14)


44
Onde:
t
r
tempo de reao do motorista (s);
d
f
distncia necessria para frear o veculo a partir da velocidade v (em metros);
L largura da interseo (metros);
d
e
comprimento do veculo;
u velocidade de aproximao do veculo (m/s).

No caso da durao da fase verde, vrias tcnicas podem ser mencionadas para
definir sua proporo de tempo no ciclo. Com a finalidade de entender o problema
interessante relevar primeiramente a idia de Wohl e Martin [65].
Segundo eles, o tempo de amarelo une-se fase verde, trabalhando, ento, com o
tempo de verde efetivo (g). Os tempos de abertura para cada direo devem ser
proporcionais aos fluxos nelas observado. Assim, para cada artria seleciona-se o
sentido de maior intensidade de trfego, obtendo-se, dessa forma, os fluxos dominantes.
Para o caso de uma interseo com duas direes (horizontal e vertical, por exemplo) de
trfego necessrio determinar inicialmente os tempos de verde efetivos g
1
e g
2
para
cada direo. Admitindo-se a proporcionalidade de tempos de verde em relao aos
fluxos q
1
e q
2
, tem-se:

e
C
q q
q
g
+
=
2 1
1
1
. (4.15)

e
C
q q
q
g
+
=
2 1
2
2
. (4.16)
sendo Ce a parte til do ciclo C, dada por:
( )
2 1
l l C C
e
+ = . (4.17)
Observa-se, atravs da equao 4.17, que a parte til do ciclo obtida subtraindo os
tempos inteis para cada uma das vias. Assim o tempo da fase verde (k) pode ser
determinado pela equao:
l a g k + = (4.18)
onde g o verde efetivo, a o tempo da fase amarela e l (l
1
+ l
2
) o tempo perdido na
interseo.
Entendida a definio do tempo de verde segundo Wohl e Martin, verifica-se agora
o tratamento dado por Webster ao caso da determinao de tempo da fase verde.


45
Sua tcnica consiste em assumir o perodo de verde efetivo proporcional s taxas de
ocupao das fases envolvidas. O tempo de verde efetivo total da interseo deve ser
dividido para cada fase i, na proporo da mxima taxa de ocupao y
i
, que a relao
entre o fluxo observado q e o fluxo de saturao s de cada aproximao da interseo,
ou seja:

s
q
y = (4.19)
O procedimento do mtodo consiste nas seguintes etapas:
1. Estimar o fluxo q
i
e o fluxo de saturao s
i
para cada aproximao i da interseo.
2. Calcular a equao 4.19 para cada aproximao e selecionar o maior valor de y
para cada estgio da interseo.
3. Somar os valores y escolhidos de cada estgio de forma a obter

=
=
n
i
i
y Y
1
, onde n
o nmero de estgios da interseo.
4. Com base nos tempos estabelecidos de estgios para pedestres, tempos de
vermelho total e etc. estimar o tempo de vermelho de segurana por estgio R.
5. Calcular o tempo perdido total por ciclo:
L = n.l+R (4.20)
lembrando que l o tempo perdido por estgio devido a atraso nas partidas e no
aproveitamento do tempo de amarelo.
6. Calcular o tempo de ciclo pela equao:

Y
L
C

+
=
1
5 . 5 , 1
. (4.21)
Esta expresso, aplicada no plano a tempos fixos, permite temporizar o semforo
isolado visando a fornecer o tempo de ciclo timo para que a interseo tenha o menor
tempo de atraso veicular possvel.
7. Subtrair o tempo perdido total L do tempo de ciclo C para obter o tempo de verde
disponvel e dividi-lo na razo dos valores de y, isto :
( ) L C
Y
y
g =
1
1
(4.22)
M
( ) L C
Y
y
g
n
n
= . (4.23)


46
8. Adicionar l segundos para cada tempo de verde efetivo, g
1
, ... , g
n
e subtrair o
tempo de amarelo (a) para definir os tempos de verde do plano.

4.5 Determinao do atraso em intersees
isoladas
O atraso veicular em intersees semaforizadas pode ser definido, de forma
genrica, como a demora causada aos veculos, em razo do tempo perdido no perodo
de vermelho, assim como devido aos tempos de acelerao e desacelerao inerentes
formao e destruio da fila no cruzamento [32]. Ele est relacionado com o consumo
de combustvel e o tempo de viagem perdido, sendo, portanto, um dos indicadores mais
adequados para avaliar o desempenho da programao semafrica, ser ele o parmetro
avaliado no simulador deste trabalho.
A primeira e provavelmente mais usada expresso para o atraso foi obtida por
Webster [63], em 1958. Ela representa o atraso mdio por veculo, que pode ser obtida
pela mdia aritmtica dos atrasos dos veculos que cruzam a interseo:

( )
( ) ( )
( )

. 5 2
3
1
2
2 2
65 , 0
1 . . 2 . 1 . 2
1 .
+

|
|

\
|

= x
q
C
x q
x
x
C
d (4.24)
onde:
d atraso mdio por veculo (s);
percentual de verde efetivo ( = g /C);
x grau de saturao;
C durao do ciclo (s);
q demanda de fluxo (vec./s).

Quando o trfego pode ser considerado uniforme, ou seja, o fluxo continuo, o
atraso pode ser representado pelo primeiro termo da equao 4.24. J o segundo termo
conhecido como atraso randmico, obtido atravs de um modelo de filas, onde os
veculos chegam aleatoriamente. O terceiro termo da equao tem significado emprico,
sendo que considerado um termo de correo desenvolvido por Webster a partir de
regresses de dados gerados por simulao atravs de computador (usou o Pilot Model
Automatic Computing Engine ACE) [57].


47
Existe, ainda, uma verso simplificada da expresso original do atraso, sugerida por
Webster, que tambm pode ser utilizada, qual seja:

( )
( ) ( )
(

=
x q
x
x
C
d
1 . . 2 . 1 . 2
1 .
10
9
2 2

(4.25)

4.6 Concluso
Os assuntos aqui apresentados explicaram termos tcnicos, teorias utilizadas e
alguns conceitos importantes sobre o comportamento do trfego veicular, que servem de
base para o entendimento do sistema simulador de trnsito do trabalho e so
indispensveis a qualquer projetista de trfego.
Dentre estes assuntos, no decorrer da anlise de intersees isoladas, alguns podem
ser destacados pelo grau de relevncia que eles tm para o trabalho: a definio de fluxo
de saturao, que bastante importa na aplicao de um controle de trfego em tempo
real; a temporizao dos semforos (fase verde, amarela e vermelha), para que se possa
efetuar um correto e orientado dimensionamento do ciclo semafrico, no plano de
tempos fixos; a determinao do atraso veicular, que ir servir como parmetro de
avaliao do programa; entre outros termos tcnicos que sero usados no projeto.
Nos captulos 5 e 6 seguintes sero apresentados a proposta do projeto, a fase de
desenvolvimento, os testes realizados, os resultados obtidos e as perspectivas futuras
para a cidade de Natal-RN, bem como para estudos a serem realizados nessa rea. Todo
o exposto at aqui ir servir de base para a implementao do Semforo de Trnsito
Operando sob Demanda de Fluxo, o sistema de controle proposto no trabalho.

48

Captulo 5
Desenvolvimento do Projeto

Para realizar o controle semafrico operando sob demanda de fluxo de veculos,
necessrio coletar dados em campo, como a concentrao (k) de veculos e sua
velocidade (u), ou seja, o fluxo veicular. Neste trabalho, estes dados foram obtidos a
partir do volume de trfego real de uma das vias controladas e estimado para as demais
vias. A partir dessa coleta de dados, as variveis do sistema so processadas atravs do
simulador desenvolvido para este fim.
Este captulo ir apresentar todos os passos realizados para a implementao do
simulador e do algoritmo de controle semafrico. Da escolha da malha viria a ser
simulada apresentao dos resultados obtidos com os testes executados no programa
de controle semafrico.

5.1 Malha viria escolhida
Inicialmente foi definida a malha viria na qual ser simulado o controle do trfego.
Esta malha representa um pequeno trecho da Av. Senador Salgado Filho, da cidade de
Natal-RN, que parte do cruzamento com a Av. Bernardo Vieira e se estende at 300
metros aps o cruzamento com a Av. Amintas Barros, conforme Figura 5.1.
As distncias mostradas entre as intersees so baseadas nas distncias reais da
avenida, extradas do Google maps [67], site que disponibiliza mapa virtual via satlite
de todo planeta. A Av. Bernardo Vieira, que se encontraria esquerda, no visualizada
na figura, pois a malha considerada somente a partir dela, no sendo necessrio
represent-la, visto que sua interseo semafrica no ser controlada.
Como se pode perceber, trs intersees sero controladas. O cruzamento da Av.
Senador Salgado Filho com as Avenidas Antnio Baslio, Nascimento de Castro e
Amintas Barros, respectivamente, da esquerda para a direita.
49

Figura 5.1: Trecho Simulado da Av. Senador Salgado Filho.

A escolha desta malha se explica porque este trecho contm uma das principais e
mais movimentadas avenidas da cidade de Natal-RN, alm de ser um dos pontos mais
crticos do trfego, nesta cidade, nos horrios de pico.
O software representa a malha atravs de um conjunto de vrtices (ns) interligados
por arestas direcionadas. A Figura 5.2 representa como a malha est esquematizada.


Figura 5.2: Representao esquemtica da malha viria simulada modelo
TRANSYT.

Os vrtices I
i
representam as intersees semaforizadas. So os semforos
existentes nestes vrtices que devem ser controlados pelo sistema, de acordo com a
demanda de fluxo das vias. As arestas direcionadas (setas) so as vias e esto apontando
exatamente no sentido do fluxo dos veculos.

300 metros 300 metros 300 metros 300 metros
200 metros
200 metros
N
S
O
L
L
O
I
1
I
2
I
3

50
Outra etapa importante a se definir na malha viria quais so os estgios de cada
semforo, nas intersees. Para isso, basta lembrar de alguns conceitos explicados na
seo 4.2 do captulo anterior, que trata justamente da semaforizao de intersees
isoladas. Com estes conceitos em mente, aplicados situao real destes cruzamentos,
na Av. Salgado Filho, percebe-se que todas estas intersees utilizam semforos de dois
tempos, ou seja, dois estgios, conforme mostra a Figura 5.3.

Estgio 1 Estgio 2


Figura 5.3: Estgios dos semforos.

O objetivo do simulador poder, nesta malha, comparar, analisar, obter estatsticas,
entre outras utilidades, das estratgias de controle semafrico a tempos fixos, em tempo
real e outras. Neste trabalho, o simulador desenvolvido gera estatsticas e mostra
resultados como o tempo de atraso e o nmero de paradas de acordo com a
temporizao ajustada nos semforos de cada interseo. As estratgias comparadas no
simulador foram a temporizao fixa, calculada atravs do mtodo de Webster e a
estratgia a tempos fixos baseada no software TRANSYT.
As duas estratgias operam sob demanda de fluxo, sendo que a primeira considera
apenas uma interseo para o clculo da temporizao de cada semforo da rede. A
estratgia de controle a tempos fixos baseada no mtodo TRANSYT, embora necessite
de constantes atualizaes, opera levando em considerao toda a rede viria, tentando
ajustar os tempos de verde e defasagens de modo a minimizar o atraso e o nmero de
paradas totais da malha em questo.

5.2 Desenvolvimento
Todo o programa foi desenvolvido e testado em Java, atravs do Eclipse, ferramenta
de desenvolvimento de software para vrias linguagens e bastante conhecido por
desenvolvedores de sistemas. O cdigo do programa se encontra em anexo.
51
5.2.1 Descrio do programa
A malha viria foi representada, no programa, por uma estrutura de dados
semelhante a dos grafos, onde foram criadas as classes Aresta e Vertice, figurando como
as vias e as intersees respectivamente. Foi ainda construda, nessa estrutura, a classe
Ciclo, a qual contm a temporizao semafrica calculada para fornecer o controle
semafrico.
Cada Aresta contm vrios atributos necessrios ao sistema como o fluxo e o fluxo
de saturao e o atraso e o nmero de paradas sofridas em decorrncia dos semforos,
sendo que estes so calculados e atribudos aresta somente aps o processamento da
estratgia no simulador. Alm disso, possui alguns mtodos importantes para o clculo
dos atrasos como o tempoVerdeEfetivo(), que calcula o tempo de verde efetivo para a
via em questo.
Cada Vrtice contm um Ciclo e outras informaes como as vias horizontais que
chegam (arestas) e ainda um mtodo para se calcular sua defasagem.
Todas essas classes so interligadas na classe MalhaViaria, que em seu prprio
construtor define a malha viria proposta neste trabalho fazendo a linkagem das vrias
arestas e vrtices nela existentes. nesta classe que o ndice de performance da rede
semafrica calculado, atravs de um mtodo nela existente getPI(). Dentro desse
mtodo so calculados os atrasos e nmeros de paradas, que so imediatamente
atribudos a sua respectiva via (aresta).
H tambm a classe Simulador, que responsvel por executar os testes necessrios.
A ela foi adicionado um timer, que serve apenas como um cronmetro que poder ser
usado futuramente em uma simulao de sistema controlador de trfego em tempo real.
A outra parte do programa referente ao algoritmo gentico, utilizado para otimizar
o sistema semafrico a tempos fixos. Ele dividido em trs classes: uma caracterizando
o individuo (Individuo), outra a populao (Populacao) e outra o prprio algoritmo
gentico (AlgoritmoGenetico), que contm o mtodo que busca o melhor indivduo da
populao, o qual minimizar a funo objetivo do problema.
A classe Individuo, contm as caractersticas essenciais do indivduo, como o seu
cromossomo e suas restries e alguns mtodos caractersticos do algoritmo gentico
como a avaliacao(), o crossover(Individuo) e o mutacao().
52
O mtodo avaliacao(), calcula o ndice de performance do indivduo da populao e
atribui uma aptido ao indivduo de acordo com o resultado de sua avaliao. A
avaliao feita atravs do mtodo getPI() da classe MalhaViaria.
O mtodo crossover(Individuo) realizado conforme sua probabilidade de ocorrer,
que especificada no algoritmo gentico. Ele consiste no cruzamento de dois indivduos
da populao, selecionados por um mtodo especfico com esta finalidade. O intuito do
mtodo o de melhorar o indivduo ensejando uma melhor soluo para o problema.
A mutao outro mtodo que somente ocorre com determinada probabilidade.
Vrias tcnicas existem para realizar esse procedimento, porm a tcnica utilizada por
este programa o swap, que consiste na troca de um bit por outro em diferentes pontos
do cromossomo. Este mtodo serve para explorar outros espaos de soluo do
problema, onde o algoritmo pode encontrar melhores valores para se minimizar mais a
funo.
Ainda descrevendo as classes do algoritmo gentico, vale destacar a classe
Populao que contm o mtodo selecaoIndividuo(). Este mtodo responsvel por
escolher os indivduos que iro realizar o cruzamento. Existem vrias tcnicas de
seleo dos indivduos, mas este mtodo realiza a tcnica da roleta, onde os indivduos
mais aptos da populao tero uma probabilidade maior de serem escolhidos. Assim, o
algoritmo gentico usa a idia da seleo natural, conforme ser explicado na seo que
trata da definio de algoritmo gentico.
Com essa breve descrio do programa, pode-se ento especificar as estratgias
implementadas para o controle semafrico que foram executadas e testadas pelo
programa.

5.2.2 Estratgias de Controle
As estratgias de controle elaboradas neste projeto so a temporizao fixa,
calculada atravs do mtodo de Webster e o controle semafrico a tempos fixos baseado
no software TRANSYT.
Estas tcnicas consistem em encontrar uma temporizao adequada para o ciclo
semafrico de cada uma das intersees de acordo com a demanda de fluxo das vias da
rede viria.
Inicialmente, preciso definir um tempo de ciclo semafrico comum para as trs
intersees da malha viria em que as duas estratgias atuam, calculando sua
53
temporizao. Para o clculo deste ciclo ser considerada apenas uma interseo, o
cruzamento Av. Sen. Salgado Filho Av. Antnio Baslio. As demais intersees
aproveitaro o tempo de ciclo encontrado aqui. Ser, ento, utilizado o procedimento do
mtodo de Webster, visto no captulo anterior. O primeiro passo desta tcnica estimar
o fluxo q
i
e o fluxo de saturao s
i
para cada aproximao i da interseo.
A Figura 5.4 representa o esquema desta interseo isoladamente, chamada N1,
com suas aproximaes numeradas para que se possa analisar melhor cada uma delas.


Figura 5.4: Representao esquemtica da interseo Av. Salgado Filho Av. Antnio
Baslio

As arestas 1, 2, representam a Av. Sen. Salgado Filho nos sentidos de Oeste-Leste
(O-L) e Leste-Oeste (L-O), respectivamente. As arestas 3 e 4 representam a Av.
Antnio Baslio nos sentidos Norte-Sul (N-S) e Sul-Norte (S-N), respectivamente. A
tarefa agora estimar um fluxo de veculos q
i
e um fluxo de saturao s
i
para cada uma
destas arestas.
Nesta etapa, foram utilizados dados do relatrio de volume de trfego da semana
29/06/2009 a 03/07/2009, adquiridos atravs de dados levantados pelo Departamento de
Engenharia da SEMOB(Secretaria Municipal de Mobilidade Urbana) . Esses dados so
apresentados atravs da Figura 5.4.
Estes valores so referentes contagem de veculos durante 24 horas, na Av.
Salgado Filho, apenas no sentido L-O (aresta 2). A partir deles sero obtidos os fluxos
de cada uma das arestas envolvidas na malha viria. Todos os clculos foram feitos a
partir do volume de trfego do dia 03/07, por ser o de maior nmero de veculos, ou
seja, maior trnsito.
N1
1
2
3
4
54
Fluxo
22429
24629
25179
25719
26130
20000
21000
22000
23000
24000
25000
26000
27000
29/6/2009 30/6/2009 1/7/2009 02/072009 03/072009
Data
V
e

c
u
l
o
s
Fluxo

Figura 5.5: Volume de Trfego da Av. Sen. Salgado Filho do dia 29/06 a 03/07
Sentido Centro (L-O)

Para obter o fluxo desta via, basta dividir o nmero total de veculos contados ao dia
por 24, obtendo assim, o fluxo de veculos da Av. Senador Salgado Filho, sentido L-O
(aresta 2):
h vec q . 75 , 1088
24
26130
2
= = (5.1)
Os demais fluxos foram obtidos atravs de estimativas, realizadas a partir de
observaes feitas em campo, no local. O resultado destas observaes de que o fluxo
q
2
foi o maior entre as vias. O fluxo veicular da aresta 1, q
1
, aproximadamente 10%
menor que o fluxo da aresta 2, e os fluxos das arestas 3 e 4 foram aproximadamente
iguais e 60% menores que o fluxo da aresta 1. Sendo assim, os fluxos de cada
aproximao i, foram:
875 , 979 9 , 0
2 1
= = q q h vec q . 875 , 979
1
= (5.2)
95 , 391 4 , 0
1 4 3
= = = q q q h vec q . 95 , 391
3
= ; h vec q . 95 , 391
4
= (5.3)
Resta estimar agora o fluxo de saturao de cada uma das arestas. Como o fluxo de
saturao nesse trabalho considerado como sendo a taxa mxima de descarga de
veculos durante o perodo de verde efetivamente aproveitado, os dados obtidos aqui
foram observados em campo nos horrios de maior congestionamento do trfego
durante alguns perodos de ciclo. O resultado obtido foi estimado em aproximadamente:
55
s
1
= 2400 vec./h; s
2
= 2400 vec./h; s
3
= 1600 vec./h; e s
4
= 1600 vec./h. Valores
arredondados.
Com os valores estimados de fluxos q
i
e fluxos de saturao s
i
de cada aproximao
i do N1, segue-se o procedimento de Webster calculando a taxa de ocupao y
i
de cada
aproximao, conforme a equao 4.19 do captulo anterior. O tempo de verde efetivo
total da interseo deve ser dividido na proporo dessa taxa. Tem-se ento:

4
4
4
3
3
3
2
2
2
1
1
1
; ; ;
s
q
y e
s
q
y
s
q
y
s
q
y = = = = . (5.4)
O resultado obtido aproximadamente: y
1
= 0,41; y
2
= 0,45; y
3
= 0,25; e y
4
= 0,25.
Como j se percebe a mxima taxa de ocupao a da aresta 2, por esse motivo ser ela
a beneficiada com o maior tempo de verde efetivo. Como as intersees so de dois
estgios (Figura 5.3) apenas, a aresta 1 tambm ter o mesmo tempo de verde, apesar de
ter uma taxa de ocupao menor.
A prxima etapa, a fim de encontrar o ciclo timo para as intersees, escolher o
maior y de cada estgio e som-los, ou seja, escolher o maior entre y
1
e y
2
e o maior
entre y
3
e y
4
. Feito isso obtm-se o Y = 0,45 + 0,25 = 0,7.
Estima-se agora o tempo perdido por ciclo L = n.l + R, onde n o nmero de
estgios da interseo, l, o tempo perdido devido ao atraso nas partidas e no
aproveitamento do tempo de amarelo e R, o tempo de segurana de vermelho, perodo
em que todos os semforos esto vermelhos por questes de segurana.
Para esta rede viria adotou-se l = 4 s e R = 4 s, obtendo: L = 2.4 + 4 = 12. Com
isso, finalmente possvel encontrar um tempo de ciclo timo para as intersees desta
malha. Usa-se, ento, a frmula de Webster, equao 4.21, encontrando:
s
Y
L
C 77
7 , 0 1
5 12 . 5 , 1
1
5 . 5 , 1

+
=

+
= (5.5)
Este o ciclo encontrado do N1, cruzamento da Av. Salgado Filho Av. Antnio
Baslio. Os ciclos das outras duas intersees sero considerados iguais a este, pois
considerou-se que os fluxos e fluxos de saturao das Avenidas Nascimento de Castro e
Amintas Barros so iguais aos da Av. Antnio Baslio.
Com o tempo de ciclo definido, possvel aplicar as estratgias de controle de
trfego operando sob demanda de fluxo a partir da temporizao deste ciclo. A primeira
estratgia a ser caracterizada a de Webster, que calcula uma temporizao do ciclo
fixa de cada interseo, sem considerar todo o conjunto da malha viria.
56
Na realidade, a temporizao realizada nestes mtodos consiste em definir o tempo
de verde de cada estgio. interessante j ter definido o tempo de amarelo, j que este
utilizado no clculo daquele. Para encontrar o tempo de amarelo, foi utilizada a equao
4.14:

u
d L d
t a
e f
r
+ +
+ = (5.6)
onde:
t
r
tempo de reao do motorista (s);
d
f
distncia necessria para frear o veculo a partir da velocidade v (metros);
L largura da interseo (metros);
d
e
comprimento do veculo;
u velocidade de aproximao do veculo (m/s).
Adotou-se t
r
= 2s; d
f
= 5 m; L = 15 m; d
e
= 4 m; e u = 12 m/s, valores aproximados
dos reais de maneira a facilitar o clculo. Econtrando-se ento o tempo de amarelo:
a = 4 s. (5.7)

5.2.2.1 Estratgia 1 Mtodo de Webster
Mais uma vez ser analisada apenas a primeira interseo, pois a temporizao aqui
encontrada ser aplicada s outras duas.
Este mtodo define o tempo de verde efetivo para cada estgio. Para encontr-los,
utiliza-se a equao 4.22 e somando-se l e subtraindo o tempo de amarelo para cada
estgio, chegando a:
( ) ( ) s L C
Y
y
g 42 12 77
7 , 0
45 , 0
1
1
= = (5.10)
( ) ( ) s L C
Y
y
g 23 12 77
7 , 0
25 , 0
3
2
= = (5.11)
A representao da temporizao semafrica faz-se atravs de um Diagrama de
Ciclo, como ilustra a Figura 5.5. O Diagrama de Ciclo apresentado indica os tempos
reais (quanto tempo cada semforo est de cada cor).

Figura 5.5: Diagrama de Ciclo. Adaptado de [62]
57
Mais adiante na seo referente aos resultados obtidos no simulador, sero
apresentados os atrasos e nmeros de paradas de veculos, alm de outras informaes
relativas aos testes realizados com esta temporizao semafrica aplicada a cada uma
das intersees da malha viria simulada.

5.2.2.1 Estratgia 2 Controle semafrico a tempos fixos
Para o controle semafrico de plano a tempos fixos atuando sob a demanda de fluxo,
far-se- a otimizao de funo objetivo semelhante a do sistema TRANSYT, a
Performance ndex (PI), equao 3.1 Captulo 3. O mtodo de otimizao utilizado
para tanto foi o algoritmo gentico, o qual ser tratado mais a frente, na ltima seo
deste captulo.
Na realidade a funo objetivo, aqui adotada, uma forma simplificada daquela
equao. Ela foi obtida a partir do Manual de Semforos [8], na seo que trata do
TRANSYT, e assim definida:
( )

=
+ + =
n
i
i i i
KS d d PI
1
'
(5.12)
onde:
n nmero de links da rede;
d
i
atraso mdio uniforme no link i (s);
d

i
atraso mdio aleatrio no link i (s);
K fator de penalidade de parada;
S
i
nmero mdio de paradas no link i.

O fator de penalidade de parada K foi adotado como 1, e por isso nem sequer est
presente na frmula contida no mtodo getPI() da classe MalhaViaria do programa. O
d
i
, dada a periodicidade dos fluxos nos cruzamentos da rede, dado por:
( )

=
n
t
t
c
i
D A
A
t
d
1
(5.13)
em que:
n nmero de unidades de tempo em que o ciclo subdividido;
A
t
chegadas acumuladas no intervalo t;
D
t
partidas (escoamento) acumuladas no intervalo t;
A
c
total de chegadas durante o ciclo;
58
t comprimento do intervalo de tempo (ciclo/n).

Vale dizer que o valor obtido com o clculo desta expresso atribudo a aresta i e
entendido como o atraso mdio deste link.
O A
t
foi calculado no programa atravs da expresso obtida na equao 4.12, que
dada por:

n
t
q C A
i t
. . = (5.14)
O D
t
foi calculado no programa atravs da expresso tambm obtida na equao
4.12, que dada por:

n
t
s C D
i i t
. . = (5.15)
O A
c
deduzido facilmente a partir da equao 5.14 e dado por:

i c
q C A . = (5.16)
O d

i
um componente aleatrio do atraso, para considerar o efeito estocstico dos
fluxos de chegada e dado por:

( )
i
i
i
x
x
d

=
1 . 4
2
'
(5.17)
onde:
x
i
grau de saturao do link i.

O nmero mdio de paradas no link i (S
i
) dado por:

=
=
o
r
t
t t
t i
a
C
S
1
(5.18)
onde:
a
t
chegada de veculos no intervalo t (
o r
t t t );
C tempo de ciclo;
t
r
instante de incio do perodo vermelho do link i;
t
o
instante no perodo verde do link i no qual a fila se torna nula.

Com a expresso da funo objetivo do problema totalmente definida, resta somente
aplicar o algoritmo gentico para minimizar esta funo. Procura-se neste algoritmo
59
alterar os valores de tempo de verde dos ciclos e da defasagem de cada interseo, e
assim encontrar a temporizao tima para a malha viria em questo.
A seguir so apresentados os resultados de ambas as estratgias e partir deles alguns
comentrios so realizados.

5.2.3 Resultados
Nesta etapa do projeto alguns testes bastante pertinentes foram feitos no simulador e
so apresentados aqui apenas dois, que so suficientes para comprovar a eficincia das
estratgias de controle propostas neste trabalho.
Primeiramente, importante frisar que todos os clculos realizados a fim de
encontrar os fluxos, os fluxos de saturao das vias e o tempo ciclo semafrico,
serviram para construo da estrutura de dados que representa a malha viria do trecho
da Av. Sen. Salgado Filho, a qual chamada simulador. Ambas as estratgias de
controle semafrico operando sob a demanda de fluxo veicular so aplicadas a esta
mesma estrutura.
A metodologia de testes adotada para a primeira estratgia foi aplicar a
temporizao calculada pelo mtodo de Webster ao simulador. Assim, os valores de
temporizao calculados puderam ser aplicados malha viria, possibilitando encontrar
um ndice de performance para estes valores, alm de saber os parmetros de avaliao
da estratgia, como os atrasos das vias e o nmero de paradas. As tabelas 5.1 e 5.2 a
seguir, apresentam os resultados da estratgia 1 aplicada malha viria.
Tabela 5.1: Informaes relativas s Intersees Estratgia 1
Durao dos Intervalos
Interseo Defasagem
Verde Amarelo Vermelho
Av. Salgado Filho Av. Antnio Baslio 0 42 4 31
Av. Salgado Filho Av. Nascimento de Castro 0 42 4 31
Av. Salgado Filho Av. Amintas Barros 0 42 4 31

Tabela 5.2: Informaes relativas aos links Estratgia 1
Arestas Atraso Nmero de paradas
1 11.068478 537.3052
2 11.068476 483.57468
3 17.077078 381.76947
4 17.077078 381.76947
5 11.068478 537.3052
6 11.068476 483.57468
7 17.077078 381.76947
60
8 17.077078 381.76947
9 11.068478 537.3052
10 11.068476 483.57468
11 17.077078 381.76947
12 17.077078 381.76947
Total 168.87332 5353.257
PI 5532.5

Como se pode perceber a temporizao aplicada s trs intersees foi a mesma,
pois as caractersticas, como o fluxo e fluxo de saturao, das vias que chegam a cada
uma das intersees era a mesma, gerando assim os mesmos tempos semafricos para
os cruzamentos da malha.
Outro detalhe o valor da defasagem, que zero para todas as intersees. Isto
ocorre, pois a primeira estratgia s leva em considerao a interseo isoladamente, a
defasagem um parmetro que no calculado por esta tcnica.
Os resultados da segunda estratgia aplicada a esta malha viria so apresentados a
seguir, nas tabelas 5.3 e 5.4.
Tabela 5.3: Informaes relativas s Intersees Estratgia 2
Durao dos Intervalos
Interseo Defasagem
Verde Amarelo Vermelho
Av. Salgado Filho Av. Antnio Baslio 0 52 4 21
Av. Salgado Filho Av. Nascimento de Castro 59 43 4 30
Av. Salgado Filho Av. Amintas Barros 21 48 4 25

Tabela 5.4: Informaes relativas aos links Estratgia 2
Arestas Atraso Nmero de paradas
1 7.9060545 14.13961
2 7.9060535 12.725649
3 20.239502 142.52728
4 20.239502 142.52728
5 10.752234 70.69805
6 10.752235 63.628246
7 17.39332 50.902596
8 17.39332 50.902596
9 9.171023 0.0
10 9.171024 0.0
11 18.974531 157.79805
12 18.974531 157.79805
Total 168.87334 863.6474
PI 1029.9

61
Comparativamente, ntida a diferena entre os ndices de performance das duas
estratgias. Estatisticamente houve melhora de mais de 80% nos nmeros de paradas e
no ndice de performance. Isso implica que o algoritmo gentico conseguiu levar em
considerao toda a malha viria e ajustar a defasagem e os tempos de verde otimizando
a temporizao semafrica em cada interseo.
A seguir feita uma breve explicao do que e como funciona o algoritmo
gentico.

5.2.4 Algoritmo Gentico

O algoritmo gentico uma tcnica de busca e otimizao. Ele a metfora da
teoria da evoluo das espcies iniciada pelo fisiologista e naturalista ingls Charles
Darwin, que citou a frase: As espcies evoluem pelo principio da seleo natural e
sobrevivncia do mais apto.
A tcnica foi desenvolvida por John Holland (1975) e seus alunos e popularizada
por David Goldberg (1989). A tcnica consiste na busca da melhor soluo para um
dado problema, tentando vrias solues e usando a informao obtida para conseguir
solues cada vez melhores. Um exemplo tpico de otimizao na vida cotidiana,
anlogo aplicao do algoritmo gentico, um telespectador atravs de ajuste na
antena da televiso otimizar a imagem buscando vrias solues at alcanar uma boa
imagem.
As tcnicas de otimizao, geralmente, apresentam: espao de busca, onde esto
todas as possveis solues do problema; funo objetivo, utilizada para avaliar as
solues produzidas, associando a cada uma delas uma nota.
O algoritmo gentico um algoritmo estocstico (no determinstico). Ele trabalha
com uma populao de solues simultaneamente. Utiliza apenas informaes de custo
e recompensa. No requer nenhuma outra informao auxiliar.
Algumas de suas caractersticas so a facilidade de serem implementados em
computadores, a boa adaptabilidade a computadores paralelos e a possibilidade de
serem hibridizados com outras tcnicas de otimizao de maneira simples. Alm disso,
ainda funcionam com parmetros contnuos ou discretos.
O algoritmo gentico descrito como uma populao de indivduos, que
manipulada por ele. Os indivduos dessa populao so possveis solues do problema.
Eles so combinados (crossover) uns com os outros, produzindo filhos que podem
62
sofrer ou no mutao. As populaes evoluem atravs de sucessivas geraes at
encontrar a soluo tima, que representada pelo melhor indivduo dessa populao.
Esses algoritmos podem ser aplicados com alto grau de eficincia em problemas
difceis de otimizao, quando no existe nenhuma outra tcnica especifica para
resolver o problema, em otimizao de funes numricas em geral, otimizao
combinatria, problema do caixeiro viajante, problema de transporte, alocao e
problemas de conexo (rvore, emparelhamento, caminhos) e at mesmo em otimizao
multiobjetivo.
O algoritmo gentico tradicional se realiza na seguinte sequncia de passos:
1. Gerar a populao inicial.
2. Avaliar cada indivduo da populao.
3. Enquanto critrio de parada no for satisfeito faa
3.1 Selecionar os indivduos mais aptos.
3.2 Criar novos indivduos aplicando os operadores crossover e mutao a uma
dada probabilidade.
3.3 Armazenar os novos indivduos em uma nova populao.
3.4 Avaliar cada indivduo da nova populao.
exatamente assim que est implementado neste trabalho.
Os termos usados do algoritmo gentico como indivduo (cromossomo), seleo de
indivduos, crossover e mutao, necessitam de uma caracterizao para entender o
algoritmo.
O indivduo uma estrutura de dados que representa uma possvel soluo para o
problema. Os parmetros do problema de otimizao so representados por cadeias de
valores, como por exemplo:
vetores de reais, (2.345, 4.3454, 5.1, 3.4);
cadeias de bits, (111011011);
vetores de inteiros, (1,4,2,5,2,8);
ou outra estrutura de dados.
Cada individuo possui uma aptido, nota associada ao indivduo que avalia quo boa
a soluo por ele representada. A aptido pode ser: igual funo objetivo, resultado
do escalonamento da funo objetivo; ou baseado no ranking do indivduo da
populao. A aptido aqui utilizada foi igual funo objetivo.
A seleo de indivduos uma imitao da seleo natural. Os melhores indivduos
(maior aptido) so selecionados para gerar filhos atravs de crossover e mutao. Esta
63
seleo feita, direcionando o algoritmo gentico para as melhores regies do espao de
busca.
Os tipos mais comuns de seleo so a seleo proporcional a aptido e a seleo
por torneio. A seleo utilizada na implementao do algoritmo deste projeto foi a
seleo proporcional a aptido. Esta tcnica de seleo consiste em atribuir uma
percentagem de chance maior de ser escolhido ao indivduo de maior aptido.
Por fim, o crossover o mtodo empregado na combinao dos indivduos
selecionados para a gerao de novos indivduos e a mutao a tcnica que permite a
explorao de reas desconhecidas do espao de busca. Estes so os principais
mecanismos de busca do algoritmo gentico e o tornam um mtodo realmente eficiente.

64

Captulo 6
Concluses e Perspectivas

Neste captulo, sero relatadas as concluses, as dificuldades encontradas e as
perspectivas futuras que o trabalho gerou.

6.1 Concluses
Este trabalho apresentou um estudo apurado sobre o trfego urbano direcionado aos
sistemas de controle do trnsito. Ao longo de seu desenvolvimento o trabalho segue
uma sequncia lgica, explicando inicialmente o problema e especificando possveis
solues. Em seguida, faz uma contextualizao desta rea de estudo apresentando os
Sistemas Inteligentes de Transportes, de onde se pode notar o campo no qual atua o
controle semafrico.
medida que os captulos vo passando, um estudo mais direcionado a rea
apresentado. O Controle de Trfego por rea, abordado nesta sequncia, j comea a
dar uma idia melhor de como ser elaborado o sistema semafrico de trfego operando
sob demanda de fluxo. Este tema apresenta, alm de sua definio, vrios sistemas que
atuam a sua maneira. em um desses sistemas que se baseou o projeto desenvolvido
aqui.
Antes do incio do desenvolvimento do sistema proposto, foram apresentados os
conceitos e termos tcnicos, alm de mtodos de clculos, utilizados na implementao
do programa.
Por fim, a etapa de desenvolvimento do projeto foi categoricamente descrita,
detalhando e explicando cada uma de suas fases e ao final apresentando os testes e
resultados obtidos.
O simulador desenvolvido e as estratgias de controle de trfego implementadas e
testadas, funcionaram de acordo com o planejado e obtiveram os resultados esperados,
comprovando a eficincia do controle semafrico na otimizao do fluxo veicular na
malha viria controlada.
65
Com isso exposto, verifica-se que este trabalho de concluso atendeu
adequadamente s expectativas do tema proposto, qual seja, Semforo de Trnsito
Operando Sob Demanda de Fluxo.

6.2 Dificuldades
A maior dificuldade do trabalho foi a de definir um modelo de sistema para a
implementao da estratgia de controle, alm de definir em qual estratgia se basear.
Definido o modelo, operou-se ainda grande dificuldade em entender como os
tempos de verde poderiam atuar como parmetros que influenciariam no resultado da
funo objetivo a ser otimizada. Porm, depois de uma boa pesquisa e anlise bastante
aprofundada nas equaes de atraso e grau de saturao, identificou-se a influncia do
tempo de verde no resultado dessas variveis.

6.3 Perspectivas
O trabalho em questo tem uma ampla rea de aplicao. A cidade de Natal-RN
carente de sistemas de controle de trfego eficientes que atuem nas diversas reas de
congestionamento intenso. Portanto, necessita de engenheiros capacitados que possam
utilizar os seus conhecimentos em prol da melhoria do trnsito da cidade, que j chega a
piorar a qualidade de vida do cidado.
Este projeto abre um leque de funcionalidades que podem ser acrescentadas a este
trabalho. Tornar o fluxo das vias das malhas dinmico, para que o simulador execute
estratgias controle de trfego em tempo real, acrescentar mais variveis de interesse ao
sistema como consumo de combustvel, velocidade mdia dos veculos, emisso de
poluentes (CO
2
), entre outras.
Por fim, este trabalho no s atingiu o final de um estudo, como iniciou a etapa de
um grande projeto que ainda pode ser bastante explorado.
66


Referncias bibliogrficas


[1] AQUINO, W.; N. B. de AQUINO e W. F. PEREIRA (2001) Consideraes sobre o
Uso de ITS. Revista de Transportes Pblicos, ANTP, Ano 23, 2 semestre, p. 33-37.
[2] BELL, C. M. (1995) The Evolution of Traffic Control Shemes. Transportation
Research Group, University of Nottingham, Nottingham, UK.
[3] BRAND, D. (1998) Applying Benefit/Cost Analysis to Identify and Measure the
Benefits of Intelligent Transportation Systems. Transportation Research Board, The 77
th Annual Meeting, Washington, D.C., USA.
[4] BRITO, Ronei Mascarenhas de, Desenvolvimento de um Simulador Para Anlise e
Projeto de Sistemas de Controle de Trfego em Malha Fechada, Dissertao de
Mestrado. Departamento de Engenharia Eltrica. UFSC. Florianpolis, 1998.
[5] Carlson, R. C. Aplicao de maximizao de largura de banda no controle de trfego
urbano em tempo-real. Disponvel em <http://www.tede.ufsc.br/teses/PEEL1058.pdf>.
Acessado em 8 de junho de 2009.
[6] D.L. Gerlough e M.J. Huber, Traffic Flow Theory, National Research Council,
Special Report 165, Washington, D.C., 1975.
[7] Dantas, L. D., Proposta de Modelo de Dinmica de Filas para Trfego Veicular
Urbano, Dissertao submetida Universidade Federal de Santa Catarina como parte
dos requisitos para a obteno do grau de Mestre em Engenharia Eltrica, Florianpolis,
S.C., 2005.
[8] DENATRAN, Manual de Semforos (2 Ed.), Servios de Engenharia,
Departamento Nacional de Trnsito, Braslia, D.F., 1984.
67
[9] DIA, H. (2000) A Conceptual Framework for Modelling the Enviromental Impacts
of Intelligent Transportation Systems. Engenharia do trfego e Transportes 2000:
Avanos para uma Era de Mudanas, p. 643-654.
[10] EDIE, L.C., Traffic Delays at Toll Booths, J. Operations Research, Vol. 2, 1954.
[11] Evangelos Bekiaris, Yuko J. Nakanishi - Economic Impacts of Intelligent
Transportation Systems: innovations and case studies 2004, Edition: illustrated, por
Elsevier. Disponvel em: <http://books.google.com.br/books?id=85-
m480rYNMC&printsec=frontcover>. Acessado em 31 de maro 2009.
[12] F. V. Webster, Traffic Signal Settings, Road Research Laboratory, Technical Paper
No. 39, London,1958.
[13] FABER, O. (2000) UTMC 05a Performance Indicators Second Project Report
Results of Questionnaire Survey. Department of Transport, London, UK. Disponvel
em: <http://www.dft.gov.uk/adobepdf/165240/244921/326557/327187/utmc05ar2.pdf>.
Acessado em 31 de maro de 2009.
[14] FARGES, J. L.; KAMDEM, I.; LESORT, J. B. Realization and test of a prototype
for real time urban traffic control. In: . [S.l.]: Drive Project V1022, 1991.
[15] FRANOSO, M. T., Estudo Sobre Semforos Isolados com tempos Fixos,
Dissertao de Mestrado, USP, So Carlos, S.P., 1990.
[16] G. S. Cervantes, Silvia; Kraus Junior, Werner. O Problema de Coordenao em um
Algoritmo de Controle em Tempo Real de Trfego Urbano. Seminrio: Cincias Exatas
e Tecnolgicas, Londrina, v. 26, n. 2, p. 181-194, jul./dez. 2005. Disponvel em
<http://www.uel.br/proppg/semina/pdf/semina_26_2_22_30.pdf>. Acessado em 20 de
maio de 2009.
[17] GARTNER, N. H. OPAC: A demand responsive strategy for traffic signal control.
In: TRANSPORTATION RESEARCH RECORD. [S.l.], 1983. v. 906, p. 7581.
[18] GILLEN, D. e M. HAYNES (2001) Measuring the Aggregate Productivity from
ITS Applications: The California Experience. Transportation Research Board, The 80 th
Annual Meeting, Washington, D.C., USA.
68
[19] HU, P. S.; R. T. GOELTZ e R. L. SCHMOYER, Jr. (2002) Cost and Benefits of
Using ITS as an Alternative Data Source: A Case Study. Transportation Research
Board, The 81 th Annual Meeting, Washington, D.C., USA.
[20] I. Porche and S. Lafortune. Dynamic traffic control: decentralized and coordinated
methods. In Proceedings of the Intelligent Transportation Systems Conference, pages
930935, Boston, 1997. IEEE.
[21] I. Porche and S. Lafortune. Dynamic traffic control: decentralized and coordinated
methods. Disponvel em:
<http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.44.5393&rep=rep1&type=p
df>. Acessado em 8 de junho de 2009.
[22] I. Porche, M. Sampath, R. Sengputa, Y.-L. Chen, and S. Lafortune. A decentralized
scheme for real-time optimization of traffic signal. In Proceedings of the 1996 IEEE
International Conference on Control Applications, pages 582589, Dearborn, 1996.
IEEE.
[23] INSIGNARES, M. S. e TERRY, D.C. (1991) Geographic Information Systems in
Traffic Control. JHK and Associates, Compendium of Technical Papers, Institute of
Transportation Engineering.
[24] INSTITUTION OF HIGHWAYS AND TRANSPORTATION (1986) Urban
Traffic Control. In: Institution of Highways and Transportation (eds.) Roads and Traffic
in Urban Areas, London, UK.
[25] J. L. Kuester and J. H. Mize. Optimization Techniques with Fortran. McGraw-Hill
Book Company, 1973.
[26] J.L. Farges, L. Khoudour e J.B. Lesort, Prodyn: On Site Evaluation, CERT/DERA,
INRETS, France, pp.62-66, 1990.
[27] J.S. Baras, A.J. Dorsey e W.S. Levine, Estimation of Traffic Platoon Structure
from Headway Statistics, IEEE Transactions on Automatic Control, Vol. AC-24, No. 4,
Aug. 1979, pp. 533559.
69
[28] JORDAN, D. R. e T. A. HORAN (1997) Intelligent Transportation Systems and
Sustainable Communities Findings of a National Study. Transportation Research
Board, The 76 th Annual Meeting, Washington, D.C., USA.
[29] K. Tavladakis and N. C. Voulgaris. Development of an autonomous adaptive
traffic control system. In ESIT99 - The European Symposium on Intelligent
Techniques, 1999.
[30] LAM, J. e W. JOHNSON (1997) Back from the Brink. ITS International,
November/December 1997, p.57-61.
[31] LOUREIRO, C. F. G.; C. H. P. LEANDRO e M. V. T. de OLIVEIRA (2002b)
Sistema Centralizado de Controle do trfego de Fortaleza: ITS Aplicado Gesto
Dinmica do Trnsito Urbano. Anais do XVI Congresso de Pesquisa e Ensino em
Transportes, ANPET, Natal, RN, Comunicaes Tcnicas, p. 19-26.
[32] LOUREIRO, C. F. G.; M. J. T. L. GOMES e C. H. P. LEANDRO (2002a)
Avaliao do Desempenho nos Perodos de Pico do Trfego de Intersees
Semaforizadas com Controle Centralizado em Tempo Fixo e Real. Anais do XVI
Congresso de Pesquisa e Ensino em Transportes, ANPET, Natal, RN, vol. 1, p. 365-
376. Disponvel em <http://www.sinaldetransito.com.br/artigos/scoot.pdf>. Acessado
em 11 de Junho de 2009.
[33] LOWRIE, P. SCATS: A traffic responsive method for controlling urban traffic.
Sidney: NSW, 1990.
[34] M. H. Lighthill e G. B. Whitham, On Kinematic Waves II A Theory of Traffic
Flow on Long Crowded Roads, Proceedings of the Royal Society, Series A, London,10
de Maio de 1955.
[35] M. R. Crabtree, R. A. Vincent, and S. Harrison. APPLICATION GUIDE 28 -
TRANSYT/10 USER GUIDE. Transport Research Laboratory, Crowthorne, UK, 1996.
[36] N.H. Gartner, F.J. Pooran e C.M. Andrews, Implementation of the OPAC Adaptive
Control Strategy in a Traffic Signal Network, IEEE Intelligent Transportation Systems
Conference Proceedings, Oakland, CA, 2001, pp. 195200.
70
[37] NOVAK, D. C. e M. MCDONALD (1998) A General Overview of the Potential
Macroeconomic Impacts of ITS Investment in the United States. Transportation
Research Board, The 77 th Annual Meeting, Washington, D.C., USA.
[38] O`NEIL, W. e W. KLANCHER (1998) The Use of ITS Data for Transportation
Planning: Future Research Needs. Transportation Research Board, The 77 th Annual
Meeting, Washington, D.C., USA.
[39] OLIVEIRA, M. G. S. (1997) Produo e Anlise de Planos Semafricos de Tempo
Fixo usando Sistemas de informaes Geogrficas. Dissertao de Mestrado,
Universidade Federal do Rio de Janeiro, Rio de Janeiro, Brasil.
[40] Olson, P. L. and R. W. Rothery. Deceleration Levels and Clearance Times
Associated with the Amber Phase of Traffic Signals. Traffic Engineering, Vol. 42,
No.4, 1972, pp. 16-19.
[41] OW, P. (2001) Convergence in the Info Age. Traffic Technology International,
December 2000/January 2001, p. 55-59.
[42] P. B. Hunt, D. I. Robertson, R. D. Bretherton, and M. C. Royle. The SCOOT on-
line traffic signal optimization technique. Traffic Engineering and Control, 23:190199,
1982.
[43] P. DellOlmo and P. B. Mirchandi. REALBAND: An approach for real-time
coordination of traffic flows on networks. Transportation Research Record, 1494:106
116, 1995.
[44] P. Mirchandani e L. Head, A Real-Time Traffic Signal Control System:
Architecture, Algorithms and Analisys, Tranportation Research Part C9, 2001, pp.
415432. Disponvel em: <
http://its.ee.tsinghua.edu.cn/literatures/_Literature_incoming/Traffic Signal Control/Pitu
Mirchandani_TRC_A real-time traffic signal control system-- architecture, algorithms,
and analysis.pdf >. Acessado em 10 de Junho 2009.
[45] P. R. Lowrie. The Sydney co-ordinated adaptive traffic system - principles,
methodology algorithms. In Proceedings of the IEEE international conference on road
traffic signalling, pages 6770, London, 1982.
71
[46] PEARCE, V. (2000) ITS: Money Well Spent? Traffic Technology International,
April/May 2000, p. 19-23.
[47] PETRAN, Oliveira, F. M., Luna, M. S., Granjeiro, C. F., VARIAO DO FLUXO
DE SATURAO POR TIPO DE FAIXA E PERODOS DE PICO EM
INTERSEES SEMAFORIZADAS DE FORTALEZA, U. F. C.. Disponvel em <
http://www.sinaldetransito.com.br/artigos/fluxo.pdf>. Acessado em 13 de junho de
2009.
[48] PRESLEY, M. W.; K. G. WYROSDICK e T. A. SULBARAN (2000) Calculating
Benefits for NAVIGATOR Georgias ITS. Transportation Research Board, The 79 th
Annual Meeting, Washington, D.C., USA.
[49] PUENTES, R. (2000) Deep Impact. Traffic Technology International, April/May
2000, p. 106-109.
[50] ROBERTSON, D. I. TRANSYT: A traffic network study tool. In: ROAD
RESEARCH LABORATORY. Crowthorne, England, 1968.
[51] ROBERTSON, D. I.; BRETHERTON, R. D. Optmization networks of traffic
signals in real-time: the SCOOT method. IEEE Transactions on Vehicular Technology,
v. 40, p. 1115, 1991.
[52] S. Sen e K. L. Head, Controlled Optimization of Phases at an Intersection,
Transport Science 31, pp. 5-17, 1997.
[53] SKABARDONIS, A. (2001) ITS Benefits: The Case of Traffic Signal Control
Systems. Transportation Research Board, The 80 th Annual Meeting, Washington, D.C.,
USA.
[54] SNEDESKER, B. (1999) Southern Comfort. Traffic Technology International,
October/November 1999, p. 92-94.
[55] SOUSA, K. L. de O.; E. P. MONTEIRO; C. RAMBAIOLLE; E. FACTORI; A
CREMONESE Jr. e S. EJZENBERG (2000) Sistema Inteligente de Controle do trfego
de Santo Andr. Revista de Transportes Pblicos, ANTP, Ano 22, 2 semestre, p. 91-
100.
72
[56] TANIGUCHI, E.; R.G. THOMPSON; T. YAMADA e R. V. DIUN (2001) City
Logistics Network Modelling and Intelligent Transport Systems. By Elsevier Science
- PERGAMON, London, UK.
[57] TERRA, T., Aplicao de Lgica Fuzzy no Controle de Trnsito Urbano,
Dissertao submetida Universidade Federal de Santa Catarina como parte dos
requisitos para obteno do grau de Mestre em Cincia da Computao, Florianpolis,
S.C., 2002.
[58] TRL (1999) TRANSYT 11 user guide. Transportation Research Laboratory.
[59] TRL (2000a) SCOOT 0414 Executive Summary Description of SCOOT.
SCOOT Traffic Handbook. Transportation Research Laboratory.
[60] US.DOT - U.S. Department of Transportation, FHWA - Federal Highway
Administration. The National Architecture for ITS: A Framework for Integrated
Transportation into the 21st Century, April 1996.
[61] V.R., Beck (1999). Metodologia para calibrao do modelo de disperso dos
pelotes inserido no software TRANSYT. Dissertao de Mestrado em Transportes
Urbanos, Departamento de Engenharia Civil, Faculdade de Tecnologia,Universidade de
Braslia.
[62] Viegas, J. M., TRANSPORTES AULA 2, ENGENHARIA CIVIL E
AMBIENTE. Disponvel em :
<https://dspace.ist.utl.pt/bitstream/2295/57255/1/gtr_Aula7b_0506_Introducao_Exercici
o_Cruzamentos_Semaforizados.pdf>. Acessado em 16 de junho de 2009.
[63] WEBSTER, F.V., Traffic Signal Settings. Road Research Laboratory Technical
Paper N 39. London, 1958.
[64] WILSHIRE, R.; BLACK, R.; GROCHOSKE, R.; HIGINBOTHAM, J. Traffic
Control Systems Handbook. Special report - fhwa-ip-85-11. Washington D.C., 1985.
[65] WOHL, M. and MARTIN, B. V., Traffic Systems Analysis For Engineers and
Planners. McGraw-Hill Book Company. N.Y. 1967.
73
[66] WOOD, K. (1993) Urban Traffic Control Systems Review. Project Report 41-
UG26. Transportation Research Laboratory, Crowthorne, Berkshire, Inglaterra.
[67] <http://maps.google.com.br/maps?hl=pt-BR&tab=wl>. Acessado em 15 de junho
de 2009.
[68]
<http://www.dei.isep.ipp.pt/~ana/ROBOTICA/docs/Apr%20Mestrado%20ITS%202005
.pdf>. Acessado em 7 de setembro de 2009.
[69] <http://www.inovacaotecnologica.com.br/noticias/noticia.php?artigo=sistema-
brasileiro-controla-trafego-em-tempo-real&id=>. Acessado em 10 de maro de 2009.
[70] <http://www.ip.pbh.gov.br/ANO1_N1_PDF/ip0101meirelles.pdf>. Acessado em 7
de abril de 2009.



Anexos


Anexo 1 Classes do pacote principal
Classe - Aresta
package principal;

public class Aresta {
private String nome;
private Vertice destino;
private Vertice origem;
private float fluxo;
private float fluxoSaturacao;
//private int tempoDestrFila;
private int sem;
private float atraso;
private float nParadas;
//private float velMax;
private int distancia; //em metros
private int velocidadeIdeal; //velocidade ideal do veiculo na
via, em metros por segundo
private int nFaixas;
private float defasagemIdeal; //diferena de tempo ideal que o
verde deve ser aplicado para que um veculo, na velocidade ideal pegue
o sinal verde



public float getDefasagemIdeal() {
return distancia/velocidadeIdeal;
}


public void setDefasagemIdeal(float defasagemIdeal) {
this.defasagemIdeal = defasagemIdeal;
}


public Aresta() {
super();
// TODO Auto-generated constructor stub
}


public Aresta(Vertice destino, Vertice origem) {
super();
this.destino = destino;
this.origem = origem;
}


public Vertice getDestino() {
return destino;
}
public void setDestino(Vertice destino) {
this.destino = destino;
}
public Vertice getOrigem() {
return origem;
}
public void setOrigem(Vertice origem) {
this.origem = origem;
}
public int getDistancia() {
return distancia;
}


public void setDistancia(int distancia) {
this.distancia = distancia;
}

public int getNFaixas() {
return nFaixas;
}


public void setNFaixas(int faixas) {
nFaixas = faixas;
}


public float getFluxoSaturacao() {
return fluxoSaturacao;
}


public void setFluxoSaturacao(float fluxoSaturacao) {
this.fluxoSaturacao = fluxoSaturacao;
}


public float getFluxo() {
return fluxo;
}


public void setFluxo(float fluxo) {
this.fluxo = fluxo;
}


public String getNome() {
return nome;
}


public void setNome(String nome) {
this.nome = nome;
}



public float getAtraso() {
return atraso;
}


public void setAtraso(float atraso) {
this.atraso = atraso;
}


public float getNParadas() {
return nParadas;
}


public void setNParadas(float paradas) {
nParadas = paradas;
}


public int getSem() {
return sem;
}


public void setSem(int sem) {
this.sem = sem;
}

/*
public int getTempoDestrFila() {
return tempoDestrFila;
}


public void setTempoDestrFila(int tempoDestrFila) {
this.tempoDestrFila = tempoDestrFila;
}
*/

public int getTr(){
if(sem == 0)
return destino.getCiclo().getTr1();
else
return destino.getCiclo().getTr2();

}
public int getTempoVerm(){
if(sem == 0)
return destino.getCiclo().getTempoVermelho1();
else
return destino.getCiclo().getTempoVermelho2();

}
public int tempoVerdeEfetivo() {
int G;
int Y;
int tempoPerdido;
if (sem == 0){
G = destino.getCiclo().getTempoVerde1();
Y = destino.getCiclo().getTempoAmarelo();
tempoPerdido = destino.getCiclo().getTempoPerdido();
return G+Y - tempoPerdido;
}else {
G = destino.getCiclo().getTempoVerde2();
Y = destino.getCiclo().getTempoAmarelo();
tempoPerdido = destino.getCiclo().getTempoPerdido();

return G+Y-tempoPerdido;
}

}
public float percentualVerdeEfetivo(){
return (float)
tempoVerdeEfetivo()/destino.getCiclo().getTCiclo();
}


public int getVelocidadeIdeal() {
return velocidadeIdeal;
}


public void setVelocidadeIdeal(int velocidadeIdeal) {
this.velocidadeIdeal = velocidadeIdeal;
}
}

Classe Ciclo
package principal;

public class Ciclo {

private int tempoVerde1; //tempo de verde do estagio 1 -
Varivel a ser ajustada, com restricao de 12 <= tempodeverde <=
(tCiclo-24)
private int tempoAmarelo; //tempo total do amarelo
private int tv1; //instante de tempo em que o verde do estagio 1
inicia - Varivel a ser ajustada, com restricao de 0<= tv <=96
private int tempoPerdido;
private int R; //Vermelho de segurana
private int tCiclo;

public Ciclo() {
super();
// TODO Auto-generated constructor stub
}

public int getR() {
return R;
}

public void setR(int r) {
R = r;
}

public int getTa1() {
return (tv1+tempoVerde1)%tCiclo;
}



public int getTempoAmarelo() {
return tempoAmarelo;
}

public void setTempoAmarelo(int tempoAmarelo) {
this.tempoAmarelo = tempoAmarelo;
}

public int getTempoVerde1() {
return tempoVerde1;
}

public void setTempoVerde1(int tempoVerde1) {
this.tempoVerde1 = tempoVerde1;
}

public int getTCiclo() {
return tCiclo;
}

public void setTCiclo(int ciclo) {
tCiclo = ciclo;
}

public int getTr1() {
return (getTa1()+tempoAmarelo + tCiclo)%tCiclo;
}
public int getTempoVermelho1(){
return tCiclo - tempoVerde1+tempoAmarelo;
}

public int getTv1() {
return tv1;
}

public void setTv1(int tv) {
this.tv1 = tv;
}

public int getTv2(){

return (getTr1()+R)%tCiclo;
}
public int getTr2(){
return (tv1-R+tCiclo)%tCiclo;
}
public int getTa2() {

return (tv1-(tempoAmarelo+R)+tCiclo)%tCiclo;
}

public int getTempoPerdido() {
return tempoPerdido;
}
public void setTempoPerdido(int tempoPerdido) {
this.tempoPerdido = tempoPerdido;
}

public int getTempoVerde2(){

return (getTa2()-getTv2()+tCiclo)%tCiclo;
}
public int getTempoVermelho2(){

return (getTv2()-getTr2()+tCiclo)%tCiclo;
}

}

Classe MalhaViaria
package principal;

import java.util.ArrayList;

public class MalhaViaria {
private float PI;
private float atraso;
private float nParadas;
private int tamCiclo;
private ArrayList Intersecoes;
private ArrayList Arestas;
public MalhaViaria() {
super();
Intersecoes = new ArrayList();
Arestas = new ArrayList();
tamCiclo = 77; //tempo do ciclo semaforico calculado
manualmente para esta malha viaria
criaIntersecoes();
criaLinks();
conectaLinksAIntersecoes();
// TODO Auto-generated constructor stub
}
public ArrayList getArestas() {
return Arestas;
}
public void setArestas(ArrayList arestas) {
Arestas = arestas;
}
public ArrayList getIntersecoes() {
return Intersecoes;
}
public void setIntersecoes(ArrayList intersecoes) {
Intersecoes = intersecoes;
}

// Criao das intersees semafricas
public void criaIntersecoes(){
//criacao dos semforos de trnsito com a temporizao
(Verde, amarela e vermelha) calculada no trabalho
//

for (int i = 0; i < 3; i++){
Ciclo cicloSemaforico = new Ciclo(); //Ciclo
semaforico calculado no trabalho
cicloSemaforico.setTCiclo(tamCiclo);
cicloSemaforico.setR(2); //verde de segurana
definido no trabalho como 2
cicloSemaforico.setTempoVerde1(42); //Este o tempo
de verde inicial definido
cicloSemaforico.setTempoAmarelo(4); //tempo de
amarelo calculado no trabalho
cicloSemaforico.setTempoPerdido(4);
cicloSemaforico.setTv1(0); //instante de tempo em que
o verde inicia, definido inicialmente
Vertice novaIntersecao = new Vertice();
//novaIntersecao.addSemaforo(sem1);
//novaIntersecao.addSemaforo(sem2);
novaIntersecao.setCiclo(cicloSemaforico);
Intersecoes.add(novaIntersecao);
}
}
//criao das vias (arestas) da rede semafrica escolhida
public void criaLinks(){

//Links com mesmos valores de fluxo e fluxo de saturao
//Link 1, Av. Sen. Salgado Filho sentido Oeste-Leste que
chega Av. Antonio Baslio.
Aresta novaAresta = new Aresta();
novaAresta.setNome("Link 1");
novaAresta.setSem(0);
novaAresta.setVelocidadeIdeal(12);
novaAresta.setDestino((Vertice)Intersecoes.get(0));
novaAresta.setDistancia(0);
novaAresta.setFluxo((float) 1088.75); //Dado coletado da
SEMOB no trabalho em veic./h (veculos por hora)
novaAresta.setFluxoSaturacao(2400);
novaAresta.setNFaixas(3);
Arestas.add(novaAresta);
//Link 2, Av. Sen. Salgado Filho sentido Leste-Oeste que
sai da Av. Nascimento de castro e chega Av. Antnio Baslio.
novaAresta = new Aresta();
novaAresta.setNome("Link 2");
novaAresta.setSem(0);
novaAresta.setVelocidadeIdeal(12);
novaAresta.setOrigem((Vertice) Intersecoes.get(1));
novaAresta.setDestino((Vertice)Intersecoes.get(0));
novaAresta.setDistancia(300);
novaAresta.setFluxo((float) 979.875); //Estimado no
trabalho em veic./h (veculos por hora)
novaAresta.setFluxoSaturacao(2400);
novaAresta.setNFaixas(3);
Arestas.add(novaAresta);
//Link 3, Av. Antonio Basilio sentido Norte-Sul que
chega Av. Salgado Filho
novaAresta = new Aresta();
novaAresta.setNome("Link 3");
novaAresta.setSem(1);
novaAresta.setVelocidadeIdeal(12);
novaAresta.setDestino((Vertice)Intersecoes.get(0));
novaAresta.setDistancia(0);
novaAresta.setFluxo((float) 391.95); //Estimado no trabalho
em veic./h (veculos por hora)
novaAresta.setFluxoSaturacao(1600);
novaAresta.setNFaixas(2);
Arestas.add(novaAresta);
//Link 4, Av. Antonio Basilio sentido Sul-Norte que
chega Av. Salgado Filho
novaAresta = new Aresta();
novaAresta.setNome("Link 4");
novaAresta.setSem(1);
novaAresta.setVelocidadeIdeal(12);
novaAresta.setDestino((Vertice)Intersecoes.get(0));
novaAresta.setDistancia(0);
novaAresta.setFluxo((float) 391.95); //Estimado no trabalho
em veic./h (veculos por hora)
novaAresta.setFluxoSaturacao(1600);
novaAresta.setNFaixas(2);
Arestas.add(novaAresta);
//Link 5, Av. Salgado Filho sentido O-L que sai da Av.
Antonio Basilio e chega Av. Nascimento
novaAresta = new Aresta();
novaAresta.setNome("Link 5");
novaAresta.setSem(0);
novaAresta.setVelocidadeIdeal(12);
novaAresta.setOrigem((Vertice)Intersecoes.get(0));
novaAresta.setDestino((Vertice)Intersecoes.get(1));
novaAresta.setDistancia(300);
novaAresta.setFluxo((float) 1088.75); //Dado coletado da
SEMOB no trabalho em veic./h (veculos por hora)
novaAresta.setFluxoSaturacao(2400);
novaAresta.setNFaixas(3);
Arestas.add(novaAresta);
//Link 6, Av. Salgado Filho sentido L-O que sai da Av.
Amintas Barros e chega Av. Nascimento
novaAresta = new Aresta();
novaAresta.setNome("Link 6");
novaAresta.setSem(0);
novaAresta.setVelocidadeIdeal(12);
novaAresta.setOrigem((Vertice)Intersecoes.get(2));
novaAresta.setDestino((Vertice)Intersecoes.get(1));
novaAresta.setDistancia(300);
novaAresta.setFluxo((float) 979.875); //Estimado no
trabalho em veic./h (veculos por hora)
novaAresta.setFluxoSaturacao(2400);
novaAresta.setNFaixas(3);
Arestas.add(novaAresta);
//Link 7, Av. Nascimento sentido N-S que chega Av.
Salgado
novaAresta = new Aresta();
novaAresta.setNome("Link 7");
novaAresta.setSem(1);
novaAresta.setVelocidadeIdeal(12);
novaAresta.setDestino((Vertice)Intersecoes.get(1));
novaAresta.setDistancia(0);
novaAresta.setFluxo((float) 391.95); //Estimado no trabalho
em veic./h (veculos por hora)
novaAresta.setFluxoSaturacao(1600);
novaAresta.setNFaixas(2);
Arestas.add(novaAresta);
//Link 8, Av. Nascimento sentido S-N que chega Av.
Salgado
novaAresta = new Aresta();
novaAresta.setNome("Link 8");
novaAresta.setSem(1);
novaAresta.setVelocidadeIdeal(12);
novaAresta.setDestino((Vertice)Intersecoes.get(1));
novaAresta.setDistancia(0);
novaAresta.setFluxo((float) 391.95); //Estimado no trabalho
em veic./h (veculos por hora)
novaAresta.setFluxoSaturacao(1600);
novaAresta.setNFaixas(2);
Arestas.add(novaAresta);
//Link 9, Av. Salgado Filho sentido O-L que sai da Av.
Nascimento e chega Av. Amintas
novaAresta = new Aresta();
novaAresta.setNome("Link 9");
novaAresta.setSem(0);
novaAresta.setVelocidadeIdeal(12);
novaAresta.setOrigem((Vertice)Intersecoes.get(1));
novaAresta.setDestino((Vertice)Intersecoes.get(2));
novaAresta.setDistancia(0);
novaAresta.setFluxo((float) 1088.75); //Dado coletado da
SEMOB no trabalho em veic./h (veculos por hora)
novaAresta.setFluxoSaturacao(2400);
novaAresta.setNFaixas(3);
Arestas.add(novaAresta);
//Link 10, Av. Salgado Filho sentido L-O que chega Av.
Amintas
novaAresta = new Aresta();
novaAresta.setNome("Link 10");
novaAresta.setSem(0);
novaAresta.setVelocidadeIdeal(12);
novaAresta.setDestino((Vertice)Intersecoes.get(2));
novaAresta.setDistancia(0);
novaAresta.setFluxo((float) 979.875); //Estimado no
trabalho em veic./h (veculos por hora)
novaAresta.setFluxoSaturacao(2400);
novaAresta.setNFaixas(3);
Arestas.add(novaAresta);
//Link 11, Av. Amintas sentido N-S que chega Av.
Salgado
novaAresta = new Aresta();
novaAresta.setNome("Link 11");
novaAresta.setSem(1);
novaAresta.setVelocidadeIdeal(12);
novaAresta.setDestino((Vertice)Intersecoes.get(2));
novaAresta.setDistancia(0);
novaAresta.setFluxo((float) 391.95); //Estimado no trabalho
em veic./h (veculos por hora)
novaAresta.setFluxoSaturacao(1600);
novaAresta.setNFaixas(2);
Arestas.add(novaAresta);
//Link 12, Av. Amintas sentido S-N que chega Av.
Salgado
novaAresta = new Aresta();
novaAresta.setNome("Link 12");
novaAresta.setSem(1);
novaAresta.setVelocidadeIdeal(12);
novaAresta.setDestino((Vertice)Intersecoes.get(2));
novaAresta.setDistancia(0);
novaAresta.setFluxo((float) 391.95); //Estimado no trabalho
em veic./h (veculos por hora)
novaAresta.setFluxoSaturacao(1600);
novaAresta.setNFaixas(2);
Arestas.add(novaAresta);
}
// Linkando as arestas, aos vrtices criados
public void conectaLinksAIntersecoes(){

//Interseo 1
((Vertice)Intersecoes.get(0)).setNome("Intersecao 1 -
Salgado x Antonio");
((Vertice)Intersecoes.get(0)).setDefasagem(0); //Valor
Inicial estimado da defasagem

((Vertice)Intersecoes.get(0)).setVia1Horizontal((Aresta)Arestas.
get(0));

((Vertice)Intersecoes.get(0)).setVia2Horizontal((Aresta)Arestas.
get(1));

((Vertice)Intersecoes.get(0)).setVia1Vertical((Aresta)Arestas.ge
t(2));

((Vertice)Intersecoes.get(0)).setVia2Vertical((Aresta)Arestas.ge
t(3));
//Interseo 2
((Vertice)Intersecoes.get(1)).setNome("Intersecao 2 -
Salgado x Nascimento");
((Vertice)Intersecoes.get(1)).setDefasagem(25); //Valor
Inicial estimado da defasagem

((Vertice)Intersecoes.get(1)).setVia1Horizontal((Aresta)Arestas.
get(4));

((Vertice)Intersecoes.get(1)).setVia2Horizontal((Aresta)Arestas.
get(5));

((Vertice)Intersecoes.get(1)).setVia1Vertical((Aresta)Arestas.ge
t(6));

((Vertice)Intersecoes.get(1)).setVia2Vertical((Aresta)Arestas.ge
t(7));
//Interseo 3
((Vertice)Intersecoes.get(2)).setNome("Intersecao 3 -
Salgado x Amintas");
((Vertice)Intersecoes.get(2)).setDefasagem(50); //Valor
Inicial estimado da defasagem

((Vertice)Intersecoes.get(2)).setVia1Horizontal((Aresta)Arestas.
get(8));

((Vertice)Intersecoes.get(2)).setVia2Horizontal((Aresta)Arestas.
get(9));

((Vertice)Intersecoes.get(2)).setVia1Vertical((Aresta)Arestas.ge
t(10));

((Vertice)Intersecoes.get(2)).setVia2Vertical((Aresta)Arestas.ge
t(11));
}
public float getAtraso() {
return atraso;
}
public void setAtraso(float atraso) {
this.atraso = atraso;
}
public float getNParadas() {
return nParadas;
}
public void setNParadas(float paradas) {
nParadas = paradas;
}
public double getPI() {
double PI = 0;

for (int i = 0; i < 12; i++){

PI = PI + d(i)+ d1(i) + s(i);

((Aresta)Arestas.get(i)).setAtraso(d(i));
((Aresta)Arestas.get(i)).setNParadas(s(i));
}



return PI;
}

//atraso mdio uniforme no link i
public float d(int i){
float atraso = 0;
int n = 3; //nmero de unidades de tempo que o ciclo
foi subdividido
int delta_t = tamCiclo/n;
float fluxo = ((Aresta)Arestas.get(i)).getFluxo() ;
float Ac = tamCiclo*fluxo; //Total de chegadas
durante o Ciclo ==> C*q
float At = delta_t*fluxo; //chegadas acumuladas no
intervalo t
float percVerdeEfet =
((Aresta)Arestas.get(i)).percentualVerdeEfetivo();

float Dt = percVerdeEfet*delta_t*fluxo; //partidas
(escoamento) acumuladas no intervalo t

for(int t = 0; t < n; t++){

atraso = atraso + (delta_t/Ac)*(At - Dt);
At++;
Dt++;
}

return atraso;
}

//atraso mdio aleatorio no link i
private float d1(int i) {
float fluxo = ((Aresta)Arestas.get(i)).getFluxo();
float percVerdeEfet =
((Aresta)Arestas.get(i)).percentualVerdeEfetivo();
float fluxoSat =
((Aresta)Arestas.get(i)).getFluxoSaturacao();
float grauSaturacao = fluxo/(percVerdeEfet*fluxoSat);
//System.out.println("Monitoramento grau de sat: "+
grauSaturacao*100);
float AtrasoAleatorio = (float)
((Math.pow(grauSaturacao,2))/(4*(1-grauSaturacao)));

return AtrasoAleatorio;
}
//Nmero mdio de paradas no link i
private float s(int i) {
float tO;
float fluxo = ((Aresta)Arestas.get(i)).getFluxo();
float tVerm =
((Aresta)Arestas.get(i)).getTempoVerm(); //Instante do inicio do tempo
vermelho

if(((Aresta)Arestas.get(i)).getOrigem() != null){

tO = descobretO(i);
}else {
if(((Aresta)Arestas.get(i)).getSem() == 0)
tO =
((Aresta)Arestas.get(i)).getDestino().getCiclo().getTv1();
else
tO=
((Aresta)Arestas.get(i)).getDestino().getCiclo().getTv2();
}

//tO = descobretO(i);
//float tempoDestrFila =
((Aresta)Arestas.get(i)).getTempoDestrFila(); //Tempo estimado de
verde para que torne a fila nula

return fluxo*( ((tO-tVerm)+77)%77 )/tamCiclo;
///###### Mudar valor 77 para varivel, qd testar outras malhas
}
public float descobretO(int i){
//Como as unicas arestas com origem so as da
horizontal, todas usam o tv1, ento no foi implementado condio pra
saber qual o semaforo

float TviAtual =
((Aresta)Arestas.get(i)).getDestino().getCiclo().getTv1();
float tO = TviAtual;
float TviAnterior =
((Aresta)Arestas.get(i)).getOrigem().getCiclo().getTv1();
float defasagemIdeal =
((Aresta)Arestas.get(i)).getDefasagemIdeal();
float Tai =
((Aresta)Arestas.get(i)).getDestino().getCiclo().getTa1();

if(TviAtual < (TviAnterior+defasagemIdeal+77)%77){
tO = (TviAnterior+defasagemIdeal+77)%77;
if(tO > (Tai-TviAtual+77)%77){
tO = (Tai-TviAtual+77)%77;
}else {
if(TviAtual >
(TviAnterior+defasagemIdeal+77)%77){

tO = TviAtual + (TviAtual -
((TviAnterior+defasagemIdeal+77)%77)+77)%77;
if (tO > (Tai-TviAtual+77)%77){
tO = (Tai-TviAtual+77)%77;

}
}else {
tO = TviAtual;
}
}
}
return tO;
}
public void setPI(float pi) {
PI = pi;
}
}

Classe Simulador
package principal;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Random;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;

import AlgoritmoGenetico.AlgoritmoGenetico;
import AlgoritmoGenetico.Individuo;
import AlgoritmoGenetico.Populacao;

public class Simulador extends JPanel {
JLabel label;
Timer timer;
int current = 0;
private MalhaViaria minhaRedeSemaforica;
public Simulador() {
this.add(this.getLabel());
minhaRedeSemaforica = new MalhaViaria();
this.go(); //Incio da contagem do tempo
}

public JLabel getLabel() {
if (this.label == null) {
this.label = new JLabel(this.current + "");
this.label.setPreferredSize(new Dimension(100, 22));
}
return this.label;
}

public void go() {
ActionListener action = new ActionListener() {
public void actionPerformed(ActionEvent e) {
label.setText(++current + ""); //varivel que estar
guardando o tempo em segundos da simulao
}
};
//Timer para contagem do decorrer do tempo da simulao
this.timer = new Timer(1000, action);
this.timer.start();
}

public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Simulador teste = new Simulador();
frame.setContentPane(teste);
frame.setSize(200, 75);
frame.setVisible(true);

//FUNO OBJETIVO - PI, a constante K adotada foi 1
double PI = Double.POSITIVE_INFINITY;
PI = teste.getMinhaRedeSemaforica().getPI();
//TESTE SEM OTIMIZACAO
System.out.println("------------TESTE SEM OTIMIZACAO----------
");
System.out.println("PI - Perfomance Index: " + PI);
//Dados das Arestas
float atrasoTotal = 0;
float nParadasTotais = 0;
for (int i = 0 ; i < 12; i++){
System.out.println("Atraso da aresta "+i+":
"+((Aresta)teste.getMinhaRedeSemaforica().getArestas().get(i)).getAtra
so()+
" Numero de paradas: " +
((Aresta)teste.getMinhaRedeSemaforica().getArestas().get(i)).getNParad
as());
atrasoTotal +=
((Aresta)teste.getMinhaRedeSemaforica().getArestas().get(i)).getAtraso
();
nParadasTotais
+=((Aresta)teste.getMinhaRedeSemaforica().getArestas().get(i)).getNPar
adas();
}
System.out.println("Atraso Total da Malha Viria:"+
atrasoTotal+
" | Numero de paradas Totais da Malha Viria: "
+ nParadasTotais);
//Dados Das Intersecoes
for (int i = 0 ; i < 3; i++){
System.out.println("Tempo de Verde da Intersecao "+(i+1)+": "
+

((Vertice)teste.getMinhaRedeSemaforica().getIntersecoes().get(i)
).getCiclo().getTempoVerde1()
+ " | Valor da defasagem: "+

((Vertice)teste.getMinhaRedeSemaforica().getIntersecoes().get(i)
).getDefasagem());

}


//Otimizao com o Algoritmo Gentico
System.out.println("\n\n---------------TESTE COM O ALGORITMO
GENETICO--------------\n\n");
Populacao popInicial = new Populacao();
//Adiciona novos individuos populacao (size = 100)
int nIndividuos = 100;
for (int i = 0; i < nIndividuos; i++){

Individuo novoIndividuo = new Individuo();
popInicial.addIndividuo(novoIndividuo);
}

AlgoritmoGenetico testeAG = new AlgoritmoGenetico(popInicial);
Individuo novoIndividuo = new Individuo();
novoIndividuo = testeAG.search();
System.out.println("PI - Perfomance Index: " +
novoIndividuo.avaliacao());
//Dados das Arestas
ArrayList arestas = new ArrayList();
arestas = novoIndividuo.getArestasDoMelhorIndividuo();
atrasoTotal = 0;
nParadasTotais = 0;
for (int i = 0 ; i < 12; i++){
System.out.println("Atraso da aresta "+i+":
"+((Aresta)arestas.get(i)).getAtraso()+
" Numero de paradas: " +
((Aresta)arestas.get(i)).getNParadas());
atrasoTotal += ((Aresta)arestas.get(i)).getAtraso();
nParadasTotais += ((Aresta)arestas.get(i)).getNParadas();
}
System.out.println("Atraso Total da Malha Viria:"+
atrasoTotal+
" | Numero de paradas Totais da Malha Viria: "
+ nParadasTotais);
//Dados das Intersecoes
for(int i = 0; i < 3; i++){
System.out.print("Tempo de Verde da Interseo "+(i+1)+": "+
novoIndividuo.getSemafCiclos()[i].getTempoVerde1());
if (i == 0){
System.out.println(" | Valor da defasagem: "+ 0);

}else{
int def = (novoIndividuo.getSemafCiclos()[i].getTv1()-
novoIndividuo.getSemafCiclos()[i-1].getTv1() +

novoIndividuo.getSemafCiclos()[i].getTCiclo())%novoIndividuo.get
SemafCiclos()[i].getTCiclo();
System.out.println(" | Valor da defasagem: "+ def);
}

}

}

public MalhaViaria getMinhaRedeSemaforica() {
return minhaRedeSemaforica;
}

public void setMinhaRedeSemaforica(MalhaViaria
minhaRedeSemaforica) {
this.minhaRedeSemaforica = minhaRedeSemaforica;
}

}

Classe Vertice
package principal;

import java.util.ArrayList;

public class Vertice {
private String nome;
private Ciclo ciclo;
private ArrayList semaforos;
private Aresta via1Horizontal;
private Aresta via2Horizontal;
private Aresta via1Vertical;
private Aresta via2Vertical;
private int defasagem;


public int getDefasagem() {
if( via1Horizontal.getOrigem() != null){
return (ciclo.getTv1() -
via1Horizontal.getOrigem().getCiclo().getTv1()+ciclo.getTCiclo())%cicl
o.getTCiclo();

}else return ciclo.getTv1();
}


public Vertice() {
super();
semaforos = new ArrayList();
// TODO Auto-generated constructor stub
}

public ArrayList getSemaforos() {
return semaforos;
}

public void setSemaforos(ArrayList semaforos) {
this.semaforos = semaforos;
}

public Aresta getVia1Horizontal() {
return via1Horizontal;
}
public void setVia1Horizontal(Aresta via1Horizontal) {
this.via1Horizontal = via1Horizontal;
}
public Aresta getVia1Vertical() {
return via1Vertical;
}
public void setVia1Vertical(Aresta via1Vertical) {
this.via1Vertical = via1Vertical;
}
public Aresta getVia2Horizontal() {
return via2Horizontal;
}
public void setVia2Horizontal(Aresta via2Horizontal) {
this.via2Horizontal = via2Horizontal;
}
public Aresta getVia2Vertical() {
return via2Vertical;
}
public void setVia2Vertical(Aresta via2Vertical) {
this.via2Vertical = via2Vertical;
}


public String getNome() {
return nome;
}

public void setNome(String nome) {
this.nome = nome;
}

public Ciclo getCiclo() {
return ciclo;
}

public void setCiclo(Ciclo ciclo) {
this.ciclo = ciclo;
}


public void setDefasagem(int defasagem) {
this.defasagem = defasagem;
}

}
Anexo 2 Classes do pacote AlgoritmoGenetico
Classe - AlgoritmoGenetico
package AlgoritmoGenetico;

import java.util.Random;


/**
* Classe que "implementa" o algoritmo gentico
*/
public class AlgoritmoGenetico{

private Populacao pop;
private float pcrossover = (float)0.8;
private float pmutate = (float)0.05;
//public long runtime;
public int generations;

/**
* Construtor
* @param pop uma populao
*/
public AlgoritmoGenetico(Populacao pop) {
this.pop = pop;
// this.runtime = 0;
this.generations = 100;

}
/**
* Construtor
* @param pop uma populao
* @param pcrossover a probabilidade de crossover
* @param pmutate a probabilidade de mutao
*/
AlgoritmoGenetico(Populacao pop, float pcrossover, float
pmutate, int mutation) {
this.pop = pop;
this.pcrossover = pcrossover;
this.pmutate = pmutate;
// this.runtime = 0;
this.generations = 100;

}

public Individuo search() {
// long startTime = System.currentTimeMillis();
Random gen = new Random();
double best = Double.POSITIVE_INFINITY;
int bestMutation = -1;

double lastfitpop = pop.getBestFit();
int ctr=0;

while( ctr < 1000 ) {

Populacao newpop = pop.getElite(1);

while( newpop.size() < pop.size() ) {
Individuo father =
pop.selecaoIndividuo();
Individuo mother =
pop.selecaoIndividuo();
Individuo[] child;

if (gen.nextFloat() <= pcrossover ) {
child =
father.crossover(mother);
} else {
child = new Individuo[2];
child[0]=(Individuo)
father.clone();
child[1]=(Individuo)
mother.clone();
}

// Probabilidade de ocorrer a mutacao
em cada um dos filhos
for ( Individuo o : child ) {

if (gen.nextFloat() <=
pmutate ) {
o.mutacao();
}
newpop.addIndividuo( o
);

}


}
pop = newpop;
if( pop.getBestFit() < lastfitpop ) {
ctr=0;
lastfitpop = pop.getBestFit();
System.out.print(pop.size()+"
"+pop.getBestFit()+" "+pop.getSumOfFitness()/pop.size()+"
"+pop.getWorstFit()+ " ");

System.out.println(pop.getBestIndividual());
} else {
ctr++;
}
this.generations++;
}

// runtime = System.currentTimeMillis()-startTime;
return pop.getBestIndividual();
}
}

Classe Individuo
package AlgoritmoGenetico;

import java.util.ArrayList;
import java.util.Random;


import principal.Ciclo;
import principal.MalhaViaria;
import principal.Vertice;

/**
* Classe para representar um indivduo da populao.
*/
public class Individuo {
private static Random gen = new Random();
private static Individuo[] children = new Individuo[2];

private int size;
public int[] cromossomo;
private Ciclo[] semafCiclos = new Ciclo[3];
private int tempoVerdeMinimo;
private int tempoVerdeMaximo;
private int tVerdeMinimo;
private int tVerdeMaximo;
private Double aptidao;

public Individuo() {
super();
//configuracao inicial dos ciclos
size = 35; //Tamanho do cromossomo 7 bits para cada
varivel de entrada (6 no total)
/*As variveis de entrada so:
*0-6: tempo de Verde da interseo 1
*7-13: tempo de verde da interseo 2
*14-20: tempo de verde da interseo 3
*21-27: instante de tempo que inicia o verde na interseo
2
*28-34: instante de tempo que incia o verde na interseo
3 */
cromossomo = new int[size];
iniciaCiclos();
tempoVerdeMinimo = 12; //Verde de segurana adotado
tempoVerdeMaximo = 53; //verde efetivo calculado no
trabalho menos o verde de segurana
tVerdeMinimo = 0; //instante limite minimo em que o
verde inicia
tVerdeMaximo = 77; //instante limite mximo em que o
verde inicia
}



public void iniciaCiclos() {

for (int i = 0; i < 3; i++){
semafCiclos[i] = new Ciclo();
semafCiclos[i].setR(2);
semafCiclos[i].setTCiclo(77);
semafCiclos[i].setTempoAmarelo(4);
semafCiclos[i].setTempoPerdido(4);
semafCiclos[i].setTempoVerde1((int)((Math.random()*41)
+12));
semafCiclos[i].setTv1((int) (Math.random()*77));
}
converterEmCromossomo(semafCiclos);
}


private void converterEmCromossomo(Ciclo[] semafCiclos2) {
int []parteCromo = new int[7];

int aux = semafCiclos2[0].getTempoVerde1();
parteCromo = inteiroParaVetorBinario(aux);
for (int i = 0; i < 7; i++){
cromossomo[i] = parteCromo[i];
}
aux = semafCiclos2[1].getTempoVerde1();
parteCromo = inteiroParaVetorBinario(aux);
for (int i = 0; i < 7; i++){
cromossomo[i+7] = parteCromo[i];
}
aux = semafCiclos2[2].getTempoVerde1();
parteCromo = inteiroParaVetorBinario(aux);
for (int i = 0; i < 7; i++){
cromossomo[i+14] = parteCromo[i];
}
aux = semafCiclos2[1].getTv1();
parteCromo = inteiroParaVetorBinario(aux);
for (int i = 0; i < 7; i++){
cromossomo[i+21] = parteCromo[i];
}
aux = semafCiclos2[1].getTv1();
parteCromo = inteiroParaVetorBinario(aux);
for (int i = 0; i < 7; i++){
cromossomo[i+21] = parteCromo[i];
}
aux = semafCiclos2[2].getTv1();
parteCromo = inteiroParaVetorBinario(aux);
for (int i = 0; i < 7; i++){
cromossomo[i+28] = parteCromo[i];
}
}



private int[] inteiroParaVetorBinario(int aux) {
int []binario = new int[7]; //adotei um vetor de 7
pois nenhum numero passa de 127
for (int i = 0; i < 7; i++){
binario[6-i] = aux%2;
aux = aux/2;

}
return binario;
}

/**
* fitness: representa a "abilidade"/adequabilidade do
indivduo para "resolver" o problema,
* isto , o custo que se pretende o menor possvel
* @return fitness
*/
public double avaliacao(){

MalhaViaria malhaTeste = new MalhaViaria();

for(int i = 0 ; i < malhaTeste.getIntersecoes().size();
i++){


((Vertice)malhaTeste.getIntersecoes().get(i)).setCiclo(semafCicl
os[i]);

}
aptidao = malhaTeste.getPI();
return aptidao; //Indice de performance da malha com os
valores deste individuo

}
/**
* mtodo abstracto que cruza dois indivduos e gera um array
de indivduos.
* @return Individual[], array de indivduos
*/
public Individuo[] crossover(Individuo other){
//System.out.println("OCORREU CROSS!!");
int r1 = gen.nextInt(size-1);
int r2 = gen.nextInt(size-2);
int cut1, cut2, j;


if( r2 >= r1 ){
cut1 = r1+1;
cut2 = r2+1;
} else {
cut1 = r2+1;
cut2 = r1+1;
}

int[] child1 = new int[size];
int[] child2 = new int[size];

for(int i=0;i<size;i++){

child1[i] = -1;
child2[i] = -1;
}

int[] father = this.cromossomo;
int[] mother = ((Individuo) other).cromossomo;

for(int i = cut1; i <= cut2;i++) {
child1[i] = father[i];
child2[i] = mother[i];
}

j =0;
for(int i=0; i < size; i++) {
if(child1[i]==-1){
child1[i] = mother[i];
}
/*if( !contains(mother[i], child1[i])) {
child1[j] = mother[i];
j++;
if( j==cut1)
j=cut2+1;
}*/
}
j=0;
for(int i=0; i < size; i++) {
if(child2[i]==-1){
child2[i] = father[i];
}
/*if( !contains(father[i], child2[i])) {
child2[j] = father[i];
j++;
if( j==cut1)
j=cut2+1;
}*/
}
children[0] = new Individuo();
children[1] = new Individuo();
//atribuir os novos valores do cromossomo decorrentes do
crossover para os filhos
children[0] = adicionarDadosDoCrossEm(children[0],
child1);
children[1] = adicionarDadosDoCrossEm(children[1],
child2);
return children;

}
public Individuo adicionarDadosDoCrossEm(Individuo novoInd,
int []child ){
int tempoDeVerdeAux = 0;
/*0-6: tempo de Verde da interseo 1 */
//decode(child);
for(int i = 0; i < 7; i++){
//System.out.println(child[i]);
tempoDeVerdeAux += Math.pow(2, 6-i)*child[i];

}
//System.out.println(tempoDeVerdeAux);
if(tempoDeVerdeAux > tempoVerdeMinimo && tempoDeVerdeAux
< tempoVerdeMaximo){

novoInd.semafCiclos[0].setTempoVerde1(tempoDeVerdeAux);
}
// 7-13: tempo de verde da interseo 2
tempoDeVerdeAux = 0;
for(int i = 0; i < 7; i++){
tempoDeVerdeAux += Math.pow(2, 6-i)*child[i+7];

}
if(tempoDeVerdeAux > tempoVerdeMinimo && tempoDeVerdeAux
< tempoVerdeMaximo){

novoInd.semafCiclos[1].setTempoVerde1(tempoDeVerdeAux);
}
// 14-20: tempo de verde da interseo 3
tempoDeVerdeAux = 0;
for(int i = 0; i < 7; i++){
tempoDeVerdeAux += Math.pow(2, 6-i)*child[i+14];

}
if(tempoDeVerdeAux > tempoVerdeMinimo && tempoDeVerdeAux
< tempoVerdeMaximo){

novoInd.semafCiclos[2].setTempoVerde1(tempoDeVerdeAux);
}
//21-27: instante de tempo que inicia o verde na
interseo 2
int instanteVerdeAux = 0;
for(int i = 0; i < 7; i++){
instanteVerdeAux += Math.pow(2, 6-i)*child[i+21];

}

if(instanteVerdeAux > tVerdeMinimo && instanteVerdeAux <
tVerdeMaximo){
novoInd.semafCiclos[1].setTv1(instanteVerdeAux);
}
// 28-34: instante de tempo que incia o verde na interseo
3
instanteVerdeAux = 0;
for(int i = 0; i < 7; i++){
instanteVerdeAux += Math.pow(2, 6-i)*child[i+28];

}
if(instanteVerdeAux > tVerdeMinimo && instanteVerdeAux <
tVerdeMaximo){
novoInd.semafCiclos[1].setTv1(instanteVerdeAux);
}
return novoInd;
}

public ArrayList getArestasDoMelhorIndividuo(){
MalhaViaria malhaTeste = new MalhaViaria();

for(int i = 0 ; i < malhaTeste.getIntersecoes().size();
i++){


((Vertice)malhaTeste.getIntersecoes().get(i)).setCiclo(semafCicl
os[i]);

}
malhaTeste.getPI();
return malhaTeste.getArestas();
}

/**
* Mtodo abstracto que opera uma mutao num indivduo.
*/
public void mutacao(){

int swap1 = gen.nextInt(size);
int swap2 = gen.nextInt(size-1);
if( swap2 >= swap1 )
swap2++;
int aux = cromossomo[swap1];
cromossomo[swap1] = cromossomo[swap2];
cromossomo[swap2] = aux;
adicionarDadosDoCrossEm(this, cromossomo);
aptidao = null;

}


public Object clone(){

return new Individuo();

}

public Ciclo[] getSemafCiclos() {
return semafCiclos;
}

public void setSemafCiclos(Ciclo[] semafCiclos) {
this.semafCiclos = semafCiclos;
}

}

Classe Populao
package AlgoritmoGenetico;


import java.util.ArrayList;
import java.util.Random;
import java.util.Collections;
/**
* Classe usada para a representao de uma populao.
*/
public class Populacao {
private boolean currupt;
private int size;
private ArrayList<Individuo> pop;
private ArrayList<Double> acum;
private static Random gen = new Random();
private Individuo bestInd;
private Individuo worstInd;
private double bestFit;
private double worstFit;
private double sumOfFitness;

/**
* Construtor relativo classe Population
*/
public Populacao(){
this.currupt = true;
this.size = 0;
this.pop = new ArrayList<Individuo>(100);
this.acum = new ArrayList<Double>(100);
this.sumOfFitness=0.0;
this.bestInd = null;
this.worstInd = null;
this.bestFit = Double.POSITIVE_INFINITY;
this.worstFit = Double.NEGATIVE_INFINITY;
}


/**
* Construtor onde se especifica a popolao
* @param indy um array de indivduos
*/

public Populacao(Individuo[] indy){
super();
pop = new ArrayList<Individuo>();
for(int i =0; i< indy.length; i++)
this.pop.add(indy[i]);
}

/**
* Selecciona e devolve um indivduo da populao, tendo em
conta a sua aptidao
* @return um array de indivduos
*/
public Individuo selecaoIndividuo() {

// Verifica se precisa calcular os valores de
probabilidade de seleco de cada indivduo
if( currupt ) {
double total=0.0;
for(int i=0; i < pop.size(); i++) {
total += pop.get(i).avaliacao();
acum.add(total/sumOfFitness);
}
currupt = false;
}

double r = gen.nextDouble();
int pos = Collections.binarySearch(acum, r);

if( pos >= 0)
return pop.get(pos);
else
if (-(pos+1) >= pop.size())
return pop.get(pop.size()-1);
else
return pop.get(-(pos+1));

}
/**
* Adiciona um indivduo populao
* @param ind, um indivduo
*/
public void addIndividuo(Individuo ind) {
size++;
pop.add(ind);
double f = ind.avaliacao();
sumOfFitness += f;
if( f > worstFit ) {
worstFit = f;
worstInd = ind;
}
if( f < bestFit ) {
bestFit = f;
bestInd = ind;
}
}

public Populacao getElite(int n){
Populacao p = new Populacao();
p.addIndividuo(this.bestInd);
return p;
}


public ArrayList<Double> getAcum() {
return acum;
}


public double getBestFit() {
return bestFit;
}


public Individuo getBestIndividual() {
return bestInd;
}


public double getSumOfFitness() {
return sumOfFitness;
}


public double getWorstFit() {
return worstFit;
}


public Individuo getWorstIndividual() {
return worstInd;
}


public int size() {
return size;
}


public ArrayList<Individuo> getPop() {
return pop;
}


public void setPop(ArrayList<Individuo> pop) {
this.pop = pop;
}

}