差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
r:maintenance:condition_monitoring_with_two_dimension_state [2019/01/07 05:59] – [直積状態空間の1次元への変換] watalur:maintenance:condition_monitoring_with_two_dimension_state [2019/01/07 10:45] (現在) watalu
行 1: 行 1:
 +はじめに:この箇所のみ、状態を0から始める、として番号付けを行なっている。状態数がN+1の時、状態の番号は0からNまでとなる。
 +
 +===== 多次元の状態ベクトルを持つマルコフ決定過程 =====
 +
 +[[::markov_chain|マルコフ連鎖]]と[[::markov_decision_process|マルコフ決定過程]]は、状態が多次元の場合にも応用できる。以下では、状態が2次元の場合を例に、1次元に変換して、[[::r:markovchain|マルコフ連鎖のパッケージmarkovchain]]と[[::r:mdptoolbox|マルコフ決定過程のパッケージMDPtoolbox]]を用いる手順を説明する。〔現時点でこの原稿は、データの変換と状態遷移行列の推定については省略し、マルコフ決定過程の適用の準備を中心に述べている。〕
 +
 ==== 直積状態空間の1次元への変換 ==== ==== 直積状態空間の1次元への変換 ====
  
行 176: 行 182:
 </code> </code>
 この表示された行列の意味を少し確認すること。 この表示された行列の意味を少し確認すること。
- 
-=== 状態指定取替 P.Age === 
- 
-ある状態でのみ取替を実行し、他の状態では何もしない行動を定義しておく。 
-<code> 
-mmdp_create.age.replacement.matrix = function(S,T.ast) { 
-  R.S = max(S)-min(S) 
-  n.S = length(S) 
-  if( R.S != n.S-1 ) { 
-    stop("state space is not regular and/or does not begin with 0.") 
-  } 
-  P = diag(rep(1,n.S)) 
-  P[T.ast+1,1] = 1 
-  P[T.ast+1,T.ast+1] = 0 
-  rownames(P) = S 
-  colnames(P) = S 
-  return(P) 
-} 
-</code> 
- 
-これも状態空間が0から4の場合に実行してみておく。 
- 
-<code> 
-> mmdp_create.age.replacement.matrix(c(0:4),3) 
-  0 1 2 3 4 
-0 1 0 0 0 0 
-1 0 1 0 0 0 
-2 0 0 1 0 0 
-3 1 0 0 0 0 
-4 0 0 0 0 1 
-</code> 
- 
-この行動は、通常の状態監視保全では現れないことを注意しておく。 
  
 ==== 状態遷移行列の組み合わせ ==== ==== 状態遷移行列の組み合わせ ====
行 313: 行 286:
 あるいは2つ目の方を取り替えるのであれば あるいは2つ目の方を取り替えるのであれば
 <code> <code>
-mmdp_expand.P.2(list(mmdp_create.replacement.matrix(c(0:4),P.Dgr)))+mmdp_expand.P.2(list(mmdp_create.replacement.matrix(c(0:4)),P.Dgr))
 </code> </code>
 とする。 とする。