\documentclass[12pt,a4paper]{article} \usepackage[utf8]{inputenc} \usepackage{amsmath} \usepackage{relsize,amsfonts} \usepackage{enumitem} \usepackage{graphicx} \usepackage{float} \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\\ Projekt numer 25406\\} \author{Krzysztof Rudnicki\\ numer albumu: 307585} \date{\today} \begin{document} \maketitle \tableofcontents \newpage \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{Wstęp teoretyczny} \addcontentsline{toc}{section}{Wstęp teoretyczny} 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. \\ Wszystkie parametry modelu zostały opisane poniżej. 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. \subsection{Opis parametrów} \addcontentsline{toc}{subsection}{Opis parametrów} \textbf{numberOfMachineTypes} - Ilość typów maszyn (procesów) dostępnych w fabryce \textbf{numberOfMonths} - Ilość miesięcy uwzględnionych w symulacji \textbf{numberOfProductsTypes} - Ilość typów produktów \textbf{numberOfScenarios} - Ilość scenariuszy wygenerowanych do symulacji \textbf{machines[numberOfMachineTypes]} - Wektor typów maszyn (procesów) \textbf{months[numberOfMonths]} - Wektor miesięcy symulacji \textbf{products[numberOfProductsTypes]} - Wektor typów produktów \textbf{machineCount[numberOfMachineTypes]} - Wektor ilości maszyn danego typu \textbf{timeToProduce[numberOfMachineTypes][numberOfProductsTypes]} - Macierz czasów produkcji danego produktu na danej maszynie \textbf{maxProductsInMonth[numberOfMonths][numberOfProductsTypes]} - Macierz maksymalnej ilości produktów, jakie można sprzedać w danym miesiącu \textbf{numberOfHoursInFactory} - Ilość godzin pracy fabryki w miesiącu \textbf{mu[numberOfProductsTypes]} - Wektor wartości oczekiwanych rozkładu t-Studenta do generacji scenariuszy \textbf{sigma[numberOfProductsTypes][numberOfProductsTypes]} - Macierz kowariancji dla rozkładu t-Studenta \textbf{sellProfit[numberOfScenarios][numberOfProductsTypes]} - Macierz wygenerowanych scenariuszy dochodów ze sprzedaży produktów \textbf{storageCost} - Koszt trzymania jednej sztuki produktu w magazynie przez miesiąc \textbf{storageMax[numberOfProductsTypes]} - Wektor maksymalnej pojemności magazynu dla każdego typu produktu \textbf{storageStart[numberOfProductsTypes]} - Wektor ilości początkowej produktów w magazynie \subsection{Zmienne decyzyjne} \addcontentsline{toc}{subsection}{Zmienne decyzyjne} \textbf{produce[numberOfMonths][numberOfProductsTypes]} - Macierz zawierająca ilości wytwarzanych sztuk danego typu produktu w danym miesiącu \textbf{sell[numberOfMonths][numberOfProductsTypes]} - Macierz zawierająca ilości sprzedawanych sztuk danego typu produktu w danym miesiącu \textbf{stock[numberOfMonths][numberOfProductsTypes]} - Macierz zawierająca ilości sztuk danego typu produktu znajdujących się w magazynie w danym miesiącu \textbf{workTime[numberOfMonths][numberOfMachineTypes][numberOfProductsTypes]} - Macierz zawierająca czas pracy każdej maszyny dla każdego typu produktu w każdym miesiącu \textbf{if80prec[numberOfMonths][numberOfProductsTypes]} - Macierz zmiennych binarnych (1 jeśli sprzedaż danego produktu w danym miesiącu przekroczyła 80\% wartości maksymalnej, 0 - w przeciwnym wypadku) \textbf{lowerProfit[numberOfScenarios][numberOfMonths][numberOfProductsTypes]} - 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 \subsection{Ograniczenia} Przetłumaczono ograniczenia z języka naturalnego na język matematyczny \addcontentsline{toc}{subsection}{Ograniczenia} \begin{itemize} \item Ograniczenie dolne wartości zmiennych decyzyjnych – wartości nie mogą być mniejsze od zera: \begin{equation} \forall{\substack{ m \in months \\ p \in products \\ mc \in machines}} workTime[m][mc][p] >=0 \end{equation} \begin{equation} \forall{\substack{ m \in months \\ p \in products}} produce[m][p] >=0 \end{equation} \begin{equation} \forall{\substack{ m \in months \\ p \in products}} sell[m][p] >=0 \end{equation} \begin{equation} \forall{\substack{ m \in months \\ p \in products}} stock[m][p] >=0 \end{equation} \begin{equation} \forall{\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{numberOfHoursInFactory} 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{numberOfHoursInFactory}. \begin{equation} \forall{\substack{ m \in months\\ mc \in machines}} \sum_{p \in products} (workTime[m][mc][p] <= machineCount[mc]*numberOfHoursInFactory) \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} \forall{\substack{ m \in months\\ mc \in machines\\ p \in products}} workTime[m][mc][p] == produce[m][p]*timeToProduce[mc][p] \end{equation} \item Ograniczenie maksymalnej sprzedaży wynikające z pojemności rynku w danym miesiącu: \begin{equation} \forall{\substack{ m \in months\\ p \in products}} sell[m][p] == maxProductsInMonth[m][p] \end{equation} \item Warunki definiujące zmienną binarną przy przekroczeniu 80 procent chłonności rynku: \begin{equation} \forall{\substack{ m \in months\\ p \in products}} sell[m][p] <= 0.8*maxProductsInMonth[m][p] + 1000000 * if80prec[m][p] \end{equation} \begin{equation} \forall{\substack{ m \in months\\ p \in products}} sell[m][p] >= 0.8*maxProductsInMonth[m][p] * if80prec[m][p] \end{equation} \item Ograniczenia linearyzujące oddziaływanie zmiennych binarnych na funkcję celu: \begin{equation} \forall{\substack{ i \in scenarios\\ m \in months\\ p \in products}} lowerProfit[i][m][p] <= 1000000 * if80prec[m][p] \end{equation} \begin{equation} \forall{\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} \forall{\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} \forall{\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} \forall{\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} \forall{\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} \forall{\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} \addcontentsline{toc}{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} \forall{\substack{ i