Skip to content

trinetra110/fire-evacuation-simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

20 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ”ฅ Advanced Fire Evacuation Simulator with AI Pathfinding

C++ Windows License Pathfinding AI

A real-time terminal-based fire evacuation simulation featuring advanced AI pathfinding algorithms including A*, Dijkstra's algorithm, BFS, and hybrid adaptive pathfinding. This C++ simulation demonstrates intelligent agent behavior, emergency evacuation scenarios, and dynamic algorithm selection for optimal escape routes.

๐Ÿ“ฝ๏ธ Demo

fire-evacuation-simulator.mp4

๐ŸŽฏ Key Features

๐Ÿง  AI Pathfinding Algorithms

  • A* (A-Star) - Heuristic-based optimal pathfinding
  • Dijkstra's Algorithm - Weighted pathfinding with fire danger zones
  • BFS (Breadth-First Search) - Guaranteed shortest path
  • Hybrid Adaptive - Dynamic algorithm switching based on conditions
  • Multi-Objective - Balances safety vs speed with configurable weights

๐Ÿ”ฅ Fire Simulation

  • Dynamic Fire Spread - Probabilistic propagation to adjacent cells
  • Fire-Aware Pathfinding - Algorithms adapt to avoid dangerous zones
  • Real-time Danger Assessment - Continuous fire proximity evaluation

๐Ÿƒโ€โ™‚๏ธ Smart Agent Behavior

  • Adaptive Decision Making - Agents switch algorithms based on situation
  • Individual Intelligence - Each person uses optimal pathfinding strategy
  • Real-time Path Recalculation - Responds to changing fire conditions

๐ŸŽฎ Controls

Key Action Description
Q Quit Exit simulation
M Manual Mode Step-by-step control
A Auto Mode Continuous simulation
SPACE Next Step Advance one step (manual mode)

๐Ÿš€ Quick Start

Prerequisites

  • Windows OS (uses Windows Console API)
  • C++ Compiler (GCC, MinGW, MSVC, or Clang)
  • C++11 Standard or later

Installation

  1. Clone Repository

    git clone https://github.com/yourusername/fire-evacuation-simulator.git
    cd fire-evacuation-simulator
  2. Compile

    g++ -std=c++11 -O2 -o fire_sim.exe main.cpp Grid.cpp Person.cpp Fire.cpp SimulationManager.cpp PathfindingAlgorithms.cpp
  3. Run

    ./fire_sim.exe

๐Ÿ—๏ธ Architecture

Core Components

  • PathfindingAlgorithms - Multiple algorithm implementations with dynamic selection
  • Person (AI Agent) - Adaptive intelligence with real-time strategy switching
  • Grid Management - Building layout, visualization, and obstacle handling
  • Fire System - Spreading fire mechanics with danger zone calculation
  • SimulationManager - Real-time orchestration and statistics

Project Structure

๐Ÿ“ฆ fire-evacuation-simulator/
โ”œโ”€โ”€ main.cpp                     # Application entry point
โ”œโ”€โ”€ Position.h                   # 2D coordinate system
โ”œโ”€โ”€ Grid.h/.cpp                  # Building layout & visualization
โ”œโ”€โ”€ Person.h/.cpp                # AI agent with pathfinding
โ”œโ”€โ”€ Fire.h/.cpp                  # Fire spread mechanics
โ”œโ”€โ”€ PathfindingAlgorithms.h/.cpp # Advanced pathfinding library
โ”œโ”€โ”€ SimulationManager.h/.cpp     # Simulation orchestration
โ””โ”€โ”€ README.md                    # Documentation

๐Ÿงฎ Algorithm Performance

Algorithm Best For Time Complexity Use Case
A* Speed with heuristics O(b^d) Early stages, low fire danger
Dijkstra Safety-prioritized O((V+E)logV) High fire danger situations
BFS Shortest path guarantee O(V+E) Simple scenarios
Hybrid Dynamic adaptation Variable Changing conditions
Multi-Objective Balanced decisions O((V+E)logV) Complex scenarios

๐Ÿ“Š Simulation Display

Symbol Meaning Description
P Person AI agent using pathfinding
F Fire Spreading danger zone
E Exit Emergency evacuation point
# Wall Impassable structure
Empty Safe walkable space

๐Ÿ”ง Customization

Building Layout

// Add walls in Grid::initializeGrid()
cells[row][col] = '#';

// Add exits
exits.push_back(Position(x, y));

Fire Behavior

// Adjust spread rate in Fire::spread()
if (rand() % 100 < 40) {  // 40% spread rate
    newFires.push_back(neighbor);
}

Algorithm Weights

// Multi-objective optimization
findPathMultiObjective(grid, start, goal, fires, 
                      0.8,  // Safety weight
                      0.2); // Speed weight

๐ŸŽ“ Applications

  • Computer Science Education - Algorithm visualization and comparison
  • Emergency Management Training - Evacuation planning and bottleneck analysis
  • Research - Multi-agent systems and optimization problems
  • Algorithm Benchmarking - Performance comparison in dynamic scenarios

๐Ÿ“ˆ Features

Dynamic Algorithm Selection

Intelligent selection based on fire proximity, simulation time, distance to goal, and fire density.

Real-time Statistics

  • People rescued/casualties/active evacuees
  • Success rate and simulation steps
  • Individual agent algorithm status and positions

Cross-Platform Notes

For Linux/macOS: Replace Windows-specific headers and console functions.

๐Ÿ“œ License

MIT License - see LICENSE file for details.


Keywords: Fire evacuation simulation, pathfinding algorithms, A* algorithm, Dijkstra algorithm, BFS pathfinding, emergency evacuation, AI simulation, C++ pathfinding, adaptive algorithms, multi-objective optimization, emergency planning, crowd simulation, building evacuation, fire safety simulation, intelligent agents, real-time pathfinding, evacuation modeling, emergency response training, computer science education, algorithm visualization.

About

A real-time terminal-based fire evacuation simulation featuring advanced AI pathfinding algorithms including A*, Dijkstra's algorithm, BFS, and hybrid adaptive pathfinding. This C++ simulation demonstrates intelligent agent behavior, emergency evacuation scenarios, and dynamic algorithm selection for optimal escape routes.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages