Rozwiązywanie problemów optymalizacyjnych

44
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rozwiązywanie problemów optymalizacyjnych (z przykładem w GNU R) Wit Jakuczun, WLOG Solutions

Transcript of Rozwiązywanie problemów optymalizacyjnych

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Rozwiązywanie problemówoptymalizacyjnych

(z przykładem w GNU R)

Wit Jakuczun, WLOG Solutions

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Wstęp

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

O czym opowiem?

I Kim jestem?I Co to jest optymalizacja?I Dlaczego (moim zdaniem) optymalizacja jest trudna?I Jak dostarczać model optymalizacyjny?I Przykład praktyczny

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Kim jestem?

I Jestem:I Właścicielem firmy WLOG SolutionsI Absolwentem wydziału MIM UW, doktorat z IPI PAN.

I Znam się na:I Analizie i syntezie potrzeb klienta.I Wdrażaniu analityki w organizacji (np. w oparciu o GNU R).I Tworzeniu i implementacja modeli optymalizacyjnych orazanalitycznych.

I Dane kontaktowe:I email: [email protected] WWW: www.wlogsolutions.com

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Z czego korzystałem przygotowywując się do warsztatu?

I GNU RI Używam od 2006 roku praktycznie codziennie.I Pierwsze produkcyjne wdrożenie w Mazowieckiej SpółceGazowniczej w roku 2006.

I Korzystałem z wersji 3.2.3

I Pakiety analityczne:I localsolver

I Prezentacja powstała w oparciu o:I knitrI pandocI MikTeXI packrat

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Co to jest optymalizacja?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Miejsce optymalizacji w analityce

Figure 1:Krzywa analityki

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Przykład

I Analiza eksploracyjnaI Ile w zeszłym tygodniu było zleceń niezrealizowanych i dlaczego?

I Analiza predykcyjna i symulacjeI Ile będzie zleceń (pracy) w przyszłym tygodniu?I Ile zleceń możemy niezrealizować jak wystąpią zaburzenia wprocesie?

I Analiza preskryptywna (optymalizacja)I Jak zaplanować działania i zasoby aby zrealizować zlecenia wnastępnym tygodniu?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Co to znaczy optymalny w praktyce?Optymalny w praktyce oznacza nie gorszy lub lepszy niżteraz, wyliczony w określonym czasie przy danych zasobachobliczeniowych.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Jak nie sprzedawać optymalizacji?

I JaI Ile czasu dziennie zajmuje Wam planowanie tych 300 ciężarówek?

I KlientI 3 minuty

I JaI OK… to co by Panu pomogło?

I KlientI Jak mogę wprowadzić fakturę w Pana programie?

Więcej do poczytania - Being wrong with Clarke and Wright. Mamkopię, więc proszę zainteresowanych o kontakt.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Przykładowe zadania optymalizacyjne z projektów

I Jaki jest optymalny plan napełniania/opróżniania magazynówgazu przy zadanym popycie?

I Jak rozdzielić zlecenia transportowe między wiele pojazdów abyzminimalizować koszty?

I Ile, skąd i jak dowieźć gotówki do oddziału banku?I Ile powinno być magazynów i jak podzielić między nie klientówaby zminimalizować koszty?

I …

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Kiedy warto stosować optymalizację?

I Chcemy zautomatyzować proces decyzyjny.I Chcemy mieć powtarzalność procesu decyzyjnego.I Chcemy mieć pewność, że podjęliśmy optymalną decyzję.I Chcemy mieć benchmark do weryfikacji naszych intuicji.I Chcemy podjąć skomplikowaną decyzję i “ręcznie” nie damyrady.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Co to jest model optymalizacyjny w teorii?

Figure 2:Model optymalizacyjny

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Co to jest model optymalizacyjny w praktyce?Deklaracja modelu wraz z procedurą obliczeniowąznajdującą rozwiązanie.

Często deklaracja jest tylko na kartce papieru.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Jak klasyfikuję modele optymalizacyjne?Zadania optymalizacyjne dzielę na proste i trudne :).

I Funkcja celuI Ile jest kryteriów?I Czy kryterium jest liniowe/nieliniowe?

I OgraniczeniaI Czy ograniczenie jest liniowe/nielinowe?I Czy ograniczenie jest twarde/miękkie?

