Japanese subtitles

← 04-34 Left Turn Policy Solution

Get Embed Code
3 Languages

Showing Revision 1 created 10/29/2014 by Udacity.

  1. 私の解答をお見せしましょう
  2. 初期化した価値関数を持ち
    たくさんの999を保持しています
  3. policyは三次元の場合と同じ関数です
  4. それからpolicy2Dという関数があり
    あとでこれを出力します
  5. これは二次元の場合と同じです
  6. 下にスクロールすると更新機能はこれまでの
    ダイナミック・プログラミングの場合と同じです
  7. 変更がある間 x、yと
    4つのすべての方向について調べ
  8. ここからさらに深いループに入ります
  9. ゴール位置が見つかったら価値を更新し
  10. 更新したらchangeをTrueに設定します
  11. そしてそれをゴール位置としてマークします
  12. それ以外の場合グリッドセルが移動可能なら
    3種類の動作を調べてみましょう
  13. ここからはややこしい部分ですが
    うまく動作してくれます
  14. 3種類の動作にi番目の動作というタグをつけて
  15. 該当する方向の変更を
    私たちの方向に足して4の剰余を求めます
  16. これはサイクリックバッファなので
    1を引くことになるかもしれません
  17. 同じ状態を維持する場合
    方向に1を足すことになります
  18. 次に該当する新しい動作モデルをxとyに適用し
    x2とy2を取得します
  19. ここが最初に操舵してから走行させる
    私たちの車のモデルです
  20. さらに下にスクロールします
  21. グリッド内にあって かつ障害物がない
    有効なグリッドセルに到達した場合
  22. 先ほどのように値に
    新しいグリッドセルの値と
  23. 動作のコストを価値に足します
  24. これは均一ではなく
    選択する動作によって異なります
  25. これによって既存の価値は改善されます
  26. この価値を新しい価値に設定し
    changeをTrueとしてマークします
  27. また前回のように動作の名前を記録します
  28. これは実質的には二次元の世界で
  29. ダイナミック・プログラミングを行った時と
    同じコードです
  30. このコードにより価値関数と
    ポリシーの動作が導かれます
  31. 私は三次元ではなく二次元の表を出力しました
  32. 二次元の表を得るには初期状態に
    気をつける必要があります
  33. そうしないと
    実際に定義されていない場合があります
  34. x、y、方向の初期状態を設定しましょう
  35. あとはポリシーを実行するだけです
  36. 最初の状態でポリシーの形式の三次元の表を
  37. 二次元の表にコピーしています ここの#記号です
  38. ゴール状態にまだ到達していない間は
  39. ポリシーの表の*をチェックすることで分かります
  40. ポリシーの表には#、R、Lがありますが
    その他は前回と同様です
  41. #の場合は方向をそのまま保持します
  42. Rの場合は右折、Lの場合は左折をします
  43. 前進動作を適用して動作のあとに対応するように
  44. 新しいx、yの座標を更新し
  45. orientationがo2になるように更新します
  46. 最後にポリシーの三次元の記号を
    二次元の配列に直接コピーします
  47. これが最終的に出力する配列です
  48. ここで重要な点は三次元の完全なポリシーから
  49. ポリシーを実行する必要があった二次元の配列に
    移行していることです
  50. 皆さんもこの出力を得るために
    それを行ったでしょう
  51. 難しい部分ですがご自身で解いてほしかったのです
  52. しかしそれ以外は今までの
    ダイナミック・プログラミングのループと同じです