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:  x_j = 1,2,...,n
  • Przestrzeń decyzji: X = R^n
  • Zbiór decyzji dopuszczalnych: Q\subset X
  • Wektory (rozwiązania, decyzje) dopuszczalne:  x\in Q
  • Miara jakości (wynik) decyzji, funkcja celu, kryterium: f: R^n\rightarrow R
  •  Zadanie optymalizacji (programowanie matematyczne):\\
       \max \{ f(x): x\in Q\}

        Wyznaczyć \bar{x}\in Q taki, że
        f(\bar{x}) \geq f(x)\quad \forall x\in Q

  •   \bar{x} -- rozwiązanie optymalne
  • f(\bar{x}) -- wartość optymalna

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 Q 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.