422 Programowanie dynamiczne
Tablica 9.3
Wielkość przydzielonej kwoty |
Moduł 1 |
Moduł 2 |
Moduł 3 | |||
zysk |
niezawodność |
zysk |
niezawodność |
zysk |
niezawodność | |
0 |
0 |
0,9 |
0 |
0,9 |
0 |
0.9 |
1 |
1,5 |
0,97 |
2,5 |
0,94 |
2,8 |
0,96 |
2 |
2,5 |
0,991 |
4,1 |
0,964 |
4,5 |
0,984 |
3 |
4,0 |
0,9973 |
5,5 |
0.9784 |
6.5 |
0,9936 |
4 |
5,0 |
0.9992 |
6,5 |
0.987 |
7,8 |
0,9974 |
5 |
6,2 |
0,9998 |
7,5 |
0,9922 |
9,0 |
0,999 |
6 |
7,3 |
0,9999 |
8 |
0,9953 |
10,2 |
0,9994 |
ności dla poszczególnych modułów. Należy rozdzielić posiadany zasób środka w taki sposób, by zmaksymalizować łączną korzyść z działalności systemu i zmaksymalizować jego niezawodność.
Rozpatrywany problem stanowi kontynuację i rozszerzenie przykładu 9.3, stąd zbiory stanów dopuszczalnych, decyzji dopuszczalnych oraz funkcje przejścia powtarzają się.
Przypuśćmy, że dysponujemy y, jednostkami środka i przydzielimy jt, jednostek dla modułu t. Wartość funkcji fl’(y,, x,) określa korzyść, jaką przynosi działalność modułu /. Wartość funkcji f,!)(y„ x,) określa niezawodność modułu i. Korzystając z wartości zapisanych w tablicy 9.3, możemy określić kolejne wartości funkcji fi'(y„ x,) oraz ff(yt, x,). Ponownie zauważymy, że wartości tych funkcji zależą od ilości środka przydzielonego modułowi t, natomiast nie zależą od ilości środka dostępnego na początku etapu. Mamy więc wartości funkcji f}'(y„ x,):
fi'(6, 0) = 0 Z," (6, 4) = 5 |
fi'(6, l)=l,5 /(,"(6, 5) = 6,2 |
fi'(6, 2) = 2,5 fl\6, 6) = 7,3 |
fi\6, 3) = 4 |
/T(v2, 0) = 0 fi'(y2, 4) = 6.5 |
ff(y2, 1) = 2,5 5):=7,5 |
fl\y2, 2) = 4,1 fl\yi, 6) = 8 |
3) = 5,5 |
f"(y3, 0) = o /?On, 4) = 7,8 |
fP(y„ 1) = 2,8 ń'iy* 5)=9 |
ff(y„ 2) = 4,5 fP(y* 6) = 10,2 |
f?(y>, 3) = 6,5 |
oraz wartości funkcji /(,2'(y„ x,): | |||
fV(6, 0) = 0,9 f?(6, 4) = 0,9992 |
/r'(6, 1) = 0,97 6, 5) = 0,9998 |
/'?’(6, 2) = 0,991 /<?’(6, 6) = 0,9999 |
/*f>(6, 3) = 0,9973 |
/?(.v2, 0) = 0,9 /?(.y2, 4) = 0,987 |
0 = 0,94 fi\y2, 5) = 0,9922 |
fl'{ y„ 2) = 0,964 ff(y2, 6) = 0,9953 |
f?(y2, 3) = 0,9784 |
ff()% 0) = 0,9 f?(y,. 4) = 0,9974 |
f?(y» 0=0,96 ffiyi, 5) = 0,999 |
/?(y„ 2) = 0,984 ff(y>, 6) = 0,9994 |
f?(y3, 3) = 0,9936 |
Oznaczymy przez/(1>(yi, y2, x2, y3, x3) zysk z działalności systemu, nato
miast przez /<2)(yi, x,, y2, *2, y3, ;c3) — niezawodność systemu. Otrzymujemy:
*1, .V2, -r2> >'3- x3)=ffKyt, X,)-fl\y2, X2)-f?(y3, x3).
Wieloetapowa wektorowa funkcja kryterium ma postać: F =[/"’,/(2)].
Oznaczymy przez F,(y„ x,) wektor, którego pierwsza składowa przedstawia zysk z działania modułu t, a druga — niezawodność działania tego modułu. Mamy:
F,(y„ x,) = \/a,}(y„ x,), f(?(y„ jc,)].
Dla łącznej oceny działania modułu drugiego i trzeciego określimy działanie o w następujący sposób:
F2(y2, x2)o F.(y3, x2) = \fi\y2, x2)+f3\y3, x3), fl\y2, x2) -f3\y3, *,)].
Po wykonaniu działania o pierwsza składowa otrzymanego wektora określa łączną korzyść z działania modułów drugiego i trzeciego, a druga — ich niezawodność. Innymi słowy działanie o składa się z dodawania i mnożenia, co można przedstawić następująco o = (+, •).
W taki sam sposób zdefiniowane działanie o można wykorzystać do oceny modułu pierwszego razem z łączną oceną działania modułów drugiego i trzeciego. Mamy:
F,(y„ x,)o(F2(y2, x2) o F3(y3, x,)) =
= f/‘il,0’i. *|) +/<2,(V2, X2) +/<i>(y.„ x3); ff\y„ x,) •/2’(y2, x2)-ff(y „ a:3)|.
Oczywiście, zachodzi związek:
F(y 1, x„ y2, x2, y3, x3) = F, (y„ x,) o (F2(y2, x2) o F3(y3, x3)).
Poszukujemy niezdominowanych wektorów ocen w przestrzeni kryteriałnej i odpowiadających im rozwiązań sprawnych w przestrzeni decyzyjnej3. Możemy w tym celu wykorzystać wektorową wersję zasady optymalności Bellmana.
Wektorowa zasada optymalności
Strategia sprawna ma tą własność, że niezależnie od stanu początkowego i decyzji początkowej, pozostałe decyzje, muszą stanowić ciąg decyzji sprawnych ze wzglądu na stan wynikający z pierwszej decyzji.
Rozwiązywanie zadania rozpoczniemy od ostatniego etapu. Przypuśćmy, że na początku trzeciego etapu mamy do dyspozycji y3 jednostek środka, y, 6 Y..
' For. zadanie wektorowej maksymalizacji opisane w podrozdziale 4.2.