Personal Project
QueueRoute
QueueRoute models load carriers moving through constrained warehouse resources such as conveyors, picking stations, buffers, sorters, and outbound lanes. It compares routing planners, measures throughput and waiting times, and identifies bottlenecks, failure hotspots, and saturated resources.
Problem
Static shortest-path routing can repeatedly select the same route and overload a constrained resource, even when alternative paths have available capacity. The project explores how multi-route selection and current resource availability can improve warehouse throughput.
Technical Approach
- Represented warehouse layouts as directed graphs configured through JSON files.
- Implemented a Dijkstra planner for single lowest-cost route selection.
- Implemented depth-first enumeration to discover multiple simple routes between source and destination.
- Evaluated candidate routes using estimated completion time, node availability, and queue capacity.
- Built a discrete-event simulation that records command-level and node-level metrics.
- Separated domain, routing, simulation, infrastructure, CLI, and test responsibilities into dedicated .NET projects.
- Added planner-comparison commands, performance benchmarks, and memory-allocation analysis.
Highlights
- Improved completion rate from 19.00% to 92.84% in the sample multi-route scenario
- Completed 3,692 additional commands compared with static Dijkstra routing
- Bottleneck and failure-hotspot detection
- Queue-capacity-aware route rejection
- Drain-mode simulation
- CLI-based planner comparison
- BenchmarkDotNet execution-time and memory benchmarks
Technologies
C#.NETDiscrete-Event SimulationGraph AlgorithmsDijkstraDepth-First SearchBenchmarkDotNetJSONCLITesting