Weryfikacja poprawności rozwiązania

Analityka łańcucha dostaw w Pythonie

Aaren Stubberfield

Supply Chain Analytics Mgr.

schemat blokowy strategii weryfikacji rozwiązania

Analityka łańcucha dostaw w Pythonie

Sprawdź status modelu

  • Infeasible: Brak dopuszczalnych rozwiązań.
    • Przejrzyj ograniczenia
  • Unbounded: Funkcja celu jest nieograniczona – maksymalizacja lub minimalizacja zmierza do nieskończoności.
    • Przejrzyj funkcję celu
  • Undefined: Optymalne rozwiązanie może istnieć, ale mogło nie zostać znalezione.
    • Być może to najlepsze dostępne rozwiązanie
    • Przejrzyj sposób modelowania problemu
Analityka łańcucha dostaw w Pythonie

Sprawdź, czy wyniki są zgodne z oczekiwaniami

Czy zmienne decyzyjne i wartość celu mieszczą się w oczekiwanym zakresie?

  • Na podstawie wiedzy i rozumienia problemu
  • Jeśli „Tak" – rozwiązanie jest prawidłowe
  • Jeśli „Nie" – przejrzyj:
    • Kod Python
    • Dane
    • Plik LP
Analityka łańcucha dostaw w Pythonie

Zapis do pliku LP

writeLP(filename)
  • filename = Nazwa pliku do utworzenia

Wyświetla:

  • Nazwę problemu
  • Funkcję celu i kierunek optymalizacji
  • Ograniczenia, w tym ograniczenia zmiennych decyzyjnych (Bounds)
  • Zmienne decyzyjne
Analityka łańcucha dostaw w Pythonie

Przykład kodu

\* Aggregate Production Planning *\
Minimize
OBJ: 20 prod_('A',_0) + 17 prod_('A',_1) 
    + 18 prod_('A',_2) + 15 prod_('B',_0) 
    + 16 prod_('B',_1) + 15 prod_('B',_2)
Subject To
_C1: prod_('A',_0) >= 0
_C2: prod_('A',_1) >= 0
_C3: prod_('A',_2) >= 0
_C4: prod_('B',_0) >= 8
_C5: prod_('B',_1) >= 7
_C6: prod_('B',_2) >= 6
Bounds
0 <= prod_('A',_0)
0 <= prod_('A',_1)
0 <= prod_('A',_2)
0 <= prod_('B',_0)
0 <= prod_('B',_1)
0 <= prod_('B',_2)
Generals
prod_('A',_0)
prod_('A',_1)
prod_('A',_2)
prod_('B',_0)
prod_('B',_1)
prod_('B',_2)
Analityka łańcucha dostaw w Pythonie

Podsumowanie

Strategia weryfikacji poprawności

  • Sprawdź status modelu
  • Sprawdź, czy zmienne decyzyjne i cel mieszczą się w oczekiwanym zakresie
  • W razie potrzeby użyj writeLP()
Analityka łańcucha dostaw w Pythonie

Czas na ćwiczenia!

Analityka łańcucha dostaw w Pythonie

Preparing Video For Download...