A graph-based transit route evaluation system built in Java that optimizes routes based on Time, Fare, and Capacity constraints using a modified Dijkstra’s algorithm and greedy passenger assignment.
- Graph modeling using adjacency list
- Multi-factor route cost evaluation (Time + Fare + Capacity Penalty)
- Modified Dijkstra’s Algorithm
- Greedy passenger assignment under capacity constraints
- Console-based input/output system
- Java (Core)
- Graph Data Structures
- Modified Dijkstra’s Algorithm
- Greedy Optimization
- File I/O
- Build a directed graph from transit segments.
- Compute optimal path using custom-cost Dijkstra.
- Assign passengers greedily.
- Update remaining capacities.
- Dijkstra’s Algorithm: O((V + E) log V)
- Passenger Assignment: O(E)
- Overall: Efficient for medium-scale transit networks.
javac TransitRouteEngin.java
java TransitRouteEngin
📊 Example Output
Best Route: O1 → O2 → O3
Total Time: 25 min
Total Fare: ₹12
Passengers Assigned: 50
