How varunnaikr/multi-objective-uav-route-optimization-and-simulation works
This repository is a UAV medical-delivery route-planning demo with a Streamlit interface and a command-line entry point. Its workflow generates candidate delivery routes, evaluates energy, fatigue, and time, selects an algorithm using mission context, and presents route comparisons and step-by-step simulation. Both entry points also retrieve relevant knowledge through a local embedding-and-FAISS RAG module. The excerpts show the main orchestration and core algorithms; some Streamlit calls are in omitted lines, so uncertain wiring is not expanded.
Main entry points: app.py Streamlit App · main.py CLI Runner · optimizer.py Route Evaluation · rag.py RAG Retrieval
Components 17
User Interfaces
- Streamlit App
app.py - CLI Runner
main.py - Route Plotting
utils.py
Knowledge Retrieval
- Knowledge Text
knowledge.txt - RAG Retrieval
rag.py - Embedding Model
- FAISS Index
Route Planning
- Route Generation
optimizer.py - MPDD Optimizer
optimizer.py - MILP Optimizer
optimizer.py - Pareto Search
optimizer.py - Route Evaluation
optimizer.py - Route Simulation
optimizer.py - Algorithm Scoring
agent.py
Mission Model
- Locations And Loads
data.py - Battery Limit
config.py
Other components
- Operator
Connections 30
- Operator → Streamlit App: sets mission
- Streamlit App → RAG Retrieval: requests retrieval
- Streamlit App → Route Generation: generates routes
- Streamlit App → MPDD Optimizer: requests MPDD
- Streamlit App → MILP Optimizer: requests MILP
- Streamlit App → Pareto Search: requests Pareto
- Streamlit App → Route Evaluation: evaluates routes
- Streamlit App → Algorithm Scoring: scores algorithms
- Streamlit App → Route Simulation: simulates routes
- Streamlit App → Route Plotting: renders routes
- Operator → CLI Runner: runs planner
- CLI Runner → RAG Retrieval: requests retrieval
- CLI Runner → Route Generation: generates routes
- CLI Runner → Algorithm Scoring: requests decision
- CLI Runner → MPDD Optimizer: selects optimizer
- CLI Runner → MILP Optimizer: selects optimizer
- CLI Runner → Pareto Search: selects Pareto route
- CLI Runner → Route Plotting: plots route
- RAG Retrieval → Knowledge Text: loads text
- RAG Retrieval → Embedding Model: encodes text
- RAG Retrieval → FAISS Index: builds and searches
- Route Generation → Locations And Loads: uses locations
- Route Evaluation → Locations And Loads: reads locations and loads
- Route Evaluation → Battery Limit: checks capacity
- MPDD Optimizer → Route Evaluation: evaluates candidates
- MILP Optimizer → Route Evaluation: evaluates candidates
- Pareto Search → Route Evaluation: evaluates candidates
- Route Simulation → Locations And Loads: reads locations and loads
- Route Simulation → Battery Limit: uses capacity setting
- Route Plotting → Locations And Loads: reads coordinates