mirror of
https://github.com/13hannes11/bachelor_thesis.git
synced 2024-09-04 01:11:00 +02:00
Compare commits
330 Commits
v0.2-propo
...
v1.0-thesi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
94e0695b8d | ||
|
|
3bc4cca705 | ||
|
|
502f665601 | ||
|
|
92a242c913 | ||
|
|
2bd82503a3 | ||
|
|
d850bd0d77 | ||
|
|
31616e3fb3 | ||
|
|
5ff6696b8f | ||
|
|
c41ee2b7f1 | ||
|
|
f93a94d3a3 | ||
|
|
284903e017 | ||
|
|
9861ce4cc4 | ||
|
|
0ca1a20146 | ||
|
|
a976319b17 | ||
|
|
11e8781c46 | ||
|
|
69b84403c2 | ||
|
|
09bf83d27c | ||
|
|
1235395688 | ||
|
|
e49ac7eab4 | ||
|
|
68ceb5d669 | ||
|
|
13f7d5f945 | ||
|
|
f65a2665d2 | ||
|
|
2e9d2419c6 | ||
|
|
2331f6820d | ||
|
|
7df3f51940 | ||
|
|
075ef51015 | ||
|
|
4aed498ef4 | ||
|
|
7149d02541 | ||
|
|
3f75e757da | ||
|
|
cdf8864c1e | ||
|
|
ff25c4b6e2 | ||
|
|
88c28097c8 | ||
|
|
60ff28512f | ||
|
|
ad5bdf17f4 | ||
|
|
9b25f26a88 | ||
|
|
463b8649c9 | ||
|
|
60253359a7 | ||
|
|
e6baf0e1c1 | ||
|
|
adaca3c175 | ||
|
|
afe8d771c9 | ||
|
|
8aa55ac31c | ||
|
|
0eb85aac96 | ||
|
|
28931bfdfd | ||
|
|
6cacdfd69d | ||
|
|
bef8fb2671 | ||
|
|
618b0a8f8b | ||
|
|
8c25d73f59 | ||
|
|
4486f12441 | ||
|
|
f1ca6621a3 | ||
|
|
27498e1f3f | ||
|
|
27f9c277de | ||
|
|
79abbcdedb | ||
|
|
6d481c5fcb | ||
|
|
70ad237e01 | ||
|
|
d3e2add265 | ||
|
|
5eca0965b5 | ||
|
|
5aa6289c1a | ||
|
|
88cb37460e | ||
|
|
b76a886a1f | ||
|
|
f0adb186b4 | ||
|
|
00d01fb669 | ||
|
|
eb4a543884 | ||
|
|
26655d68ac | ||
|
|
db4f96c90e | ||
|
|
54817ef2b3 | ||
|
|
c791ee0921 | ||
|
|
e1bdf719ae | ||
|
|
93bdb51f1d | ||
|
|
d9e0c20382 | ||
|
|
1ba626c74d | ||
|
|
b513c3f7d3 | ||
|
|
9f8b2b5e5e | ||
|
|
59c0586f14 | ||
|
|
8ef98b0950 | ||
|
|
31100c2412 | ||
|
|
aaccd8a2bc | ||
|
|
0ecab29e11 | ||
|
|
dc384fe803 | ||
|
|
031db18206 | ||
|
|
ae97187735 | ||
|
|
734174b071 | ||
|
|
8311439715 | ||
|
|
a206261bd4 | ||
|
|
7b9294f4f4 | ||
|
|
6ef7a4a111 | ||
|
|
15d016a5bf | ||
|
|
6b108fa03d | ||
|
|
43e289b0b7 | ||
|
|
0738537a7b | ||
|
|
a3427b2b0a | ||
|
|
f473e8aec0 | ||
|
|
c7e888f9fd | ||
|
|
9c29887deb | ||
|
|
1a95bf4f5b | ||
|
|
d2c4821901 | ||
|
|
b463ef6b5b | ||
|
|
bedb4cd582 | ||
|
|
2dbb3538f7 | ||
|
|
f8af8e90dd | ||
|
|
a98d50396e | ||
|
|
308c2822a2 | ||
|
|
a796e05f9f | ||
|
|
b22dc1880f | ||
|
|
046b8226bb | ||
|
|
53f6d1404a | ||
|
|
b3437fe4db | ||
|
|
6d1ab00082 | ||
|
|
6085d66173 | ||
|
|
ff9a806da6 | ||
|
|
933e6f8317 | ||
|
|
85e2331679 | ||
|
|
5e2b0e4358 | ||
|
|
e0204235bb | ||
|
|
3afab2607a | ||
|
|
f7fa6f7e85 | ||
|
|
da4c76eb62 | ||
|
|
cc474c3b0b | ||
|
|
a01e452a5c | ||
|
|
c73285fe82 | ||
|
|
96812d492f | ||
|
|
194b4219c2 | ||
|
|
ec722ca8e0 | ||
|
|
a690f252db | ||
|
|
1af5f95aa5 | ||
|
|
dee18c029f | ||
|
|
00b5cc3728 | ||
|
|
028083731c | ||
|
|
890f097af6 | ||
|
|
5d9f649f14 | ||
|
|
e5a1fb052a | ||
|
|
b98416cfbc | ||
|
|
c20f997c75 | ||
|
|
1371b5b12b | ||
|
|
2ba1d355bb | ||
|
|
e6ac965487 | ||
|
|
0962889c30 | ||
|
|
3f507560de | ||
|
|
8aa55d2660 | ||
|
|
ad7e130d0c | ||
|
|
8c24642390 | ||
|
|
9a010cffd2 | ||
|
|
5af097740c | ||
|
|
fbf9ec366d | ||
|
|
780e188f60 | ||
|
|
58f20db847 | ||
|
|
8c39404d6c | ||
|
|
87f2672047 | ||
|
|
ac8050dc04 | ||
|
|
2e62ad1a05 | ||
|
|
81463ededa | ||
|
|
d1b0b9a79d | ||
|
|
54f2a9c8f6 | ||
|
|
2d69c7e9fc | ||
|
|
fe54bb8e37 | ||
|
|
a3d7578809 | ||
|
|
f57116c89c | ||
|
|
e8f555aafd | ||
|
|
225462b4ae | ||
|
|
7de05e3ca2 | ||
|
|
7099e77f6c | ||
|
|
e898a26531 | ||
|
|
826f3e9b04 | ||
|
|
37c8489f53 | ||
|
|
7da51a2353 | ||
|
|
cf17a1920a | ||
|
|
5ce23ab628 | ||
|
|
0e1dc4bc0e | ||
|
|
0b83b3e9fd | ||
|
|
c9ca49c7f0 | ||
|
|
286905dced | ||
|
|
a456eff954 | ||
|
|
eec31a5c1f | ||
|
|
ee10157051 | ||
|
|
2c97ddd74a | ||
|
|
158be24330 | ||
|
|
93c300d24c | ||
|
|
541edec48c | ||
|
|
d08998986c | ||
|
|
a073d0e868 | ||
|
|
7fd6fc9d34 | ||
|
|
03599788a0 | ||
|
|
57ef730711 | ||
|
|
68dedeb625 | ||
|
|
fce5c6264f | ||
|
|
acec5f0d53 | ||
|
|
939aab33a3 | ||
|
|
c1c34a1670 | ||
|
|
a5387686c2 | ||
|
|
ea56bdae6a | ||
|
|
027175b28e | ||
|
|
c14b37ecb3 | ||
|
|
fbb02d2148 | ||
|
|
af62f14fa4 | ||
|
|
6dd9879f7e | ||
|
|
e290f7a0eb | ||
|
|
7bb27bd206 | ||
|
|
050d118305 | ||
|
|
10298b8e04 | ||
|
|
9ee0d78c74 | ||
|
|
85b4fc51fb | ||
|
|
31bf2fe11b | ||
|
|
eeb94645b1 | ||
|
|
207055c45c | ||
|
|
9825322ec3 | ||
|
|
d6fb18e6dd | ||
|
|
29c3ae5744 | ||
|
|
50b501378d | ||
|
|
3d4672a2da | ||
|
|
6458df9b12 | ||
|
|
ebbace960e | ||
|
|
2f1b277a77 | ||
|
|
de620cf36d | ||
|
|
7bf8bc7ebe | ||
|
|
ba2d72c81a | ||
|
|
546fbe1f47 | ||
|
|
c2015ea246 | ||
|
|
a7d9aa77cf | ||
|
|
c8cf238c51 | ||
|
|
74d6365bd4 | ||
|
|
18a2713fe6 | ||
|
|
61e247f91a | ||
|
|
bde9dccf33 | ||
|
|
19f8057bb6 | ||
|
|
4c00dd82f0 | ||
|
|
acbacac9cd | ||
|
|
33fc9db8f7 | ||
|
|
8651ada7ba | ||
|
|
fc5791969d | ||
|
|
a112104f6e | ||
|
|
0e948a5a1e | ||
|
|
f6830fe9a7 | ||
|
|
f61e59b8e7 | ||
|
|
2a7965547f | ||
|
|
7c5d78f559 | ||
|
|
7eef6048cf | ||
|
|
a44ad524f4 | ||
|
|
b6da690604 | ||
|
|
782deaccef | ||
|
|
4382ae727b | ||
|
|
2ddc1bf288 | ||
|
|
c088d09d75 | ||
|
|
d38910f267 | ||
|
|
87674ae969 | ||
|
|
65434dfefd | ||
|
|
05ac43b0c2 | ||
|
|
74a43bc4f8 | ||
|
|
3f7c946d3a | ||
|
|
c3a9560158 | ||
|
|
f8d60fd7d0 | ||
|
|
d7a8f50e3f | ||
|
|
c5d26425f6 | ||
|
|
47d7b840ce | ||
|
|
874911b6d4 | ||
|
|
da4280c09f | ||
|
|
e890be70e2 | ||
|
|
7a70f163ce | ||
|
|
4f6f6b3341 | ||
|
|
c18f6f707d | ||
|
|
dfca4311cf | ||
|
|
f238c14008 | ||
|
|
ee80803523 | ||
|
|
8236ddbc0e | ||
|
|
8f24e5e5a8 | ||
|
|
f7963ace4e | ||
|
|
70f57edcd4 | ||
|
|
fbed52b5f2 | ||
|
|
ad68c4c3d7 | ||
|
|
291332c064 | ||
|
|
52c728c526 | ||
|
|
09073917ec | ||
|
|
78b4e53b63 | ||
|
|
adb6a130d1 | ||
|
|
5ca60de0b1 | ||
|
|
c2915277a1 | ||
|
|
c88cd547ad | ||
|
|
663076d5ff | ||
|
|
5fe23a3cf4 | ||
|
|
559c73ce87 | ||
|
|
67fd239a81 | ||
|
|
6805d7754e | ||
|
|
43a30c1151 | ||
|
|
7015de5420 | ||
|
|
406b8c2319 | ||
|
|
bb4350eef7 | ||
|
|
cc722fc731 | ||
|
|
5df65183cd | ||
|
|
f8a75c2a34 | ||
|
|
93e9e56dad | ||
|
|
afc1e599d3 | ||
|
|
24a28d7df9 | ||
|
|
50785d1bb0 | ||
|
|
9cd40fdf11 | ||
|
|
021409388b | ||
|
|
f4ae12b425 | ||
|
|
e5f4817701 | ||
|
|
e22f433ec5 | ||
|
|
976abdbc4e | ||
|
|
344ff6a637 | ||
|
|
bdddefa43f | ||
|
|
e2c391d3af | ||
|
|
21e939bfbc | ||
|
|
cd0263334e | ||
|
|
c5598159ea | ||
|
|
25935e3b3f | ||
|
|
2488c182bb | ||
|
|
c3ef39327f | ||
|
|
5af9467c48 | ||
|
|
fba4deaab1 | ||
|
|
fa5f817151 | ||
|
|
8690b4402e | ||
|
|
14d864ee35 | ||
|
|
cc0e224357 | ||
|
|
439f423319 | ||
|
|
ed509d04e1 | ||
|
|
1aa416821f | ||
|
|
c92021ae70 | ||
|
|
362c6d15da | ||
|
|
8584427d63 | ||
|
|
08395c9dc1 | ||
|
|
44e7e14bce | ||
|
|
11b424a4ff | ||
|
|
a41a1a90b3 | ||
|
|
f1782b8242 | ||
|
|
4b2a438868 | ||
|
|
5098a7ff7f | ||
|
|
0d7ab55455 | ||
|
|
168b4421f9 | ||
|
|
537ac8eefb | ||
|
|
e08c26e942 | ||
|
|
1b6f6ef771 |
5
.gitattributes
vendored
Normal file
5
.gitattributes
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ods filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.eps filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.sla filter=lfs diff=lfs merge=lfs -text
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -3,6 +3,7 @@
|
|||||||
topic.pdf
|
topic.pdf
|
||||||
thesis.pdf
|
thesis.pdf
|
||||||
proposal.pdf
|
proposal.pdf
|
||||||
|
outline.pdf
|
||||||
|
|
||||||
.vscode
|
.vscode
|
||||||
|
|
||||||
|
|||||||
BIN
25_Outline/figures/MerlinCollabRecommender.pdf
Normal file
BIN
25_Outline/figures/MerlinCollabRecommender.pdf
Normal file
Binary file not shown.
BIN
25_Outline/figures/MerlinCollaborativeConfigurator.pdf
Normal file
BIN
25_Outline/figures/MerlinCollaborativeConfigurator.pdf
Normal file
Binary file not shown.
BIN
25_Outline/figures/MerlinConfigurator.pdf
Normal file
BIN
25_Outline/figures/MerlinConfigurator.pdf
Normal file
Binary file not shown.
Binary file not shown.
BIN
25_Outline/figures/bpmn_evaluation_input_data_generation.pdf
Normal file
BIN
25_Outline/figures/bpmn_evaluation_input_data_generation.pdf
Normal file
Binary file not shown.
BIN
25_Outline/logos/cas_software_logo.pdf
Normal file
BIN
25_Outline/logos/cas_software_logo.pdf
Normal file
Binary file not shown.
BIN
25_Outline/logos/fzi_logo.pdf
Normal file
BIN
25_Outline/logos/fzi_logo.pdf
Normal file
Binary file not shown.
BIN
25_Outline/logos/iism_logo.pdf
Normal file
BIN
25_Outline/logos/iism_logo.pdf
Normal file
Binary file not shown.
BIN
25_Outline/logos/kitlogo_de_cmyk.eps
Normal file
BIN
25_Outline/logos/kitlogo_de_cmyk.eps
Normal file
Binary file not shown.
BIN
25_Outline/logos/kitlogo_de_cmyk.pdf
Normal file
BIN
25_Outline/logos/kitlogo_de_cmyk.pdf
Normal file
Binary file not shown.
9475
25_Outline/logos/kitlogo_en_cmyk.eps
Normal file
9475
25_Outline/logos/kitlogo_en_cmyk.eps
Normal file
File diff suppressed because one or more lines are too long
BIN
25_Outline/logos/kitlogo_en_cmyk.pdf
Normal file
BIN
25_Outline/logos/kitlogo_en_cmyk.pdf
Normal file
Binary file not shown.
751
25_Outline/logos/sdqlogo.eps
Normal file
751
25_Outline/logos/sdqlogo.eps
Normal file
@@ -0,0 +1,751 @@
|
|||||||
|
%!PS-Adobe-3.0 EPSF-3.0
|
||||||
|
%%Creator: cairo 1.11.2 (http://cairographics.org)
|
||||||
|
%%CreationDate: Wed Oct 22 16:58:22 2014
|
||||||
|
%%Pages: 1
|
||||||
|
%%DocumentData: Clean7Bit
|
||||||
|
%%LanguageLevel: 3
|
||||||
|
%%BoundingBox: 0 -1 556 280
|
||||||
|
%%EndComments
|
||||||
|
%%BeginProlog
|
||||||
|
/cairo_eps_state save def
|
||||||
|
/dict_count countdictstack def
|
||||||
|
/op_count count 1 sub def
|
||||||
|
userdict begin
|
||||||
|
/q { gsave } bind def
|
||||||
|
/Q { grestore } bind def
|
||||||
|
/cm { 6 array astore concat } bind def
|
||||||
|
/w { setlinewidth } bind def
|
||||||
|
/J { setlinecap } bind def
|
||||||
|
/j { setlinejoin } bind def
|
||||||
|
/M { setmiterlimit } bind def
|
||||||
|
/d { setdash } bind def
|
||||||
|
/m { moveto } bind def
|
||||||
|
/l { lineto } bind def
|
||||||
|
/c { curveto } bind def
|
||||||
|
/h { closepath } bind def
|
||||||
|
/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
|
||||||
|
0 exch rlineto 0 rlineto closepath } bind def
|
||||||
|
/S { stroke } bind def
|
||||||
|
/f { fill } bind def
|
||||||
|
/f* { eofill } bind def
|
||||||
|
/n { newpath } bind def
|
||||||
|
/W { clip } bind def
|
||||||
|
/W* { eoclip } bind def
|
||||||
|
/BT { } bind def
|
||||||
|
/ET { } bind def
|
||||||
|
/pdfmark where { pop globaldict /?pdfmark /exec load put }
|
||||||
|
{ globaldict begin /?pdfmark /pop load def /pdfmark
|
||||||
|
/cleartomark load def end } ifelse
|
||||||
|
/BDC { mark 3 1 roll /BDC pdfmark } bind def
|
||||||
|
/EMC { mark /EMC pdfmark } bind def
|
||||||
|
/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
|
||||||
|
/Tj { show currentpoint cairo_store_point } bind def
|
||||||
|
/TJ {
|
||||||
|
{
|
||||||
|
dup
|
||||||
|
type /stringtype eq
|
||||||
|
{ show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
|
||||||
|
} forall
|
||||||
|
currentpoint cairo_store_point
|
||||||
|
} bind def
|
||||||
|
/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
|
||||||
|
cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
|
||||||
|
/Tf { pop /cairo_font exch def /cairo_font_matrix where
|
||||||
|
{ pop cairo_selectfont } if } bind def
|
||||||
|
/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
|
||||||
|
/cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
|
||||||
|
/cairo_font where { pop cairo_selectfont } if } bind def
|
||||||
|
/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
|
||||||
|
cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
|
||||||
|
/g { setgray } bind def
|
||||||
|
/rg { setrgbcolor } bind def
|
||||||
|
/d1 { setcachedevice } bind def
|
||||||
|
%%EndProlog
|
||||||
|
%%Page: 1 1
|
||||||
|
%%BeginPageSetup
|
||||||
|
%%PageBoundingBox: 0 -1 556 280
|
||||||
|
%%EndPageSetup
|
||||||
|
q 0 -1 556 281 rectclip q
|
||||||
|
0 279.189 556 -280 re W n
|
||||||
|
/CairoFunction
|
||||||
|
<< /FunctionType 3
|
||||||
|
/Domain [ 0 1 ]
|
||||||
|
/Functions [
|
||||||
|
<< /FunctionType 2
|
||||||
|
/Domain [ 0 1 ]
|
||||||
|
/C0 [ 0.27451 0.392157 0.666667 ]
|
||||||
|
/C1 [ 0.490196 0.572549 0.764706 ]
|
||||||
|
/N 1
|
||||||
|
>>
|
||||||
|
<< /FunctionType 2
|
||||||
|
/Domain [ 0 1 ]
|
||||||
|
/C0 [ 0.490196 0.572549 0.764706 ]
|
||||||
|
/C1 [ 0.27451 0.392157 0.666667 ]
|
||||||
|
/N 1
|
||||||
|
>>
|
||||||
|
]
|
||||||
|
/Bounds [ 0.503704 ]
|
||||||
|
/Encode [ 1 1 2 { pop 0 1 } for ]
|
||||||
|
>>
|
||||||
|
def
|
||||||
|
<< /PatternType 2
|
||||||
|
/Shading
|
||||||
|
<< /ShadingType 2
|
||||||
|
/ColorSpace /DeviceRGB
|
||||||
|
/Coords [ 346.896576 493.657867 219.976471 215.35788 ]
|
||||||
|
/Domain [ 0 1 ]
|
||||||
|
/Extend [ true true ]
|
||||||
|
/Function CairoFunction
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
[ 0.999999 0 0 -0.999999 -25.387143 494.094659 ]
|
||||||
|
makepattern setpattern
|
||||||
|
1.531 277.658 m 514.359 277.658 l 524.688 277.658 534.953 273.404 542.254
|
||||||
|
266.103 c 549.559 258.798 553.809 248.537 553.809 238.209 c 553.809 1.517
|
||||||
|
l 40.98 1.517 l 30.652 1.517 20.387 5.767 13.082 13.072 c 5.781 20.377
|
||||||
|
1.531 30.638 1.531 40.966 c h
|
||||||
|
f
|
||||||
|
0.301961 g
|
||||||
|
3.06 w
|
||||||
|
1 J
|
||||||
|
1 j
|
||||||
|
[] 0.0 d
|
||||||
|
3 M q 1 0 0 -1 0 279.189087 cm
|
||||||
|
1.531 1.531 m 514.359 1.531 l 524.688 1.531 534.953 5.785 542.254 13.086
|
||||||
|
c 549.559 20.391 553.809 30.652 553.809 40.98 c 553.809 277.672 l 40.98
|
||||||
|
277.672 l 30.652 277.672 20.387 273.422 13.082 266.117 c 5.781 258.813
|
||||||
|
1.531 248.551 1.531 238.223 c h
|
||||||
|
S Q
|
||||||
|
0.780392 0.815686 0.898039 rg
|
||||||
|
3.119995 w
|
||||||
|
q -1 0 0 1 0 279.189087 cm
|
||||||
|
-404.133 -117.703 m -398.957 -117.703 -393.816 -119.832 -390.16 -123.492
|
||||||
|
c -386.5 -127.148 -384.371 -132.289 -384.371 -137.465 c -384.371 -142.637
|
||||||
|
-386.5 -147.777 -390.16 -151.438 c -393.816 -155.094 -398.957 -157.223
|
||||||
|
-404.133 -157.223 c S Q
|
||||||
|
3.119995 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
417.305 137.738 m 417.305 144.563 411.777 150.09 404.953 150.09 c 398.133
|
||||||
|
150.09 392.605 144.563 392.605 137.738 c 392.605 130.918 398.133 125.391
|
||||||
|
404.953 125.391 c 411.777 125.391 417.305 130.918 417.305 137.738 c h
|
||||||
|
S Q
|
||||||
|
3.119995 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
417.277 136.918 m 431.027 136.918 l S Q
|
||||||
|
3.119995 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
375.586 136.918 m 384.367 136.918 l S Q
|
||||||
|
3.119995 w
|
||||||
|
q 0 -1 -1 0 0 279.189087 cm
|
||||||
|
110.566 -375.586 m 163.27 -375.586 l S Q
|
||||||
|
3.119995 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
336.641 110.566 m 374.492 110.566 l S Q
|
||||||
|
3.119995 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
350.465 163.266 m 375.586 163.266 l S Q
|
||||||
|
3.119995 w
|
||||||
|
q 0 -1 -1 0 0 279.189087 cm
|
||||||
|
110.566 -431.023 m 163.27 -431.023 l S Q
|
||||||
|
3.119995 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
431.027 110.566 m 473.457 110.566 l S Q
|
||||||
|
3.119995 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
431.027 163.266 m 459.629 163.266 l S Q
|
||||||
|
2.975854 w
|
||||||
|
[ 2.975854 5.951709] 0 d
|
||||||
|
q -0.314992 -1 -1 0.314992 0 279.189087 cm
|
||||||
|
-21.932 -407.099 m -2.487 -407.099 l S Q
|
||||||
|
1 0.709804 0 rg
|
||||||
|
368.52 221.244 m 368.52 176.584 l 457.84 176.584 l 457.84 206.357 l 435.512
|
||||||
|
221.244 l h
|
||||||
|
f
|
||||||
|
0.780392 0.815686 0.898039 rg
|
||||||
|
3.119995 w
|
||||||
|
[] 0.0 d
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
368.52 57.945 m 368.52 102.605 l 457.84 102.605 l 457.84 72.832 l 435.512
|
||||||
|
57.945 l h
|
||||||
|
S Q
|
||||||
|
0.4 g
|
||||||
|
387.691 203.634 m 386.285 203.634 l 384.297 206.935 l 382.301 203.634 l
|
||||||
|
380.914 203.634 l 383.633 207.81 l 381.133 211.806 l 382.453 211.806 l
|
||||||
|
384.32 208.728 l 386.203 211.806 l 387.484 211.806 l 384.977 207.861 l h
|
||||||
|
f
|
||||||
|
415.207 207.673 m 409.832 207.673 l 409.832 208.591 l 415.207 208.591 l
|
||||||
|
h
|
||||||
|
415.207 205.498 m 409.832 205.498 l 409.832 206.416 l 415.207 206.416 l
|
||||||
|
h
|
||||||
|
f
|
||||||
|
422.285 203.634 m 417.152 203.634 l 417.152 204.65 l 419.254 204.65 l 419.254
|
||||||
|
210.611 l 417.297 209.548 l 416.895 210.474 l 419.496 211.841 l 420.457
|
||||||
|
211.841 l 420.457 204.65 l 422.285 204.65 l h
|
||||||
|
f
|
||||||
|
426.57 205.603 m 426.711 205.603 426.848 205.58 426.973 205.525 c 427.102
|
||||||
|
205.47 427.211 205.396 427.305 205.298 c 427.398 205.205 427.473 205.091
|
||||||
|
427.527 204.963 c 427.582 204.838 427.609 204.701 427.609 204.556 c 427.609
|
||||||
|
204.412 427.582 204.279 427.527 204.154 c 427.473 204.029 427.398 203.92
|
||||||
|
427.305 203.826 c 427.211 203.732 427.102 203.658 426.973 203.603 c 426.848
|
||||||
|
203.552 426.711 203.525 426.57 203.525 c 426.426 203.525 426.289 203.552
|
||||||
|
426.164 203.603 c 426.039 203.658 425.93 203.732 425.836 203.826 c 425.742
|
||||||
|
203.92 425.668 204.029 425.613 204.154 c 425.559 204.279 425.535 204.412
|
||||||
|
425.535 204.556 c 425.535 204.701 425.559 204.838 425.613 204.963 c 425.668
|
||||||
|
205.091 425.742 205.205 425.836 205.298 c 425.93 205.396 426.039 205.47
|
||||||
|
426.164 205.525 c 426.289 205.58 426.426 205.603 426.57 205.603 c h
|
||||||
|
f
|
||||||
|
436.641 207.716 m 436.641 207.091 436.578 206.521 436.453 206.009 c 436.328
|
||||||
|
205.494 436.137 205.052 435.883 204.681 c 435.629 204.314 435.313 204.029
|
||||||
|
434.938 203.826 c 434.559 203.627 434.117 203.525 433.609 203.525 c 433.172
|
||||||
|
203.525 432.773 203.607 432.414 203.771 c 432.055 203.935 431.75 204.189
|
||||||
|
431.496 204.529 c 431.242 204.873 431.047 205.306 430.91 205.838 c 430.77
|
||||||
|
206.365 430.703 206.994 430.703 207.716 c 430.703 208.341 430.766 208.912
|
||||||
|
430.895 209.431 c 431.02 209.947 431.211 210.388 431.461 210.759 c 431.715
|
||||||
|
211.127 432.027 211.412 432.41 211.615 c 432.789 211.818 433.23 211.916
|
||||||
|
433.734 211.916 c 434.172 211.916 434.57 211.834 434.926 211.67 c 435.285
|
||||||
|
211.505 435.59 211.252 435.848 210.908 c 436.102 210.564 436.297 210.127
|
||||||
|
436.434 209.599 c 436.57 209.068 436.641 208.443 436.641 207.716 c h
|
||||||
|
435.539 207.681 m 435.539 207.822 435.535 207.963 435.523 208.103 c 435.512
|
||||||
|
208.24 435.504 208.377 435.488 208.509 c 432.035 205.943 l 432.098 205.724
|
||||||
|
432.176 205.525 432.27 205.341 c 432.367 205.158 432.48 205.002 432.617
|
||||||
|
204.869 c 432.754 204.74 432.906 204.638 433.082 204.564 c 433.254 204.49
|
||||||
|
433.449 204.455 433.672 204.455 c 433.953 204.455 434.211 204.525 434.441
|
||||||
|
204.662 c 434.676 204.798 434.871 205.002 435.035 205.275 c 435.195 205.545
|
||||||
|
435.32 205.88 435.41 206.283 c 435.496 206.685 435.539 207.15 435.539 207.681
|
||||||
|
c h
|
||||||
|
431.801 207.755 m 431.801 207.627 431.805 207.498 431.805 207.369 c 431.809
|
||||||
|
207.24 431.813 207.115 431.828 206.994 c 435.285 209.548 l 435.223 209.759
|
||||||
|
435.141 209.955 435.047 210.13 c 434.949 210.306 434.836 210.455 434.703
|
||||||
|
210.584 c 434.57 210.709 434.418 210.81 434.246 210.88 c 434.074 210.951
|
||||||
|
433.883 210.986 433.672 210.986 c 433.387 210.986 433.129 210.916 432.898
|
||||||
|
210.779 c 432.668 210.642 432.473 210.439 432.309 210.166 c 432.145 209.892
|
||||||
|
432.02 209.552 431.934 209.15 c 431.848 208.752 431.801 208.283 431.801
|
||||||
|
207.755 c h
|
||||||
|
f
|
||||||
|
443.691 207.716 m 443.691 207.091 443.629 206.521 443.504 206.009 c 443.379
|
||||||
|
205.494 443.188 205.052 442.934 204.681 c 442.68 204.314 442.363 204.029
|
||||||
|
441.988 203.826 c 441.609 203.627 441.168 203.525 440.66 203.525 c 440.223
|
||||||
|
203.525 439.824 203.607 439.465 203.771 c 439.105 203.935 438.801 204.189
|
||||||
|
438.547 204.529 c 438.293 204.873 438.098 205.306 437.957 205.838 c 437.82
|
||||||
|
206.365 437.754 206.994 437.754 207.716 c 437.754 208.341 437.816 208.912
|
||||||
|
437.941 209.431 c 438.07 209.947 438.258 210.388 438.512 210.759 c 438.762
|
||||||
|
211.127 439.078 211.412 439.457 211.615 c 439.836 211.818 440.277 211.916
|
||||||
|
440.785 211.916 c 441.223 211.916 441.617 211.834 441.977 211.67 c 442.336
|
||||||
|
211.505 442.641 211.252 442.895 210.908 c 443.148 210.564 443.348 210.127
|
||||||
|
443.484 209.599 c 443.621 209.068 443.691 208.443 443.691 207.716 c h
|
||||||
|
442.59 207.681 m 442.59 207.822 442.586 207.963 442.574 208.103 c 442.563
|
||||||
|
208.24 442.551 208.377 442.539 208.509 c 439.082 205.943 l 439.145 205.724
|
||||||
|
439.227 205.525 439.32 205.341 c 439.418 205.158 439.531 205.002 439.668
|
||||||
|
204.869 c 439.805 204.74 439.957 204.638 440.129 204.564 c 440.305 204.49
|
||||||
|
440.5 204.455 440.723 204.455 c 441.004 204.455 441.262 204.525 441.492
|
||||||
|
204.662 c 441.723 204.798 441.922 205.002 442.082 205.275 c 442.246 205.545
|
||||||
|
442.371 205.88 442.457 206.283 c 442.547 206.685 442.59 207.15 442.59 207.681
|
||||||
|
c h
|
||||||
|
438.852 207.755 m 438.852 207.627 438.852 207.498 438.855 207.369 c 438.855
|
||||||
|
207.24 438.863 207.115 438.879 206.994 c 442.332 209.548 l 442.27 209.759
|
||||||
|
442.191 209.955 442.098 210.13 c 442 210.306 441.887 210.455 441.754 210.584
|
||||||
|
c 441.617 210.709 441.465 210.81 441.297 210.88 c 441.125 210.951 440.934
|
||||||
|
210.986 440.723 210.986 c 440.438 210.986 440.18 210.916 439.949 210.779
|
||||||
|
c 439.719 210.642 439.52 210.439 439.359 210.166 c 439.195 209.892 439.07
|
||||||
|
209.552 438.984 209.15 c 438.895 208.752 438.852 208.283 438.852 207.755
|
||||||
|
c h
|
||||||
|
f
|
||||||
|
387.691 187.634 m 386.285 187.634 l 384.297 190.935 l 382.301 187.634 l
|
||||||
|
380.914 187.634 l 383.633 191.81 l 381.133 195.806 l 382.453 195.806 l
|
||||||
|
384.32 192.728 l 386.203 195.806 l 387.484 195.806 l 384.977 191.861 l h
|
||||||
|
f
|
||||||
|
415.207 191.673 m 409.832 191.673 l 409.832 192.591 l 415.207 192.591 l
|
||||||
|
h
|
||||||
|
415.207 189.498 m 409.832 189.498 l 409.832 190.416 l 415.207 190.416 l
|
||||||
|
h
|
||||||
|
f
|
||||||
|
422.539 191.716 m 422.539 191.091 422.477 190.521 422.352 190.009 c 422.227
|
||||||
|
189.494 422.039 189.052 421.785 188.681 c 421.527 188.314 421.215 188.029
|
||||||
|
420.836 187.826 c 420.461 187.627 420.016 187.525 419.508 187.525 c 419.07
|
||||||
|
187.525 418.672 187.607 418.316 187.771 c 417.957 187.935 417.648 188.189
|
||||||
|
417.395 188.529 c 417.141 188.873 416.945 189.306 416.809 189.838 c 416.672
|
||||||
|
190.365 416.602 190.994 416.602 191.716 c 416.602 192.341 416.664 192.912
|
||||||
|
416.793 193.431 c 416.918 193.947 417.109 194.388 417.363 194.759 c 417.613
|
||||||
|
195.127 417.93 195.412 418.309 195.615 c 418.688 195.818 419.129 195.916
|
||||||
|
419.633 195.916 c 420.07 195.916 420.469 195.834 420.828 195.67 c 421.184
|
||||||
|
195.505 421.492 195.252 421.746 194.908 c 422 194.564 422.195 194.127 422.332
|
||||||
|
193.599 c 422.473 193.068 422.539 192.443 422.539 191.716 c h
|
||||||
|
421.441 191.681 m 421.441 191.822 421.434 191.963 421.426 192.103 c 421.414
|
||||||
|
192.24 421.402 192.377 421.391 192.509 c 417.934 189.943 l 417.996 189.724
|
||||||
|
418.074 189.525 418.172 189.341 c 418.266 189.158 418.383 189.002 418.52
|
||||||
|
188.869 c 418.652 188.74 418.809 188.638 418.98 188.564 c 419.152 188.49
|
||||||
|
419.352 188.455 419.57 188.455 c 419.855 188.455 420.113 188.525 420.344
|
||||||
|
188.662 c 420.574 188.798 420.77 189.002 420.934 189.275 c 421.098 189.545
|
||||||
|
421.223 189.88 421.309 190.283 c 421.395 190.685 421.441 191.15 421.441
|
||||||
|
191.681 c h
|
||||||
|
417.703 191.755 m 417.703 191.627 417.703 191.498 417.707 191.369 c 417.707
|
||||||
|
191.24 417.715 191.115 417.727 190.994 c 421.184 193.548 l 421.121 193.759
|
||||||
|
421.043 193.955 420.945 194.13 c 420.852 194.306 420.734 194.455 420.602
|
||||||
|
194.584 c 420.469 194.709 420.316 194.81 420.145 194.88 c 419.977 194.951
|
||||||
|
419.785 194.986 419.57 194.986 c 419.289 194.986 419.031 194.916 418.801
|
||||||
|
194.779 c 418.566 194.642 418.371 194.439 418.207 194.166 c 418.047 193.892
|
||||||
|
417.922 193.552 417.832 193.15 c 417.746 192.752 417.703 192.283 417.703
|
||||||
|
191.755 c h
|
||||||
|
f
|
||||||
|
426.57 189.603 m 426.711 189.603 426.848 189.58 426.973 189.525 c 427.102
|
||||||
|
189.47 427.211 189.396 427.305 189.298 c 427.398 189.205 427.473 189.091
|
||||||
|
427.527 188.963 c 427.582 188.838 427.609 188.701 427.609 188.556 c 427.609
|
||||||
|
188.412 427.582 188.279 427.527 188.154 c 427.473 188.029 427.398 187.92
|
||||||
|
427.305 187.826 c 427.211 187.732 427.102 187.658 426.973 187.603 c 426.848
|
||||||
|
187.552 426.711 187.525 426.57 187.525 c 426.426 187.525 426.289 187.552
|
||||||
|
426.164 187.603 c 426.039 187.658 425.93 187.732 425.836 187.826 c 425.742
|
||||||
|
187.92 425.668 188.029 425.613 188.154 c 425.559 188.279 425.535 188.412
|
||||||
|
425.535 188.556 c 425.535 188.701 425.559 188.838 425.613 188.963 c 425.668
|
||||||
|
189.091 425.742 189.205 425.836 189.298 c 425.93 189.396 426.039 189.47
|
||||||
|
426.164 189.525 c 426.289 189.58 426.426 189.603 426.57 189.603 c h
|
||||||
|
f
|
||||||
|
436.641 191.716 m 436.641 191.091 436.578 190.521 436.453 190.009 c 436.328
|
||||||
|
189.494 436.137 189.052 435.883 188.681 c 435.629 188.314 435.313 188.029
|
||||||
|
434.938 187.826 c 434.559 187.627 434.117 187.525 433.609 187.525 c 433.172
|
||||||
|
187.525 432.773 187.607 432.414 187.771 c 432.055 187.935 431.75 188.189
|
||||||
|
431.496 188.529 c 431.242 188.873 431.047 189.306 430.91 189.838 c 430.77
|
||||||
|
190.365 430.703 190.994 430.703 191.716 c 430.703 192.341 430.766 192.912
|
||||||
|
430.895 193.431 c 431.02 193.947 431.211 194.388 431.461 194.759 c 431.715
|
||||||
|
195.127 432.027 195.412 432.41 195.615 c 432.789 195.818 433.23 195.916
|
||||||
|
433.734 195.916 c 434.172 195.916 434.57 195.834 434.926 195.67 c 435.285
|
||||||
|
195.505 435.59 195.252 435.848 194.908 c 436.102 194.564 436.297 194.127
|
||||||
|
436.434 193.599 c 436.57 193.068 436.641 192.443 436.641 191.716 c h
|
||||||
|
435.539 191.681 m 435.539 191.822 435.535 191.963 435.523 192.103 c 435.512
|
||||||
|
192.24 435.504 192.377 435.488 192.509 c 432.035 189.943 l 432.098 189.724
|
||||||
|
432.176 189.525 432.27 189.341 c 432.367 189.158 432.48 189.002 432.617
|
||||||
|
188.869 c 432.754 188.74 432.906 188.638 433.082 188.564 c 433.254 188.49
|
||||||
|
433.449 188.455 433.672 188.455 c 433.953 188.455 434.211 188.525 434.441
|
||||||
|
188.662 c 434.676 188.798 434.871 189.002 435.035 189.275 c 435.195 189.545
|
||||||
|
435.32 189.88 435.41 190.283 c 435.496 190.685 435.539 191.15 435.539 191.681
|
||||||
|
c h
|
||||||
|
431.801 191.755 m 431.801 191.627 431.805 191.498 431.805 191.369 c 431.809
|
||||||
|
191.24 431.813 191.115 431.828 190.994 c 435.285 193.548 l 435.223 193.759
|
||||||
|
435.141 193.955 435.047 194.13 c 434.949 194.306 434.836 194.455 434.703
|
||||||
|
194.584 c 434.57 194.709 434.418 194.81 434.246 194.88 c 434.074 194.951
|
||||||
|
433.883 194.986 433.672 194.986 c 433.387 194.986 433.129 194.916 432.898
|
||||||
|
194.779 c 432.668 194.642 432.473 194.439 432.309 194.166 c 432.145 193.892
|
||||||
|
432.02 193.552 431.934 193.15 c 431.848 192.752 431.801 192.283 431.801
|
||||||
|
191.755 c h
|
||||||
|
f
|
||||||
|
443.434 187.634 m 438.301 187.634 l 438.301 188.65 l 440.402 188.65 l 440.402
|
||||||
|
194.611 l 438.445 193.548 l 438.047 194.474 l 440.645 195.841 l 441.609
|
||||||
|
195.841 l 441.609 188.65 l 443.434 188.65 l h
|
||||||
|
f
|
||||||
|
392.707 204.181 m 392.707 203.763 392.648 203.396 392.531 203.084 c 392.414
|
||||||
|
202.771 392.254 202.513 392.047 202.306 c 391.84 202.099 391.598 201.947
|
||||||
|
391.316 201.841 c 391.035 201.74 390.73 201.689 390.402 201.689 c 390.254
|
||||||
|
201.689 390.102 201.697 389.953 201.713 c 389.805 201.728 389.656 201.755
|
||||||
|
389.504 201.791 c 389.504 199.822 l 388.688 199.822 l 388.688 206.451 l
|
||||||
|
389.414 206.451 l 389.465 205.662 l 389.699 205.986 389.949 206.213 390.215
|
||||||
|
206.341 c 390.48 206.47 390.77 206.537 391.078 206.537 c 391.348 206.537
|
||||||
|
391.582 206.478 391.785 206.365 c 391.988 206.255 392.16 206.095 392.297
|
||||||
|
205.892 c 392.434 205.685 392.535 205.439 392.605 205.15 c 392.676 204.861
|
||||||
|
392.707 204.537 392.707 204.181 c h
|
||||||
|
391.875 204.146 m 391.875 204.392 391.855 204.619 391.82 204.826 c 391.785
|
||||||
|
205.029 391.727 205.209 391.648 205.353 c 391.57 205.502 391.473 205.615
|
||||||
|
391.348 205.697 c 391.227 205.783 391.082 205.822 390.914 205.822 c 390.809
|
||||||
|
205.822 390.707 205.806 390.598 205.775 c 390.492 205.74 390.383 205.685
|
||||||
|
390.27 205.611 c 390.156 205.533 390.035 205.431 389.906 205.306 c 389.781
|
||||||
|
205.177 389.645 205.021 389.504 204.834 c 389.504 202.552 l 389.652 202.49
|
||||||
|
389.809 202.439 389.977 202.404 c 390.141 202.369 390.305 202.349 390.465
|
||||||
|
202.349 c 390.902 202.349 391.25 202.498 391.5 202.798 c 391.75 203.095
|
||||||
|
391.875 203.545 391.875 204.146 c h
|
||||||
|
f
|
||||||
|
397.949 204.345 m 397.949 204.232 397.949 204.134 397.945 204.056 c 397.941
|
||||||
|
203.978 397.938 203.904 397.93 203.834 c 394.625 203.834 l 394.625 203.353
|
||||||
|
394.762 202.986 395.027 202.728 c 395.297 202.47 395.684 202.341 396.191
|
||||||
|
202.341 c 396.328 202.341 396.465 202.345 396.605 202.357 c 396.742 202.369
|
||||||
|
396.875 202.38 397.004 202.4 c 397.129 202.42 397.254 202.439 397.371 202.463
|
||||||
|
c 397.488 202.486 397.598 202.513 397.695 202.541 c 397.695 201.873 l 397.473
|
||||||
|
201.81 397.223 201.759 396.945 201.72 c 396.664 201.681 396.375 201.662
|
||||||
|
396.074 201.662 c 395.672 201.662 395.324 201.716 395.035 201.826 c 394.742
|
||||||
|
201.935 394.504 202.091 394.32 202.298 c 394.133 202.509 393.996 202.763
|
||||||
|
393.906 203.064 c 393.816 203.365 393.773 203.709 393.773 204.088 c 393.773
|
||||||
|
204.42 393.82 204.732 393.914 205.029 c 394.012 205.322 394.148 205.584
|
||||||
|
394.332 205.806 c 394.516 206.029 394.738 206.209 395.004 206.338 c 395.27
|
||||||
|
206.47 395.574 206.537 395.91 206.537 c 396.238 206.537 396.527 206.482
|
||||||
|
396.781 206.38 c 397.035 206.279 397.25 206.13 397.422 205.943 c 397.594
|
||||||
|
205.752 397.727 205.525 397.816 205.252 c 397.906 204.982 397.949 204.681
|
||||||
|
397.949 204.345 c h
|
||||||
|
397.102 204.463 m 397.109 204.673 397.09 204.865 397.039 205.037 c 396.988
|
||||||
|
205.213 396.914 205.361 396.809 205.486 c 396.703 205.611 396.574 205.709
|
||||||
|
396.418 205.779 c 396.262 205.849 396.078 205.884 395.871 205.884 c 395.695
|
||||||
|
205.884 395.531 205.849 395.387 205.779 c 395.238 205.713 395.113 205.615
|
||||||
|
395.004 205.49 c 394.898 205.365 394.813 205.216 394.746 205.041 c 394.684
|
||||||
|
204.865 394.641 204.673 394.625 204.463 c h
|
||||||
|
f
|
||||||
|
399.453 206.451 m 400.199 206.451 l 400.223 205.584 l 400.5 205.92 400.773
|
||||||
|
206.162 401.047 206.31 c 401.316 206.459 401.59 206.537 401.863 206.537
|
||||||
|
c 402.352 206.537 402.719 206.377 402.973 206.06 c 403.223 205.748 403.34
|
||||||
|
205.279 403.32 204.654 c 402.496 204.654 l 402.504 205.068 402.445 205.369
|
||||||
|
402.316 205.552 c 402.188 205.74 401.996 205.834 401.746 205.834 c 401.637
|
||||||
|
205.834 401.527 205.814 401.414 205.775 c 401.305 205.736 401.191 205.673
|
||||||
|
401.074 205.588 c 400.957 205.502 400.832 205.388 400.699 205.255 c 400.57
|
||||||
|
205.123 400.43 204.959 400.277 204.767 c 400.277 201.744 l 399.453 201.744
|
||||||
|
l h
|
||||||
|
f
|
||||||
|
408.727 207.607 m 408.297 207.701 407.93 207.744 407.621 207.744 c 406.887
|
||||||
|
207.744 406.52 207.361 406.52 206.591 c 406.52 205.767 l 408.582 205.767
|
||||||
|
l 408.582 205.088 l 406.52 205.088 l 406.52 201.744 l 405.688 201.744 l
|
||||||
|
405.688 205.088 l 404.176 205.088 l 404.176 205.767 l 405.688 205.767 l
|
||||||
|
405.688 206.545 l 405.688 207.798 406.34 208.423 407.648 208.423 c 407.973
|
||||||
|
208.423 408.332 208.388 408.727 208.31 c h
|
||||||
|
f
|
||||||
|
390.383 191.279 m 388.992 191.279 l 388.992 191.947 l 391.207 191.947 l
|
||||||
|
391.207 186.005 l 392.609 186.005 l 392.609 185.326 l 388.836 185.326 l
|
||||||
|
388.836 186.005 l 390.383 186.005 l h
|
||||||
|
f
|
||||||
|
398.164 187.716 m 398.164 187.349 398.113 187.013 398.012 186.709 c 397.906
|
||||||
|
186.404 397.758 186.146 397.566 185.927 c 397.371 185.709 397.137 185.541
|
||||||
|
396.855 185.42 c 396.578 185.302 396.262 185.24 395.91 185.24 c 395.574
|
||||||
|
185.24 395.27 185.295 395.004 185.396 c 394.734 185.502 394.508 185.658
|
||||||
|
394.324 185.861 c 394.137 186.064 393.996 186.314 393.898 186.615 c 393.797
|
||||||
|
186.916 393.75 187.259 393.75 187.65 c 393.75 188.017 393.801 188.349 393.902
|
||||||
|
188.65 c 394.008 188.951 394.156 189.213 394.348 189.427 c 394.543 189.646
|
||||||
|
394.777 189.814 395.059 189.935 c 395.336 190.056 395.652 190.115 396.004
|
||||||
|
190.115 c 396.34 190.115 396.645 190.064 396.91 189.959 c 397.18 189.853
|
||||||
|
397.406 189.701 397.59 189.498 c 397.777 189.298 397.918 189.048 398.016
|
||||||
|
188.748 c 398.117 188.447 398.164 188.103 398.164 187.716 c h
|
||||||
|
397.332 187.677 m 397.332 187.97 397.297 188.224 397.234 188.439 c 397.172
|
||||||
|
188.658 397.078 188.838 396.961 188.982 c 396.84 189.13 396.695 189.24
|
||||||
|
396.527 189.31 c 396.355 189.384 396.168 189.423 395.957 189.423 c 395.715
|
||||||
|
189.423 395.504 189.373 395.332 189.279 c 395.156 189.185 395.016 189.056
|
||||||
|
394.906 188.896 c 394.793 188.736 394.711 188.552 394.66 188.341 c 394.609
|
||||||
|
188.13 394.582 187.908 394.582 187.677 c 394.582 187.388 394.617 187.134
|
||||||
|
394.68 186.916 c 394.742 186.697 394.836 186.513 394.953 186.369 c 395.074
|
||||||
|
186.224 395.215 186.115 395.387 186.041 c 395.555 185.966 395.746 185.931
|
||||||
|
395.957 185.931 c 396.199 185.931 396.41 185.978 396.582 186.072 c 396.758
|
||||||
|
186.17 396.898 186.295 397.008 186.455 c 397.121 186.615 397.203 186.798
|
||||||
|
397.254 187.009 c 397.305 187.22 397.332 187.443 397.332 187.677 c h
|
||||||
|
f
|
||||||
|
403.082 186.611 m 403.082 186.443 403.055 186.295 402.996 186.166 c 402.941
|
||||||
|
186.033 402.863 185.916 402.77 185.814 c 402.672 185.713 402.559 185.627
|
||||||
|
402.43 185.556 c 402.301 185.482 402.164 185.423 402.02 185.377 c 401.875
|
||||||
|
185.33 401.727 185.295 401.574 185.275 c 401.418 185.252 401.27 185.24
|
||||||
|
401.121 185.24 c 400.805 185.24 400.512 185.255 400.242 185.283 c 399.977
|
||||||
|
185.31 399.715 185.357 399.457 185.42 c 399.457 186.17 l 399.734 186.091
|
||||||
|
400.008 186.033 400.277 185.99 c 400.551 185.951 400.82 185.931 401.09
|
||||||
|
185.931 c 401.48 185.931 401.77 185.982 401.957 186.088 c 402.145 186.197
|
||||||
|
402.238 186.345 402.238 186.545 c 402.238 186.627 402.223 186.705 402.195
|
||||||
|
186.771 c 402.164 186.838 402.109 186.904 402.031 186.963 c 401.953 187.025
|
||||||
|
401.832 187.088 401.668 187.154 c 401.504 187.22 401.281 187.295 400.996
|
||||||
|
187.377 c 400.785 187.439 400.586 187.513 400.406 187.591 c 400.227 187.67
|
||||||
|
400.074 187.767 399.941 187.877 c 399.809 187.986 399.707 188.111 399.633
|
||||||
|
188.259 c 399.559 188.408 399.52 188.58 399.52 188.779 c 399.52 188.912
|
||||||
|
399.551 189.056 399.609 189.213 c 399.672 189.369 399.777 189.513 399.922
|
||||||
|
189.646 c 400.07 189.783 400.27 189.892 400.52 189.982 c 400.77 190.072
|
||||||
|
401.082 190.115 401.457 190.115 c 401.641 190.115 401.844 190.107 402.07
|
||||||
|
190.084 c 402.293 190.064 402.527 190.029 402.773 189.978 c 402.773 189.252
|
||||||
|
l 402.516 189.314 402.273 189.361 402.043 189.392 c 401.813 189.42 401.613
|
||||||
|
189.435 401.445 189.435 c 401.242 189.435 401.07 189.42 400.934 189.388
|
||||||
|
c 400.793 189.357 400.68 189.314 400.594 189.259 c 400.508 189.205 400.449
|
||||||
|
189.142 400.41 189.068 c 400.371 188.994 400.355 188.916 400.355 188.83
|
||||||
|
c 400.355 188.748 400.371 188.67 400.402 188.603 c 400.438 188.533 400.496
|
||||||
|
188.466 400.586 188.404 c 400.676 188.338 400.801 188.275 400.957 188.209
|
||||||
|
c 401.117 188.146 401.324 188.076 401.582 188.002 c 401.859 187.92 402.094
|
||||||
|
187.834 402.285 187.748 c 402.477 187.658 402.629 187.556 402.75 187.447
|
||||||
|
c 402.867 187.338 402.953 187.216 403.004 187.08 c 403.055 186.939 403.082
|
||||||
|
186.783 403.082 186.611 c h
|
||||||
|
f
|
||||||
|
408.371 186.611 m 408.371 186.443 408.34 186.295 408.285 186.166 c 408.23
|
||||||
|
186.033 408.152 185.916 408.055 185.814 c 407.957 185.713 407.848 185.627
|
||||||
|
407.719 185.556 c 407.59 185.482 407.453 185.423 407.309 185.377 c 407.164
|
||||||
|
185.33 407.012 185.295 406.859 185.275 c 406.707 185.252 406.559 185.24
|
||||||
|
406.41 185.24 c 406.09 185.24 405.797 185.255 405.531 185.283 c 405.266
|
||||||
|
185.31 405.004 185.357 404.746 185.42 c 404.746 186.17 l 405.02 186.091
|
||||||
|
405.293 186.033 405.566 185.99 c 405.84 185.951 406.109 185.931 406.379
|
||||||
|
185.931 c 406.77 185.931 407.059 185.982 407.246 186.088 c 407.434 186.197
|
||||||
|
407.527 186.345 407.527 186.545 c 407.527 186.627 407.512 186.705 407.48
|
||||||
|
186.771 c 407.453 186.838 407.398 186.904 407.32 186.963 c 407.242 187.025
|
||||||
|
407.121 187.088 406.957 187.154 c 406.793 187.22 406.566 187.295 406.285
|
||||||
|
187.377 c 406.07 187.439 405.875 187.513 405.695 187.591 c 405.516 187.67
|
||||||
|
405.359 187.767 405.23 187.877 c 405.098 187.986 404.996 188.111 404.918
|
||||||
|
188.259 c 404.844 188.408 404.809 188.58 404.809 188.779 c 404.809 188.912
|
||||||
|
404.836 189.056 404.898 189.213 c 404.961 189.369 405.063 189.513 405.211
|
||||||
|
189.646 c 405.355 189.783 405.555 189.892 405.805 189.982 c 406.055 190.072
|
||||||
|
406.367 190.115 406.742 190.115 c 406.926 190.115 407.133 190.107 407.355
|
||||||
|
190.084 c 407.582 190.064 407.816 190.029 408.059 189.978 c 408.059 189.252
|
||||||
|
l 407.805 189.314 407.563 189.361 407.332 189.392 c 407.102 189.42 406.902
|
||||||
|
189.435 406.734 189.435 c 406.531 189.435 406.359 189.42 406.219 189.388
|
||||||
|
c 406.082 189.357 405.969 189.314 405.883 189.259 c 405.797 189.205 405.734
|
||||||
|
189.142 405.699 189.068 c 405.66 188.994 405.641 188.916 405.641 188.83
|
||||||
|
c 405.641 188.748 405.656 188.67 405.691 188.603 c 405.723 188.533 405.785
|
||||||
|
188.466 405.875 188.404 c 405.961 188.338 406.086 188.275 406.246 188.209
|
||||||
|
c 406.406 188.146 406.613 188.076 406.871 188.002 c 407.148 187.92 407.383
|
||||||
|
187.834 407.574 187.748 c 407.762 187.658 407.918 187.556 408.035 187.447
|
||||||
|
c 408.156 187.338 408.242 187.216 408.293 187.08 c 408.344 186.939 408.371
|
||||||
|
186.783 408.371 186.611 c h
|
||||||
|
f
|
||||||
|
1 g
|
||||||
|
16.999975 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
474.211 121.281 m 474.211 159.207 443.246 189.949 405.047 189.949 c 366.848
|
||||||
|
189.949 335.883 159.207 335.883 121.281 c 335.883 83.359 366.848 52.617
|
||||||
|
405.047 52.617 c 443.246 52.617 474.211 83.359 474.211 121.281 c h
|
||||||
|
S Q
|
||||||
|
463.121 88.627 m 475.383 100.888 l 521.199 55.068 l 508.938 42.806 l h
|
||||||
|
f
|
||||||
|
454.246 102.189 m 461.977 109.92 l 475.324 96.568 l 467.598 88.841 l h
|
||||||
|
f
|
||||||
|
155.125 126.048 m 155.125 110.97 149.75 99.56 139.004 91.814 c 129.512
|
||||||
|
84.904 116.672 81.451 100.48 81.451 c 92.73 81.451 82.508 83.545 69.805
|
||||||
|
87.732 c 71.898 107.623 l 83.695 102.806 94.059 100.4 102.992 100.4 c 110.25
|
||||||
|
100.4 116.672 102.248 122.254 105.947 c 129.023 110.482 132.41 116.763
|
||||||
|
132.41 124.791 c 132.41 133.865 126.824 141.505 115.66 147.716 c 105.328
|
||||||
|
153.091 95.035 158.502 84.777 163.943 c 73.609 171.83 68.027 182.369 68.027
|
||||||
|
195.56 c 68.027 208.4 72.668 218.521 81.949 225.92 c 90.672 232.826 102.051
|
||||||
|
236.283 116.078 236.283 c 127.313 236.283 137.957 234.502 148.008 230.943
|
||||||
|
c 144.973 211.158 l 134.434 215.345 125.082 217.439 116.914 217.439 c 99.469
|
||||||
|
217.439 90.742 210.775 90.742 197.443 c 90.742 189.904 96.328 183.134 107.492
|
||||||
|
177.134 c 126.824 166.806 137.121 161.15 138.375 160.173 c 149.543 151.521
|
||||||
|
155.125 140.146 155.125 126.048 c h
|
||||||
|
f
|
||||||
|
306.922 160.173 m 306.922 135.47 299.77 116.521 285.461 103.33 c 271.641
|
||||||
|
90.49 252.207 84.068 227.152 84.068 c 182.973 84.068 l 182.973 233.771
|
||||||
|
l 227.152 233.771 l 250.043 233.771 268.887 227.244 283.684 214.193 c 299.176
|
||||||
|
200.654 306.922 182.646 306.922 160.173 c h
|
||||||
|
284.207 159.338 m 284.203 176.365 278.938 189.974 268.398 200.166 c 258.348
|
||||||
|
209.935 245.367 214.822 229.453 214.822 c 204.434 214.822 l 204.434 102.912
|
||||||
|
l 226.941 102.912 l 265.117 102.912 284.203 121.72 284.207 159.338 c h
|
||||||
|
f
|
||||||
|
85.898 50.482 m 85.898 48.33 85.129 46.701 83.594 45.595 c 82.238 44.607
|
||||||
|
80.406 44.115 78.094 44.115 c 76.988 44.115 75.527 44.412 73.715 45.009
|
||||||
|
c 74.012 47.853 l 75.695 47.166 77.176 46.822 78.453 46.822 c 79.488 46.822
|
||||||
|
80.406 47.084 81.203 47.611 c 82.168 48.259 82.652 49.158 82.652 50.302
|
||||||
|
c 82.652 51.599 81.855 52.689 80.262 53.576 c 78.785 54.345 77.316 55.115
|
||||||
|
75.852 55.892 c 74.258 57.021 73.461 58.525 73.461 60.408 c 73.461 62.24
|
||||||
|
74.121 63.685 75.449 64.744 c 76.695 65.728 78.316 66.224 80.32 66.224
|
||||||
|
c 81.926 66.224 83.445 65.97 84.879 65.459 c 84.445 62.634 l 82.941 63.232
|
||||||
|
81.605 63.533 80.441 63.533 c 77.949 63.533 76.703 62.58 76.703 60.677
|
||||||
|
c 76.703 59.599 77.5 58.634 79.094 57.779 c 81.855 56.302 83.324 55.494
|
||||||
|
83.504 55.357 c 85.098 54.119 85.898 52.494 85.898 50.482 c h
|
||||||
|
f
|
||||||
|
104.625 52.291 m 104.625 50.017 103.891 48.099 102.414 46.537 c 100.91
|
||||||
|
44.923 99.008 44.115 96.703 44.115 c 94.383 44.115 92.465 44.923 90.949
|
||||||
|
46.537 c 89.473 48.099 88.738 50.017 88.738 52.291 c 88.738 54.681 89.473
|
||||||
|
56.642 90.941 58.173 c 92.41 59.705 94.332 60.466 96.703 60.466 c 99.055
|
||||||
|
60.466 100.965 59.705 102.43 58.173 c 103.895 56.642 104.625 54.681 104.625
|
||||||
|
52.291 c h
|
||||||
|
101.563 52.291 m 101.563 53.865 101.133 55.213 100.277 56.326 c 99.359
|
||||||
|
57.533 98.168 58.134 96.703 58.134 c 95.219 58.134 94.012 57.533 93.086
|
||||||
|
56.326 c 92.23 55.213 91.801 53.865 91.801 52.291 c 91.801 50.736 92.195
|
||||||
|
49.416 92.98 48.33 c 93.879 47.076 95.121 46.447 96.703 46.447 c 98.27
|
||||||
|
46.447 99.5 47.076 100.398 48.33 c 101.172 49.416 101.563 50.736 101.563
|
||||||
|
52.291 c h
|
||||||
|
f
|
||||||
|
117.527 67.627 m 117.406 65.31 l 117.07 65.431 116.609 65.49 116.031 65.49
|
||||||
|
c 114.875 65.49 114.094 65.123 113.684 64.384 c 113.387 63.865 113.238
|
||||||
|
62.998 113.238 61.783 c 113.238 60.095 l 117.379 60.095 l 117.379 57.779
|
||||||
|
l 113.238 57.779 l 113.238 44.49 l 110.367 44.49 l 110.367 57.779 l 106.691
|
||||||
|
57.779 l 106.691 60.095 l 110.367 60.095 l 110.367 61.545 l 110.367 63.627
|
||||||
|
110.707 65.146 111.383 66.103 c 112.199 67.248 113.605 67.822 115.598 67.822
|
||||||
|
c 116.105 67.822 116.75 67.759 117.527 67.627 c h
|
||||||
|
f
|
||||||
|
128.934 44.548 m 127.938 44.259 127.117 44.115 126.48 44.115 c 123.281
|
||||||
|
44.115 121.684 45.63 121.684 48.658 c 121.684 57.779 l 118.156 57.779 l
|
||||||
|
118.156 60.095 l 121.684 60.095 l 121.684 63.713 l 124.555 64.638 l 124.555
|
||||||
|
60.095 l 128.695 60.095 l 128.695 57.779 l 124.555 57.779 l 124.555 49.228
|
||||||
|
l 124.555 48.361 124.793 47.673 125.27 47.166 c 125.719 46.685 126.285
|
||||||
|
46.447 126.973 46.447 c 127.711 46.447 128.363 46.63 128.934 46.998 c h
|
||||||
|
f
|
||||||
|
154.973 60.095 m 149.965 44.49 l 146.617 44.49 l 142.582 57.599 l 142.52
|
||||||
|
57.599 l 138.574 44.49 l 135.227 44.49 l 130.219 60.095 l 133.371 60.095
|
||||||
|
l 136.945 47.177 l 137.004 47.177 l 140.98 60.095 l 144.391 60.095 l 148.305
|
||||||
|
47.177 l 148.367 47.177 l 152.164 60.095 l h
|
||||||
|
f
|
||||||
|
170.102 44.49 m 167.41 44.49 l 167.41 46.505 l 167.352 46.505 l 166.215
|
||||||
|
44.912 164.598 44.115 162.508 44.115 c 160.742 44.115 159.367 44.502 158.379
|
||||||
|
45.279 c 157.313 46.119 156.781 47.353 156.781 48.986 c 156.781 50.759
|
||||||
|
157.617 52.107 159.293 53.025 c 160.629 53.759 162.211 54.13 164.047 54.13
|
||||||
|
c 165.332 54.13 166.348 54.111 167.094 54.068 c 167.094 55.466 166.816
|
||||||
|
56.482 166.258 57.119 c 165.652 57.798 164.645 58.134 163.238 58.134 c 161.484
|
||||||
|
58.134 159.977 57.607 158.711 56.552 c 158.559 59.002 l 160.203 59.978
|
||||||
|
161.918 60.466 163.703 60.466 c 165.895 60.466 167.5 59.923 168.516 58.838
|
||||||
|
c 169.492 57.791 169.98 56.181 169.98 54.009 c 169.98 47.552 l 169.98 46.119
|
||||||
|
170.02 45.095 170.102 44.49 c h
|
||||||
|
167.094 50.556 m 167.094 51.931 l 166.895 51.931 166.594 51.943 166.184
|
||||||
|
51.963 c 165.773 51.982 165.473 51.994 165.273 51.994 c 161.656 51.994
|
||||||
|
159.844 50.99 159.844 48.986 c 159.844 48.22 160.164 47.591 160.801 47.103
|
||||||
|
c 161.371 46.666 162.023 46.447 162.762 46.447 c 164.137 46.447 165.211
|
||||||
|
46.841 165.988 47.627 c 166.727 48.365 167.094 49.341 167.094 50.556 c
|
||||||
|
h
|
||||||
|
f
|
||||||
|
183.598 57.689 m 183.148 57.865 182.617 57.955 182 57.955 c 180.703 57.955
|
||||||
|
179.668 57.384 178.898 56.236 c 178.125 55.091 177.738 53.541 177.738 51.588
|
||||||
|
c 177.738 44.49 l 174.867 44.49 l 174.867 60.095 l 177.559 60.095 l 177.559
|
||||||
|
57.689 l 177.621 57.689 l 178.008 58.505 178.578 59.173 179.332 59.689
|
||||||
|
c 180.082 60.209 180.871 60.466 181.699 60.466 c 182.25 60.466 182.883 60.396
|
||||||
|
183.598 60.259 c h
|
||||||
|
f
|
||||||
|
199.922 51.65 m 188.785 51.65 l 188.785 50.142 189.305 48.892 190.34 47.896
|
||||||
|
c 191.328 46.931 192.523 46.447 193.926 46.447 c 194.793 46.447 195.746
|
||||||
|
46.634 196.781 47.013 c 197.668 47.334 198.324 47.666 198.742 48.017 c
|
||||||
|
198.742 45.13 l 196.867 44.455 195.223 44.115 193.809 44.115 c 191.117 44.115
|
||||||
|
189.078 44.892 187.695 46.447 c 186.379 47.9 185.723 49.943 185.723 52.576
|
||||||
|
c 185.723 54.896 186.395 56.795 187.738 58.263 c 189.086 59.732 190.852
|
||||||
|
60.466 193.047 60.466 c 197.629 60.466 199.922 57.529 199.922 51.65 c h
|
||||||
|
196.871 53.802 m 196.871 55.037 196.535 56.056 195.855 56.865 c 195.137
|
||||||
|
57.713 194.184 58.134 192.984 58.134 c 191.691 58.134 190.664 57.666 189.906
|
||||||
|
56.732 c 189.289 55.955 188.914 54.978 188.785 53.802 c h
|
||||||
|
f
|
||||||
|
230.086 55.357 m 230.086 51.826 229.066 49.123 227.023 47.24 c 225.051
|
||||||
|
45.404 222.273 44.49 218.695 44.49 c 212.391 44.49 l 212.391 65.865 l 218.695
|
||||||
|
65.865 l 221.965 65.865 224.656 64.931 226.77 63.068 c 228.98 61.134 230.086
|
||||||
|
58.564 230.086 55.357 c h
|
||||||
|
226.844 55.236 m 226.844 57.666 226.09 59.611 224.586 61.064 c 223.152
|
||||||
|
62.463 221.297 63.158 219.027 63.158 c 215.453 63.158 l 215.453 47.177 l
|
||||||
|
218.668 47.177 l 224.117 47.177 226.844 49.865 226.844 55.236 c h
|
||||||
|
f
|
||||||
|
247.578 51.65 m 236.441 51.65 l 236.441 50.142 236.957 48.892 237.996 47.896
|
||||||
|
c 238.98 46.931 240.176 46.447 241.582 46.447 c 242.449 46.447 243.402
|
||||||
|
46.634 244.438 47.013 c 245.324 47.334 245.977 47.666 246.395 48.017 c 246.395
|
||||||
|
45.13 l 244.523 44.455 242.879 44.115 241.465 44.115 c 238.773 44.115 236.734
|
||||||
|
44.892 235.348 46.447 c 234.035 47.9 233.375 49.943 233.375 52.576 c 233.375
|
||||||
|
54.896 234.047 56.795 235.395 58.263 c 236.738 59.732 238.508 60.466 240.699
|
||||||
|
60.466 c 245.285 60.466 247.578 57.529 247.578 51.65 c h
|
||||||
|
244.527 53.802 m 244.527 55.037 244.188 56.056 243.512 56.865 c 242.793
|
||||||
|
57.713 241.836 58.134 240.641 58.134 c 239.344 58.134 238.32 57.666 237.563
|
||||||
|
56.732 c 236.945 55.955 236.57 54.978 236.441 53.802 c h
|
||||||
|
f
|
||||||
|
259.879 48.986 m 259.879 47.412 259.32 46.189 258.207 45.31 c 257.199 44.513
|
||||||
|
255.938 44.115 254.422 44.115 c 252.641 44.115 251.215 44.404 250.148 44.982
|
||||||
|
c 250.297 47.552 l 251.434 46.814 252.629 46.447 253.887 46.447 c 254.664
|
||||||
|
46.447 255.316 46.611 255.844 46.939 c 256.492 47.33 256.816 47.912 256.816
|
||||||
|
48.689 c 256.816 49.447 256.23 50.142 255.066 50.783 c 253.98 51.369 252.895
|
||||||
|
51.959 251.809 52.545 c 250.641 53.38 250.059 54.423 250.059 55.67 c 250.059
|
||||||
|
57.224 250.586 58.431 251.645 59.287 c 252.629 60.076 253.934 60.466 255.559
|
||||||
|
60.466 c 256.574 60.466 257.773 60.263 259.148 59.853 c 258.906 57.345
|
||||||
|
l 258.598 57.533 258.094 57.716 257.398 57.896 c 256.738 58.056 256.23 58.134
|
||||||
|
255.875 58.134 c 255.086 58.134 254.441 57.982 253.945 57.673 c 253.387
|
||||||
|
57.334 253.109 56.857 253.109 56.236 c 253.109 55.392 253.695 54.662 254.871
|
||||||
|
54.056 c 255.957 53.498 257.043 52.939 258.129 52.38 c 259.297 51.545 259.879
|
||||||
|
50.412 259.879 48.986 c h
|
||||||
|
f
|
||||||
|
266.785 63.591 m 263.543 63.591 l 263.543 66.838 l 266.785 66.838 l h
|
||||||
|
266.605 44.49 m 263.723 44.49 l 263.723 60.095 l 266.605 60.095 l h
|
||||||
|
f
|
||||||
|
285.648 45.162 m 285.648 40.177 282.969 37.685 277.609 37.685 c 275.965
|
||||||
|
37.685 274.094 38.045 272.004 38.763 c 272.316 41.423 l 274.359 40.486
|
||||||
|
276.234 40.017 277.938 40.017 c 279.453 40.017 280.637 40.498 281.496 41.455
|
||||||
|
c 282.352 42.412 282.781 43.716 282.781 45.369 c 282.781 46.908 l 282.719
|
||||||
|
46.908 l 281.504 45.295 279.762 44.49 277.488 44.49 c 275.355 44.49 273.68
|
||||||
|
45.267 272.465 46.822 c 271.359 48.224 270.805 50.009 270.805 52.17 c 270.805
|
||||||
|
54.373 271.379 56.255 272.527 57.822 c 273.82 59.588 275.574 60.466 277.789
|
||||||
|
60.466 c 280.297 60.466 282.012 59.572 282.93 57.779 c 282.988 57.779 l
|
||||||
|
282.988 60.095 l 285.648 60.095 l h
|
||||||
|
282.781 52.111 m 282.781 53.838 282.402 55.248 281.645 56.341 c 280.816
|
||||||
|
57.537 279.676 58.134 278.223 58.134 c 276.867 58.134 275.773 57.502 274.945
|
||||||
|
56.236 c 274.23 55.111 273.871 53.806 273.871 52.322 c 273.871 50.795 274.258
|
||||||
|
49.509 275.035 48.463 c 275.855 47.369 276.914 46.822 278.223 46.822 c
|
||||||
|
279.547 46.822 280.641 47.338 281.508 48.373 c 282.355 49.38 282.781 50.627
|
||||||
|
282.781 52.111 c h
|
||||||
|
f
|
||||||
|
304.367 44.49 m 301.496 44.49 l 301.496 52.576 l 301.496 54.47 301.258
|
||||||
|
55.845 300.777 56.701 c 300.27 57.627 299.406 58.107 298.191 58.134 c 296.617
|
||||||
|
58.185 295.418 57.603 294.59 56.388 c 293.82 55.259 293.438 53.701 293.438
|
||||||
|
51.709 c 293.438 44.49 l 290.566 44.49 l 290.566 60.095 l 293.348 60.095
|
||||||
|
l 293.348 57.627 l 293.41 57.627 l 293.836 58.494 294.52 59.185 295.457
|
||||||
|
59.697 c 296.395 60.213 297.414 60.466 298.52 60.466 c 302.418 60.466 304.367
|
||||||
|
58.236 304.367 53.771 c h
|
||||||
|
f
|
||||||
|
330.047 44.49 m 327.355 44.49 l 327.355 46.505 l 327.297 46.505 l 326.16
|
||||||
|
44.912 324.547 44.115 322.453 44.115 c 320.688 44.115 319.313 44.502 318.328
|
||||||
|
45.279 c 317.262 46.119 316.727 47.353 316.727 48.986 c 316.727 50.759
|
||||||
|
317.566 52.107 319.238 53.025 c 320.574 53.759 322.16 54.13 323.992 54.13
|
||||||
|
c 325.277 54.13 326.293 54.111 327.043 54.068 c 327.043 55.466 326.762
|
||||||
|
56.482 326.203 57.119 c 325.598 57.798 324.59 58.134 323.184 58.134 c 321.43
|
||||||
|
58.134 319.922 57.607 318.656 56.552 c 318.508 59.002 l 320.152 59.978
|
||||||
|
321.863 60.466 323.648 60.466 c 325.84 60.466 327.445 59.923 328.461 58.838
|
||||||
|
c 329.438 57.791 329.926 56.181 329.926 54.009 c 329.926 47.552 l 329.926
|
||||||
|
46.119 329.965 45.095 330.047 44.49 c h
|
||||||
|
327.043 50.556 m 327.043 51.931 l 326.844 51.931 326.539 51.943 326.129
|
||||||
|
51.963 c 325.723 51.982 325.418 51.994 325.219 51.994 c 321.602 51.994
|
||||||
|
319.793 50.99 319.793 48.986 c 319.793 48.22 320.109 47.591 320.75 47.103
|
||||||
|
c 321.316 46.666 321.969 46.447 322.707 46.447 c 324.082 46.447 325.16
|
||||||
|
46.841 325.938 47.627 c 326.672 48.365 327.043 49.341 327.043 50.556 c h
|
||||||
|
f
|
||||||
|
348.613 44.49 m 345.742 44.49 l 345.742 52.576 l 345.742 54.47 345.504
|
||||||
|
55.845 345.023 56.701 c 344.516 57.627 343.652 58.107 342.438 58.134 c 340.863
|
||||||
|
58.185 339.664 57.603 338.836 56.388 c 338.07 55.259 337.684 53.701 337.684
|
||||||
|
51.709 c 337.684 44.49 l 334.816 44.49 l 334.816 60.095 l 337.594 60.095
|
||||||
|
l 337.594 57.627 l 337.656 57.627 l 338.082 58.494 338.766 59.185 339.703
|
||||||
|
59.697 c 340.641 60.213 341.66 60.466 342.766 60.466 c 346.664 60.466 348.613
|
||||||
|
58.236 348.613 53.771 c h
|
||||||
|
f
|
||||||
|
367.328 44.49 m 364.578 44.49 l 364.578 46.685 l 364.516 46.685 l 363.391
|
||||||
|
44.97 361.617 44.115 359.195 44.115 c 356.984 44.115 355.273 44.99 354.066
|
||||||
|
46.744 c 353.012 48.279 352.484 50.224 352.484 52.576 c 352.484 54.806
|
||||||
|
353.043 56.646 354.156 58.091 c 355.375 59.677 357.063 60.466 359.227 60.466
|
||||||
|
c 361.637 60.466 363.359 59.63 364.398 57.955 c 364.457 57.955 l 364.457
|
||||||
|
67.447 l 367.328 67.447 l h
|
||||||
|
364.457 52.259 m 364.457 53.857 364.078 55.201 363.32 56.298 c 362.465
|
||||||
|
57.521 361.305 58.134 359.84 58.134 c 358.383 58.134 357.277 57.529 356.52
|
||||||
|
56.314 c 355.871 55.275 355.547 53.955 355.547 52.349 c 355.547 50.896
|
||||||
|
355.883 49.607 356.551 48.478 c 357.348 47.123 358.453 46.447 359.867 46.447
|
||||||
|
c 361.363 46.447 362.535 47.088 363.383 48.373 c 364.098 49.47 364.457
|
||||||
|
50.767 364.457 52.259 c h
|
||||||
|
f
|
||||||
|
400.484 55.177 m 400.484 52.775 399.98 50.685 398.98 48.912 c 397.98 47.138
|
||||||
|
396.563 45.849 394.727 45.041 c 399.691 40.541 l 395.895 40.541 l 391.902
|
||||||
|
44.248 l 391.414 44.158 390.848 44.115 390.199 44.115 c 386.988 44.115
|
||||||
|
384.457 45.146 382.605 47.209 c 380.813 49.213 379.914 51.869 379.914 55.177
|
||||||
|
c 379.914 58.416 380.816 61.045 382.621 63.068 c 384.492 65.17 387.02 66.224
|
||||||
|
390.199 66.224 c 393.367 66.224 395.895 65.17 397.777 63.068 c 399.582
|
||||||
|
61.045 400.484 58.416 400.484 55.177 c h
|
||||||
|
397.238 55.177 m 397.238 57.509 396.652 59.443 395.477 60.974 c 394.188
|
||||||
|
62.681 392.43 63.533 390.199 63.533 c 387.957 63.533 386.191 62.681 384.906
|
||||||
|
60.974 c 383.742 59.443 383.156 57.509 383.156 55.177 c 383.156 52.845
|
||||||
|
383.715 50.916 384.832 49.392 c 386.086 47.677 387.875 46.822 390.199 46.822
|
||||||
|
c 392.512 46.822 394.301 47.677 395.566 49.392 c 396.68 50.916 397.238
|
||||||
|
52.845 397.238 55.177 c h
|
||||||
|
f
|
||||||
|
418.332 44.49 m 415.551 44.49 l 415.551 46.97 l 415.492 46.97 l 415.07
|
||||||
|
46.091 414.391 45.396 413.449 44.884 c 412.508 44.373 411.484 44.115 410.379
|
||||||
|
44.115 c 406.48 44.115 404.535 46.353 404.535 50.826 c 404.535 60.095 l
|
||||||
|
407.402 60.095 l 407.402 52.021 l 407.402 50.127 407.645 48.752 408.121
|
||||||
|
47.896 c 408.629 46.959 409.496 46.474 410.723 46.447 c 412.297 46.408
|
||||||
|
413.492 46.994 414.309 48.209 c 415.078 49.326 415.461 50.88 415.461 52.873
|
||||||
|
c 415.461 60.095 l 418.332 60.095 l h
|
||||||
|
f
|
||||||
|
435.52 44.49 m 432.832 44.49 l 432.832 46.505 l 432.77 46.505 l 431.633
|
||||||
|
44.912 430.02 44.115 427.926 44.115 c 426.164 44.115 424.789 44.502 423.801
|
||||||
|
45.279 c 422.734 46.119 422.203 47.353 422.203 48.986 c 422.203 50.759
|
||||||
|
423.039 52.107 424.715 53.025 c 426.051 53.759 427.633 54.13 429.469 54.13
|
||||||
|
c 430.754 54.13 431.77 54.111 432.516 54.068 c 432.516 55.466 432.238 56.482
|
||||||
|
431.68 57.119 c 431.07 57.798 430.066 58.134 428.66 58.134 c 426.906 58.134
|
||||||
|
425.395 57.607 424.129 56.552 c 423.98 59.002 l 425.625 59.978 427.34 60.466
|
||||||
|
429.125 60.466 c 431.316 60.466 432.922 59.923 433.938 58.838 c 434.914
|
||||||
|
57.791 435.402 56.181 435.402 54.009 c 435.402 47.552 l 435.402 46.119
|
||||||
|
435.441 45.095 435.52 44.49 c h
|
||||||
|
432.516 50.556 m 432.516 51.931 l 432.316 51.931 432.012 51.943 431.605
|
||||||
|
51.963 c 431.195 51.982 430.891 51.994 430.691 51.994 c 427.074 51.994
|
||||||
|
425.266 50.99 425.266 48.986 c 425.266 48.22 425.586 47.591 426.223 47.103
|
||||||
|
c 426.793 46.666 427.445 46.447 428.18 46.447 c 429.559 46.447 430.633
|
||||||
|
46.841 431.41 47.627 c 432.148 48.365 432.516 49.341 432.516 50.556 c h
|
||||||
|
f
|
||||||
|
440.648 67.447 2.887 -22.957 re f
|
||||||
|
452.203 63.591 m 448.961 63.591 l 448.961 66.838 l 452.203 66.838 l h
|
||||||
|
452.023 44.49 m 449.141 44.49 l 449.141 60.095 l 452.023 60.095 l h
|
||||||
|
f
|
||||||
|
465.805 44.548 m 464.809 44.259 463.992 44.115 463.355 44.115 c 460.156
|
||||||
|
44.115 458.555 45.63 458.555 48.658 c 458.555 57.779 l 455.027 57.779 l
|
||||||
|
455.027 60.095 l 458.555 60.095 l 458.555 63.713 l 461.426 64.638 l 461.426
|
||||||
|
60.095 l 465.566 60.095 l 465.566 57.779 l 461.426 57.779 l 461.426 49.228
|
||||||
|
l 461.426 48.361 461.664 47.673 462.145 47.166 c 462.594 46.685 463.16
|
||||||
|
46.447 463.848 46.447 c 464.586 46.447 465.238 46.63 465.805 46.998 c h
|
||||||
|
f
|
||||||
|
481.531 60.095 m 475.777 44.146 l 475.008 42.013 474.352 40.56 473.805
|
||||||
|
39.795 c 472.789 38.388 471.445 37.685 469.781 37.685 c 469.285 37.685 468.633
|
||||||
|
37.759 467.824 37.912 c 468.004 40.259 l 468.492 40.099 468.941 40.017
|
||||||
|
469.348 40.017 c 470.434 40.017 471.328 40.623 472.023 41.826 c 472.531
|
||||||
|
42.693 472.789 43.377 472.789 43.877 c 472.789 43.966 472.602 44.517 472.234
|
||||||
|
45.533 c 466.926 60.095 l 470.082 60.095 l 474.281 47.177 l 474.344 47.177
|
||||||
|
l 478.633 60.095 l h
|
||||||
|
f
|
||||||
|
Q Q
|
||||||
|
showpage
|
||||||
|
%%Trailer
|
||||||
|
count op_count sub {pop} repeat
|
||||||
|
countdictstack dict_count sub {end} repeat
|
||||||
|
cairo_eps_state restore
|
||||||
|
%%EOF
|
||||||
BIN
25_Outline/logos/sdqlogo.pdf
Normal file
BIN
25_Outline/logos/sdqlogo.pdf
Normal file
Binary file not shown.
1541
25_Outline/outline.bib
Normal file
1541
25_Outline/outline.bib
Normal file
File diff suppressed because it is too large
Load Diff
185
25_Outline/outline.tex
Normal file
185
25_Outline/outline.tex
Normal file
@@ -0,0 +1,185 @@
|
|||||||
|
%% thesis.tex
|
||||||
|
%%
|
||||||
|
%% Karlsruhe Institute of Technology
|
||||||
|
%% Institute for Program Structures and Data Organization
|
||||||
|
%% Chair for Software Design and Quality (SDQ)
|
||||||
|
%%
|
||||||
|
%% Dr.-Ing. Erik Burger
|
||||||
|
%% burger@kit.edu
|
||||||
|
%%
|
||||||
|
%% See https://sdqweb.ipd.kit.edu/wiki/Dokumentvorlagen
|
||||||
|
%%
|
||||||
|
%% {$HeadURL: https://svnserver.informatik.kit.edu/i43/svn/lehre/Abschlussarbeiten-Vorlage/thesis.tex $}
|
||||||
|
%% {$LastChangedDate: 2018-08-02 14:19:06 +0200 (Do, 02 Aug 2018) $}
|
||||||
|
%% {$LastChangedRevision: 5705 $}
|
||||||
|
%% {$LastChangedBy: burger $}
|
||||||
|
|
||||||
|
%% Available page modes: oneside, twoside
|
||||||
|
%% Available modes: draft, final (see README)
|
||||||
|
\documentclass[oneside, english, final]{sdqthesis}
|
||||||
|
|
||||||
|
|
||||||
|
%% ---------------------------------
|
||||||
|
%% | Information about the thesis |
|
||||||
|
%% ---------------------------------
|
||||||
|
|
||||||
|
%% Name of the author
|
||||||
|
\author{Hannes F. Kuchelmeister}
|
||||||
|
|
||||||
|
%% Title (and possibly subtitle) of the thesis
|
||||||
|
\title{Decision Support for Group-Based Configuration using Recommender Systems}
|
||||||
|
|
||||||
|
%% Type of the thesis
|
||||||
|
\thesistype{Bachelor's Thesis Outline}
|
||||||
|
|
||||||
|
%% Change the institute here, ``IPD'' is default
|
||||||
|
% \myinstitute{Institute for \dots}
|
||||||
|
|
||||||
|
%% You can put a logo in the ``logos'' directory and include it here
|
||||||
|
%% instead of the SDQ logo
|
||||||
|
% \grouplogo{myfile}
|
||||||
|
%\secondgrouplogo{iism_logo}
|
||||||
|
%\companylogo{cas_software_logo}
|
||||||
|
%\externallogo{fzi_logo}
|
||||||
|
|
||||||
|
%% Alternatively, you can disable the group logo
|
||||||
|
\nogrouplogo
|
||||||
|
\nosecondgrouplogo
|
||||||
|
\nocompanylogo
|
||||||
|
\noexternallogo
|
||||||
|
|
||||||
|
%% The reviewers are the professors that grade your thesis
|
||||||
|
\reviewerone{Prof. Dr. Ralf H. Reussner}
|
||||||
|
\reviewertwo{Prof. Dr. Christof Weinhardt}
|
||||||
|
|
||||||
|
%% The advisors are PhDs or Postdocs
|
||||||
|
\advisorone{Dr. rer. nat. Robert Heinrich}
|
||||||
|
%% The second advisor can be omitted
|
||||||
|
\advisortwo{M.A. Jonas Fegert}
|
||||||
|
|
||||||
|
%% Please enter the start end end time of your thesis
|
||||||
|
\usepackage{texdate}
|
||||||
|
\initdate{2019}{12}{16}
|
||||||
|
\editingtime{\printfdate{british}}{\advancebymonths{4}\printfdate{british}}
|
||||||
|
|
||||||
|
\settitle
|
||||||
|
|
||||||
|
%% --------------------------------
|
||||||
|
%% | Settings for word separation |
|
||||||
|
%% --------------------------------
|
||||||
|
|
||||||
|
%% Describe separation hints here.
|
||||||
|
%% For more details, see
|
||||||
|
%% http://en.wikibooks.org/wiki/LaTeX/Text_Formatting#Hyphenation
|
||||||
|
\hyphenation{
|
||||||
|
% me-ta-mo-del
|
||||||
|
}
|
||||||
|
|
||||||
|
%% --------------------
|
||||||
|
%% | Float Barriers |
|
||||||
|
%% --------------------
|
||||||
|
\usepackage{placeins}
|
||||||
|
|
||||||
|
%% --------------------
|
||||||
|
%% | Table Packages |
|
||||||
|
%% --------------------
|
||||||
|
\usepackage{tabularx}
|
||||||
|
\usepackage{multirow}
|
||||||
|
|
||||||
|
%% --------------------
|
||||||
|
%% | Maths Packages |
|
||||||
|
%% --------------------
|
||||||
|
\usepackage{amsmath}
|
||||||
|
\usepackage{amssymb}
|
||||||
|
|
||||||
|
%% --------------------
|
||||||
|
%% | Plotting Packages |
|
||||||
|
%% --------------------
|
||||||
|
\usepackage{pgfplots}
|
||||||
|
|
||||||
|
%% ---------------------
|
||||||
|
%% | Generating Frames |
|
||||||
|
%% ---------------------
|
||||||
|
\usepackage[framemethod=TikZ]{mdframed}
|
||||||
|
|
||||||
|
%% --------------------------------
|
||||||
|
%% | PDF Comments |
|
||||||
|
%% --------------------------------
|
||||||
|
\usepackage[colorinlistoftodos, obeyDraft]{todonotes}
|
||||||
|
|
||||||
|
%% --------------------------------
|
||||||
|
%% | Gantt Charts |
|
||||||
|
%% --------------------------------
|
||||||
|
\usepackage{pgfgantt}
|
||||||
|
|
||||||
|
%% --------------------------------
|
||||||
|
%% | Quotation |
|
||||||
|
%% --------------------------------
|
||||||
|
\usepackage{csquotes}
|
||||||
|
\MakeOuterQuote{"}
|
||||||
|
|
||||||
|
%% --------------------------------
|
||||||
|
%% | Bibliography |
|
||||||
|
%% --------------------------------
|
||||||
|
|
||||||
|
%% Use biber instead of BibTeX, see README
|
||||||
|
\usepackage[citestyle=numeric,style=numeric,sorting=none,backend=biber]{biblatex}
|
||||||
|
\addbibresource{outline.bib}
|
||||||
|
|
||||||
|
%% ====================================
|
||||||
|
%% ====================================
|
||||||
|
%% || ||
|
||||||
|
%% || Beginning of the main document ||
|
||||||
|
%% || ||
|
||||||
|
%% ====================================
|
||||||
|
%% ====================================
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
%% Set PDF metadata
|
||||||
|
\setpdf
|
||||||
|
|
||||||
|
%% Set the title
|
||||||
|
\maketitle
|
||||||
|
|
||||||
|
%% The Preamble begins here
|
||||||
|
\frontmatter
|
||||||
|
|
||||||
|
\setcounter{page}{1}
|
||||||
|
\pagenumbering{roman}
|
||||||
|
|
||||||
|
%% ------------------------
|
||||||
|
%% | Table of Contents |
|
||||||
|
%% ------------------------
|
||||||
|
\tableofcontents
|
||||||
|
|
||||||
|
\listoffigures
|
||||||
|
\listoftables
|
||||||
|
|
||||||
|
%% -----------------
|
||||||
|
%% | Main part |
|
||||||
|
%% -----------------
|
||||||
|
|
||||||
|
\mainmatter
|
||||||
|
|
||||||
|
\input{sections/00_introduction.tex}
|
||||||
|
\input{sections/20_foundations.tex}
|
||||||
|
\input{sections/30_related_work.tex}
|
||||||
|
\input{sections/40_concept.tex}
|
||||||
|
\input{sections/50_design_and_implementation.tex}
|
||||||
|
\input{sections/60_evaluation.tex}
|
||||||
|
\input{sections/70_further_work.tex}
|
||||||
|
|
||||||
|
%% --------------------
|
||||||
|
%% | Bibliography |
|
||||||
|
%% --------------------
|
||||||
|
|
||||||
|
%% Add entry to the table of contents for the bibliography
|
||||||
|
\printbibliography[heading=bibintoc]
|
||||||
|
|
||||||
|
%% ----------------
|
||||||
|
%% | Appendix |
|
||||||
|
%% ----------------
|
||||||
|
\appendix
|
||||||
|
%\input{sections/appendix.tex}
|
||||||
|
|
||||||
|
\end{document}
|
||||||
273
25_Outline/sdqthesis.cls
Normal file
273
25_Outline/sdqthesis.cls
Normal file
@@ -0,0 +1,273 @@
|
|||||||
|
%% LaTeX2e class for student theses
|
||||||
|
%% sdthesis.cls
|
||||||
|
%%
|
||||||
|
%% Karlsruhe Institute of Technology
|
||||||
|
%% Institute for Program Structures and Data Organization
|
||||||
|
%% Chair for Software Design and Quality (SDQ)
|
||||||
|
%%
|
||||||
|
%% Dr.-Ing. Erik Burger
|
||||||
|
%% burger@kit.edu
|
||||||
|
%%
|
||||||
|
%% Version 1.3.3, 2018-04-17
|
||||||
|
%%
|
||||||
|
%% SVN-Informationen:
|
||||||
|
%% ------------------
|
||||||
|
%% $LastChangedBy: burger $
|
||||||
|
%% $LastChangedRevision: 5524 $
|
||||||
|
%% $LastChangedDate: 2018-04-17 16:49:27 +0200 (Di, 17 Apr 2018) $
|
||||||
|
%% $HeadURL: https://svnserver.informatik.kit.edu/i43/svn/lehre/Abschlussarbeiten-Vorlage/sdqthesis.cls $
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesClass{sdqthesis}[2017/08/01 v1.3.2 Student thesis class]
|
||||||
|
% Language options. German is also needed in English thesis for the abstract
|
||||||
|
\DeclareOption{ngerman}{\PassOptionsToPackage{\CurrentOption}{babel}}
|
||||||
|
\DeclareOption{english}{\PassOptionsToPackage{main=\CurrentOption,ngerman}{babel}}
|
||||||
|
% Oneside and twoside layout
|
||||||
|
\DeclareOption{oneside}{\PassOptionsToClass{\CurrentOption,BCOR=10mm}{scrbook}}
|
||||||
|
\DeclareOption{twoside}{\PassOptionsToClass{\CurrentOption,BCOR=20mm}{scrbook}}
|
||||||
|
\ProcessOptions\relax
|
||||||
|
% Used to detect language families
|
||||||
|
\RequirePackage{translations}
|
||||||
|
|
||||||
|
%% ---------------------------------------------------------------
|
||||||
|
%% | Based on KOMAscript by Markus Kohm http://www.komascript.de |
|
||||||
|
%% ---------------------------------------------------------------
|
||||||
|
\LoadClass[12pt,a4paper,titlepage=true,DIV=15,headsepline]{scrbook}
|
||||||
|
|
||||||
|
%% ---------------
|
||||||
|
%% | Page Layout |
|
||||||
|
%% ---------------
|
||||||
|
\RequirePackage[headsepline,draft=false]{scrlayer-scrpage}
|
||||||
|
\pagestyle{scrheadings}
|
||||||
|
|
||||||
|
% For one-sided layout, put the page marks on the right margin
|
||||||
|
\if@twoside%
|
||||||
|
\else%
|
||||||
|
\chead[]{}
|
||||||
|
\ohead{\headmark}
|
||||||
|
\cfoot[]{}
|
||||||
|
\ofoot[\pagemark]{\pagemark}
|
||||||
|
\fi%
|
||||||
|
|
||||||
|
\clubpenalty=10000 %prevent orphans
|
||||||
|
\widowpenalty=10000 %prevent widows
|
||||||
|
|
||||||
|
%% --------------
|
||||||
|
%% | Typography |
|
||||||
|
%% --------------
|
||||||
|
|
||||||
|
% T1 font encoding
|
||||||
|
\RequirePackage[T1]{fontenc}
|
||||||
|
\RequirePackage[utf8]{inputenc}
|
||||||
|
|
||||||
|
% serif type: Linux Libertine
|
||||||
|
\RequirePackage{libertine}
|
||||||
|
% Linux Libertine in math mode
|
||||||
|
\RequirePackage[libertine]{newtxmath}
|
||||||
|
|
||||||
|
% grotesque type: Adobe Source Sans Pro
|
||||||
|
\RequirePackage[scaled=.92]{sourcesanspro}
|
||||||
|
|
||||||
|
% monospace type: Bera Mono
|
||||||
|
\RequirePackage[scaled=.78]{beramono}
|
||||||
|
|
||||||
|
% semi-bold type (for subsections and paragraphs)
|
||||||
|
\newcommand*{\sbdefault}{sb}
|
||||||
|
\DeclareRobustCommand{\sbseries}{%
|
||||||
|
\not@math@alphabet\sbseries\relax
|
||||||
|
\fontseries\sbdefault\selectfont}
|
||||||
|
|
||||||
|
\DeclareTextFontCommand{\textsb}{\sbseries}
|
||||||
|
|
||||||
|
\addtokomafont{subsection}{\sbseries}
|
||||||
|
\addtokomafont{subsubsection}{\sbseries}
|
||||||
|
\addtokomafont{paragraph}{\sbseries}
|
||||||
|
|
||||||
|
% microtype for nicer typography
|
||||||
|
\RequirePackage[protrusion=true,expansion=true]{microtype}
|
||||||
|
|
||||||
|
% commands for code and model keywords in text
|
||||||
|
\newcommand{\code}[1]{\texttt{\hyphenchar\font45\relax #1}}
|
||||||
|
\newcommand{\model}[1]{\textsf{#1}}
|
||||||
|
|
||||||
|
% nicer spacing for enumerations
|
||||||
|
\RequirePackage{enumitem}
|
||||||
|
|
||||||
|
%% --------------
|
||||||
|
%% | Title page |
|
||||||
|
%% --------------
|
||||||
|
|
||||||
|
% Logos
|
||||||
|
\makeatletter
|
||||||
|
|
||||||
|
\newcommand{\theexternallogo}{sdqlogo}
|
||||||
|
\newcommand{\externallogo}[1]{\renewcommand{\theexternallogo}{#1}}
|
||||||
|
\newcommand{\printexternallogo}{\includegraphics[height=1.8cm]{logos/\theexternallogo}}
|
||||||
|
\newcommand{\noexternallogo}{\renewcommand{\printexternallogo}{}}
|
||||||
|
|
||||||
|
\newcommand{\thecompanylogo}{sdqlogo}
|
||||||
|
\newcommand{\companylogo}[1]{\renewcommand{\thecompanylogo}{#1}}
|
||||||
|
\newcommand{\printcompanylogo}{\includegraphics[height=1.8cm]{logos/\thecompanylogo}}
|
||||||
|
\newcommand{\nocompanylogo}{\renewcommand{\printcompanylogo}{}}
|
||||||
|
|
||||||
|
\newcommand{\thesecondgrouplogo}{sdqlogo}
|
||||||
|
\newcommand{\secondgrouplogo}[1]{\renewcommand{\thesecondgrouplogo}{#1}}
|
||||||
|
\newcommand{\printsecondgrouplogo}{\includegraphics[height=1.8cm]{logos/\thesecondgrouplogo}}
|
||||||
|
\newcommand{\nosecondgrouplogo}{\renewcommand{\printsecondgrouplogo}{}}
|
||||||
|
|
||||||
|
\newcommand{\thegrouplogo}{sdqlogo}
|
||||||
|
\newcommand{\grouplogo}[1]{\renewcommand{\thegrouplogo}{#1}}
|
||||||
|
\newcommand{\printgrouplogo}{\includegraphics[height=1.8cm]{logos/\thegrouplogo}}
|
||||||
|
\newcommand{\nogrouplogo}{\renewcommand{\printgrouplogo}{}}
|
||||||
|
|
||||||
|
\titlehead{%
|
||||||
|
% KIT logo german/english
|
||||||
|
\ifcurrentbaselanguage{English}
|
||||||
|
{\includegraphics[height=1.8cm]{logos/kitlogo_en_cmyk}}
|
||||||
|
{\includegraphics[height=1.8cm]{logos/kitlogo_de_cmyk}}
|
||||||
|
\hfill
|
||||||
|
% SDQ logo
|
||||||
|
\printexternallogo
|
||||||
|
\hspace{5mm}
|
||||||
|
\printcompanylogo
|
||||||
|
\hspace{5mm}
|
||||||
|
\printsecondgrouplogo
|
||||||
|
\hspace{5mm}
|
||||||
|
\printgrouplogo
|
||||||
|
\hspace{5mm}
|
||||||
|
\ThisCenterWallPaper{1}{title-background.pdf}
|
||||||
|
}
|
||||||
|
|
||||||
|
%
|
||||||
|
\setkomafont{title}{\huge\sffamily\bfseries}
|
||||||
|
\setkomafont{subtitle}{\normalfont\large}
|
||||||
|
|
||||||
|
\uppertitleback{Karlsruher Institut für Technologie\\ Fakultät für Informatik\\ Postfach 6980\\ 76128 Karlsruhe}
|
||||||
|
|
||||||
|
%% variables for title page
|
||||||
|
\newcommand{\theinstitute}{\ifcurrentbaselanguage{English}
|
||||||
|
{Institute for Program Structures and Data Organization (IPD)}
|
||||||
|
{Institut für Programmstrukturen und Datenorganisation (IPD)}}
|
||||||
|
\newcommand{\thethesistype}{}
|
||||||
|
\newcommand{\thereviewerone}{}
|
||||||
|
\newcommand{\thereviewertwo}{}
|
||||||
|
\newcommand{\theadvisorone}{}
|
||||||
|
\newcommand{\theadvisortwo}{}
|
||||||
|
\newcommand{\theeditstart}{}
|
||||||
|
\newcommand{\theeditend}{}
|
||||||
|
|
||||||
|
%% formatting commands for titlepage
|
||||||
|
\newcommand{\thesistype}[1]{\subtitle{\vskip2em #1 \ifcurrentbaselanguage{English}{of}{von}}%
|
||||||
|
\renewcommand{\thethesistype}{#1}}
|
||||||
|
\newcommand{\myinstitute}[1]{\renewcommand{\theinstitute}{#1}}
|
||||||
|
\newcommand{\reviewerone}[1]{\renewcommand{\thereviewerone}{#1}}
|
||||||
|
\newcommand{\reviewertwo}[1]{\renewcommand{\thereviewertwo}{#1}}
|
||||||
|
\newcommand{\advisorone}[1]{\renewcommand{\theadvisorone}{#1}}
|
||||||
|
\newcommand{\advisortwo}[1]{\renewcommand{\theadvisortwo}{#1}}
|
||||||
|
|
||||||
|
\newcommand{\editingtime}[2]{%
|
||||||
|
\renewcommand{\theeditstart}{#1}%
|
||||||
|
\renewcommand{\theeditend}{#2}%
|
||||||
|
%% do not show the date
|
||||||
|
\date{}
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcommand{\settitle}{%
|
||||||
|
\publishers{%
|
||||||
|
\large
|
||||||
|
\ifcurrentbaselanguage{English}{at the Department of Informatics}%
|
||||||
|
{an der Fakultät für Informatik}\\
|
||||||
|
\theinstitute\\[2em]
|
||||||
|
\begin{tabular}{l l}
|
||||||
|
\ifcurrentbaselanguage{English}{Reviewer}{Erstgutachter}: & \thereviewerone\\
|
||||||
|
\ifcurrentbaselanguage{English}{Second reviewer}{Zweitgutachter}: & \thereviewertwo\\
|
||||||
|
\ifcurrentbaselanguage{English}{Advisor}{Betreuender Mitarbeiter}: & \theadvisorone\\
|
||||||
|
% if there is no second advisor, do not output this line
|
||||||
|
\ifthenelse{\equal{\theadvisortwo}{}}{}{%
|
||||||
|
\ifcurrentbaselanguage{English}{Second advisor}{Zweiter betreuender Mitarbeiter}: & \theadvisortwo\\
|
||||||
|
}
|
||||||
|
\end{tabular}
|
||||||
|
\vskip2em
|
||||||
|
\theeditstart{} -- \theeditend
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
%% -----------------------------
|
||||||
|
%% | Abstract/Acknowledgements |
|
||||||
|
%% -----------------------------
|
||||||
|
|
||||||
|
\newcommand{\abstract}[1][\abstractname]{\chapter*{#1}}
|
||||||
|
\newcommand{\Abstract}[1][\abstractname]{\chapter*{#1}\addcontentsline{toc}{chapter}{#1}}
|
||||||
|
|
||||||
|
\def\ackname{Acknowledgments}
|
||||||
|
\def\abstractname{Abstract}
|
||||||
|
\def\switcht@deutsch{\svlanginfo
|
||||||
|
\def\ackname{Danksagung}
|
||||||
|
\def\abstractname{Kurzfassung}
|
||||||
|
}
|
||||||
|
\def\switcht@english{\svlanginfo
|
||||||
|
\def\ackname{Acknowledgements}
|
||||||
|
\def\abstractname{Abstract}
|
||||||
|
}
|
||||||
|
|
||||||
|
%% In English theses, an additional German Abstract is needed.
|
||||||
|
\newcommand{\includeabstract}{
|
||||||
|
\ifcurrentbaselanguage{English}{
|
||||||
|
% include English and German abstracts
|
||||||
|
\input{sections/abstract_en.tex}
|
||||||
|
\begin{otherlanguage}{ngerman}
|
||||||
|
\input{sections/abstract_de.tex}
|
||||||
|
\end{otherlanguage}
|
||||||
|
}{
|
||||||
|
% include only German abstract
|
||||||
|
\include{sections/abstract_de}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
%% ------------
|
||||||
|
%% | Packages |
|
||||||
|
%% ------------
|
||||||
|
|
||||||
|
% draft mode
|
||||||
|
\RequirePackage{ifdraft}
|
||||||
|
\RequirePackage{ifthen}
|
||||||
|
|
||||||
|
% enumerate subsubsections
|
||||||
|
\setcounter{secnumdepth}{3}
|
||||||
|
|
||||||
|
% wallpaper for title page (KIT-Frame)
|
||||||
|
\RequirePackage{wallpaper}
|
||||||
|
|
||||||
|
% subimport of files
|
||||||
|
\RequirePackage{import}
|
||||||
|
|
||||||
|
% languages
|
||||||
|
\RequirePackage{babel}
|
||||||
|
|
||||||
|
% hyphenation for compound words
|
||||||
|
\RequirePackage[shortcuts]{extdash}
|
||||||
|
|
||||||
|
% nice tables
|
||||||
|
\RequirePackage{booktabs}
|
||||||
|
\RequirePackage{longtable}
|
||||||
|
\RequirePackage{array}
|
||||||
|
|
||||||
|
% show graphics in draft mode
|
||||||
|
\RequirePackage{graphicx}
|
||||||
|
\setkeys{Gin}{draft=false}
|
||||||
|
|
||||||
|
% appendix
|
||||||
|
\RequirePackage[toc,title,header]{appendix}
|
||||||
|
\noappendicestocpagenum
|
||||||
|
|
||||||
|
% PDF specific packages
|
||||||
|
\RequirePackage[hyphens]{url}
|
||||||
|
\RequirePackage[breaklinks,colorlinks=false]{hyperref}
|
||||||
|
\newcommand\setpdf{\hypersetup{%
|
||||||
|
pdftitle={\thethesistype},%
|
||||||
|
pdfsubject={\@title},%
|
||||||
|
pdfauthor={\@author},%
|
||||||
|
pdfborder={0 0 0},%
|
||||||
|
}%
|
||||||
|
\let\theauthor\@author
|
||||||
|
}
|
||||||
46
25_Outline/sections/00_introduction.tex
Normal file
46
25_Outline/sections/00_introduction.tex
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
\chapter{Introduction}
|
||||||
|
\label{ch:Introduction}
|
||||||
|
|
||||||
|
\section{Problem}
|
||||||
|
\label{sec:Introduction:Problem}
|
||||||
|
|
||||||
|
A group of people with different personal preferences wants to find a solution to a problem with high variability. Making decisions in the group comes with problems as a lack of communication leads to worse decision outcomes \cite{atasItemRecommendationUsing2017}. Group dynamics and biases can lead to suboptimal decisions \cite{kerrBiasJudgmentComparing1996}. Generally group decisions are complex and often the process that yields the decision result is unstructured, thereby not providing any reproducibility of the success. Groups have different power structures and usually individuals have different interests. Moreover finding solutions is a rather complex task and group decisions can suffer intransparency.
|
||||||
|
|
||||||
|
Examples of group recommendation decisions are:
|
||||||
|
\begin{itemize}
|
||||||
|
\item A companies truck fleet (e.g. driver, purchasing-manager, marketing manager)
|
||||||
|
\item A companies customer management software system (e.g. salesperson, human resource manager, accounting manager)
|
||||||
|
\item A public project to get a new area at a zoo (e.g. visitor, director, animal keeper)
|
||||||
|
\item Managing a forest (e.g. owner, environmental protection agency, consumer representative)
|
||||||
|
\item An existing company building and how it should be furnished (e.g. landlord, employee representative, CEO)
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
These examples are different from an ordinary group decision in the sense that the components the solution is build from are standardised but a solution is highly individual because of high variability. The solution space therefore is rather large.
|
||||||
|
|
||||||
|
\section{Idea}
|
||||||
|
\label{sec:Introduction:Idea}
|
||||||
|
|
||||||
|
To support groups in their decision making product configuration can be used. It allows to accurately map constraints and dependencies in complex problems and to map the solution space. Using a group recommender a group is supported in their configuration decisions. The goal is to show that these approaches can help a group with the configuration task presented by the usage of a configurator and to better process individual preferences than a human can.
|
||||||
|
|
||||||
|
|
||||||
|
There does not exists much research on recommendation for group configuration, however it is comprised of two different areas of research, recommenders for groups and recommenders for configuration.
|
||||||
|
The existing literature on recommenders for groups is extensive with many different approaches and domains \cite{delicResearchMethodsGroup2016, chenInterfaceInteractionDesign2011, atasItemRecommendationUsing2017, jamesonRecommendationGroups2007, chenEmpatheticonsDesigningEmotion2014, liuCGSPAComprehensiveGroup2019}. \citeauthor{felfernigGroupRecommenderSystems2018} give an overview about basic approaches \cite{felfernigGroupRecommenderSystems2018}.
|
||||||
|
In the area of product configuration research about recommender systems is undertaken as well \cite{pereiraFeatureBasedPersonalizedRecommender2016, scholzConfigurationbasedRecommenderSystem2017, scholzEffectsDecisionSpace2017}.
|
||||||
|
Group configuration is a more specialized sub field of configuration therefore less attention has been directed towards it and because of that there has not been much research on recommenders that are for group recommendation in a configuration setting.
|
||||||
|
|
||||||
|
\section{Benefits}
|
||||||
|
\label{sec:Introduction:Benefits}
|
||||||
|
|
||||||
|
The benefits of this approach are, that the need for a group to communicate directly is reduced. Each user gives their own preferences and the group will get a recommendation based on that. This allows to reduce problems arising in groups decisions like lack of communication and bias in groups. Additionally this shows the viability of combining group recommendations and configuration approaches.
|
||||||
|
|
||||||
|
\section{Action}
|
||||||
|
\label{sec:Introduction:Action}
|
||||||
|
|
||||||
|
As resulting action in this thesis a prototype will be designed, implemented and evaluated that achieves the following objectives.
|
||||||
|
\begin{itemize}
|
||||||
|
\item A system should give recommendation for the group using a scoring function that takes into account preferences of group members and the current state of the situation.
|
||||||
|
\item Recommendations should allow different scoring functions.
|
||||||
|
\item Recommendations should always be valid options.
|
||||||
|
\item The system should consider all preferences of individuals in a group and find a solution that most people of the group are happy with.
|
||||||
|
\end{itemize}
|
||||||
|
The results are communicated through this thesis. Thereby adhering to the research method of design science research \cite{peffersDesignScienceResearch2007}.
|
||||||
223
25_Outline/sections/20_foundations.tex
Normal file
223
25_Outline/sections/20_foundations.tex
Normal file
@@ -0,0 +1,223 @@
|
|||||||
|
\chapter{Foundations}
|
||||||
|
\label{ch:Foundations}
|
||||||
|
|
||||||
|
\section{Product Configuration}
|
||||||
|
\label{sec:Foundations:ProductConfiguration}
|
||||||
|
|
||||||
|
Product configuration is a process consisting of a series of decision tasks whereby a product is constructed of components which interact with each other. During a configuration process no new components are created. Their interplay and specification is defined beforehand \cite[~ pp. 42, 43]{sabinProductConfigurationFrameworksa1998}. This section defines product configuration analogous to \citeauthor{felfernigOpenConfiguration2014} \cite{felfernigOpenConfiguration2014}.
|
||||||
|
|
||||||
|
Formally a configuration problem can be specified as a \emph{constraint satisfaction problem (CSP)} \cite{tsangFoundationsConstraintSatisfaction1993} as
|
||||||
|
\begin{equation} \label{eq:Foundations:ProductConfiguration:ConstraintSatisfactionProblem}
|
||||||
|
CSP(V,\mathfrak{D},C),
|
||||||
|
\end{equation}
|
||||||
|
where we have a set of \emph{variables} $V$ (which in this thesis will also be referred to as \emph{features}) with
|
||||||
|
\begin{equation} \label{eq:Foundations:ProductConfiguration:Variables}
|
||||||
|
V = \{v_1, \dotsc, v_m\},
|
||||||
|
\end{equation}
|
||||||
|
a \emph{domain mapping} $\mathfrak{D}$ that maps variable to their corresponding domain values $D$ (which in this thesis will be also referred to as \emph{characteristics}) i.e. the values that can be assigned to each variable
|
||||||
|
\begin{equation}\label{eq:Foundations:ProductConfiguration:DomainMapping}
|
||||||
|
\mathfrak{D} : V \to D; x \mapsto \mathfrak{D}(x) \qquad where \ D = \{d_1, \dotsc, d_o\},
|
||||||
|
\end{equation}
|
||||||
|
and \emph{constraints} $C$ that limit the solution space with
|
||||||
|
\begin{equation}\label{eq:Foundations:ProductConfiguration:Constraints}
|
||||||
|
C = \{c_1, \cdots, c_k\}.
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
\subsection{Configuration State}
|
||||||
|
|
||||||
|
We will define a \emph{configuration} $S$ as a tuple of variables (\autoref{eq:Foundations:ProductConfiguration:Variables}) and their corresponding domain value with
|
||||||
|
\begin{equation} \label{eq:Foundations:ProductConfiguration:ConfigurationState}
|
||||||
|
S = \{ (v_i,\ d) \ |\ v_i \in V \ \land \ d \in \mathfrak{D}(i),\ i=1,\dotsc,m \}.
|
||||||
|
\end{equation}
|
||||||
|
Essentially it is a set of variables and assigned values.
|
||||||
|
|
||||||
|
\subsection{Finished Configuration}
|
||||||
|
To define a \emph{finished configuration} we first need to define what a valid configuration is. Therefore we define $is\_valid$ as
|
||||||
|
\begin{equation} \label{eq:Foundations:ProductConfiguration:IsValid}
|
||||||
|
is\_valid : S \to \{true, false\}; x \mapsto
|
||||||
|
\begin{cases}
|
||||||
|
true, & S \in solution\_space \\
|
||||||
|
false, & \text{otherwise}
|
||||||
|
\end{cases},
|
||||||
|
\end{equation}
|
||||||
|
with $solution\_space$ being the solution space of the corresponding constraint satisfaction problem. A \emph{finished configuration} $S_F$ is a configuration that contains all variables and is a valid configuration:
|
||||||
|
\begin{equation} \label{eq:Foundations:ProductConfiguration:FinishedConfiguration}
|
||||||
|
S_F \subset S,\ where \ \forall v_i \in V (\exists (v_i, d) \in S_F : d \in \mathfrak{D}(i)) \land is\_valid(S_F).
|
||||||
|
\end{equation}
|
||||||
|
In practice a finished configuration of a product (or solution) is something that is ready to be produced. For example if we are configuring a car, this means that the car could be produced in the specified way that is given by the finished configuration.
|
||||||
|
|
||||||
|
|
||||||
|
\section{Group-Based Product Configuration}
|
||||||
|
\label{sec:Foundations:GroupBasedProductConfiguration}
|
||||||
|
|
||||||
|
Instead of a single person configuring a product, a group of people is configuring one product which can be useful in multi-stakeholder decisions. This setting needs mechanisms for describing the preferences of multiple people. Therefore we will add to our definitions, a set of users $U$ with
|
||||||
|
\begin{equation}\label{eq:Foundations:ProductConfiguration:Users}
|
||||||
|
U = \{1, \dotsc, n\},
|
||||||
|
\end{equation}
|
||||||
|
a users \emph{utility function} that maps a domain value to a utility value and is only known to the user
|
||||||
|
\begin{equation}
|
||||||
|
\begin{split}
|
||||||
|
u_i(d_j), \qquad \text{where}\ & d_j \in \mathfrak{D}(j),\\
|
||||||
|
& 1 <= j <= m, \\
|
||||||
|
& 1 <= i <= n .
|
||||||
|
\end{split}
|
||||||
|
\end{equation}
|
||||||
|
\citeauthor{raabKollaborativeProduktkonfigurationEchtzeit2019}'s approach, which this thesis extends, is to treat the group configuration the same as one shared configuration and to sync the selection of attributes across clients \cite{raabKollaborativeProduktkonfigurationEchtzeit2019}.
|
||||||
|
|
||||||
|
\section{Recommender System}
|
||||||
|
\label{sec:Foundations:RecommenderSystem}
|
||||||
|
|
||||||
|
A recommender system is a system that gives individualized recommendations to users to guide them through a large space of objects \cite[~ p. 331]{burkeHybridRecommenderSystems2002}.
|
||||||
|
|
||||||
|
There are several approaches to recommender systems presented in \cite{felfernigGroupRecommenderSystems2018}, these are: collaborative filtering, constraint-based recommendation, content-based filtering and hybrid recommendation.
|
||||||
|
|
||||||
|
\begin{table}
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{ l | c | c | c | c | c }
|
||||||
|
& The Matrix & Titanic & Die Hard & Forest Gump & Wall-E \\ \hline
|
||||||
|
John & 5 & 1 & & 2 & 2 \\
|
||||||
|
Lucy & 1 & 5 & 2 & 5 & 5 \\
|
||||||
|
Eric & 2 & ? & 3 & 5 & 4 \\
|
||||||
|
Diane & 4 & 3 & 5 & 3 & \\
|
||||||
|
\end{tabular}
|
||||||
|
\caption{An example showing users ratings for movies by \citeauthor{ningComprehensiveSurveyNeighborhoodBased2015} \cite{ningComprehensiveSurveyNeighborhoodBased2015}.}
|
||||||
|
|
||||||
|
\label{tab:Foundations:RecommenderSystem:MoviePreferences}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\subsection{Collaborative Filtering}
|
||||||
|
In collaborative filtering a users rating for unknown items is predicted by finding similar users who have rated it. Their rating is used as prediction
|
||||||
|
\cite[~ pp. 7, 8]{felfernigDecisionTasksBasic2018}.
|
||||||
|
|
||||||
|
Collaborative Filtering can not only be done using users, it can also be item-based. Hereby the similarity between items is used for a recommendation and not similar users \cite{ricciRecommenderSystemsHandbook2015}. In the context of configuration the similarity to other historic configurations can be used which makes it an item based approach.
|
||||||
|
|
||||||
|
\autoref{tab:Foundations:RecommenderSystem:MoviePreferences} shows an example rating matrix. A simple user-based way to calculate a rating would be to use a k-nearest neighbour (kNN) algorithm and then take the average of those ratings. Using this method with $k := 2$ and euclidean distance our closest neighbours are \textit{Lucy} and \textit{Diane} therefore giving us a predicted rating of $4$. If we use an item based approach instead, we will try to find similar items based on the users rating. An example of similar items here would be \textit{Forest Gump} and \textit{Wall-E} as John and Lucy each have given them the sane rating and Eric's rating is off by one. Using again kNN with $k := 2$ we find that \textit{Forest Gump} and \textit{Wall-E} are the most similar to \textit{Titanic} thereby having a predicted rating of $4.5$.
|
||||||
|
However this simple similarity and prediction function does not take into account different distances. For example Lucy's ratings are more similar compared to Eric's than Diane's but Diane's and Lucy's rating is valued the same amount.
|
||||||
|
|
||||||
|
\subsection{Constraint-Based Recommendation}
|
||||||
|
Hereby filter rules are defined which filter out items that don't fulfil specified rules. A user models their requirements with these rules and thereby gets a list of recommended items. This approach requires deep knowledge about a product because it needs a detailed description of features \cite[~ p. 12]{felfernigDecisionTasksBasic2018}.
|
||||||
|
|
||||||
|
Our movie example (see \autoref{tab:Foundations:RecommenderSystem:MoviePreferences}) requires additional information for example about plot structure, pacing, length and other attributes of the movie. Now the user could enter filtering criteria, e.g. that the movie should be no longer than 120 minutes, be categorized as action or thriller and have a fast pacing. The system will only recommend movies that fit into these categories.
|
||||||
|
|
||||||
|
\subsection{Content-Based Filtering}
|
||||||
|
For the content-based filtering approach, items and users are assigned to categories. Based on consumption and rating of items a user will have implicit ratings for categories. Predictions are now made based on a categories of the new item \cite[~ pp. 10, 11]{felfernigDecisionTasksBasic2018}.
|
||||||
|
|
||||||
|
Using our example from \autoref{tab:Foundations:RecommenderSystem:MoviePreferences} and using an additional category matrix (see \autoref{tab:Foundations:RecommenderSystem:ContentBasedFilteringCategories}) we can derive a rating matrix per category (using the average rating of the user of each movie contained in this category). The result can be seen in \autoref{tab:Foundations:RecommenderSystem:ContentBasedFilteringProfiles}. To predict Eric's rating of Titanic we now can use the categories of \textit{Titanic} and average out Eric's implicit rating per category. Titanic is only in the category romance and as Eric's rating of \textit{Forest Gump} is $5$ the prediction is a rating of $5$. Categories don't have to be the genre, they could be any kind of data about a movie.
|
||||||
|
|
||||||
|
\begin{table}
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{ l | c | c | c | c | c }
|
||||||
|
& The Matrix & Titanic & Die Hard & Forest Gump & Wall-E \\ \hline
|
||||||
|
Action & x & & x & & \\
|
||||||
|
Sci-Fi & x & & & & \\
|
||||||
|
Thriller & & & x & & \\
|
||||||
|
Romance & & x & & x & \\
|
||||||
|
Family & & & & x & x \\
|
||||||
|
\end{tabular}
|
||||||
|
\caption{Showing example categories for movies in \autoref{tab:Foundations:RecommenderSystem:MoviePreferences}.}
|
||||||
|
|
||||||
|
\label{tab:Foundations:RecommenderSystem:ContentBasedFilteringCategories}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\begin{table}
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{ l | c | c | c | c | c }
|
||||||
|
& Action & Sci-Fi & Thriller & Romance & Family \\ \hline
|
||||||
|
John & 5 & 5 & & 1.5 & 2 \\
|
||||||
|
Lucy & 1.5 & 1 & 2 & 5 & 5 \\
|
||||||
|
Eric & 2.5 & 2 & 3 & 5 & 4.5 \\
|
||||||
|
Diane & 4.5 & 4 & 5 & 3 & 3 \\
|
||||||
|
\end{tabular}
|
||||||
|
\caption{User profiles generated from categories and rating from \autoref{tab:Foundations:RecommenderSystem:MoviePreferences} and \autoref{tab:Foundations:RecommenderSystem:ContentBasedFilteringCategories}.}
|
||||||
|
|
||||||
|
\label{tab:Foundations:RecommenderSystem:ContentBasedFilteringProfiles}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\subsubsection{Advantages over Collaborative Filtering}
|
||||||
|
\begin{itemize}
|
||||||
|
\item No cold start problem for items
|
||||||
|
\item No grey sheep problem as not dependent on similar groups having existed before.
|
||||||
|
\item Domain knowledge is existent
|
||||||
|
\item No issues with data sparsity as item description is given by product structure
|
||||||
|
\item No reliance on preferences that would result in a comparison space that is too large
|
||||||
|
\item No dependence of historic group preference accuracy
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\subsubsection{Advantages over Constrained-Based Recommendation}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Configuration state does not cause absence of recommendations
|
||||||
|
\item Expendable to also support constraints
|
||||||
|
\item No need to handle inconsistencies explicitly
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{table}
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabularx}{\columnwidth}{X|X|X}
|
||||||
|
& advantages & disadvantages \\
|
||||||
|
\hline
|
||||||
|
Collaborative Filtering
|
||||||
|
& \begin{itemize}
|
||||||
|
\item Serendipity of results
|
||||||
|
\item Automatic learning of market segments
|
||||||
|
\item No domain knowledge required
|
||||||
|
\end{itemize}
|
||||||
|
& \begin{itemize}
|
||||||
|
\item Cold start problem for users and items
|
||||||
|
\item Grey sheep problem
|
||||||
|
\item Quality based on rating quality
|
||||||
|
\item Data sparsity
|
||||||
|
\item Privacy not guaranteed
|
||||||
|
\end{itemize} \\
|
||||||
|
\hline
|
||||||
|
Content-Based Filtering
|
||||||
|
& \begin{itemize}
|
||||||
|
\item No community required
|
||||||
|
\item User independent
|
||||||
|
\item Transparent
|
||||||
|
\item No item cold start
|
||||||
|
\item Simplicity
|
||||||
|
\item Robust
|
||||||
|
\item Stable to constant influx of new users
|
||||||
|
\end{itemize}
|
||||||
|
& \begin{itemize}
|
||||||
|
\item Overspecialisation
|
||||||
|
\item No serendipity
|
||||||
|
\item User cold start problem
|
||||||
|
\item Requires domain knowledge
|
||||||
|
\end{itemize} \\
|
||||||
|
\hline
|
||||||
|
Constraint-Based Recommendation
|
||||||
|
& \begin{itemize}
|
||||||
|
\item Transparent
|
||||||
|
\item Good for non discrete values
|
||||||
|
\end{itemize}
|
||||||
|
& \begin{itemize}
|
||||||
|
\item Inconsistent constraints
|
||||||
|
\item No results
|
||||||
|
\end{itemize} \\
|
||||||
|
\end{tabularx}
|
||||||
|
\caption{A description of the advantages and disadvantages of common recommendation techniques \cite{richthammerSituationAwarenessRecommender2018, shokeenStudyFeaturesSocial2019,hahslerRecommenderlabFrameworkDeveloping2015, aminiDiscoveringImpactKnowledge2011, suSurveyCollaborativeFiltering2009}}
|
||||||
|
\label{tab:Foundations:RecommenderComparison}
|
||||||
|
\end{center}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\subsection{Hybrid Recommendation}
|
||||||
|
A hybrid recommender combines different recommendation approaches to use the strengths of each individual one and to reduce effects of weaknesses \cite{burkeHybridRecommenderSystems2002}.
|
||||||
|
|
||||||
|
\section{Group Recommender System}
|
||||||
|
\label{sec:Foundations:GroupRecommenderSystem}
|
||||||
|
|
||||||
|
A group recommender system is a recommender system aimed at making recommendations for a group instead of a single user. To make recommendations group members preferences have to be aggregated. This can be done by either aggregating single user recommendations or by merging preferences of each user into a group preference model. Based on the resulting preference model recommendation strategies as described in \autoref{sec:Foundations:RecommenderSystem} can be used to generate recommendations \cite{jamesonRecommendationGroups2007}.
|
||||||
|
|
||||||
|
For a group recommender system additional definitions are needed. The attitude of a user is represented by their preferences $P$ which is directly related to the utility a user has from a domain value being present in the configuration. Let
|
||||||
|
\begin{gather} \label{tab:Foundations:GroupRecommenderSystem:Preferences}
|
||||||
|
P = \{ P_1, \dotsc, P_n\},\ \text{where} \\
|
||||||
|
P_i = \{(d,\ u_i(d)) \ | \ \forall d \in \mathfrak{D}(i),\ i=1,\dotsc,m \} \notag
|
||||||
|
\end{gather}
|
||||||
|
|
||||||
|
|
||||||
|
\FloatBarrier
|
||||||
|
|
||||||
|
|
||||||
37
25_Outline/sections/30_related_work.tex
Normal file
37
25_Outline/sections/30_related_work.tex
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
\chapter{Related Work}
|
||||||
|
\label{ch:Related_Work}
|
||||||
|
|
||||||
|
\section{Group Recommender Systems}
|
||||||
|
\label{sec:Related_Work:GroupRecommender}
|
||||||
|
|
||||||
|
\begin{description}[style=unboxed, leftmargin=0cm, font=\normalfont]
|
||||||
|
\item[\citeauthor{choudharyMulticriteriaGroupRecommender2020}] propose a multi-criteria group recommender system \cite{choudharyMulticriteriaGroupRecommender2020}. An analytical hierarchy process is used to learn priorities for film features like story, action, direction and to then make a number of best recommendations for a group of users. Their approach works well for film selection and they observe that it is easier to make recommendations for homogenous groups than for random groups. Also small groups receive better recommendations compared to large ones.
|
||||||
|
|
||||||
|
\item[\citeauthor{chenInterfaceInteractionDesign2011}] looks at interface and interaction designs that supports the overall group and does not only consider each user individually. Chen designs a music recommendation system \emph{GroupFun} with a focus on groups that tries to enhance mutual awareness and transparency. \citeauthor{chenInterfaceInteractionDesign2011}'s assessment is that this work is still in a preliminary stage\cite{chenInterfaceInteractionDesign2011}. Further work in that area was conducted by \citeauthor{chenEmpatheticonsDesigningEmotion2014} looking at emotional awareness in groups and how that can be visualised in a user interface \cite{chenEmpatheticonsDesigningEmotion2014}.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
\section{Group-Based Configuration}
|
||||||
|
\label{sec:Related_Work:GroupBasedConfiguration}
|
||||||
|
|
||||||
|
\begin{description}[style=unboxed, leftmargin=0cm, font=\normalfont]
|
||||||
|
\item[\citeauthor{raabKollaborativeProduktkonfigurationEchtzeit2019}] builds a collaborative configurator based on the CAS Merlin Configurator. Here groups of people are able to simultaneously configure a product \cite{raabKollaborativeProduktkonfigurationEchtzeit2019}. If there are any conflicts, a conflict resolution process is started. However the prototype only allows a majority voting approach and does not provide any further group decision support. Also this process only starts upon the selection of an invalid state that gives alternatives.
|
||||||
|
|
||||||
|
\item[\citeauthor{felferningGroupBasedConfiguration2016}] introduce basic definitions of group based configuration task, show what conflicts can occur, how to deal with inconsistencies in preferences among group members and how to integrate different decision heuristics into this process \cite{felferningGroupBasedConfiguration2016}.
|
||||||
|
|
||||||
|
\item[\citeauthor{velasquez-guevaraMultiSPLOTSupportingMultiuser2018}] implement a web based simultaneous group-based configuration system that uses constraint programming \cite{velasquez-guevaraMultiSPLOTSupportingMultiuser2018}. Hereby each user configures according to their own preferences and the system proposes a configuration according to different strategies. These strategies are maximization of selections (which means finding the solution with the largest number of features selected), minimizing conflicting selections (which means to minimize the inclusion of features that have conflicts) and to prioritize decisions from some users.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
\section{Recommender Systems for Configuration}
|
||||||
|
\label{sec:Related_Work:RecommenderSystemsForConfiguration}
|
||||||
|
\begin{description}[style=unboxed, leftmargin=0cm, font=\normalfont]
|
||||||
|
\item[\citeauthor{rubinshteynEntwicklungHybridenRecommender2018}] looks at different approaches to recommendation and implements a prototype with CAS Merlin Configurator which uses a hybrid recommender system \cite{rubinshteynEntwicklungHybridenRecommender2018}. His prototype combines constraint-based filtering with collaborative filtering and achieves better results in terms of precision than non-hybrid systems using collaborative filtering and constraint-based recommendation. In terms of recall his hybrid does not surpass the high numbers of constraint-based recommendation but improves upon collaborative-filtering.
|
||||||
|
|
||||||
|
\item [\citeauthor{benzMoeglichkeitenIntelligenterEmpfehlungssysteme2017}] uses a constraint based recommender that uses fuzzy logic to relax constraints and thereby reducing the amount of times where the recommender is unable to make recommendations \cite{benzMoeglichkeitenIntelligenterEmpfehlungssysteme2017}. With his approach a product manager has direct influence on the recommendations. Rules for recommendations hereby are not automatically learned but only manually created and relate to predefined user interest categories.
|
||||||
|
|
||||||
|
\item [\citeauthor{ullmannEntwurfUndUmsetzung2017}] implements a recommendation engine that is able to estimate customer budgets, a k-nearest neighbour classifier for finding a base configuration and non-negative matrix factorization combined with nearest neighbour to find configurations for specific users \cite{ullmannEntwurfUndUmsetzung2017}. \par
|
||||||
|
|
||||||
|
\item[\citeauthor{wetzelPersonalisierterUndLernender2017}] combines collaborative filtering and click-stream analysis \cite{wetzelPersonalisierterUndLernender2017}. For collaborative filtering he implements three filtering algorithms: k-nearest neighbour, weighted majority voting and non-negative matrix factorization. Collaborative filtering is used to find configurations that are similar to the current configuration. Click-stream analysis is done by using n-grams and the Smith-Waterman algorithm. \citeauthor{wetzelPersonalisierterUndLernender2017} also tries to use click-stream data in combination with Markov chains to give recommendations on how configuration options should be ordered in a configuration form but click-streams do not yield any improvements in terms of accuracy and recall.
|
||||||
|
|
||||||
|
\item[\citeauthor{falknerRecommendationTechnologiesConfigurable2011}] provide an overview of recommendation approaches for configuration to improve usability of configuration systems \cite{falknerRecommendationTechnologiesConfigurable2011}. They look at feature recommender to recommend which features in a configuration would be useful to have and at value recommender for these features. Additionally they discuss approaches for ranking and recommending explanations for inconsistencies between customers requirements and product rules however they do not provide any recommendations and point towards further needed research.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
169
25_Outline/sections/40_concept.tex
Normal file
169
25_Outline/sections/40_concept.tex
Normal file
@@ -0,0 +1,169 @@
|
|||||||
|
\chapter{Concept}
|
||||||
|
\label{ch:Concept}
|
||||||
|
|
||||||
|
\section{User Interaction with the System}
|
||||||
|
\label{sec:Concept:UserSystemInteraction}
|
||||||
|
|
||||||
|
The system has one main way to be used as defined in \autoref{tab:Concept:MainUseCase}. This process is also visualized in \autoref{fig:Concept:ConfigurationProcess}.
|
||||||
|
|
||||||
|
\begin{figure}
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\textwidth]{./figures/bpmn_configuration_process_with_continious_recommendation.pdf}
|
||||||
|
\caption{A BPMN diagram of the configuration process.}
|
||||||
|
\label{fig:Concept:ConfigurationProcess}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{table}
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabularx}{\columnwidth}{l|X}
|
||||||
|
\multicolumn{2}{c}{Main System Usage} \\
|
||||||
|
\hline
|
||||||
|
Preconditions &
|
||||||
|
\begin{itemize}
|
||||||
|
\item The configurator is opened with the same session on each of the group member's machines
|
||||||
|
\item The configuration is in an unfinished state (this state is a consensus state)
|
||||||
|
\end{itemize} \\
|
||||||
|
\hline
|
||||||
|
Postcondition &
|
||||||
|
\begin{itemize}
|
||||||
|
\item All users have entered their preferences for each attribute explicitly.
|
||||||
|
\item The system gives a recommendation based on all preferences and the unfinished configuration state
|
||||||
|
\end{itemize} \\
|
||||||
|
\hline
|
||||||
|
Basic Flow &
|
||||||
|
\begin{enumerate}
|
||||||
|
\item A user indicates a preference for an attribute
|
||||||
|
\item The system generates a recommendation (based on preferences and configuration status)
|
||||||
|
\item If not all users have given their preferences go to step 1.
|
||||||
|
\end{enumerate} \\
|
||||||
|
\hline
|
||||||
|
\end{tabularx}
|
||||||
|
\caption{A description of the main way users will interact with the system}
|
||||||
|
\label{tab:Concept:MainUseCase}
|
||||||
|
\end{center}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\section{Case Study}
|
||||||
|
\label{sec:Concept:CaseStudy}
|
||||||
|
|
||||||
|
The case study used in this thesis is a simplified version from forestry.
|
||||||
|
The used characteristics and attributes are shown in \autoref{fig:Concept:ForestExample}. Additionally as example are given preferences, a configuration state and a finished configuration.
|
||||||
|
|
||||||
|
\begin{figure}
|
||||||
|
\begin{mdframed}[frametitle={Example for Forest Use Case}]
|
||||||
|
In this example we have a small group of users. The use case is a piece of forest and variables are for example harvesting activity, which trees to grow and accessibility for people.
|
||||||
|
\begin{align}
|
||||||
|
\begin{split}
|
||||||
|
V = \{ & \textit{Heimisch}, \textit{Klimaresilient}, \textit{Verwertbar}, \textit{Ernteaufwand}, \\
|
||||||
|
& \textit{Menge}, \textit{Preis}, \textit{Walderfahrung} \},
|
||||||
|
\end{split} \notag \\
|
||||||
|
\mathfrak{D}(\textit{Heimisch}) = \{ & \text{Gering}, \text{Mittel}, \text{Hoch}\}, \notag \\
|
||||||
|
\mathfrak{D}(\textit{Klimaresilient}) = \{ & \text{Gering}, \text{Mittel}, \text{Hoch}\}, \notag \\
|
||||||
|
\mathfrak{D}(\textit{Verwertbar}) = \{ & \text{Gering}, \text{Mittel}, \text{Hoch}\}, \notag \\
|
||||||
|
\mathfrak{D}(\textit{Ernteaufwand}) = \{ & \text{Motormanuel}, \text{Harvester}, \text{Vollautomatisch}\}, \notag \\
|
||||||
|
\mathfrak{D}(\textit{Menge}) = \{ & \text{Keine}, \text{Gering}, \text{Hoch}\}, \notag \\
|
||||||
|
\mathfrak{D}(\textit{Preis}) = \{ & \text{Gering}, \text{Mittel}, \text{Hoch}\}, \notag\\
|
||||||
|
\mathfrak{D}(\textit{Walderfahrung}) = \{ & \text{Gering}, \text{Mittel}, \text{Intensiv}\},\notag \\
|
||||||
|
U = \{ & 1,2\} \notag\\
|
||||||
|
P = \{ & P_1, P_2\} \notag\\
|
||||||
|
\begin{split}
|
||||||
|
P_1 = \{ & (\text{Motormanuel}, 0.5), (\text{Harvester}, -0.3) \} \\
|
||||||
|
& \cup \{ (d,0)\ |\ d \in \mathfrak{D}(i),\ i \in V,\ i \notin \{ \text{Motormanuel}, \text{Harvester}\} \ \} \
|
||||||
|
\end{split} \notag \\
|
||||||
|
P_2 = \{ & (d,0)\ |\ d \in \mathfrak{D}(i),\ i \in V \} \notag \\
|
||||||
|
S = \{ & (\textit{Heimisch}, \text{Gering}), (\textit{Menge}, \text{Gering}) \} \notag \\
|
||||||
|
\begin{split}
|
||||||
|
S_F = \{ & (\textit{Heimisch}, \text{Gering}), (\textit{Klimaresilient}, \text{Gering}), (\textit{Verwertbar}, \text{Gering}), \\
|
||||||
|
& (\textit{Ernteaufwand}, \text{Motormanuel}),
|
||||||
|
(\textit{Menge}, \text{Keine}), (\textit{Preis}, \text{Hoch}),\\
|
||||||
|
& (\textit{Walderfahrung}, \text{Gering}) \}
|
||||||
|
\end{split} \notag
|
||||||
|
\end{align}
|
||||||
|
\end{mdframed}
|
||||||
|
\caption{An example of a forest use case that includes two people.}
|
||||||
|
\label{fig:Concept:ForestExample}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Solution Generation}
|
||||||
|
\label{sec:Concept:SolutionGeneration}
|
||||||
|
|
||||||
|
Given an unfinished configuration and preferences of all group members, rate a finished configuration on how well it reflects the configuration state and preferences. This Use this to choose the best finished configuration out of a list to recommend.
|
||||||
|
|
||||||
|
\subsection{Generating a Recommendation}
|
||||||
|
|
||||||
|
Hereby the idea is there is a database of complete configurations (possibly historic from other groups or automatically generated or both).
|
||||||
|
Now the recommendation procedure looks as follows:
|
||||||
|
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Assign a score to each stored configuration according to $$score_{group}(\overline{configurationState},\ \overline{preferences}, \ configurationInStore)$$
|
||||||
|
\item Optional: Filter out configurations that have a score below a certain value using a different scoring function. For example filter out configurations that cause a certain level of misery.
|
||||||
|
\item Chose the configuration with the highest score as recommendation.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\begin{samepage}
|
||||||
|
\subsection{Scoring Function}
|
||||||
|
\label{subsec:Concept:SolutionGeneration:ScoringFunction}
|
||||||
|
\emph{Group configuration scoring function} includes preferences and current configuration state. This function gives a score for a finished configuration (while using the current configuration state and all user preferences):
|
||||||
|
\begin{equation}
|
||||||
|
score_{group}: S \times P \times S_F \to \mathbb{R}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
An example group configuration scoring function is $score_{group}$ with
|
||||||
|
|
||||||
|
\begin{equation}
|
||||||
|
\notag \alpha \in \mathbb{R}, \qquad changed(d,\overline{s}, s) =
|
||||||
|
\begin{cases}
|
||||||
|
1, & d \in \overline{s} \land d \notin s \\
|
||||||
|
0, & \text{otherwise}
|
||||||
|
\end{cases}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
\begin{equation}
|
||||||
|
\begin{split}
|
||||||
|
score_{group}(\overline{s},\ \overline{p},\ s)
|
||||||
|
& = score(\overline{p},\ s) - penalty(\overline{s},\ s) \\
|
||||||
|
& = score(\overline{p},\ s) - \sum_{d \in \overline{s}} changed(d,\overline{s}, s) \cdot \alpha
|
||||||
|
\end{split}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
This thesis will use multiple scoring functions. Among those are ones for least misery, average and multiplicative. Average and multiplicative yield good results among the studies presented by \citeauthor{Masthoff2015}. Strategies can also be combined, one example here is average without misery \cite{Masthoff2015}.
|
||||||
|
\end{samepage}
|
||||||
|
|
||||||
|
\subsubsection{Preference Scoring}
|
||||||
|
|
||||||
|
All of the aggregation functions mentioned in \autoref{subsec:Concept:SolutionGeneration:ScoringFunction} use one preference per user per product. Therefore to use them in as is a score for the whole configuration per user has to be calculated. We propose to use the difference from the selected feature compared to the average rating of all characteristics. This approach includes all preferences of a user meaning a preference is also seen relative to others.
|
||||||
|
|
||||||
|
As an example we could have feature
|
||||||
|
\begin{equation}
|
||||||
|
F = \text{ClimateResilientTrees},
|
||||||
|
\end{equation} with characteristics
|
||||||
|
\begin{equation}
|
||||||
|
\mathfrak{D}(F)= \{\text{low}, \text{medium}, \text{high}\},
|
||||||
|
\end{equation}
|
||||||
|
preferences
|
||||||
|
\begin{equation}
|
||||||
|
P_1 = \{(\text{low}, 0), (\text{medium},0.6), (\text{high},0.9) \}
|
||||||
|
\end{equation}
|
||||||
|
and the configuration we want to rate
|
||||||
|
\begin{equation}
|
||||||
|
S_F = \{(\text{ClimateResilientTrees}, \text{high})\}.
|
||||||
|
\end{equation}
|
||||||
|
The average rating for the feature is $F = 0.5$. Therefore the score given by a user $1$ is $0.9-0.5 = 0.4$.
|
||||||
|
A second user with preferences
|
||||||
|
\begin{equation}
|
||||||
|
P_2 = \{(\text{low}, 0), (\text{medium},0), (\text{high},0.9) \}
|
||||||
|
\end{equation}
|
||||||
|
on the other hand results in a feature score of $0.9-0.3=0.6$. For this user characteristic \emph{high} is of higher importance.
|
||||||
|
|
||||||
|
As we would like to keep our scores as percentages and not in the interval $[-1,1]$ a normalisation is applied by adding one and dividing by two. Therefore our respective scores are $0.7$ for user one and $0.95$ for user two. A configuration usually consists of more than one feature therefore we take the average rating over all features to get the score one user gives to a configuration. Based on that score the in \autoref{subsec:Concept:SolutionGeneration:ScoringFunction} mentioned aggregation functions can be used.
|
||||||
|
|
||||||
|
\subsubsection{Cofiguration Change Penalty}
|
||||||
|
|
||||||
|
In this thesis a penalty function is proposed which gives the percentage of characteristics that exist in the configuration that is to be rated. This value can be tuned to be more or less strict by potentiating. Thereby allowing more deviation or less deviation from the current configuration state. The penalty function is defined as
|
||||||
|
\begin{equation}
|
||||||
|
penalty_{proportion}(\overline{s},\ s) = \left(\frac{\sum_{d \in \overline{s}} changed(d,\overline{s}, s)}{|\overline{s}|}\right)^\alpha.
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
By including the current configuration into scoring the scoring function can take into account, changes that have been already implemented and therefore might be very costly to change.
|
||||||
|
|
||||||
55
25_Outline/sections/50_design_and_implementation.tex
Normal file
55
25_Outline/sections/50_design_and_implementation.tex
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
\chapter{Design and Implementation}
|
||||||
|
\label{ch:DesignImplementation}
|
||||||
|
|
||||||
|
|
||||||
|
\section{CAS Configurator Merlin}
|
||||||
|
\label{sec:DesignImplementation:ConfiguratorMerlin}
|
||||||
|
|
||||||
|
\autoref{fig:DesignImplementation:ConfiguratorMerlin} shows the architecture of CAS Configurator Merlin.
|
||||||
|
\begin{description}
|
||||||
|
\item[M.Core] provides the base of the configurator. It checks the configuration against all rules in the database, provides possible alternatives if a change invalidates other parts of a configuration. The system relies on a CSP solver for validation and suggestion of alternatives.
|
||||||
|
\item[M.Model] is the editor to create products and rules. These rules can then be uploaded to M.Core.
|
||||||
|
\item[M.Customer] is the customer facing component. It allows a customer to configure a product.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
\begin{figure}
|
||||||
|
\centering
|
||||||
|
\includegraphics{./figures/MerlinConfigurator.pdf}
|
||||||
|
\caption{Architecture of Configurator Merlin \cite[Fig. 4.1]{raabKollaborativeProduktkonfigurationEchtzeit2019}}
|
||||||
|
\label{fig:DesignImplementation:ConfiguratorMerlin}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\section{CAS Group-Configurator}
|
||||||
|
\label{sec:DesignImplementation:GroupConfigurator}
|
||||||
|
|
||||||
|
\citeauthor{raabKollaborativeProduktkonfigurationEchtzeit2019}'s extends CAS Merlin Configurator in his thesis to allow simultaneous configuration. The extended architecture is shown in \autoref{fig:DesignImplementation:CollaborativeConfiguratorMerlin}.
|
||||||
|
He only makes changes to M.Customer which is renamed to M.Collab-Customer and introduces a new component M.Collab.
|
||||||
|
|
||||||
|
\begin{description}
|
||||||
|
\item[M.Collab] is a node.js server application that communicates with M.Core via REST-API and with M.Collab-Customer via WebSocket. It sits in between M.Collab-Customer and M.Core and handles all processing regarding collaborative configuration.
|
||||||
|
\item[M.Collab-Customer] a modified version of M.Customer that does all communication via WebSocket and does communicate with M.Collab instead of M.Core.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
\begin{figure}
|
||||||
|
\centering
|
||||||
|
\includegraphics{./figures/MerlinCollaborativeConfigurator.pdf}
|
||||||
|
\caption{Architecture of Collaborative Configurator Merlin \cite[Fig. 4.3]{raabKollaborativeProduktkonfigurationEchtzeit2019}}
|
||||||
|
\label{fig:DesignImplementation:CollaborativeConfiguratorMerlin}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Extended Configurator}
|
||||||
|
\label{sec:DesignImplementation:ExtendedConfigurator}
|
||||||
|
|
||||||
|
Extending \citeauthor{raabKollaborativeProduktkonfigurationEchtzeit2019} work a module called M.Recommender is added. Its aim is to provide a recommendation server that holds all the data needed for recommendations. M.Collab and M.Collab-Customer have to be modified to allow taking in preferences and to show recommendations. The recommender engine is set up to be in a separate system which allows the easier replacement and the usage of different technologies. The extended architecture is shown in \autoref{fig:DesignImplementation:RecommenderForCollaborativeConfiguratorMerlin}.
|
||||||
|
|
||||||
|
\begin{description}
|
||||||
|
\item[M.Recommender] is a new system that will get queried from M.Collab for recommendations, when the configuration changes. M.Recommender will return recommendations which then can be presented to users by M.Collab-Customer.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
\begin{figure}
|
||||||
|
\centering
|
||||||
|
\includegraphics{./figures/MerlinCollabRecommender.pdf}
|
||||||
|
\caption{Architecture of Collaborative Configurator Merlin with an added recommender system.}
|
||||||
|
\label{fig:DesignImplementation:RecommenderForCollaborativeConfiguratorMerlin}
|
||||||
|
\end{figure}
|
||||||
89
25_Outline/sections/60_evaluation.tex
Normal file
89
25_Outline/sections/60_evaluation.tex
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
\chapter{Evaluation}
|
||||||
|
\label{ch:Evaluation}
|
||||||
|
|
||||||
|
In this chapter the prototype is evaluated in terms of its functionality and its properties.
|
||||||
|
|
||||||
|
We will generate all possible valid configurations for one use case i.e. generate all possible valid configurations for the forest use case.
|
||||||
|
|
||||||
|
Generate groups with preferences (explicit preferences) and configuration state (which would be for example the currently existing forest).
|
||||||
|
|
||||||
|
\section{Group Types During Evaluation}
|
||||||
|
\label{sec:Evaluation:GroupTypes}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Groups shall be generated with random preferences
|
||||||
|
\item With grouped preferences: people adhere more or less to one profile (Forest Owner, Athlete, Consumer, Environmentalist)
|
||||||
|
\item Group of only one profile type: rather homogenous group
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\section{Metrics}
|
||||||
|
For the evaluation metrics to evaluate by are needed.
|
||||||
|
|
||||||
|
\label{sec:Evaluation:Metrics}
|
||||||
|
|
||||||
|
\subsection{Random Individual}
|
||||||
|
When comparing a group to individual scores, a member of the group is randomly chosen. As metric of difference used metrics are MSE, RMSE and similar metrics.
|
||||||
|
% see: https://medium.com/@george.drakos62/how-to-select-the-right-evaluation-metric-for-machine-learning-models-part-1-regrression-metrics-3606e25beae0 or https://en.wikipedia.org/wiki/Error_metric
|
||||||
|
|
||||||
|
\subsection{Satisfaction}
|
||||||
|
As a metric on overall satisfaction within the group we propose a threshold metric that defines a user as satisfied if his score is above a threshold of 60\% and as unsatisfied with a score of less than 40\%. Now we can measure group satisfaction by amount of members being satisfied, neutral and unsatisfied.
|
||||||
|
|
||||||
|
\subsection{Group Score}
|
||||||
|
The group score metric is to simply take the score the recommender has given to a group. This score can be compared with other configurations' score.
|
||||||
|
|
||||||
|
|
||||||
|
\section{Questions to Answer During the Evaluation}
|
||||||
|
\label{sec:Evaluation:Questions}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Main question: How does the group decision differ from the decision of a single decision maker? (random individual)
|
||||||
|
\item How much impact does the configuration state have on the recommendation outcome? (random individual, satisfaction)
|
||||||
|
\item How many group members are satisfied by the group decision on average? (satisfaction)
|
||||||
|
\item Is the recommender fair, i.e. no user type is always worse off than others? (satisfaction)
|
||||||
|
\item How does the amount of stored finished configurations relate to recommendation quality? (Compare the recommended configuration to the best possible configuration in terms of score using MSE and similar and in terms of satisfaction and random individual)
|
||||||
|
\item How much higher is the score of the best configuration compared to average? (group score, satisfaction, random individual)
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\section{Generating Data}
|
||||||
|
\label{sec:Evaluation:GeneratingGroups}
|
||||||
|
|
||||||
|
For the forest use case, the idea is that there are multiple types of user profiles. Each group profile is represented by a neutral, negative or positive attitude to an attribute value. Now during data generation the attitude is converted to a preference using a normal distribution. \autoref{fig:Evaluation:DataGeneration} shows how we convert the user profile to preferences.
|
||||||
|
|
||||||
|
\pgfplotsset{height=5cm,width=\textwidth,compat=1.8}
|
||||||
|
\pgfmathdeclarefunction{gauss}{2}{%
|
||||||
|
\pgfmathparse{1/(#2*sqrt(2*pi))*exp(-((x-#1)^2)/(2*#2^2))}%
|
||||||
|
}
|
||||||
|
\begin{figure}
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\begin{axis}[
|
||||||
|
every axis plot post/.append style={
|
||||||
|
mark=none, domain=0:1, samples=50, smooth
|
||||||
|
},
|
||||||
|
axis x line*=bottom,
|
||||||
|
xmin=0,
|
||||||
|
xmax=1,
|
||||||
|
ymin=0.1,
|
||||||
|
xticklabel style={
|
||||||
|
/pgf/number format/precision=3,
|
||||||
|
},
|
||||||
|
xtick={0,0.25, 0.5, 0.75,1},
|
||||||
|
hide y axis]
|
||||||
|
\addplot [draw=red][very thick] {gauss(0.25,0.1)} node[text=red][above,pos=0.5] {negative};
|
||||||
|
\addplot [draw=blue][very thick] {gauss(0.5,0.05)} node[text=blue][above,pos=0.48] {neutral};
|
||||||
|
\addplot [draw=green!60!black][very thick] {gauss(0.75,0.1)} node[text=green!60!black][above,pos=0.5] {positive};
|
||||||
|
\end{axis}
|
||||||
|
\end{tikzpicture}
|
||||||
|
\caption{Distribution of preferences for a user type.}
|
||||||
|
\label{fig:Evaluation:DataGeneration}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
These user profiles can be used to generate rather homogenous groups but also to create groups that have interests that are more conflicting. For completely random groups a uniform distribution is used to create more chaotic groups. The whole process is shown in \autoref{fig:Evaluation:GeneratingDataProcess}.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\begin{figure}
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\textwidth]{./figures/bpmn_evaluation_input_data_generation.pdf}
|
||||||
|
\caption{The process used for generating data for the evaluation.}
|
||||||
|
\label{fig:Evaluation:GeneratingDataProcess}
|
||||||
|
\end{figure}
|
||||||
11
25_Outline/sections/70_further_work.tex
Normal file
11
25_Outline/sections/70_further_work.tex
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
\chapter{Further Work}
|
||||||
|
\label{ch:FurtherWork}
|
||||||
|
|
||||||
|
\section{Possible Extensions or Further Research}
|
||||||
|
\label{sec:FurtherWork:PossibleExtensions}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item How to optimise such that no need to search through all stored finished configurations is necessary? (e.g. improve runtime from $\mathcal{O}(n)$ to $\mathcal{O}(log\ n)$)
|
||||||
|
\item How to model hierarchy and knowledge about product components in preferences?
|
||||||
|
\item Letting users set preferences for product functions (e.g. for a forest a recreation function, a productive function, a protective function, etc.). How does it compare to explicitly choosing preferences?
|
||||||
|
\end{itemize}
|
||||||
93
25_Outline/title-background.eps
Normal file
93
25_Outline/title-background.eps
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
%!PS-Adobe-3.0 EPSF-3.0
|
||||||
|
%%For:
|
||||||
|
%%Title:
|
||||||
|
%%Creator: Scribus1.4.4
|
||||||
|
%%Pages: 1
|
||||||
|
%%BoundingBox: 0 0 595 842
|
||||||
|
%%HiResBoundingBox: 0 0 595.276 841.89
|
||||||
|
%%LanguageLevel: 3
|
||||||
|
%%EndComments
|
||||||
|
%%BeginProlog
|
||||||
|
/Scribusdict 100 dict def
|
||||||
|
Scribusdict begin
|
||||||
|
/sp {showpage} bind def
|
||||||
|
/oldsetgray /setgray load def
|
||||||
|
/cmyk {setcmykcolor} def
|
||||||
|
/m {moveto} bind def
|
||||||
|
/l {lineto} bind def
|
||||||
|
/li {lineto} bind def
|
||||||
|
/cu {curveto} bind def
|
||||||
|
/cl {closepath} bind def
|
||||||
|
/gs {gsave} bind def
|
||||||
|
/gr {grestore} bind def
|
||||||
|
/tr {translate} bind def
|
||||||
|
/ro {rotate} bind def
|
||||||
|
/sh {show} bind def
|
||||||
|
/shg {setcmykcolor moveto glyphshow} def
|
||||||
|
/shgsp {moveto glyphshow} def
|
||||||
|
/sc {scale} bind def
|
||||||
|
/se {selectfont} bind def
|
||||||
|
/sf {setfont} bind def
|
||||||
|
/sw {setlinewidth} bind def
|
||||||
|
/f {findfont} bind def
|
||||||
|
/fi {fill} bind def
|
||||||
|
/st {stroke} bind def
|
||||||
|
/shgf {gs dup scale begin cvx exec fill end gr} bind def
|
||||||
|
/shgs {gs dup 1 exch div currentlinewidth mul sw dup scale
|
||||||
|
begin cvx exec st end gr} bind def
|
||||||
|
/bEPS {
|
||||||
|
/b4_Inc_state save def
|
||||||
|
/dict_count countdictstack def
|
||||||
|
/op_count count 1 sub def
|
||||||
|
userdict begin
|
||||||
|
/showpage { } def
|
||||||
|
0 setgray 0 setlinecap
|
||||||
|
1 setlinewidth 0 setlinejoin
|
||||||
|
10 setmiterlimit [ ] 0 setdash newpath
|
||||||
|
/languagelevel where
|
||||||
|
{pop languagelevel
|
||||||
|
1 ne
|
||||||
|
{false setstrokeadjust false setoverprint
|
||||||
|
} if } if } bind def
|
||||||
|
/eEPS { count op_count sub {pop} repeat
|
||||||
|
countdictstack dict_count sub {end} repeat
|
||||||
|
b4_Inc_state restore } bind def
|
||||||
|
end
|
||||||
|
%%EndProlog
|
||||||
|
%%BeginSetup
|
||||||
|
%%EndSetup
|
||||||
|
%%Page: 1 1
|
||||||
|
%%PageOrientation: Portrait
|
||||||
|
Scribusdict begin
|
||||||
|
save
|
||||||
|
/DeviceCMYK setcolorspace
|
||||||
|
0 0 tr
|
||||||
|
40 40 m
|
||||||
|
555.276 40 li
|
||||||
|
555.276 801.89 li
|
||||||
|
40 801.89 li cl clip newpath
|
||||||
|
gs
|
||||||
|
0.992559 sw
|
||||||
|
0 setlinecap
|
||||||
|
0 setlinejoin
|
||||||
|
[] 0 setdash
|
||||||
|
29.6548 809.103 tr
|
||||||
|
533.748 -761.657 m
|
||||||
|
17.7923 -761.657 li
|
||||||
|
7.91532 -761.657 0 -753.741 0 -743.868 cu
|
||||||
|
0 0 li
|
||||||
|
515.959 0 li
|
||||||
|
525.832 0 533.748 -7.91931 533.748 -17.7923 cu
|
||||||
|
533.748 -761.657 li
|
||||||
|
533.748 -761.657 li
|
||||||
|
cl
|
||||||
|
0 0 0 1 cmyk st
|
||||||
|
gr
|
||||||
|
%%PageTrailer
|
||||||
|
restore
|
||||||
|
gs
|
||||||
|
gr
|
||||||
|
sp
|
||||||
|
end
|
||||||
|
%%Trailer
|
||||||
|
%%EOF
|
||||||
116
25_Outline/title-background.pdf
Normal file
116
25_Outline/title-background.pdf
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
%PDF-1.4
|
||||||
|
%Çì<C387>¢
|
||||||
|
1 0 obj
|
||||||
|
<<
|
||||||
|
/Type /Catalog
|
||||||
|
/Outlines 3 0 R
|
||||||
|
/Pages 4 0 R
|
||||||
|
/Dests 5 0 R
|
||||||
|
/AcroForm 6 0 R
|
||||||
|
/Names 7 0 R
|
||||||
|
/Threads 8 0 R
|
||||||
|
/PageLayout /SinglePage
|
||||||
|
/ViewerPreferences
|
||||||
|
<<
|
||||||
|
/PageDirection /L2R
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
2 0 obj
|
||||||
|
<<
|
||||||
|
/Creator (Scribus 1.4.4)
|
||||||
|
/Producer (Scribus PDF Library 1.4.4)
|
||||||
|
/Title <>
|
||||||
|
/Author <>
|
||||||
|
/Subject <>
|
||||||
|
/Keywords <>
|
||||||
|
/CreationDate (D:20141111094954)
|
||||||
|
/ModDate (D:20141111094954)
|
||||||
|
/Trapped /False
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
9 0 obj
|
||||||
|
<< /Length 173
|
||||||
|
/Filter /FlateDecode >>
|
||||||
|
stream
|
||||||
|
xÚu<EFBFBD>A1E÷œ¢¥zwêÒ¸ÆÌ,fåõeLœT£JúH>Ÿ8Qd¼Hkl}œa<C593>øxͶBó"¯^”Óq£Ö²Öô€ó%®@iuß5£7MN
™rµUS™Cƒ\Ò`•±ªÅ®ØÐZêé†<>UrßöSA+ü<>Š W_ÍÃ÷9”&˜<>]:¦$ÈZ:Öû‹íM¸G›Íñ÷!Ó?|ƒ"Ÿ
|
||||||
|
ŠF¦
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
10 0 obj
|
||||||
|
<< /S /Transparency
|
||||||
|
/CS /DeviceRGB
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
11 0 obj
|
||||||
|
<<
|
||||||
|
/Type /Page
|
||||||
|
/Parent 4 0 R
|
||||||
|
/MediaBox [0 0 595.27559 841.88976]
|
||||||
|
/BleedBox [0.00000 0.00000 595.27559 841.88976]
|
||||||
|
/CropBox [0 0 595.27559 841.88976]
|
||||||
|
/TrimBox [0.00000 0.00000 595.27559 841.88976]
|
||||||
|
/ArtBox [0.00000 0.00000 595.27559 841.88976]
|
||||||
|
/Rotate 0
|
||||||
|
/Contents 9 0 R
|
||||||
|
/Group 10 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
12 0 obj
|
||||||
|
<< /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
3 0 obj
|
||||||
|
<<
|
||||||
|
/Type /Outlines
|
||||||
|
/Count 0
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
4 0 obj
|
||||||
|
<<
|
||||||
|
/Type /Pages
|
||||||
|
/Kids [11 0 R ]
|
||||||
|
/Count 1
|
||||||
|
/Resources 12 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
5 0 obj
|
||||||
|
<<
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
6 0 obj
|
||||||
|
<<
|
||||||
|
/Fields [ ]
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
7 0 obj
|
||||||
|
<< >>
|
||||||
|
endobj
|
||||||
|
8 0 obj
|
||||||
|
[]
|
||||||
|
endobj
|
||||||
|
xref
|
||||||
|
0 13
|
||||||
|
0000000000 65535 f
|
||||||
|
0000000015 00000 n
|
||||||
|
0000000207 00000 n
|
||||||
|
0000001081 00000 n
|
||||||
|
0000001127 00000 n
|
||||||
|
0000001204 00000 n
|
||||||
|
0000001225 00000 n
|
||||||
|
0000001259 00000 n
|
||||||
|
0000001281 00000 n
|
||||||
|
0000000414 00000 n
|
||||||
|
0000000659 00000 n
|
||||||
|
0000000713 00000 n
|
||||||
|
0000001013 00000 n
|
||||||
|
trailer
|
||||||
|
<<
|
||||||
|
/Size 13
|
||||||
|
/Root 1 0 R
|
||||||
|
/Info 2 0 R
|
||||||
|
/ID [<277CA22A7AE2CA7FFF6E9C66BCEEE0BF><277CA22A7AE2CA7FFF6E9C66BCEEE0BF>]
|
||||||
|
>>
|
||||||
|
startxref
|
||||||
|
1299
|
||||||
|
%%EOF
|
||||||
67
25_Outline/title-background.sla
Normal file
67
25_Outline/title-background.sla
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<SCRIBUSUTF8NEW Version="1.4.4">
|
||||||
|
<DOCUMENT ANZPAGES="1" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" PRESET="0" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" ORIENTATION="0" PAGESIZE="A4" FIRSTNUM="1" BOOK="0" AUTOSPALTEN="1" ABSTSPALTEN="11" UNITS="1" DFONT="Arial Regular" DSIZE="12" DCOL="1" DGAP="0" TabFill="" TabWidth="36" AUTHOR="" COMMENTS="" KEYWORDS="" PUBLISHER="" DOCDATE="" DOCTYPE="" DOCFORMAT="" DOCIDENT="" DOCSOURCE="" DOCLANGINFO="" DOCRELATION="" DOCCOVER="" DOCRIGHTS="" DOCCONTRIB="" TITLE="" SUBJECT="" VHOCH="33" VHOCHSC="66" VTIEF="33" VTIEFSC="66" VKAPIT="75" BASEGRID="14.4" BASEO="0" AUTOL="20" UnderlinePos="-1" UnderlineWidth="-1" StrikeThruPos="-1" StrikeThruWidth="-1" GROUPC="1" HCMS="0" DPSo="0" DPSFo="0" DPuse="0" DPgam="0" DPbla="1" DPMo="sRGB IEC61966-2.1" DPPr="Fogra27L CMYK Coated Press" DPIn="sRGB IEC61966-2.1" DPInCMYK="Fogra27L CMYK Coated Press" DPIn2="sRGB IEC61966-2.1" DPIn3="Fogra27L CMYK Coated Press" DISc="1" DIIm="0" ALAYER="0" LANGUAGE="German" MINWORDLEN="3" HYCOUNT="2" AUTOMATIC="1" AUTOCHECK="0" GUIDELOCK="0" SnapToGuides="0" SnapToGrid="0" MINGRID="20.001" MAJGRID="100.001" SHOWGRID="0" SHOWGUIDES="1" showcolborders="1" SHOWFRAME="1" SHOWLAYERM="0" SHOWMARGIN="1" SHOWBASE="0" SHOWPICT="1" SHOWControl="0" SHOWLINK="0" rulerMode="1" showrulers="1" showBleed="1" rulerXoffset="0" rulerYoffset="0" GuideRad="10" GRAB="4" POLYC="4" POLYF="0.707" POLYR="0" POLYCUR="0" POLYFD="0" POLYS="0" AutoSave="1" AutoSaveTime="600000" ScratchBottom="20.001" ScratchLeft="100.001" ScratchRight="100.001" ScratchTop="20.001" GapHorizontal="0" GapVertical="40" StartArrow="0" EndArrow="0" PEN="Black" BRUSH="None" PENLINE="Black" PENTEXT="Black" StrokeText="Black" TextBackGround="None" TextLineColor="None" TextBackGroundShade="100" TextLineShade="100" TextPenShade="100" TextStrokeShade="100" STIL="1" STILLINE="1" WIDTH="1" WIDTHLINE="1" PENSHADE="100" LINESHADE="100" BRUSHSHADE="100" MAGMIN="10" MAGMAX="3200" MAGSTEP="200" CPICT="None" PICTSHADE="100" PICTSCX="1" PICTSCY="1" PSCALE="1" PASPECT="1" EmbeddedPath="0" HalfRes="1" dispX="10.001" dispY="10.001" constrain="15" MINORC="#00ff00" MAJORC="#00ff00" GuideC="#000080" BaseC="#c0c0c0" GuideZ="10" BACKG="0" PAGEC="#ffffff" MARGC="#0000ff" RANDF="0" currentProfile="PostScript">
|
||||||
|
<CheckProfile Name="PDF 1.3" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
|
||||||
|
<CheckProfile Name="PDF 1.4" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
|
||||||
|
<CheckProfile Name="PDF 1.5" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
|
||||||
|
<CheckProfile Name="PDF/X-1a" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
|
||||||
|
<CheckProfile Name="PDF/X-3" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
|
||||||
|
<CheckProfile Name="PostScript" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
|
||||||
|
<COLOR NAME="Black" CMYK="#000000ff" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Blue" RGB="#0000ff" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Cool Black" CMYK="#990000ff" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Cyan" CMYK="#ff000000" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="FromSVG#231f20" RGB="#231f20" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="FromSVG#ffffff" RGB="#ffffff" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Green" RGB="#00ff00" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Magenta" CMYK="#00ff0000" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Red" RGB="#ff0000" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Registration" CMYK="#ffffffff" Spot="0" Register="1"/>
|
||||||
|
<COLOR NAME="Rich Black" CMYK="#996666ff" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Warm Black" CMYK="#00994cff" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="White" CMYK="#00000000" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Yellow" CMYK="#0000ff00" Spot="0" Register="0"/>
|
||||||
|
<HYPHEN/>
|
||||||
|
<STYLE NAME="Default Paragraph Style" DefaultStyle="1" ALIGN="0" LINESPMode="0" LINESP="15" INDENT="0" RMARGIN="0" FIRST="0" VOR="0" NACH="0" DROP="0" DROPLIN="2" DROPDIST="0"/>
|
||||||
|
<CHARSTYLE CNAME="Default Character Style" DefaultStyle="1" FONT="Arial Regular" FONTSIZE="12" FEATURES="inherit" FCOLOR="Black" FSHADE="100" SCOLOR="Black" SSHADE="100" TXTSHX="5" TXTSHY="-5" TXTOUT="1" TXTULP="-0.1" TXTULW="-0.1" TXTSTP="-0.1" TXTSTW="-0.1" SCALEH="100" SCALEV="100" BASEO="0" KERN="0" LANGUAGE="German"/>
|
||||||
|
<LAYERS NUMMER="0" LEVEL="0" NAME="Hintergrund" SICHTBAR="1" DRUCKEN="1" EDIT="1" FLOW="1" TRANS="1" BLEND="0" OUTL="0" LAYERC="#000000"/>
|
||||||
|
<Printer firstUse="1" toFile="1" useAltPrintCommand="1" outputSeparations="1" useSpotColors="1" useColor="1" mirrorH="1" mirrorV="1" useICC="1" doGCR="1" doClip="1" setDevParam="1" useDocBleeds="1" cropMarks="1" bleedMarks="1" registrationMarks="1" colorMarks="1" includePDFMarks="1" PSLevel="-2500135" PDLanguage="-2500135" markOffset="-7.2612709456521e+307" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" printer="" filename="" separationName="" printerCommand=""/>
|
||||||
|
<PDF firstUse="0" Thumbnails="0" Articles="0" Bookmarks="0" Compress="1" CMethod="0" Quality="0" EmbedPDF="0" MirrorH="0" MirrorV="0" Clip="0" RotateDeg="0" PresentMode="0" RecalcPic="0" Grayscale="0" RGBMode="1" UseProfiles="0" UseProfiles2="0" Binding="0" PicRes="300" Resolution="300" Version="14" Intent="1" Intent2="0" SolidP="sRGB IEC61966-2.1" ImageP="sRGB IEC61966-2.1" PrintP="Fogra27L CMYK Coated Press" InfoString="" BTop="0" BLeft="0" BRight="0" BBottom="0" useDocBleeds="1" cropMarks="0" bleedMarks="0" registrationMarks="0" colorMarks="0" docInfoMarks="0" markOffset="0" ImagePr="0" PassOwner="" PassUser="" Permissions="-4" Encrypt="0" UseLayers="0" UseLpi="0" UseSpotColors="1" doMultiFile="0" displayBookmarks="0" displayFullscreen="0" displayLayers="0" displayThumbs="0" hideMenuBar="0" hideToolBar="0" fitWindow="0" PageLayout="0" openAction="">
|
||||||
|
<Effekte pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
|
||||||
|
<LPI Color="" Frequency="10" Angle="0" SpotFunction="0"/>
|
||||||
|
<LPI Color="Black" Frequency="133" Angle="45" SpotFunction="3"/>
|
||||||
|
<LPI Color="Cyan" Frequency="133" Angle="105" SpotFunction="3"/>
|
||||||
|
<LPI Color="Magenta" Frequency="133" Angle="75" SpotFunction="3"/>
|
||||||
|
<LPI Color="Yellow" Frequency="133" Angle="90" SpotFunction="3"/>
|
||||||
|
</PDF>
|
||||||
|
<DocItemAttributes/>
|
||||||
|
<TablesOfContents/>
|
||||||
|
<PageSets>
|
||||||
|
<Set Name="Single Page" FirstPage="0" Rows="1" Columns="1"/>
|
||||||
|
<Set Name="Double Sided" FirstPage="1" Rows="1" Columns="2">
|
||||||
|
<PageNames Name="Left Page"/>
|
||||||
|
<PageNames Name="Right Page"/>
|
||||||
|
</Set>
|
||||||
|
<Set Name="3-Fold" FirstPage="0" Rows="1" Columns="3">
|
||||||
|
<PageNames Name="Left Page"/>
|
||||||
|
<PageNames Name="Middle"/>
|
||||||
|
<PageNames Name="Right Page"/>
|
||||||
|
</Set>
|
||||||
|
<Set Name="4-Fold" FirstPage="0" Rows="1" Columns="4">
|
||||||
|
<PageNames Name="Left Page"/>
|
||||||
|
<PageNames Name="Middle Left"/>
|
||||||
|
<PageNames Name="Middle Right"/>
|
||||||
|
<PageNames Name="Right Page"/>
|
||||||
|
</Set>
|
||||||
|
</PageSets>
|
||||||
|
<Sections>
|
||||||
|
<Section Number="0" Name="0" From="0" To="0" Type="Type_1_2_3" Start="1" Reversed="0" Active="1"/>
|
||||||
|
</Sections>
|
||||||
|
<MASTERPAGE PAGEXPOS="100.001" PAGEYPOS="20.001" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="0" NAM="Normal" MNAM="" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0"/>
|
||||||
|
<PAGE PAGEXPOS="100.001" PAGEYPOS="20.001" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="0" NAM="" MNAM="Normal" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0"/>
|
||||||
|
<PAGEOBJECT OwnPage="0" PTYPE="6" XPOS="152.332953622181" YPOS="52.7880952315889" WIDTH="511.070834645669" HEIGHT="761.657" RADRECT="0" FRTYPE="3" CLIPEDIT="1" PWIDTH="0.992558509527654" PCOLOR="None" PCOLOR2="Black" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="1" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME=" path3019" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="1" EMBEDDED="1" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="28" POCOOR="511.071 761.657 511.071 761.657 17.7923 761.657 17.7923 761.657 17.7923 761.657 7.91532 761.657 0 743.868 0 753.741 0 743.868 0 743.868 0 0 0 0 0 0 0 0 493.282 0 493.282 0 493.282 0 503.155 0 511.071 17.7923 511.071 7.91931 511.071 17.7923 511.071 17.7923 511.071 761.657 511.071 761.657 511.071 761.657 511.071 761.657 511.071 761.657 511.071 761.657 " NUMCO="28" COCOOR="511.071 761.657 511.071 761.657 -4.88487 761.657 -4.88487 761.657 -4.88487 761.657 -14.7618 761.657 -22.6772 743.868 -22.6772 753.741 -22.6772 743.868 -22.6772 743.868 -22.6772 0 -22.6772 0 -22.6772 0 -22.6772 0 493.282 0 493.282 0 493.282 0 503.155 0 511.071 17.7923 511.071 7.91931 511.071 17.7923 511.071 17.7923 511.071 761.657 511.071 761.657 511.071 761.657 511.071 761.657 511.071 761.657 511.071 761.657 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="0" doOverprint="0" gXpos="29.6547882678499" gYpos="32.787095231589" gWidth="595.275590551181" gHeight="841.891150885822" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
|
||||||
|
<trail/>
|
||||||
|
<PageItemAttributes/>
|
||||||
|
</PAGEOBJECT>
|
||||||
|
</DOCUMENT>
|
||||||
|
</SCRIBUSUTF8NEW>
|
||||||
BIN
30_Thesis/figures/20_fountations/MerlinCollaborativeConfigurator.pdf
LFS
Normal file
BIN
30_Thesis/figures/20_fountations/MerlinCollaborativeConfigurator.pdf
LFS
Normal file
Binary file not shown.
Binary file not shown.
BIN
30_Thesis/figures/50_design_and_implementation/MerlinCollabRecommender.pdf
LFS
Normal file
BIN
30_Thesis/figures/50_design_and_implementation/MerlinCollabRecommender.pdf
LFS
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
30_Thesis/figures/50_design_and_implementation/user_interface_prototype.png
LFS
Normal file
BIN
30_Thesis/figures/50_design_and_implementation/user_interface_prototype.png
LFS
Normal file
Binary file not shown.
BIN
30_Thesis/figures/60_evaluation/bpmn_evaluation_input_data_generation.pdf
LFS
Normal file
BIN
30_Thesis/figures/60_evaluation/bpmn_evaluation_input_data_generation.pdf
LFS
Normal file
Binary file not shown.
BIN
30_Thesis/figures/60_evaluation/heterogeneous_combined__amount-1000__tc-70.pdf
LFS
Normal file
BIN
30_Thesis/figures/60_evaluation/heterogeneous_combined__amount-1000__tc-70.pdf
LFS
Normal file
Binary file not shown.
BIN
30_Thesis/figures/60_evaluation/homogeneous_combined__amount-1000__tc-94.pdf
LFS
Normal file
BIN
30_Thesis/figures/60_evaluation/homogeneous_combined__amount-1000__tc-94.pdf
LFS
Normal file
Binary file not shown.
BIN
30_Thesis/figures/60_evaluation/random_combined__amount-1000__tc-85.pdf
LFS
Normal file
BIN
30_Thesis/figures/60_evaluation/random_combined__amount-1000__tc-85.pdf
LFS
Normal file
Binary file not shown.
BIN
30_Thesis/figures/60_evaluation/tc_change__multi__db-size-148.pdf
LFS
Normal file
BIN
30_Thesis/figures/60_evaluation/tc_change__multi__db-size-148.pdf
LFS
Normal file
Binary file not shown.
BIN
30_Thesis/figures/60_evaluation/tc_dictator__multi__db-size-148.pdf
LFS
Normal file
BIN
30_Thesis/figures/60_evaluation/tc_dictator__multi__db-size-148.pdf
LFS
Normal file
Binary file not shown.
BIN
30_Thesis/logos/kitlogo_de_cmyk.eps
Normal file
BIN
30_Thesis/logos/kitlogo_de_cmyk.eps
Normal file
Binary file not shown.
BIN
30_Thesis/logos/kitlogo_de_cmyk.pdf
Normal file
BIN
30_Thesis/logos/kitlogo_de_cmyk.pdf
Normal file
Binary file not shown.
9475
30_Thesis/logos/kitlogo_en_cmyk.eps
Normal file
9475
30_Thesis/logos/kitlogo_en_cmyk.eps
Normal file
File diff suppressed because one or more lines are too long
BIN
30_Thesis/logos/kitlogo_en_cmyk.pdf
Normal file
BIN
30_Thesis/logos/kitlogo_en_cmyk.pdf
Normal file
Binary file not shown.
751
30_Thesis/logos/sdqlogo.eps
Normal file
751
30_Thesis/logos/sdqlogo.eps
Normal file
@@ -0,0 +1,751 @@
|
|||||||
|
%!PS-Adobe-3.0 EPSF-3.0
|
||||||
|
%%Creator: cairo 1.11.2 (http://cairographics.org)
|
||||||
|
%%CreationDate: Wed Oct 22 16:58:22 2014
|
||||||
|
%%Pages: 1
|
||||||
|
%%DocumentData: Clean7Bit
|
||||||
|
%%LanguageLevel: 3
|
||||||
|
%%BoundingBox: 0 -1 556 280
|
||||||
|
%%EndComments
|
||||||
|
%%BeginProlog
|
||||||
|
/cairo_eps_state save def
|
||||||
|
/dict_count countdictstack def
|
||||||
|
/op_count count 1 sub def
|
||||||
|
userdict begin
|
||||||
|
/q { gsave } bind def
|
||||||
|
/Q { grestore } bind def
|
||||||
|
/cm { 6 array astore concat } bind def
|
||||||
|
/w { setlinewidth } bind def
|
||||||
|
/J { setlinecap } bind def
|
||||||
|
/j { setlinejoin } bind def
|
||||||
|
/M { setmiterlimit } bind def
|
||||||
|
/d { setdash } bind def
|
||||||
|
/m { moveto } bind def
|
||||||
|
/l { lineto } bind def
|
||||||
|
/c { curveto } bind def
|
||||||
|
/h { closepath } bind def
|
||||||
|
/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
|
||||||
|
0 exch rlineto 0 rlineto closepath } bind def
|
||||||
|
/S { stroke } bind def
|
||||||
|
/f { fill } bind def
|
||||||
|
/f* { eofill } bind def
|
||||||
|
/n { newpath } bind def
|
||||||
|
/W { clip } bind def
|
||||||
|
/W* { eoclip } bind def
|
||||||
|
/BT { } bind def
|
||||||
|
/ET { } bind def
|
||||||
|
/pdfmark where { pop globaldict /?pdfmark /exec load put }
|
||||||
|
{ globaldict begin /?pdfmark /pop load def /pdfmark
|
||||||
|
/cleartomark load def end } ifelse
|
||||||
|
/BDC { mark 3 1 roll /BDC pdfmark } bind def
|
||||||
|
/EMC { mark /EMC pdfmark } bind def
|
||||||
|
/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
|
||||||
|
/Tj { show currentpoint cairo_store_point } bind def
|
||||||
|
/TJ {
|
||||||
|
{
|
||||||
|
dup
|
||||||
|
type /stringtype eq
|
||||||
|
{ show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
|
||||||
|
} forall
|
||||||
|
currentpoint cairo_store_point
|
||||||
|
} bind def
|
||||||
|
/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
|
||||||
|
cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
|
||||||
|
/Tf { pop /cairo_font exch def /cairo_font_matrix where
|
||||||
|
{ pop cairo_selectfont } if } bind def
|
||||||
|
/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
|
||||||
|
/cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
|
||||||
|
/cairo_font where { pop cairo_selectfont } if } bind def
|
||||||
|
/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
|
||||||
|
cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
|
||||||
|
/g { setgray } bind def
|
||||||
|
/rg { setrgbcolor } bind def
|
||||||
|
/d1 { setcachedevice } bind def
|
||||||
|
%%EndProlog
|
||||||
|
%%Page: 1 1
|
||||||
|
%%BeginPageSetup
|
||||||
|
%%PageBoundingBox: 0 -1 556 280
|
||||||
|
%%EndPageSetup
|
||||||
|
q 0 -1 556 281 rectclip q
|
||||||
|
0 279.189 556 -280 re W n
|
||||||
|
/CairoFunction
|
||||||
|
<< /FunctionType 3
|
||||||
|
/Domain [ 0 1 ]
|
||||||
|
/Functions [
|
||||||
|
<< /FunctionType 2
|
||||||
|
/Domain [ 0 1 ]
|
||||||
|
/C0 [ 0.27451 0.392157 0.666667 ]
|
||||||
|
/C1 [ 0.490196 0.572549 0.764706 ]
|
||||||
|
/N 1
|
||||||
|
>>
|
||||||
|
<< /FunctionType 2
|
||||||
|
/Domain [ 0 1 ]
|
||||||
|
/C0 [ 0.490196 0.572549 0.764706 ]
|
||||||
|
/C1 [ 0.27451 0.392157 0.666667 ]
|
||||||
|
/N 1
|
||||||
|
>>
|
||||||
|
]
|
||||||
|
/Bounds [ 0.503704 ]
|
||||||
|
/Encode [ 1 1 2 { pop 0 1 } for ]
|
||||||
|
>>
|
||||||
|
def
|
||||||
|
<< /PatternType 2
|
||||||
|
/Shading
|
||||||
|
<< /ShadingType 2
|
||||||
|
/ColorSpace /DeviceRGB
|
||||||
|
/Coords [ 346.896576 493.657867 219.976471 215.35788 ]
|
||||||
|
/Domain [ 0 1 ]
|
||||||
|
/Extend [ true true ]
|
||||||
|
/Function CairoFunction
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
[ 0.999999 0 0 -0.999999 -25.387143 494.094659 ]
|
||||||
|
makepattern setpattern
|
||||||
|
1.531 277.658 m 514.359 277.658 l 524.688 277.658 534.953 273.404 542.254
|
||||||
|
266.103 c 549.559 258.798 553.809 248.537 553.809 238.209 c 553.809 1.517
|
||||||
|
l 40.98 1.517 l 30.652 1.517 20.387 5.767 13.082 13.072 c 5.781 20.377
|
||||||
|
1.531 30.638 1.531 40.966 c h
|
||||||
|
f
|
||||||
|
0.301961 g
|
||||||
|
3.06 w
|
||||||
|
1 J
|
||||||
|
1 j
|
||||||
|
[] 0.0 d
|
||||||
|
3 M q 1 0 0 -1 0 279.189087 cm
|
||||||
|
1.531 1.531 m 514.359 1.531 l 524.688 1.531 534.953 5.785 542.254 13.086
|
||||||
|
c 549.559 20.391 553.809 30.652 553.809 40.98 c 553.809 277.672 l 40.98
|
||||||
|
277.672 l 30.652 277.672 20.387 273.422 13.082 266.117 c 5.781 258.813
|
||||||
|
1.531 248.551 1.531 238.223 c h
|
||||||
|
S Q
|
||||||
|
0.780392 0.815686 0.898039 rg
|
||||||
|
3.119995 w
|
||||||
|
q -1 0 0 1 0 279.189087 cm
|
||||||
|
-404.133 -117.703 m -398.957 -117.703 -393.816 -119.832 -390.16 -123.492
|
||||||
|
c -386.5 -127.148 -384.371 -132.289 -384.371 -137.465 c -384.371 -142.637
|
||||||
|
-386.5 -147.777 -390.16 -151.438 c -393.816 -155.094 -398.957 -157.223
|
||||||
|
-404.133 -157.223 c S Q
|
||||||
|
3.119995 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
417.305 137.738 m 417.305 144.563 411.777 150.09 404.953 150.09 c 398.133
|
||||||
|
150.09 392.605 144.563 392.605 137.738 c 392.605 130.918 398.133 125.391
|
||||||
|
404.953 125.391 c 411.777 125.391 417.305 130.918 417.305 137.738 c h
|
||||||
|
S Q
|
||||||
|
3.119995 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
417.277 136.918 m 431.027 136.918 l S Q
|
||||||
|
3.119995 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
375.586 136.918 m 384.367 136.918 l S Q
|
||||||
|
3.119995 w
|
||||||
|
q 0 -1 -1 0 0 279.189087 cm
|
||||||
|
110.566 -375.586 m 163.27 -375.586 l S Q
|
||||||
|
3.119995 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
336.641 110.566 m 374.492 110.566 l S Q
|
||||||
|
3.119995 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
350.465 163.266 m 375.586 163.266 l S Q
|
||||||
|
3.119995 w
|
||||||
|
q 0 -1 -1 0 0 279.189087 cm
|
||||||
|
110.566 -431.023 m 163.27 -431.023 l S Q
|
||||||
|
3.119995 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
431.027 110.566 m 473.457 110.566 l S Q
|
||||||
|
3.119995 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
431.027 163.266 m 459.629 163.266 l S Q
|
||||||
|
2.975854 w
|
||||||
|
[ 2.975854 5.951709] 0 d
|
||||||
|
q -0.314992 -1 -1 0.314992 0 279.189087 cm
|
||||||
|
-21.932 -407.099 m -2.487 -407.099 l S Q
|
||||||
|
1 0.709804 0 rg
|
||||||
|
368.52 221.244 m 368.52 176.584 l 457.84 176.584 l 457.84 206.357 l 435.512
|
||||||
|
221.244 l h
|
||||||
|
f
|
||||||
|
0.780392 0.815686 0.898039 rg
|
||||||
|
3.119995 w
|
||||||
|
[] 0.0 d
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
368.52 57.945 m 368.52 102.605 l 457.84 102.605 l 457.84 72.832 l 435.512
|
||||||
|
57.945 l h
|
||||||
|
S Q
|
||||||
|
0.4 g
|
||||||
|
387.691 203.634 m 386.285 203.634 l 384.297 206.935 l 382.301 203.634 l
|
||||||
|
380.914 203.634 l 383.633 207.81 l 381.133 211.806 l 382.453 211.806 l
|
||||||
|
384.32 208.728 l 386.203 211.806 l 387.484 211.806 l 384.977 207.861 l h
|
||||||
|
f
|
||||||
|
415.207 207.673 m 409.832 207.673 l 409.832 208.591 l 415.207 208.591 l
|
||||||
|
h
|
||||||
|
415.207 205.498 m 409.832 205.498 l 409.832 206.416 l 415.207 206.416 l
|
||||||
|
h
|
||||||
|
f
|
||||||
|
422.285 203.634 m 417.152 203.634 l 417.152 204.65 l 419.254 204.65 l 419.254
|
||||||
|
210.611 l 417.297 209.548 l 416.895 210.474 l 419.496 211.841 l 420.457
|
||||||
|
211.841 l 420.457 204.65 l 422.285 204.65 l h
|
||||||
|
f
|
||||||
|
426.57 205.603 m 426.711 205.603 426.848 205.58 426.973 205.525 c 427.102
|
||||||
|
205.47 427.211 205.396 427.305 205.298 c 427.398 205.205 427.473 205.091
|
||||||
|
427.527 204.963 c 427.582 204.838 427.609 204.701 427.609 204.556 c 427.609
|
||||||
|
204.412 427.582 204.279 427.527 204.154 c 427.473 204.029 427.398 203.92
|
||||||
|
427.305 203.826 c 427.211 203.732 427.102 203.658 426.973 203.603 c 426.848
|
||||||
|
203.552 426.711 203.525 426.57 203.525 c 426.426 203.525 426.289 203.552
|
||||||
|
426.164 203.603 c 426.039 203.658 425.93 203.732 425.836 203.826 c 425.742
|
||||||
|
203.92 425.668 204.029 425.613 204.154 c 425.559 204.279 425.535 204.412
|
||||||
|
425.535 204.556 c 425.535 204.701 425.559 204.838 425.613 204.963 c 425.668
|
||||||
|
205.091 425.742 205.205 425.836 205.298 c 425.93 205.396 426.039 205.47
|
||||||
|
426.164 205.525 c 426.289 205.58 426.426 205.603 426.57 205.603 c h
|
||||||
|
f
|
||||||
|
436.641 207.716 m 436.641 207.091 436.578 206.521 436.453 206.009 c 436.328
|
||||||
|
205.494 436.137 205.052 435.883 204.681 c 435.629 204.314 435.313 204.029
|
||||||
|
434.938 203.826 c 434.559 203.627 434.117 203.525 433.609 203.525 c 433.172
|
||||||
|
203.525 432.773 203.607 432.414 203.771 c 432.055 203.935 431.75 204.189
|
||||||
|
431.496 204.529 c 431.242 204.873 431.047 205.306 430.91 205.838 c 430.77
|
||||||
|
206.365 430.703 206.994 430.703 207.716 c 430.703 208.341 430.766 208.912
|
||||||
|
430.895 209.431 c 431.02 209.947 431.211 210.388 431.461 210.759 c 431.715
|
||||||
|
211.127 432.027 211.412 432.41 211.615 c 432.789 211.818 433.23 211.916
|
||||||
|
433.734 211.916 c 434.172 211.916 434.57 211.834 434.926 211.67 c 435.285
|
||||||
|
211.505 435.59 211.252 435.848 210.908 c 436.102 210.564 436.297 210.127
|
||||||
|
436.434 209.599 c 436.57 209.068 436.641 208.443 436.641 207.716 c h
|
||||||
|
435.539 207.681 m 435.539 207.822 435.535 207.963 435.523 208.103 c 435.512
|
||||||
|
208.24 435.504 208.377 435.488 208.509 c 432.035 205.943 l 432.098 205.724
|
||||||
|
432.176 205.525 432.27 205.341 c 432.367 205.158 432.48 205.002 432.617
|
||||||
|
204.869 c 432.754 204.74 432.906 204.638 433.082 204.564 c 433.254 204.49
|
||||||
|
433.449 204.455 433.672 204.455 c 433.953 204.455 434.211 204.525 434.441
|
||||||
|
204.662 c 434.676 204.798 434.871 205.002 435.035 205.275 c 435.195 205.545
|
||||||
|
435.32 205.88 435.41 206.283 c 435.496 206.685 435.539 207.15 435.539 207.681
|
||||||
|
c h
|
||||||
|
431.801 207.755 m 431.801 207.627 431.805 207.498 431.805 207.369 c 431.809
|
||||||
|
207.24 431.813 207.115 431.828 206.994 c 435.285 209.548 l 435.223 209.759
|
||||||
|
435.141 209.955 435.047 210.13 c 434.949 210.306 434.836 210.455 434.703
|
||||||
|
210.584 c 434.57 210.709 434.418 210.81 434.246 210.88 c 434.074 210.951
|
||||||
|
433.883 210.986 433.672 210.986 c 433.387 210.986 433.129 210.916 432.898
|
||||||
|
210.779 c 432.668 210.642 432.473 210.439 432.309 210.166 c 432.145 209.892
|
||||||
|
432.02 209.552 431.934 209.15 c 431.848 208.752 431.801 208.283 431.801
|
||||||
|
207.755 c h
|
||||||
|
f
|
||||||
|
443.691 207.716 m 443.691 207.091 443.629 206.521 443.504 206.009 c 443.379
|
||||||
|
205.494 443.188 205.052 442.934 204.681 c 442.68 204.314 442.363 204.029
|
||||||
|
441.988 203.826 c 441.609 203.627 441.168 203.525 440.66 203.525 c 440.223
|
||||||
|
203.525 439.824 203.607 439.465 203.771 c 439.105 203.935 438.801 204.189
|
||||||
|
438.547 204.529 c 438.293 204.873 438.098 205.306 437.957 205.838 c 437.82
|
||||||
|
206.365 437.754 206.994 437.754 207.716 c 437.754 208.341 437.816 208.912
|
||||||
|
437.941 209.431 c 438.07 209.947 438.258 210.388 438.512 210.759 c 438.762
|
||||||
|
211.127 439.078 211.412 439.457 211.615 c 439.836 211.818 440.277 211.916
|
||||||
|
440.785 211.916 c 441.223 211.916 441.617 211.834 441.977 211.67 c 442.336
|
||||||
|
211.505 442.641 211.252 442.895 210.908 c 443.148 210.564 443.348 210.127
|
||||||
|
443.484 209.599 c 443.621 209.068 443.691 208.443 443.691 207.716 c h
|
||||||
|
442.59 207.681 m 442.59 207.822 442.586 207.963 442.574 208.103 c 442.563
|
||||||
|
208.24 442.551 208.377 442.539 208.509 c 439.082 205.943 l 439.145 205.724
|
||||||
|
439.227 205.525 439.32 205.341 c 439.418 205.158 439.531 205.002 439.668
|
||||||
|
204.869 c 439.805 204.74 439.957 204.638 440.129 204.564 c 440.305 204.49
|
||||||
|
440.5 204.455 440.723 204.455 c 441.004 204.455 441.262 204.525 441.492
|
||||||
|
204.662 c 441.723 204.798 441.922 205.002 442.082 205.275 c 442.246 205.545
|
||||||
|
442.371 205.88 442.457 206.283 c 442.547 206.685 442.59 207.15 442.59 207.681
|
||||||
|
c h
|
||||||
|
438.852 207.755 m 438.852 207.627 438.852 207.498 438.855 207.369 c 438.855
|
||||||
|
207.24 438.863 207.115 438.879 206.994 c 442.332 209.548 l 442.27 209.759
|
||||||
|
442.191 209.955 442.098 210.13 c 442 210.306 441.887 210.455 441.754 210.584
|
||||||
|
c 441.617 210.709 441.465 210.81 441.297 210.88 c 441.125 210.951 440.934
|
||||||
|
210.986 440.723 210.986 c 440.438 210.986 440.18 210.916 439.949 210.779
|
||||||
|
c 439.719 210.642 439.52 210.439 439.359 210.166 c 439.195 209.892 439.07
|
||||||
|
209.552 438.984 209.15 c 438.895 208.752 438.852 208.283 438.852 207.755
|
||||||
|
c h
|
||||||
|
f
|
||||||
|
387.691 187.634 m 386.285 187.634 l 384.297 190.935 l 382.301 187.634 l
|
||||||
|
380.914 187.634 l 383.633 191.81 l 381.133 195.806 l 382.453 195.806 l
|
||||||
|
384.32 192.728 l 386.203 195.806 l 387.484 195.806 l 384.977 191.861 l h
|
||||||
|
f
|
||||||
|
415.207 191.673 m 409.832 191.673 l 409.832 192.591 l 415.207 192.591 l
|
||||||
|
h
|
||||||
|
415.207 189.498 m 409.832 189.498 l 409.832 190.416 l 415.207 190.416 l
|
||||||
|
h
|
||||||
|
f
|
||||||
|
422.539 191.716 m 422.539 191.091 422.477 190.521 422.352 190.009 c 422.227
|
||||||
|
189.494 422.039 189.052 421.785 188.681 c 421.527 188.314 421.215 188.029
|
||||||
|
420.836 187.826 c 420.461 187.627 420.016 187.525 419.508 187.525 c 419.07
|
||||||
|
187.525 418.672 187.607 418.316 187.771 c 417.957 187.935 417.648 188.189
|
||||||
|
417.395 188.529 c 417.141 188.873 416.945 189.306 416.809 189.838 c 416.672
|
||||||
|
190.365 416.602 190.994 416.602 191.716 c 416.602 192.341 416.664 192.912
|
||||||
|
416.793 193.431 c 416.918 193.947 417.109 194.388 417.363 194.759 c 417.613
|
||||||
|
195.127 417.93 195.412 418.309 195.615 c 418.688 195.818 419.129 195.916
|
||||||
|
419.633 195.916 c 420.07 195.916 420.469 195.834 420.828 195.67 c 421.184
|
||||||
|
195.505 421.492 195.252 421.746 194.908 c 422 194.564 422.195 194.127 422.332
|
||||||
|
193.599 c 422.473 193.068 422.539 192.443 422.539 191.716 c h
|
||||||
|
421.441 191.681 m 421.441 191.822 421.434 191.963 421.426 192.103 c 421.414
|
||||||
|
192.24 421.402 192.377 421.391 192.509 c 417.934 189.943 l 417.996 189.724
|
||||||
|
418.074 189.525 418.172 189.341 c 418.266 189.158 418.383 189.002 418.52
|
||||||
|
188.869 c 418.652 188.74 418.809 188.638 418.98 188.564 c 419.152 188.49
|
||||||
|
419.352 188.455 419.57 188.455 c 419.855 188.455 420.113 188.525 420.344
|
||||||
|
188.662 c 420.574 188.798 420.77 189.002 420.934 189.275 c 421.098 189.545
|
||||||
|
421.223 189.88 421.309 190.283 c 421.395 190.685 421.441 191.15 421.441
|
||||||
|
191.681 c h
|
||||||
|
417.703 191.755 m 417.703 191.627 417.703 191.498 417.707 191.369 c 417.707
|
||||||
|
191.24 417.715 191.115 417.727 190.994 c 421.184 193.548 l 421.121 193.759
|
||||||
|
421.043 193.955 420.945 194.13 c 420.852 194.306 420.734 194.455 420.602
|
||||||
|
194.584 c 420.469 194.709 420.316 194.81 420.145 194.88 c 419.977 194.951
|
||||||
|
419.785 194.986 419.57 194.986 c 419.289 194.986 419.031 194.916 418.801
|
||||||
|
194.779 c 418.566 194.642 418.371 194.439 418.207 194.166 c 418.047 193.892
|
||||||
|
417.922 193.552 417.832 193.15 c 417.746 192.752 417.703 192.283 417.703
|
||||||
|
191.755 c h
|
||||||
|
f
|
||||||
|
426.57 189.603 m 426.711 189.603 426.848 189.58 426.973 189.525 c 427.102
|
||||||
|
189.47 427.211 189.396 427.305 189.298 c 427.398 189.205 427.473 189.091
|
||||||
|
427.527 188.963 c 427.582 188.838 427.609 188.701 427.609 188.556 c 427.609
|
||||||
|
188.412 427.582 188.279 427.527 188.154 c 427.473 188.029 427.398 187.92
|
||||||
|
427.305 187.826 c 427.211 187.732 427.102 187.658 426.973 187.603 c 426.848
|
||||||
|
187.552 426.711 187.525 426.57 187.525 c 426.426 187.525 426.289 187.552
|
||||||
|
426.164 187.603 c 426.039 187.658 425.93 187.732 425.836 187.826 c 425.742
|
||||||
|
187.92 425.668 188.029 425.613 188.154 c 425.559 188.279 425.535 188.412
|
||||||
|
425.535 188.556 c 425.535 188.701 425.559 188.838 425.613 188.963 c 425.668
|
||||||
|
189.091 425.742 189.205 425.836 189.298 c 425.93 189.396 426.039 189.47
|
||||||
|
426.164 189.525 c 426.289 189.58 426.426 189.603 426.57 189.603 c h
|
||||||
|
f
|
||||||
|
436.641 191.716 m 436.641 191.091 436.578 190.521 436.453 190.009 c 436.328
|
||||||
|
189.494 436.137 189.052 435.883 188.681 c 435.629 188.314 435.313 188.029
|
||||||
|
434.938 187.826 c 434.559 187.627 434.117 187.525 433.609 187.525 c 433.172
|
||||||
|
187.525 432.773 187.607 432.414 187.771 c 432.055 187.935 431.75 188.189
|
||||||
|
431.496 188.529 c 431.242 188.873 431.047 189.306 430.91 189.838 c 430.77
|
||||||
|
190.365 430.703 190.994 430.703 191.716 c 430.703 192.341 430.766 192.912
|
||||||
|
430.895 193.431 c 431.02 193.947 431.211 194.388 431.461 194.759 c 431.715
|
||||||
|
195.127 432.027 195.412 432.41 195.615 c 432.789 195.818 433.23 195.916
|
||||||
|
433.734 195.916 c 434.172 195.916 434.57 195.834 434.926 195.67 c 435.285
|
||||||
|
195.505 435.59 195.252 435.848 194.908 c 436.102 194.564 436.297 194.127
|
||||||
|
436.434 193.599 c 436.57 193.068 436.641 192.443 436.641 191.716 c h
|
||||||
|
435.539 191.681 m 435.539 191.822 435.535 191.963 435.523 192.103 c 435.512
|
||||||
|
192.24 435.504 192.377 435.488 192.509 c 432.035 189.943 l 432.098 189.724
|
||||||
|
432.176 189.525 432.27 189.341 c 432.367 189.158 432.48 189.002 432.617
|
||||||
|
188.869 c 432.754 188.74 432.906 188.638 433.082 188.564 c 433.254 188.49
|
||||||
|
433.449 188.455 433.672 188.455 c 433.953 188.455 434.211 188.525 434.441
|
||||||
|
188.662 c 434.676 188.798 434.871 189.002 435.035 189.275 c 435.195 189.545
|
||||||
|
435.32 189.88 435.41 190.283 c 435.496 190.685 435.539 191.15 435.539 191.681
|
||||||
|
c h
|
||||||
|
431.801 191.755 m 431.801 191.627 431.805 191.498 431.805 191.369 c 431.809
|
||||||
|
191.24 431.813 191.115 431.828 190.994 c 435.285 193.548 l 435.223 193.759
|
||||||
|
435.141 193.955 435.047 194.13 c 434.949 194.306 434.836 194.455 434.703
|
||||||
|
194.584 c 434.57 194.709 434.418 194.81 434.246 194.88 c 434.074 194.951
|
||||||
|
433.883 194.986 433.672 194.986 c 433.387 194.986 433.129 194.916 432.898
|
||||||
|
194.779 c 432.668 194.642 432.473 194.439 432.309 194.166 c 432.145 193.892
|
||||||
|
432.02 193.552 431.934 193.15 c 431.848 192.752 431.801 192.283 431.801
|
||||||
|
191.755 c h
|
||||||
|
f
|
||||||
|
443.434 187.634 m 438.301 187.634 l 438.301 188.65 l 440.402 188.65 l 440.402
|
||||||
|
194.611 l 438.445 193.548 l 438.047 194.474 l 440.645 195.841 l 441.609
|
||||||
|
195.841 l 441.609 188.65 l 443.434 188.65 l h
|
||||||
|
f
|
||||||
|
392.707 204.181 m 392.707 203.763 392.648 203.396 392.531 203.084 c 392.414
|
||||||
|
202.771 392.254 202.513 392.047 202.306 c 391.84 202.099 391.598 201.947
|
||||||
|
391.316 201.841 c 391.035 201.74 390.73 201.689 390.402 201.689 c 390.254
|
||||||
|
201.689 390.102 201.697 389.953 201.713 c 389.805 201.728 389.656 201.755
|
||||||
|
389.504 201.791 c 389.504 199.822 l 388.688 199.822 l 388.688 206.451 l
|
||||||
|
389.414 206.451 l 389.465 205.662 l 389.699 205.986 389.949 206.213 390.215
|
||||||
|
206.341 c 390.48 206.47 390.77 206.537 391.078 206.537 c 391.348 206.537
|
||||||
|
391.582 206.478 391.785 206.365 c 391.988 206.255 392.16 206.095 392.297
|
||||||
|
205.892 c 392.434 205.685 392.535 205.439 392.605 205.15 c 392.676 204.861
|
||||||
|
392.707 204.537 392.707 204.181 c h
|
||||||
|
391.875 204.146 m 391.875 204.392 391.855 204.619 391.82 204.826 c 391.785
|
||||||
|
205.029 391.727 205.209 391.648 205.353 c 391.57 205.502 391.473 205.615
|
||||||
|
391.348 205.697 c 391.227 205.783 391.082 205.822 390.914 205.822 c 390.809
|
||||||
|
205.822 390.707 205.806 390.598 205.775 c 390.492 205.74 390.383 205.685
|
||||||
|
390.27 205.611 c 390.156 205.533 390.035 205.431 389.906 205.306 c 389.781
|
||||||
|
205.177 389.645 205.021 389.504 204.834 c 389.504 202.552 l 389.652 202.49
|
||||||
|
389.809 202.439 389.977 202.404 c 390.141 202.369 390.305 202.349 390.465
|
||||||
|
202.349 c 390.902 202.349 391.25 202.498 391.5 202.798 c 391.75 203.095
|
||||||
|
391.875 203.545 391.875 204.146 c h
|
||||||
|
f
|
||||||
|
397.949 204.345 m 397.949 204.232 397.949 204.134 397.945 204.056 c 397.941
|
||||||
|
203.978 397.938 203.904 397.93 203.834 c 394.625 203.834 l 394.625 203.353
|
||||||
|
394.762 202.986 395.027 202.728 c 395.297 202.47 395.684 202.341 396.191
|
||||||
|
202.341 c 396.328 202.341 396.465 202.345 396.605 202.357 c 396.742 202.369
|
||||||
|
396.875 202.38 397.004 202.4 c 397.129 202.42 397.254 202.439 397.371 202.463
|
||||||
|
c 397.488 202.486 397.598 202.513 397.695 202.541 c 397.695 201.873 l 397.473
|
||||||
|
201.81 397.223 201.759 396.945 201.72 c 396.664 201.681 396.375 201.662
|
||||||
|
396.074 201.662 c 395.672 201.662 395.324 201.716 395.035 201.826 c 394.742
|
||||||
|
201.935 394.504 202.091 394.32 202.298 c 394.133 202.509 393.996 202.763
|
||||||
|
393.906 203.064 c 393.816 203.365 393.773 203.709 393.773 204.088 c 393.773
|
||||||
|
204.42 393.82 204.732 393.914 205.029 c 394.012 205.322 394.148 205.584
|
||||||
|
394.332 205.806 c 394.516 206.029 394.738 206.209 395.004 206.338 c 395.27
|
||||||
|
206.47 395.574 206.537 395.91 206.537 c 396.238 206.537 396.527 206.482
|
||||||
|
396.781 206.38 c 397.035 206.279 397.25 206.13 397.422 205.943 c 397.594
|
||||||
|
205.752 397.727 205.525 397.816 205.252 c 397.906 204.982 397.949 204.681
|
||||||
|
397.949 204.345 c h
|
||||||
|
397.102 204.463 m 397.109 204.673 397.09 204.865 397.039 205.037 c 396.988
|
||||||
|
205.213 396.914 205.361 396.809 205.486 c 396.703 205.611 396.574 205.709
|
||||||
|
396.418 205.779 c 396.262 205.849 396.078 205.884 395.871 205.884 c 395.695
|
||||||
|
205.884 395.531 205.849 395.387 205.779 c 395.238 205.713 395.113 205.615
|
||||||
|
395.004 205.49 c 394.898 205.365 394.813 205.216 394.746 205.041 c 394.684
|
||||||
|
204.865 394.641 204.673 394.625 204.463 c h
|
||||||
|
f
|
||||||
|
399.453 206.451 m 400.199 206.451 l 400.223 205.584 l 400.5 205.92 400.773
|
||||||
|
206.162 401.047 206.31 c 401.316 206.459 401.59 206.537 401.863 206.537
|
||||||
|
c 402.352 206.537 402.719 206.377 402.973 206.06 c 403.223 205.748 403.34
|
||||||
|
205.279 403.32 204.654 c 402.496 204.654 l 402.504 205.068 402.445 205.369
|
||||||
|
402.316 205.552 c 402.188 205.74 401.996 205.834 401.746 205.834 c 401.637
|
||||||
|
205.834 401.527 205.814 401.414 205.775 c 401.305 205.736 401.191 205.673
|
||||||
|
401.074 205.588 c 400.957 205.502 400.832 205.388 400.699 205.255 c 400.57
|
||||||
|
205.123 400.43 204.959 400.277 204.767 c 400.277 201.744 l 399.453 201.744
|
||||||
|
l h
|
||||||
|
f
|
||||||
|
408.727 207.607 m 408.297 207.701 407.93 207.744 407.621 207.744 c 406.887
|
||||||
|
207.744 406.52 207.361 406.52 206.591 c 406.52 205.767 l 408.582 205.767
|
||||||
|
l 408.582 205.088 l 406.52 205.088 l 406.52 201.744 l 405.688 201.744 l
|
||||||
|
405.688 205.088 l 404.176 205.088 l 404.176 205.767 l 405.688 205.767 l
|
||||||
|
405.688 206.545 l 405.688 207.798 406.34 208.423 407.648 208.423 c 407.973
|
||||||
|
208.423 408.332 208.388 408.727 208.31 c h
|
||||||
|
f
|
||||||
|
390.383 191.279 m 388.992 191.279 l 388.992 191.947 l 391.207 191.947 l
|
||||||
|
391.207 186.005 l 392.609 186.005 l 392.609 185.326 l 388.836 185.326 l
|
||||||
|
388.836 186.005 l 390.383 186.005 l h
|
||||||
|
f
|
||||||
|
398.164 187.716 m 398.164 187.349 398.113 187.013 398.012 186.709 c 397.906
|
||||||
|
186.404 397.758 186.146 397.566 185.927 c 397.371 185.709 397.137 185.541
|
||||||
|
396.855 185.42 c 396.578 185.302 396.262 185.24 395.91 185.24 c 395.574
|
||||||
|
185.24 395.27 185.295 395.004 185.396 c 394.734 185.502 394.508 185.658
|
||||||
|
394.324 185.861 c 394.137 186.064 393.996 186.314 393.898 186.615 c 393.797
|
||||||
|
186.916 393.75 187.259 393.75 187.65 c 393.75 188.017 393.801 188.349 393.902
|
||||||
|
188.65 c 394.008 188.951 394.156 189.213 394.348 189.427 c 394.543 189.646
|
||||||
|
394.777 189.814 395.059 189.935 c 395.336 190.056 395.652 190.115 396.004
|
||||||
|
190.115 c 396.34 190.115 396.645 190.064 396.91 189.959 c 397.18 189.853
|
||||||
|
397.406 189.701 397.59 189.498 c 397.777 189.298 397.918 189.048 398.016
|
||||||
|
188.748 c 398.117 188.447 398.164 188.103 398.164 187.716 c h
|
||||||
|
397.332 187.677 m 397.332 187.97 397.297 188.224 397.234 188.439 c 397.172
|
||||||
|
188.658 397.078 188.838 396.961 188.982 c 396.84 189.13 396.695 189.24
|
||||||
|
396.527 189.31 c 396.355 189.384 396.168 189.423 395.957 189.423 c 395.715
|
||||||
|
189.423 395.504 189.373 395.332 189.279 c 395.156 189.185 395.016 189.056
|
||||||
|
394.906 188.896 c 394.793 188.736 394.711 188.552 394.66 188.341 c 394.609
|
||||||
|
188.13 394.582 187.908 394.582 187.677 c 394.582 187.388 394.617 187.134
|
||||||
|
394.68 186.916 c 394.742 186.697 394.836 186.513 394.953 186.369 c 395.074
|
||||||
|
186.224 395.215 186.115 395.387 186.041 c 395.555 185.966 395.746 185.931
|
||||||
|
395.957 185.931 c 396.199 185.931 396.41 185.978 396.582 186.072 c 396.758
|
||||||
|
186.17 396.898 186.295 397.008 186.455 c 397.121 186.615 397.203 186.798
|
||||||
|
397.254 187.009 c 397.305 187.22 397.332 187.443 397.332 187.677 c h
|
||||||
|
f
|
||||||
|
403.082 186.611 m 403.082 186.443 403.055 186.295 402.996 186.166 c 402.941
|
||||||
|
186.033 402.863 185.916 402.77 185.814 c 402.672 185.713 402.559 185.627
|
||||||
|
402.43 185.556 c 402.301 185.482 402.164 185.423 402.02 185.377 c 401.875
|
||||||
|
185.33 401.727 185.295 401.574 185.275 c 401.418 185.252 401.27 185.24
|
||||||
|
401.121 185.24 c 400.805 185.24 400.512 185.255 400.242 185.283 c 399.977
|
||||||
|
185.31 399.715 185.357 399.457 185.42 c 399.457 186.17 l 399.734 186.091
|
||||||
|
400.008 186.033 400.277 185.99 c 400.551 185.951 400.82 185.931 401.09
|
||||||
|
185.931 c 401.48 185.931 401.77 185.982 401.957 186.088 c 402.145 186.197
|
||||||
|
402.238 186.345 402.238 186.545 c 402.238 186.627 402.223 186.705 402.195
|
||||||
|
186.771 c 402.164 186.838 402.109 186.904 402.031 186.963 c 401.953 187.025
|
||||||
|
401.832 187.088 401.668 187.154 c 401.504 187.22 401.281 187.295 400.996
|
||||||
|
187.377 c 400.785 187.439 400.586 187.513 400.406 187.591 c 400.227 187.67
|
||||||
|
400.074 187.767 399.941 187.877 c 399.809 187.986 399.707 188.111 399.633
|
||||||
|
188.259 c 399.559 188.408 399.52 188.58 399.52 188.779 c 399.52 188.912
|
||||||
|
399.551 189.056 399.609 189.213 c 399.672 189.369 399.777 189.513 399.922
|
||||||
|
189.646 c 400.07 189.783 400.27 189.892 400.52 189.982 c 400.77 190.072
|
||||||
|
401.082 190.115 401.457 190.115 c 401.641 190.115 401.844 190.107 402.07
|
||||||
|
190.084 c 402.293 190.064 402.527 190.029 402.773 189.978 c 402.773 189.252
|
||||||
|
l 402.516 189.314 402.273 189.361 402.043 189.392 c 401.813 189.42 401.613
|
||||||
|
189.435 401.445 189.435 c 401.242 189.435 401.07 189.42 400.934 189.388
|
||||||
|
c 400.793 189.357 400.68 189.314 400.594 189.259 c 400.508 189.205 400.449
|
||||||
|
189.142 400.41 189.068 c 400.371 188.994 400.355 188.916 400.355 188.83
|
||||||
|
c 400.355 188.748 400.371 188.67 400.402 188.603 c 400.438 188.533 400.496
|
||||||
|
188.466 400.586 188.404 c 400.676 188.338 400.801 188.275 400.957 188.209
|
||||||
|
c 401.117 188.146 401.324 188.076 401.582 188.002 c 401.859 187.92 402.094
|
||||||
|
187.834 402.285 187.748 c 402.477 187.658 402.629 187.556 402.75 187.447
|
||||||
|
c 402.867 187.338 402.953 187.216 403.004 187.08 c 403.055 186.939 403.082
|
||||||
|
186.783 403.082 186.611 c h
|
||||||
|
f
|
||||||
|
408.371 186.611 m 408.371 186.443 408.34 186.295 408.285 186.166 c 408.23
|
||||||
|
186.033 408.152 185.916 408.055 185.814 c 407.957 185.713 407.848 185.627
|
||||||
|
407.719 185.556 c 407.59 185.482 407.453 185.423 407.309 185.377 c 407.164
|
||||||
|
185.33 407.012 185.295 406.859 185.275 c 406.707 185.252 406.559 185.24
|
||||||
|
406.41 185.24 c 406.09 185.24 405.797 185.255 405.531 185.283 c 405.266
|
||||||
|
185.31 405.004 185.357 404.746 185.42 c 404.746 186.17 l 405.02 186.091
|
||||||
|
405.293 186.033 405.566 185.99 c 405.84 185.951 406.109 185.931 406.379
|
||||||
|
185.931 c 406.77 185.931 407.059 185.982 407.246 186.088 c 407.434 186.197
|
||||||
|
407.527 186.345 407.527 186.545 c 407.527 186.627 407.512 186.705 407.48
|
||||||
|
186.771 c 407.453 186.838 407.398 186.904 407.32 186.963 c 407.242 187.025
|
||||||
|
407.121 187.088 406.957 187.154 c 406.793 187.22 406.566 187.295 406.285
|
||||||
|
187.377 c 406.07 187.439 405.875 187.513 405.695 187.591 c 405.516 187.67
|
||||||
|
405.359 187.767 405.23 187.877 c 405.098 187.986 404.996 188.111 404.918
|
||||||
|
188.259 c 404.844 188.408 404.809 188.58 404.809 188.779 c 404.809 188.912
|
||||||
|
404.836 189.056 404.898 189.213 c 404.961 189.369 405.063 189.513 405.211
|
||||||
|
189.646 c 405.355 189.783 405.555 189.892 405.805 189.982 c 406.055 190.072
|
||||||
|
406.367 190.115 406.742 190.115 c 406.926 190.115 407.133 190.107 407.355
|
||||||
|
190.084 c 407.582 190.064 407.816 190.029 408.059 189.978 c 408.059 189.252
|
||||||
|
l 407.805 189.314 407.563 189.361 407.332 189.392 c 407.102 189.42 406.902
|
||||||
|
189.435 406.734 189.435 c 406.531 189.435 406.359 189.42 406.219 189.388
|
||||||
|
c 406.082 189.357 405.969 189.314 405.883 189.259 c 405.797 189.205 405.734
|
||||||
|
189.142 405.699 189.068 c 405.66 188.994 405.641 188.916 405.641 188.83
|
||||||
|
c 405.641 188.748 405.656 188.67 405.691 188.603 c 405.723 188.533 405.785
|
||||||
|
188.466 405.875 188.404 c 405.961 188.338 406.086 188.275 406.246 188.209
|
||||||
|
c 406.406 188.146 406.613 188.076 406.871 188.002 c 407.148 187.92 407.383
|
||||||
|
187.834 407.574 187.748 c 407.762 187.658 407.918 187.556 408.035 187.447
|
||||||
|
c 408.156 187.338 408.242 187.216 408.293 187.08 c 408.344 186.939 408.371
|
||||||
|
186.783 408.371 186.611 c h
|
||||||
|
f
|
||||||
|
1 g
|
||||||
|
16.999975 w
|
||||||
|
q 1 0 0 -1 0 279.189087 cm
|
||||||
|
474.211 121.281 m 474.211 159.207 443.246 189.949 405.047 189.949 c 366.848
|
||||||
|
189.949 335.883 159.207 335.883 121.281 c 335.883 83.359 366.848 52.617
|
||||||
|
405.047 52.617 c 443.246 52.617 474.211 83.359 474.211 121.281 c h
|
||||||
|
S Q
|
||||||
|
463.121 88.627 m 475.383 100.888 l 521.199 55.068 l 508.938 42.806 l h
|
||||||
|
f
|
||||||
|
454.246 102.189 m 461.977 109.92 l 475.324 96.568 l 467.598 88.841 l h
|
||||||
|
f
|
||||||
|
155.125 126.048 m 155.125 110.97 149.75 99.56 139.004 91.814 c 129.512
|
||||||
|
84.904 116.672 81.451 100.48 81.451 c 92.73 81.451 82.508 83.545 69.805
|
||||||
|
87.732 c 71.898 107.623 l 83.695 102.806 94.059 100.4 102.992 100.4 c 110.25
|
||||||
|
100.4 116.672 102.248 122.254 105.947 c 129.023 110.482 132.41 116.763
|
||||||
|
132.41 124.791 c 132.41 133.865 126.824 141.505 115.66 147.716 c 105.328
|
||||||
|
153.091 95.035 158.502 84.777 163.943 c 73.609 171.83 68.027 182.369 68.027
|
||||||
|
195.56 c 68.027 208.4 72.668 218.521 81.949 225.92 c 90.672 232.826 102.051
|
||||||
|
236.283 116.078 236.283 c 127.313 236.283 137.957 234.502 148.008 230.943
|
||||||
|
c 144.973 211.158 l 134.434 215.345 125.082 217.439 116.914 217.439 c 99.469
|
||||||
|
217.439 90.742 210.775 90.742 197.443 c 90.742 189.904 96.328 183.134 107.492
|
||||||
|
177.134 c 126.824 166.806 137.121 161.15 138.375 160.173 c 149.543 151.521
|
||||||
|
155.125 140.146 155.125 126.048 c h
|
||||||
|
f
|
||||||
|
306.922 160.173 m 306.922 135.47 299.77 116.521 285.461 103.33 c 271.641
|
||||||
|
90.49 252.207 84.068 227.152 84.068 c 182.973 84.068 l 182.973 233.771
|
||||||
|
l 227.152 233.771 l 250.043 233.771 268.887 227.244 283.684 214.193 c 299.176
|
||||||
|
200.654 306.922 182.646 306.922 160.173 c h
|
||||||
|
284.207 159.338 m 284.203 176.365 278.938 189.974 268.398 200.166 c 258.348
|
||||||
|
209.935 245.367 214.822 229.453 214.822 c 204.434 214.822 l 204.434 102.912
|
||||||
|
l 226.941 102.912 l 265.117 102.912 284.203 121.72 284.207 159.338 c h
|
||||||
|
f
|
||||||
|
85.898 50.482 m 85.898 48.33 85.129 46.701 83.594 45.595 c 82.238 44.607
|
||||||
|
80.406 44.115 78.094 44.115 c 76.988 44.115 75.527 44.412 73.715 45.009
|
||||||
|
c 74.012 47.853 l 75.695 47.166 77.176 46.822 78.453 46.822 c 79.488 46.822
|
||||||
|
80.406 47.084 81.203 47.611 c 82.168 48.259 82.652 49.158 82.652 50.302
|
||||||
|
c 82.652 51.599 81.855 52.689 80.262 53.576 c 78.785 54.345 77.316 55.115
|
||||||
|
75.852 55.892 c 74.258 57.021 73.461 58.525 73.461 60.408 c 73.461 62.24
|
||||||
|
74.121 63.685 75.449 64.744 c 76.695 65.728 78.316 66.224 80.32 66.224
|
||||||
|
c 81.926 66.224 83.445 65.97 84.879 65.459 c 84.445 62.634 l 82.941 63.232
|
||||||
|
81.605 63.533 80.441 63.533 c 77.949 63.533 76.703 62.58 76.703 60.677
|
||||||
|
c 76.703 59.599 77.5 58.634 79.094 57.779 c 81.855 56.302 83.324 55.494
|
||||||
|
83.504 55.357 c 85.098 54.119 85.898 52.494 85.898 50.482 c h
|
||||||
|
f
|
||||||
|
104.625 52.291 m 104.625 50.017 103.891 48.099 102.414 46.537 c 100.91
|
||||||
|
44.923 99.008 44.115 96.703 44.115 c 94.383 44.115 92.465 44.923 90.949
|
||||||
|
46.537 c 89.473 48.099 88.738 50.017 88.738 52.291 c 88.738 54.681 89.473
|
||||||
|
56.642 90.941 58.173 c 92.41 59.705 94.332 60.466 96.703 60.466 c 99.055
|
||||||
|
60.466 100.965 59.705 102.43 58.173 c 103.895 56.642 104.625 54.681 104.625
|
||||||
|
52.291 c h
|
||||||
|
101.563 52.291 m 101.563 53.865 101.133 55.213 100.277 56.326 c 99.359
|
||||||
|
57.533 98.168 58.134 96.703 58.134 c 95.219 58.134 94.012 57.533 93.086
|
||||||
|
56.326 c 92.23 55.213 91.801 53.865 91.801 52.291 c 91.801 50.736 92.195
|
||||||
|
49.416 92.98 48.33 c 93.879 47.076 95.121 46.447 96.703 46.447 c 98.27
|
||||||
|
46.447 99.5 47.076 100.398 48.33 c 101.172 49.416 101.563 50.736 101.563
|
||||||
|
52.291 c h
|
||||||
|
f
|
||||||
|
117.527 67.627 m 117.406 65.31 l 117.07 65.431 116.609 65.49 116.031 65.49
|
||||||
|
c 114.875 65.49 114.094 65.123 113.684 64.384 c 113.387 63.865 113.238
|
||||||
|
62.998 113.238 61.783 c 113.238 60.095 l 117.379 60.095 l 117.379 57.779
|
||||||
|
l 113.238 57.779 l 113.238 44.49 l 110.367 44.49 l 110.367 57.779 l 106.691
|
||||||
|
57.779 l 106.691 60.095 l 110.367 60.095 l 110.367 61.545 l 110.367 63.627
|
||||||
|
110.707 65.146 111.383 66.103 c 112.199 67.248 113.605 67.822 115.598 67.822
|
||||||
|
c 116.105 67.822 116.75 67.759 117.527 67.627 c h
|
||||||
|
f
|
||||||
|
128.934 44.548 m 127.938 44.259 127.117 44.115 126.48 44.115 c 123.281
|
||||||
|
44.115 121.684 45.63 121.684 48.658 c 121.684 57.779 l 118.156 57.779 l
|
||||||
|
118.156 60.095 l 121.684 60.095 l 121.684 63.713 l 124.555 64.638 l 124.555
|
||||||
|
60.095 l 128.695 60.095 l 128.695 57.779 l 124.555 57.779 l 124.555 49.228
|
||||||
|
l 124.555 48.361 124.793 47.673 125.27 47.166 c 125.719 46.685 126.285
|
||||||
|
46.447 126.973 46.447 c 127.711 46.447 128.363 46.63 128.934 46.998 c h
|
||||||
|
f
|
||||||
|
154.973 60.095 m 149.965 44.49 l 146.617 44.49 l 142.582 57.599 l 142.52
|
||||||
|
57.599 l 138.574 44.49 l 135.227 44.49 l 130.219 60.095 l 133.371 60.095
|
||||||
|
l 136.945 47.177 l 137.004 47.177 l 140.98 60.095 l 144.391 60.095 l 148.305
|
||||||
|
47.177 l 148.367 47.177 l 152.164 60.095 l h
|
||||||
|
f
|
||||||
|
170.102 44.49 m 167.41 44.49 l 167.41 46.505 l 167.352 46.505 l 166.215
|
||||||
|
44.912 164.598 44.115 162.508 44.115 c 160.742 44.115 159.367 44.502 158.379
|
||||||
|
45.279 c 157.313 46.119 156.781 47.353 156.781 48.986 c 156.781 50.759
|
||||||
|
157.617 52.107 159.293 53.025 c 160.629 53.759 162.211 54.13 164.047 54.13
|
||||||
|
c 165.332 54.13 166.348 54.111 167.094 54.068 c 167.094 55.466 166.816
|
||||||
|
56.482 166.258 57.119 c 165.652 57.798 164.645 58.134 163.238 58.134 c 161.484
|
||||||
|
58.134 159.977 57.607 158.711 56.552 c 158.559 59.002 l 160.203 59.978
|
||||||
|
161.918 60.466 163.703 60.466 c 165.895 60.466 167.5 59.923 168.516 58.838
|
||||||
|
c 169.492 57.791 169.98 56.181 169.98 54.009 c 169.98 47.552 l 169.98 46.119
|
||||||
|
170.02 45.095 170.102 44.49 c h
|
||||||
|
167.094 50.556 m 167.094 51.931 l 166.895 51.931 166.594 51.943 166.184
|
||||||
|
51.963 c 165.773 51.982 165.473 51.994 165.273 51.994 c 161.656 51.994
|
||||||
|
159.844 50.99 159.844 48.986 c 159.844 48.22 160.164 47.591 160.801 47.103
|
||||||
|
c 161.371 46.666 162.023 46.447 162.762 46.447 c 164.137 46.447 165.211
|
||||||
|
46.841 165.988 47.627 c 166.727 48.365 167.094 49.341 167.094 50.556 c
|
||||||
|
h
|
||||||
|
f
|
||||||
|
183.598 57.689 m 183.148 57.865 182.617 57.955 182 57.955 c 180.703 57.955
|
||||||
|
179.668 57.384 178.898 56.236 c 178.125 55.091 177.738 53.541 177.738 51.588
|
||||||
|
c 177.738 44.49 l 174.867 44.49 l 174.867 60.095 l 177.559 60.095 l 177.559
|
||||||
|
57.689 l 177.621 57.689 l 178.008 58.505 178.578 59.173 179.332 59.689
|
||||||
|
c 180.082 60.209 180.871 60.466 181.699 60.466 c 182.25 60.466 182.883 60.396
|
||||||
|
183.598 60.259 c h
|
||||||
|
f
|
||||||
|
199.922 51.65 m 188.785 51.65 l 188.785 50.142 189.305 48.892 190.34 47.896
|
||||||
|
c 191.328 46.931 192.523 46.447 193.926 46.447 c 194.793 46.447 195.746
|
||||||
|
46.634 196.781 47.013 c 197.668 47.334 198.324 47.666 198.742 48.017 c
|
||||||
|
198.742 45.13 l 196.867 44.455 195.223 44.115 193.809 44.115 c 191.117 44.115
|
||||||
|
189.078 44.892 187.695 46.447 c 186.379 47.9 185.723 49.943 185.723 52.576
|
||||||
|
c 185.723 54.896 186.395 56.795 187.738 58.263 c 189.086 59.732 190.852
|
||||||
|
60.466 193.047 60.466 c 197.629 60.466 199.922 57.529 199.922 51.65 c h
|
||||||
|
196.871 53.802 m 196.871 55.037 196.535 56.056 195.855 56.865 c 195.137
|
||||||
|
57.713 194.184 58.134 192.984 58.134 c 191.691 58.134 190.664 57.666 189.906
|
||||||
|
56.732 c 189.289 55.955 188.914 54.978 188.785 53.802 c h
|
||||||
|
f
|
||||||
|
230.086 55.357 m 230.086 51.826 229.066 49.123 227.023 47.24 c 225.051
|
||||||
|
45.404 222.273 44.49 218.695 44.49 c 212.391 44.49 l 212.391 65.865 l 218.695
|
||||||
|
65.865 l 221.965 65.865 224.656 64.931 226.77 63.068 c 228.98 61.134 230.086
|
||||||
|
58.564 230.086 55.357 c h
|
||||||
|
226.844 55.236 m 226.844 57.666 226.09 59.611 224.586 61.064 c 223.152
|
||||||
|
62.463 221.297 63.158 219.027 63.158 c 215.453 63.158 l 215.453 47.177 l
|
||||||
|
218.668 47.177 l 224.117 47.177 226.844 49.865 226.844 55.236 c h
|
||||||
|
f
|
||||||
|
247.578 51.65 m 236.441 51.65 l 236.441 50.142 236.957 48.892 237.996 47.896
|
||||||
|
c 238.98 46.931 240.176 46.447 241.582 46.447 c 242.449 46.447 243.402
|
||||||
|
46.634 244.438 47.013 c 245.324 47.334 245.977 47.666 246.395 48.017 c 246.395
|
||||||
|
45.13 l 244.523 44.455 242.879 44.115 241.465 44.115 c 238.773 44.115 236.734
|
||||||
|
44.892 235.348 46.447 c 234.035 47.9 233.375 49.943 233.375 52.576 c 233.375
|
||||||
|
54.896 234.047 56.795 235.395 58.263 c 236.738 59.732 238.508 60.466 240.699
|
||||||
|
60.466 c 245.285 60.466 247.578 57.529 247.578 51.65 c h
|
||||||
|
244.527 53.802 m 244.527 55.037 244.188 56.056 243.512 56.865 c 242.793
|
||||||
|
57.713 241.836 58.134 240.641 58.134 c 239.344 58.134 238.32 57.666 237.563
|
||||||
|
56.732 c 236.945 55.955 236.57 54.978 236.441 53.802 c h
|
||||||
|
f
|
||||||
|
259.879 48.986 m 259.879 47.412 259.32 46.189 258.207 45.31 c 257.199 44.513
|
||||||
|
255.938 44.115 254.422 44.115 c 252.641 44.115 251.215 44.404 250.148 44.982
|
||||||
|
c 250.297 47.552 l 251.434 46.814 252.629 46.447 253.887 46.447 c 254.664
|
||||||
|
46.447 255.316 46.611 255.844 46.939 c 256.492 47.33 256.816 47.912 256.816
|
||||||
|
48.689 c 256.816 49.447 256.23 50.142 255.066 50.783 c 253.98 51.369 252.895
|
||||||
|
51.959 251.809 52.545 c 250.641 53.38 250.059 54.423 250.059 55.67 c 250.059
|
||||||
|
57.224 250.586 58.431 251.645 59.287 c 252.629 60.076 253.934 60.466 255.559
|
||||||
|
60.466 c 256.574 60.466 257.773 60.263 259.148 59.853 c 258.906 57.345
|
||||||
|
l 258.598 57.533 258.094 57.716 257.398 57.896 c 256.738 58.056 256.23 58.134
|
||||||
|
255.875 58.134 c 255.086 58.134 254.441 57.982 253.945 57.673 c 253.387
|
||||||
|
57.334 253.109 56.857 253.109 56.236 c 253.109 55.392 253.695 54.662 254.871
|
||||||
|
54.056 c 255.957 53.498 257.043 52.939 258.129 52.38 c 259.297 51.545 259.879
|
||||||
|
50.412 259.879 48.986 c h
|
||||||
|
f
|
||||||
|
266.785 63.591 m 263.543 63.591 l 263.543 66.838 l 266.785 66.838 l h
|
||||||
|
266.605 44.49 m 263.723 44.49 l 263.723 60.095 l 266.605 60.095 l h
|
||||||
|
f
|
||||||
|
285.648 45.162 m 285.648 40.177 282.969 37.685 277.609 37.685 c 275.965
|
||||||
|
37.685 274.094 38.045 272.004 38.763 c 272.316 41.423 l 274.359 40.486
|
||||||
|
276.234 40.017 277.938 40.017 c 279.453 40.017 280.637 40.498 281.496 41.455
|
||||||
|
c 282.352 42.412 282.781 43.716 282.781 45.369 c 282.781 46.908 l 282.719
|
||||||
|
46.908 l 281.504 45.295 279.762 44.49 277.488 44.49 c 275.355 44.49 273.68
|
||||||
|
45.267 272.465 46.822 c 271.359 48.224 270.805 50.009 270.805 52.17 c 270.805
|
||||||
|
54.373 271.379 56.255 272.527 57.822 c 273.82 59.588 275.574 60.466 277.789
|
||||||
|
60.466 c 280.297 60.466 282.012 59.572 282.93 57.779 c 282.988 57.779 l
|
||||||
|
282.988 60.095 l 285.648 60.095 l h
|
||||||
|
282.781 52.111 m 282.781 53.838 282.402 55.248 281.645 56.341 c 280.816
|
||||||
|
57.537 279.676 58.134 278.223 58.134 c 276.867 58.134 275.773 57.502 274.945
|
||||||
|
56.236 c 274.23 55.111 273.871 53.806 273.871 52.322 c 273.871 50.795 274.258
|
||||||
|
49.509 275.035 48.463 c 275.855 47.369 276.914 46.822 278.223 46.822 c
|
||||||
|
279.547 46.822 280.641 47.338 281.508 48.373 c 282.355 49.38 282.781 50.627
|
||||||
|
282.781 52.111 c h
|
||||||
|
f
|
||||||
|
304.367 44.49 m 301.496 44.49 l 301.496 52.576 l 301.496 54.47 301.258
|
||||||
|
55.845 300.777 56.701 c 300.27 57.627 299.406 58.107 298.191 58.134 c 296.617
|
||||||
|
58.185 295.418 57.603 294.59 56.388 c 293.82 55.259 293.438 53.701 293.438
|
||||||
|
51.709 c 293.438 44.49 l 290.566 44.49 l 290.566 60.095 l 293.348 60.095
|
||||||
|
l 293.348 57.627 l 293.41 57.627 l 293.836 58.494 294.52 59.185 295.457
|
||||||
|
59.697 c 296.395 60.213 297.414 60.466 298.52 60.466 c 302.418 60.466 304.367
|
||||||
|
58.236 304.367 53.771 c h
|
||||||
|
f
|
||||||
|
330.047 44.49 m 327.355 44.49 l 327.355 46.505 l 327.297 46.505 l 326.16
|
||||||
|
44.912 324.547 44.115 322.453 44.115 c 320.688 44.115 319.313 44.502 318.328
|
||||||
|
45.279 c 317.262 46.119 316.727 47.353 316.727 48.986 c 316.727 50.759
|
||||||
|
317.566 52.107 319.238 53.025 c 320.574 53.759 322.16 54.13 323.992 54.13
|
||||||
|
c 325.277 54.13 326.293 54.111 327.043 54.068 c 327.043 55.466 326.762
|
||||||
|
56.482 326.203 57.119 c 325.598 57.798 324.59 58.134 323.184 58.134 c 321.43
|
||||||
|
58.134 319.922 57.607 318.656 56.552 c 318.508 59.002 l 320.152 59.978
|
||||||
|
321.863 60.466 323.648 60.466 c 325.84 60.466 327.445 59.923 328.461 58.838
|
||||||
|
c 329.438 57.791 329.926 56.181 329.926 54.009 c 329.926 47.552 l 329.926
|
||||||
|
46.119 329.965 45.095 330.047 44.49 c h
|
||||||
|
327.043 50.556 m 327.043 51.931 l 326.844 51.931 326.539 51.943 326.129
|
||||||
|
51.963 c 325.723 51.982 325.418 51.994 325.219 51.994 c 321.602 51.994
|
||||||
|
319.793 50.99 319.793 48.986 c 319.793 48.22 320.109 47.591 320.75 47.103
|
||||||
|
c 321.316 46.666 321.969 46.447 322.707 46.447 c 324.082 46.447 325.16
|
||||||
|
46.841 325.938 47.627 c 326.672 48.365 327.043 49.341 327.043 50.556 c h
|
||||||
|
f
|
||||||
|
348.613 44.49 m 345.742 44.49 l 345.742 52.576 l 345.742 54.47 345.504
|
||||||
|
55.845 345.023 56.701 c 344.516 57.627 343.652 58.107 342.438 58.134 c 340.863
|
||||||
|
58.185 339.664 57.603 338.836 56.388 c 338.07 55.259 337.684 53.701 337.684
|
||||||
|
51.709 c 337.684 44.49 l 334.816 44.49 l 334.816 60.095 l 337.594 60.095
|
||||||
|
l 337.594 57.627 l 337.656 57.627 l 338.082 58.494 338.766 59.185 339.703
|
||||||
|
59.697 c 340.641 60.213 341.66 60.466 342.766 60.466 c 346.664 60.466 348.613
|
||||||
|
58.236 348.613 53.771 c h
|
||||||
|
f
|
||||||
|
367.328 44.49 m 364.578 44.49 l 364.578 46.685 l 364.516 46.685 l 363.391
|
||||||
|
44.97 361.617 44.115 359.195 44.115 c 356.984 44.115 355.273 44.99 354.066
|
||||||
|
46.744 c 353.012 48.279 352.484 50.224 352.484 52.576 c 352.484 54.806
|
||||||
|
353.043 56.646 354.156 58.091 c 355.375 59.677 357.063 60.466 359.227 60.466
|
||||||
|
c 361.637 60.466 363.359 59.63 364.398 57.955 c 364.457 57.955 l 364.457
|
||||||
|
67.447 l 367.328 67.447 l h
|
||||||
|
364.457 52.259 m 364.457 53.857 364.078 55.201 363.32 56.298 c 362.465
|
||||||
|
57.521 361.305 58.134 359.84 58.134 c 358.383 58.134 357.277 57.529 356.52
|
||||||
|
56.314 c 355.871 55.275 355.547 53.955 355.547 52.349 c 355.547 50.896
|
||||||
|
355.883 49.607 356.551 48.478 c 357.348 47.123 358.453 46.447 359.867 46.447
|
||||||
|
c 361.363 46.447 362.535 47.088 363.383 48.373 c 364.098 49.47 364.457
|
||||||
|
50.767 364.457 52.259 c h
|
||||||
|
f
|
||||||
|
400.484 55.177 m 400.484 52.775 399.98 50.685 398.98 48.912 c 397.98 47.138
|
||||||
|
396.563 45.849 394.727 45.041 c 399.691 40.541 l 395.895 40.541 l 391.902
|
||||||
|
44.248 l 391.414 44.158 390.848 44.115 390.199 44.115 c 386.988 44.115
|
||||||
|
384.457 45.146 382.605 47.209 c 380.813 49.213 379.914 51.869 379.914 55.177
|
||||||
|
c 379.914 58.416 380.816 61.045 382.621 63.068 c 384.492 65.17 387.02 66.224
|
||||||
|
390.199 66.224 c 393.367 66.224 395.895 65.17 397.777 63.068 c 399.582
|
||||||
|
61.045 400.484 58.416 400.484 55.177 c h
|
||||||
|
397.238 55.177 m 397.238 57.509 396.652 59.443 395.477 60.974 c 394.188
|
||||||
|
62.681 392.43 63.533 390.199 63.533 c 387.957 63.533 386.191 62.681 384.906
|
||||||
|
60.974 c 383.742 59.443 383.156 57.509 383.156 55.177 c 383.156 52.845
|
||||||
|
383.715 50.916 384.832 49.392 c 386.086 47.677 387.875 46.822 390.199 46.822
|
||||||
|
c 392.512 46.822 394.301 47.677 395.566 49.392 c 396.68 50.916 397.238
|
||||||
|
52.845 397.238 55.177 c h
|
||||||
|
f
|
||||||
|
418.332 44.49 m 415.551 44.49 l 415.551 46.97 l 415.492 46.97 l 415.07
|
||||||
|
46.091 414.391 45.396 413.449 44.884 c 412.508 44.373 411.484 44.115 410.379
|
||||||
|
44.115 c 406.48 44.115 404.535 46.353 404.535 50.826 c 404.535 60.095 l
|
||||||
|
407.402 60.095 l 407.402 52.021 l 407.402 50.127 407.645 48.752 408.121
|
||||||
|
47.896 c 408.629 46.959 409.496 46.474 410.723 46.447 c 412.297 46.408
|
||||||
|
413.492 46.994 414.309 48.209 c 415.078 49.326 415.461 50.88 415.461 52.873
|
||||||
|
c 415.461 60.095 l 418.332 60.095 l h
|
||||||
|
f
|
||||||
|
435.52 44.49 m 432.832 44.49 l 432.832 46.505 l 432.77 46.505 l 431.633
|
||||||
|
44.912 430.02 44.115 427.926 44.115 c 426.164 44.115 424.789 44.502 423.801
|
||||||
|
45.279 c 422.734 46.119 422.203 47.353 422.203 48.986 c 422.203 50.759
|
||||||
|
423.039 52.107 424.715 53.025 c 426.051 53.759 427.633 54.13 429.469 54.13
|
||||||
|
c 430.754 54.13 431.77 54.111 432.516 54.068 c 432.516 55.466 432.238 56.482
|
||||||
|
431.68 57.119 c 431.07 57.798 430.066 58.134 428.66 58.134 c 426.906 58.134
|
||||||
|
425.395 57.607 424.129 56.552 c 423.98 59.002 l 425.625 59.978 427.34 60.466
|
||||||
|
429.125 60.466 c 431.316 60.466 432.922 59.923 433.938 58.838 c 434.914
|
||||||
|
57.791 435.402 56.181 435.402 54.009 c 435.402 47.552 l 435.402 46.119
|
||||||
|
435.441 45.095 435.52 44.49 c h
|
||||||
|
432.516 50.556 m 432.516 51.931 l 432.316 51.931 432.012 51.943 431.605
|
||||||
|
51.963 c 431.195 51.982 430.891 51.994 430.691 51.994 c 427.074 51.994
|
||||||
|
425.266 50.99 425.266 48.986 c 425.266 48.22 425.586 47.591 426.223 47.103
|
||||||
|
c 426.793 46.666 427.445 46.447 428.18 46.447 c 429.559 46.447 430.633
|
||||||
|
46.841 431.41 47.627 c 432.148 48.365 432.516 49.341 432.516 50.556 c h
|
||||||
|
f
|
||||||
|
440.648 67.447 2.887 -22.957 re f
|
||||||
|
452.203 63.591 m 448.961 63.591 l 448.961 66.838 l 452.203 66.838 l h
|
||||||
|
452.023 44.49 m 449.141 44.49 l 449.141 60.095 l 452.023 60.095 l h
|
||||||
|
f
|
||||||
|
465.805 44.548 m 464.809 44.259 463.992 44.115 463.355 44.115 c 460.156
|
||||||
|
44.115 458.555 45.63 458.555 48.658 c 458.555 57.779 l 455.027 57.779 l
|
||||||
|
455.027 60.095 l 458.555 60.095 l 458.555 63.713 l 461.426 64.638 l 461.426
|
||||||
|
60.095 l 465.566 60.095 l 465.566 57.779 l 461.426 57.779 l 461.426 49.228
|
||||||
|
l 461.426 48.361 461.664 47.673 462.145 47.166 c 462.594 46.685 463.16
|
||||||
|
46.447 463.848 46.447 c 464.586 46.447 465.238 46.63 465.805 46.998 c h
|
||||||
|
f
|
||||||
|
481.531 60.095 m 475.777 44.146 l 475.008 42.013 474.352 40.56 473.805
|
||||||
|
39.795 c 472.789 38.388 471.445 37.685 469.781 37.685 c 469.285 37.685 468.633
|
||||||
|
37.759 467.824 37.912 c 468.004 40.259 l 468.492 40.099 468.941 40.017
|
||||||
|
469.348 40.017 c 470.434 40.017 471.328 40.623 472.023 41.826 c 472.531
|
||||||
|
42.693 472.789 43.377 472.789 43.877 c 472.789 43.966 472.602 44.517 472.234
|
||||||
|
45.533 c 466.926 60.095 l 470.082 60.095 l 474.281 47.177 l 474.344 47.177
|
||||||
|
l 478.633 60.095 l h
|
||||||
|
f
|
||||||
|
Q Q
|
||||||
|
showpage
|
||||||
|
%%Trailer
|
||||||
|
count op_count sub {pop} repeat
|
||||||
|
countdictstack dict_count sub {end} repeat
|
||||||
|
cairo_eps_state restore
|
||||||
|
%%EOF
|
||||||
BIN
30_Thesis/logos/sdqlogo.pdf
Normal file
BIN
30_Thesis/logos/sdqlogo.pdf
Normal file
Binary file not shown.
249
30_Thesis/sdqthesis.cls
Normal file
249
30_Thesis/sdqthesis.cls
Normal file
@@ -0,0 +1,249 @@
|
|||||||
|
%% LaTeX2e class for student theses
|
||||||
|
%% sdthesis.cls
|
||||||
|
%%
|
||||||
|
%% Karlsruhe Institute of Technology
|
||||||
|
%% Institute for Program Structures and Data Organization
|
||||||
|
%% Chair for Software Design and Quality (SDQ)
|
||||||
|
%%
|
||||||
|
%% Dr.-Ing. Erik Burger
|
||||||
|
%% burger@kit.edu
|
||||||
|
%%
|
||||||
|
%% Version 1.3.3, 2018-04-17
|
||||||
|
%%
|
||||||
|
%% SVN-Informationen:
|
||||||
|
%% ------------------
|
||||||
|
%% $LastChangedBy: burger $
|
||||||
|
%% $LastChangedRevision: 5524 $
|
||||||
|
%% $LastChangedDate: 2018-04-17 16:49:27 +0200 (Di, 17 Apr 2018) $
|
||||||
|
%% $HeadURL: https://svnserver.informatik.kit.edu/i43/svn/lehre/Abschlussarbeiten-Vorlage/sdqthesis.cls $
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesClass{sdqthesis}[2017/08/01 v1.3.2 Student thesis class]
|
||||||
|
% Language options. German is also needed in English thesis for the abstract
|
||||||
|
\DeclareOption{ngerman}{\PassOptionsToPackage{\CurrentOption}{babel}}
|
||||||
|
\DeclareOption{english}{\PassOptionsToPackage{main=\CurrentOption,ngerman}{babel}}
|
||||||
|
% Oneside and twoside layout
|
||||||
|
\DeclareOption{oneside}{\PassOptionsToClass{\CurrentOption,BCOR=10mm}{scrbook}}
|
||||||
|
\DeclareOption{twoside}{\PassOptionsToClass{\CurrentOption,BCOR=20mm}{scrbook}}
|
||||||
|
\ProcessOptions\relax
|
||||||
|
% Used to detect language families
|
||||||
|
\RequirePackage{translations}
|
||||||
|
|
||||||
|
%% ---------------------------------------------------------------
|
||||||
|
%% | Based on KOMAscript by Markus Kohm http://www.komascript.de |
|
||||||
|
%% ---------------------------------------------------------------
|
||||||
|
\LoadClass[12pt,a4paper,titlepage=true,DIV=15,headsepline]{scrbook}
|
||||||
|
|
||||||
|
%% ---------------
|
||||||
|
%% | Page Layout |
|
||||||
|
%% ---------------
|
||||||
|
\RequirePackage[headsepline,draft=false]{scrlayer-scrpage}
|
||||||
|
\pagestyle{scrheadings}
|
||||||
|
|
||||||
|
% For one-sided layout, put the page marks on the right margin
|
||||||
|
\if@twoside%
|
||||||
|
\else%
|
||||||
|
\chead[]{}
|
||||||
|
\ohead{\headmark}
|
||||||
|
\cfoot[]{}
|
||||||
|
\ofoot[\pagemark]{\pagemark}
|
||||||
|
\fi%
|
||||||
|
|
||||||
|
\clubpenalty=10000 %prevent orphans
|
||||||
|
\widowpenalty=10000 %prevent widows
|
||||||
|
|
||||||
|
%% --------------
|
||||||
|
%% | Typography |
|
||||||
|
%% --------------
|
||||||
|
|
||||||
|
% T1 font encoding
|
||||||
|
\RequirePackage[T1]{fontenc}
|
||||||
|
\RequirePackage[utf8]{inputenc}
|
||||||
|
|
||||||
|
% serif type: Linux Libertine
|
||||||
|
\RequirePackage{libertine}
|
||||||
|
% Linux Libertine in math mode
|
||||||
|
\RequirePackage[libertine]{newtxmath}
|
||||||
|
|
||||||
|
% grotesque type: Adobe Source Sans Pro
|
||||||
|
\RequirePackage[scaled=.92]{sourcesanspro}
|
||||||
|
|
||||||
|
% monospace type: Bera Mono
|
||||||
|
\RequirePackage[scaled=.78]{beramono}
|
||||||
|
|
||||||
|
% semi-bold type (for subsections and paragraphs)
|
||||||
|
\newcommand*{\sbdefault}{sb}
|
||||||
|
\DeclareRobustCommand{\sbseries}{%
|
||||||
|
\not@math@alphabet\sbseries\relax
|
||||||
|
\fontseries\sbdefault\selectfont}
|
||||||
|
|
||||||
|
\DeclareTextFontCommand{\textsb}{\sbseries}
|
||||||
|
|
||||||
|
\addtokomafont{subsection}{\sbseries}
|
||||||
|
\addtokomafont{subsubsection}{\sbseries}
|
||||||
|
\addtokomafont{paragraph}{\sbseries}
|
||||||
|
|
||||||
|
% microtype for nicer typography
|
||||||
|
\RequirePackage[protrusion=true,expansion=true]{microtype}
|
||||||
|
|
||||||
|
% commands for code and model keywords in text
|
||||||
|
\newcommand{\code}[1]{\texttt{\hyphenchar\font45\relax #1}}
|
||||||
|
\newcommand{\model}[1]{\textsf{#1}}
|
||||||
|
|
||||||
|
% nicer spacing for enumerations
|
||||||
|
\RequirePackage{enumitem}
|
||||||
|
|
||||||
|
%% --------------
|
||||||
|
%% | Title page |
|
||||||
|
%% --------------
|
||||||
|
|
||||||
|
% Logos
|
||||||
|
\newcommand{\thegrouplogo}{sdqlogo}
|
||||||
|
\newcommand{\grouplogo}[1]{\renewcommand{\thegrouplogo}{#1}}
|
||||||
|
\newcommand{\printgrouplogo}{\includegraphics[height=1.8cm]{logos/\thegrouplogo}}
|
||||||
|
\newcommand{\nogrouplogo}{\renewcommand{\printgrouplogo}{}}
|
||||||
|
|
||||||
|
\titlehead{%
|
||||||
|
% KIT logo german/english
|
||||||
|
\ifcurrentbaselanguage{English}
|
||||||
|
{\includegraphics[height=1.8cm]{logos/kitlogo_en_cmyk}}
|
||||||
|
{\includegraphics[height=1.8cm]{logos/kitlogo_de_cmyk}}
|
||||||
|
\hfill
|
||||||
|
% SDQ logo
|
||||||
|
\printgrouplogo
|
||||||
|
\ThisCenterWallPaper{1}{title-background.pdf}
|
||||||
|
}
|
||||||
|
|
||||||
|
%
|
||||||
|
\setkomafont{title}{\huge\sffamily\bfseries}
|
||||||
|
\setkomafont{subtitle}{\normalfont\large}
|
||||||
|
|
||||||
|
\uppertitleback{Karlsruher Institut für Technologie\\ Fakultät für Informatik\\ Postfach 6980\\ 76128 Karlsruhe}
|
||||||
|
|
||||||
|
%% variables for title page
|
||||||
|
\newcommand{\theinstitute}{\ifcurrentbaselanguage{English}
|
||||||
|
{Institute for Program Structures and Data Organization (IPD)}
|
||||||
|
{Institut für Programmstrukturen und Datenorganisation (IPD)}}
|
||||||
|
\newcommand{\thethesistype}{}
|
||||||
|
\newcommand{\thereviewerone}{}
|
||||||
|
\newcommand{\thereviewertwo}{}
|
||||||
|
\newcommand{\theadvisorone}{}
|
||||||
|
\newcommand{\theadvisortwo}{}
|
||||||
|
\newcommand{\theeditstart}{}
|
||||||
|
\newcommand{\theeditend}{}
|
||||||
|
|
||||||
|
%% formatting commands for titlepage
|
||||||
|
\newcommand{\thesistype}[1]{\subtitle{\vskip2em #1 \ifcurrentbaselanguage{English}{of}{von}}%
|
||||||
|
\renewcommand{\thethesistype}{#1}}
|
||||||
|
\newcommand{\myinstitute}[1]{\renewcommand{\theinstitute}{#1}}
|
||||||
|
\newcommand{\reviewerone}[1]{\renewcommand{\thereviewerone}{#1}}
|
||||||
|
\newcommand{\reviewertwo}[1]{\renewcommand{\thereviewertwo}{#1}}
|
||||||
|
\newcommand{\advisorone}[1]{\renewcommand{\theadvisorone}{#1}}
|
||||||
|
\newcommand{\advisortwo}[1]{\renewcommand{\theadvisortwo}{#1}}
|
||||||
|
|
||||||
|
\newcommand{\editingtime}[2]{%
|
||||||
|
\renewcommand{\theeditstart}{#1}%
|
||||||
|
\renewcommand{\theeditend}{#2}%
|
||||||
|
%% do not show the date
|
||||||
|
\date{}
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcommand{\settitle}{%
|
||||||
|
\publishers{%
|
||||||
|
\large
|
||||||
|
\ifcurrentbaselanguage{English}{at the Department of Informatics}%
|
||||||
|
{an der Fakultät für Informatik}\\
|
||||||
|
\theinstitute\\[2em]
|
||||||
|
\begin{tabular}{l l}
|
||||||
|
\ifcurrentbaselanguage{English}{Reviewer}{Erstgutachter}: & \thereviewerone\\
|
||||||
|
\ifcurrentbaselanguage{English}{Second reviewer}{Zweitgutachter}: & \thereviewertwo\\
|
||||||
|
\ifcurrentbaselanguage{English}{Advisor}{Betreuender Mitarbeiter}: & \theadvisorone\\
|
||||||
|
% if there is no second advisor, do not output this line
|
||||||
|
\ifthenelse{\equal{\theadvisortwo}{}}{}{%
|
||||||
|
\ifcurrentbaselanguage{English}{Second advisor}{Zweiter betreuender Mitarbeiter}: & \theadvisortwo\\
|
||||||
|
}
|
||||||
|
\end{tabular}
|
||||||
|
\vskip2em
|
||||||
|
\theeditstart{} -- \theeditend
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
%% -----------------------------
|
||||||
|
%% | Abstract/Acknowledgements |
|
||||||
|
%% -----------------------------
|
||||||
|
|
||||||
|
\newcommand{\abstract}[1][\abstractname]{\chapter*{#1}}
|
||||||
|
\newcommand{\Abstract}[1][\abstractname]{\chapter*{#1}\addcontentsline{toc}{chapter}{#1}}
|
||||||
|
|
||||||
|
\def\ackname{Acknowledgments}
|
||||||
|
\def\abstractname{Abstract}
|
||||||
|
\def\switcht@deutsch{\svlanginfo
|
||||||
|
\def\ackname{Danksagung}
|
||||||
|
\def\abstractname{Kurzfassung}
|
||||||
|
}
|
||||||
|
\def\switcht@english{\svlanginfo
|
||||||
|
\def\ackname{Acknowledgements}
|
||||||
|
\def\abstractname{Abstract}
|
||||||
|
}
|
||||||
|
|
||||||
|
%% In English theses, an additional German Abstract is needed.
|
||||||
|
\newcommand{\includeabstract}{
|
||||||
|
\ifcurrentbaselanguage{English}{
|
||||||
|
% include English and German abstracts
|
||||||
|
\input{sections/abstract_en.tex}
|
||||||
|
\begin{otherlanguage}{ngerman}
|
||||||
|
\input{sections/abstract_de.tex}
|
||||||
|
\end{otherlanguage}
|
||||||
|
}{
|
||||||
|
% include only German abstract
|
||||||
|
\include{sections/abstract_de}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
%% ------------
|
||||||
|
%% | Packages |
|
||||||
|
%% ------------
|
||||||
|
|
||||||
|
% draft mode
|
||||||
|
\RequirePackage{ifdraft}
|
||||||
|
\RequirePackage{ifthen}
|
||||||
|
|
||||||
|
% enumerate subsubsections
|
||||||
|
\setcounter{secnumdepth}{3}
|
||||||
|
|
||||||
|
% wallpaper for title page (KIT-Frame)
|
||||||
|
\RequirePackage{wallpaper}
|
||||||
|
|
||||||
|
% subimport of files
|
||||||
|
\RequirePackage{import}
|
||||||
|
|
||||||
|
% languages
|
||||||
|
\RequirePackage{babel}
|
||||||
|
|
||||||
|
% hyphenation for compound words
|
||||||
|
\RequirePackage[shortcuts]{extdash}
|
||||||
|
|
||||||
|
% nice tables
|
||||||
|
\RequirePackage{booktabs}
|
||||||
|
\RequirePackage{longtable}
|
||||||
|
\RequirePackage{array}
|
||||||
|
|
||||||
|
% show graphics in draft mode
|
||||||
|
\RequirePackage{graphicx}
|
||||||
|
\setkeys{Gin}{draft=false}
|
||||||
|
|
||||||
|
% appendix
|
||||||
|
\RequirePackage[toc,title,header]{appendix}
|
||||||
|
\noappendicestocpagenum
|
||||||
|
|
||||||
|
% PDF specific packages
|
||||||
|
\RequirePackage[hyphens]{url}
|
||||||
|
\RequirePackage[breaklinks,colorlinks=false]{hyperref}
|
||||||
|
\newcommand\setpdf{\hypersetup{%
|
||||||
|
pdftitle={\thethesistype},%
|
||||||
|
pdfsubject={\@title},%
|
||||||
|
pdfauthor={\@author},%
|
||||||
|
pdfborder={0 0 0},%
|
||||||
|
}%
|
||||||
|
\let\theauthor\@author
|
||||||
|
}
|
||||||
38
30_Thesis/sections/00_introduction.tex
Normal file
38
30_Thesis/sections/00_introduction.tex
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
\chapter{Introduction}
|
||||||
|
\label{ch:Introduction}
|
||||||
|
|
||||||
|
\section{Motivation}
|
||||||
|
\label{sec:Introduction:Goals}
|
||||||
|
|
||||||
|
Customers and sales people are faced with big catalogues that describe how a complex product can be built. These catalogues specify what is possible to combine but it is easy to make mistakes. The sales process takes a long time because orders have to be manually validated. With the advent of mass customization these issues were addressed. Mass customization uses a configurator. The configurator has a rulebook that contains all the attributes of a product, their corresponding characteristics and rules on how these can be combined. A system like that allows to reduce the workload and cost of sales \cite{shafieeCostBenefitAnalysis2018}. "[...] [P]roduct configuration is seen as a team activity with divergent interests" \cite{mendoncaCollaborativeProductConfiguration2008} and therefore research in the field of group-based configuration starts receiving more attention.
|
||||||
|
To give an idea of situations that can use group-based configuration, here are some examples:
|
||||||
|
\begin{itemize}
|
||||||
|
\item A company's lorry fleet (e.g. driver, head of procurement, marketing manager)
|
||||||
|
\item A company's customer management software system (e.g. salesperson, human resource manager, accounting manager)
|
||||||
|
\item A public project to get a new area at a zoo (e.g. visitor, director, zoo-keeper)
|
||||||
|
\item Managing a forest (e.g. owner, environmental protection agency, consumer representative)
|
||||||
|
\item An existing company building and how it should be furnished (e.g. landlord, employee representative, CEO)
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
Unfortunately, making decisions in a group comes with problems as a lack of communication can lead to worse decision outcomes \cite{atasItemRecommendationUsing2017}. Group dynamics and biases result in suboptimal decisions \cite{kerrBiasJudgmentComparing1996}.
|
||||||
|
Generally, group decisions are complex and often the process that yields the decision result is unstructured, thereby not providing any reproducibility of the success. Groups have different power structures and usually individuals have different interests. Moreover, finding solutions is a rather complex task and group decisions can suffer from intransparency.
|
||||||
|
|
||||||
|
Group recommenders promise to help with that as they can take individual user preferences and find good compromises for the whole group. They are used in movies, music and travel \cite{garciaGroupRecommenderSystem2009, piliponyte2013sequential, peraGroupRecommenderMovies2013,felfernigGroupRecommenderApplications2018}. The existing literature on recommenders for groups is extensive with many different approaches and domains \cite{delicResearchMethodsGroup2016, chenInterfaceInteractionDesign2011, atasItemRecommendationUsing2017, jamesonRecommendationGroups2007, chenEmpatheticonsDesigningEmotion2014, liuCGSPAComprehensiveGroup2019} but to date there have not been any approaches to combine them with group-based configuration. There have been approaches to combine recommendation techniques with configuration but these were limited to configuration for a single user only \cite{pereiraFeatureBasedPersonalizedRecommender2016, scholzConfigurationbasedRecommenderSystem2017, scholzEffectsDecisionSpace2017}.
|
||||||
|
|
||||||
|
|
||||||
|
The above listed examples of use cases for group-based configuration show that ordinary group recommenders cannot be used here as they, unlike configuration, are used for simple products. Configuration on the other hand operates with solutions that are successively built by combining standardized features. This leads to three problems when trying to apply recommenders in this field: first, because of simple combinatorics, the number of variants is enormous. Second, because of the interrelation between features, a small change in configuration can lead to many subsequent changes and, thus, a completely different product. Third, during configuration there is an already pre-existing configuration state that is potentially expensive to change. This could be the current state of a situation for example what a building currently looks like, decisions already made regarding a project that would be expensive to change or simply a part already agreed on at an earlier stage of the project. The group recommender needs to account for these circumstances. Therefore it is necessary to explore new ideas and to take into account knowledge from group recommendation.
|
||||||
|
|
||||||
|
\section{Goals of this Thesis}
|
||||||
|
\label{sec:Introduction:Goals}
|
||||||
|
|
||||||
|
This thesis aims at showing the viability of using group recommenders in a configuration setting by producing and evaluating a prototype. It is discussed what needs to be done to adapt group recommenders to allow usage of the basic recommendation technique of item-based recommendation. The research question for this thesis is the following.
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item How can a group recommender translate individual preferences into recommendations that improve the overall satisfaction of group members while considering constraints given by the configuration state?
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Structure of this Thesis}
|
||||||
|
\label{sec:Introduction:Structure}
|
||||||
|
|
||||||
|
This thesis first will give an introduction, then present related work. Next, the concept for a recommender will be presented. Afterwards, design and implementation of the prototype produced in this thesis will be discussed and evaluated. Last, a conclusion will be made which includes a summary and further research possibilities for recommendation techniques in group-based configuration.
|
||||||
228
30_Thesis/sections/10_foundations.tex
Normal file
228
30_Thesis/sections/10_foundations.tex
Normal file
@@ -0,0 +1,228 @@
|
|||||||
|
\chapter{Foundations}
|
||||||
|
\label{ch:Foundations}
|
||||||
|
|
||||||
|
This chapter gives an overview of the foundations this thesis is based upon. It introduces product configuration, shows what group based product configuration looks like, examines recommender systems and basic approaches, describes group recommenders, gives a short introduction to the use case and the prototype that is extended by this thesis.
|
||||||
|
|
||||||
|
\section{Product Configuration}
|
||||||
|
\label{sec:Foundations:ProductConfiguration}
|
||||||
|
|
||||||
|
Product configuration is a process consisting of a series of decision tasks whereby a product is constructed of components which interact with each other. During a configuration process no new components are created. Their interplay and specification is defined beforehand \cite[~ pp. 42, 43]{sabinProductConfigurationFrameworksa1998}. This section defines product configuration analogous to \citeauthor{felfernigOpenConfiguration2014} \cite{felfernigOpenConfiguration2014}.
|
||||||
|
|
||||||
|
Formally a configuration problem can be specified as a \emph{constraint satisfaction problem (CSP)} \cite{tsangFoundationsConstraintSatisfaction1993} as
|
||||||
|
\begin{equation} \label{eq:Foundations:ProductConfiguration:ConstraintSatisfactionProblem}
|
||||||
|
CSP(V,\mathfrak{D},C),
|
||||||
|
\end{equation}
|
||||||
|
where $V$ is a set of \emph{variables} (which in this thesis will also be referred to as \emph{features}) with
|
||||||
|
\begin{equation} \label{eq:Foundations:ProductConfiguration:Variables}
|
||||||
|
V = \{v_1, \dotsc, v_m\},
|
||||||
|
\end{equation}
|
||||||
|
a \emph{domain mapping} $\mathfrak{D}$ that maps variable to their corresponding domain values $D$ (which in this thesis will be also referred to as \emph{characteristics}) i.e. the values that can be assigned to each variable
|
||||||
|
\begin{equation}\label{eq:Foundations:ProductConfiguration:DomainMapping}
|
||||||
|
\mathfrak{D} : V \to D; x \mapsto \mathfrak{D}(x) \qquad where \ D = \{d_1, \dotsc, d_o\},
|
||||||
|
\end{equation}
|
||||||
|
and \emph{constraints} $C$ that limit the solution space with
|
||||||
|
\begin{equation}\label{eq:Foundations:ProductConfiguration:Constraints}
|
||||||
|
C = \{c_1, \cdots, c_k\}.
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
In group-based configuration (also known as collaborative or group configuration) a group instead of a single user is set to configure a product. This entails challenges in terms of synchronising workspaces and keeping the data consistent for every group member. \citeauthor{raabKollaborativeProduktkonfigurationEchtzeit2019}'s \cite{raabKollaborativeProduktkonfigurationEchtzeit2019} approach, which this thesis extends, is to treat the group configuration the same as one shared configuration and to sync the selection of attributes across clients.
|
||||||
|
|
||||||
|
\subsection{Group-Based Product Configuration}
|
||||||
|
\label{sec:Foundations:GroupBasedProductConfiguration}
|
||||||
|
|
||||||
|
Group-based product configuration is an approach to product configuration where product configuration is done by multiple users. According to \citeauthor{felferningGroupBasedConfiguration2016} \cite{felferningGroupBasedConfiguration2016} considering classical approaches as single user tasks can lead to decisions that are suboptimal. Moreover, there are scenarios where a decision is inherently a group task such as \emph{Holiday Planning}, \emph{Software Release Planning} and \emph{Product Line Scoping}. Group-based configuration takes the representation of a group directly into account.
|
||||||
|
|
||||||
|
\section{Recommender System}
|
||||||
|
\label{sec:Foundations:RecommenderSystem}
|
||||||
|
|
||||||
|
A recommender system is a system that gives individualized recommendations to users to guide them through a large space of objects \cite[~ p. 331]{burkeHybridRecommenderSystems2002}.
|
||||||
|
|
||||||
|
There are several approaches to recommender systems presented in \cite{felfernigGroupRecommenderSystems2018}, some of them are: collaborative filtering, constraint-based recommendation and content-based filtering. There is also hybrid recommendation which combines approaches but this is not the focus in this thesis.
|
||||||
|
|
||||||
|
\subsection{Collaborative Filtering}
|
||||||
|
|
||||||
|
\begin{table}[b]
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{ l | c | c | c | c | c }
|
||||||
|
& The Matrix & Titanic & Die Hard & Forest Gump & Wall-E \\ \hline
|
||||||
|
John & 5 & 1 & & 2 & 2 \\
|
||||||
|
Lucy & 1 & 5 & 2 & 5 & 5 \\
|
||||||
|
Eric & 2 & ? & 3 & 5 & 4 \\
|
||||||
|
Diane & 4 & 3 & 5 & 3 & \\
|
||||||
|
\end{tabular}
|
||||||
|
\caption[Movies: Rating Matrix]{An example showing users ratings for movies by \citeauthor{ningComprehensiveSurveyNeighborhoodBased2015} \cite{ningComprehensiveSurveyNeighborhoodBased2015}. Eric would like to know if he will like the movie Titanic.}
|
||||||
|
\label{tab:Foundations:RecommenderSystem:MoviePreferences}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
In collaborative filtering a user's rating for unknown items is predicted by finding similar users who have rated it. Their rating is used as prediction \cite[~ pp. 7, 8]{felfernigDecisionTasksBasic2018}.
|
||||||
|
|
||||||
|
Collaborative Filtering can not only be done using users, it can also be item-based. Hereby the similarity between items is used for a recommendation and not similar users \cite{ricciRecommenderSystemsHandbook2015}.
|
||||||
|
|
||||||
|
\autoref{tab:Foundations:RecommenderSystem:MoviePreferences} shows an example rating matrix for movies. A simple user-based way to calculate a rating would be to use a k-nearest neighbour (kNN) algorithm and then take the average of those ratings. Using this method with $k := 2$ and euclidean distance, Eric's closest neighbours are \textit{Lucy} and \textit{Diane} therefore giving a predicted rating of $4$. An item-based approach will try to find similar items based on the user's rating. Here, an example of similar items would be \textit{Forest Gump} and \textit{Wall-E} as John and Lucy each have given them the same rating and Eric's rating is off by one. Using again kNN with $k := 2$ it is found that \textit{Forest Gump} and \textit{Wall-E} are the most similar to \textit{Titanic} thereby having a predicted rating of $4.5$. However this simple similarity and prediction function does not take into account different distances. For example Lucy's ratings are more similar compared to Eric's than Diane's but Diane's and Lucy's ratings are valued the same.
|
||||||
|
|
||||||
|
\subsection{Constraint-Based Recommendation}
|
||||||
|
Hereby filter rules are defined which filter out items that do not fulfil specified rules. A user models their requirements with these rules and thereby gets a list of recommended items. This approach requires deep knowledge about a product because it requires a detailed description of features \cite[~ p. 12]{felfernigDecisionTasksBasic2018}.
|
||||||
|
|
||||||
|
The previous movie example (see \autoref{tab:Foundations:RecommenderSystem:MoviePreferences}) requires additional information for example about plot structure, pacing, length and other attributes of the movie. Now the user can enter filtering criteria, e.g. that the movie should be no longer than 120 minutes, be categorized as action or thriller and have a fast pacing. The system will only recommend movies that fit into these constraints.
|
||||||
|
|
||||||
|
\subsection{Content-Based Filtering}
|
||||||
|
For the content-based filtering approach, items and users are assigned to categories. Based on consumption and rating of items a user will have ratings for categories. Predictions are now made based on the categories of a new item \cite[~ pp. 10, 11]{felfernigDecisionTasksBasic2018}.
|
||||||
|
|
||||||
|
Using the example from \autoref{tab:Foundations:RecommenderSystem:MoviePreferences} and using an additional category matrix (see \autoref{tab:Foundations:RecommenderSystem:ContentBasedFilteringCategories}), a rating matrix per category can be derived (using the average rating of the user of each movie contained in this category). The result can be seen in \autoref{tab:Foundations:RecommenderSystem:ContentBasedFilteringProfiles}. To predict Eric's rating of Titanic, the categories of \textit{Titanic} and averages of Eric's implicit rating per category are used. Titanic is only in the category romance and as Eric's rating of \textit{Forest Gump} is $5$ the prediction is a rating of $5$. Categories do not have to be the genre, they could be any kind of data relating to a movie.
|
||||||
|
|
||||||
|
\begin{table}
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{ l | c | c | c | c | c }
|
||||||
|
& The Matrix & Titanic & Die Hard & Forest Gump & Wall-E \\ \hline
|
||||||
|
Action & x & & x & & \\
|
||||||
|
Sci-Fi & x & & & & \\
|
||||||
|
Thriller & & & x & & \\
|
||||||
|
Romance & & x & & x & \\
|
||||||
|
Family & & & & x & x \\
|
||||||
|
\end{tabular}
|
||||||
|
\caption[Movies: Category Matrix]{Showing example categories for the movies in \autoref{tab:Foundations:RecommenderSystem:MoviePreferences}.}
|
||||||
|
|
||||||
|
\label{tab:Foundations:RecommenderSystem:ContentBasedFilteringCategories}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\begin{table}
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{ l | c | c | c | c | c }
|
||||||
|
& Action & Sci-Fi & Thriller & Romance & Family \\ \hline
|
||||||
|
John & 5 & 5 & & 1.5 & 2 \\
|
||||||
|
Lucy & 1.5 & 1 & 2 & 5 & 5 \\
|
||||||
|
Eric & 2.5 & 2 & 3 & 5 & 4.5 \\
|
||||||
|
Diane & 4.5 & 4 & 5 & 3 & 3 \\
|
||||||
|
\end{tabular}
|
||||||
|
\caption[Movies: User Profile Matrix for Genres]{User profiles generated from categories and ratings from \autoref{tab:Foundations:RecommenderSystem:MoviePreferences} and \autoref{tab:Foundations:RecommenderSystem:ContentBasedFilteringCategories}.}
|
||||||
|
|
||||||
|
\label{tab:Foundations:RecommenderSystem:ContentBasedFilteringProfiles}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
Advantages and disadvantages of basic recommendation techniques are listed in \autoref{tab:Foundations:RecommenderComparison}. The following subsections show advantages of content-based filtering over collaborative filtering and over constraint-based recommendation.
|
||||||
|
|
||||||
|
\begin{table}[htb]
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabularx}{\columnwidth}{X|X|X}
|
||||||
|
& advantages & disadvantages \\
|
||||||
|
\hline
|
||||||
|
Collaborative Filtering
|
||||||
|
& \begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt, leftmargin=3.5mm]
|
||||||
|
\item Serendipity of results
|
||||||
|
\item Automatic learning of market segments
|
||||||
|
\item No domain knowledge required
|
||||||
|
\end{itemize}
|
||||||
|
& \begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt, leftmargin=3.5mm]
|
||||||
|
\item Cold start problem for users and items
|
||||||
|
\item Grey sheep problem
|
||||||
|
\item Quality based on rating quality
|
||||||
|
\item Data sparsity
|
||||||
|
\item Privacy not guaranteed
|
||||||
|
\end{itemize} \\
|
||||||
|
\hline
|
||||||
|
Content-Based Filtering
|
||||||
|
& \begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt, leftmargin=3.5mm]
|
||||||
|
\item No community required
|
||||||
|
\item User-independent
|
||||||
|
\item Transparent
|
||||||
|
\item No item cold start
|
||||||
|
\item Simplicity
|
||||||
|
\item Robust
|
||||||
|
\item Stable to constant influx of new users
|
||||||
|
\end{itemize}
|
||||||
|
& \begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt, leftmargin=3.5mm]
|
||||||
|
\item Overspecialisation
|
||||||
|
\item No serendipity
|
||||||
|
\item User cold start problem
|
||||||
|
\item Requires domain knowledge
|
||||||
|
\end{itemize} \\
|
||||||
|
\hline
|
||||||
|
Constraint-Based Recommendation
|
||||||
|
& \begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt, leftmargin=3.5mm]
|
||||||
|
\item Transparent
|
||||||
|
\item Good for non-discrete values
|
||||||
|
\end{itemize}
|
||||||
|
& \begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt, leftmargin=3.5mm]
|
||||||
|
\item Inconsistent constraints
|
||||||
|
\item No results
|
||||||
|
\end{itemize} \\
|
||||||
|
\end{tabularx}
|
||||||
|
\caption[Comparison of Recommendation Approaches]{A description of the advantages and disadvantages of common recommendation techniques \cite{richthammerSituationAwarenessRecommender2018, shokeenStudyFeaturesSocial2019,hahslerRecommenderlabFrameworkDeveloping2015, aminiDiscoveringImpactKnowledge2011, suSurveyCollaborativeFiltering2009}}
|
||||||
|
\label{tab:Foundations:RecommenderComparison}
|
||||||
|
\end{center}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\subsubsection{Advantages over Collaborative Filtering}
|
||||||
|
|
||||||
|
Collaborative filtering has several issues that content-based filtering doesn't have. According to \citeauthor{likaFacingColdStart2014} \cite{likaFacingColdStart2014} the \emph{cold start problem} is one of the well-known problems of recommender systems. It occurs when there is sparse information for users or items. In the case of collaborative filtering this issue concerns for both items and users. Content-based filtering does not have that issue with items as they are classified based on similarity to other items. The user cold start problem however still persists when a new user has not yet rated any items. Accordingly, no similar items can be recommended.
|
||||||
|
|
||||||
|
Another common issue is the \emph{grey sheep problem} \cite{grasIdentifyingGreySheep2016}. Collaborative filtering approaches assume that users that are similar, have similar preferences. A user that is not similar to any of the current user or community of users fail that assumption. Therefore, good recommendations cannot be made. These users are called \emph{grey sheep users}. Item-based filtering does not have this issue as a user's preference is directly used to find similar items to the ones they like, not similar users.
|
||||||
|
Usually, the need for domain knowledge is a disadvantage. However, as product configuration already has domain knowledge baked in to describe features and how they can be combined, this is not a disadvantage and can even be seen as an advantage. Hence, domain knowledge can directly be used and does not first need to be learned indirectly.
|
||||||
|
Additionally, a collaborative filtering approach spans a larger comparison space, based on preferences, compared to content-based filtering that only uses the item attributes. Thus, for applications with a large solution space, reliance on product features instead of user similarity should be considered.
|
||||||
|
Last, content-based filtering does not depend on historic group preference accuracy. Thus, malicious actors that try to manipulate the recommendation system do not decrease recommendation accuracy. The same is true for inaccurate preferences. For example, this occurs if a user's input into a system does not accurately reflect what they actually like.
|
||||||
|
|
||||||
|
\subsubsection{Advantages over Constraint-Based Recommendation}
|
||||||
|
|
||||||
|
In constraint-based recommendation approaches it is possible that constraints lead to no possible solution \cite[~ p. 44]{felfernigAlgorithmsGroupRecommendation2018}. This then requires further techniques of constraint relaxing and a user is faced with the situation that they have to search for constraints which fulfil less strict requirements. Moreover, in groups a constraint-based approach has to deal with contrary user constraints. Therefore, diverse groups could have issues with it.
|
||||||
|
|
||||||
|
\section{Group Recommender System}
|
||||||
|
\label{sec:Foundations:GroupRecommenderSystem}
|
||||||
|
|
||||||
|
A group recommender system is a recommender system aimed at making recommendations for a group instead of a single user. To make recommendations preferences of all group members have to be aggregated. This can be done by either aggregating single user recommendations or by merging preferences of each user into a group preference model \cite{jamesonRecommendationGroups2007}. Based on the resulting preference model, recommendation strategies can be used to generate recommendations.
|
||||||
|
|
||||||
|
The strategy of aggregating predictions can be further divided into two strategies. \citeauthor{felfernigAlgorithmsGroupRecommendation2018} \cite{felfernigAlgorithmsGroupRecommendation2018} describes merging recommendations and "ranking of candidate items". Merging recommendations can be used when multiple possible solutions are to be presented. The recommender picks $n$ recommendation from each user's individual recommendations and merges them into a list. The second approach is that each user's individual recommender ranks all items. The group member's specific rankings then are aggregated to get a group ranking of items. Instead of ranking it is also possible to simply predict a user's rating for an item.
|
||||||
|
|
||||||
|
The aggregation of preferences uses a merging strategy to combine the individual preferences into group preferences. This allows a group to change its preferences during the course of the decision without changing individual preferences.
|
||||||
|
|
||||||
|
Both the approach of merging preferences and the approach of using individual user's rankings require some kind of aggregation strategy. Strategies used in this thesis are: multiplication, average and least misery. The multiplication strategy multiplies preferences of users and thereby combines them into a group preference. Similarly the average strategy takes the average of a rating and the least misery strategy takes the lowest rating among group members. To illustrate the example in \autoref{tab:Foundations:RecommenderSystem:MoviePreferences} is used. Lucy, Eric and Diane form a group. The resulting ratings for each strategy are shown in \autoref{tab:Foundations:RecommenderSystem:AggregationStrategy}.
|
||||||
|
|
||||||
|
An additional strategy is the dictatorship strategy. When the dictatorship strategy is used a random group member is chosen. This group member is called the dictator. The decision is made only based on the preference of the dictator. It is omitted from the table as the outcome is dependent on random choice.
|
||||||
|
|
||||||
|
\begin{table}
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{ l | c | c | c | c | c }
|
||||||
|
& The Matrix & Titanic & Die Hard & Forest Gump & Wall-E \\ \hline
|
||||||
|
multiplication & 8 & - & 30 & 75 & - \\
|
||||||
|
average & $\frac{7}{3}$ & - & $\frac{10}{3}$ & $\frac{13}{3}$ & - \\
|
||||||
|
least misery & 1 & - & 2 & 3 & - \\
|
||||||
|
\end{tabular}
|
||||||
|
\caption[Movies: Result Matrix for Group Aggregation Strategies]{An example showing preference aggregation strategies for a group using the data from \autoref{tab:Foundations:RecommenderSystem:MoviePreferences}. Titanic and Wall-E were left out because not all group members have rated these movies.}
|
||||||
|
\label{tab:Foundations:RecommenderSystem:AggregationStrategy}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Use Case}
|
||||||
|
\label{sec:Foundations:UseSystem}
|
||||||
|
|
||||||
|
This thesis presents one use case from forestry. It gradually extends this use case wherever needed (see \autoref{subsec:Concept:ReccomendationGeneration:PreferenceScoring}, \autoref{sec:Concept:Illustration} and \autoref{sec:Evaluation:UseCase}) which is why it is not presented in much detail here. The product that is configured is a forest and it has certain features. These range from the amount of trees that are indigenous, climate resilient, or usable to produce wood to the quantity that should be harvested.
|
||||||
|
|
||||||
|
\section{Base System}
|
||||||
|
\label{sec:Foundations:BaseSystem}
|
||||||
|
|
||||||
|
This thesis extends a base software system, \emph{CAS Configurator Merlin}, from \emph{CAS Software AG} \cite{CASSoftwareAG}. \citeauthor{raabKollaborativeProduktkonfigurationEchtzeit2019} \cite{raabKollaborativeProduktkonfigurationEchtzeit2019} extends CAS Merlin Configurator in his thesis to allow simultaneous configuration. Here groups of people are able to simultaneously configure a product. If there are any conflicts, a conflict resolution process is started. However the prototype only allows a majority voting approach and does not provide any further group decision support. Also this process only starts upon the selection of an invalid state that gives alternatives and for the main configuration process no recommendation or conflict resolution exists.
|
||||||
|
|
||||||
|
The extended architecture is shown in \autoref{fig:Foundations:CollaborativeConfiguratorMerlin}.
|
||||||
|
\citeauthor{raabKollaborativeProduktkonfigurationEchtzeit2019} only makes changes to M.Customer which is renamed to \texttt{M.Collab-Customer} and introduces a new component \texttt{M.Collab}.
|
||||||
|
|
||||||
|
The following list provides a short overview of each component.
|
||||||
|
|
||||||
|
\begin{description}
|
||||||
|
\item[\texttt{M.Core}] provides the base of the configurator. It checks the configuration against all rules in the database, provides possible alternatives if a change invalidates other parts of a configuration. The system relies on a CSP solver for validation and suggestion of alternatives.
|
||||||
|
\item[\texttt{M.Model}] is the editor to create products and rules. These rules can then be uploaded to \texttt{M.Core} .
|
||||||
|
\item[\texttt{M.Collab}] is a node.js server application that communicates with \texttt{M.Core} via REST-API and with \texttt{\texttt{M.Collab-Customer}} via WebSockets. It sits in between \texttt{M.Collab-Customer} and \texttt{M.Core} and handles all processing regarding collaborative configuration.
|
||||||
|
\item[\texttt{M.Collab-Customer}] is the customer facing component. It allows a customer to configure a product or solution and contains the user interface. Actions undertaken in \texttt{M.Collab-Customer} are send to \texttt{M.Collab}.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
\begin{figure}[ht]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.6\textwidth]{./figures/20_fountations/MerlinCollaborativeConfigurator.pdf}
|
||||||
|
\caption[Architecture: Collaborative Configurator]{Architecture of Collaborative Configurator Merlin \cite[Fig. 4.3]{raabKollaborativeProduktkonfigurationEchtzeit2019}}
|
||||||
|
\label{fig:Foundations:CollaborativeConfiguratorMerlin}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\section{Software Design}
|
||||||
|
\label{sec:Foundations:BaseSystem}
|
||||||
|
|
||||||
|
In this thesis for the design of the prototype to improve software quality some rules of software engineering will be applied. The usage of \emph{design patterns} \cite{gamma2015design} and the rules of \emph{separation of concern} \cite{de2002importance} and \emph{single responsibility} \cite{martinCleanArchitectureCraftsman2017} are commonly known in the field of software engineering and, therefore, a detailed explanation is omitted here.
|
||||||
|
|
||||||
|
|
||||||
37
30_Thesis/sections/20_related_work.tex
Normal file
37
30_Thesis/sections/20_related_work.tex
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
\chapter{Related Work}
|
||||||
|
\label{ch:Related_Work}
|
||||||
|
|
||||||
|
This chapter presents approaches for group recommenders, group-based configuration systems and recommender systems for configuration. However no literature combines these approaches to get a group recommendation for group-based configuration.
|
||||||
|
|
||||||
|
\section{Group Recommender Systems}
|
||||||
|
\label{sec:Related_Work:GroupRecommender}
|
||||||
|
|
||||||
|
\begin{description}[style=unboxed, leftmargin=0cm, font=\normalfont]
|
||||||
|
\item[\citeauthor{choudharyMulticriteriaGroupRecommender2020} \cite{choudharyMulticriteriaGroupRecommender2020}] propose a multi-criteria group recommender system. An analytical hierarchy process is used to learn priorities for film features like story, action, direction and to then make a number of best recommendations for a group of users. Their approach works well for film selection and they observe that it is easier to make recommendations for homogenous groups than for random groups. Also small groups receive better recommendations compared to large ones.
|
||||||
|
|
||||||
|
\item[\citeauthor{chenInterfaceInteractionDesign2011} \cite{chenInterfaceInteractionDesign2011}] looks at interface and interaction designs that support the overall group and does not only consider each user individually. Chen designs a music recommendation system \emph{GroupFun} with a focus on groups that tries to enhance mutual awareness and transparency. \citeauthor{chenInterfaceInteractionDesign2011}'s assessment is that this work is still in a preliminary stage. Further work in that area was conducted by \citeauthor{chenEmpatheticonsDesigningEmotion2014} \cite{chenEmpatheticonsDesigningEmotion2014} looking at emotional awareness in groups and how this can be visualised in a user interface.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
\section{Group-Based Configuration}
|
||||||
|
\label{sec:Related_Work:GroupBasedConfiguration}
|
||||||
|
|
||||||
|
\begin{description}[style=unboxed, leftmargin=0cm, font=\normalfont]
|
||||||
|
\item[\citeauthor{felferningGroupBasedConfiguration2016} \cite{felferningGroupBasedConfiguration2016}] introduce basic definitions of group-based configuration task, show what conflicts can occur, how to deal with inconsistencies in preferences among group members and how to integrate different decision heuristics into this process.
|
||||||
|
|
||||||
|
\item[\citeauthor{velasquez-guevaraMultiSPLOTSupportingMultiuser2018} \cite{velasquez-guevaraMultiSPLOTSupportingMultiuser2018}] implement a web-based simultaneous group-based configuration system that uses constraints. Hereby each user configures according to their own preferences and the system proposes a configuration according to different strategies. These strategies are maximization of selections (which means finding the solution with the largest number of features selected), minimizing conflicting selections (which means to minimize the inclusion of features that have conflicts) and to prioritize decisions from some users.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
\section{Recommender Systems for Configuration}
|
||||||
|
\label{sec:Related_Work:RecommenderSystemsForConfiguration}
|
||||||
|
\begin{description}[style=unboxed, leftmargin=0cm, font=\normalfont]
|
||||||
|
\item[\citeauthor{falknerRecommendationTechnologiesConfigurable2011} \cite{falknerRecommendationTechnologiesConfigurable2011}] provide an overview of recommendation approaches for configuration to improve usability of configuration systems. They look at feature recommender to recommend which features in a configuration would be useful to have and at value recommender for these features. Additionally they discuss approaches for ranking and recommending explanations for inconsistencies between customers requirements and product rules however they do not provide any recommendations and point towards further needed research.
|
||||||
|
|
||||||
|
\item[\citeauthor{rubinshteynEntwicklungHybridenRecommender2018} \cite{rubinshteynEntwicklungHybridenRecommender2018}] looks at different approaches to recommendation and implements a prototype with CAS Merlin Configurator which uses a hybrid recommender system. His prototype combines constraint-based filtering with collaborative filtering and achieves better results in terms of precision than non-hybrid systems using collaborative filtering and constraint-based recommendation. In terms of recall his hybrid does not surpass the high numbers of constraint-based recommendations but improves upon collaborative-filtering.
|
||||||
|
|
||||||
|
\item [\citeauthor{benzMoeglichkeitenIntelligenterEmpfehlungssysteme2017} \cite{benzMoeglichkeitenIntelligenterEmpfehlungssysteme2017}] uses a constraint based recommender that uses fuzzy logic to relax constraints and thereby reducing the amount of times where the recommender is unable to make recommendations. With his approach a product manager has direct influence on the recommendations. Rules for recommendations hereby are not automatically learned but only manually created and relate to predefined user interest categories.
|
||||||
|
|
||||||
|
\item [\citeauthor{ullmannEntwurfUndUmsetzung2017} \cite{ullmannEntwurfUndUmsetzung2017}] implements a recommendation engine that is able to estimate customer budgets, a k-nearest neighbour classifier for finding a base configuration and non-negative matrix factorization combined with nearest neighbour to find configurations for specific users. \par
|
||||||
|
|
||||||
|
\item[\citeauthor{wetzelPersonalisierterUndLernender2017} \cite{wetzelPersonalisierterUndLernender2017}] combines collaborative filtering and click-stream analysis. For collaborative filtering he implements three filtering algorithms: k-nearest neighbour, weighted majority voting and non-negative matrix factorization. Collaborative filtering is used to find configurations that are similar to the current configuration. Click-stream analysis is done by using n-grams and the Smith-Waterman algorithm. \citeauthor{wetzelPersonalisierterUndLernender2017} also tries to use click-stream data in combination with Markov chains to give recommendations on how configuration options should be ordered in a configuration form but click-streams do not yield any improvements in terms of accuracy and recall.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
301
30_Thesis/sections/40_concept.tex
Normal file
301
30_Thesis/sections/40_concept.tex
Normal file
@@ -0,0 +1,301 @@
|
|||||||
|
\chapter{Concept}
|
||||||
|
\label{ch:Concept}
|
||||||
|
|
||||||
|
In this chapter definitions from \autoref{ch:Foundations} are extended, requirements formulated and assumptions made. Later, user interaction with the recommender system is described and the case study presented. Moreover, the process of generating recommendations is formulated and described. Last, the concept is illustrated using an example.
|
||||||
|
|
||||||
|
\section{Extension of Foundations}
|
||||||
|
\label{sec:Concept:ExtensionOfFoundations}
|
||||||
|
|
||||||
|
The definitions described in \autoref{ch:Foundations} need to be extended for this thesis. This section adds definitions that are required.
|
||||||
|
|
||||||
|
\subsection{Configuration State}
|
||||||
|
|
||||||
|
A \emph{configuration} $S$ will be defined as a tuple of variables (\autoref{eq:Foundations:ProductConfiguration:Variables}) and their corresponding domain value with
|
||||||
|
\begin{equation} \label{eq:Foundations:ProductConfiguration:ConfigurationState}
|
||||||
|
S = \{ (v_i,\ d) \ |\ v_i \in V \ \land \ d \in \mathfrak{D}(i),\ i=1,\dotsc,m \}.
|
||||||
|
\end{equation}
|
||||||
|
Essentially it is a set of variables and assigned values.
|
||||||
|
|
||||||
|
\subsection{Finished Configuration}
|
||||||
|
To define what a \emph{finished configuration} is, it is necessary to first define what it means for a configuration to be valid. Therefore $is\_valid$ is defined as
|
||||||
|
\begin{equation} \label{eq:Foundations:ProductConfiguration:IsValid}
|
||||||
|
is\_valid : S \to \{true, false\}; x \mapsto
|
||||||
|
\begin{cases}
|
||||||
|
true, & S \in solution\_space \\
|
||||||
|
false, & \text{otherwise}
|
||||||
|
\end{cases},
|
||||||
|
\end{equation}
|
||||||
|
with $solution\_space$ being the solution space of the corresponding constraint satisfaction problem. A \emph{finished configuration} $S_F$ is a configuration that contains all variables and is a valid configuration:
|
||||||
|
\begin{equation} \label{eq:Foundations:ProductConfiguration:FinishedConfiguration}
|
||||||
|
S_F \subset S,\ where \ \forall v_i \in V (\exists (v_i, d) \in S_F : d \in \mathfrak{D}(i)) \land is\_valid(S_F).
|
||||||
|
\end{equation}
|
||||||
|
In practice, a finished configuration of a product is something that is ready to be produced. For example if a car is being configured, this means that the car can be produced in the specified way given by the finished configuration.
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Group-Based Product Configuration}
|
||||||
|
\label{sec:Foundations:GroupBasedProductConfiguration}
|
||||||
|
|
||||||
|
Instead of a single person configuring a product, a group of people configures one product which can be useful in multi-stakeholder decisions. This setting needs mechanisms for describing the preferences of multiple people. Thus, a set of users $U$ will be introduced with
|
||||||
|
\begin{equation}\label{eq:Foundations:ProductConfiguration:Users}
|
||||||
|
U = \{1, \dotsc, n\},
|
||||||
|
\end{equation}
|
||||||
|
and a user's \emph{utility function} that maps a domain value to a utility value and is only known to the user
|
||||||
|
\begin{equation}
|
||||||
|
\begin{split}
|
||||||
|
u_i(d_j), \qquad \text{where}\ & u_i(d_j) \in [0,1] \\
|
||||||
|
& d_j \in \mathfrak{D}(j),\\
|
||||||
|
& 1 \leq j \leq m, \\
|
||||||
|
& 1 \leq i \leq n.
|
||||||
|
\end{split}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
\subsection{Group Recommender}
|
||||||
|
|
||||||
|
For a group recommender system additional definitions are required. The attitude of users is represented by their preferences $P$ which are directly related to how the user benefits from a domain value being present in the configuration. Let
|
||||||
|
\begin{gather} \label{tab:Foundations:GroupRecommenderSystem:Preferences}
|
||||||
|
P = \{ P_1, \dotsc, P_n\},\ \text{where} \\
|
||||||
|
P_i = \{(d,\ u_i(d)) \ | \ \forall d \in \mathfrak{D}(i),\ i=1,\dotsc,m \} \notag
|
||||||
|
\end{gather}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Requirements}
|
||||||
|
\label{sec:Concept:Requirements}
|
||||||
|
|
||||||
|
This section lists requirements that are considered and implemented in this thesis by the group-based configurator, including the recommendation system.
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Mandatory:
|
||||||
|
\begin{itemize}
|
||||||
|
\item The recommender should support a continuous value range for preferences
|
||||||
|
\item The recommendation engine can be used without proprietary software.
|
||||||
|
\item Give recommendations to a group, based on their preferences and the current configuration state.
|
||||||
|
\item The system supports multiple group configurators at the same time.
|
||||||
|
\item The system should take the current configuration state into account.
|
||||||
|
|
||||||
|
\item Recommendations should always be valid solutions.
|
||||||
|
\item The system has to respond in a timely manner.
|
||||||
|
\end{itemize}
|
||||||
|
\item Optional:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Provide a simple user interface.
|
||||||
|
\item The system should be able to work with other configuration systems.
|
||||||
|
\item Recommendations should allow different scoring functions.
|
||||||
|
\end{itemize}
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Assumptions}
|
||||||
|
\label{sec:Concept:Assumptions}
|
||||||
|
|
||||||
|
Due to the fact that a thesis has limited resources, some assumptions have to be made. The assumptions made are listed in this section.
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Only one product/solution is supposed to be configured at the same time by one group.
|
||||||
|
\item Features only support single value attributes.
|
||||||
|
\item The configuration is started after all group members are present.
|
||||||
|
\item Speed and optimization of the system does not have high priority.
|
||||||
|
\item The user interface is for demo purposes.
|
||||||
|
\end{itemize}
|
||||||
|
In order to reduce complexity, the assumptions are made that only single value attributes are supported and one product is configured at a time by a group. Consequently, less implementation work is needed. However, results are not dependent on these implementations. Most features use only single value attributes. It is also possible to model a feature that supports multiple attributes. As an example the feature \emph{audio system} has the following options: \emph{Bluetooth} or \emph{CD}. To allow multiple attributes to be selected the characteristics \emph{Bluetooth and CD} can be added.
|
||||||
|
The assumption that users join the system and only start configuring once all members of the group joined is made to reduce the amount of work needed for creating a lobby and waiting system which is not relevant for showing the functionality of the recommender. Speed and optimization of the system having no high priority as the speed has no influence on the results of this thesis. Therefore, as long as the system is fast enough, no further optimisation of speed is needed.
|
||||||
|
The evaluation is done solely with the recommender system and its APIs. Thus, the user interface is not directly relevant for the evaluation but it is relevant for communication of results.
|
||||||
|
|
||||||
|
\section{Case Study}
|
||||||
|
\label{sec:Concept:CaseStudy}
|
||||||
|
|
||||||
|
The case study used in this thesis is a simplified version from forestry.
|
||||||
|
The used characteristics and attributes are shown in \autoref{fig:Concept:ForestExample}. Additionally, as examples preferences, a configuration state and a finished configuration are given.
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
|
\section{User Interaction with the System}
|
||||||
|
\label{sec:Concept:UserSystemInteraction}
|
||||||
|
|
||||||
|
There is one main way to use the system which is defined in \autoref{tab:Concept:MainUseCase}. This process is also visualized in \autoref{fig:Concept:ConfigurationProcess}. All users start the configuration process together.
|
||||||
|
They select the current state at the beginning of the process. Then users repeatedly enter their preferences until each user's preferences have been entered into the system. Based on the entered preferences the system generates a recommendation that is a compromise of all users preferences.
|
||||||
|
|
||||||
|
\begin{table}[htb]
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabularx}{\columnwidth}{l|X}
|
||||||
|
\multicolumn{2}{c}{Main System Usage} \\
|
||||||
|
\hline
|
||||||
|
Preconditions &
|
||||||
|
\begin{itemize}
|
||||||
|
\item The configurator is opened on each of the group member's machines
|
||||||
|
\item The configuration is in an unfinished state (this state is a consensus state)
|
||||||
|
\end{itemize} \\
|
||||||
|
\hline
|
||||||
|
Postcondition &
|
||||||
|
\begin{itemize}
|
||||||
|
\item All users have entered their preferences for each attribute explicitly.
|
||||||
|
\item The system gives a recommendation based on all preferences and the unfinished configuration state
|
||||||
|
\end{itemize} \\
|
||||||
|
\hline
|
||||||
|
Basic Flow &
|
||||||
|
\begin{enumerate}
|
||||||
|
\item A user indicates a preference for an attribute
|
||||||
|
\item The system generates a recommendation (based on preferences and configuration status)
|
||||||
|
\item If not all users have given their preferences go to step 1.
|
||||||
|
\end{enumerate} \\
|
||||||
|
\hline
|
||||||
|
\end{tabularx}
|
||||||
|
\caption[Main System Usage]{A description of the main way users will interact with the system}
|
||||||
|
\label{tab:Concept:MainUseCase}
|
||||||
|
\end{center}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\begin{figure}[htb]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\textwidth]{./figures/40_concept/bpmn_configuration_process_with_continious_recommendation.pdf}
|
||||||
|
\caption[Configuration Process]{A BPMN diagram of the configuration process.}
|
||||||
|
\label{fig:Concept:ConfigurationProcess}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\section{Recommendation Generation}
|
||||||
|
\label{sec:Concept:SolutionGeneration}
|
||||||
|
|
||||||
|
This section describes how recommendations are generated. The recommender system has a database that stores possible finished configurations and the goal is to rank these recommendations according to a scoring function and to recommend the best possible configuration. The scoring function is referred to as the \emph{group configuration scoring function}. It uses the current configuration state, the preferences of the group and a finished configuration to calculate a score. This score resembles how good this configuration resembles the interest of the group. The exact procedure looks as follows:
|
||||||
|
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Assign a score to each stored configuration according to $$score_{group}(\overline{configurationState},\ \overline{preferences}, \ configurationInStore)$$
|
||||||
|
\item Chose the configuration with the highest score as recommendation.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
It is optionally possible to have multiple runs with different scoring functions. This, for example, allows the removal of configurations that cause a lot of misery.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Scoring Function}
|
||||||
|
|
||||||
|
\label{subsec:Concept:SolutionGeneration:ScoringFunction}
|
||||||
|
|
||||||
|
The \emph{group configuration scoring function} includes preferences and current configuration state. This function gives a score for a finished configuration (while using the current configuration state and all user preferences):
|
||||||
|
\begin{equation}
|
||||||
|
score_{group}: S \times P \times S_F \to \mathbb{R}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
An example group configuration scoring function is $score_{group}$ defined as
|
||||||
|
\begin{equation}
|
||||||
|
score_{group}(\overline{s},\ \overline{p},\ s) \coloneqq score(\overline{p},\ s) \cdot penalty(\overline{s},\ s)
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
This thesis will use multiple scoring functions. Among those are ones for least misery, average and multiplicative which all are implemented by $score$ (see \ref{subsec:Concept:ReccomendationGeneration:PreferenceScoring} and \ref{subsec:Concept:ReccomendationGeneration:Penalty}). Average and multiplicative yield good results among the studies presented by \citeauthor{Masthoff2015} \cite{Masthoff2015}. Strategies can also be combined, one example here is average without misery. The scoring functions used for this thesis all combine $penalty$ and $score$ by multiplication. However it is possible to use other combination strategies and it is possible to combine multiple scoring functions into one group scoring function. This thesis will use simpler scoring functions that are not combined but improvement here is possible.
|
||||||
|
|
||||||
|
\subsection{Preference Scoring}
|
||||||
|
\label{subsec:Concept:ReccomendationGeneration:PreferenceScoring}
|
||||||
|
|
||||||
|
All of the aggregation functions mentioned in \autoref{subsec:Concept:SolutionGeneration:ScoringFunction} have one preference per product. For configuration where a preference for all characteristics exists there needs to be a function that combines the preferences of one user into her configuration score. After one score has been calculated per user the mentioned preference aggregation strategies can be used.
|
||||||
|
|
||||||
|
A simple scoring function approach is to use the preference for each characteristic that is part of the configuration and then use the average. This approach is transparent because the preference of a user is directly translated into the score and no weighting is done. It means that a configuration score is simple to understand and to calculate. However, if needed, for example, to give one group member more power, it allows relative weighting. This can be done with preprocessing of preferences. Moreover, an approach like this ensures that through preprocessing feature weights can be added. It is therefore possible that a user gives different importances to features. Also, other means of weighting ratings are possible. For example the ratings of one group member who has more knowledge in an area can be increased by multiplication with a factor or alternatively the preferences for all other users can be decreased.
|
||||||
|
The formula for this rating function looks as follows:
|
||||||
|
|
||||||
|
\begin{equation}
|
||||||
|
score(\overline{p},\ s) = aggr( \ \{score_{user}(P_i, s) \ | \ P_i \in \overline{p} \} \ )
|
||||||
|
\end{equation}
|
||||||
|
where $aggr$ is the aggregation function and $score_{user}(P_i, s)$ is the configuration score of user $i$ which is defined as
|
||||||
|
\begin{equation}
|
||||||
|
score_{user}(P_i, s) = average(\{x \ | \ (characteristic, x) \in P_i \land characteristic \in s \}) \notag .
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{figure}[htb]
|
||||||
|
\begin{mdframed}[
|
||||||
|
nobreak=true,
|
||||||
|
frametitle={Example for Forestry Use Case},
|
||||||
|
linecolor=black,
|
||||||
|
frametitlerulecolor=black,
|
||||||
|
frametitlebackgroundcolor=gray!5
|
||||||
|
]
|
||||||
|
In this example there is a small group of users. The use case is a piece of forest and variables are for example harvesting activity, which trees to grow and accessibility for people.
|
||||||
|
\begin{align}
|
||||||
|
\begin{split}
|
||||||
|
V = \{ & \textit{indigenous}, \textit{resilient}, \textit{usable}, \textit{effort}, \textit{quantity}, \textit{price}, \textit{accessibility} \},
|
||||||
|
\end{split} \notag \\
|
||||||
|
\mathfrak{D}(\textit{indigenous}) = \{ & \text{low}, \text{moderate}, \text{high}\}, \notag \\
|
||||||
|
\mathfrak{D}(\textit{resilient}) = \{ & \text{low}, \text{moderate}, \text{high}\}, \notag \\
|
||||||
|
\mathfrak{D}(\textit{usable}) = \{ & \text{low}, \text{moderate}, \text{high}\}, \notag \\
|
||||||
|
\mathfrak{D}(\textit{effort}) = \{ & \text{manual}, \text{harvester}, \text{autonomous}\}, \notag \\
|
||||||
|
\mathfrak{D}(\textit{quantity}) = \{ & \text{low}, \text{moderate}, \text{high}\}, \notag \\
|
||||||
|
\mathfrak{D}(\textit{price}) = \{ & \text{low}, \text{moderate}, \text{high}\}, \notag\\
|
||||||
|
\mathfrak{D}(\textit{accessibility}) = \{ & \text{low}, \text{moderate}, \text{high}\},\notag \\
|
||||||
|
U = \{ & 1,2\} \notag\\
|
||||||
|
P = \{ & P_1, P_2\} \notag\\
|
||||||
|
\begin{split}
|
||||||
|
P_1 = \{ & (\text{manual}, 0.8), (\text{harvester}, 0.3) \} \\
|
||||||
|
& \cup \{ (d,0.5)\ |\ d \in \mathfrak{D}(i),\ i \in V,\ i \notin \{ \text{manual}, \text{harvester}\} \ \} \
|
||||||
|
\end{split} \notag \\
|
||||||
|
P_2 = \{ & (d,0.5)\ |\ d \in \mathfrak{D}(i),\ i \in V \} \notag \\
|
||||||
|
S = \{ & (\textit{indigenous}, \text{low}), (\textit{quantity}, \text{moderate}) \} \notag \\
|
||||||
|
\begin{split}
|
||||||
|
S_F = \{ & (\textit{indigenous}, \text{low}), (\textit{resilient}, \text{low}), (\textit{usable},\text{low}), (\textit{effort}, \text{manual}), \\
|
||||||
|
& (\textit{quantity}, \text{low}), (\textit{price},\text{high}),(\textit{accessibility}, \text{low}) \}
|
||||||
|
\end{split} \notag
|
||||||
|
\end{align}
|
||||||
|
\end{mdframed}
|
||||||
|
\caption[Forestry Use Case]{An example of use case in forestry that includes two people.}
|
||||||
|
\label{fig:Concept:ForestExample}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
The example in \autoref{fig:Concept:ForestExample} contains two users. The first user has preferences for the characteristic \emph{manual} of the feature with $0.8$ and the characteristic \emph{harvester} of the same feature with $0.3$. All other characteristics have a preference of $0.5$. The second user's preferences are $0.5$ for all characteristics. The finished configuration that is supposed to be rated in this example contains the characteristics \emph{low} for each feature except for \emph{effort} and \emph{quantity} which are set to \emph{manual} and \emph{high}. The score fore the finished configuration $S_F$ of user one is $0.54$. This score is the average of all seven features. User one rates all characteristics of all features as $0.5$ except two characteristics for \emph{effort}. Thus, all feature scores for this user are $0.5$ except the score for \emph{effort} is $0.8$ because of the user's preference of $0.8$ for the characteristic \emph{manual}. The resulting average score per feature of $0.54$ is the user's score for this configuration. User two rates all characteristics with $0.5$ therefore the resulting average is $0.5$.
|
||||||
|
The group configuration score is dependent on the used aggregation strategy. Multiplication results in a score of $0.54 \cdot 0.5 = 0.27$. The score for average is $\frac{1}{2}(0.54 + 0.5) = 0.52$ and for least misery $\min \{0.54, 0.5\} = 0.5$.
|
||||||
|
|
||||||
|
\subsection{Configuration Change Penalty}
|
||||||
|
\label{subsec:Concept:ReccomendationGeneration:Penalty}
|
||||||
|
|
||||||
|
This thesis proposes the following penalty function which gives the percentage of characteristics that exist in the configuration that is to be rated. This value can be tuned to be more or less strict by potentiating. This is done by selecting different values for $\alpha$, thereby, allowing more deviation or less deviation from the current configuration state. The penalty function is defined as
|
||||||
|
\begin{equation}
|
||||||
|
\notag \alpha \in \mathbb{R}, \qquad unchanged(d,\overline{s}, s) =
|
||||||
|
\begin{cases}
|
||||||
|
1, & d \in \overline{s} \land d \in s \\
|
||||||
|
0, & \text{otherwise}
|
||||||
|
\end{cases}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
\begin{equation}
|
||||||
|
penalty_{proportion}(\overline{s},\ s) = \left(\frac{\sum_{d \in \overline{s}} unchanged(d,\overline{s}, s)}{|\overline{s}|}\right)^\alpha.
|
||||||
|
\end{equation}
|
||||||
|
In essence the function checks the number of unchanged characteristics and divides this by the number of characteristics that are in the current configuration state. The result is the proportion of unchanged characteristics when comparing the current configuration state to the finished configuration.
|
||||||
|
|
||||||
|
By including the current configuration state, the scoring function can take into account that some characteristics have already been realized and accordingly might be very costly to change. A higher $\alpha$ resembles a higher cost of change and an alpha of zero represents no costs for changes.
|
||||||
|
|
||||||
|
\section{Illustration}
|
||||||
|
\label{sec:Concept:Illustration}
|
||||||
|
|
||||||
|
This section gives an example to illustrate how the recommendation works. The example in \autoref{fig:Concept:ForestExample} is used for that but the preferences are extended (see \autoref{tab:Concept:UseCaseRating}). \autoref{tab:Concept:UseCaseConfigurations} shows the current configuration state which consists of the characteristic moderate for the feature \textit{indigenous} and \textit{resilient} respectively. $S_{F1}$ to $S_{F4}$ show the stored configurations for this example. The features that will be focused on are \textit{indigenous}, \textit{resilient} and \textit{effort}. In the presented example $S_{F1}$ performs best. The exact reason for that will be presented here. $S_{F1}$ is compared to $S_{F2}$ to show the effect of divergence from the configuration state. A comparison between $S_{F1}$ and $S_{F3}$ is done to show the difference between preferences and the effect on the score and last, $S_{F4}$ is done to show the effect of switching to better preferences but diverging from the current state. The configurations all differ from $S_{F1}$ in only one characteristic that is chosen differently. As aggregation strategy the \emph{average} metric is used (see \autoref{sec:Foundations:GroupRecommenderSystem}). The parameter $\alpha$ (see \autoref{subsec:Concept:ReccomendationGeneration:Penalty}) is set to 1. A lower $\alpha$ reduces the penalty given to configurations that deviate from the configuration state $S$ and a higher $\alpha$ increase the reluctance to change.
|
||||||
|
|
||||||
|
\begin{table}[htb]
|
||||||
|
\tiny
|
||||||
|
\begin{tabularx}{\columnwidth}{C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|}
|
||||||
|
& \multicolumn{3}{c|}{\textit{indigenous}} & \multicolumn{3}{c|}{\textit{resilient}} & \multicolumn{3}{c|}{\textit{usable}} & \multicolumn{3}{c|}{\textit{effort}} & \multicolumn{3}{c|}{\textit{quantity}} & \multicolumn{3}{c|}{\textit{price}} & \multicolumn{3}{c|}{\textit{accessibility}} \\
|
||||||
|
\rotatebox[origin=c]{90}{\ preferences} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{manual} & \rotatebox[origin=c]{90}{harvester} & \rotatebox[origin=c]{90}{autonomous} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} \\
|
||||||
|
\hline
|
||||||
|
$P_1$ & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 & \textbf{0.1} & \textbf{0.7} & \textbf{0.9} & \textbf{0.6} & \textbf{0.8} & \textbf{0.2} & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 \\
|
||||||
|
$P_2$ & \textbf{0.1} & \textbf{0.6} & \textbf{0.9} & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 & \textbf{0.8} & \textbf{0.3} & \textbf{0.1} & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 \\
|
||||||
|
\end{tabularx}
|
||||||
|
\caption[Forestry Use Case: Example Preferences]{A table showing the preferences of an example for this section.}
|
||||||
|
\label{tab:Concept:UseCaseRating}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\begin{table}[htb]
|
||||||
|
\tiny
|
||||||
|
\begin{tabularx}{\columnwidth}{C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|}
|
||||||
|
& \multicolumn{3}{c|}{\textit{indigenous}} & \multicolumn{3}{c|}{\textit{resilient}} & \multicolumn{3}{c|}{\textit{usable}} & \multicolumn{3}{c|}{\textit{effort}} & \multicolumn{3}{c|}{\textit{quantity}} & \multicolumn{3}{c|}{\textit{price}} & \multicolumn{3}{c|}{\textit{accessibility}} \\
|
||||||
|
\rotatebox[origin=c]{90}{\ configuration} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{manual} & \rotatebox[origin=c]{90}{harvester} & \rotatebox[origin=c]{90}{autonomous} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} \\
|
||||||
|
\hline
|
||||||
|
$S_{\ \ }$ & - & \pmb{\checkmark} & - & - & \pmb{\checkmark} & - & - & - & - & - & - & - & - & - & - & - & - & - & - & - & - \\
|
||||||
|
$S_{F1}$ & - & \pmb{\checkmark} & - & - & \pmb{\checkmark} & - & - & \checkmark & - & \pmb{\checkmark} & - & - & - & - & \checkmark & - & \checkmark & - & \checkmark & - & - \\
|
||||||
|
$S_{F2}$ & - & \pmb{\checkmark} & - & - & - & \pmb{\checkmark} & - & \checkmark & - & \pmb{\checkmark} & - & - & - & - & \checkmark & - & \checkmark & - & \checkmark & - & - \\
|
||||||
|
$S_{F3}$ & - & \pmb{\checkmark} & - & - & \pmb{\checkmark} & - & - & \checkmark & - & - & \pmb{\checkmark} & - & - & - & \checkmark & - & \checkmark & - & \checkmark & - & - \\
|
||||||
|
$S_{F4}$ & - & - & \pmb{\checkmark} & - & \pmb{\checkmark} & - & - & \checkmark & - & \pmb{\checkmark} & - & - & - & - & \checkmark & - & \checkmark & - & \checkmark & - & - \\
|
||||||
|
\end{tabularx}
|
||||||
|
\caption[Forestry Use Case: Example Configurations]{The current configuration state $ S $ and the stored finished configurations $ S_{Fi} $.}
|
||||||
|
\label{tab:Concept:UseCaseConfigurations}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
The difference between $S_{F1}$ and $S_{F2}$ is that instead of containing \emph{moderate} for the feature \emph{resilient} $S_{F2}$ contains \emph{high}. The scores for these two characteristics are the same, with a value of $0.55$, as both users have rated them at $0.5$ but since $S_{F2}$ deviates from the configuration state there will be a penalty. There are two characteristics in the configuration state $S$, therefore, the penalty is $(\frac{1}{2})^\alpha = (\frac{1}{2})^1 = 0.5$. This means the score of $S_{F2}$ is half of $S_{F1}$, resulting in a final score of $0.275$ compared to $0.55$.
|
||||||
|
|
||||||
|
The only difference between $S_{F1}$ and $S_{F3}$ is that $S_{F3}$ changes the selection for the feature \emph{effort}. The characteristic \emph{manual} is chosen in $S_{F1}$ and the characteristic \emph{harvester} for $S_{F3}$. The individual score for user one increases as they prefer \emph{harvester} with $0.8$ over \emph{manual} with $0.6$. However, user two has an individual score reduction as their score changes from $0.8$ for \emph{manual} to $0.3$ for \emph{harvester}. The larger decrease in the score of user two causes a decrease in the overall score when comparing $S_{F1}$ to $S_{F3}$ with a score of $0.55$ to $0.53$. The scores for both users are closer together for $S_{F1}$. However, this does not necessarily have to be the case if the preference of user two for harvester were to change to $0.6$ because then both configurations would have the same score. A different user preference aggregation strategy can change that.
|
||||||
|
|
||||||
|
Last, $S_{F1}$ and $S_{F4}$ differentiate in terms of the characteristic choice for the feature \emph{indigenous}. The switch from \emph{moderate} to \emph{high} when changing from $S_{F1}$ to $S_{F4}$ causes an increase in the individual scoring function of user two. This is caused because her preference for \emph{moderate} is $0.6$ and for \emph{high} is $0.9$. This results in a score of $0.57$ for $S_{F4}$. Yet, the change that causes the preference scoring function to give a higher score entails a penalty as the characteristic \emph{high} is not part of the configuration state. This penalty causes the overall score to drop to $0.29$ compared to the score of $S_{F1}$ with $0.55$.
|
||||||
|
|
||||||
|
|
||||||
97
30_Thesis/sections/50_design_and_implementation.tex
Normal file
97
30_Thesis/sections/50_design_and_implementation.tex
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
\chapter{Design and Implementation}
|
||||||
|
\label{ch:DesignImplementation}
|
||||||
|
|
||||||
|
This thesis requires a group configuration system with a recommender. In this thesis a modified version of \emph{CAS Configurator Merlin} \cite{IndustrySpecificProduct2020} is used that has been developed by \citeauthor{raabKollaborativeProduktkonfigurationEchtzeit2019} \cite{raabKollaborativeProduktkonfigurationEchtzeit2019}. The base system is described in \autoref{sec:Foundations:BaseSystem}.
|
||||||
|
|
||||||
|
For this thesis \texttt{M.Collab} and \texttt{M.Collab-Customer} have undergone some slight modifications to allow the displaying of recommendations and to query the recommender. The user interface is shown in \autoref{fig:DesignImplementation:UserInterface}. It is extended by adding a preference slider that works in the interval $[0,1]$. The user receives feedback on what a value means based on the thumb position. The thumb rotates from thumbs-down to neutral to thumbs-up based on the selected value. Also functionality to show other participants in the session was added.
|
||||||
|
\begin{figure}[htb]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.8\textwidth]{./figures/50_design_and_implementation/user_interface_prototype.png}
|
||||||
|
\caption[User Interface]{The user interface of the prototype, seen by one user while configuring with three other people. The circles in the top left represent the users that are connected in the current sessions. The current configuration state is shown by the characteristics coloured in red. Recommendations are surrounded with a green border.}
|
||||||
|
\label{fig:DesignImplementation:UserInterface}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Microservice}
|
||||||
|
\label{sec:DesignImplementation:Microservice}
|
||||||
|
|
||||||
|
An existing base system can be extended in different directions. As \texttt{M.Collab} already functions as middleman between \texttt{M.Collab-Customer} and \texttt{M.Core} , one solution would be to add recommender functionality to \texttt{M.Collab-Customer}. However, this approach would conflict with the \emph{single responsibility} \cite{martinCleanArchitectureCraftsman2017} and \emph{separation of concern} \cite{de2002importance} software design principles. It would change \texttt{M.Collab} from a system that works similar to a router to one that additionally handles recommendations. \texttt{M.Collab} manages communication between \texttt{M.Collab-Customer} instances and between \texttt{M.Core} and \texttt{M.Collab-Customer}. Thus this solution was discarded.
|
||||||
|
|
||||||
|
Another viable solution is adding the recommendation functionality to \texttt{M.Core}. The main benefit of this approach is that it allows the recommender to use systems that are used for solving constraint satisfaction problems to enhance recommendations. The disadvantage of this approach is, however, that now the recommender is tightly coupled with the configurator. Not only does this mean that reproducing results in this thesis is only possible with access to a non-open-source product but it also means that there is no possibility to use the recommender for other configuration solutions. Moreover, no plugin API exists and, as a result the extension would require a large effort.
|
||||||
|
|
||||||
|
|
||||||
|
\begin{figure}[tb]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.55\textwidth]{./figures/50_design_and_implementation/MerlinCollabRecommender.pdf}
|
||||||
|
\caption[Architecture: Recommender System and Configurator]{The architecture of the extended recommender system based on \citeauthor{raabKollaborativeProduktkonfigurationEchtzeit2019}'s configurator (see \autoref{fig:Foundations:CollaborativeConfiguratorMerlin}). The changes include the addition of the component \texttt{M.Recommend} and the recommender database. Changes are marked in grey. Components that have a grey background are added and components with a partial grey background undergo changes.}
|
||||||
|
\label{fig:DesignImplementation:RecommenderForCollaborativeConfiguratorMerlin}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Due to these reasons it was decided to create a new microservice (see \autoref{fig:DesignImplementation:RecommenderForCollaborativeConfiguratorMerlin}), called \texttt{M.Recommend} which communicates with \texttt{M.Collab}, and thereby it is loosely coupled with other system components. Additionally, this approach allows to add functionality that takes advantage of a constraint satisfaction problem solver by either communicating with one via an API or by integrating one directly into the recommender component \texttt{M.Recommend}. Moreover, it also allows the use of different technologies instead of JavaScript and Node.js. Using a separate component also allows to scale the system differently as it is possible to use multiple recommender instances for one configurator instance or one recommender instance with multiple configurator instances. This is an advantage in the age of automatically scaling systems.
|
||||||
|
|
||||||
|
|
||||||
|
\section{API}
|
||||||
|
\label{sec:DesignImplementation:API}
|
||||||
|
|
||||||
|
The API used for the recommender is a REST-API. REST allows the flexible addition of new endpoints thereby making the system easy to extend.
|
||||||
|
When a recommendation is supposed to be generated, \texttt{M.Collab} sends a HTTP-POST-request to M.Recommend (see \autoref{fig:DesignImplementation:SequenceDiagramRecommendation}). This request contains preferences and the current configuration. \texttt{M.Recommend} generates a recommendation based on the received data as a response. The recommended finished configuration is now sent from \texttt{M.Collab} via broadcast over WebSockets to all M.Customer clients.
|
||||||
|
|
||||||
|
\begin{figure}[b]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.95\textwidth]{./figures/50_design_and_implementation/sequence_diagram_generating_recommendation.pdf}
|
||||||
|
\caption[Sequence Diagram: Recommendation Generation]{A sequence diagram showing the recommendation process.}
|
||||||
|
\label{fig:DesignImplementation:SequenceDiagramRecommendation}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
The REST API defines the following Endpoints and uses \emph{JSON} \cite{IntroducingJSON}.
|
||||||
|
|
||||||
|
\begin{description}
|
||||||
|
\item[/recommender/] is reachable via a POST request and accepts a configuration state and preferences. Based on that a finished configuration is sent back as response.
|
||||||
|
\item[/config/] accepts GET and POST requests. Sending a GET request results in a list of all stored configurations being sent back. POST is used for adding a finished configuration to the configuration database.
|
||||||
|
\item[/product\_structure/] is reachable via GET and PUT. GET returns the current product structure and PUT is there to replace it.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
The API is implemented with a minimal amount of functions and the recommender currently only supports one product at a time. However, the architecture is built in a way that it can be easily extended into supporting multiple products.
|
||||||
|
The general architecture adheres to a \emph{model-view-controller} \cite{gamma2015design} inspired architecture.
|
||||||
|
Data is stored and retrieved using \emph{data access objects}. Therefore, the currently used simple TinyDB database backend can be replaced with a different one easily.
|
||||||
|
|
||||||
|
\section{Database}
|
||||||
|
\label{sec:DesignImplementation:Database}
|
||||||
|
|
||||||
|
The choice among database systems has to be made between \emph{non-relational} and \emph{relational} databases. Relational databases are good in regard to at the four ACID (atomicity, consistency, isolation, durability) principles \cite{chrysanthis1998recovery, cookACIDBASEDatabase2009}. Moreover, if the data structures are not changing it provides a solid basis that keeps the data reliable. A non-relational database on the other hand is ideal for rapid agile development. Besides, it excels if data requirements are not entirely clear and if a large amount of unstructured data has to be stored. Furthermore, non-relational databases allow the system to store the data in any kind of structure. This proves an advantage as it allows to use the same data structure to be stored that also has to be fed out through the api. Hence, parsing methods for the API can be reused and altered upon changing requirements. Moreover, the data used for the recommender is mostly not interconnected. Therefore a relational databases' main strength, the data structure, does not really come into play here. Thus, in this thesis a non-relational database is used.
|
||||||
|
|
||||||
|
\section{Scoring Functions}
|
||||||
|
\label{sec:DesignImplementation:ScroingFunctions}
|
||||||
|
|
||||||
|
\begin{figure}[tb]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\textwidth]{./figures/50_design_and_implementation/class_diagram_scoring_functions_simplified.pdf}
|
||||||
|
\caption[Class Diagram: Scoring Functions]{A simplified class diagram of the classes and interface related to scoring functions. }
|
||||||
|
\label{fig:DesignImplementation:ClassDiagramScoringFunctions}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
This section describes the implementation of scoring functions (see \autoref{fig:DesignImplementation:ClassDiagramScoringFunctions}) which are implemented in a modular fashion. There are different types of scoring functions. Some are meant for evaluating user preferences (and inherit from the class \texttt{PreferenceScoringFunction}), others are meant for penalising changes in the current configuration state and therefore inherit from \texttt{ConfigurationPenalty}. The last type of scoring function is \texttt{ReduceScoringFunction} that consists of one or multiple scoring functions and combines their scores to one. It uses the \emph{composite design pattern} \cite{gamma2015design}. These functions allow ´the flexible combination of functions and, in addition due to their underlying structure they can use similar components. For example, preference scoring functions use a \emph{pipeline} \cite{gamma2015design} to first convert preferences to a list of values. This is done using \texttt{PreferenceToListFunction}. A list can be modified with a \texttt{ListToListFunction}. This step is optional. The last mandatory step is to convert the list to a value using \texttt{ListToValueFunction}. After this step, the value can be modified further, for example with a threshold function or any other function. All these components allow the easy and quick creation of new scoring functions. A factory (\texttt{ScoringFunctionFactory}) is used to assemble a scoring function based on input parameters. This provides flexibility for quickly implementing new types of scoring functions.
|
||||||
|
|
||||||
|
\section{Technologies}
|
||||||
|
\label{sec:DesignImplementation:Technologies}
|
||||||
|
|
||||||
|
\texttt{M.Recommend} is built in \emph{Python} \cite{PythonOrg} using \emph{FlaskRESTPlus} \cite{FlaskRESTPlus13Documentation}. \emph{FlaskRESTPlus} is an extension of \emph{Flask} \cite{FlaskDocumentation} that is meant to build a REST-Service and allows the generation of a web UI which documents the API. \emph{Flask} is a WSGI \cite{WhatWSGI} framework that is meant to easily get started with development while maintaining the ability to scale up to complex applications.
|
||||||
|
|
||||||
|
As Database system \emph{TinyDB} \cite{TinyDB15Documentation} with the extension \emph{tinyrecord} \cite{junEugeneeeoTinyrecord2020} is being employed. \emph{TinyDB} is a simple well tested NoSQL database framework that can store documents that are represented as dictionaries. The extension \emph{tinyrecord} adds atomic transaction support with a record-first then execute architecture.
|
||||||
|
|
||||||
|
As testing library for unit tests \emph{pytest} \cite{PytestDocumentation} is being employed which is commonly used for python. It supports automatic test discovery.
|
||||||
|
|
||||||
|
For the evaluation of data and also for some operations with lists \emph{numpy} \cite{NumPy} is being employed. This library is optimised for fast scientific computing.
|
||||||
|
|
||||||
|
Visualisation is done using \emph{Matplotlib} \cite{MatplotlibDocumentation} in combination with \emph{pandas} \cite{PandasPythonData}. \emph{Pandas} is a powerful framework for data analysis and data manipulation which in the context of this thesis is being employed to load evaluation data.
|
||||||
|
|
||||||
|
|
||||||
|
\section{Requirements Assessment}
|
||||||
|
\label{sec:DesignImplementation:RequirementsAssesment}
|
||||||
|
|
||||||
|
The requirements posed in \autoref{sec:Concept:Requirements} are assessed in this section. The recommender uses a continuous value range between zero and one for preferences. Additionally, the recommendation component is designed to be used independently, therefore it is possible to use it without proprietary software.
|
||||||
|
Additionally, the group scoring function takes into account preferences of each group member and the current configuration state. The recommendation system can be used by multiple users at the same time as all information needed for a recommendation is sent with the recommendation request. Accordingly, multiple group configurators can use the system at the same time. Furthermore, only valid solutions are recommended because the recommender system's configuration database stores finished configurations. Moreover, the system responds in a timely manner with all components running on the same machine, a modern laptop.
|
||||||
|
Consequently, all mandatory requirements have been fulfilled.
|
||||||
|
|
||||||
|
The user interface is simple because a user only has two possible opportunities for action. They can change their preferences with a slider or change the configuration state. Additionally, the system is made to be compatible with other configuration systems. These have to implement the correct API-calls. However, this requirement was not tested with a different configuration system. Different scoring functions can be used however they can neither be selected through user interface nor through the API. Thus, this requirement is only partially fulfilled but the system allows extension to fulfil this requirement fully.
|
||||||
|
Overall optional requirements have been addressed but they have not been thoroughly evaluated and some of them have only been partially implemented.
|
||||||
319
30_Thesis/sections/60_evaluation.tex
Normal file
319
30_Thesis/sections/60_evaluation.tex
Normal file
@@ -0,0 +1,319 @@
|
|||||||
|
\chapter{Evaluation}
|
||||||
|
\label{ch:Evaluation}
|
||||||
|
|
||||||
|
In this chapter the prototype is evaluated in terms of its functionality and its properties. The evaluation is an offline evaluation with synthetic data. All possible valid configurations are generated for one use case, i.e. all possible valid configurations for the forestry use case. Moreover, groups with explicit preferences and a configuration state (which, e.g. would be the currently existing forest) are generated, too. The evaluation will show that the recommender produces good results overall.
|
||||||
|
|
||||||
|
\section{Metric}
|
||||||
|
\label{sec:Evaluation:Metrics}
|
||||||
|
|
||||||
|
A metric is required to carry out the validation. The proposed metric is the metric of satisfaction. This metric was created because pertinent literature does not provide metrics usable for this thesis. Satisfaction is quantified in this thesis by a threshold metric. A user's preference is used to calculate a rating for each possible solution. Each configuration solution gets an individual score determined by the user's preferences. The score is calculated using the average of a user's preference for each characteristic that is part of the configuration. The result allows a configuration to be compared to all other configurations and ranked according to the percentage of configurations that it beats for a specific user. The threshold metric consists of two parameters. First the threshold center $tc$ and second the satisfaction distance $sd$. The threshold for a satisfied person is at $tc + sd$ and for a dissatisfied person is at $tc - sd$. If a recommendation lies in between these two thresholds the person is classified to neither be satisfied nor be dissatisfied with the solution. For this thesis $sd=5\%$ will be used. This choice is based on the assumption that people switch from satisfied to dissatisfied rather quickly. Therefore, the parameter considered in this thesis is $tc$. An example is the choice of $tc = 60\%$. This results in a person satisfied with a recommendation if it is better than at least $65\%$ of all possible finished configurations. In contrast, a person is dissatisfied if the recommendation is not better than $55\%$ of all possible finished configurations. A recommendation that is better than at least $55\%$ and not better than $65\%$ of all possible solutions is considered neutral by the individual.
|
||||||
|
|
||||||
|
Different $tc$ values allow to model different situations. A situation with a low willingness to compromise is modelled by a high $tc$. A contrary situation with a group that has a high willingness to compromise is modelled by a low $tc$.
|
||||||
|
|
||||||
|
A satisfaction and dissatisfaction classification allows groups to be measured by the amount of people that are satisfied and dissatisfied. Moreover, changes in satisfaction and dissatisfaction for different parameters can be compared. A reasonable $tc$ value has to be found for groups otherwise any derived metrics will not show any meaningful results.
|
||||||
|
|
||||||
|
\section{Evaluation Objective}
|
||||||
|
\label{sec:Evaluation:Questions}
|
||||||
|
|
||||||
|
This section poses three questions that will be answered during the evaluation. The questions' aim is to guide through this chapter. They set the guidelines for this evaluation and define its focuses. The questions answered during the evaluation are:
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Main question: How does the satisfaction with a group decision, guided by the recommender, differ from the decision of a single decision maker, the dictator, who does not take the other group members' opinions into account?
|
||||||
|
\item How many group members on average are satisfied with the group decision?
|
||||||
|
\item How does the amount of stored finished configurations relate to satisfaction with a recommendation?
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
The main question is addressed to understand the behaviour the recommender and whether it gives benefits to groups. The second question is aimed at providing information regarding the data and what satisfaction looks like in group decisions and which factors influence it. Last, a technical question is posed. This question is relevant because it shows technical aspects of the recommender. This is important since other work for using the recommender in other possibly larger use cases depend on performance figures in relation to number of stored configurations.
|
||||||
|
|
||||||
|
|
||||||
|
\begin{table}[tb]
|
||||||
|
\tiny
|
||||||
|
\begin{center}
|
||||||
|
\setlength\tabcolsep{3pt}
|
||||||
|
\begin{tabularx}{\columnwidth}{cl|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|C|}
|
||||||
|
& & \multicolumn{3}{c|}{\textit{indigenous}} & \multicolumn{3}{c|}{\textit{resilient}} & \multicolumn{3}{c|}{\textit{usable}} & \multicolumn{3}{c|}{\textit{effort}} & \multicolumn{3}{c|}{\textit{quantity}} & \multicolumn{3}{c|}{\textit{price}} & \multicolumn{3}{c|}{\textit{accessibility}} \\
|
||||||
|
& & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{manual} & \rotatebox[origin=c]{90}{harvester} & \rotatebox[origin=c]{90}{\ autonomous} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} & \rotatebox[origin=c]{90}{low} & \rotatebox[origin=c]{90}{moderate} & \rotatebox[origin=c]{90}{high} \\
|
||||||
|
|
||||||
|
\hline
|
||||||
|
\multirow{3}{*}{\textit{indigenous}} & low & - & - & - & & & & & & & & & & & & & & & & & & \\ \cline{2-23}
|
||||||
|
& moderate & - & - & - & & & n & & & n & & & & & & & & & & & & \\ \cline{2-23}
|
||||||
|
& high & - & - & - & & & n & & n & n & & & & & & n & n & & & & & \\ \hline
|
||||||
|
|
||||||
|
\multirow{3}{*}{\textit{resilient}} & low & & & & - & - & - & & & & & & & & & & & & & & & \\ \cline{2-23}
|
||||||
|
& moderate & & & & - & - & - & & & n & & & & & & & & & & & & \\ \cline{2-23}
|
||||||
|
& high & & n & n & - & - & - & & n & n & & & & & & n & n & n & & & & \\ \hline
|
||||||
|
|
||||||
|
\multirow{3}{*}{\textit{usable}} & low & & & & & & & - & - & - & & & & & & n & n & n & & & & \\ \cline{2-23}
|
||||||
|
& moderate & & & n & & & n & - & - & - & & & & & & & & & & & & \\ \cline{2-23}
|
||||||
|
& high & & n & n & & n & n & - & - & - & & & & & & & & & & & & n \\ \hline
|
||||||
|
|
||||||
|
\multirow{3}{*}{\textit{effort}} & low & & & & & & & & & & - & - & - & & & n & n & n & & & & \\ \cline{2-23}
|
||||||
|
& moderate & & & & & & & & & & - & - & - & & & & & & & & n & n \\ \cline{2-23}
|
||||||
|
& high & & & & & & & & & & - & - & - & & & & & & & & n & n \\ \hline
|
||||||
|
|
||||||
|
\multirow{3}{*}{\textit{quantity}} & low & & & & & & & & & & & & & - & - & - & n & n & & & & \\ \cline{2-23}
|
||||||
|
& moderate & & & & & & & & & & & & & - & - & - & n & n & & & & \\ \cline{2-23}
|
||||||
|
& high & & & n & & & n & n & & & n & & & - & - & - & & & & & n & n \\ \hline
|
||||||
|
|
||||||
|
\multirow{3}{*}{\textit{price}} & low & & & n & & & n & n & & & n & & & n & n & & - & - & - & & & \\ \cline{2-23}
|
||||||
|
& moderate & & & & & & n & n & & & n & & & n & n & & - & - & - & & & \\ \cline{2-23}
|
||||||
|
& high & & & & & & & & & & & & & & & & - & - & - & & & \\ \hline
|
||||||
|
|
||||||
|
\multirow{3}{*}{\textit{accessibility}} & low & & & & & & & & & & & & & & & & & & & - & - & - \\ \cline{2-23}
|
||||||
|
& moderate & & & & & & & & & & & n & n & & & n & & & & - & - & - \\ \cline{2-23}
|
||||||
|
& high & & & & & & & & & n & & n & n & & & n & & & & - & - & - \\ \hline
|
||||||
|
|
||||||
|
\end{tabularx}
|
||||||
|
\caption[Forestry Use Case: Constraints]{Constraints in \emph{not with} form for the forestry use case.}
|
||||||
|
\label{tab:Evaluation:UseCase}
|
||||||
|
\end{center}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\section{Use Case}
|
||||||
|
\label{sec:Evaluation:UseCase}
|
||||||
|
The evaluation uses the forestry use case. This is a use case with four stakeholders. \autoref{fig:Concept:ForestExample} presents the attributes and characteristics of this use case. \autoref{tab:Evaluation:UseCase} extends it with rules that dictate which configurations valid.
|
||||||
|
|
||||||
|
The stakeholders in this use case are: a forest owner, an athlete, an environmentalist, and a consumer. The owner sees the forest as an investment, they are interested in a high long-term profit. On the other hand consumers are interested in reasonable wood price as they use wood for furniture and also for their fireplaces. In contrast, the environmentalist is interested in a healthy forest that is not impacted negatively by human activity. Last is the athlete who is interested in good accessibility of the forest and that there is some plant and animal life.
|
||||||
|
Every group consists of four people which is why they need to try and find a compromise. Diverging preferences make this difficult. All stakeholders have an interest in getting their will but also all parties need others to accept the decision. It is not in the interest of a stakeholder to fully have their preferences met while ending up with protests that arise from the deep dissatisfaction of other group members.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\section{Data Generation}
|
||||||
|
\label{sec:Evaluation:GeneratingGroups}
|
||||||
|
|
||||||
|
This section describes the data generation process as seen in \autoref{fig:Evaluation:GeneratingDataProcess} that generates data based on the use case in \autoref{sec:Evaluation:UseCase}. Group profiles are used to generate groups of four with different group member types. The exact group composition depends on the group type. For every parameter and group type $1000$ groups are generated and converted to preferences. This number was chosen as it is the highest number that allows computing times to work overnight on the hardware that is available. Also this number is large enough to reduce strong variability between runs. For each group unfinished configurations are generated and its preferences are paired up with the generated unfinished configurations. These pairs later on are used for the evaluation.
|
||||||
|
|
||||||
|
\begin{figure}[htb]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.9\textwidth]{./figures/60_evaluation/bpmn_evaluation_input_data_generation.pdf}
|
||||||
|
\caption[Data Generation Process]{Data generation process for the evaluation}
|
||||||
|
\label{fig:Evaluation:GeneratingDataProcess}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\subsection{Unfinished Configurations Generation}
|
||||||
|
|
||||||
|
Unfinished configurations are generated using all finished configurations and taking a subset of the contained characteristics. This way all generated configurations will be valid and lead to valid solutions. For the results that are presented in this chapter around $\frac{1}{7} \approx 15\%$ of characteristics is maintained. This value is chosen to allow the existing configuration to take effect but not to skew the results due to the penalty function severely limiting possible options.
|
||||||
|
|
||||||
|
\subsection{Preference Generation}
|
||||||
|
|
||||||
|
For the forestry use case, the idea is that there are multiple types of user profiles. Each group profile is represented by a neutral, negative or positive attitude towards a characteristic. During data generation the attitude is converted to a preference using a normal distribution. Each preference lies in the interval $[0,1]$. Zero can be seen as worst possible option and one as best possible option. \autoref{fig:Evaluation:PreferenceDistribution} shows how the user profile can be converted to preferences. The actual group member profiles are shown in \autoref{tab:Evaluation:GroupMemberMappings}.
|
||||||
|
|
||||||
|
\pgfplotsset{height=5cm,width=\textwidth,compat=1.8}
|
||||||
|
\pgfmathdeclarefunction{gauss}{2}{%
|
||||||
|
\pgfmathparse{1/(#2*sqrt(2*pi))*exp(-((x-#1)^2)/(2*#2^2))}%
|
||||||
|
}
|
||||||
|
\begin{figure}[tb]
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\begin{axis}[
|
||||||
|
every axis plot post/.append style={
|
||||||
|
mark=none, domain=0:1, samples=50, smooth
|
||||||
|
},
|
||||||
|
axis x line*=bottom,
|
||||||
|
xmin=0,
|
||||||
|
xmax=1,
|
||||||
|
ymin=0.1,
|
||||||
|
xticklabel style={
|
||||||
|
/pgf/number format/precision=3,
|
||||||
|
},
|
||||||
|
xtick={0,0.25, 0.5, 0.75,1},
|
||||||
|
hide y axis]
|
||||||
|
\addplot [draw=black, style={dashdotdotted}][very thick] {gauss(0.25,0.1)} node[text=black][above,pos=0.5] {negative};
|
||||||
|
\addplot [draw=black, style={solid}][very thick] {gauss(0.5,0.05)} node[text=black][above,pos=0.48] {neutral};
|
||||||
|
\addplot [draw=black, style={dotted}][very thick] {gauss(0.75,0.1)} node[text=black][above,pos=0.5] {positive};
|
||||||
|
\end{axis}
|
||||||
|
\end{tikzpicture}
|
||||||
|
\caption[Preference Distribution]{Distribution of preferences for a user type.}
|
||||||
|
\label{fig:Evaluation:PreferenceDistribution}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{table}[htb]
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{l|c|c|c|c}
|
||||||
|
characteristic & athlete & forest owner & environmentalist & consumer \\
|
||||||
|
\hline
|
||||||
|
$(\textit{indigenous}, \text{low})$ & \textbf{negative} & \textit{positive} & \textbf{negative} & neutral \\
|
||||||
|
$(\textit{indigenous}, \text{moderate})$ & \textit{positive} & neutral & \textbf{negative} & neutral \\
|
||||||
|
$(\textit{indigenous}, \text{high})$ & \textit{positive} & \textbf{negative} & \textit{positive} & \textbf{negative} \\
|
||||||
|
\hline
|
||||||
|
$(\textit{resilient}, \text{low})$ & neutral & \textit{positive} & neutral & neutral \\
|
||||||
|
$(\textit{resilient}, \text{moderate})$ & \textit{positive} & neutral & neutral & neutral \\
|
||||||
|
$(\textit{resilient}, \text{high})$ & \textit{positive} & \textbf{negative} & \textbf{negative} & \textbf{negative} \\
|
||||||
|
\hline
|
||||||
|
$(\textit{usable}, \text{low})$ & neutral & neutral & neutral & \textbf{negative} \\
|
||||||
|
$(\textit{usable}, \text{moderate})$ & neutral & neutral & \textbf{negative} & neutral \\
|
||||||
|
$(\textit{usable}, \text{high})$ & \textbf{negative} & \textit{positive} & \textbf{negative} & \textit{positive} \\
|
||||||
|
\hline
|
||||||
|
$(\textit{effort}, \text{manual})$ & \textbf{negative} & neutral & \textit{positive} & \textbf{negative} \\
|
||||||
|
$(\textit{effort}, \text{harvester})$ & \textbf{negative} & \textit{positive} & \textbf{negative} & neutral \\
|
||||||
|
$(\textit{effort}, \text{autonomous})$ & \textbf{negative} & \textit{positive} & \textbf{negative} & neutral \\
|
||||||
|
\hline
|
||||||
|
$(\textit{quantity}, \text{low})$ & \textit{positive} & \textbf{negative} & \textit{positive} & \textbf{negative} \\
|
||||||
|
$(\textit{quantity}, \text{moderate})$ & neutral & \textit{positive} & neutral & \textbf{negative} \\
|
||||||
|
$(\textit{quantity}, \text{high})$ & \textbf{negative} & \textit{positive} & \textbf{negative} & \textit{positive} \\
|
||||||
|
\hline
|
||||||
|
$(\textit{price}, \text{low})$ & neutral & neutral & neutral & \textit{positive} \\
|
||||||
|
$(\textit{price}, \text{moderate})$ & neutral & \textit{positive} & neutral & neutral \\
|
||||||
|
$(\textit{price}, \text{high})$ & neutral & \textit{positive} & neutral & \textbf{negative} \\
|
||||||
|
\hline
|
||||||
|
$(\textit{accessibility}, \text{low})$ & \textbf{negative} & \textit{positive} & \textit{positive} & neutral \\
|
||||||
|
$(\textit{accessibility}, \text{moderate})$ & neutral & neutral & neutral & neutral \\
|
||||||
|
$(\textit{accessibility}, \text{high})$ & \textit{positive} & \textbf{negative} & \textbf{negative} & neutral \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\caption[Forestry Use Case: Group Member Profiles]{The attitudes of each group member profile.}
|
||||||
|
\label{tab:Evaluation:GroupMemberMappings}
|
||||||
|
\end{center}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
These user profiles can be used to generate rather homogenous groups but also to create groups that have interests that are more conflicting. The following group types, with four members each, are generated:
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item random groups (preferences are uniformly random)
|
||||||
|
\item heterogeneous groups (people adhere to one preference profile like forest owner, athlete, consumer, environmentalist)
|
||||||
|
\item homogeneous groups (only one preference profile for all group members which in this evaluation is the forest owner)
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
The natural group type for the use case is a heterogeneous group but to widen the evaluation and to see how the recommender performs with different types of groups the two other group types are evaluated too. As a result, more general statements about the recommender's performance can be made.
|
||||||
|
|
||||||
|
\subsection{The Effect of Stored Finished Configurations}
|
||||||
|
|
||||||
|
Another important component of the evaluation is the influence of stored finished configurations. When evaluating a subset of stored finished configurations it is important to avoid outliers. This is the reason why a process inspired by \emph{cross validation} \cite{kohaviStudyCrossValidationBootstrap1995} is used. The configuration database is randomly ordered and sliced into sub-databases of the needed size. As an example, if the evaluated stored data size is 20, a configuration database containing 100 configurations is split into five sub-databases of size 20. Now the evaluation is carried out for each of the sub-databases and finally the average is determined. This avoids the random picking of a subset which either performs much better than most other possible combinations of databases or which performs much worse. This way the data is more aligned to the expected value.
|
||||||
|
|
||||||
|
\section{Hypotheses}
|
||||||
|
\label{sec:Evaluation:Hypotheses}
|
||||||
|
|
||||||
|
This section gives an overview on the hypotheses tested during data analysis. Each hypothesis is followed by an explanation as to why the hypothesis is presented. In later sections the truthfulness of the hypothesis is examined. This allows to verify if expectations about the behaviour of the recommender are true or false.
|
||||||
|
|
||||||
|
\begin{hypothesis}
|
||||||
|
\begin{itshape}
|
||||||
|
\label{hyp:Evaluation:MaximumMinimum} Improvements for group recommendations are highest when the number of people satisfied with the dictator's decision is slightly lower than two and the highest reduction in dissatisfied group members can be seen at around two group members dissatisfied respectively.
|
||||||
|
\end{itshape} \medskip \\*
|
||||||
|
This is based on the assumption that in a real situation a group of four with less than two satisfied members (with a dictator's decision) on average, has enough room for improvement so that potentially three group members can be satisfied after the use of the recommender. This means that at least one more person is satisfied with the compromise. In some groups it my then be potentially possible to shift the last person from dissatisfaction towards a neutral attitude. A higher base satisfaction is assumed to reduce the possibility to make an additional group member satisfied.
|
||||||
|
\end{hypothesis}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{hypothesis}
|
||||||
|
\begin{itshape}
|
||||||
|
\label{hyp:Evaluation:HigherTcLessSatisfied} A higher $tc$ value results in less satisfied people and more dissatisfied people with regard to the dictator's decision.
|
||||||
|
\end{itshape} \medskip \\*
|
||||||
|
A higher $tc$ value causes a person to be dissatisfied with a higher amount of configurations. It also causes a person to be satisfied with less configurations. Therefore, recommending a random configuration causes the chance of making an individual satisfied to sink while increasing the chance of that person to be dissatisfied. Already the change in probability leads to the assumption that this result should be seen with non-random recommendations too.
|
||||||
|
\end{hypothesis}
|
||||||
|
|
||||||
|
\begin{hypothesis}
|
||||||
|
\begin{itshape}
|
||||||
|
\label{hyp:Evaluation:OnlyOneSatisfied} There exists a $tc$ value which causes only one person to be classified as satisfied with the dictator's decision and no one is classified as satisfied with the group recommender's decision.
|
||||||
|
\end{itshape} \medskip \\*
|
||||||
|
A $tc$ value that reaches a high enough level eventually should make only the dictator herself satisfied with the dictator's decision. The bound for satisfaction is so high that any group recommendation will cause the dictator to also be dissatisfied or at least neutral with the group decision. This can be understood as a complete unwillingness of a group to compromise. All group members are only satisfied with their own decision. Having two group members with identical interest, which is expected to be rare, results in this effect not being present even in a situation like that.
|
||||||
|
\end{hypothesis}
|
||||||
|
|
||||||
|
\begin{hypothesis}
|
||||||
|
\begin{itshape}
|
||||||
|
\label{hyp:Evaluation:HomogenousMoreSatisfied} Homogeneous groups have more members satisfied with the recommender's decision but also with the dictator's decision compared to heterogeneous groups.
|
||||||
|
\end{itshape} \medskip \\*
|
||||||
|
As the interest in homogenous groups is more aligned it is to be expected that the overall satisfaction levels for more homogenous groups is higher. If the base level is already higher it is likely that even just a slight increase shifts recommendations for homogenous groups to satisfaction levels not achievable by heterogeneous groups.
|
||||||
|
\end{hypothesis}
|
||||||
|
|
||||||
|
\begin{hypothesis}
|
||||||
|
\begin{itshape}
|
||||||
|
\label{hyp:Evaluation:HeterogenousBiggerSatisfactionIncrease} More heterogeneous groups see a bigger increase in satisfaction than less heterogeneous groups when switching from a decision of a dictator to a decision made by the recommender.
|
||||||
|
\end{itshape} \medskip \\*
|
||||||
|
The assumption is made that in more heterogeneous groups the satisfaction with the dictator's decision is less. Therefore, there is a higher possible increase in satisfaction. A homogenous group that already satisfies all group members with the dictator's decision cannot see an increase in satisfaction, therefore, the assumption is made that with a higher number of people dissatisfied or neutral with the dictator's decision, more people will be be lifted into satisfaction and the increase in satisfaction will be bigger. However a group that has divergent interests actually might not be able to reach high levels of satisfaction.
|
||||||
|
\end{hypothesis}
|
||||||
|
|
||||||
|
\begin{hypothesis}
|
||||||
|
\begin{itshape}
|
||||||
|
\label{hyp:Evaluation:StoreSizeBetterResults} A higher amount of stored finished configurations results in a higher number of satisfied and a lower number of dissatisfied group members when the recommender is used to make the group decision.
|
||||||
|
\end{itshape} \medskip \\*
|
||||||
|
This hypothesis is based on the fact that the possibility to chose a bigger pool of configurations increases the chances of arriving at a good recommendation. This of course requires the assumption that aggregation strategies that pick recommendations pick configurations that also fare better in the chosen satisfaction metric. If this is not the case this hypothesis is not sustainable.
|
||||||
|
\end{hypothesis}
|
||||||
|
|
||||||
|
\begin{hypothesis}
|
||||||
|
\begin{itshape}
|
||||||
|
\label{hyp:Evaluation:AggregationStrategies} The multiplication and best average aggregation strategies perform better than the least misery aggregation strategy.
|
||||||
|
\end{itshape} \medskip \\
|
||||||
|
Best average and multiplication are strategies that perform best in some of the by \citeauthor{Masthoff2015} \cite[~ 755f]{Masthoff2015} listed online experiments. Therefore, it is reasonable to assume that they perform well here too. Least misery was listed in some studies as performing worst. Accordingly, it is expected to fare less good than other group aggregation strategies.
|
||||||
|
\end{hypothesis}
|
||||||
|
|
||||||
|
\section{Results}
|
||||||
|
\label{sec:Evaluation:Findings}
|
||||||
|
|
||||||
|
\subsection{Threshold Center Selection}
|
||||||
|
This section aims at finding a $tc$ parameter for the analysis. This is required to reduce the amount of data that has to be looked at and to get valuable results. For this purpose all parameters except $tc$ will be fixed. The preference aggregation strategy looked at is multiplication because this strategy shows good results across the board when briefly looking at the generated data. The configuration database is used with all possible solutions (which is 148 in total). This results in a bigger visible effect in terms of satisfaction and dissatisfaction change as the recommender has access to all possible configurations and also provides more solid and predictable results. \autoref{fig:Evaluation:tcChange} shows the satisfaction change based on choice of $tc$. Of note is that the maxima of satisfaction change precedes the minima of dissatisfaction change for all group types. Maxima and minima occur at different tc values depending on the group type. Heterogeneous groups peek earliest while homogenous groups only show a peek towards the maximum $tc$ value. Changes in dissatisfaction are minimal even with $tc$ close to its maximum value for homogeneous groups.
|
||||||
|
|
||||||
|
\autoref{fig:Evaluation:tcCount} shows the amount of group members satisfied and dissatisfied with the dictator's decision. The number of satisfied people decreases with an increasing $tc$ and its downward movement accelerates. The dissatisfaction curve shows a similar trend in reverse. Here the number of dissatisfied group members increases with an increase in $tc$. The curve accelerates its growth analogous to the acceleration of the satisfaction curve. The behaviour of heterogeneous groups and random groups is similar but the curve for heterogeneous groups shows less satisfaction and more dissatisfaction for a given tc. Also both curves have a negative satisfaction change when $tc$ reaches a certain height. Homogeneous groups only have satisfied group members for most $tc$ values but they decrease rapidly for values greater than $85$. Dissatisfied group members are at zero for the whole value range of $tc$ except a very slight upward tick at the end that is barely noticeable.
|
||||||
|
|
||||||
|
\begin{figure}
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\textwidth]{./figures/60_evaluation/tc_change__multi__db-size-148.pdf}
|
||||||
|
\caption[Satisfaction and Dissatisfaction: Change based on $tc$]{The average satisfaction and dissatisfaction change based on $tc$ with a database size of 148 and multiplication as aggregation strategy.}
|
||||||
|
\label{fig:Evaluation:tcChange}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\textwidth]{./figures/60_evaluation/tc_dictator__multi__db-size-148.pdf}
|
||||||
|
\caption[Satisfaction and Dissatisfaction: Average based on $tc$]{The average satisfaction and dissatisfaction with the dictator's decision based on $tc$.}
|
||||||
|
\label{fig:Evaluation:tcCount}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
\autoref{hyp:Evaluation:MaximumMinimum} states that the highest satisfaction change is expected at places where the overall satisfaction with the dictator's decision is close to two. However, the data shows a slightly different result. This hypothesis does not hold true. When looking at the data we see peeks in satisfaction change when values are equal to $2.81, 2.51$ and $3$ (heterogeneous, random, homogenous). Therefore, the expectation does not hold up. Most likely this happens because at lower satisfaction numbers with the dictator's decision the threshold for satisfaction is set too high which causes the group compromise to classify less group members as satisfied. Moreover, valleys for dissatisfaction change are also not at the expected value of \textit{two}. They are instead at $1.19, 1.49, 0.04$ (heterogeneous, random, homogenous). Here the valleys are lower than expected. However, the data from homogenous groups seems to be cut off. Therefore, a judgement for homogenous groups is difficult and with slightly less heterogeneous groups this graph should show bigger effects.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The predicted trend that a higher $tc$ results in a lower satisfaction and a higher dissatisfaction with the dictator's decision, as predicted by \autoref{hyp:Evaluation:HigherTcLessSatisfied}, can be clearly seen in \autoref{fig:Evaluation:tcCount} and has already been described in this section. This means for the evaluation that the behaviour of the recommender is predictable and suggests that the used metrics are modelling behaviour expected in reality.
|
||||||
|
|
||||||
|
\autoref{hyp:Evaluation:OnlyOneSatisfied} predicts that the satisfaction with the individual decision eventually reaches one and that no one is satisfied with the group recommender's decision. This means the satisfaction change should decrease to minus one. \autoref{fig:Evaluation:tcCount} shows a downward trend that comes close to one for heterogeneous and random groups. Therefore, the trend suggests that the hypothesis holds true with regard to heterogeneous and random groups but the drop for homogenous groups just reaches below $2.8$ suggesting that the hypothesis does not hold for homogenous groups. Also, satisfaction change in heterogeneous groups decreases close to minus one while this value is neither fully reached by random groups nor by homogenous groups. The hypothesis therefore holds true only for heterogeneous groups. A likely cause why it does not seem to hold true for random or homogenous groups is that the highest tc value still includes multiple configurations and a recommended configuration keeps some group members satisfied for some of the time. For random groups it may also be possible that a group member other than the dictator could be satisfied with the group decision.
|
||||||
|
|
||||||
|
During a group decision it is better to make one less person dissatisfied than to make one more person satisfied. Therefore, this thesis uses $tc$ values that are closer to the minima of dissatisfaction change than to the maxima of satisfaction change. The minima for heterogeneous groups is at $tc = 70\%$, therefore, this is the chosen value for evaluation of the remaining hypotheses. This is needed because otherwise analysis would be infeasible due to a too large parameter space. For random groups the minima of dissatisfaction change can be found at $tc = 85\%$ which is the value used for all following analyses of random groups. For homogenous group-dissatisfaction change is decreasing until the highest possible value of $tc$. Because of that $tc = 94\%$ is used for analysis.
|
||||||
|
|
||||||
|
\subsection{Recommender Performance Analysis}
|
||||||
|
|
||||||
|
\begin{figure}[p]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\textwidth]{./figures/60_evaluation/heterogeneous_combined__amount-1000__tc-70}
|
||||||
|
\caption[Satisfaction and Dissatisfaction: Heterogeneous Groups]{Satisfaction and dissatisfaction using the group recommender for heterogeneous groups with $tc = 70$.}
|
||||||
|
\label{fig:Evaluation:HeteroSatisfaction}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}[p]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\textwidth]{./figures/60_evaluation/random_combined__amount-1000__tc-85}
|
||||||
|
\caption[Satisfaction and Dissatisfaction: Random Groups]{Satisfaction and dissatisfaction using the group recommender for random groups with $tc = 85$.}
|
||||||
|
\label{fig:Evaluation:RandomSatisfaction}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}[p]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\textwidth]{./figures/60_evaluation/homogeneous_combined__amount-1000__tc-94}
|
||||||
|
\caption[Satisfaction and Dissatisfaction: Homogeneous Groups]{Satisfaction and dissatisfaction using the group recommender for homogeneous groups with $tc = 94$.}
|
||||||
|
\label{fig:Evaluation:HomoSatisfaction}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
This subsection fixes parameters of $tc$. It describes the satisfaction change and the total amount of satisfied people with the recommender's decision dependent on the amount of stored configurations.
|
||||||
|
|
||||||
|
\autoref{fig:Evaluation:HeteroSatisfaction} shows the relationship between satisfaction and dissatisfaction and the number of stored configurations. The left y-axis shows the change in satisfaction compared to a decision made by a dictator. The right axis shows the average number of satisfied group members. The left figure shows numbers for satisfaction and the right for dissatisfaction. On the left, higher numbers are better and on the right, lower ones (with regards to change). There are three graphs each. One for multiplication, one for least misery and one for best average. The graphs for satisfaction are similar to a logarithmic curve. The increase in change of satisfaction slows with a higher number of stored configurations. The change in satisfaction is always above zero and a satisfaction increase of more than three quarters of the maximum can already be seen at around 25 stored configurations. Moreover, the curve for multiplication is greater than all other curves for all parameters. Least misery reaches the lowest amount of change across all values. The minimum number of satisfaction change is $0$ for least misery, and $0.1$ for best average and multiplications. The highest number is around $0.3$ for least misery, $0.4$ for best average and $0.5$ for multiplication
|
||||||
|
When looking at dissatisfaction change the graphs are all in the negative number range. Multiplication reaches the lowest number and best average the highest. The gap between all three functions is less than that of satisfaction increase. And overall the curves are flatter indicating that the change with 25 stored configurations already reaches close to five sixth of the minimum value. The highest number of satisfaction change is $-0.4$ for all strategies while the lowest number is around $-0.57$ for least misery, $-0.53$ for best average and $-0.63$ for multiplication.
|
||||||
|
|
||||||
|
The graphs for homogenous (\autoref{fig:Evaluation:HomoSatisfaction}) and random groups (\autoref{fig:Evaluation:RandomSatisfaction}) have a similar shape but their values and slopes vary. The satisfaction change for homogenous groups is mostly negative, starting at $-2$, and only reaches a positive level for more than $100$ stored configurations with a value of $0.04$. Multiplication and best average have higher values than least misery here too. Moreover the dissatisfaction change is always positive with a value range of $[0,1]$, except for a slight fall below zero after more than $75$ configurations are stored.
|
||||||
|
Random groups as seen in \autoref{fig:Evaluation:RandomSatisfaction} mostly have a positive change in satisfaction. Here, values range from $-0.55$ to $0.27$ for least misery, from $-0.27$ and $-0.28$ to $0.74$ for best average and multiplication. The change is higher than the change for heterogeneous groups. Dissatisfaction also changes similarly to heterogeneous groups. Here the values for random groups reach a lower level. They range from $0$ to $-0.59$ for least misery. Multiplication and best average both have a minimum value around $-0.21$ and behave similarly. The range goes down to $-0.84$ for best average and $-0.86$ for multiplication.
|
||||||
|
|
||||||
|
\autoref{fig:Evaluation:HeteroSatisfaction} also shows the average number of group members satisfied and dissatisfied with the recommender's decision. Satisfaction with the recommender's decision starts at $2.4$ and quickly reaches $2.65$ for least misery and $2.8$ for best average and multiplication. The highest value for multiplication is at $2.89$. Dissatisfaction likewise quickly plateaus. Here values for different recommenders are closer together. They start at $0.74$ (least misery) to $0.78$ (best average) and fall as low as $0.62$ for least misery, $0.66$ for best average and $0.56$ for multiplication.
|
||||||
|
|
||||||
|
When looking at the total numbers as shown in \autoref{fig:Evaluation:HomoSatisfaction} the value range for homogenous groups is much larger but the overall shape stays the same. Here satisfaction numbers go from $0.55$ to $2.95$. \emph{Least misery} performs visibly worse than \emph{multiplication} and \emph{best average} reaches only $2.7$. Dissatisfaction values range from $1.21$ to $0.01$ and the values are not really visibly distinguishable, except in the range of $[25,50]$. Least misery seems to have the highest number of dissatisfied group members in this range.
|
||||||
|
|
||||||
|
Random groups have less overall satisfaction with $tc = 85\%$ as seen in \autoref{fig:Evaluation:RandomSatisfaction} when looking at the total numbers. Satisfaction numbers start from $1.33$ (least misery), $1.61$ (best average) and $1.6$ (multiplication) and go up to $2.15$ for least misery and $2.62$ for best average and multiplication. The dissatisfaction numbers start at $1.5$ for least misery and $1.27$ for best average and multiplication and level off at $0.9$ (least misery), $0.65$ (best average) and $0.63$ (multiplication). There is a big difference visible between least misery and the other two aggregation functions.
|
||||||
|
|
||||||
|
\subsection{Discussion}
|
||||||
|
|
||||||
|
Having described the data the remaining hypotheses are discussed.
|
||||||
|
\autoref{hyp:Evaluation:HomogenousMoreSatisfied} states that homogenous groups have more satisfied members with regards to the dictator's and the group recommender's decision. \autoref{fig:Evaluation:tcCount} shows that this holds true for the dictator's decision as for every instance satisfaction in homogeneous groups is higher than that of other groups. However, \autoref{fig:Evaluation:HeteroSatisfaction}, \autoref{fig:Evaluation:HomoSatisfaction} and \autoref{fig:Evaluation:RandomSatisfaction} show that for satisfaction with the recommender's decision this does not hold true when looking at $tc$ values where the recommender performs best for each segment. In these cases the homogenous group only reaches the highest amount of satisfaction when the recommender has access to all stored configurations. With a decreasing number of stored configurations both random groups and heterogeneous groups achieve a higher satisfaction. This is likely to happen due to the similarity between group members. A recommender with imperfect knowledge and a size-reduced, configuration database generates results that are not good enough and cannot compete with the dictator who always finds the perfect individual match that group members of homogeneous groups are satisfied with. It is important to note that homogeneous groups show a higher number of satisfied people across the board when the same $tc$ values are used.
|
||||||
|
|
||||||
|
\autoref{hyp:Evaluation:HeterogenousBiggerSatisfactionIncrease} states that the increase in satisfaction should be bigger for more heterogeneous groups. However, \autoref{fig:Evaluation:HeteroSatisfaction}, \autoref{fig:Evaluation:HomoSatisfaction} and \autoref{fig:Evaluation:RandomSatisfaction} show this not to be true. The recommendations for heterogeneous groups indeed cause a larger change in satisfaction compared to homogeneous groups but random groups cause a positive change of higher magnitude. Also, the decrease in dissatisfaction is higher among random groups. This possibly happens because random groups have more aligned interests and preferences among group members and, therefore, they do not diverge as much which results in compromises for the group that can satisfy more individual members. Likewise, the group preferences are still far enough apart to cause dissatisfaction and neutrality with the dictator's decision.
|
||||||
|
|
||||||
|
The data shows that a larger configuration database causes the amount of satisfied group members to be greater than recommendations using a smaller database. With dissatisfaction the same is seen in the inverse. A larger configuration database causes the number of dissatisfied group members to drop compared to a small database. However, in some runs there have been instances of least misery that show a slight drop. This can be seen in \autoref{fig:Evaluation:HeteroSatisfaction} when comparing $74$ and $148$ as the number of stored configurations. Why this happens is not entirely clear but a cause might be that least misery just takes into account the worst performing group member of the group. Thus, it is possible that there is a second slightly worse solution, when comparing least misery scores, which actually has a slight advantage in terms of dissatisfaction. This second best configuration can cause it to be in the second database partition hence resulting in less dissatisfaction on average. \autoref{hyp:Evaluation:StoreSizeBetterResults} thus is supported by the data but it does not fully hold true when looking at least misery.
|
||||||
|
|
||||||
|
\autoref{hyp:Evaluation:AggregationStrategies} states least misery performs worse than multiplication. For a change in satisfaction this can be seen across the board, however, for the change in dissatisfaction this is not true everywhere. \autoref{fig:Evaluation:HeteroSatisfaction} shows that least misery performs better than best average in terms of dissatisfaction reduction. This behaviour possibly occurs because an average metric yields the same results for heavily polarised decisions and decisions that everyone feels neutral about. Least misery on the other hand takes into account only the group member least satisfied with the decision and, therefore, this metric performs better. However, in other cases it performs visibly worse. Also notable is that multiplication performs best across the board. This supports the findings by \citeauthor{Masthoff2015} \cite[~p. 755f]{Masthoff2015} and further shows that the satisfaction model does show some similar results to online evaluations.
|
||||||
|
|
||||||
|
To go back to the evaluation questions posed in \autoref{sec:Evaluation:Questions} this section has shown that for random and heterogeneous groups the recommender performs better than a dictator. The average satisfaction depends on the chosen parameters but for the chosen value range average satisfaction with the recommender decision lies above two and can reach close to three satisfied group members for a high number of stored configurations and for some group types. The amount of stored finished configurations plays an important role in the recommender's performance but with a fraction of stored configurations the recommender still yields good results. This shows that the recommender provides useful decision support for helping in group decisions. It provides a solid basis for groups and can help their group decision. Most decisions the recommender does improve group satisfaction which shows that the recommender is able to be used to improve group decisions.
|
||||||
30
30_Thesis/sections/80_conclusion.tex
Normal file
30
30_Thesis/sections/80_conclusion.tex
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
\chapter{Conclusion}
|
||||||
|
\label{ch:Conclusion}
|
||||||
|
|
||||||
|
This chapter summarises the thesis and describes the exact steps that were undertaken, starting with an overview of the foundations regarding group recommenders and configuration. Furthermore, a concept for a recommender for group-based configuration is introduced, implemented as prototype and evaluated. Last, limitations of this thesis and the recommender system are presented and further research is proposed.
|
||||||
|
|
||||||
|
\section{Summary}
|
||||||
|
\label{sec:Conclusion:Summary}
|
||||||
|
|
||||||
|
This thesis was motivated by the research area of group-based configuration gaining more interest. As group decisions come with many problems and biases, recommender systems are used to help with group decisions. This avoids mistakes and helps with reproducibility of successful group decisions. To date, no research has been carried out on recommendations regarding group-based configurations. This is why the research question of this thesis focuses on: "How can a group recommender translate individual preferences into recommendations that improve the overall satisfaction of group members while considering constraints given by the configuration state?". This thesis answers the research questions by proposing a concept, implementing it as a prototype and evaluating it. Thereby the viability of such a system and such an approach is shown.
|
||||||
|
First, the thesis introduces foundations of product configuration and extends them to group-based product configuration. Next, recommender systems are introduced and three basic approaches, collaborative filtering, content-based filtering and constraint based recommendation, are compared. Last, the \hyperref[ch:Foundations]{foundations chapter} allots an introduction into group recommendation.
|
||||||
|
Following\autoref{ch:Foundations} (Foundations), a concept for an item-based recommender for group-based configuration, is introduced. This concept uses a database of finished configurations to choose a configuration that fits the group best. Each user's preferences are used to assign a score to a configuration. The score of all group members is then aggregated into a group score and the best configuration from the database is recommended. The recommender also all penalties for deviating from the current configuration state.
|
||||||
|
Later, the concept is implemented as an open source microservice which is integrated into an already existing group-based configurator. The source code is available at \cite{kuchelmeister13hannes11BachelorThesis}.
|
||||||
|
Last, an offline metric for satisfaction is introduced and it is used for evaluation. Three group types are evaluated, homogenous groups, random groups and heterogeneous groups. Overall, the evaluation shows that the recommender yields good results for groups and helps groups to form a compromise. Satisfaction among group members increases overall. A simple item-based approach therefore already improves group decisions by finding good compromises. This is also the case when the knowledge of the recommender is limited.
|
||||||
|
|
||||||
|
\section{Limitations and Further Research}
|
||||||
|
\label{sec:Conclusion:LimitationsFurtherResearch}
|
||||||
|
|
||||||
|
Due to the scope of this thesis it was not feasible to analyse all possible scenarios for the proposed approach.
|
||||||
|
|
||||||
|
An offline satisfaction metric is introduced in this thesis which may lead to results that differ from real life impressions of people. It has yet to be validated in a real-world setting. The validations of this metric allows the use of the introduced satisfaction metric for other scenarios that also lack suitable existing metrics. Moreover, understanding the relation between the introduced metric and actual satisfaction can help to form more accurate satisfaction models. This helps to understand how to find better compromises and, at the same time, such a metric can directly be used as a component of a group recommender.
|
||||||
|
|
||||||
|
In this thesis only a single use case was examined. Therefore, different use cases could yield different results in terms of satisfaction and the tolerance of limited knowledge. It is unclear if different scenarios which are either more complex or have more features and characteristics yield the same results. The successful application to larger products could help with large complex projects that include multiple experts from differing areas that do not necessarily agree. Also, larger products potentially reach limitations of the recommender as the solution space grows quickly. An approach that clusters configurations and other means of optimization can help with performance. Complex and large products might lead to usability issues as users potentially are overwhelmed with choices and setting all preferences individually might be infeasible. Thus, indirect means of acquiring preferences should be incorporated for more complex and larger configurations.
|
||||||
|
|
||||||
|
Furthermore, groups were automatically generated and, thus, possibly a lack of resemblance to common real-world group constellations. Consequently, real world group constellations for decisions should be analysed. This will allow the validation of the implemented groups and can lead to a better understanding of generating synthetic groups that resemble actual groups. Thus, less time has to be spent in acquiring user data.
|
||||||
|
|
||||||
|
Moreover, the recommender did not perform ideally with homogenous groups, especially when knowledge about the solution space was limited. Hence, methods of detecting homogenous groups could detect cases in which the recommender perform poorly and use other recommenders instead. A recommender that should be evaluated in this context is presented by \citeauthor{choudharyMulticriteriaGroupRecommender2020} \cite{choudharyMulticriteriaGroupRecommender2020}. This recommender fares better with homogeneous groups opposed to random groups.
|
||||||
|
|
||||||
|
Additionally, the group size was fixed to four members and because \citeauthor{choudharyMulticriteriaGroupRecommender2020} note that their recommender does better in smaller groups, deviating results for differently sized groups are possible. Moreover, this approach can be extended to potentially allow a whole community of people to decide about neighbourhood changes. This could range from the layout of a new community centre, staffing, equipment and uses. Therefore, such approaches of group-based configuration can be used for public participation in projects helping communities to build trust and be more involved in decisions.
|
||||||
|
|
||||||
|
Finally, the approach used in this thesis assumes a flat group hierarchy. Modelling knowledge and hierarchy of a group can help to improve group decisions further as supervisors do not feel overrun by their employees and knowledge of experts on certain parts of a product or solution can use that knowledge to guide the decision that area. Experts in other areas could have more say in areas of their expertise. Thus, decisions could be expert and hierarchy driven which should help with group satisfaction about compromises.
|
||||||
3
30_Thesis/sections/abstract_de.tex
Normal file
3
30_Thesis/sections/abstract_de.tex
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
\Abstract
|
||||||
|
|
||||||
|
Gruppenbasierte Konfiguration ist ein noch relativ junges Feld, das sich mit der Konfiguration von Produkten, Dienstleistungen und Lösungen durch Gruppen auseinandersetzt und Gruppenentscheidungen unterstützt. Gute Gruppenentscheidungen zu treffen ist jedoch komplex und nicht immer reproduzierbar. Empfehlungssysteme für Gruppen können hier Abhilfe schaffen. Diese wurden jedoch noch nicht für gruppenbasierte Konfiguration eingesetzt. In dieser Thesis wird ein Konzept zur Integration eines item-basierten Gruppenempfehlungssystems in einen Gruppen-Konfigurator vorgestellt, prototypisch implementiert und evaluiert. Das Konzept zeigt auf, wie Präferenzen einzelner Gruppenmitglieder kombiniert werden können, um eine Gruppenbewertung für eine Konfiguration zu erhalten. Dieser Ansatz wird genutzt, um die durch die Gruppe höchstbewertete Konfiguration aus einer Datenbank auszuwählen und zu empfehlen. Die Evaluation mit synthetischen Gruppen mit vier Personen erzielt gute Ergebnisse, insbesondere bei heterogenen Gruppen.
|
||||||
4
30_Thesis/sections/abstract_en.tex
Normal file
4
30_Thesis/sections/abstract_en.tex
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
\Abstract
|
||||||
|
|
||||||
|
Group-based configuration is a fairly new configuration approach that presents a scenario where a group of people is configuring a product, service, or solution. However, good group decisions are difficult to arrive at. Therefore, to facilitate group decisions, group recommender systems are used. Yet, they have not been applied to group-based configuration. This thesis proposes a concept for an item based recommender system that helps a group to find a consensus for a configuration decision. The concept shows how preferences of individual group members can be combined to give configurations a group score. The score is used to rank configurations in a database and recommend the configuration with the highest score.
|
||||||
|
A prototype is implemented and evaluated with a newly introduced offline satisfaction metric and with synthetically generated groups. Overall the evaluation shows that the proposed concept works especially well for heterogeneous groups.
|
||||||
35
30_Thesis/sections/declaration.tex
Normal file
35
30_Thesis/sections/declaration.tex
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
%% LaTeX2e class for student theses: Declaration of independent work
|
||||||
|
%% sections/declaration.tex
|
||||||
|
%%
|
||||||
|
%% Karlsruhe Institute of Technology
|
||||||
|
%% Institute for Program Structures and Data Organization
|
||||||
|
%% Chair for Software Design and Quality (SDQ)
|
||||||
|
%%
|
||||||
|
%% Dr.-Ing. Erik Burger
|
||||||
|
%% burger@kit.edu
|
||||||
|
%%
|
||||||
|
%% Version 1.3.3, 2018-04-17
|
||||||
|
|
||||||
|
\thispagestyle{empty}
|
||||||
|
\null\vfill
|
||||||
|
\noindent\hbox to \textwidth{\hrulefill}
|
||||||
|
\iflanguage{english}{I declare that I have developed and written the enclosed
|
||||||
|
thesis completely by myself, and have not used sources or means without
|
||||||
|
declaration in the text.}%
|
||||||
|
{Ich versichere wahrheitsgemäß, die Arbeit
|
||||||
|
selbstständig angefertigt, alle benutzten Hilfsmittel vollständig und genau
|
||||||
|
angegeben und alles kenntlich gemacht zu haben, was aus Arbeiten anderer
|
||||||
|
unverändert oder mit Änderungen entnommen wurde.}
|
||||||
|
|
||||||
|
|
||||||
|
%% ---------------------------------------------
|
||||||
|
%% | Replace PLACE and DATE with actual values |
|
||||||
|
%% ---------------------------------------------
|
||||||
|
|
||||||
|
\regressbydays{1} % change to actual signature date
|
||||||
|
\textbf{Wiesbaden, \printfdate{british}}
|
||||||
|
\vspace{1.5cm}
|
||||||
|
|
||||||
|
\dotfill\hspace*{8.0cm}\\
|
||||||
|
\hspace*{2cm}(\theauthor)
|
||||||
|
\cleardoublepage
|
||||||
1861
30_Thesis/thesis.bib
Normal file
1861
30_Thesis/thesis.bib
Normal file
File diff suppressed because it is too large
Load Diff
221
30_Thesis/thesis.tex
Normal file
221
30_Thesis/thesis.tex
Normal file
@@ -0,0 +1,221 @@
|
|||||||
|
%% LaTeX2e class for student theses
|
||||||
|
%% thesis.tex
|
||||||
|
%%
|
||||||
|
%% Karlsruhe Institute of Technology
|
||||||
|
%% Institute for Program Structures and Data Organization
|
||||||
|
%% Chair for Software Design and Quality (SDQ)
|
||||||
|
%%
|
||||||
|
%% Dr.-Ing. Erik Burger
|
||||||
|
%% burger@kit.edu
|
||||||
|
%%
|
||||||
|
%% See https://sdqweb.ipd.kit.edu/wiki/Dokumentvorlagen
|
||||||
|
%%
|
||||||
|
%% {$HeadURL: https://svnserver.informatik.kit.edu/i43/svn/lehre/Abschlussarbeiten-Vorlage/thesis.tex $}
|
||||||
|
%% {$LastChangedDate: 2018-08-02 14:19:06 +0200 (Do, 02 Aug 2018) $}
|
||||||
|
%% {$LastChangedRevision: 5705 $}
|
||||||
|
%% {$LastChangedBy: burger $}
|
||||||
|
|
||||||
|
%% Available page modes: oneside, twoside
|
||||||
|
%% Available modes: draft, final (see README)
|
||||||
|
\documentclass[twoside, english, final]{sdqthesis}
|
||||||
|
|
||||||
|
%% ---------------------------------
|
||||||
|
%% | Information about the thesis |
|
||||||
|
%% ---------------------------------
|
||||||
|
|
||||||
|
%% Name of the author
|
||||||
|
\author{Hannes F. Kuchelmeister}
|
||||||
|
|
||||||
|
%% Title (and possibly subtitle) of the thesis
|
||||||
|
\title{Decision Support for Group-Based Configuration using Recommender Systems}
|
||||||
|
|
||||||
|
%% Type of the thesis
|
||||||
|
\thesistype{Bachelor's Thesis}
|
||||||
|
|
||||||
|
%% Change the institute here, ``IPD'' is default
|
||||||
|
% \myinstitute{Institute for \dots}
|
||||||
|
|
||||||
|
%% You can put a logo in the ``logos'' directory and include it here
|
||||||
|
%% instead of the SDQ logo
|
||||||
|
% \grouplogo{myfile}
|
||||||
|
|
||||||
|
%% Alternatively, you can disable the group logo
|
||||||
|
\nogrouplogo
|
||||||
|
|
||||||
|
%% The reviewers are the professors that grade your thesis
|
||||||
|
\reviewerone{Prof. Dr. Ralf H. Reussner}
|
||||||
|
\reviewertwo{Prof. Dr. Christof Weinhardt}
|
||||||
|
|
||||||
|
%% The advisors are PhDs or Postdocs
|
||||||
|
\advisorone{Dr. rer. nat. Robert Heinrich}
|
||||||
|
%% The second advisor can be omitted
|
||||||
|
\advisortwo{M.A. Jonas Fegert}
|
||||||
|
|
||||||
|
%% Please enter the start end end time of your thesis
|
||||||
|
\usepackage{texdate}
|
||||||
|
\initdate{2019}{12}{16}
|
||||||
|
|
||||||
|
\editingtime{
|
||||||
|
\printfdate{british}
|
||||||
|
\advancebydays{31}
|
||||||
|
\advancebymonths{3}
|
||||||
|
}{
|
||||||
|
\regressbydays{1}
|
||||||
|
\advancebydays{27} % corona automatic extension (34 days) - 7 days earlier hand in
|
||||||
|
\printfdate{british}
|
||||||
|
}
|
||||||
|
|
||||||
|
\settitle
|
||||||
|
|
||||||
|
%% --------------------------------
|
||||||
|
%% | Settings for word separation |
|
||||||
|
%% --------------------------------
|
||||||
|
|
||||||
|
%% Describe separation hints here.
|
||||||
|
%% For more details, see
|
||||||
|
%% http://en.wikibooks.org/wiki/LaTeX/Text_Formatting#Hyphenation
|
||||||
|
\hyphenation{
|
||||||
|
% me-ta-mo-del
|
||||||
|
}
|
||||||
|
|
||||||
|
%% --------------------------------
|
||||||
|
%% | Ref Hypothesis |
|
||||||
|
%% --------------------------------
|
||||||
|
\newcommand{\hypothesisautorefname}{Hypothesis}
|
||||||
|
|
||||||
|
%% --------------------
|
||||||
|
%% | Float Barriers |
|
||||||
|
%% --------------------
|
||||||
|
\usepackage{placeins}
|
||||||
|
|
||||||
|
%% --------------------
|
||||||
|
%% | Table Packages |
|
||||||
|
%% --------------------
|
||||||
|
\usepackage{tabularx}
|
||||||
|
\newcolumntype{C}{>{\centering\arraybackslash}X}
|
||||||
|
\usepackage{multirow}
|
||||||
|
|
||||||
|
%% --------------------
|
||||||
|
%% | Maths Packages |
|
||||||
|
%% --------------------
|
||||||
|
\usepackage{amsmath}
|
||||||
|
\usepackage{amssymb}
|
||||||
|
|
||||||
|
%% --------------------
|
||||||
|
%% | Plotting Packages |
|
||||||
|
%% --------------------
|
||||||
|
\usepackage{pgfplots}
|
||||||
|
|
||||||
|
%% ---------------------
|
||||||
|
%% | Generating Frames |
|
||||||
|
%% ---------------------
|
||||||
|
\usepackage[framemethod=TikZ]{mdframed}
|
||||||
|
\newcounter{hypo}
|
||||||
|
\mdtheorem[
|
||||||
|
nobreak=true,
|
||||||
|
linecolor=gray!60,
|
||||||
|
linewidth=1pt,
|
||||||
|
frametitlebackgroundcolor=gray!20,
|
||||||
|
frametitlefont=\sffamily\bfseries\color{black},
|
||||||
|
]{hypothesis}{Hypothesis}
|
||||||
|
|
||||||
|
%% --------------------------------
|
||||||
|
%% | PDF Comments |
|
||||||
|
%% --------------------------------
|
||||||
|
\usepackage[colorinlistoftodos, obeyDraft]{todonotes}
|
||||||
|
|
||||||
|
|
||||||
|
%% --------------------------------
|
||||||
|
%% | Gantt Charts |
|
||||||
|
%% --------------------------------
|
||||||
|
\usepackage{pgfgantt}
|
||||||
|
|
||||||
|
%% --------------------------------
|
||||||
|
%% | Quotation |
|
||||||
|
%% --------------------------------
|
||||||
|
|
||||||
|
\usepackage{csquotes}
|
||||||
|
\MakeOuterQuote{"}
|
||||||
|
|
||||||
|
%% --------------------------------
|
||||||
|
%% | Bibliography |
|
||||||
|
%% --------------------------------
|
||||||
|
|
||||||
|
%% Use biber instead of BibTeX, see README
|
||||||
|
\usepackage[citestyle=numeric,style=numeric,sorting=none,backend=biber]{biblatex}
|
||||||
|
\addbibresource{thesis.bib}
|
||||||
|
|
||||||
|
%% --------------------------------
|
||||||
|
%% | File Inputs |
|
||||||
|
%% --------------------------------
|
||||||
|
\usepackage{texosquery}
|
||||||
|
|
||||||
|
%% ====================================
|
||||||
|
%% ====================================
|
||||||
|
%% || ||
|
||||||
|
%% || Beginning of the main document ||
|
||||||
|
%% || ||
|
||||||
|
%% ====================================
|
||||||
|
%% ====================================
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
%% Set PDF metadata
|
||||||
|
\setpdf
|
||||||
|
|
||||||
|
%% Set the title
|
||||||
|
\maketitle
|
||||||
|
|
||||||
|
%% The Preamble begins here
|
||||||
|
\frontmatter
|
||||||
|
|
||||||
|
\input{sections/declaration.tex}
|
||||||
|
|
||||||
|
|
||||||
|
\setcounter{page}{1}
|
||||||
|
\pagenumbering{roman}
|
||||||
|
|
||||||
|
%% ----------------
|
||||||
|
%% | Abstract |
|
||||||
|
%% ----------------
|
||||||
|
|
||||||
|
%% For theses written in English, an abstract both in English
|
||||||
|
%% and German is mandatory.
|
||||||
|
%%
|
||||||
|
%% For theses written in German, a German abstract is sufficient.
|
||||||
|
%%
|
||||||
|
%% The text is included from the following files:
|
||||||
|
%% - sections/abstract
|
||||||
|
|
||||||
|
\includeabstract
|
||||||
|
|
||||||
|
%% ------------------------
|
||||||
|
%% | Table of Contents |
|
||||||
|
%% ------------------------
|
||||||
|
\tableofcontents
|
||||||
|
|
||||||
|
\listoffigures
|
||||||
|
\listoftables
|
||||||
|
|
||||||
|
%% -----------------
|
||||||
|
%% | Main part |
|
||||||
|
%% -----------------
|
||||||
|
|
||||||
|
\mainmatter
|
||||||
|
|
||||||
|
\input{sections/00_introduction.tex}
|
||||||
|
\input{sections/10_foundations.tex}
|
||||||
|
\input{sections/20_related_work.tex}
|
||||||
|
\input{sections/40_concept.tex}
|
||||||
|
\input{sections/50_design_and_implementation.tex}
|
||||||
|
\input{sections/60_evaluation.tex}
|
||||||
|
\input{sections/80_conclusion.tex}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%% --------------------
|
||||||
|
%% | Bibliography |
|
||||||
|
%% --------------------
|
||||||
|
|
||||||
|
%% Add entry to the table of contents for the bibliography
|
||||||
|
\printbibliography[heading=bibintoc]
|
||||||
|
\end{document}
|
||||||
93
30_Thesis/title-background.eps
Normal file
93
30_Thesis/title-background.eps
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
%!PS-Adobe-3.0 EPSF-3.0
|
||||||
|
%%For:
|
||||||
|
%%Title:
|
||||||
|
%%Creator: Scribus1.4.4
|
||||||
|
%%Pages: 1
|
||||||
|
%%BoundingBox: 0 0 595 842
|
||||||
|
%%HiResBoundingBox: 0 0 595.276 841.89
|
||||||
|
%%LanguageLevel: 3
|
||||||
|
%%EndComments
|
||||||
|
%%BeginProlog
|
||||||
|
/Scribusdict 100 dict def
|
||||||
|
Scribusdict begin
|
||||||
|
/sp {showpage} bind def
|
||||||
|
/oldsetgray /setgray load def
|
||||||
|
/cmyk {setcmykcolor} def
|
||||||
|
/m {moveto} bind def
|
||||||
|
/l {lineto} bind def
|
||||||
|
/li {lineto} bind def
|
||||||
|
/cu {curveto} bind def
|
||||||
|
/cl {closepath} bind def
|
||||||
|
/gs {gsave} bind def
|
||||||
|
/gr {grestore} bind def
|
||||||
|
/tr {translate} bind def
|
||||||
|
/ro {rotate} bind def
|
||||||
|
/sh {show} bind def
|
||||||
|
/shg {setcmykcolor moveto glyphshow} def
|
||||||
|
/shgsp {moveto glyphshow} def
|
||||||
|
/sc {scale} bind def
|
||||||
|
/se {selectfont} bind def
|
||||||
|
/sf {setfont} bind def
|
||||||
|
/sw {setlinewidth} bind def
|
||||||
|
/f {findfont} bind def
|
||||||
|
/fi {fill} bind def
|
||||||
|
/st {stroke} bind def
|
||||||
|
/shgf {gs dup scale begin cvx exec fill end gr} bind def
|
||||||
|
/shgs {gs dup 1 exch div currentlinewidth mul sw dup scale
|
||||||
|
begin cvx exec st end gr} bind def
|
||||||
|
/bEPS {
|
||||||
|
/b4_Inc_state save def
|
||||||
|
/dict_count countdictstack def
|
||||||
|
/op_count count 1 sub def
|
||||||
|
userdict begin
|
||||||
|
/showpage { } def
|
||||||
|
0 setgray 0 setlinecap
|
||||||
|
1 setlinewidth 0 setlinejoin
|
||||||
|
10 setmiterlimit [ ] 0 setdash newpath
|
||||||
|
/languagelevel where
|
||||||
|
{pop languagelevel
|
||||||
|
1 ne
|
||||||
|
{false setstrokeadjust false setoverprint
|
||||||
|
} if } if } bind def
|
||||||
|
/eEPS { count op_count sub {pop} repeat
|
||||||
|
countdictstack dict_count sub {end} repeat
|
||||||
|
b4_Inc_state restore } bind def
|
||||||
|
end
|
||||||
|
%%EndProlog
|
||||||
|
%%BeginSetup
|
||||||
|
%%EndSetup
|
||||||
|
%%Page: 1 1
|
||||||
|
%%PageOrientation: Portrait
|
||||||
|
Scribusdict begin
|
||||||
|
save
|
||||||
|
/DeviceCMYK setcolorspace
|
||||||
|
0 0 tr
|
||||||
|
40 40 m
|
||||||
|
555.276 40 li
|
||||||
|
555.276 801.89 li
|
||||||
|
40 801.89 li cl clip newpath
|
||||||
|
gs
|
||||||
|
0.992559 sw
|
||||||
|
0 setlinecap
|
||||||
|
0 setlinejoin
|
||||||
|
[] 0 setdash
|
||||||
|
29.6548 809.103 tr
|
||||||
|
533.748 -761.657 m
|
||||||
|
17.7923 -761.657 li
|
||||||
|
7.91532 -761.657 0 -753.741 0 -743.868 cu
|
||||||
|
0 0 li
|
||||||
|
515.959 0 li
|
||||||
|
525.832 0 533.748 -7.91931 533.748 -17.7923 cu
|
||||||
|
533.748 -761.657 li
|
||||||
|
533.748 -761.657 li
|
||||||
|
cl
|
||||||
|
0 0 0 1 cmyk st
|
||||||
|
gr
|
||||||
|
%%PageTrailer
|
||||||
|
restore
|
||||||
|
gs
|
||||||
|
gr
|
||||||
|
sp
|
||||||
|
end
|
||||||
|
%%Trailer
|
||||||
|
%%EOF
|
||||||
116
30_Thesis/title-background.pdf
Normal file
116
30_Thesis/title-background.pdf
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
%PDF-1.4
|
||||||
|
%Çì<C387>¢
|
||||||
|
1 0 obj
|
||||||
|
<<
|
||||||
|
/Type /Catalog
|
||||||
|
/Outlines 3 0 R
|
||||||
|
/Pages 4 0 R
|
||||||
|
/Dests 5 0 R
|
||||||
|
/AcroForm 6 0 R
|
||||||
|
/Names 7 0 R
|
||||||
|
/Threads 8 0 R
|
||||||
|
/PageLayout /SinglePage
|
||||||
|
/ViewerPreferences
|
||||||
|
<<
|
||||||
|
/PageDirection /L2R
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
2 0 obj
|
||||||
|
<<
|
||||||
|
/Creator (Scribus 1.4.4)
|
||||||
|
/Producer (Scribus PDF Library 1.4.4)
|
||||||
|
/Title <>
|
||||||
|
/Author <>
|
||||||
|
/Subject <>
|
||||||
|
/Keywords <>
|
||||||
|
/CreationDate (D:20141111094954)
|
||||||
|
/ModDate (D:20141111094954)
|
||||||
|
/Trapped /False
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
9 0 obj
|
||||||
|
<< /Length 173
|
||||||
|
/Filter /FlateDecode >>
|
||||||
|
stream
|
||||||
|
xÚu<EFBFBD>A1E÷œ¢¥zwêÒ¸ÆÌ,fåõeLœT£JúH>Ÿ8Qd¼Hkl}œa<C593>øxͶBó"¯^”Óq£Ö²Öô€ó%®@iuß5£7MN
™rµUS™Cƒ\Ò`•±ªÅ®ØÐZêé†<>UrßöSA+ü<>Š W_ÍÃ÷9”&˜<>]:¦$ÈZ:Öû‹íM¸G›Íñ÷!Ó?|ƒ"Ÿ
|
||||||
|
ŠF¦
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
10 0 obj
|
||||||
|
<< /S /Transparency
|
||||||
|
/CS /DeviceRGB
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
11 0 obj
|
||||||
|
<<
|
||||||
|
/Type /Page
|
||||||
|
/Parent 4 0 R
|
||||||
|
/MediaBox [0 0 595.27559 841.88976]
|
||||||
|
/BleedBox [0.00000 0.00000 595.27559 841.88976]
|
||||||
|
/CropBox [0 0 595.27559 841.88976]
|
||||||
|
/TrimBox [0.00000 0.00000 595.27559 841.88976]
|
||||||
|
/ArtBox [0.00000 0.00000 595.27559 841.88976]
|
||||||
|
/Rotate 0
|
||||||
|
/Contents 9 0 R
|
||||||
|
/Group 10 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
12 0 obj
|
||||||
|
<< /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
3 0 obj
|
||||||
|
<<
|
||||||
|
/Type /Outlines
|
||||||
|
/Count 0
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
4 0 obj
|
||||||
|
<<
|
||||||
|
/Type /Pages
|
||||||
|
/Kids [11 0 R ]
|
||||||
|
/Count 1
|
||||||
|
/Resources 12 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
5 0 obj
|
||||||
|
<<
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
6 0 obj
|
||||||
|
<<
|
||||||
|
/Fields [ ]
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
7 0 obj
|
||||||
|
<< >>
|
||||||
|
endobj
|
||||||
|
8 0 obj
|
||||||
|
[]
|
||||||
|
endobj
|
||||||
|
xref
|
||||||
|
0 13
|
||||||
|
0000000000 65535 f
|
||||||
|
0000000015 00000 n
|
||||||
|
0000000207 00000 n
|
||||||
|
0000001081 00000 n
|
||||||
|
0000001127 00000 n
|
||||||
|
0000001204 00000 n
|
||||||
|
0000001225 00000 n
|
||||||
|
0000001259 00000 n
|
||||||
|
0000001281 00000 n
|
||||||
|
0000000414 00000 n
|
||||||
|
0000000659 00000 n
|
||||||
|
0000000713 00000 n
|
||||||
|
0000001013 00000 n
|
||||||
|
trailer
|
||||||
|
<<
|
||||||
|
/Size 13
|
||||||
|
/Root 1 0 R
|
||||||
|
/Info 2 0 R
|
||||||
|
/ID [<277CA22A7AE2CA7FFF6E9C66BCEEE0BF><277CA22A7AE2CA7FFF6E9C66BCEEE0BF>]
|
||||||
|
>>
|
||||||
|
startxref
|
||||||
|
1299
|
||||||
|
%%EOF
|
||||||
67
30_Thesis/title-background.sla
Normal file
67
30_Thesis/title-background.sla
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<SCRIBUSUTF8NEW Version="1.4.4">
|
||||||
|
<DOCUMENT ANZPAGES="1" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" PRESET="0" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" ORIENTATION="0" PAGESIZE="A4" FIRSTNUM="1" BOOK="0" AUTOSPALTEN="1" ABSTSPALTEN="11" UNITS="1" DFONT="Arial Regular" DSIZE="12" DCOL="1" DGAP="0" TabFill="" TabWidth="36" AUTHOR="" COMMENTS="" KEYWORDS="" PUBLISHER="" DOCDATE="" DOCTYPE="" DOCFORMAT="" DOCIDENT="" DOCSOURCE="" DOCLANGINFO="" DOCRELATION="" DOCCOVER="" DOCRIGHTS="" DOCCONTRIB="" TITLE="" SUBJECT="" VHOCH="33" VHOCHSC="66" VTIEF="33" VTIEFSC="66" VKAPIT="75" BASEGRID="14.4" BASEO="0" AUTOL="20" UnderlinePos="-1" UnderlineWidth="-1" StrikeThruPos="-1" StrikeThruWidth="-1" GROUPC="1" HCMS="0" DPSo="0" DPSFo="0" DPuse="0" DPgam="0" DPbla="1" DPMo="sRGB IEC61966-2.1" DPPr="Fogra27L CMYK Coated Press" DPIn="sRGB IEC61966-2.1" DPInCMYK="Fogra27L CMYK Coated Press" DPIn2="sRGB IEC61966-2.1" DPIn3="Fogra27L CMYK Coated Press" DISc="1" DIIm="0" ALAYER="0" LANGUAGE="German" MINWORDLEN="3" HYCOUNT="2" AUTOMATIC="1" AUTOCHECK="0" GUIDELOCK="0" SnapToGuides="0" SnapToGrid="0" MINGRID="20.001" MAJGRID="100.001" SHOWGRID="0" SHOWGUIDES="1" showcolborders="1" SHOWFRAME="1" SHOWLAYERM="0" SHOWMARGIN="1" SHOWBASE="0" SHOWPICT="1" SHOWControl="0" SHOWLINK="0" rulerMode="1" showrulers="1" showBleed="1" rulerXoffset="0" rulerYoffset="0" GuideRad="10" GRAB="4" POLYC="4" POLYF="0.707" POLYR="0" POLYCUR="0" POLYFD="0" POLYS="0" AutoSave="1" AutoSaveTime="600000" ScratchBottom="20.001" ScratchLeft="100.001" ScratchRight="100.001" ScratchTop="20.001" GapHorizontal="0" GapVertical="40" StartArrow="0" EndArrow="0" PEN="Black" BRUSH="None" PENLINE="Black" PENTEXT="Black" StrokeText="Black" TextBackGround="None" TextLineColor="None" TextBackGroundShade="100" TextLineShade="100" TextPenShade="100" TextStrokeShade="100" STIL="1" STILLINE="1" WIDTH="1" WIDTHLINE="1" PENSHADE="100" LINESHADE="100" BRUSHSHADE="100" MAGMIN="10" MAGMAX="3200" MAGSTEP="200" CPICT="None" PICTSHADE="100" PICTSCX="1" PICTSCY="1" PSCALE="1" PASPECT="1" EmbeddedPath="0" HalfRes="1" dispX="10.001" dispY="10.001" constrain="15" MINORC="#00ff00" MAJORC="#00ff00" GuideC="#000080" BaseC="#c0c0c0" GuideZ="10" BACKG="0" PAGEC="#ffffff" MARGC="#0000ff" RANDF="0" currentProfile="PostScript">
|
||||||
|
<CheckProfile Name="PDF 1.3" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
|
||||||
|
<CheckProfile Name="PDF 1.4" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
|
||||||
|
<CheckProfile Name="PDF 1.5" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
|
||||||
|
<CheckProfile Name="PDF/X-1a" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
|
||||||
|
<CheckProfile Name="PDF/X-3" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
|
||||||
|
<CheckProfile Name="PostScript" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
|
||||||
|
<COLOR NAME="Black" CMYK="#000000ff" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Blue" RGB="#0000ff" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Cool Black" CMYK="#990000ff" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Cyan" CMYK="#ff000000" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="FromSVG#231f20" RGB="#231f20" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="FromSVG#ffffff" RGB="#ffffff" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Green" RGB="#00ff00" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Magenta" CMYK="#00ff0000" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Red" RGB="#ff0000" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Registration" CMYK="#ffffffff" Spot="0" Register="1"/>
|
||||||
|
<COLOR NAME="Rich Black" CMYK="#996666ff" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Warm Black" CMYK="#00994cff" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="White" CMYK="#00000000" Spot="0" Register="0"/>
|
||||||
|
<COLOR NAME="Yellow" CMYK="#0000ff00" Spot="0" Register="0"/>
|
||||||
|
<HYPHEN/>
|
||||||
|
<STYLE NAME="Default Paragraph Style" DefaultStyle="1" ALIGN="0" LINESPMode="0" LINESP="15" INDENT="0" RMARGIN="0" FIRST="0" VOR="0" NACH="0" DROP="0" DROPLIN="2" DROPDIST="0"/>
|
||||||
|
<CHARSTYLE CNAME="Default Character Style" DefaultStyle="1" FONT="Arial Regular" FONTSIZE="12" FEATURES="inherit" FCOLOR="Black" FSHADE="100" SCOLOR="Black" SSHADE="100" TXTSHX="5" TXTSHY="-5" TXTOUT="1" TXTULP="-0.1" TXTULW="-0.1" TXTSTP="-0.1" TXTSTW="-0.1" SCALEH="100" SCALEV="100" BASEO="0" KERN="0" LANGUAGE="German"/>
|
||||||
|
<LAYERS NUMMER="0" LEVEL="0" NAME="Hintergrund" SICHTBAR="1" DRUCKEN="1" EDIT="1" FLOW="1" TRANS="1" BLEND="0" OUTL="0" LAYERC="#000000"/>
|
||||||
|
<Printer firstUse="1" toFile="1" useAltPrintCommand="1" outputSeparations="1" useSpotColors="1" useColor="1" mirrorH="1" mirrorV="1" useICC="1" doGCR="1" doClip="1" setDevParam="1" useDocBleeds="1" cropMarks="1" bleedMarks="1" registrationMarks="1" colorMarks="1" includePDFMarks="1" PSLevel="-2500135" PDLanguage="-2500135" markOffset="-7.2612709456521e+307" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" printer="" filename="" separationName="" printerCommand=""/>
|
||||||
|
<PDF firstUse="0" Thumbnails="0" Articles="0" Bookmarks="0" Compress="1" CMethod="0" Quality="0" EmbedPDF="0" MirrorH="0" MirrorV="0" Clip="0" RotateDeg="0" PresentMode="0" RecalcPic="0" Grayscale="0" RGBMode="1" UseProfiles="0" UseProfiles2="0" Binding="0" PicRes="300" Resolution="300" Version="14" Intent="1" Intent2="0" SolidP="sRGB IEC61966-2.1" ImageP="sRGB IEC61966-2.1" PrintP="Fogra27L CMYK Coated Press" InfoString="" BTop="0" BLeft="0" BRight="0" BBottom="0" useDocBleeds="1" cropMarks="0" bleedMarks="0" registrationMarks="0" colorMarks="0" docInfoMarks="0" markOffset="0" ImagePr="0" PassOwner="" PassUser="" Permissions="-4" Encrypt="0" UseLayers="0" UseLpi="0" UseSpotColors="1" doMultiFile="0" displayBookmarks="0" displayFullscreen="0" displayLayers="0" displayThumbs="0" hideMenuBar="0" hideToolBar="0" fitWindow="0" PageLayout="0" openAction="">
|
||||||
|
<Effekte pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
|
||||||
|
<LPI Color="" Frequency="10" Angle="0" SpotFunction="0"/>
|
||||||
|
<LPI Color="Black" Frequency="133" Angle="45" SpotFunction="3"/>
|
||||||
|
<LPI Color="Cyan" Frequency="133" Angle="105" SpotFunction="3"/>
|
||||||
|
<LPI Color="Magenta" Frequency="133" Angle="75" SpotFunction="3"/>
|
||||||
|
<LPI Color="Yellow" Frequency="133" Angle="90" SpotFunction="3"/>
|
||||||
|
</PDF>
|
||||||
|
<DocItemAttributes/>
|
||||||
|
<TablesOfContents/>
|
||||||
|
<PageSets>
|
||||||
|
<Set Name="Single Page" FirstPage="0" Rows="1" Columns="1"/>
|
||||||
|
<Set Name="Double Sided" FirstPage="1" Rows="1" Columns="2">
|
||||||
|
<PageNames Name="Left Page"/>
|
||||||
|
<PageNames Name="Right Page"/>
|
||||||
|
</Set>
|
||||||
|
<Set Name="3-Fold" FirstPage="0" Rows="1" Columns="3">
|
||||||
|
<PageNames Name="Left Page"/>
|
||||||
|
<PageNames Name="Middle"/>
|
||||||
|
<PageNames Name="Right Page"/>
|
||||||
|
</Set>
|
||||||
|
<Set Name="4-Fold" FirstPage="0" Rows="1" Columns="4">
|
||||||
|
<PageNames Name="Left Page"/>
|
||||||
|
<PageNames Name="Middle Left"/>
|
||||||
|
<PageNames Name="Middle Right"/>
|
||||||
|
<PageNames Name="Right Page"/>
|
||||||
|
</Set>
|
||||||
|
</PageSets>
|
||||||
|
<Sections>
|
||||||
|
<Section Number="0" Name="0" From="0" To="0" Type="Type_1_2_3" Start="1" Reversed="0" Active="1"/>
|
||||||
|
</Sections>
|
||||||
|
<MASTERPAGE PAGEXPOS="100.001" PAGEYPOS="20.001" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="0" NAM="Normal" MNAM="" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0"/>
|
||||||
|
<PAGE PAGEXPOS="100.001" PAGEYPOS="20.001" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="0" NAM="" MNAM="Normal" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0"/>
|
||||||
|
<PAGEOBJECT OwnPage="0" PTYPE="6" XPOS="152.332953622181" YPOS="52.7880952315889" WIDTH="511.070834645669" HEIGHT="761.657" RADRECT="0" FRTYPE="3" CLIPEDIT="1" PWIDTH="0.992558509527654" PCOLOR="None" PCOLOR2="Black" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="1" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME=" path3019" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="1" EMBEDDED="1" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="28" POCOOR="511.071 761.657 511.071 761.657 17.7923 761.657 17.7923 761.657 17.7923 761.657 7.91532 761.657 0 743.868 0 753.741 0 743.868 0 743.868 0 0 0 0 0 0 0 0 493.282 0 493.282 0 493.282 0 503.155 0 511.071 17.7923 511.071 7.91931 511.071 17.7923 511.071 17.7923 511.071 761.657 511.071 761.657 511.071 761.657 511.071 761.657 511.071 761.657 511.071 761.657 " NUMCO="28" COCOOR="511.071 761.657 511.071 761.657 -4.88487 761.657 -4.88487 761.657 -4.88487 761.657 -14.7618 761.657 -22.6772 743.868 -22.6772 753.741 -22.6772 743.868 -22.6772 743.868 -22.6772 0 -22.6772 0 -22.6772 0 -22.6772 0 493.282 0 493.282 0 493.282 0 503.155 0 511.071 17.7923 511.071 7.91931 511.071 17.7923 511.071 17.7923 511.071 761.657 511.071 761.657 511.071 761.657 511.071 761.657 511.071 761.657 511.071 761.657 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="0" doOverprint="0" gXpos="29.6547882678499" gYpos="32.787095231589" gWidth="595.275590551181" gHeight="841.891150885822" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
|
||||||
|
<trail/>
|
||||||
|
<PageItemAttributes/>
|
||||||
|
</PAGEOBJECT>
|
||||||
|
</DOCUMENT>
|
||||||
|
</SCRIBUSUTF8NEW>
|
||||||
BIN
Additional_Notes/Example_Scoring.ods
LFS
Normal file
BIN
Additional_Notes/Example_Scoring.ods
LFS
Normal file
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
<mxfile host="www.draw.io" modified="2019-12-09T13:28:32.269Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0" etag="9F-sz8phpVL5PfRKMlH8" version="12.3.8" type="device" pages="1"><diagram id="cNiUGcpUxYu83N4z4ARh" name="Page-1">7VlNc6M4EP01PjoFCLBznNiZzGFSNTXe7GxOUwoohl2MKCFiO79+JSMBQjJgxx+7NXNxoUYf6PXr1y15BGarzQOBWfSIQ5SMHCvcjMB85DgesNkvN2xLw8QBpWFJ4rA02bVhEb8jYbSEtYhDlCsdKcYJjTPVGOA0RQFVbJAQvFa7veJEXTWDS6QZFgFMdOuPOKSRsPqWVb/4guJlJJd25JsVlL2FIY9giNcNE7gfgRnBmJZPq80MJRw8CUw57vOet9WXEZTSIQOe3oM/vzxtyMP74932ZxJ58/nb2JmU07zBpBBb/l4kDHEGXxqy3znKUBqiNIi5cbcPupXooJCBJZqY0AgvcQqT+9p6R3DBRvMvsFir7vMV44wZbWb8G1G6FZ6HBcXMFNFVIt7quxQbz3FBAtSxNVfQBZIlol0QCP/wzTRWECA+ILxClGxZB8HpsXVj2bZTDiIogTR+U9kCBemW1dhqum84Zvuou+DX15x9XcNv7KGxam3aefMAz7qaYx9vRHi2vDgE7TdEKNoMgce7FXiKiAcT0V434mcqbFEjdOQ4E3oKOIci4WlIaBCw2Mz4Y4BXGU53my95KYN+Kg1VsLtGuDpdMRhDW0PMMQAmbcdyUPJZaoCUaHWCkzB0/dUjTzZ2EXr+5IyLuRsWaAx06blf/HENkUGbmP7Fh994ovUsJuPP802zsZWNlO2+MYg3n+V8vFEP27XkuJwJEv3EUxPnWwLzPA6k+XOcqJHY0qReITTiLPNmnxDaUzMpB/PrQ1Fart4SrBlOEvhyZsUCQFUsz/GvrFj27bUlq/LGr6tZ5mLB/+/ok32UPlk9+jRIZzoLqf6KyzOq2weUZzeUiSrcNjpknDP5fhJNHDXufdtvUqa/P7C6+4NpV3/2UH7xaQlqGWWUoDOLaLvsu76IVnu4mohWvvgtosb4bx86+WrWHFL4AnOdr9JXIeuQU85ocLeOYooWGdzp0prAbODhcbhHJpanBrGr+8j3dB9NzkZrvTYwl81pKKvMlwQH/7RLT2lk/RplZ7sMbSYhmVBsJZ3U2WVPQqmSV7O0rhKZOXldIAnJCqc3Ca2Ve5+TRJ7rtcQS+OoU5TbFqI4U49s9E5UwdEx0/mgH5ozEC/vxrGCRvELkzMmpXeFf/04CXD05gd/JyYyLo3nmB3pZMLEU611GZA+s2o85IRwvsuD/ILLVHb3UxmlriqEi6zk9E11WZI13PJ5OzcsdS+0DMntN8MOqCCWsUiaHrTiqCX2uOzNjP9dM55NfmXV95FE3ZprsG3AanE/9yQUPe0YodNE+bTrtgWu/e36dbLo/PtTDCmIOWPH/FMlZTnsfIrYns39FbEdz061r4PX0YF6zZv3fbwl3/Q86uP8X</diagram></mxfile>
|
|
||||||
BIN
Additional_Notes/analysis_smd.ods
LFS
Normal file
BIN
Additional_Notes/analysis_smd.ods
LFS
Normal file
Binary file not shown.
BIN
Additional_Notes/analysis_tc.ods
LFS
Normal file
BIN
Additional_Notes/analysis_tc.ods
LFS
Normal file
Binary file not shown.
207
Additional_Notes/bpmn/configuration_process.bpmn
Normal file
207
Additional_Notes/bpmn/configuration_process.bpmn
Normal file
@@ -0,0 +1,207 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0hcliey" targetNamespace="http://bpmn.io/schema/bpmn" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="6.3.0">
|
||||||
|
<bpmn:process id="Process_0aaqeef" isExecutable="false">
|
||||||
|
<bpmn:exclusiveGateway id="Gateway_0rs0dwe" name="Have all preferences of all users been entered?">
|
||||||
|
<bpmn:incoming>Flow_0pmix2e</bpmn:incoming>
|
||||||
|
<bpmn:incoming>Flow_183a3gl</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_13jervv</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>Flow_0sd24xk</bpmn:outgoing>
|
||||||
|
</bpmn:exclusiveGateway>
|
||||||
|
<bpmn:task id="Activity_1konb1u" name="generate recommendation">
|
||||||
|
<bpmn:incoming>Flow_0sd24xk</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>SequenceFlow_14bjmv4</bpmn:outgoing>
|
||||||
|
<bpmn:property id="Property_03b25wa" name="__targetRef_placeholder" />
|
||||||
|
<bpmn:dataInputAssociation id="DataInputAssociation_0oxxzci">
|
||||||
|
<bpmn:sourceRef>Flow_0ug7unw</bpmn:sourceRef>
|
||||||
|
<bpmn:targetRef>Property_03b25wa</bpmn:targetRef>
|
||||||
|
</bpmn:dataInputAssociation>
|
||||||
|
<bpmn:dataInputAssociation id="DataInputAssociation_0j2qf1y">
|
||||||
|
<bpmn:sourceRef>Flow_00hy6u9</bpmn:sourceRef>
|
||||||
|
<bpmn:targetRef>Property_03b25wa</bpmn:targetRef>
|
||||||
|
</bpmn:dataInputAssociation>
|
||||||
|
<bpmn:dataInputAssociation id="DataInputAssociation_052ijwq">
|
||||||
|
<bpmn:sourceRef>Flow_0yauk10</bpmn:sourceRef>
|
||||||
|
<bpmn:targetRef>Property_03b25wa</bpmn:targetRef>
|
||||||
|
</bpmn:dataInputAssociation>
|
||||||
|
</bpmn:task>
|
||||||
|
<bpmn:task id="Activity_12rqerh" name="wait for preference input">
|
||||||
|
<bpmn:incoming>Flow_13jervv</bpmn:incoming>
|
||||||
|
</bpmn:task>
|
||||||
|
<bpmn:task id="Activity_0707to6" name="save preferences">
|
||||||
|
<bpmn:incoming>Flow_1xs1aq5</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_183a3gl</bpmn:outgoing>
|
||||||
|
<bpmn:dataOutputAssociation id="DataOutputAssociation_1yqt1l6">
|
||||||
|
<bpmn:targetRef>Flow_0yauk10</bpmn:targetRef>
|
||||||
|
</bpmn:dataOutputAssociation>
|
||||||
|
</bpmn:task>
|
||||||
|
<bpmn:startEvent id="Event_0pwno12" name="user logs in">
|
||||||
|
<bpmn:outgoing>Flow_0opaylx</bpmn:outgoing>
|
||||||
|
</bpmn:startEvent>
|
||||||
|
<bpmn:exclusiveGateway id="Gateway_0m8yvmm" name="Are all users logged in?">
|
||||||
|
<bpmn:incoming>Flow_0opaylx</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_1l6p48t</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>Flow_0wtv4e8</bpmn:outgoing>
|
||||||
|
</bpmn:exclusiveGateway>
|
||||||
|
<bpmn:task id="Activity_1l7kym5" name="wait for all users">
|
||||||
|
<bpmn:incoming>Flow_1l6p48t</bpmn:incoming>
|
||||||
|
</bpmn:task>
|
||||||
|
<bpmn:task id="Activity_0g26qnc" name="select starting state of configuration">
|
||||||
|
<bpmn:incoming>Flow_0wtv4e8</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_0pmix2e</bpmn:outgoing>
|
||||||
|
<bpmn:dataOutputAssociation id="DataOutputAssociation_1cxhkzs">
|
||||||
|
<bpmn:targetRef>Flow_00hy6u9</bpmn:targetRef>
|
||||||
|
</bpmn:dataOutputAssociation>
|
||||||
|
</bpmn:task>
|
||||||
|
<bpmn:intermediateThrowEvent id="Event_08vhdg2" name="user enters preference">
|
||||||
|
<bpmn:outgoing>Flow_1xs1aq5</bpmn:outgoing>
|
||||||
|
</bpmn:intermediateThrowEvent>
|
||||||
|
<bpmn:dataStoreReference id="Flow_0yauk10" name="user preferences" />
|
||||||
|
<bpmn:dataStoreReference id="Flow_00hy6u9" name="current configuration" />
|
||||||
|
<bpmn:dataStoreReference id="Flow_0ug7unw" name="database of finished configurations" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_0opaylx" sourceRef="Event_0pwno12" targetRef="Gateway_0m8yvmm" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_1l6p48t" name="no" sourceRef="Gateway_0m8yvmm" targetRef="Activity_1l7kym5" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_0wtv4e8" name="yes" sourceRef="Gateway_0m8yvmm" targetRef="Activity_0g26qnc" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_0pmix2e" sourceRef="Activity_0g26qnc" targetRef="Gateway_0rs0dwe" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_13jervv" name="no" sourceRef="Gateway_0rs0dwe" targetRef="Activity_12rqerh" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_0sd24xk" name="yes" sourceRef="Gateway_0rs0dwe" targetRef="Activity_1konb1u" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_1xs1aq5" sourceRef="Event_08vhdg2" targetRef="Activity_0707to6" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_183a3gl" sourceRef="Activity_0707to6" targetRef="Gateway_0rs0dwe" />
|
||||||
|
<bpmn:endEvent id="EndEvent_049prfp">
|
||||||
|
<bpmn:incoming>SequenceFlow_14bjmv4</bpmn:incoming>
|
||||||
|
</bpmn:endEvent>
|
||||||
|
<bpmn:sequenceFlow id="SequenceFlow_14bjmv4" sourceRef="Activity_1konb1u" targetRef="EndEvent_049prfp" />
|
||||||
|
</bpmn:process>
|
||||||
|
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||||
|
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_0aaqeef">
|
||||||
|
<bpmndi:BPMNEdge id="Flow_0opaylx_di" bpmnElement="Flow_0opaylx">
|
||||||
|
<di:waypoint x="198" y="210" />
|
||||||
|
<di:waypoint x="285" y="210" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_1l6p48t_di" bpmnElement="Flow_1l6p48t">
|
||||||
|
<di:waypoint x="310" y="235" />
|
||||||
|
<di:waypoint x="310" y="270" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="293" y="258" width="13" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_0wtv4e8_di" bpmnElement="Flow_0wtv4e8">
|
||||||
|
<di:waypoint x="335" y="210" />
|
||||||
|
<di:waypoint x="390" y="210" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="353" y="192" width="19" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_0pmix2e_di" bpmnElement="Flow_0pmix2e">
|
||||||
|
<di:waypoint x="490" y="210" />
|
||||||
|
<di:waypoint x="625" y="210" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_13jervv_di" bpmnElement="Flow_13jervv">
|
||||||
|
<di:waypoint x="667" y="202" />
|
||||||
|
<di:waypoint x="751" y="153" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="695" y="163" width="13" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_0sd24xk_di" bpmnElement="Flow_0sd24xk">
|
||||||
|
<di:waypoint x="675" y="210" />
|
||||||
|
<di:waypoint x="750" y="210" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="703" y="192" width="19" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_1xs1aq5_di" bpmnElement="Flow_1xs1aq5">
|
||||||
|
<di:waypoint x="558" y="310" />
|
||||||
|
<di:waypoint x="600" y="310" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_183a3gl_di" bpmnElement="Flow_183a3gl">
|
||||||
|
<di:waypoint x="650" y="270" />
|
||||||
|
<di:waypoint x="650" y="235" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape id="Gateway_0rs0dwe_di" bpmnElement="Gateway_0rs0dwe" isMarkerVisible="true">
|
||||||
|
<dc:Bounds x="625" y="185" width="50" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="613" y="123" width="74" height="53" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Activity_1konb1u_di" bpmnElement="Activity_1konb1u">
|
||||||
|
<dc:Bounds x="750" y="170" width="100" height="80" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Activity_12rqerh_di" bpmnElement="Activity_12rqerh">
|
||||||
|
<dc:Bounds x="750" y="80" width="100" height="80" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Activity_0707to6_di" bpmnElement="Activity_0707to6">
|
||||||
|
<dc:Bounds x="600" y="270" width="100" height="80" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Event_0pwno12_di" bpmnElement="Event_0pwno12">
|
||||||
|
<dc:Bounds x="162" y="192" width="36" height="36" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="152" y="235" width="57" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Gateway_1rbl3uy_di" bpmnElement="Gateway_0m8yvmm" isMarkerVisible="true">
|
||||||
|
<dc:Bounds x="285" y="185" width="50" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="278" y="147.5" width="63" height="27" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Activity_1l7kym5_di" bpmnElement="Activity_1l7kym5">
|
||||||
|
<dc:Bounds x="260" y="270" width="100" height="80" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Activity_0g26qnc_di" bpmnElement="Activity_0g26qnc">
|
||||||
|
<dc:Bounds x="390" y="170" width="100" height="80" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Event_08vhdg2_di" bpmnElement="Event_08vhdg2">
|
||||||
|
<dc:Bounds x="522" y="292" width="36" height="36" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="511" y="254.5" width="57" height="27" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Flow_0yauk10_di" bpmnElement="Flow_0yauk10">
|
||||||
|
<dc:Bounds x="725" y="285" width="50" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="707" y="342" width="86" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Flow_00hy6u9_di" bpmnElement="Flow_00hy6u9">
|
||||||
|
<dc:Bounds x="775" y="395" width="50" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="768" y="452" width="64" height="27" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Flow_0ug7unw_di" bpmnElement="Flow_0ug7unw">
|
||||||
|
<dc:Bounds x="829" y="285" width="50" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="819" y="342" width="70" height="40" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge id="DataInputAssociation_0oxxzci_di" bpmnElement="DataInputAssociation_0oxxzci">
|
||||||
|
<di:waypoint x="840" y="285" />
|
||||||
|
<di:waypoint x="820" y="250" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataInputAssociation_0j2qf1y_di" bpmnElement="DataInputAssociation_0j2qf1y">
|
||||||
|
<di:waypoint x="800" y="395" />
|
||||||
|
<di:waypoint x="800" y="250" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataInputAssociation_052ijwq_di" bpmnElement="DataInputAssociation_052ijwq">
|
||||||
|
<di:waypoint x="763" y="285" />
|
||||||
|
<di:waypoint x="780" y="250" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataOutputAssociation_1yqt1l6_di" bpmnElement="DataOutputAssociation_1yqt1l6">
|
||||||
|
<di:waypoint x="700" y="310" />
|
||||||
|
<di:waypoint x="725" y="310" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataOutputAssociation_1cxhkzs_di" bpmnElement="DataOutputAssociation_1cxhkzs">
|
||||||
|
<di:waypoint x="440" y="250" />
|
||||||
|
<di:waypoint x="440" y="415" />
|
||||||
|
<di:waypoint x="775" y="415" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape id="EndEvent_049prfp_di" bpmnElement="EndEvent_049prfp">
|
||||||
|
<dc:Bounds x="892" y="192" width="36" height="36" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge id="SequenceFlow_14bjmv4_di" bpmnElement="SequenceFlow_14bjmv4">
|
||||||
|
<di:waypoint x="850" y="210" />
|
||||||
|
<di:waypoint x="892" y="210" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
</bpmndi:BPMNPlane>
|
||||||
|
</bpmndi:BPMNDiagram>
|
||||||
|
</bpmn:definitions>
|
||||||
@@ -0,0 +1,195 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0hcliey" targetNamespace="http://bpmn.io/schema/bpmn" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="6.3.0">
|
||||||
|
<bpmn:process id="Process_0aaqeef" isExecutable="false">
|
||||||
|
<bpmn:exclusiveGateway id="Gateway_0rs0dwe" name="Have all preferences of all users been entered?">
|
||||||
|
<bpmn:incoming>Flow_0pmix2e</bpmn:incoming>
|
||||||
|
<bpmn:incoming>Flow_183a3gl</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_0sd24xk</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>SequenceFlow_1ygx377</bpmn:outgoing>
|
||||||
|
</bpmn:exclusiveGateway>
|
||||||
|
<bpmn:task id="Activity_1konb1u" name="generate recommenda-tion">
|
||||||
|
<bpmn:incoming>Flow_0sd24xk</bpmn:incoming>
|
||||||
|
<bpmn:property id="Property_03b25wa" name="__targetRef_placeholder" />
|
||||||
|
<bpmn:dataInputAssociation id="DataInputAssociation_0oxxzci">
|
||||||
|
<bpmn:sourceRef>Flow_0ug7unw</bpmn:sourceRef>
|
||||||
|
<bpmn:targetRef>Property_03b25wa</bpmn:targetRef>
|
||||||
|
</bpmn:dataInputAssociation>
|
||||||
|
<bpmn:dataInputAssociation id="DataInputAssociation_0j2qf1y">
|
||||||
|
<bpmn:sourceRef>Flow_00hy6u9</bpmn:sourceRef>
|
||||||
|
<bpmn:targetRef>Property_03b25wa</bpmn:targetRef>
|
||||||
|
</bpmn:dataInputAssociation>
|
||||||
|
<bpmn:dataInputAssociation id="DataInputAssociation_052ijwq">
|
||||||
|
<bpmn:sourceRef>Flow_0yauk10</bpmn:sourceRef>
|
||||||
|
<bpmn:targetRef>Property_03b25wa</bpmn:targetRef>
|
||||||
|
</bpmn:dataInputAssociation>
|
||||||
|
</bpmn:task>
|
||||||
|
<bpmn:task id="Activity_0707to6" name="save preferences">
|
||||||
|
<bpmn:incoming>Flow_1xs1aq5</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_183a3gl</bpmn:outgoing>
|
||||||
|
<bpmn:dataOutputAssociation id="DataOutputAssociation_1yqt1l6">
|
||||||
|
<bpmn:targetRef>Flow_0yauk10</bpmn:targetRef>
|
||||||
|
</bpmn:dataOutputAssociation>
|
||||||
|
</bpmn:task>
|
||||||
|
<bpmn:startEvent id="Event_0pwno12" name="user logs in">
|
||||||
|
<bpmn:outgoing>Flow_0opaylx</bpmn:outgoing>
|
||||||
|
</bpmn:startEvent>
|
||||||
|
<bpmn:exclusiveGateway id="Gateway_0m8yvmm" name="Are all users logged in?">
|
||||||
|
<bpmn:incoming>Flow_0opaylx</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_1l6p48t</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>Flow_0wtv4e8</bpmn:outgoing>
|
||||||
|
</bpmn:exclusiveGateway>
|
||||||
|
<bpmn:task id="Activity_1l7kym5" name="wait for all users">
|
||||||
|
<bpmn:incoming>Flow_1l6p48t</bpmn:incoming>
|
||||||
|
</bpmn:task>
|
||||||
|
<bpmn:task id="Activity_0g26qnc" name="select starting state of configuration">
|
||||||
|
<bpmn:incoming>Flow_0wtv4e8</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_0pmix2e</bpmn:outgoing>
|
||||||
|
<bpmn:dataOutputAssociation id="DataOutputAssociation_1cxhkzs">
|
||||||
|
<bpmn:targetRef>Flow_00hy6u9</bpmn:targetRef>
|
||||||
|
</bpmn:dataOutputAssociation>
|
||||||
|
</bpmn:task>
|
||||||
|
<bpmn:intermediateThrowEvent id="Event_08vhdg2" name="user enters preference">
|
||||||
|
<bpmn:outgoing>Flow_1xs1aq5</bpmn:outgoing>
|
||||||
|
</bpmn:intermediateThrowEvent>
|
||||||
|
<bpmn:dataStoreReference id="Flow_0yauk10" name="user preferences" />
|
||||||
|
<bpmn:dataStoreReference id="Flow_00hy6u9" name="current configuration" />
|
||||||
|
<bpmn:dataStoreReference id="Flow_0ug7unw" name="database of finished configurations" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_0opaylx" sourceRef="Event_0pwno12" targetRef="Gateway_0m8yvmm" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_1l6p48t" name="no" sourceRef="Gateway_0m8yvmm" targetRef="Activity_1l7kym5" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_0wtv4e8" name="yes" sourceRef="Gateway_0m8yvmm" targetRef="Activity_0g26qnc" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_0pmix2e" sourceRef="Activity_0g26qnc" targetRef="Gateway_0rs0dwe" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_0sd24xk" name="yes" sourceRef="Gateway_0rs0dwe" targetRef="Activity_1konb1u" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_1xs1aq5" sourceRef="Event_08vhdg2" targetRef="Activity_0707to6" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_183a3gl" sourceRef="Activity_0707to6" targetRef="Gateway_0rs0dwe" />
|
||||||
|
<bpmn:endEvent id="EndEvent_04vuhjz">
|
||||||
|
<bpmn:incoming>SequenceFlow_1ygx377</bpmn:incoming>
|
||||||
|
</bpmn:endEvent>
|
||||||
|
<bpmn:sequenceFlow id="SequenceFlow_1ygx377" name="no" sourceRef="Gateway_0rs0dwe" targetRef="EndEvent_04vuhjz" />
|
||||||
|
</bpmn:process>
|
||||||
|
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||||
|
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_0aaqeef">
|
||||||
|
<bpmndi:BPMNEdge id="Flow_0opaylx_di" bpmnElement="Flow_0opaylx">
|
||||||
|
<di:waypoint x="338" y="210" />
|
||||||
|
<di:waypoint x="365" y="210" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_1l6p48t_di" bpmnElement="Flow_1l6p48t">
|
||||||
|
<di:waypoint x="390" y="235" />
|
||||||
|
<di:waypoint x="390" y="270" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="373" y="236" width="13" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_0wtv4e8_di" bpmnElement="Flow_0wtv4e8">
|
||||||
|
<di:waypoint x="415" y="210" />
|
||||||
|
<di:waypoint x="460" y="210" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="429" y="192" width="17" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_0pmix2e_di" bpmnElement="Flow_0pmix2e">
|
||||||
|
<di:waypoint x="560" y="210" />
|
||||||
|
<di:waypoint x="625" y="210" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_0sd24xk_di" bpmnElement="Flow_0sd24xk">
|
||||||
|
<di:waypoint x="675" y="210" />
|
||||||
|
<di:waypoint x="750" y="210" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="704" y="192" width="17" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_1xs1aq5_di" bpmnElement="Flow_1xs1aq5">
|
||||||
|
<di:waypoint x="578" y="310" />
|
||||||
|
<di:waypoint x="600" y="310" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_183a3gl_di" bpmnElement="Flow_183a3gl">
|
||||||
|
<di:waypoint x="650" y="270" />
|
||||||
|
<di:waypoint x="650" y="235" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape id="Gateway_0rs0dwe_di" bpmnElement="Gateway_0rs0dwe" isMarkerVisible="true">
|
||||||
|
<dc:Bounds x="625" y="185" width="50" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="608" y="123" width="85" height="53" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Activity_1konb1u_di" bpmnElement="Activity_1konb1u">
|
||||||
|
<dc:Bounds x="750" y="170" width="100" height="80" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Activity_0707to6_di" bpmnElement="Activity_0707to6">
|
||||||
|
<dc:Bounds x="600" y="270" width="100" height="80" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Event_0pwno12_di" bpmnElement="Event_0pwno12">
|
||||||
|
<dc:Bounds x="302" y="192" width="36" height="36" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="292" y="235" width="57" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Gateway_1rbl3uy_di" bpmnElement="Gateway_0m8yvmm" isMarkerVisible="true">
|
||||||
|
<dc:Bounds x="365" y="185" width="50" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="359" y="148" width="61" height="27" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Activity_1l7kym5_di" bpmnElement="Activity_1l7kym5">
|
||||||
|
<dc:Bounds x="340" y="270" width="100" height="80" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Activity_0g26qnc_di" bpmnElement="Activity_0g26qnc">
|
||||||
|
<dc:Bounds x="460" y="170" width="100" height="80" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Event_08vhdg2_di" bpmnElement="Event_08vhdg2">
|
||||||
|
<dc:Bounds x="542" y="292" width="36" height="36" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="532" y="335" width="56" height="27" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Flow_0yauk10_di" bpmnElement="Flow_0yauk10">
|
||||||
|
<dc:Bounds x="725" y="285" width="50" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="707" y="342" width="86" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Flow_00hy6u9_di" bpmnElement="Flow_00hy6u9">
|
||||||
|
<dc:Bounds x="775" y="395" width="50" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="768" y="452" width="64" height="27" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Flow_0ug7unw_di" bpmnElement="Flow_0ug7unw">
|
||||||
|
<dc:Bounds x="829" y="285" width="50" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="819" y="342" width="70" height="40" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge id="DataInputAssociation_0oxxzci_di" bpmnElement="DataInputAssociation_0oxxzci">
|
||||||
|
<di:waypoint x="840" y="285" />
|
||||||
|
<di:waypoint x="820" y="250" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataInputAssociation_0j2qf1y_di" bpmnElement="DataInputAssociation_0j2qf1y">
|
||||||
|
<di:waypoint x="800" y="395" />
|
||||||
|
<di:waypoint x="800" y="250" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataInputAssociation_052ijwq_di" bpmnElement="DataInputAssociation_052ijwq">
|
||||||
|
<di:waypoint x="763" y="285" />
|
||||||
|
<di:waypoint x="780" y="250" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataOutputAssociation_1yqt1l6_di" bpmnElement="DataOutputAssociation_1yqt1l6">
|
||||||
|
<di:waypoint x="700" y="310" />
|
||||||
|
<di:waypoint x="725" y="310" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataOutputAssociation_1cxhkzs_di" bpmnElement="DataOutputAssociation_1cxhkzs">
|
||||||
|
<di:waypoint x="510" y="250" />
|
||||||
|
<di:waypoint x="510" y="415" />
|
||||||
|
<di:waypoint x="775" y="415" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape id="EndEvent_04vuhjz_di" bpmnElement="EndEvent_04vuhjz">
|
||||||
|
<dc:Bounds x="762" y="112" width="36" height="36" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge id="SequenceFlow_1ygx377_di" bpmnElement="SequenceFlow_1ygx377">
|
||||||
|
<di:waypoint x="666" y="201" />
|
||||||
|
<di:waypoint x="765" y="140" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="709" y="154" width="13" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
</bpmndi:BPMNPlane>
|
||||||
|
</bpmndi:BPMNDiagram>
|
||||||
|
</bpmn:definitions>
|
||||||
218
Additional_Notes/bpmn/generating_evaluation_input.bpmn
Normal file
218
Additional_Notes/bpmn/generating_evaluation_input.bpmn
Normal file
@@ -0,0 +1,218 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_17iqhxr" targetNamespace="http://bpmn.io/schema/bpmn" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="6.5.0-kah.1">
|
||||||
|
<bpmn:process id="Process_0lzf9jk" isExecutable="false">
|
||||||
|
<bpmn:dataObjectReference id="Flow_0dc8ucf" name="group member profiles" dataObjectRef="Flow_0majyqj" />
|
||||||
|
<bpmn:dataObject id="Flow_0majyqj" />
|
||||||
|
<bpmn:task id="Activity_0el490h" name="generate groups">
|
||||||
|
<bpmn:incoming>Flow_0wgvs43</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_1hdpd6e</bpmn:outgoing>
|
||||||
|
<bpmn:property id="Property_0fzi3ej" name="__targetRef_placeholder" />
|
||||||
|
<bpmn:dataInputAssociation id="DataInputAssociation_0rzl9pn">
|
||||||
|
<bpmn:sourceRef>Flow_0dc8ucf</bpmn:sourceRef>
|
||||||
|
<bpmn:targetRef>Property_0fzi3ej</bpmn:targetRef>
|
||||||
|
</bpmn:dataInputAssociation>
|
||||||
|
<bpmn:dataOutputAssociation id="DataOutputAssociation_1h1k7f3">
|
||||||
|
<bpmn:targetRef>DataObjectReference_0dk8ord</bpmn:targetRef>
|
||||||
|
</bpmn:dataOutputAssociation>
|
||||||
|
</bpmn:task>
|
||||||
|
<bpmn:task id="Activity_12shstq" name="generate unfinished configurations">
|
||||||
|
<bpmn:incoming>Flow_18ah258</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_08qskbu</bpmn:outgoing>
|
||||||
|
<bpmn:property id="Property_0llmkr1" name="__targetRef_placeholder" />
|
||||||
|
<bpmn:dataInputAssociation id="DataInputAssociation_1k14ujc">
|
||||||
|
<bpmn:sourceRef>DataStoreReference_0e449rj</bpmn:sourceRef>
|
||||||
|
<bpmn:targetRef>Property_0llmkr1</bpmn:targetRef>
|
||||||
|
</bpmn:dataInputAssociation>
|
||||||
|
<bpmn:dataOutputAssociation id="DataOutputAssociation_1wqdnca">
|
||||||
|
<bpmn:targetRef>DataObjectReference_0b8tret</bpmn:targetRef>
|
||||||
|
</bpmn:dataOutputAssociation>
|
||||||
|
</bpmn:task>
|
||||||
|
<bpmn:dataStoreReference id="DataStoreReference_0e449rj" name="finished configuration database" />
|
||||||
|
<bpmn:dataObjectReference id="DataObjectReference_0b8tret" name="unfinished configurations" dataObjectRef="DataObject_0j65hg4" />
|
||||||
|
<bpmn:dataObject id="DataObject_0j65hg4" />
|
||||||
|
<bpmn:dataObjectReference id="DataObjectReference_0dk8ord" name="preferences (for each group)" dataObjectRef="DataObject_1kmiddh" />
|
||||||
|
<bpmn:dataObject id="DataObject_1kmiddh" />
|
||||||
|
<bpmn:startEvent id="Event_0e7vhme">
|
||||||
|
<bpmn:outgoing>Flow_1m2t9yp</bpmn:outgoing>
|
||||||
|
</bpmn:startEvent>
|
||||||
|
<bpmn:parallelGateway id="Gateway_0dm9jmc">
|
||||||
|
<bpmn:incoming>Flow_1m2t9yp</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_0wgvs43</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>Flow_18ah258</bpmn:outgoing>
|
||||||
|
</bpmn:parallelGateway>
|
||||||
|
<bpmn:sequenceFlow id="Flow_1m2t9yp" sourceRef="Event_0e7vhme" targetRef="Gateway_0dm9jmc" />
|
||||||
|
<bpmn:task id="Activity_033bobt" name="pair up preferences and unfinished configurations">
|
||||||
|
<bpmn:incoming>Flow_1mts5v8</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_0vx10vl</bpmn:outgoing>
|
||||||
|
<bpmn:property id="Property_0e1efvb" name="__targetRef_placeholder" />
|
||||||
|
<bpmn:dataInputAssociation id="DataInputAssociation_097tm6g">
|
||||||
|
<bpmn:sourceRef>DataObjectReference_0b8tret</bpmn:sourceRef>
|
||||||
|
<bpmn:targetRef>Property_0e1efvb</bpmn:targetRef>
|
||||||
|
</bpmn:dataInputAssociation>
|
||||||
|
<bpmn:dataInputAssociation id="DataInputAssociation_16303zg">
|
||||||
|
<bpmn:sourceRef>DataObjectReference_0dk8ord</bpmn:sourceRef>
|
||||||
|
<bpmn:targetRef>Property_0e1efvb</bpmn:targetRef>
|
||||||
|
</bpmn:dataInputAssociation>
|
||||||
|
<bpmn:dataOutputAssociation id="DataOutputAssociation_0frorp4">
|
||||||
|
<bpmn:targetRef>DataObjectReference_125w85o</bpmn:targetRef>
|
||||||
|
</bpmn:dataOutputAssociation>
|
||||||
|
</bpmn:task>
|
||||||
|
<bpmn:dataObjectReference id="DataObjectReference_125w85o" name="pairs of preferences and unfinished configurations" dataObjectRef="DataObject_0pycepc" />
|
||||||
|
<bpmn:dataObject id="DataObject_0pycepc" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_0wgvs43" sourceRef="Gateway_0dm9jmc" targetRef="Activity_0el490h" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_18ah258" sourceRef="Gateway_0dm9jmc" targetRef="Activity_12shstq" />
|
||||||
|
<bpmn:endEvent id="Event_02lc079">
|
||||||
|
<bpmn:incoming>Flow_0vx10vl</bpmn:incoming>
|
||||||
|
<bpmn:property id="Property_18jxcbg" name="__targetRef_placeholder" />
|
||||||
|
<bpmn:dataInputAssociation id="DataInputAssociation_1txvcxy">
|
||||||
|
<bpmn:sourceRef>DataObjectReference_125w85o</bpmn:sourceRef>
|
||||||
|
<bpmn:targetRef>Property_18jxcbg</bpmn:targetRef>
|
||||||
|
</bpmn:dataInputAssociation>
|
||||||
|
</bpmn:endEvent>
|
||||||
|
<bpmn:sequenceFlow id="Flow_0vx10vl" sourceRef="Activity_033bobt" targetRef="Event_02lc079" />
|
||||||
|
<bpmn:parallelGateway id="Gateway_0vlb15w">
|
||||||
|
<bpmn:incoming>Flow_1hdpd6e</bpmn:incoming>
|
||||||
|
<bpmn:incoming>Flow_08qskbu</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_1mts5v8</bpmn:outgoing>
|
||||||
|
</bpmn:parallelGateway>
|
||||||
|
<bpmn:sequenceFlow id="Flow_1hdpd6e" sourceRef="Activity_0el490h" targetRef="Gateway_0vlb15w" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_08qskbu" sourceRef="Activity_12shstq" targetRef="Gateway_0vlb15w" />
|
||||||
|
<bpmn:sequenceFlow id="Flow_1mts5v8" sourceRef="Gateway_0vlb15w" targetRef="Activity_033bobt" />
|
||||||
|
</bpmn:process>
|
||||||
|
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||||
|
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_0lzf9jk">
|
||||||
|
<bpmndi:BPMNEdge id="Flow_1m2t9yp_di" bpmnElement="Flow_1m2t9yp">
|
||||||
|
<di:waypoint x="188" y="250" />
|
||||||
|
<di:waypoint x="225" y="250" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_0wgvs43_di" bpmnElement="Flow_0wgvs43">
|
||||||
|
<di:waypoint x="250" y="225" />
|
||||||
|
<di:waypoint x="250" y="200" />
|
||||||
|
<di:waypoint x="290" y="200" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_18ah258_di" bpmnElement="Flow_18ah258">
|
||||||
|
<di:waypoint x="250" y="275" />
|
||||||
|
<di:waypoint x="250" y="300" />
|
||||||
|
<di:waypoint x="290" y="300" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_0vx10vl_di" bpmnElement="Flow_0vx10vl">
|
||||||
|
<di:waypoint x="590" y="250" />
|
||||||
|
<di:waypoint x="621" y="250" />
|
||||||
|
<di:waypoint x="621" y="170" />
|
||||||
|
<di:waypoint x="652" y="170" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_1hdpd6e_di" bpmnElement="Flow_1hdpd6e">
|
||||||
|
<di:waypoint x="390" y="200" />
|
||||||
|
<di:waypoint x="430" y="200" />
|
||||||
|
<di:waypoint x="430" y="225" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_08qskbu_di" bpmnElement="Flow_08qskbu">
|
||||||
|
<di:waypoint x="390" y="300" />
|
||||||
|
<di:waypoint x="430" y="300" />
|
||||||
|
<di:waypoint x="430" y="275" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_1mts5v8_di" bpmnElement="Flow_1mts5v8">
|
||||||
|
<di:waypoint x="455" y="250" />
|
||||||
|
<di:waypoint x="490" y="250" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape id="Activity_0el490h_di" bpmnElement="Activity_0el490h">
|
||||||
|
<dc:Bounds x="290" y="160" width="100" height="80" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="299" y="233" width="81" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Activity_12shstq_di" bpmnElement="Activity_12shstq">
|
||||||
|
<dc:Bounds x="290" y="260" width="100" height="80" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="305" y="330" width="70" height="40" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Gateway_11n50k1_di" bpmnElement="Gateway_0dm9jmc">
|
||||||
|
<dc:Bounds x="225" y="225" width="50" height="50" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Event_0e7vhme_di" bpmnElement="Event_0e7vhme">
|
||||||
|
<dc:Bounds x="152" y="232" width="36" height="36" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Gateway_0vlb15w_di" bpmnElement="Gateway_0vlb15w">
|
||||||
|
<dc:Bounds x="405" y="225" width="50" height="50" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Activity_033bobt_di" bpmnElement="Activity_033bobt">
|
||||||
|
<dc:Bounds x="490" y="210" width="100" height="80" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="499" y="203" width="82" height="53" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="DataObjectReference_0dk8ord_di" bpmnElement="DataObjectReference_0dk8ord">
|
||||||
|
<dc:Bounds x="432" y="115" width="36" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="410" y="78" width="81" height="27" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Flow_0dc8ucf_di" bpmnElement="Flow_0dc8ucf">
|
||||||
|
<dc:Bounds x="202" y="115" width="36" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="185" y="77.5" width="70" height="27" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Event_02lc079_di" bpmnElement="Event_02lc079">
|
||||||
|
<dc:Bounds x="652" y="152" width="36" height="36" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="DataObjectReference_125w85o_di" bpmnElement="DataObjectReference_125w85o">
|
||||||
|
<dc:Bounds x="652" y="255" width="36" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="631" y="312" width="82" height="53" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="DataStoreReference_0e449rj_di" bpmnElement="DataStoreReference_0e449rj">
|
||||||
|
<dc:Bounds x="195" y="335" width="50" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="190" y="392" width="64" height="40" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="DataObjectReference_0b8tret_di" bpmnElement="DataObjectReference_0b8tret">
|
||||||
|
<dc:Bounds x="432" y="335" width="36" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="418" y="392" width="70" height="27" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge id="DataInputAssociation_0rzl9pn_di" bpmnElement="DataInputAssociation_0rzl9pn">
|
||||||
|
<di:waypoint x="238" y="140" />
|
||||||
|
<di:waypoint x="310" y="140" />
|
||||||
|
<di:waypoint x="310" y="160" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataOutputAssociation_1h1k7f3_di" bpmnElement="DataOutputAssociation_1h1k7f3">
|
||||||
|
<di:waypoint x="370" y="160" />
|
||||||
|
<di:waypoint x="370" y="140" />
|
||||||
|
<di:waypoint x="432" y="140" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataInputAssociation_1k14ujc_di" bpmnElement="DataInputAssociation_1k14ujc">
|
||||||
|
<di:waypoint x="245" y="360" />
|
||||||
|
<di:waypoint x="310" y="360" />
|
||||||
|
<di:waypoint x="310" y="340" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataOutputAssociation_1wqdnca_di" bpmnElement="DataOutputAssociation_1wqdnca">
|
||||||
|
<di:waypoint x="370" y="340" />
|
||||||
|
<di:waypoint x="370" y="360" />
|
||||||
|
<di:waypoint x="430" y="360" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataInputAssociation_097tm6g_di" bpmnElement="DataInputAssociation_097tm6g">
|
||||||
|
<di:waypoint x="468" y="360" />
|
||||||
|
<di:waypoint x="540" y="360" />
|
||||||
|
<di:waypoint x="540" y="290" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataInputAssociation_16303zg_di" bpmnElement="DataInputAssociation_16303zg">
|
||||||
|
<di:waypoint x="468" y="140" />
|
||||||
|
<di:waypoint x="540" y="140" />
|
||||||
|
<di:waypoint x="540" y="210" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataOutputAssociation_0frorp4_di" bpmnElement="DataOutputAssociation_0frorp4">
|
||||||
|
<di:waypoint x="590" y="280" />
|
||||||
|
<di:waypoint x="652" y="280" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="DataInputAssociation_1txvcxy_di" bpmnElement="DataInputAssociation_1txvcxy">
|
||||||
|
<di:waypoint x="670" y="255" />
|
||||||
|
<di:waypoint x="670" y="188" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
</bpmndi:BPMNPlane>
|
||||||
|
</bpmndi:BPMNDiagram>
|
||||||
|
</bpmn:definitions>
|
||||||
1
Additional_Notes/draw.io/MerlinCollabRecommender.drawio
Normal file
1
Additional_Notes/draw.io/MerlinCollabRecommender.drawio
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<mxfile host="app.diagrams.net" modified="2020-05-08T13:50:05.748Z" agent="5.0 (Windows)" etag="cPBmNkvyLjlXIU8tCLHN" version="13.0.1" type="device"><diagram id="cNiUGcpUxYu83N4z4ARh" name="Page-1">7Vpdc5s6EP01fnQGENjOY2K76cxN5t5pmqR56sgg29xg5BHyV359JZAAIYyxg3E7qftQtEgCnd2zZyXSAcPF9o7A5fwBeyjoWIa37YBRx7JM0HfYf9yyExbTtBPLjPiesGWGR/8dCaMhrCvfQ5HSkWIcUH+pGl0chsilig0SgjdqtykO1Kcu4QxphkcXBrr1xffoXFh7hpHd+Ir82Vw+2pJ3JtB9mxG8CsUDOxaYxr/k9gLKyUT/aA49vMmZwLgDhgRjmlwttkMUcHQlbsm4L3vupi9OUEjrDHh6d5+/Pm3J3fvD7e5nMHdGo3XX6ifTrGGwEoh8WwXMIQxdtjDLGKElCj0Uuj43xuugOwke8hiWookJneMZDmEwzqy3MT6Iv4HBWlmfe4yXzGgy4/+I0p0IDLiimJn0pYnVRnhFXFSxHhF8FJIZolXrFk7hK8g9QSB3h/ACUbJjHUSkd40rwzStZBBBAaT+Wo0gKAJxlo5Np/sP+2wdWRc8nUbs7XLOYhe5p2am2IVHuNPWvPlwJUhbcN1eiNeIULStg4lzLUAU3Ad90d7kiDQQtnmOQ3JcGWQKIscu39GWr62bsXDJL128WOIwXnwSgZL9A2lIWW+XRmQl/rUxNDXErBLApO3UwJNBLNkuHNZXJ2gkLDf3DnkysY3Q643VXY1sb4W6QE8y48fvraUTtPXpDz7myhGtVzEDvx5t842dbIRsyblBvPkqHhE3smFxS46LWOqhN1yYeJAFMIp8V5q/+By2eIpaGa4USymShzKcOaiZ4WoH1YeoKV9HSU1DHARwosXBjEDPZ8Cw25gwU8iIyjGUAspxnnFoxfWU4Sr7ZirM7Dibg9mN+MfsIb6HE3TQFfVZDICaCR2rd+FMaF5fOhWmDv+8uXD94+f9vxtj8rSx/pnfQuf5dvEs+VvlGDXL7Q175jeeW0TaIfgNFQhT4MU4/scnKedX846V2NasC6xzsUHSsQWtmdOFTCzlsmOeJDvGAdmppSeVlfDhktlpWlDioUwr4S7XYcl5Gu0nbh8MFOL2zF4+Pg73B0YhnpI3aLQOl6AW1I4gLQ4bUJ9iHX559bFqJLnzqk/qgM+rPpUkLu73+dNY1IDtDcN4BCmcwEgPVukzj3WIKA/nRsqnvuGoFLV1Z/Qc3Rn9s8WvXj2Vb1hCT5b6kwC7b8X6XxpZv1ztX9wL5CVDpn9TSf6ZFuxJ/6nU5Pc3qeyUS00LklF7D7JRjt4aoZjtFLIi6KlTJMsUoyoEpGcemCiBoWKi89MalOsN3111hytG1QUiWvSefRt0+QMhcHEhAn+FqHQbVOOoTi3Ac1nyd9sRHeHj32VHBCwN/xc0eWRyJdzdvMydurU5ZRt1uraBP0Hb0q9TUpIGhSnqaptjHZioXW0rPfB09Hhsb+9uduoXVFmAH1e8KVySZ5058tQO6LrnxaX97Jrh3PhxcdVbK/XMN8Ty+wLxz5KFgFDyfl4c1DioODNOlUCVjfypceE0Ofkpp8mVjjq9jOr1W9zPl3pDF4vzVVGV4fB5i6gqzua3qZIjvN4/bUNfmxm9+FfBjAa44MhCJeWCpXn22i6hwuDjVCg/vt+/09LQ/ch3LFmwHvyEdaak0+ohYjnSbe7dqn39edNOOS769/xjThv2hPoZgrjVA4hyqPQU3XYQg2NR/NODmDWzv6pLumd/vAjGvwA=</diagram></mxfile>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<mxfile host="app.diagrams.net" modified="2020-05-08T13:47:57.568Z" agent="5.0 (Windows)" etag="2vl78F43UzOqFOuVpeiD" version="13.0.1" type="device"><diagram id="cNiUGcpUxYu83N4z4ARh" name="Page-1">1Vldc5s4FP01fnSGD4Odx8R205lNZneaTdo8dWSQgQ0gj5C/8utXAgkkhIG4NtO6D0UXSaBzzz06KCN7nhweMNiET8iH8cgy/MPIXowsy7SnDv2PRY48YpqTIhLgyOexKvAcfUAeNHh0G/kwUzoShGISbdSgh9IUekSJAYzRXu22RrH61A0IoBZ49kCsR79HPgl51DWM6sZXGAWheLQl7qyA9x5gtE35A0eWvc5/xe0EiMl4/ywEPtpLIXs5sucYIVJcJYc5jBm6Ardi3JcTd8sXxzAlfQa8fHivX18O+OHj6f74Mw6dxWI3tqbFNDsQbzki37YxTQhFly7MMhZwA1Mfpl7Egvk6yFGAB32KJW8iTEIUoBTEyyp6n+MD2RsYtFX1eURoQ4MmDf4HCTlyYoAtQTSkL42vNkNb7MGW9XDyEYADSNrWzZPCViA9gSP3AFECCT7SDpzpY+PGME2rGIRhDEi0UxkEOBGDcmw53T8oouuouqD1OqNvJyWLXkhPrUJ5Cj+RzomWzacbXrS11J2EeAcxgYc+mDi3HERe+/aUt/dSIc14LJRqSIxrgkxBpGX5+0cHv5hoAuHbnTXeLib+Fo5tnczL538Hoy08ROQHG3Pj8NYbn4FdLw5y4ygaKV24NIg13/gj8kY1LG+JcRmlOLljAkgDXgyyLPJE+EvEYMun6FVJjVgKMe6qJHPWs5J6V01fCrS+jlICcxTHYKXxIMDAjygw9DbCNJSilCW/FGqGc8Cg5ddriqvoW6k9jaNqDho38h+Np+gRrGBnKvpXnG2rFedY7nAVt/vx8/HvvbF62Vt/hffAeb1PXgVLJLQ1lNVaOgmuhxLGYE5ujN5hLS019Jf5PzZJcxZ1uNv50p0EDnpflbMugHnz3uUOpmghSQR9m8XNPEvcjA5xO3//F6B3GwDn0rKVD6WKDI5Shw3b+rMGL8CpNrVnSkW7pquauK7+tlHjU/EGF3UVAtSapmI4hKsYVONaqVL3yMzC0XezD3eUsgtAwApkOiRU8Dbs0qcdMsJAu8hWMDUclQgTU4PJdXSUpldD6ban+Up9YVtWMfLe615GBGk/ycfUfY0sTEJkTEViKsU5ITKloMlerRS3ZkEbQJh6+6m98rk6+qUvE06qiVOrPdtVpyiWyUe1yJRrdkxUwNAy0fW/lexmVWNOcTzf0lJNINbYe3VLN+hHVKOl09VOQ0E1E1It/m7urszxn+PubEvD/ztcPVNR5GVweTE916adYwnPV1D7T1DQ8txQCN+sNkVfBXWsjomGVdDGIwJH5+Nw3yHmJ7btiuCfswhKLYnTAal4ehO67wlLY79JTzpf/ICl7a2VXfMbpPqeQHZgXCOEovvy5qDyoOWUpdwJ1G1DPmepnb8UP+X8pTVR52/W7nTAb5M2bsimW+SCuZfzPk96Z8DNfy0ZuADmjtgQS8wtDfPbSQPksyv5I/O0b9TQ/ZUTRmGMOg8Xr0Tu3+BwUT/P/4xDPwHoFaC6pmmnzepvhMXOXf0p1l7+Dw==</diagram></mxfile>
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user