feat: Phase 4 - Jackson's theorem analytical module
Implement analytical analysis using Jackson's theorem for open networks Jackson's Theorem Implementation: - analytics/jackson.py: Complete Jackson theorem analyzer - Calculate effective arrival rates (λᵢ) - Calculate utilizations (ρᵢ = λᵢ/μᵢ) - Stability check (ρᵢ < 1 for all queues) - M/M/1 formulas: L = ρ/(1-ρ), W = L/λ - System-wide metrics using Little's Law - Handles both stable and unstable queues Mathematical Formulas: - Effective arrival rates for network topology - Utilization: ρᵢ = λᵢ / μᵢ - Average customers: Lᵢ = ρᵢ / (1 - ρᵢ) - Average time: Wᵢ = Lᵢ / λᵢ (Little's Law) - Average wait: Wq = W - 1/μ - Total system: L_total = Σ Lᵢ, W_total = L_total / λ₀ Comparison Module: - analytics/comparison.py: Compare analytical vs simulation - QueueComparison for per-queue metrics - NetworkComparison for system-wide comparison - Percentage difference calculations - Formatted comparison reports Testing & Validation: - tests/test_analytics.py: 7 tests validating Jackson's theorem - Simple M/M/1 queue (analytical vs theory) - Unstable queue detection (ρ > 1) - Network with multiple servers - Little's Law validation (L = λW) - Probability conservation - Effective arrival rates - Multi-server stability Demo & Examples: - demo_analytical.py: Compare analytical vs simulation for scenarios - Runs scenarios 1-3 - Shows theoretical predictions - Shows simulation results - Detailed comparison tables - Percentage differences Results: -✅ All 7 analytical tests pass -✅ Little's Law validated for all queues -✅ Stability detection working correctly -✅ Comparison reveals expected statistical variation Observations: - Analytical predictions are accurate for stable systems - Simulation shows statistical variation (finite sample) - Unstable queues detected correctly (ρ ≥ 1) - Differences increase with higher utilization Phase 4 Complete ✓ Next: Phase 5 - Backend API implementation
Veuillez vous inscrire ou vous connecter pour commenter