I ZmienneI Czy zmienne są ciągłe/dyskretne?

I Wyniki/rekomendacjeI Czy potrzeba jednego/wielu rozwiązań?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Jak klasyfikuję modele optymalizacyjne?

1. Zadanie łatweI Mogę rozwiązać zadanie deklarując model w istniejącymsolwerze.

2. Zadanie średnieI Mogę rozwiązać zadanie deklarując sekwencję modeli wistniejącym solwerze.

3. Zadanie trudneI Muszę napisać specjalizowany solwer.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Dlaczego optymalizacja (moim zdaniem)jest trudna?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Przykład wprowadzający - zadanie planowaniaprodukcjiPierwotne założenie brzmiało:

zmiana poziomu produkcji pomiędzy tygodniami nie możebyć większa niż 10%

Drugie sformułowanie brzmiało:

produkcja może się zmienić nie więcej niż 3 razy w ciąguroku

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Przykład wprowadzający - zadanie planowaniaprodukcji

I Jak się skończył projekt? :)I Dlaczego tak się stało?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Trudna, czyli jaka?

Czyli nie mogę znaleźć rozwiązania odpowiedniej jakości wodpowiednim czasie.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Trudna bo mały wybór

Kto się liczy na rynku komercyjnych solwerów MIP?

I ILOG - dzisiaj IBMI Dash Optimization - dzisiaj FICOI Gurobi - założony przez profesora Bixby po przejęciu ILOG’aprzez IBM

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Trudna bo mały wybór

Kto się liczy na rynku darmowych solwerów MIP?

I CBC z projektu COIN/ORI wydajny ale “surowy”

I GLPK z projektu GNUI dodany język deklaracji modelu ale powolny

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Przyczyny trudności

I Problem w komunikacjiI Sponsor nie rozumie poziomu skomplikowania projektuI Dostawca nie potrafi zrozumieć potrzeby Klienta

I Problem w braku kompetencji dostawcyI Dostawca zna tylko jedną metodykę.I Klient narzuca metodykę (bo ma solwer).

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Przyczyny trudności

I Problem w dostępie do danychI Brak rzeczywistych danych testowych.

I Problem w podejściu projektowymI Klient nie widzi częściowych wyników.I Brak prototypowania.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Przyczyny trudności

I Problem w sformułowaniu modelu optymalizacyjnegoI W języku matematyki trudno wyrazić pewne ograniczenia

I kierowca po przejechaniu 4,5h musi odpocząć 45 minut ale poprzejechaniu 9h musi odpocząć 11h. Odpoczynek 45 minutowymoże być rozbity na dwa odpoczynki po 15 i 30 minut.

I czas przejazdu między punktem A i B o godzinie 10:00 wynosi 15minut ale o godzinie 18:00 już 30 minut.

I pakiet wolnych minut można wykorzystać na rozmowę, SMSy lubdane, ale priorytet mają rozmowy, potem SMSy a na końcu dane

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Przyczyny trudności

I Problem w implementacji procedury obliczeniowej dla modeluoptymalizacyjnego

I Wydajność procedury obliczeniowej jest niewystarczającaI Procedura obliczeniowa nie znajduje rozwiązania odpowiedniejjakości

I No free lunch!

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Literatura dotycząca projektów optymalizacyjnych

I Large Scale Combinatorial Optimization: A MethodologicalViewpoint

I Why Is Optimization Difficult?I The Chic-2 Methodology for Combinatorial Applications

I Mam kopię, więc jak ktoś jest chętny to proszę o kontakt.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Jak dostarczać optymalizację?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Typy projektów

I DoradczeI Najczęściej fire and forget

I OprogramowanieI Prototyp - podobne do doradczegoI Produkt lub rozwiązanie IT

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Optymalizacja w formie oprogramowania

I ZespółI Ekspert od badań operacyjnychI ProgramistaI Klient

I DostarczanieI IteracyjneI PrototypowanieI Testowanie

Ogólnie trudne projekty, poza zasięgiem firm programistycznych.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Optymalizacja w formie doradztwa

I Szybko wyniki, duża elastycznośćI Nie ma czasu na pisanie optymalizatora od zera.I Trzeba korzystać z istniejących rozwiązań.I Ciągła zmiana wymagań.

I Bałagan w danychI Pracujemy na surowych danych i trzeba je obrobić.

