Podręcznik
1. Podstawy programowania matematycznego
1.1. Wprowadzenie
Modelowanie matematyczne łączy świat matematyki z resztą świata. Budujemy modele matematyczne, aby odzwierciedlić pewną rzeczywistość, którą chcemy analizować. Z różnych powodów może to być atrakcyjne, a czasem wręcz jedyne możliwe, podejście do zagadnienia. Takim powodem mogą być konsekwencję zastosowania modeli matematycznych, czyli w rozważanym tutaj zakresie, konsekwencje podejmowanych decyzji. Przykładowo, buduje się modele matematyczne dotyczące optymalizacji rozkładu jazdy pociągów. Bez modelu matematycznego można próbować w praktyce pewne rozkłady i patrzeć jakie to przynosi ze sobą skutki, ale wówczas trzeba ponieść koszty prób decyzji dalekich od optymalnych. Co więcej, praca z obiektem rzeczywistym, na „żywym organizmie”, zamiast modelu matematycznego mogłaby nieść ryzyko wystąpienia kolizji pociągów. Budowanie harmonogramu jazdy pociągów w ramach modelu matematycznego pozwala na eliminację kolizji oraz optymalizację ustalony celów, np. kosztowych. Dopiero decyzje zweryfikowane w ramach symulacji z wykorzystaniem modeli matematycznych mogą przejść do etapu wdrożenia, eliminując w ten sposób wspomniane ryzyka.
Model
matematyczny możemy przedstawić jako funkcję , która przetwarza pewne
wejście w wyjście, tak jak jest to zobrazowane na poniższym rysunku.
Punktem wyjścia jest pytanie, na które chcemy poznać odpowiedź. Pytanie to jest reformułowane do język matematyki, np. dokonujemy pewnego zakodowania problemu w postaci zmiennych, funkcji, grafów, itd. Następnie używamy narzędzi matematyki do znalezienia odpowiedzi. Ponieważ używamy języka matematyki to odpowiedź będzie również w nim wyrażona. Dlatego ostatnim krokiem jest translacja otrzymanego rozwiązania do pierwotnej domeny problemu.
Predykcja, identyfikacja i racjonalizacja
Jakie pytania możemy sobie zadawać względem modelu? Jeżeli mamy znany model matematyczny oraz znane są jego wejścia, zaś chcemy poznać wyjścia, tak jak pokazano to na poniższym rysunku
to mamy do czynienia z predykcją wyjścia na podstawie wejścia z użyciem modelu. Na przykład może to być predykcja generacji prądu elektrycznego dla zadanych prognoz pogodowych oraz modelu elektrowni wiatrowej.
Jeżeli zaś znane jest wejście oraz wyjście, to pytanie skupia się na tym jak powinien wyglądać model, który oddaje relację wyjścia od wejście.
Takie zadanie nazywamy zadaniem identyfikacji, gdyż chcemy zidentyfikować model najlepiej odpowiadający relacji pomiędzy wyjściem a wejściem.
Możliwa jest też sytuacja, w której znany jest model oraz wyjście, zaś nie znamy wejścia:
Wyjście należy rozumieć jako pożądane wyjścia, a wówczas pytanie dotyczy tego jako powinniśmy przyłożyć wejścia, aby uzyskać pożądaną sytuację na wyjściu. Wyjście może być zdefiniowane w sposób bezwzględny, ale w szczególności możemy oczekiwać wyjścia jak największego lub jak najmniejszego. Przykładowo, jeżeli na wyjściu są koszty, to możemy szukać takiego wejścia, które będzie minimalizować owe koszty. Omawiane podejście polega na racjonalizacji decyzji na wejściu, tak aby osiągnąć pożądane (racjonalne) wyjście. Dlatego mówimy, że mamy to do czynienia z zadaniem racjonalizacji.
Zauważmy, że o ile predykcja jest często kojarzona z domeną uczenia maszynowego, identyfikacja zaś często jest domeną teorii sterowania (oczywiście oba obszar nie są ograniczone tylko do tych dziedzin). Gdzie zaś w naukach lokuje się zazwyczaj racjonalizacja? Otóż, w dziedzinie Badań operacyjnych (BO).
Badania operacyjne (Operations research, OR) to interdyscyplinarna dziedzina, która zajmuje się wykorzystaniem metod ilościowych do poszukiwania jak najlepszych decyzji. Decyzje często są związane z pieniędzmi, wydatkami, kosztami, stąd znacząca rola ekonomii w badaniach operacyjnych. Ale decyzje są związane z ludźmi, ludzie je podejmują i finalnie dotyczą ludzi. Dlatego nie bez znaczenia dla badań operacyjnych jest np. psychologia czy socjologia. Jednak podstawowym narzędziem są modele matematyczne oraz algorytmika – czyli matematyka i informatyka. Namacalnym produktem łączącym poszczególne elementy są informatyczne systemy wspomagania decyzji. Wreszcie, badania operacyjne znajdują zastosowania w bardzo wielu dziedzinach i muszą uwzględnia i wykorzystywać również wiedzę dziedzinową. Ta możliwość zastosowania ogólnych metod badań operacyjnych w tak wielu odległych od siebie praktycznych obszarach jest czasem subiektywnie oceniania jako cenny walor dziedziny. Badania operacyjne można więc sprowadzić do następującej nieformalnej definicji: dyscyplina wykorzystująca modele i narzędzia matematyki i informatyki z uwzględnieniem aspektów ekonomii i psychologii podejmowanych decyzji, ukierunkowania na wytwarzanie narzędzi informatycznych wspomagających decydentów w podejmowaniu decyzji. Mimo interdyscyplinarnego charakteru, badania operacyjne ze względu na kluczowe aspekty algorytmiki i zagadnienia złożoności obliczeniowej są zazwyczaj umiejscawiana w dyscyplinie informatyki.
Na koniec tego podrozdziału chcielibyśmy zwrócić uwagę na definicję badań operacyjnych wg MIT, według której jest to dyscyplina dotycząca zastosowań zaawansowanych analitycznych metod, takich jak optymalizacja, statystyka, uczenie maszynowe, probabilistyka, do podejmowania lepszych decyzji, które mają pozytywny wpływ na społeczność i świat. Ważnym elementem tej definicji jest aplikowalność/stosowalność – badania operacyjne mają rozwiązywać rzeczywiste problem. Równie ważnym jest pewna społeczna odpowiedzialność za którą idzie poczucie kreowania lepszego świata, co np. odzwierciedla się w wielu działaniach na rzecz ubóstwa (optymalizacja dystrybucji dóbr), sprawiedliwości, czy ochrony środowiska.