README Autonomous Rail Logistics System
A C++ command-line simulation of an autonomous train network for package delivery across Texas, featuring intelligent pathfinding, collision avoidance, and real-time logistics optimization. Overview This system simulates a fully automated rail network that operates 24/7 without human operators. It demonstrates how autonomous trains can efficiently deliver packages across a major Texas rail network while avoiding collisions and optimizing routes. Key Features Core Systems
- Graph-based Rail Network: Models the Texas rail infrastructure with 10 major stations, 15 tracks, and 5 switches.
- A Pathfinding Algorithm: Calculates optimal routes between any two stations using distance and speed heuristics
- Multi-Train State Management: Tracks GPS position, status, cargo, and destination for each train in real-time
- Collision Detection & Avoidance: Uses time-space conflict resolution to prevent collisions and dynamically reroute trains
- Package Routing System: Intelligently assigns packages to trains and handles transfers when necessary
- Switch Control with Manual Override: Automated switch management with ability to manually intervene Simulation Capabilities
- Real-time text-based visualization of train movements
- Performance metrics tracking (collision rate, delivery efficiency, runtime)
- Multiple simulation modes (Quick Test, Standard Run, Heavy Load, Custom)
- Autonomous operation with minimal human intervention Texas Rail Network The simulation includes these major Texas cities:
- Houston Central
- Dallas Fort Worth
- San Antonio
- Austin
- El Paso
- Corpus Christi
- Fort Worth
- Lubbock
- Amarillo
- Beaumont
Connected by 15 tracks with varying distances and speed limits. Menu Options
- Quick Test: 5 trains, 20 packages, 10 minutes - Quick demonstration
- Standard Run: 10 trains, 50 packages, 30 minutes - Typical workload
- Heavy Load: 20 trains, 100 packages, 60 minutes - Stress test
- Custom Simulation: Define your own parameters
- Exit: Close the simulation Output Information During simulation, you'll see:
- Time: Current simulation time in minutes
- Active Trains: Number of trains and their status (Moving, Idle, Loading, Waiting)
- Packages in Transit: Total packages currently on trains
- Packages Delivered: Delivery progress (delivered/total created)
- Average Delivery Time: Mean time from package creation to delivery
- Collision Rate: Number of collisions (should be 0)
- Reroutes: Number of times trains were dynamically rerouted to avoid conflicts Success Criteria Based on the project requirements:
- 0% Collision Rate: Collision avoidance system prevents all conflicts
- High Delivery Efficiency: Optimized routing ensures efficient package delivery
- 1200+ Minute Runtime: Supports extended simulation periods
- Edge Case Handling: Manages track deactivation, rerouting, and capacity constraints Architecture Core Components
- RailNetwork: Graph representation of stations, tracks, and switches
- PathFinder: A* algorithm implementation for optimal route calculation
- Train: State machine managing train movement, cargo, and status
- Package: Package lifecycle management from origin to destination
- CollisionAvoidance: Time-space reservation system preventing conflicts
- Simulation: Main simulation engine coordinating all components Design Principles
- Layered architecture separating concerns
- Object-oriented design with clear interfaces
- Efficient graph algorithms for pathfinding
- Real-time conflict resolution
- Scalable to handle multiple trains and packages Technical Details
- Language: C++17 Future Enhancements
- Weather disruption simulation
- Priority-based package routing
- Detailed logging with replay capability
- Configurable network loader for different rail maps
- Multi-objective optimization (speed, fuel, capacity)