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

feat: Phase 2 - Core simulation engine implementation

Implement event-driven discrete simulation for queueing networks

Core Components:
- events.py: Event and EventType for discrete event simulation
  - Priority queue ordering by time
  - ARRIVAL and SERVICE_END event types

- request.py: Request entity with full visit tracking
  - QueueVisit records for each queue visited
  - Automatic calculation of wait/service/system times
  - Journey tracking through network

- random_utils.py: Random number generation
  - Exponential distribution (inverse transform method)
  - Probabilistic choice for routing decisions
  - Seed control for reproducibility

- queues.py: M/M/1 Queue implementation
  - FIFO discipline with single server
  - Complete statistics collection (utilization, avg times)
  - Exponential service times

- router.py: Probabilistic routing logic
  - Route from coordinator: exit (p) or server (qi)
  - Route from server: always return to coordinator
  - Probability conservation validation

- simulation.py: Main event-driven simulator
  - Priority queue (heapq) for event scheduling
  - Warmup period to reach steady state
  - Complete statistics generation
  - Support for multiple servers

Testing:
- test_random_utils.py: Validate exponential distribution (mean, reproducibility)
- test_simulation.py: End-to-end simulation tests
  - Stable and unstable systems
  - Multiple servers
  - Reproducibility with seeds

Demo:
- demo_simulation.py: Scenario 1 demonstration (1 fast server)
- Theoretical vs simulation comparison
- All 14 tests passing ✓

Phase 2 Complete ✓
Next: Phase 3 - Statistics collection and multi-server scenarios
parent 5568088c
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