I Prezentacja wynikówI Iteracyjna praca z Klientem.I Minimalizacja błędów w raporcie.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Co się liczy w mojej praktyce?

I Możliwość deklarowania modelu w języku wysokiego poziomuI GLPKI ILOGI Prolog :)

I Dobre narzędzie do zbierania i obróbki danychI Np. R

I Dobrze narzędzie do elastycznej wizualizacji wynikówI Np. R (shiny, ggplot2)

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Co się liczy w mojej praktyce?

I Dobry solver do:I Programowania liniowegoI Programowania całkowito-liczbowegoI Programowania z więzami

I Metaheurystyki:I Do łączenia solverów w meta solver.I Najczęściej własne rozwiązania.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Przykład praktyczny - optymalizacja w R

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Zadanie - problem plecakowyPrzy podanym zbiorze elementów o podanej wadze iwartości, należy wybrać taki podzbiór by suma wartości byłamożliwie jak największa, a suma wag była nie większa oddanej pojemności plecaka.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Rozwiązanie - pakiet localsolver

I Dostępny na CRANI Winietka z przykładami użycia pakietu

I Wymaga instalacji rozwiązania LocalSolver firmy Innovation 24I Dostępny pod adresemhttp://www.localsolver.com/download.html

I Solwer do problemów nieliniowych oraz klasy MIP oparty nasymulowanym wyżarzaniu.

I Praca w R na poziomie przygotowania danych i obróbkiwyników

I Możliwość deklaracji modelu w natywnym języku

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Dlaczego taki pakiet?

I Dostęp do danychI Świat optymalizacji ma problem z dostępem do danychI GNU R: tidyr, dplyr, data.table, …

I Prezentacja wynikówI Świat optymalizacji ma problem z prezentacją wynikówI GNU R: ggplot2, shiny, …

I Jakość optymalizatoraI GNU R nie ma dobrych pakietów do optymalizacjiI Przykładowe porównanie - Comparing localsolver with Rglpk onk-medoids example

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

A co jak nie chcę płacić?

I Są optymalizatory darmoweI COIN/ORI ECLiPsEI Choco3I GecodeI OR-ToolsI OscaR

I Ale…I W optymalizacji nie zawsze działa open-source :(I Wydajność darmowych solverów klasy MIP jest paredziesiąt+ razymniejsza od komercyjnych.

I Więcej na stronie BENCHMARKS FOR OPTIMIZATION SOFTWARE

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Pakiet localsolver - deklaracja modelu

library(localsolver)

model <- "function model() {x[i in 1..4] <- bool();

// weight constraintknapsackWeight <- sum[i in 1..nbItems](itemWeights[i] * x[i]);constraint knapsackWeight <= knapsackBound;

// maximize valueknapsackValue <- sum[i in 1..nbItems](itemValues[i] * x[i]);maximize knapsackValue;

}"

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Pakiet localsolver - przygotowanie danych

data <- list(nbItems=4L,itemWeights=c(1L,2L,3L,4L),itemValues=c(5,6,7,8),knapsackBound = 9L)

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Pakiet localsolver - parametryzacja i uruchomienie

lsp <- ls.problem(model)lsp <- set.params(lsp, lsTimeLimit=60, lsIterationLimit=250)lsp <- add.output.expr(lsp, "x", 4)lsp <- add.output.expr(lsp, "knapsackWeight")lsp <- add.output.expr(lsp, "knapsackValue")

ls.solve(lsp, data)

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Nowe ograniczenie

Przy podanym zbiorze elementów o podanej wadze iwartości, należy wybrać taki podzbiór by suma wartości byłamożliwie jak największa, a suma wag była nie większa oddanej pojemności plecaka.

ale jeśli wybierzesz element numer 2 to musisz wybraćelement o numerze numer 1.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Pakiet localsolver - Zmiana modelu

model2 <- "function model() {x[i in 1..4] <- bool();

// weight constraintknapsackWeight <- sum[i in 1..nbItems](itemWeights[i] * x[i]);constraint knapsackWeight <= knapsackBound;

//new constraintconstraint x[1] >= x[2];

// maximize valueknapsackValue <- sum[i in 1..nbItems](itemValues[i] * x[i]);maximize knapsackValue;

}"

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Dziękuję za uwagę