1. 30 déc., 2025 2 validations
    • Hamadou Ba's avatar
      feat: Phase 4 - Jackson's theorem analytical module · 92152fa2
      Hamadou Ba a écrit
      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
      92152fa2
    • Hamadou Ba's avatar
      feat: Phase 1 - Project setup and infrastructure · 5568088c
      Hamadou Ba a écrit
      Initialize Turborepo monorepo with Python backend and React frontend
      
      - Setup Turborepo configuration with workspaces
      - Configure Python FastAPI backend
        - Create project structure (core, analytics, api, models)
        - Add requirements.txt with FastAPI, Uvicorn, Pydantic, etc.
        - Basic FastAPI app with health endpoints
        - CORS middleware for frontend integration
      - Configure React + TypeScript + Vite frontend
        - Install dependencies (Chart.js, D3.js, Zustand, Axios)
        - Setup Tailwind CSS with PostCSS
        - Create component directory structure
        - Basic landing page with Tailwind styling
      - Add comprehensive README files
      - Configure .gitignore for Python and Node.js
      
      Phase 1 Complete ✓
      Next: Phase 2 - Core simulation engine implementation
      5568088c