YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Japanese subtitles

← 04-30 Value Program Solution

Get Embed Code
3 Languages

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

  1. これが私の実装です これは比較的簡単でしょう
  2. 私の世界と同じサイズの価値関数があります
  3. そしてすべて99で初期化します
  4. これは実際の価値と競合しないよう
    十分大きな値を求める必要があります
  5. ここで価値関数を何度も更新しています
  6. 回数は分かりませんが変更がある限り更新します
  7. そこで変数changeを導入し
    冒頭でTrueに設定しています
  8. 変更がある限り更新しますが
    changeをきちんとFalseに設定します
  9. Trueに戻るのは実際に変更した場合のみです
  10. ここからすべてのグリッドセルを
    決まった順序で調べます
  11. あまり効率的ではありませんが
    確実に作業を完了できます
  12. まず対象となるグリッドセルが
    ゴールかどうかをチェックします
  13. 変更があるかを確認する典型的なケースです
  14. 現在の価値が
    正しく0に設定されていれば何もしません
  15. 99など0よりも大きい場合は
    0に設定して変更を行います
  16. 従ってchangeフラグをTrueに戻します
  17. このセルがゴールではない場合
    ここが私の完全な更新機能ですが
  18. すべての動作を調べます
  19. 対応するdeltaをxとyに足すことによって
  20. 次に起こり得る状態を動作の実行時に予想します
  21. この結果x2とy2が得られるので
  22. x2とy2が妥当な状態かどうかをテストしますが
    そのためには
  23. グリッドの内側になければなりません
  24. この2つの数値が0以上かつグリッドの
    寸法よりも小さいかをチェックします
  25. またセルを移動できる動作でなければなりません
  26. そこでグリッド内の座標が
    0であることをチェックします
  27. それが0なら価値を伝播できます
  28. 新しい価値はこの将来のグリッドセル値に
    ステップごとのコストを足したもので
  29. コストは1です
  30. これがすでに持っている価値よりもよい場合
    つまり価値が小さければ
  31. この新しい価値を元のグリッドセルのxとyに代入し
  32. もちろんコストステップも足します
  33. 変更したことが分かっているので
  34. changeをTrueに設定しプロシージャを繰り返します
  35. 処理が完了して最後に残っているのは
  36. このステートメントを使って
    価値関数を出力することです
  37. この方法はあまり効率的ではありません
  38. その理由は最後から最初に向かって
  39. 価値が緩やかに伝播するからです
  40. しかし価値関数を正しく計算してくれます
  41. より効率的に行う方法は他にもあります
  42. またゴールまでの経路をすべて塞いだ場合
    面白い結果が出ます
  43. 得られた価値関数は
    ほとんどの状態変数に対して99を保持し
  44. ゴールまでの有効な経路がない場所です