Q-learning algorithm for UAV pathfinding in a grid-world search-and-rescue scenario.
qlearning_maze/ # Core Python package
env.py # Grid-world environment with UAV sensing
q_learning.py # Tabular Q-learning agent
data_loader.py # CSV trajectory data loader
scripts/ # Entry-point scripts
train.py # Train the Q-learning agent
test.py # Evaluate a trained agent
visualize.py # Pygame real-time visualization
vis_q_table.py # Plot learned policy per cell
vis_reward.py # Plot training reward curves
data/ # UAV trajectory CSV data
result/ # Saved models and outputs
# Install dependencies
pip install -r requirements.txt
# Train on a 10x10 grid with random-start
python scripts/train.py --height 10 --width 10 --radius 3 \
--episodes 1000 --epsilon 0.2 --reset-mode random \
--reward-levels 1 2 5 8 --done-humans 3
# Train on a 20x20 grid with edge-start (original config)
python scripts/train.py --height 20 --width 20 --radius 5 \
--episodes 500 --epsilon 0.9
# Evaluate the trained model
python scripts/test.py --height 10 --width 10 --radius 3 \
--reset-mode random --reward-levels 1 2 5 8 --done-humans 3
# Visualize policy
python scripts/vis_q_table.py --result-dir result
# Visualize reward curve
python scripts/vis_reward.py --reward-file result/reward.npy
# Pygame visualization
python scripts/visualize.py --height 10 --width 10 --radius 3