Skip to content

Simulation and control of a futuristic HyperLoop transport system, featuring transport management, real-time control algorithms with multi-threading, and performance analysis.

Notifications You must be signed in to change notification settings

Quinet-Maxence/HyperLoopProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation


Logo

HyperLoop Project - University Of Luxembourg

A project by Adam AISSOU, Daoud BOUSRI & Maxence QUINET

Table of Contents
  1. About The Project
  2. Map
  3. Usage
  4. What did we use?
  5. License
  6. Contact
  7. Acknowledgements

About The Project

This project was requested by the University of Luxembourg as part of our BINGO program for our 4th semester.

The project consists of creating a real simulation of the HyperLoop in Luxembourg. The HyperLoop simulation therefore required, to be realistic, some constraints:

  • Pods must hollow out to transport customers to the right places
  • The HyperLoop is a means of transport on demand. It does not have a pre-determined route like standard trains or buses.
  • Considering the speed of a pod, if a rail is used, then the next pod that wants to use this same rail must wait for this rail to become free
  • Some rails are uni-directional, others are bi-directional. That is to say that some rails only go in one direction. While others take care of the alelr and the return on their own.
  • To ensure transport, the pod must find the shortest possible route to bring these travelers.
  • Finally, if no pod is available in the station, the station calls a pod at the nearest station that has one.

For this project, we therefore decided to think carefully about what we are going to use: algorithms, inheritance, Multi-Threading ... We are 3 students to have done this project: Adam AISSOU, Daoud BOUSRI and Maxence QUINET.

Built With

It doesn't take much to get our program started. You just need an IDE supporting Java, and clone our project to launch it. Then, you are free to make changes.

Map

To facilitate the understanding of the application and the routes, here is a map with a legend:

Map

A pod can only contain 4 people at a time, here is a small diagram:

Pod

Usage

This project is useful for understanding how to implement a shortest path finding algorithm, Synchronized Multi-Threading, and for testing its logic.

What did we use?

We opted to use Dijkstra's algorithm, which allows the train to find the shortest path. For pod request to neighboring stations. We decided to use part of Dijkstra's algorithm. Since it needs the neighbors of each node to be able to know which is the shortest path.

To synchronize the Threads, we simply used the keyword 'synchronized' to synchronize the rails on which the trains will pass.

We also made a passenger generator to make the Main.java more flexible, and random, which makes each run unique.

Here are some pictures we get in the console after execution:

License

No License because this is just a student project :) .

Contact

Project Link: https://github.com/coast-uni-lu/a3-2021-luxhyperloop-luxhyperloop-2021-team14

Acknowledgements

About

Simulation and control of a futuristic HyperLoop transport system, featuring transport management, real-time control algorithms with multi-threading, and performance analysis.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages