Commit 92152fa2 rédigé par Hamadou Ba's avatar Hamadou Ba
Parcourir les fichiers

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
parent d861a273
Prend en charge le Markdown
0% ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message !
Veuillez vous inscrire ou vous pour commenter