Příklady na šesté cvičení v počítačové učebně, SMI. PS 2007 Příklad 1.: Je sledována výrobní linka, která se může nacházet buď v provozu (stav 0) nebo v opravě (stav 1). Ve stavu 0 je možný provoz „bez kontroly agregátů“ (strategie 1) nebo „s kontrolou agregátů“ (strategie 2). Ve stavu 1 je možno rozlišit opravu „bez výměny agregátů“ (strategie 1) nebo „s výměnou agregátů“ (strategie 2). Matice přechodu a matice výnosů jsou následující: . Pro první tři kroky najděte maximální střední hodnotu celkového výnosu a optimální strategii. Řešení: Závěr: V prvním kroku je vektor optimálních strategií , ve druhém a třetím kroku . Návod na řešení v MATLABu: Zadáme matice ^1P, ^1R, ^2P, ^2R: P1=[0.5 0.5;0.2 0.8]; R1=[2 0;1 -5]; P2=[0.4 0.6;0.4 0.6]; R2=[3 1;2 -2]; Vypočteme pomocné matice Q1=P1*R1’; Q2=P2*R2’; Diagonála matice Q1 je vektor q1=diag(Q1) Diagonála matice Q2 je vektor q2=diag(Q2) Vypočteme vektor v1=max(q1,q2) (Protože první složka vektoru v1 odpovídá první složce vektoru q2, znamená to, že když je linka v provozu, je optimální strategie v 1. kroku strategie 2. Protože druhá složka vektoru v1 odpovídá druhé složce vektoru q1, znamená to, že když je linka v opravě, je optimální strategie v 1. kroku strategie 1.) Spočítáme střední hodnotu celkového výnosu ve 2. kroku pro strategii 1, je-li linka v provozu: v2_provoz_s1= q1(1)+P1(1,1)*v1(1)+P1(1,2)*v1(2) a totéž pro strategii 2: v2_provoz_s2= q2(1)+P2(1,1)*v1(1)+P2(1,2)*v1(2) Dále spočítáme střední hodnotu celkového výnosu ve 2. kroku pro strategii 1, je-li linka v opravě: v2_oprava_s1= q1(2)+P1(2,1)*v1(1)+P1(2,2)*v1(2) a totéž pro strategii 2: v2_oprava_s2= q2(2)+P2(2,1)*v1(1)+P2(2,2)*v1(2) Vypočítáme vektor v2: v2=[max(v2_provoz_s1, v2_provoz_s2); max(v2_oprava_s1, v2_oprava_s2)] (Vidíme, že první složka vektoru v2 odpovídá strategii 2 a druhá složka rovněž.) Spočítáme střední hodnotu celkového výnosu ve 3. kroku pro strategii 1, je-li linka v provozu: v3_provoz_s1= q1(1)+P1(1,1)*v2(1)+P1(1,2)*v2(2) a totéž pro strategii 2: v3_provoz_s2= q2(1)+P2(1,1)*v2(1)+P2(1,2)*v2(2) Dále spočítáme střední hodnotu celkového výnosu ve 3. kroku pro strategii 1, je-li linka v opravě: v3_oprava_s1= q1(2)+P1(2,1)*v2(1)+P1(2,2)*v2(2) a totéž pro strategii 2: v3_oprava_s2= q2(2)+P2(2,1)*v2(1)+P2(2,2)*v2(2) Vypočítáme vektor v3: v3=[max(v3_provoz_s1, v3_provoz_s2); max(v3_oprava_s1, v3_oprava_s2)] (Vidíme, že první složka vektoru v3 odpovídá strategii 2 a druhá složka rovněž.) Upozornění: Uvedené řešení je pouze jedním z možných, zajisté lze vytvořit lepší. Příklad 2.: Závod produkuje nějaký spotřební výrobek, u něhož lze rozeznat dva stavy: stav 0 – výrobek je úspěšný s dobrým odbytem a cenou, stav 1 – výrobek je neúspěšný, odbyt vázne a cena je nízká. Při 1. strategii vedení závodu neinvestuje ani do technického rozvoje ani do reklamy. Při této strategii je matice přechodu a matice výnosů . Při 2. strategii vedení závodu zajistí technický rozvoj a investuje do reklamy. Matice přechodu: , matice výnosů: . (Při 2. strategii se vyšší náklady promítnou do zisku, proto výnos ^2r[00] musí být nižší než ^1r[00], stejně tak ^2r[11] musí být nižší než ^1r[11].) Pomocí iterační metody je třeba zjistit, jakou strategii doporučit vedení závodu, aby střední hodnota celkového výnosu byla maximální. Řešení: Nejprve vypočítáme vektory ^1q = (^1q[0], ^1q[1]) a ^2q = (^2q[0], ^2q[1]). ^1q = (6, -3) ^2q = (4, -5) 1. iterace: zvolíme d[0](1) = 1, d[1](1) = 1 a vyřešíme systém rovnic (přitom položíme v[1] = 0) Řešením tohoto systému obdržíme v[0] = 10, g = 1. 2. iterace: i = 0, k = 1: k = 2: max{11, 12} = 12, tedy d[0](2) = 2 i = 1, k = 1: k = 2: max{1, 2} = 2, tedy d[1](2) = 2 Výsledek 2. iterace dává vektor strategií (2, 2). S tímto vektorem vyřešíme systém rovnic (přitom položíme v[1] = 0) Řešením tohoto systému obdržíme v[0] = 10, g = 2. 3. iterace: i = 0, k = 1: k = 2: max{11, 12} = 12, tedy d[0](3) = 2 i = 1, k = 1: k = 2: max{1, 2} = 2, tedy d[1](3) = 2 Výsledek 3. iterace dává vektor strategií (2, 2). Protože ve dvou po sobě jdoucích iteracích jsme dostali stejný vektor strategií, výpočet končí. Interpretace: Kromě počátečního kroku přinese větší zisk ta strategie, která zahrnuje náklady na technický rozvoj a reklamu výrobku. Návod na řešení v MATLABu: Použít funkci howard.m (vytvořil Pavel Mizera) – uložena v ISu v Učebních materiálech.