Podręcznik
2. Modelowanie zależności
2.5. Problemy dyskretne
Rozważmy zadanie optymalizacji w ogólnej postaci, składające się z następujących elementów:- Zmienne decyzyjne:

- Przestrzeń decyzji:

- Zbiór decyzji dopuszczalnych:
- Wektory (rozwiązania, decyzje) dopuszczalne:

- Miara jakości (wynik) decyzji, funkcja celu, kryterium:

- Zadanie optymalizacji (programowanie matematyczne):\\

W zadaniach liniowych Q jest zbiorem rozwiązań następującego układu ograniczeń:

a funkcja celu ma postać:

W problemach dyskretnych natomiast zbiór
jest dyskretny, tzn. jest zbiorem skończonym albo jest skończoną sumą niespójnych składowych. Oznacza to, że zmienne decyzyjne przyjmują wartości całkowitoliczbowe. W takiej sytuacji zadanie optymalizacji, liniowe-całkowitoliczbowe (PLC, ILP), wygląda (w zapisie macierzowym) następująco:

Jeśli w zadaniu mogą występować również zmienne ciągłe, mamy do czynienia z zadaniem mieszanym, liniowym-całkowitoliczbowym (MILP).
Znaczenie problemów MILP wynika z tego, że wiele zagadnień nieliniowych, kombinatorycznych czy logicznych daje się modelować dokładnie bądź w przybliżeniu za pomocą takich modeli. W szczególności modelowanie matematyczne, w tym MILP, możemy traktować jako rodzaj programowania deklaratywnego, analogicznie do języka opisu zapytań SQL. Stąd nazwa programowanie matematyczne.
Przykłady klas problemów, które można rozwiązywać przez optymalizację modeli MILP: zadania harmonogramowania, kombinatoryczne, przydziału zasobów, optymalizacji łańcucha dostaw, optymalizacji sieciowej, etc.
Modele MILP mogą być rozwiązywane za pomocą specjalizowanych algorytmów (branch-and-bound, branch-and-cut, programowanie dynamiczne, itp), często dostępnych w postaci solwerów. Do najbardziej znanych należą: a)komercyjne: CPLEX, GUROBI b) otwarte: CBC, GLPK, ORTOOLS.



