\documentclass[11pt,a4paper]{article} \usepackage[OT4]{polski} \usepackage[utf8]{inputenc} \usepackage[inner=2.5cm,outer=2.5cm, tmargin=2.5cm,bmargin=2.5cm]{geometry} \usepackage{amsmath} \usepackage{relsize,amsfonts} \usepackage{enumitem} \usepackage{graphicx} \newcommand\bigexists{% \mathop{\lower0.75ex\hbox{\ensuremath{% \mathlarger{\mathlarger{\mathlarger{\mathlarger{\exists}}}}}}}% \limits} \newcommand\bigforall{% \mathop{\lower0.75ex\hbox{\ensuremath{% \mathlarger{\mathlarger{\mathlarger{\mathlarger{\forall}}}}}}}% \limits} \title{Wspomaganie Decyzji w Warunkach Ryzyka\\\large \medskip Projekt: WDWR 25406\\} \author{Krzysztof Rudnicki 307585} \date{\today} \begin{document} \maketitle \section*{Treść zadania} \addcontentsline{toc}{section}{Treść zadania} Rozważmy następujące zagadnienie planowania produkcji: \begin{itemize} \item Przedsiębiorstwo wytwarza 4 produkty P1,...,P4 na następujących maszynach: 4 szlifierkach, 2 wiertarkach pionowych, 3 wiertarkach poziomych, 1 frezarce i 1 tokarce. Wymagane czasy produkcji 1 sztuki produktu (w godzinach) w danym procesie obróbki zostały przedstawione w poniższej tabeli:\\ \begin{center} \begin{tabular}{l*{4}{c}} \hline & P1 & P2 & P3 & P4 \\ \hline Szlifowanie & 0,4 & 0,6 & - & - \\ Wiercenie pionowe & 0,2 & 0,1 & - & 0,6 \\ Wiercenie poziome & 0,1 & - & 0,7 & - \\ Frezowanie & 0,06 & 0,04 & - & 0,05 \\ Toczenie & - & 0,05 & 0,02 & - \\ \hline \end{tabular} \end{center} \item Dochody ze sprzedaży produktów (w zł/sztukę) określają składowe wektora $\mathbf{R} = (R_{1},...,R_{4})^{T}$. Wektor $\mathbf{R}$ opisuje 4-wymiarowy rozkład \textit{t}-Studenta z 4 stopniami swobody, którego wartości składowych zostały zawężone do przedziału $[5;12]$. Wektor wartości oczekiwanych $\mu$ oraz macierz kowariancji $\Sigma$ niezawężonego rozkładu \textit{t}-Studenta są następujące: \begin{displaymath} \mathbf{\mu} = \begin{pmatrix} 9 \\ 8 \\ 7 \\ 6 \\ \end{pmatrix}, \mathbf{\Sigma} = \begin{pmatrix} 16 & -2 & -1 & -3 \\ -2 & 9 & -4 & -1 \\ -1 & -4 & 4 & 1 \\ -3 & -1 & 1 & 1 \\ \end{pmatrix} \end{displaymath} \item Istnieją ograniczenia rynkowe na liczbę sprzedawanych produktów w danym miesiącu: \begin{center} \begin{tabular}{l*{4}{c}} \hline & P1 & P2 & P3 & P4 \\ \hline Styczeń & 200 & 0 & 100 & 200 \\ Luty & 300 & 100 & 200 & 200 \\ Marzec & 0 & 300 & 100 & 200 \\ \hline \end{tabular} \end{center} \item Jeżeli sprzedaż danego produktu przekracza 80 procent ilości jaką może wchłonąć rynek, jego dochód spada o 20 procent. \item Istnieje możliwość składowania do 200 sztuk każdego produktu w danym czasie w cenie 1 zł/sztukę za miesiąc. W chwili obecnej (grudzień) w magazynach znajduje się po 50 sztuk każdego produkt. Istnieje wymaganie, aby tyle pozostało również pod koniec marca. \item Przedsiębiorstwo pracuje 6 dni w tygodniu w systemie dwóch zmian. Każda zmiana trwa 8 godzin. Można założyć, że każdy miesiąc składa się z 24 dni roboczych. \end{itemize} \section*{Polecenia} \addcontentsline{toc}{section}{Polecenia} \begin{enumerate} \item Zaproponować jednokryterialny model wyboru w warunkach ryzyka z wartością oczekiwaną jako miarą zysku. Wyznaczyć rozwiązanie optymalne. \item Jako rozszerzenie powyższego zaproponować dwukryterialny model zysku i ryzyka ze średnią jako miarą zysku i średnią różnicą Giniego jako miarą ryzyka. Dla decyzji $\mathbf{x}\in Q$ średnia różnica Giniego jest definiowana jako $\Gamma(\mathbf{x})=\frac{1}{2}\sum_{t'=1}^{T}\sum_{t"=1}^{T}\lvert r_{t'}(\mathbf{x})-r_{t"}(\mathbf{x})\rvert p_{t'}p_{t"}$, gdzie $r_{t'}(\mathbf{x})$ oznacza realizację dla scenariusza t, $p_{t}$ prawdopodobieństwo scenariusza t. \begin{enumerate} \item Wyznaczyć obraz zbioru rozwiązań efektywnych w przestrzeni zysk-ryzyko. \item Wskazać rozwiązania efektywne minimalnego ryzyka i maksymalnego zysku. Jakie odpowiadają im wartości w przestrzeni ryzyko-zysk? \item Wybrać trzy dowolne rozwiązania efektywne. Sprawdzić, czy zachodzi pomiędzy nimi relacja dominacji stochastycznej pierwszego rzędu. Wyniki skomentować, odnieść do ogólnego przypadku. \end{enumerate} \end{enumerate} \section{Jednokryterialny model wyboru} Model jednokryterialny wyboru w warunkach ryzyka został zaprojektowany w celu identyfikacji rozwiązania optymalnego poprzez maksymalizację oczekiwanej wartości zysku. Wartość oczekiwana jest kalkulowana na podstawie scenariuszy generowanych zgodnie z rozkładem \textit{t}-Studenta wykorzystującym parametry określone w zadaniu. W analizie założono równomierne prawdopodobieństwo występowania wszystkich scenariuszy. \subsection{Parametry modelu} Wszystkie parametry modelu zostały przedstawione w tabeli poniżej wraz z ich szczegółowymi opisami. Identyczne nazewnictwo zostało zastosowane w implementacji modelu. Dla parametrów będących wektorami i macierzami, w nawiasach kwadratowych określono ich wymiary, odnosząc się do odpowiednich parametrów liczbowych. \begin{table}[ht!] \caption{Tabela zawierająca parametry modelu jednokryterialnego} \label{tab:param} \begin{tabular}{lp{9cm}} \hline Nazwa parametru & Szczegółowy opis znaczenia \\ \hline nMachType & Ilość typów maszyn (procesów) dostępnych w fabryce \\ nMonth & Ilość miesięcy uwzględnionych w symulacji \\ nProdType & Ilość typów produktów \\ nScenarios & Ilość scenariuszy wygenerowanych do symulacji \\ machines[nMachType] & Wektor typów maszyn (procesów)\\ months[nMonth] & Wektor miesięcy symulacji\\ products[nProdType] & Wektor typów produktów\\ machineCount[nMachType] & Wektor ilości maszyn danego typu\\ prodTime[nMachType][nProdType] & macierz czasów produkcji danego produktu na danej maszynie \\ maxInMonth[nMonth][nProdType] & macierz maksymalnej ilości produktów, jakie można sprzedać w danym miesiącu\\ nHours & Ilość godzin pracy fabryki w miesiącu\\ mu[nProdType] & Wektor wartości oczekiwanych rozkładu t-Studenta do generacji scenariuszy\\ sigma [nProdType][nProdType] & Macierz kowariancji dla rozkłady t-Studenta\\ sellProfit[nScenarios][nProdType] & Macierz wygenerowanych sceniariuszy dochodów ze sprzedaży produktów\\ storageCost & Koszt trzymania jednej sztuki produktu w magazynie przez miesiąc \\ storageMax[nProdType] & Wektor maksymalnej pojemności magazynu dla każdego typu produktu \\ storageStart[nProdType] & Wektor ilości początkowej produktów w magazynie \\ \hline \end{tabular} \end{table} \subsection{Zmienne decyzyjne} Zmienne decyzyjne stanowią wartości kontrolowane przez podmiot podejmujący decyzje i są fundamentalne dla rozwiązywanego problemu. Zadaniem optymalizatora jest wyznaczenie takich wartości tych zmiennych, które umożliwią osiągnięcie optymalnego rozwiązania. W tabeli zawierającej zmienne decyzyjne modelu zaprezentowano zmienne decyzyjne zastosowane w modelu wraz z ich szczegółowymi opisami. Przyjęto tę samą konwencję nazewnictwa, co w przypadku parametrów modelu. \begin{table}[ht!] \caption{Tabela zawierająca zmienne decyzyjne modelu} \label{tab:var} \begin{tabular}{lp{7.5cm}} \hline Nazwa zmiennej & Szczegółowy opis znaczenia \\ \hline produce[nMonth][nProdType] & Macierz zawierające ilości wytwarzanych sztuk danego typu produktu w danym miesiącu \\ sell[nMonth][nProdType] & Macierz zawierająca ilości sprzedawanych sztuk danego typu produktu w danym miesiącu \\ stock[nMonth][nProdType] & Macierz zawierająca ilości sztuk danego typu produktu znajdujących się w magazynie w danym miesiącu \\ workTime[nMonth][nMachType][nProdType] & Macierz zawierająca czas pracy każdej maszyny dla każdego typu produktu w kazdym miesiącu \\ if80prec[nMonth][nProdType] & Macierz zmiennych binarnych (1 jeśli sprzedaż danego produktu w danym miesiącu przekroczyła 80\% wartości maksymalnej, 0 - w przeciwnym wypadku)\\ lowerProfit[nScenarios][nMonth][nProdType] & Macierz przechowująca kwoty, jaką należy odjąć od zysków z poszczególnych typów produktów w poszczególnych miesiącach, ze względu na przekroczenie 80\% pojemności rynku. Zmienna niezbędna do wyeliminowania obecności zmiennej binarnej w funkcji oceny\\ \hline \end{tabular} \end{table} \subsection{Ograniczenia} \begin{itemize} \item Ograniczenie dolne wartości zmiennych decyzyjnych – wartości nie mogą być mniejsze od zera: \begin{equation} \bigforall_{\substack{ m \in months \\ p \in products \\ mc \in machines}} workTime[m][mc][p] >=0 \end{equation} \begin{equation} \bigforall_{\substack{ m \in months \\ p \in products}} produce[m][p] >=0 \end{equation} \begin{equation} \bigforall_{\substack{ m \in months \\ p \in products}} sell[m][p] >=0 \end{equation} \begin{equation} \bigforall_{\substack{ m \in months \\ p \in products}} stock[m][p] >=0 \end{equation} \begin{equation} \bigforall_{\substack{ i \in scenarios \\ m \in months \\ p \in products}} lowerProfit[i][m][p] >=0 \end{equation} \item Ograniczenie czasowe pracy maszyn - Każda maszyna może pracować maksymalnie \textit{nHours} godzin w miesiącu, zatem łączny czas pracy wszystkich maszyn danego typu nie może przekroczyć iloczynu liczby dostępnych maszyn tego typu i czasu \textit{nHours}. \begin{equation} \bigforall_{\substack{ m \in months\\ mc \in machines}} \sum_{p \in products} (workTime[m][mc][p] <= machineCount[mc]*nHours) \end{equation} \item Ograniczenie wiążące czas pracy maszyn z produkcją - czas wykorzystania określonego typu maszyny jest równy sumie iloczynów liczby wytworzonych jednostek każdego produktu i czasu potrzebnego na obróbkę jednej jednostki tego produktu na danej maszynie: \begin{equation} \bigforall_{\substack{ m \in months\\ mc \in machines\\ p \in products}} workTime[m][mc][p] == produce[m][p]*prodTime[mc][p] \end{equation} \item Ograniczenie maksymalnej sprzedaży wynikające z pojemności rynku w danym miesiącu: \begin{equation} \bigforall_{\substack{ m \in months\\ p \in products}} sell[m][p] == maxInMonth[m][p] \end{equation} \item Warunki definiujące zmienną binarną przy przekroczeniu 80 procent chłonności rynku: \begin{equation} \bigforall_{\substack{ m \in months\\ p \in products}} sell[m][p] <= 0.8*maxInMonth[m][p] + 1000000 * if80prec[m][p] \end{equation} \begin{equation} \bigforall_{\substack{ m \in months\\ p \in products}} sell[m][p] >= 0.8*maxInMonth[m][p] * if80prec[m][p] \end{equation} \item Ograniczenia linearyzujące oddziaływanie zmiennych binarnych na funkcję celu: \begin{equation} \bigforall_{\substack{ i \in scenarios\\ m \in months\\ p \in products}} lowerProfit[i][m][p] <= 1000000 * if80prec[m][p] \end{equation} \begin{equation} \bigforall_{\substack{ i \in scenarios\\ m \in months\\ p \in products}} lowerProfit[i][m][p] <= 0.2 * sell[m][p]*sellProfit[i][p] \end{equation} \begin{multline} \bigforall_{\substack{ i \in scenarios\\ m \in months\\ p \in products}} 0.2 * sell[m][p]*sellProfit[i][p] - lowerProfit[i][m][p] +\\ 1000000 * if80prec[m][p] <= 1000000; \end{multline} \item Ograniczenie sprzedaży do liczby sztuk wyprodukowanych oraz dostępnych w magazynie. Dla pierwszego miesiąca ograniczenie przyjmuje formę: \begin{equation} \bigforall_{\substack{ m \in months\\ p \in products}} sell[m][p] <= produce[m][p]+storageStart[p] \end{equation} Dla każdego następnego miesiąca: \begin{equation} \bigforall_{\substack{ m \in months\\ p \in products}} sell[m][p] <= produce[m][p] + stock[m-1][p] \end{equation} \item Ograniczenie określające stan magazynu na koniec miesiąca jako różnicę między sumą produktów wyprodukowanych i dostępnych na początku miesiąca a liczbą sprzedanych jednostek. Dla pierwszego miesiąca: \begin{equation} \bigforall_{\substack{ m \in months\\ p \in products}} stock[m][p]==(produce[m][p] + storageStart[p])-sell[m][p] \end{equation} Dla każdego następnego miesiąca: \begin{equation} \bigforall_{\substack{ m \in months\\ p \in products}} stock[m][p]==(produce[m][p] + stock[m-1][p])-sell[m][p] \end{equation} \end{itemize} \subsection{Funkcja celu} Funkcja celu w modelu jednokryterialnym polega na maksymalizacji wartości oczekiwanej zysku ze wszystkich analizowanych scenariuszy. W każdym ze scenariuszy zastosowano funkcję zysku o następującej postaci \begin{multline} \bigforall_{\substack{ i