Elevate est un moteur de simulation d’ascenseurs en Java qui modélise un système d’assignation visant à réduire le temps d’attente et les goulots d’étranglement.
- Dispatching : Un système d'assignation qui permet à plusieurs voitures de se coordonner sur un même goulot d'étranglement si la demande dépasse la capacité d'une seule unité.
- Algorithme SolverRO : Calcul de score basé sur la masse de passagers, le temps d'attente moyen et la distance.
- Gestion des Arrêts : Les voitures décident de s'arrêter ou non sur leur chemin en fonction d'un seuil de rentabilité et de l'impact sur les passagers déjà à bord.
- Mode "Flush" : Une voiture proche de sa capacité maximale priorise le débarquement pour libérer des ressources rapidement.
src/main/java/com/elevate/
├── car/ # Physique et états (Car, Passenger, Direction)
├── dispatch/ # Intelligence et gestion (SolverRO, Stop)
├── simulation/ # Moteur de simulation
└── Main.java # Point d'entrée
Prérequis: Java 17 ou +
Le choix du prochain étage "goulot" pour une voiture IDLE est déterminé par :
Score = (Npassagers * a) + (Temps_attente * b) - (Distance * y)
Où :
a -> (Poids passagers) : Priorise les groupes importants.
b -> (Poids temps) : Réduit l'insatisfaction liée à l'attente longue.
y -> (Poids distance) : Optimise la consommation d'énergie et le temps de trajet à vide.