faltou um integrante no grupo
This commit is contained in:
31
README.md
31
README.md
@@ -1,19 +1,23 @@
|
|||||||
# Fleet Assignment Optimization - Força Aérea Brasileira
|
# Fleet Assignment Optimization - Força Aérea Brasileira
|
||||||
|
|
||||||
## Integrantes do Grupo
|
## Integrantes do Grupo
|
||||||
|
|
||||||
|
- 1T Willia
|
||||||
- 1T Lago
|
- 1T Lago
|
||||||
- 1T Figueiredo
|
- 1T Figueiredo
|
||||||
- 1T Fialho
|
- 1T Fialho
|
||||||
|
|
||||||
## Sobre o Projeto
|
## Sobre o Projeto
|
||||||
O presente trabalho aborda o problema clássico de **Fleet Assignment** (Alocação de Frota) aplicado ao contexto do transporte logístico aéreo militar.
|
|
||||||
|
|
||||||
O sistema foi desenvolvido como uma aplicação interativa (Dashboard Web) acoplada a um modelo matemático avançado. O objetivo é designar de forma ótima os diferentes modelos de aeronaves de transporte (C-97, C-95M, C-105, KC-390, KC-30, C-99A, C-98 e C-98A) de seus respectivos Esquadrões para atender à matriz de passageiros solicitada.
|
O presente trabalho aborda o problema clássico de **Fleet Assignment** (Alocação de Frota) aplicado ao contexto do transporte logístico aéreo militar.
|
||||||
|
|
||||||
|
O sistema foi desenvolvido como uma aplicação interativa (Dashboard Web) acoplada a um modelo matemático avançado. O objetivo é designar de forma ótima os diferentes modelos de aeronaves de transporte (C-97, C-95M, C-105, KC-390, KC-30, C-99A, C-98 e C-98A) de seus respectivos Esquadrões para atender à matriz de passageiros solicitada.
|
||||||
|
|
||||||
A arquitetura equilibra a maximização do atendimento de passageiros com a **minimização dos custos logísticos** (consumo de combustível em litros e penalidades de pernoite em bases externas), tudo isso balizado por limites de alcance, velocidades, tamanho físico das frotas disponíveis nas bases (Emissores) e capacidade de passageiros de cada aeronave.
|
A arquitetura equilibra a maximização do atendimento de passageiros com a **minimização dos custos logísticos** (consumo de combustível em litros e penalidades de pernoite em bases externas), tudo isso balizado por limites de alcance, velocidades, tamanho físico das frotas disponíveis nas bases (Emissores) e capacidade de passageiros de cada aeronave.
|
||||||
|
|
||||||
### O Modelo Matemático
|
### O Modelo Matemático
|
||||||
O núcleo de otimização foi construído utilizando Programação Linear Inteira Mista (MILP) processada pelo solver **SCIP** (implementado com *Google OR-Tools*). A modelagem contempla:
|
|
||||||
|
O núcleo de otimização foi construído utilizando Programação Linear Inteira Mista (MILP) processada pelo solver **SCIP** (implementado com _Google OR-Tools_). A modelagem contempla:
|
||||||
|
|
||||||
- **Função Objetivo:** $\min \sum_{t} \sum_{r} (c_{r} \cdot x_{r,t}) + \sum_{t} \sum_{d} (M \cdot s_{d,t})$
|
- **Função Objetivo:** $\min \sum_{t} \sum_{r} (c_{r} \cdot x_{r,t}) + \sum_{t} \sum_{d} (M \cdot s_{d,t})$
|
||||||
O algoritmo minimiza o custo total de combustível das missões ($c_r$), somado à grande penalidade ($M$) associada às variáveis de folga ($s_{d,t}$), forçando a malha a alocar missões para não deixar passageiros para trás, sempre que exequível.
|
O algoritmo minimiza o custo total de combustível das missões ($c_r$), somado à grande penalidade ($M$) associada às variáveis de folga ($s_{d,t}$), forçando a malha a alocar missões para não deixar passageiros para trás, sempre que exequível.
|
||||||
@@ -23,7 +27,9 @@ O núcleo de otimização foi construído utilizando Programação Linear Inteir
|
|||||||
- **Limites de Estoque:** As decolagens originadas de uma localidade jamais podem exceder a propriedade física do $\text{MaxFleet}$ distribuída para o esquadrão emissor.
|
- **Limites de Estoque:** As decolagens originadas de uma localidade jamais podem exceder a propriedade física do $\text{MaxFleet}$ distribuída para o esquadrão emissor.
|
||||||
|
|
||||||
### Resultados Obtidos
|
### Resultados Obtidos
|
||||||
|
|
||||||
A ferramenta é capaz de rodar a otimização global e extrair métricas gerenciais comparativas:
|
A ferramenta é capaz de rodar a otimização global e extrair métricas gerenciais comparativas:
|
||||||
|
|
||||||
- **Baseline Fuel (Não-Otimizado):** O sistema isola qual seria o consumo nominal caso as demandas fossem atendidas de modo bruto.
|
- **Baseline Fuel (Não-Otimizado):** O sistema isola qual seria o consumo nominal caso as demandas fossem atendidas de modo bruto.
|
||||||
- **Optimized Fuel Consumption:** Retorna o custo de combustível estrito gerado pelo motor SCIP.
|
- **Optimized Fuel Consumption:** Retorna o custo de combustível estrito gerado pelo motor SCIP.
|
||||||
- **Total Savings:** Revela à chefia o percentual quantitativo de economia gerada pela roteirização matemática contra o plano base.
|
- **Total Savings:** Revela à chefia o percentual quantitativo de economia gerada pela roteirização matemática contra o plano base.
|
||||||
@@ -32,7 +38,9 @@ A ferramenta é capaz de rodar a otimização global e extrair métricas gerenci
|
|||||||
---
|
---
|
||||||
|
|
||||||
## 📂 Arquitetura do Projeto
|
## 📂 Arquitetura do Projeto
|
||||||
|
|
||||||
O projeto foi estruturado utilizando padrões modernos de software:
|
O projeto foi estruturado utilizando padrões modernos de software:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
/
|
/
|
||||||
├── app/
|
├── app/
|
||||||
@@ -54,27 +62,30 @@ O projeto foi estruturado utilizando padrões modernos de software:
|
|||||||
## 🛠️ Guia de Instalação e Execução
|
## 🛠️ Guia de Instalação e Execução
|
||||||
|
|
||||||
### 1. Instalar o Python (3.12+)
|
### 1. Instalar o Python (3.12+)
|
||||||
|
|
||||||
Abra seu terminal/prompt e utilize o gerenciador de pacotes nativo do seu Sistema Operacional:
|
Abra seu terminal/prompt e utilize o gerenciador de pacotes nativo do seu Sistema Operacional:
|
||||||
|
|
||||||
* **Windows (Winget):** `winget install Python.Python.3.12`
|
- **Windows (Winget):** `winget install Python.Python.3.12`
|
||||||
* **Ubuntu/Debian (APT):** `sudo apt update && sudo apt install python3 python3-pip python3-venv`
|
- **Ubuntu/Debian (APT):** `sudo apt update && sudo apt install python3 python3-pip python3-venv`
|
||||||
* **Fedora (DNF):** `sudo dnf install python3`
|
- **Fedora (DNF):** `sudo dnf install python3`
|
||||||
* **Arch Linux (Pacman):** `sudo pacman -S python`
|
- **Arch Linux (Pacman):** `sudo pacman -S python`
|
||||||
* **macOS (Homebrew):** `brew install python`
|
- **macOS (Homebrew):** `brew install python`
|
||||||
|
|
||||||
### 2. Instalar o Gerenciador `uv`
|
### 2. Instalar o Gerenciador `uv`
|
||||||
|
|
||||||
O projeto adota o `uv` (gerenciador de ambiente e dependências ultrarrápido em Rust):
|
O projeto adota o `uv` (gerenciador de ambiente e dependências ultrarrápido em Rust):
|
||||||
|
|
||||||
* **macOS / Linux:**
|
- **macOS / Linux:**
|
||||||
```bash
|
```bash
|
||||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||||
```
|
```
|
||||||
* **Windows (PowerShell):**
|
- **Windows (PowerShell):**
|
||||||
```powershell
|
```powershell
|
||||||
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Configurar Ambiente e Executar
|
### 3. Configurar Ambiente e Executar
|
||||||
|
|
||||||
Abra o terminal na pasta raiz deste projeto (onde este `README.md` e o arquivo `pyproject.toml` se encontram) e siga os passos abaixo:
|
Abra o terminal na pasta raiz deste projeto (onde este `README.md` e o arquivo `pyproject.toml` se encontram) e siga os passos abaixo:
|
||||||
|
|
||||||
1. **Sincronizar Dependências (Instalar tudo e criar a VENV automaticamente):**
|
1. **Sincronizar Dependências (Instalar tudo e criar a VENV automaticamente):**
|
||||||
|
|||||||
Reference in New Issue
Block a user