PROJECT/
├── README.md # Project overview and features
├── QUICKSTART.md # Quick installation and usage guide
├── AI_TECHNIQUES_EXPLAINED.md # Detailed AI algorithms documentation
├── main.py # Main entry point for simulation
├── setup.sh # Setup script for installation
├── requirements.txt # Python dependencies
├── .gitignore # Git ignore file
│
└── src/ # Source code modules
├── __init__.py # Package initialization
├── warehouse.py # Grid environment and package management
├── robot.py # Autonomous robot agent with AI
├── simulator.py # Simulation orchestration
├── visualizer.py # Matplotlib visualization
├── uninformed_search.py # BFS, DFS, UCS, IDDFS algorithms
├── informed_search.py # A* with multiple heuristics
├── local_search.py # Hill Climbing, Simulated Annealing
├── adversarial_search.py # Minimax, Alpha-Beta, Expectimax
└── csp.py # Constraint Satisfaction for task allocation
- Purpose: Manages warehouse grid environment
- Key Classes:
Warehouse,Package,CellType - Features:
- Grid management with obstacles, packages, drop zones
- Parking zones for idle robots
- Dynamic package tracking and removal
- Purpose: Autonomous robot agent with AI decision-making
- Key Classes:
Robot,RobotState - Features:
- Multi-state FSM (idle, moving, picking, dropping, parking, blocked)
- Package priority system (robots WITH packages > robots WITHOUT)
- Oscillation detection and escape
- Conflict resolution with priority-based yielding
- Parking zone management
- Purpose: Orchestrates multi-robot simulation
- Key Classes:
WarehouseSimulator - Features:
- Multi-robot coordination
- Package assignment using CSP
- Statistics tracking
- Step-by-step execution
- Purpose: Real-time visualization
- Key Classes:
WarehouseVisualizer,SimpleVisualizer - Features:
- Matplotlib GUI with grid display
- Real-time statistics panel (compact format)
- Color-coded robots, packages, obstacles, drop zones, parking areas
- Algorithms: BFS, DFS, UCS, IDDFS
- Use Case: Basic pathfinding, fallback for complex scenarios
- Algorithms: A* with Manhattan, Euclidean, Chebyshev heuristics
- Use Case: Primary pathfinding with optimal paths
- Algorithms: Hill Climbing, Simulated Annealing
- Use Case: Path optimization, local improvements
- Algorithms: Minimax, Alpha-Beta Pruning, Expectimax
- Use Case: Conflict resolution, multi-agent decision making
- Algorithms: Backtracking with MRV, LCV heuristics
- Use Case: Optimal package-to-robot task allocation
- Primary command-line interface
- Configurable parameters (grid size, robots, packages, obstacles)
- Example:
python main.py --width 30 --height 30 --robots 10 --packages 20
numpy>=1.24.0
matplotlib>=3.7.0
colorama>=0.4.6
- Excludes:
venv/,__pycache__/,*.pyc,*.pyo,.DS_Store
- Package Priority System: Robots with packages get right-of-way
- Parking Zones: Idle robots move to designated parking area (5x5 corner)
- Interior Parking Priority: Robots fill parking from inside out
- Conflict-Free Parking: Robots dynamically choose alternative spots
- Oscillation Detection: Tracks position history, escapes loops
- Dynamic Obstacle Avoidance: Real-time path replanning around other robots
- Drop Zone Congestion Handling: Priority-based waiting for deliveries
- Compact Statistics Display: Fits all robot data in visualization panel
Course: CSL304 - Artificial Intelligence
Institution: IIT Bhilai
Project Type: Multi-Agent System with AI Techniques Integration
Semester: 5 (2024-25)