Proposta do Problema
Caso somente carros
Considere que n=100 carros irão cruzar a ponte, 50 em cada sentido. O tempo de chegada de cada carro Ta é aleatório, variando entre 2 segundos e 8 segundos. O tempo de travessia de cada carro pela ponte Tc é de 10 segundos, considerar um espeço Ts =2 seg entre os veículos.. Quando P=5 carros cruzarem a ponte, deverá trocar o sentido do tráfego, caso haja veículos para cruzar no sentido inverso.
Dados n = 100, Ta = 2 a 8 seg, Tc = 10 seg, Ts =2 seg, P=5.
Caso carros e caminhões
Agora, nosso problema inclui caminhões que são mais lentos e por questão de segurança, devem cruzar a ponte sozinhos. Considere agora que n=100 carros e m=6 caminhões irão cruzar a ponte, 50 carros e 3 caminhões em cada sentido. O tempo de chegada de cada carro ou caminhão Ta é aleatório, variando entre 2 segundos e 8 segundos. O tempo de travessia de cada carro pela ponte Tc é de 10 segundos e o tempo de travessia de cada caminhão Tt é de 20 segundos, considerar um espeço Ts =2 seg entre os veículos. Por questão de segurança, um caminhão deverá cruzar a ponte sozinho (espera o carro da frente terminar a travessia).
Considere n = 100, m=6, Ta = 2 a 8 seg, Tc = 10 seg, Tt = 20 seg, Ts =2 seg, P=5.
Caso sem sinalizador
Neste caso, não existe um sinalizador na ponte indicando o sentido do fluxo, apenas carros autônomos. A lógica é que quando um carro chegar na ponte, se houver outro veículo atravessando no mesmo sentido, ele pode cruzar. Se houver veículo no sentido contrário, aguarda este terminar a travessia para tentar atravessar. Crie um mecanismo que permita a travessia da ponte sem causar acidentes, e semter deadlocks ou starvation.
Dados n = 100, Ta = 5 a 20 seg, Tc = 10 seg, Ts =2 seg.
Implementação
O trabalho prático consiste em escrever um programa em C, C++, Java ou Python para simular a situação
Utilizar as seguintes classes:
- Carros.
- Caminhões.
- Sinalizadores (ente que permite ou impede a passagem do veículo nas cabeceiras da ponte).
Ao final da execução deve ser calculado:
- Quantidade de veículos (carros e caminhões) que cruzaram.
- Tempo mínimo, máximo e médio de espera dos veículos na fila.
- Tempo de utilização da ponte (tempo utilizado/tempo total).
Avaliação
A avaliação consiste em uma apresentação oral e um trabalho escrito.
Apresentação Oral
Os alunos deverão fazer uma apresentação oral do trabalho realizado em data a ser marcada. Na apresentação deverá mostrar a análise do problema, as formas de resolução, as decisões de implementação e a apresentação da execução do programa. Considera-se a execução correta se o programa cumprir o determinado sem a ocorrência de deadlocks ou starvation.
O calendário de apresentação será definido futuramente.
Trabalho Escrito
Os alunos deverão entregar um relatório escrito com os seguintes tópicos:
- Formulação do problema
- Descrição dos algoritmos
- Descrição da Implementação (diagrama de classes)
- Resultados