mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-04 15:03:08 +02:00
fix obvious repetitions in wdwr project
This commit is contained in:
parent
6d3b860f1f
commit
4db98e3c93
@ -11,8 +11,11 @@ lower_bound = 5
|
|||||||
upper_bound = 12
|
upper_bound = 12
|
||||||
|
|
||||||
# Generate scenarios
|
# Generate scenarios
|
||||||
data <- rtmvt(n=10000, mean=Mu, sigma=Sigma, df=5, lower=rep(lower_bound, 4), upper=rep(upper_bound, 4))
|
data <- rtmvt(n=100, mean=Mu, sigma=Sigma, df=5,
|
||||||
write.table(format(data, digits=15, drop0trailing=F), "data10000.txt", quote=F, sep="\t", eol="\n\t", col.names = F, row.names = T)
|
lower=rep(lower_bound, 4), upper=rep(upper_bound, 4))
|
||||||
|
write.table(format(data, digits=15, drop0trailing=F),
|
||||||
|
"data100.txt", quote=F, sep="\t", eol="\n\t",
|
||||||
|
col.names = F, row.names = T)
|
||||||
mean <- colMeans(data)
|
mean <- colMeans(data)
|
||||||
|
|
||||||
E <- function(idx, Mu, Sigma, v, alfa, beta) {
|
E <- function(idx, Mu, Sigma, v, alfa, beta) {
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
###########################################################
|
###########################################################
|
||||||
# WDWR 18042 #
|
# WDWR 25406 #
|
||||||
# Planowanie produkcj w warunkach ryzyka. #
|
# Planowanie produkcj w warunkach ryzyka. #
|
||||||
# MODEL #
|
# MODEL #
|
||||||
# Autor: Krzysztof Rudnicki #
|
# Autor: Krzysztof Rudnicki #
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
###########################################################
|
###########################################################
|
||||||
# WDWR 18042 #
|
# WDWR 25406 #
|
||||||
# Planowanie produkcj w warunkach ryzyka. #
|
# Planowanie produkcj w warunkach ryzyka. #
|
||||||
# SKRYPT URUCHAMIAJACY - Metoda punktu odniesienia #
|
# SKRYPT URUCHAMIAJACY - Metoda punktu odniesienia #
|
||||||
# Autor: Krzysztof Rudnicki #
|
# Autor: Krzysztof Rudnicki #
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
###########################################################
|
###########################################################
|
||||||
# WDWR 18042 #
|
# WDWR 25406 #
|
||||||
# Planowanie produkcj w warunkach ryzyka. #
|
# Planowanie produkcj w warunkach ryzyka. #
|
||||||
# MODEL #
|
# MODEL #
|
||||||
# Autor: Krzysztof Rudnicki #
|
# Autor: Krzysztof Rudnicki #
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
###########################################################
|
###########################################################
|
||||||
# WDWR 18042 #
|
# WDWR 25406 #
|
||||||
# Planowanie produkcj w warunkach ryzyka. #
|
# Planowanie produkcj w warunkach ryzyka. #
|
||||||
# SKRYPT URUCHAMIAJACY - Metoda punktu odniesienia #
|
# SKRYPT URUCHAMIAJACY - Metoda punktu odniesienia #
|
||||||
# Autor: Krzysztof Rudnicki #
|
# Autor: Krzysztof Rudnicki #
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
###########################################################
|
###########################################################
|
||||||
# WDWR 18042 #
|
# WDWR 25406 #
|
||||||
# Planowanie produkcj w warunkach ryzyka. #
|
# Planowanie produkcj w warunkach ryzyka. #
|
||||||
# DANE #
|
# DANE #
|
||||||
# Autor: Krzysztof Rudnicki #
|
# Autor: Krzysztof Rudnicki #
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
###########################################################
|
###########################################################
|
||||||
# WDWR 18042 #
|
# WDWR 25406 #
|
||||||
# Planowanie produkcj w warunkach ryzyka. #
|
# Planowanie produkcj w warunkach ryzyka. #
|
||||||
# SKRYPT URUCHAMIAJACY #
|
# SKRYPT URUCHAMIAJACY #
|
||||||
# Autor: Krzysztof Rudnicki #
|
# Autor: Krzysztof Rudnicki #
|
||||||
|
|||||||
101
Programming/WDWR/projekt/data100.txt
Normal file
101
Programming/WDWR/projekt/data100.txt
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
1 9.76311690917431 7.44135196072098 8.03080769529443 5.91262278007238
|
||||||
|
2 9.07190145652961 7.65985278468609 7.81364884192831 6.23563982924631
|
||||||
|
3 7.30586779807710 10.46831565453596 6.17860514098604 5.62316983488756
|
||||||
|
4 6.06518115356950 6.82247048657865 6.70439394704260 5.97874895226848
|
||||||
|
5 9.96818163646533 5.92140003729828 8.95647683901296 5.92957172143291
|
||||||
|
6 8.63538473131973 10.78452347210609 5.33874254384498 5.71561846706637
|
||||||
|
7 10.78779012148249 8.38993971621506 6.95119513298764 6.15728792196850
|
||||||
|
8 9.47255420321130 5.24835077098752 9.00959525502073 6.84285948274497
|
||||||
|
9 11.70926888809931 6.88871099028457 5.11505870322385 5.79141681866100
|
||||||
|
10 9.64287670970948 6.99374980548690 6.93364646280594 6.63473958816273
|
||||||
|
11 9.74417642254796 9.27515630991583 5.79381433859841 6.33880079977867
|
||||||
|
12 9.84932031583696 8.13369675991747 9.56326564416240 5.47164097940741
|
||||||
|
13 10.84180657665224 10.44173212698402 5.75796156005717 5.17082844375342
|
||||||
|
14 6.42546815399896 11.41163561400132 6.98718847694160 6.19182014565093
|
||||||
|
15 6.65343747480972 5.96491367509542 8.43404931472053 6.81514933519179
|
||||||
|
16 8.41058204665803 9.81581254769240 6.22528708513955 5.45922484668070
|
||||||
|
17 11.07466468261044 8.63685491994975 8.32064327582552 6.00532812753081
|
||||||
|
18 5.66007803163167 10.59708873150259 6.40117913595970 6.61684806440770
|
||||||
|
19 8.11097377453294 11.39989719535908 7.19879715792936 5.81867289870583
|
||||||
|
20 10.18544068664910 8.00246586468051 7.78414367307899 6.39143329793770
|
||||||
|
21 8.37417778106186 8.66901423662847 6.63403929668899 5.62622698569807
|
||||||
|
22 5.71457990443940 8.10569739243788 6.93419305872531 6.80590758355993
|
||||||
|
23 10.90693358349595 7.14177718551252 5.91236679453024 5.76232274027454
|
||||||
|
24 8.56484398609648 6.22762158139036 8.11135450623580 5.62211012798539
|
||||||
|
25 10.96985518991559 6.68271088560539 6.35539102212538 5.78652050813314
|
||||||
|
26 7.62410553749944 5.47750296350388 8.10356514381925 6.80674322754784
|
||||||
|
27 9.17309223739274 7.35075102155314 9.39642670821667 6.08239889804591
|
||||||
|
28 11.69619190069919 5.81353083316989 6.71866562538033 5.83460977495301
|
||||||
|
29 8.70647218713260 8.54952873879837 6.01177366865153 5.80247711748981
|
||||||
|
30 10.19801770668396 8.40706649849486 7.78289804784438 5.59571260544491
|
||||||
|
31 10.18823792131140 10.30622317535783 6.01007216642801 5.10730031536544
|
||||||
|
32 8.89257975110205 9.05255653431256 7.04806430135429 5.72317637496039
|
||||||
|
33 5.55169965201331 6.46995754365869 6.73752334538523 8.11225243525766
|
||||||
|
34 7.38041303280808 6.03431805441005 6.54177632374026 6.26813757511362
|
||||||
|
35 9.53600312164939 9.82870887668159 6.37298666598656 6.29512946813344
|
||||||
|
36 9.62084627760301 8.38877821804972 9.60663262550341 6.14199642708027
|
||||||
|
37 8.53371147142969 9.96028980160928 5.48461964749732 5.58700748945751
|
||||||
|
38 11.43883601853922 7.43794182684747 8.19299665196631 6.53522296979568
|
||||||
|
39 8.94531533108458 7.72770669562578 5.86612093622741 6.14249195015319
|
||||||
|
40 8.56163972282782 8.78267109358917 8.09620140224837 5.84072057986787
|
||||||
|
41 11.10581874422519 6.41650146716222 7.94880945361463 5.92181030289048
|
||||||
|
42 8.79709510873987 6.96326671422654 6.81226688976441 6.08034755239137
|
||||||
|
43 8.36353994459570 8.65114541354765 5.20396052285658 5.64107960525657
|
||||||
|
44 10.72631955621739 10.40656722635996 6.40361955726036 5.00588106915542
|
||||||
|
45 7.92377449146379 7.57337326655799 7.28981137176010 5.86937295871601
|
||||||
|
46 6.44898752031030 9.84455679079283 7.56743321024807 5.61123930238106
|
||||||
|
47 6.59142079861976 8.25490687097256 7.18086136653190 6.36808055523271
|
||||||
|
48 7.47434811723050 7.57534400043646 7.40042557613225 5.77766925416132
|
||||||
|
49 10.37922558429701 7.51649541751660 7.76007217627671 5.71165340725927
|
||||||
|
50 11.22955957441164 9.11763834237000 5.91162025004763 5.22909656515264
|
||||||
|
51 9.93626606347435 10.36742543458079 5.50414492338928 5.09387877291345
|
||||||
|
52 7.46956075160300 8.85209992891748 5.66758603774144 6.84847007082318
|
||||||
|
53 10.94818425908296 11.21395252595940 5.02869416739786 5.11896599852232
|
||||||
|
54 8.59930902434361 10.23728557433725 6.43052152866663 5.55350545843695
|
||||||
|
55 7.18223178367374 8.39628843993716 6.78631274384210 6.40826198282814
|
||||||
|
56 10.50650695671218 7.14292577351122 6.97271222602888 5.67492382261040
|
||||||
|
57 9.43266157452829 8.59707825452923 7.44232496740155 6.33561282221721
|
||||||
|
58 11.45217548324165 6.23806997675535 7.62498135882166 5.84032703043151
|
||||||
|
59 11.36423152742698 7.73909888403765 5.83487677225264 5.30267540082782
|
||||||
|
60 7.40126925234506 7.78983701703254 7.26783254076869 6.35068014074993
|
||||||
|
61 9.72974571794505 8.14279615037054 6.43258828020491 5.60905301174744
|
||||||
|
62 9.71958329969389 8.25791366588767 6.81451687462449 5.84590714949131
|
||||||
|
63 11.78371126050813 7.89117263445312 8.21483466145989 5.60333890798316
|
||||||
|
64 6.43302225580614 8.07865860135554 5.44469004007024 6.25543936966105
|
||||||
|
65 11.32524672426065 6.23439997420789 9.09984135190236 5.92522151214137
|
||||||
|
66 6.11523920037522 9.46855519033448 8.99139954457499 7.26985178631296
|
||||||
|
67 10.75986956011578 8.89269588219645 6.16473844457922 5.01830225504361
|
||||||
|
68 7.44261078629228 5.59781415962693 8.47555931122058 6.71081007297257
|
||||||
|
69 6.13170779809489 7.22655838486716 7.72995785629984 6.90573736168416
|
||||||
|
70 9.43027479825457 11.48319339258313 7.38708836041081 5.82689865183140
|
||||||
|
71 5.29171692626969 8.09437078836054 6.39563010794279 6.62912879511093
|
||||||
|
72 5.09893294234523 7.74584955672930 8.88018284918212 7.01212790493029
|
||||||
|
73 6.20578320069247 6.80617867447727 8.18103843191598 6.83958319443877
|
||||||
|
74 6.30258685494809 7.43138054831968 6.54063201012806 6.49666135387873
|
||||||
|
75 5.99078754250444 9.43740619647565 6.33367827869915 6.32580787466866
|
||||||
|
76 6.09773092392164 8.81422152842116 6.40425733606985 6.00528108344304
|
||||||
|
77 9.77514087744415 8.44932475630892 7.94420117667674 5.69585236521884
|
||||||
|
78 9.52359733569984 5.16479502907556 8.95174376770244 6.78672071859107
|
||||||
|
79 10.87512003895627 7.94035821507262 7.57773074672391 5.84630709056388
|
||||||
|
80 7.03228696898568 6.60340093608582 6.44468568443036 6.19149860676074
|
||||||
|
81 9.65992578732530 8.56527229906357 6.09872442954240 5.20440692261623
|
||||||
|
82 6.30983535489480 9.30561393417605 6.54859829930319 6.52106231396463
|
||||||
|
83 5.82137666724151 5.35827290855938 8.49191286969823 6.71371780289945
|
||||||
|
84 11.37494716877100 5.81213960381298 8.05853844161706 5.69806024484299
|
||||||
|
85 8.15267985634545 10.97224605386566 5.12446664947324 5.15795103491506
|
||||||
|
86 11.73086416587584 5.65124348656024 6.77078823854425 5.90352878508404
|
||||||
|
87 6.72960532844368 8.10521896869132 11.60799014602290 5.36046426627923
|
||||||
|
88 5.25102730028672 6.84949245261905 8.49279919952933 6.29483292662839
|
||||||
|
89 7.90449528978985 7.68346606583354 8.26036057308542 5.78474731288598
|
||||||
|
90 8.64103203208981 6.57844735571956 8.12280488732531 7.36240059132464
|
||||||
|
91 8.46655660484256 8.36699115351209 6.70419093097301 6.03113661709298
|
||||||
|
92 8.50248558815979 6.35585412244623 5.95963894605528 5.55306703237114
|
||||||
|
93 8.11096815930533 6.26958795090084 6.89847746026576 6.79423199764579
|
||||||
|
94 11.05399477820485 6.64260318869504 8.29929372751188 6.03566117360477
|
||||||
|
95 9.56800557695653 8.79263357467837 8.58788350167046 6.06774627920175
|
||||||
|
96 11.90421443450454 6.78214769706352 9.14111391052618 5.69759901474202
|
||||||
|
97 7.57911702883690 7.65716973584061 7.10622237301328 5.97627526735100
|
||||||
|
98 5.12673628692985 11.33334016193997 7.83474212553888 5.91330252723919
|
||||||
|
99 8.25983441252135 10.48661063799430 6.24054516528815 5.59523265380788
|
||||||
|
100 6.37952025900229 7.91998372816597 10.27190171308190 6.82383475873556
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
@ -468,7 +468,7 @@ Listing 1: Skrypt w języku *R* do obliczania wartości oczekiwanej wektora *R*
|
|||||||
```
|
```
|
||||||
załączniku.
|
załączniku.
|
||||||
1 # ##########################################################
|
1 # ##########################################################
|
||||||
2 # WDWR 18042 #
|
2 # WDWR 25406 #
|
||||||
3 # Planowanie produkcj w warunkach ryzyka. #
|
3 # Planowanie produkcj w warunkach ryzyka. #
|
||||||
4 # DANE #
|
4 # DANE #
|
||||||
5 # Autor : Jan Kumor #
|
5 # Autor : Jan Kumor #
|
||||||
|
|||||||
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
\documentclass[12pt]{article}
|
\documentclass{article}
|
||||||
\usepackage[utf8]{inputenc}
|
\usepackage[utf8]{inputenc}
|
||||||
\usepackage[polish]{babel}
|
\usepackage[polish]{babel}
|
||||||
\usepackage{amsmath,amssymb}
|
\usepackage{amsmath,amssymb}
|
||||||
@ -7,6 +7,8 @@
|
|||||||
\usepackage{hyperref}
|
\usepackage{hyperref}
|
||||||
\usepackage{longtable}
|
\usepackage{longtable}
|
||||||
\usepackage{enumitem}
|
\usepackage{enumitem}
|
||||||
|
\usepackage{float}
|
||||||
|
\usepackage{minted}
|
||||||
|
|
||||||
\title{WDWR, sprawozdanie}
|
\title{WDWR, sprawozdanie}
|
||||||
\author{Krzysztof Rudnicki, 307585}
|
\author{Krzysztof Rudnicki, 307585}
|
||||||
@ -15,53 +17,23 @@
|
|||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
\maketitle
|
\maketitle
|
||||||
|
\tableofcontents
|
||||||
|
|
||||||
\section*{Spis treści}
|
\section*{WDWR 25406}
|
||||||
\begin{longtable}{|c|l|c|}
|
|
||||||
\hline
|
|
||||||
1 & Treść zadania & 2 \\
|
|
||||||
\hline
|
|
||||||
2 & Jednokryterialny model wyboru w warunkach ryzyka z wartością oczekiwaną jako miarą & 3 \\
|
|
||||||
& zysku & \\
|
|
||||||
& 2.1 Zbiory indeksowe & 3 \\
|
|
||||||
& 2.2 Parametry & 3 \\
|
|
||||||
& 2.3 Zmienne & 4 \\
|
|
||||||
& 2.4 Ograniczenia & 4 \\
|
|
||||||
& 2.5 Funkcja celu & 4 \\
|
|
||||||
\hline
|
|
||||||
3 & Dwukryterialny model zysku i ryzyka z wartoscią oczekiwaną jako miarą zysku i od & 5 \\
|
|
||||||
& chyleniem maksymalnym jako miarą ryzyka & \\
|
|
||||||
& 3.1 Zbiory indeksowe & 5 \\
|
|
||||||
& 3.2 Parametry & 5 \\
|
|
||||||
& 3.3 Zmienne & 5 \\
|
|
||||||
& 3.4 Ograniczenia & 5 \\
|
|
||||||
& 3.5 Metoda punktu odniesienia & 6 \\
|
|
||||||
\hline
|
|
||||||
4 & Wyznaczenie parametrów zadania z rozkładu t-Studenta & 6 \\
|
|
||||||
\hline
|
|
||||||
5 & Model dla programu AMPL & 8 \\
|
|
||||||
& 5.1 Plik z modelem (.mod) & 8 \\
|
|
||||||
& 5.2 Plik z danymi (.dat) & 11 \\
|
|
||||||
& 5.3 Skrypty uruchomieniowe (.run) & 14 \\
|
|
||||||
\hline
|
|
||||||
6 & Rozwiązanie zadania optymalizacji & 16 \\
|
|
||||||
& 6.1 Wyniki dla modelu jednokryterialnego & 16 \\
|
|
||||||
& 6.2 Wyniki dla modelu dwukryterialnego & 19 \\
|
|
||||||
& 6.2.1 Obraz zbioru rozwiązań efektywnych w przestrzeni ryzyko-zysk & 19 \\
|
|
||||||
& 6.2.2 Analiza relacji dominacji stochastycznej dla trzech wybranych rozwiązań efek & 21 \\
|
|
||||||
& tywnych & \\
|
|
||||||
\hline
|
|
||||||
\end{longtable}
|
|
||||||
|
|
||||||
\section*{WDWR 18402}
|
|
||||||
|
|
||||||
Rozważamy następujące zagadnienie planowania produkcji:
|
Rozważamy następujące zagadnienie planowania produkcji:
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Przedsiębiorstwo wytwarza 4 produkty P1, \ldots, 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:
|
\item Przedsiębiorstwo wytwarza 4 produkty P1,
|
||||||
|
\ldots, 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:
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\begin{table}[h!]
|
\begin{table}[H]
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{|l|c|c|c|c|}
|
\begin{tabular}{|l|c|c|c|c|}
|
||||||
\hline
|
\hline
|
||||||
@ -81,7 +53,14 @@ Toczenie & — & 0,05 & 0,02 & — \\
|
|||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Dochody ze sprzedaży produktów (w zł/sztukę) określają składowe wektora losowego \textbf{R} = ($R_1, \ldots, R_4$)$^T$. Wektor losowy \textbf{R} opisuje 4-wymiarowy rozkład $t$-Studenta z 5 stopniami swobody, którego wartości składowych zostały zawężone do przedziału [5; 12]. Parametry $\mu$ oraz $\mathbf{\Sigma}$ niezawężonego rozkładu $t$-Studenta są następujące:
|
\item Dochody ze sprzedaży produktów (w zł/sztukę)
|
||||||
|
modelują składowe wektora losowego
|
||||||
|
\textbf{R} = ($R_1, \ldots, R_4$)$^T$.
|
||||||
|
Wektor losowy \textbf{R} opisuje 4-wymiarowy rozkład
|
||||||
|
$t$-Studenta z 5 stopniami swobody,
|
||||||
|
którego wartości składowych zostały zawężone do przedziału
|
||||||
|
[5; 12]. Parametry $\mu$ oraz $\mathbf{\Sigma}$
|
||||||
|
niezawężonego rozkładu $t$-Studenta są następujące:
|
||||||
|
|
||||||
$$
|
$$
|
||||||
\mu = \begin{pmatrix} 9 \\ 8 \\ 7 \\ 6 \end{pmatrix}, \qquad \Sigma = \begin{pmatrix} 16 & -2 & -1 & -3 \\ -2 & 9 & -4 & -1 \\ -1 & -4 & 4 & 1 \\ -3 & -1 & 1 & 1 \end{pmatrix}.
|
\mu = \begin{pmatrix} 9 \\ 8 \\ 7 \\ 6 \end{pmatrix}, \qquad \Sigma = \begin{pmatrix} 16 & -2 & -1 & -3 \\ -2 & 9 & -4 & -1 \\ -1 & -4 & 4 & 1 \\ -3 & -1 & 1 & 1 \end{pmatrix}.
|
||||||
@ -92,7 +71,7 @@ $$
|
|||||||
\item Istnieją ograniczenia rynkowe na liczbę sprzedawanych produktów w danym miesiącu:
|
\item Istnieją ograniczenia rynkowe na liczbę sprzedawanych produktów w danym miesiącu:
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\begin{table}[h!]
|
\begin{table}[H]
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{|l|c|c|c|c|}
|
\begin{tabular}{|l|c|c|c|c|}
|
||||||
\hline
|
\hline
|
||||||
@ -108,11 +87,12 @@ Marzec & 0 & 300 & 100 & 200 \\
|
|||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Jeżeli w danym miesiącu jest sprzedawany produkt P1 lub P2, to musi być również sprzedawany produkt P4 w ilości nie mniejszej niż suma sprzedawanych produktów P1 i P2.
|
\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. Aktualnie firma nie posiada żadnych zapasów, ale jest pożądane mieć po 50 sztuk każdego produktu pod koniec marca.
|
\item Istnieje możliwość składowania do 200 sztuk każdego produktu w danym czasie w cenie 1 zł/sztukę za miesiąc. Aktualnie firma nie posiada żadnych zapasów, ale jest pożądane mieć po 50 sztuk każdego produktu 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.
|
\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.
|
||||||
\item 1. Zaproponować jednokryterialny model wyboru w warunkach ryzyka z wartością oczekiwaną jako miarą zysku. Wyznaczyć rozwiązanie optymalne.
|
\item 1. Zaproponować jednokryterialny model wyboru w warunkach ryzyka z wartością oczekiwaną jako miarą zysku. Wyznaczyć rozwiązanie optymalne.
|
||||||
\item 2. Jako rozszerzenie powyższego zaproponować dwukryterialny model zysku i ryzyka z wartością oczekiwaną jako miarą zysku i odchyleniem maksymalnym jako miarą ryzyka. Dla decyzji $\mathbf{x} \in Q$ odchylenie maksymalne jest definiowane jako $D(\mathbf{x}) = \max_{t=1,...,T} |\mu(\mathbf{x}) - r_t(\mathbf{x})|$, gdzie $\mu(\mathbf{x})$ oznacza wartość oczekiwaną, $r_t(\mathbf{x})$ realizację dla scenariusza $t$.
|
\item 2. Jako rozszerzenie powyższego zaproponować dwukryterialny model zysku i ryzyka z wartością ś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} |r^{t'}(\mathbf{x}) - r^{t''}(\mathbf{x})|p^{t'}p^{t''}$, gdzie $r^t(\mathbf{x})$ oznacza realizację dla scenariusza $t$, $p^t$ prawdopodobieństwo scenariusza $t$.
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item a. Wyznaczyć obraz zbioru rozwiązań efektywnych w przestrzeni ryzyko–zysk.
|
\item a. Wyznaczyć obraz zbioru rozwiązań efektywnych w przestrzeni ryzyko–zysk.
|
||||||
\item b. Wskazać rozwiązania efektywne minimalnego ryzyka i maksymalnego zysku. Jakie odpowiadają im wartości w przestrzeni ryzyko–zysk?
|
\item b. Wskazać rozwiązania efektywne minimalnego ryzyka i maksymalnego zysku. Jakie odpowiadają im wartości w przestrzeni ryzyko–zysk?
|
||||||
@ -126,7 +106,7 @@ W celu rozwiązania postawionego zadania dokonano sformułowania modelu programo
|
|||||||
|
|
||||||
\subsection{Zbiory indeksowe}
|
\subsection{Zbiory indeksowe}
|
||||||
|
|
||||||
\begin{table}[h!]
|
\begin{table}[H]
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{|l|l|}
|
\begin{tabular}{|l|l|}
|
||||||
\hline
|
\hline
|
||||||
@ -143,7 +123,7 @@ M = M1, M2, M3 & Zbiór kolejnych miesięcy produkcji \\
|
|||||||
|
|
||||||
\subsection{Parametry}
|
\subsection{Parametry}
|
||||||
|
|
||||||
\begin{table}[h!]
|
\begin{table}[H]
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{|l|p{10cm}|}
|
\begin{tabular}{|l|p{10cm}|}
|
||||||
\hline
|
\hline
|
||||||
@ -180,7 +160,8 @@ $att_t = tc_t \cdot whp_m$ & Dostępna liczba godzin roboczych maszyn typu $t$ w
|
|||||||
|
|
||||||
\subsection{Zmienne}
|
\subsection{Zmienne}
|
||||||
|
|
||||||
\begin{table}[h!]
|
\renewcommand{\arraystretch}{1.5} % Increase row height
|
||||||
|
\begin{table}[H]
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{|l|p{10cm}|}
|
\begin{tabular}{|l|p{10cm}|}
|
||||||
\hline
|
\hline
|
||||||
@ -194,16 +175,21 @@ $ts_p = \sum_{m \in M} s_{mp}$ & Całkowita liczba sprzedanych sztuk produktu $p
|
|||||||
\hline
|
\hline
|
||||||
$std_{mp} = p_{mp} - s_{mp}$ & Liczba sztuk produktu $p$ zmagazynowanych w miesiącu $m$ [szt] \\
|
$std_{mp} = p_{mp} - s_{mp}$ & Liczba sztuk produktu $p$ zmagazynowanych w miesiącu $m$ [szt] \\
|
||||||
\hline
|
\hline
|
||||||
$stg_{mp} = st0_p + \sum_{m2=1}^{m} std_{m2p}$ & Stan magazynowy produktu $p$ na koniec miesiąca $m$ [szt] \\
|
$stg_{mp} = st0_p + \sum\limits_{m2=1}^{m} std_{m2p}$ & Stan magazynowy produktu $p$ na koniec miesiąca $m$ [szt] \\
|
||||||
\hline
|
\hline
|
||||||
$uttm_t = \sum_{p \in P} p_{mp} \cdot ttpu_{tp}$ & Wykorzystanie czasu pracy maszyny typu $t$ w miesiącu $m$ [godz] \\
|
$uttm_t = \sum\limits_{p \in P} p_{mp} \cdot ttpu_{tp}$ & Wykorzystanie czasu pracy maszyny typu $t$ w miesiącu $m$ [godz] \\
|
||||||
\hline
|
\hline
|
||||||
$tstc = stcp_u \cdot \sum_{m \in M} \sum_{p \in P} stg_{mp}$ & Całkowity koszt wykorzystania magazynów [zł] \\
|
$tstc = stcp_u \cdot \sum\limits_{m \in M} \sum\limits_{p \in P} stg_{mp}$ & Całkowity koszt wykorzystania magazynów [zł] \\
|
||||||
\hline
|
\hline
|
||||||
$ep = \sum_{p \in P} (ts_p \cdot eppu_p) - tstc$ & Wartość zysku całkowitego dla wartości oczekiwanych zysku ze sprzedaży produktów [zł] \\
|
$b_{mp}$ & Zmienna binarna określająca czy sprzedaż produktu $p$ w miesiącu $m$ przekracza 80\% limitu rynkowego \\
|
||||||
|
\hline
|
||||||
|
$eppu_{mp} = eppu_p \cdot (1 - 0.2 \cdot b_{mp})$ & Skorygowany zysk jednostkowy dla produktu $p$ w miesiącu $m$ uwzględniający spadek o 20\% jeśli sprzedaż przekracza 80\% limitu rynkowego [zł] \\
|
||||||
|
\hline
|
||||||
|
$ep = \sum\limits_{m \in M} \sum\limits_{p \in P} (s_{mp} \cdot eppu_{mp}) - tstc$ & Wartość zysku całkowitego dla wartości oczekiwanych zysku ze sprzedaży produktów [zł] \\
|
||||||
\hline
|
\hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{table}
|
\end{table}
|
||||||
|
\renewcommand{\arraystretch}{1} % Reset to default value
|
||||||
|
|
||||||
\subsection{Ograniczenia}
|
\subsection{Ograniczenia}
|
||||||
|
|
||||||
@ -219,10 +205,6 @@ Ograniczenie sprzedaży produktów w kolejnych miesiącach:
|
|||||||
|
|
||||||
$$s_{mp} \leqslant p_{mp} + stg_{mp}, \quad \forall m \in M \backslash \{1\}$$
|
$$s_{mp} \leqslant p_{mp} + stg_{mp}, \quad \forall m \in M \backslash \{1\}$$
|
||||||
|
|
||||||
Ograniczenie na powiązanie sprzedaży produktu 4 ze sprzedażą produktów 1 i 2:
|
|
||||||
|
|
||||||
$s_{m4} > s_{m1} + s_{m2}, \quad \forall m \in M$
|
|
||||||
|
|
||||||
Ograniczenie pojemności magazynów:
|
Ograniczenie pojemności magazynów:
|
||||||
|
|
||||||
$$stg_{mp} \leqslant stl_p, \quad \forall p \in P$$
|
$$stg_{mp} \leqslant stl_p, \quad \forall p \in P$$
|
||||||
@ -235,6 +217,14 @@ Ograniczenie wykorzystania czasu pracy narzędzi w danym miesiącu:
|
|||||||
|
|
||||||
$uttm_t \leq att_t, \quad \forall t \in T, \forall m \in M$
|
$uttm_t \leq att_t, \quad \forall t \in T, \forall m \in M$
|
||||||
|
|
||||||
|
Ograniczenie identyfikujące przekroczenie 80\% limitu rynkowego:
|
||||||
|
|
||||||
|
$$s_{mp} \leq 0.8 \cdot smlm_p + M \cdot b_{mp}, \quad \forall m \in M, \forall p \in P$$
|
||||||
|
|
||||||
|
$$s_{mp} \geq 0.8 \cdot smlm_p - M \cdot (1 - b_{mp}) + \varepsilon, \quad \forall m \in M, \forall p \in P$$
|
||||||
|
|
||||||
|
gdzie $M$ jest dostatecznie dużą liczbą, a $\varepsilon$ jest małą liczbą dodatnią.
|
||||||
|
|
||||||
\subsection{Funkcja celu}
|
\subsection{Funkcja celu}
|
||||||
|
|
||||||
Jako funkcję celu przyjęto maksymalizację wartości oczekiwanej zysku: $maximize \; ep$
|
Jako funkcję celu przyjęto maksymalizację wartości oczekiwanej zysku: $maximize \; ep$
|
||||||
@ -245,7 +235,7 @@ Model ten został zrealizowany jako rozszerzenie modelu jednokryterialnego o dod
|
|||||||
|
|
||||||
\subsection{Zbiory indeksowe}
|
\subsection{Zbiory indeksowe}
|
||||||
|
|
||||||
\begin{table}[h!]
|
\begin{table}[H]
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{|l|l|}
|
\begin{tabular}{|l|l|}
|
||||||
\hline
|
\hline
|
||||||
@ -258,7 +248,7 @@ S = S1, \ldots, S1000 & Zbiór scenariuszy wygenerowanych z rozkładu t-Studenta
|
|||||||
|
|
||||||
\subsection{Parametry}
|
\subsection{Parametry}
|
||||||
|
|
||||||
\begin{table}[h!]
|
\begin{table}[H]
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{|l|l|}
|
\begin{tabular}{|l|l|}
|
||||||
\hline
|
\hline
|
||||||
@ -270,8 +260,8 @@ $sppu_{ps}$ & Zysk ze sprzedaży jednej sztuki produktu $p$ w scenariuszu $s$ [z
|
|||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
\subsection{Zmienne}
|
\subsection{Zmienne}
|
||||||
|
inputminted
|
||||||
\begin{table}[h!]
|
\begin{table}[H]
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{|l|p{10cm}|}
|
\begin{tabular}{|l|p{10cm}|}
|
||||||
\hline
|
\hline
|
||||||
@ -316,7 +306,7 @@ $$\sum_{s \in S} Z_s = 1$$
|
|||||||
|
|
||||||
Jako model preferencji dla modelu dwukryterialnego została wybrana metoda punktu odniesienia. Wprowadza ona zestaw dodatkowych parametrów i zmiennych:
|
Jako model preferencji dla modelu dwukryterialnego została wybrana metoda punktu odniesienia. Wprowadza ona zestaw dodatkowych parametrów i zmiennych:
|
||||||
|
|
||||||
\begin{table}[h!]
|
\begin{table}[H]
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{|l|p{10cm}|}
|
\begin{tabular}{|l|p{10cm}|}
|
||||||
\hline
|
\hline
|
||||||
@ -384,230 +374,23 @@ Otrzymano wartości:
|
|||||||
|
|
||||||
$E(R)^T = [8.5094, 8.4710, 8.1319, 6.3944]$
|
$E(R)^T = [8.5094, 8.4710, 8.1319, 6.3944]$
|
||||||
|
|
||||||
Do obliczenia wartości oczekiwanej oraz wyznaczenia scenariuszy wykorzystano skrypt napisany w języku $R$. Wygenerowano 1000 scenariuszy testowtych. Użyty skrypt przedstawia Listing 1.
|
Do obliczenia wartości oczekiwanej oraz wyznaczenia scenariuszy wykorzystano skrypt napisany w języku $R$. Wygenerowano 100 scenariuszy testowtych. Użyty skrypt przedstawia Listing 1.
|
||||||
|
|
||||||
Listing 1: Skrypt w języku $R$ do obliczania wartości oczekiwanej wektora $R$ i generowania scenariuszy z rozkładu t-Studenta.
|
Listing 1: Skrypt w języku $R$ do obliczania wartości oczekiwanej wektora $R$ i generowania scenariuszy z rozkładu t-Studenta.
|
||||||
|
|
||||||
\begin{verbatim}
|
\inputminted[autogobble]{R}{../WDWR.r}
|
||||||
1 library ( tmvtnorm )
|
|
||||||
2
|
|
||||||
3 # t- Stutdet parameters
|
|
||||||
4 Mu = c(9 , 8 , 7 , 6)
|
|
||||||
5 Sigma = matrix (c(16 , -2 , -1 , -3 ,
|
|
||||||
6 -2 , 9 , -4 , -1 ,
|
|
||||||
7 -1 , -4 , 4 , 1 ,
|
|
||||||
8 -3 , -1 , 1 , 1) ,
|
|
||||||
9 nrow =4 , ncol =4)
|
|
||||||
10 lower _ bound = 5
|
|
||||||
11 upper _ bound = 12
|
|
||||||
12
|
|
||||||
13 # Generate scenarios
|
|
||||||
14 data <- rtmvt ( n =10000 , mean = mu , sigma = sigma , df =5 , lower =rep ( lower _←-
|
|
||||||
bound , 4) , upper =rep ( upper _bound , 4) )
|
|
||||||
15 write . table ( format (data , digits =15 , drop0trailing = F ) , " data10000 .txt"←-
|
|
||||||
, quote =F , sep ="\t", eol ="\n\t", col . names = F , row . names = T )
|
|
||||||
16 mean <- colMeans ( data )
|
|
||||||
17
|
|
||||||
18 E <- function ( idx , Mu , Sigma , v , alfa , beta ) {
|
|
||||||
19 mu = Mu [ idx ]
|
|
||||||
20 sigma = Sigma [ idx , idx ]
|
|
||||||
21 a = ( alfa - mu )/ sigma
|
|
||||||
22 b = ( beta - mu )/ sigma
|
|
||||||
23 nom = gamma (( v -1)/2) *
|
|
||||||
24 (( v + a ^2) ^( -1*(v -1) /2) -
|
|
||||||
25 ( v + b ^2) ^( -1*(v -1)/2) ) *
|
|
||||||
26 v ^( v/2)
|
|
||||||
27 den = 2 * (pt(b , v ) - pt(a , v ) ) * gamma ( v/2) * gamma (1/2)
|
|
||||||
28 return ( mu + sigma *( nom /den ) )
|
|
||||||
29 }
|
|
||||||
30
|
|
||||||
31 ER1 <- E (1 , Mu , Sigma , 5 , 5 , 12)
|
|
||||||
32 ER2 <- E (2 , Mu , Sigma , 5 , 5 , 12)
|
|
||||||
33 ER3 <- E (3 , Mu , Sigma , 5 , 5 , 12)
|
|
||||||
34 ER4 <- E (4 , Mu , Sigma , 5 , 5 , 12)
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
45
|
|
||||||
46 # Aktualny stan magazynowy [szt]
|
|
||||||
47 param startingStorage { PRODUCTS } >= 0;
|
|
||||||
48
|
|
||||||
49 # Pozadany stan magazynowy na koniec symulacji [szt]
|
|
||||||
50 param desiredEndStorage { PRODUCTS } >= 0;
|
|
||||||
51
|
|
||||||
52 # Liczba dni roboczych w miesiacu [d]
|
|
||||||
53 param daysPerMonth >= 1;
|
|
||||||
54
|
|
||||||
55 # Liczba zmian w ciagu jednego dnia roboczego
|
|
||||||
56 param shiftsPerDay >= 1;
|
|
||||||
57
|
|
||||||
58 # Dlugosc zmiany [ godz ]
|
|
||||||
59 param hoursPerShift >= 1;
|
|
||||||
60
|
|
||||||
61 # Liczba roboczogodzin w miesiacu [ godz ]
|
|
||||||
62 param workHoursPerMonth = daysPerMonth * shiftsPerDay * hoursPerShift ;
|
|
||||||
63
|
|
||||||
64 # Czas pracy narzedzi w danym miesiacu
|
|
||||||
65 param availableToolTime { t in TOOLS } = toolCount [ t ]* workHoursPerMonth←-
|
|
||||||
;
|
|
||||||
66
|
|
||||||
67 # ##########
|
|
||||||
68 # Zmienne #
|
|
||||||
69 # ##########
|
|
||||||
70 # Produkcja produktow
|
|
||||||
71 var produced { MONTHS , PRODUCTS } >= 0 integer ;
|
|
||||||
72
|
|
||||||
73 # Sprzedaz produktow w danym miesiacu
|
|
||||||
74 var sold { MONTHS , PRODUCTS } >= 0 integer ;
|
|
||||||
75 var totalSold { p in PRODUCTS } = sum { m in MONTHS } sold [m , p ];
|
|
||||||
76
|
|
||||||
77 # Ilosc produktow przekazanych do magazynu w danym miesiacu
|
|
||||||
78 var stored { m in MONTHS , p in PRODUCTS } = produced [m , p ] - sold [m , p←-
|
|
||||||
];
|
|
||||||
79
|
|
||||||
80 # Stan magazynowy na koniec danego miesiaca
|
|
||||||
81 var storage { m in MONTHS , p in PRODUCTS } =
|
|
||||||
82 startingStorage [ p ] + sum { m2 in MONTHS : ord( m2 ) <= ord( m ) } ←-
|
|
||||||
stored [ m2 , p ];
|
|
||||||
83
|
|
||||||
84 # Wykorzystany czas pracy
|
|
||||||
85 var usedToolTime { m in MONTHS , t in TOOLS } =
|
|
||||||
86 sum { p in PRODUCTS } produced [m , p ]* toolTimePerUnit [t , p ];
|
|
||||||
87
|
|
||||||
88 # Koszt magazynowania
|
|
||||||
89 var monthlyStorageCost { m in MONTHS } =
|
|
||||||
90 (sum { p in PRODUCTS } storage [m , p ]) * storageUnitCost ;
|
|
||||||
91 var totalStorageCost = sum { m in MONTHS } monthlyStorageCost [ m ];
|
|
||||||
92
|
|
||||||
93 # Zysk dla wartosci oczekiwanej
|
|
||||||
94 var expectedSalesProfit =
|
|
||||||
95 sum { p in PRODUCTS } totalSold [ p ]* expectedProfitPerUnit [ p ];
|
|
||||||
96 var expectedNetProfit =
|
|
||||||
97 expectedSalesProfit - totalStorageCost ;
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
98
|
|
||||||
99 # Zysk w danym scenariuszu
|
|
||||||
100 var scenarioSalesProfit { s in SCENARIOS } =
|
|
||||||
101 sum { p in PRODUCTS } totalSold [ p ]* scenarioProfitPerUnit [s , p ];
|
|
||||||
102 var scenarioNetProfit { s in SCENARIOS } =
|
|
||||||
103 scenarioSalesProfit [ s ] - totalStorageCost ;
|
|
||||||
104
|
|
||||||
105 # Odchylenie jako miara ryzyka - zlinearyzowana wartosc bezwzgledna
|
|
||||||
106 var deviation { s in SCENARIOS } =
|
|
||||||
107 expectedNetProfit - scenarioNetProfit [ s ];
|
|
||||||
108 var P { SCENARIOS } >= 0;
|
|
||||||
109 var Q { SCENARIOS } >= 0;
|
|
||||||
110 subject to deviationLimit { s1 in SCENARIOS , s2 in SCENARIOS }:
|
|
||||||
111 deviation [ s1 ] - deviation [ s2 ]+ P [ s1 ] - Q [ s2 ] = 0;
|
|
||||||
112
|
|
||||||
113 #var maxDeviation = max {s in SCENARIOS } deviation [s];
|
|
||||||
114 var maxDeviation ;
|
|
||||||
115 # Linearyzacja maksymalnego odchylenia jako miary ryzyka
|
|
||||||
116 param M = 10000;
|
|
||||||
117 var Z { SCENARIOS } binary ;
|
|
||||||
118 subject to mdLimit { s in SCENARIOS }:
|
|
||||||
119 maxDeviation >= deviation [ s ];
|
|
||||||
120 subject to mdWhere { s in SCENARIOS }:
|
|
||||||
121 maxDeviation <= deviation [ s ] + M *(1 - Z [ s ]) ;
|
|
||||||
122 subject to mdOS :
|
|
||||||
123 sum { s in SCENARIOS } Z [ s ] = 1;
|
|
||||||
124
|
|
||||||
125 # Aliasy dla ocenianych wartosci
|
|
||||||
126 var profit = expectedNetProfit ;
|
|
||||||
127 var risk = maxDeviation ;
|
|
||||||
128
|
|
||||||
129 # ######################
|
|
||||||
130 # Ograniczenia modelu #
|
|
||||||
131 # ######################
|
|
||||||
132
|
|
||||||
133 # Ograniczenie rynkowe sprzedazy produktow
|
|
||||||
134 subject to SalesMarketLimit { m in MONTHS , p in PRODUCTS }:
|
|
||||||
135 sold [m , p ] <= salesMarketLimit [m , p ];
|
|
||||||
136 # Ograniczenie magazynowe sprzedazy produktow
|
|
||||||
137 subject to SalesLimit1 { p in PRODUCTS }:
|
|
||||||
138 sold [ first ( MONTHS ) , p ] <= produced [ first ( MONTHS ) , p ];
|
|
||||||
139 subject to SalesLimit2 { m in MONTHS , p in PRODUCTS : m != first ( MONTHS←-
|
|
||||||
) }:
|
|
||||||
140 sold [m , p ] <= produced [m , p ] + storage [m , p ];
|
|
||||||
141 # Powiazanie sprzedazy produktu P4 ze sprzedaza produktow P1 i P2
|
|
||||||
142 subject to P4SalesConstraint { m in MONTHS }:
|
|
||||||
143 sold [m , "P4"] >= sold [m , "P1"] + sold [m , "P2"];
|
|
||||||
144 # Ograniczenie pojemnosci magazynowej
|
|
||||||
145 subject to StorageLimit { m in MONTHS , p in PRODUCTS }:
|
|
||||||
146 storage [m , p ] <= storageLimit [ p ];
|
|
||||||
147 # Ograniczenie na pozadany stan magazynowy na koniec marca
|
|
||||||
148 subject to DesiredStorage { p in PRODUCTS }:
|
|
||||||
149 storage [ last ( MONTHS ) , p ] >= desiredEndStorage [ p ];
|
|
||||||
150 # Ograniczenie czasu pracy narzedzi w miesiacu
|
|
||||||
151 subject to ToolWorkTime { m in MONTHS , t in TOOLS }:
|
|
||||||
152 usedToolTime [m , t ] <= availableToolTime [ t ];
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
153
|
|
||||||
154 # ############################
|
|
||||||
155 # Metoda punktu odniesienia #
|
|
||||||
156 # ############################
|
|
||||||
157 # Skladniki wektora oceny
|
|
||||||
158 set RATED = {" PROFIT ", " RISK "};
|
|
||||||
159 # Wektor oceny
|
|
||||||
160 var value { r in RATED } =
|
|
||||||
161 if r == " PROFIT " then profit
|
|
||||||
162 else if r == " RISK " then risk ;
|
|
||||||
163 # Wektor aspiracji
|
|
||||||
164 param aspiration { RATED };
|
|
||||||
165 # Wartosci utopii i nadiru
|
|
||||||
166 param utopia { RATED };
|
|
||||||
167 param nadir { RATED };
|
|
||||||
168 # Wspolczynniki normalizujace
|
|
||||||
169 param lambda { r in RATED } =
|
|
||||||
170 1 / ( utopia [r] - nadir [r]);
|
|
||||||
171 # Wspolczynnik skladnika regularyzacyjnego
|
|
||||||
172 param epsilon ;
|
|
||||||
173 # Wspolczynnik pomniejszenia wartosci ocen ponad poziomem aspiracji
|
|
||||||
174 param beta ;
|
|
||||||
175 # Indywidualne funkcje osiagniec
|
|
||||||
176 var individualRating { RATED };
|
|
||||||
177 # Zmienna pomocnicza metody punktu odniesienia
|
|
||||||
178 var v;
|
|
||||||
179 # Skalaryzujaca funkcja osiagniecia
|
|
||||||
180 var rating = v + epsilon * (sum {r in RATED } individualRating [r]);
|
|
||||||
181 # Odleglosc od punktu odniesienia
|
|
||||||
182 var distance {r in RATED } = value [r] - aspiration [r];
|
|
||||||
183 # Znormalizowana odleglosc od punktu odniesienia
|
|
||||||
184 var normalizedDistance {r in RATED } = lambda [r]* distance [r];
|
|
||||||
185 # Ograniczenia zmiennej v przez indywidualne funkcje osiagniec
|
|
||||||
186 subject to VSubject {r in RATED }:
|
|
||||||
187 v <= individualRating [r];
|
|
||||||
188 # Ograniczenia indywidualnych funkcji osiagniec
|
|
||||||
189 subject to IndividualRatingSubjectBeta {r in RATED }:
|
|
||||||
190 individualRating [r] <= beta * normalizedDistance [r];
|
|
||||||
191 subject to IndividualRatingSubject {r in RATED }:
|
|
||||||
192 individualRating [r] <= normalizedDistance [r];
|
|
||||||
193
|
|
||||||
194 ################
|
|
||||||
195 # Funkcje celu #
|
|
||||||
196 ################
|
|
||||||
197 minimize MinimizeProfit : profit ;
|
|
||||||
198 maximize MaximizeProfit : profit ;
|
|
||||||
199 minimize MinimizeRisk : risk ;
|
|
||||||
200 maximize MaximizeRisk : risk ;
|
|
||||||
201 maximize RPM: rating ;
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
\section{Model dla programu AMPL}
|
\section{Model dla programu AMPL}
|
||||||
|
|
||||||
\subsection{Plik z modelem (.mod)}
|
\subsection{Plik z modelem (.mod)}
|
||||||
|
|
||||||
\subsection{Plik z danymi (.dat)}
|
\inputminted[autogobble]{R}{../WDWR1.mod}
|
||||||
|
|
||||||
Listing 3: Dane dla modelu AMPL - pominięto scenariusze, pełny zestaw danych dostępny w załączniku.
|
\subsection{Plik z danymi (.dat)}
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
1 # ##########################################################
|
1 # ##########################################################
|
||||||
2 # WDWR 18042 #
|
2 # WDWR 25406 #
|
||||||
3 # Planowanie produkcj w warunkach ryzyka. #
|
3 # Planowanie produkcj w warunkach ryzyka. #
|
||||||
4 # DANE #
|
4 # DANE #
|
||||||
5 # Autor : Krzysztof Rudnicki #
|
5 # Autor : Krzysztof Rudnicki #
|
||||||
@ -631,13 +414,13 @@ Listing 3: Dane dla modelu AMPL - pominięto scenariusze, pełny zestaw danych d
|
|||||||
23 # Czasy produkcji h
|
23 # Czasy produkcji h
|
||||||
24 param toolTimePerUnit :
|
24 param toolTimePerUnit :
|
||||||
25 P1 P2 P3←-
|
25 P1 P2 P3←-
|
||||||
P4 :=
|
P4 :=
|
||||||
26 GRINDER 0 .4 0 .6 0 ←-
|
26 GRINDER 0 .4 0 .6 0 ←-
|
||||||
0
|
0
|
||||||
27 VDRILL 0 .2 0 .1 0 ←-
|
27 VDRILL 0 .2 0 .1 0 ←-
|
||||||
0 .6
|
0 .6
|
||||||
28 HDRILL 0 .1 0 0 .7 ←-
|
28 HDRILL 0 .1 0 0 .7 ←-
|
||||||
0
|
0
|
||||||
29 MILLER 0 .06 0 .04 0 0 .05
|
29 MILLER 0 .06 0 .04 0 0 .05
|
||||||
30 LATHE 0 0 .05 0 .02 0
|
30 LATHE 0 0 .05 0 .02 0
|
||||||
31 ;
|
31 ;
|
||||||
@ -645,13 +428,13 @@ Listing 3: Dane dla modelu AMPL - pominięto scenariusze, pełny zestaw danych d
|
|||||||
33 # Ograniczenia rynkowe liczby sprzedawanych produktow pcs
|
33 # Ograniczenia rynkowe liczby sprzedawanych produktow pcs
|
||||||
34 param salesMarketLimit :
|
34 param salesMarketLimit :
|
||||||
35 P1 P2 P3 ←-
|
35 P1 P2 P3 ←-
|
||||||
P4 :=
|
P4 :=
|
||||||
36 JAN 200 0 100 ←-
|
36 JAN 200 0 100 ←-
|
||||||
200
|
200
|
||||||
37 FEB 300 100 200 ←-
|
37 FEB 300 100 200 ←-
|
||||||
200
|
200
|
||||||
38 MAR 0 300 100 ←-
|
38 MAR 0 300 100 ←-
|
||||||
200
|
200
|
||||||
39 ;
|
39 ;
|
||||||
40
|
40
|
||||||
41 # Ograniczeine liczby magazynowanych produktow pcs
|
41 # Ograniczeine liczby magazynowanych produktow pcs
|
||||||
@ -721,73 +504,78 @@ Listing 3: Dane dla modelu AMPL - pominięto scenariusze, pełny zestaw danych d
|
|||||||
102 RISK 0
|
102 RISK 0
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
|
|
||||||
\subsection{Skrypty uruchomieniowe (.run)}
|
\subsection{Skrypty uruchomieniowe (.run)}
|
||||||
|
|
||||||
|
\inputminted[autogobble]{R}{../WDWR1.run}
|
||||||
|
|
||||||
\section{Rozwiązanie zadania optymalizacji}
|
\section{Rozwiązanie zadania optymalizacji}
|
||||||
|
|
||||||
\subsection{Wyniki dla modelu jednokryterialnego}
|
\subsection{Wyniki dla modelu jednokryterialnego}
|
||||||
|
|
||||||
$s_{mp}$ oraz wartość wyznaczonego rozwiązania optymalnego:
|
$s_{mp}$ oraz wartość wyznaczonego rozwiązania optymalnego:
|
||||||
|
|
||||||
$ep = 11987.42[z]$
|
$ep = 13943.26177[z]$
|
||||||
|
|
||||||
Listing 7: Wynik działania skryptu wyznaczającego rozwiązanie optymalne modelu jednokryterialnego.
|
Listing 7: Wynik działania skryptu wyznaczającego rozwiązanie optymalne modelu jednokryterialnego.
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
1 # ################################################
|
#################################################
|
||||||
2 ###Maximize profit for expected profit value ###
|
### Maximize profit for expected profit value ###
|
||||||
3 # ################################################
|
#################################################
|
||||||
4 CPLEX 12 .8.0.0 : optimal integer solution ; objective 11987 .41899
|
CPLEX 22.1.2: optimal solution; objective 13943.26177
|
||||||
5 11MIP simplex iterations
|
7 simplex iterations
|
||||||
6 0branch -and - bound nodes
|
produced :=
|
||||||
7 produced :=
|
JAN P1 200
|
||||||
8 JAN P1 200
|
JAN P2 0
|
||||||
9 JAN P2 0
|
JAN P3 100
|
||||||
10 JAN P3 100
|
JAN P4 200
|
||||||
11 JAN P4 200
|
FEB P1 300
|
||||||
12 FEB P1 200
|
FEB P2 100
|
||||||
13 FEB P2 0
|
FEB P3 200
|
||||||
14 FEB P3 200
|
FEB P4 200
|
||||||
15 FEB P4 200
|
MAR P1 50
|
||||||
16 MAR P1 50
|
MAR P2 350
|
||||||
17 MAR P2 250
|
MAR P3 150
|
||||||
18 MAR P3 150
|
MAR P4 250
|
||||||
19 MAR P4 250
|
;
|
||||||
20 ;
|
|
||||||
21
|
sold :=
|
||||||
22 sold :=
|
JAN P1 200
|
||||||
23 JAN P1 200
|
JAN P2 0
|
||||||
24 JAN P2 0
|
JAN P3 100
|
||||||
25 JAN P3 100
|
JAN P4 200
|
||||||
26 JAN P4 200
|
FEB P1 300
|
||||||
27 FEB P1 200
|
FEB P2 100
|
||||||
28 FEB P2 0
|
FEB P3 200
|
||||||
29 FEB P3 200
|
FEB P4 200
|
||||||
30 FEB P4 200
|
MAR P1 0
|
||||||
31 MAR P1 0
|
MAR P2 300
|
||||||
32 MAR P2 200
|
MAR P3 100
|
||||||
33 MAR P3 100
|
MAR P4 200
|
||||||
34 MAR P4 200
|
;
|
||||||
35 ;
|
|
||||||
36
|
stored :=
|
||||||
37 stored :=
|
JAN P1 0
|
||||||
38 JAN P1 0
|
JAN P2 0
|
||||||
39 JAN P2 0
|
JAN P3 0
|
||||||
40 JAN P3 0
|
JAN P4 0
|
||||||
41 JAN P4 0
|
FEB P1 0
|
||||||
42 FEB P1 0
|
FEB P2 0
|
||||||
43 FEB P2 0
|
FEB P3 0
|
||||||
44 FEB P3 0
|
FEB P4 0
|
||||||
45 FEB P4 0
|
MAR P1 50
|
||||||
46 MAR P1 50
|
MAR P2 50
|
||||||
47 MAR P2 50
|
MAR P3 50
|
||||||
48 MAR P3 50
|
MAR P4 50
|
||||||
49 MAR P4 50
|
;
|
||||||
|
|
||||||
|
Profit: 13943.261775
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
52 Profit: 11987.418989
|
52 Profit: 13943.261775
|
||||||
|
|
||||||
\begin{figure}[h!]
|
\begin{figure}[H]
|
||||||
\centering
|
\centering
|
||||||
%\includegraphics[width=\linewidth]{_page_0_Figure_0.jpeg}
|
%\includegraphics[width=\linewidth]{_page_0_Figure_0.jpeg}
|
||||||
\caption{Obraz zbioru rozwiązań efektywnych w przestrzeni ryzyko-zysk}
|
\caption{Obraz zbioru rozwiązań efektywnych w przestrzeni ryzyko-zysk}
|
||||||
@ -912,7 +700,7 @@ Dystrybuanty zysku przedstawia Rysunek 2.
|
|||||||
|
|
||||||
Na podstawie wykresów możemy stwierdzić, że rozwiązanie dla scenariusza z maksymalnym zyskiem dominuje w sensie FSD pozostałe rozwiązania. Dodatkowo widzimy, że rozwiązanie ze scenariusza 3 dominuje w sensie FSD rozwiązanie scenariusza 2.
|
Na podstawie wykresów możemy stwierdzić, że rozwiązanie dla scenariusza z maksymalnym zyskiem dominuje w sensie FSD pozostałe rozwiązania. Dodatkowo widzimy, że rozwiązanie ze scenariusza 3 dominuje w sensie FSD rozwiązanie scenariusza 2.
|
||||||
|
|
||||||
\begin{figure}[h!]
|
\begin{figure}[H]
|
||||||
\centering
|
\centering
|
||||||
%\includegraphics[width=\linewidth]{_page_0_Figure_0.jpeg}
|
%\includegraphics[width=\linewidth]{_page_0_Figure_0.jpeg}
|
||||||
\caption{Wykres dystrybuant zysku dla poszczególnych rozwiązań}
|
\caption{Wykres dystrybuant zysku dla poszczególnych rozwiązań}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user