praca_magisterska/pytania/odpowiedzi/30-modelowanie-matematyczne-decyzje.md

283 lines
9.2 KiB
Markdown
Raw Normal View History

2025-12-21 19:58:11 +01:00
# Pytanie 30: Modelowanie matematyczne dla problemów decyzyjnych
## Pytanie
**"Omówić metody oraz typowe problemy w modelowaniu matematycznym dla problemów decyzyjnych i optymalizacyjnych."**
Przedmiot: MOM (Metody Optymalizacji Matematycznej)
---
## 📚 Odpowiedź główna
### 1. Struktura modelu matematycznego
```
┌─────────────────────────────────────────────────────────────────┐
│ MODEL OPTYMALIZACYJNY │
├─────────────────────────────────────────────────────────────────┤
│ │
│ min/max f(x) ← Funkcja celu │
│ │
│ subject to: │
│ g_i(x) ≤ 0 ← Ograniczenia nierównościowe │
│ h_j(x) = 0 ← Ograniczenia równościowe │
│ x ∈ X ← Dziedzina zmiennych │
│ │
│ gdzie x = (x₁, x₂, ..., xₙ) ∈ ℝⁿ (lub ℤⁿ, {0,1}ⁿ) │
│ │
└─────────────────────────────────────────────────────────────────┘
```
---
### 2. Metody modelowania
#### 2.1 Etapy tworzenia modelu
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ PROBLEM │ → │ MODEL │ → │ ROZWIĄZANIE│ → │ WALIDACJA │
│ RZECZYWISTY│ │ MATEMATYCZNY│ │ OPTYMALNE │ │ I WDROŻENIE│
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│ │ │ │
↓ ↓ ↓ ↓
Analiza Zmienne, Solver, Interpretacja,
wymagań funkcja celu, algorytm analiza wrażliwości
ograniczenia
```
#### 2.2 Typy modeli
| Typ | Charakterystyka | Przykład |
|-----|-----------------|----------|
| **LP** (Linear Programming) | Liniowa f(x), liniowe g, h | Transport, alokacja |
| **QP** (Quadratic) | Kwadratowa f(x), liniowe ograniczenia | Portfolio |
| **NLP** (Nonlinear) | Nieliniowe f, g lub h | Engineering design |
| **MIP** (Mixed Integer) | Zmienne ciągłe + całkowite | Scheduling, routing |
| **MINLP** | Całkowitoliczbowe + nieliniowe | Najtrudniejsze |
---
### 3. Typowe problemy w modelowaniu
#### 3.1 Wybór zmiennych decyzyjnych
```
Problem: Ile zmiennych? Jakie typy?
Przykład - planowanie produkcji:
Źle: x = "plan produkcji" (zbyt ogólne)
Dobrze:
x_it = ilość produktu i w okresie t (ciągła)
y_it = czy produkujemy i w t (binarna)
z_ijt = transport z i do j w t (całkowita)
Zasady:
✓ Zmienne muszą być mierzalne
✓ Zmienne muszą być kontrolowalne
✓ Minimalna liczba dla pełnego opisu
```
#### 3.2 Problem Big-M
```
Modelowanie implikacji: y=1 → x ≤ 5
Zła formulacja (słaba relaksacja):
x ≤ 5 + M(1-y), gdzie M = 10^6
Lepsza formulacja:
x ≤ 5 + (UB_x - 5)(1-y), gdzie UB_x = upper bound na x
Indicator constraints (jeśli solver wspiera):
y = 1 → x ≤ 5 (bezpośrednio)
Problem: Duże M → słaba LP relaxation → wolny B&B
```
#### 3.3 Symetria
```
Problem: Wiele równoważnych rozwiązań optymalnych
Przykład - bin packing:
Bin 1: {A, B}, Bin 2: {C}
Bin 1: {C}, Bin 2: {A, B} ← ta sama wartość!
Rozwiązanie - symmetry breaking:
x[i][1] ≥ x[i][2] ≥ x[i][3] ... (lexicographic ordering)
Lub: użyj indeksu pierwszego użycia pojemnika
```
#### 3.4 Walidacja modelu
| Test | Opis |
|------|------|
| **Extreme cases** | Czy model działa dla skrajnych danych? |
| **Known solutions** | Czy odtwarza znane rozwiązania? |
| **Dimensional analysis** | Czy jednostki się zgadzają? |
| **Sensitivity analysis** | Jak rozwiązanie reaguje na zmiany? |
| **Infeasibility** | Czy model ma rozwiązanie dopuszczalne? |
---
### 4. Techniki modelowania
#### 4.1 Linearyzacja
```
Problem: xy (iloczyn zmiennych ciągłych)
McCormick envelopes:
w ≥ x·LB_y + y·LB_x - LB_x·LB_y
w ≥ x·UB_y + y·UB_x - UB_x·UB_y
w ≤ x·LB_y + y·UB_x - LB_y·UB_x
w ≤ x·UB_y + y·LB_x - UB_y·LB_x
Problem: |x| (wartość bezwzględna)
Modelowanie:
min z
z ≥ x
z ≥ -x
```
#### 4.2 Modelowanie warunków logicznych
```
Alternatywa (OR): x ≤ 5 y ≤ 3
x ≤ 5 + M(1-z)
y ≤ 3 + Mz
z ∈ {0,1}
Koniunkcja (AND): x ≤ 5 ∧ y ≤ 3
x ≤ 5
y ≤ 3 (po prostu oba ograniczenia)
```
#### 4.3 Piece-wise linear functions
```
f(x) = różne liniowe segmenty
f(x)
│ /
│ /
│ /
│ /____
│/
└────────→ x
Modelowanie SOS2 (Special Ordered Set type 2):
f(x) = Σ λ_i · f(breakpoint_i)
x = Σ λ_i · breakpoint_i
Σ λ_i = 1
λ ≥ 0, max 2 sąsiednie λ_i > 0
```
---
### 5. Wielokryterialne podejmowanie decyzji
```
min f₁(x), f₂(x), ..., f_k(x) ← konfliktujące cele
Metody:
1. WEIGHTED SUM:
min Σ w_i · f_i(x)
Problem: nie znajduje wszystkich Pareto-optymalnych
2. ε-CONSTRAINT:
min f₁(x)
s.t. f_i(x) ≤ ε_i, i=2..k
3. GOAL PROGRAMMING:
min Σ |f_i(x) - target_i|
4. PARETO FRONT:
Znajdź wszystkie niezdominowane rozwiązania
```
---
### 6. Analiza wrażliwości
```
┌─────────────────────────────────────────────────────────────────┐
│ Co się zmieni gdy zmienią się dane wejściowe? │
├─────────────────────────────────────────────────────────────────┤
│ Shadow price (dual variable): │
│ - Ile warta jest jednostka zasobu? │
│ - Δf = λ · Δb (dla małych zmian RHS) │
│ │
│ Reduced cost: │
│ - O ile musi się zmienić c_j żeby x_j wszedł do bazy? │
│ │
│ Range analysis: │
│ - Przedział zmian parametrów bez zmiany optymalnej bazy │
└─────────────────────────────────────────────────────────────────┘
```
---
### 7. Częste błędy
| Błąd | Konsekwencja | Rozwiązanie |
|------|--------------|-------------|
| **Brak bounds** | Unbounded lub słaba relaxation | Zawsze definiuj LB, UB |
| **Za duże M** | Numerical issues, wolne | Tight big-M |
| **Redundantne ograniczenia** | Wolniejsze, confusion | Minimalizuj |
| **Zła skala** | Numerical instability | Scaling, rescaling |
| **Over-modeling** | Za złożone, wolne | Simplify, aggregate |
---
## 🧠 Mnemoniki
### "VCO = Variables, Constraints, Objective":
Trzy elementy modelu matematycznego
### "Big-M = Big Mistake (jeśli źle użyte)":
Unikaj dużych M, tight bounds
### "PASS = Pareto, Analysis, Sensitivity, Symmetry":
Kluczowe zagadnienia zaawansowane
---
## ❓ Pytania dodatkowe
### Q1: "Jak sprawdzić czy model jest poprawny?"
**Odpowiedź:** Testy na znanych instancjach, extreme cases, dimensional analysis, sprawdzenie czy relaksacja LP daje sensowne wyniki, analiza IIS dla infeasible.
### Q2: "Kiedy linearyzować a kiedy użyć NLP?"
**Odpowiedź:** Linearyzuj gdy: nieliniowość jest "miękka", solver MIP szybszy niż NLP, potrzebujesz gwarancji optimum. NLP gdy: silna nieliniowość, ciągłe zmienne, akceptowalny local optimum.
### Q3: "Jak obsłużyć niepewność w modelu?"
**Odpowiedź:** Stochastic programming (scenariusze), robust optimization (worst-case), chance constraints, sensitivity analysis. Wybór zależy od charakteru niepewności.
---
## 🎯 Kluczowe punkty
1. **Model:** Zmienne + funkcja celu + ograniczenia
2. **Big-M:** Unikaj dużych M, tight formulation
3. **Symetria:** Symmetry breaking constraints
4. **Walidacja:** Extreme cases, known solutions
5. **Wrażliwość:** Shadow prices, reduced costs
---
## 📖 Źródła
1. Williams - "Model Building in Mathematical Programming"
2. Wolsey - "Integer Programming"
3. Nemhauser, Wolsey - "Integer and Combinatorial Optimization"