差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
r:maintenance:condition_monitoring [2019/12/16 16:53] – [費用関数の設定] watalu | r:maintenance:condition_monitoring [2019/12/16 16:57] (現在) – [費用関数の設定] watalu | ||
---|---|---|---|
行 578: | 行 578: | ||
* 行動と状態ごとの費用行列R | * 行動と状態ごとの費用行列R | ||
- | Rは手作業での設定になるので、ついでにPもこのページの上の方で用いた状態が3種類、行動が3種類ある場合の例を設定してみる。この遷移行列は3×3×3の3次元配列となる。 | + | Rは手作業での設定になる。 |
- | + | ||
- | < | + | |
- | n.status = 3 | + | |
- | n.action = 3 | + | |
- | P = array(dim=c(n.status, | + | |
- | </ | + | |
- | + | ||
- | 配列Pに行動ごとの遷移行列を代入していく。 | + | |
- | + | ||
- | < | + | |
- | P[,,1] = matrix(c( | + | |
- | 9/ | + | |
- | 0, | + | |
- | 0, | + | |
- | P[,,2] = matrix(c( | + | |
- | 1,0,0, | + | |
- | 1,0,0, | + | |
- | 0, | + | |
- | P[,,3] = matrix(c( | + | |
- | 1,0,0, | + | |
- | 1,0,0, | + | |
- | 1, | + | |
- | </ | + | |
- | + | ||
- | 上の方に記したコードを実行してあれば、次のように代入してもいい。 | + | |
- | + | ||
- | < | + | |
- | P[,,1] = P.Dgr | + | |
- | P[,,2] = P.Rpr | + | |
- | P[,,3] = P.Rpl | + | |
- | </ | + | |
- | + | ||
- | できあがった配列Pの中身を確認してみる。 | + | |
- | + | ||
- | < | + | |
- | P | + | |
- | </ | + | |
- | + | ||
- | 次に費用関数を定義する。 | + | |
- | + | ||
- | < | + | |
- | R = matrix(c( | + | |
- | 0,10,150, | + | |
- | 0,50,150, | + | |
- | 2000, | + | |
- | colnames(R) = c(" | + | |
- | rownames(R) = c(1:3) | + | |
- | R = -R | + | |
- | </ | + | |
- | + | ||
- | これも先ほどのコードを実行してあれば、次のようにしてもいい。 | + | |
- | < | + | |
- | C.Dgr = c(0, | + | |
- | C.Rpr = c(10, | + | |
- | C.Rpl = c(150, | + | |
- | Cost = cbind(C.Dgr, | + | |
- | colnames(Cost) = c(" | + | |
- | rownames(Cost) = c(" | + | |
- | R = -Cost | + | |
- | </ | + | |
- | + | ||
- | できあがった配列Rの中身を確認してみる。 | + | |
- | + | ||
- | < | + | |
- | R | + | |
- | </ | + | |
===== 遷移行列の配列の設定 ===== | ===== 遷移行列の配列の設定 ===== | ||
行 658: | 行 592: | ||
P[,,3] = P.Rpl | P[,,3] = P.Rpl | ||
</ | </ | ||
+ | |||
+ | P.Dgrを正しく推定できていれば、Pはn.status×n.status×n.actionの3次元配列になる。 | ||
===== 費用関数の設定 ===== | ===== 費用関数の設定 ===== | ||
- | 同じく、MDPtoolboxパッケージのために費用関数を設定する。 | + | 同じく、MDPtoolboxパッケージのために費用関数を設定する。ここは、以下のコードをそのまま貼るのではなく、数字の数を状態数に合わせて適宜変更する必要がある。行動の数n.actionは3としている。また行動の順序は、上の遷移行列の配列と同じにする必要がある。 |
- | 行動の順序は、上の遷移行列の配列と同じにする必要がある。 | + | |
< | < |