• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC# 強化学習)

VC#2010で強化学習のプログラムを作る際に発生するエラーについて

このQ&Aのポイント
  • VC#2010で強化学習のプログラムを実行する際に「NullReferenceExceptionはハンドルされませんでした。オブジェクト参照がオブジェクト インスタンスに設定されていません。」というエラーが発生し、プログラムが動作しない問題があります。
  • ソースコードにはQテーブルの初期化や試行回数の設定などが含まれており、行動の選択や実行、報酬の計算などが行われます。
  • 具体的なエラーの原因や修正方法について詳細を教えていただける方がいれば、お知らせください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

rndは、select_actionの終わりの方で作られるみたいだけど、 select_actionは、epsilon_greedyからしか呼ばれてないよね? epsilon_greedyで、select_actionを呼ぶ前に、 if (epsilon > rnd.Next(100)) でrndのメソッド呼んでるけど、 初めてこれが呼ばれる時は、まだrndのインスタンスが無いよ。 じゃぁどこで生成すりゃ良いの?って聞かれそうだけど、 どこで生成すれば良いのかは、仕様を知っているはずの 貴方しか分からないので、聞かれても困るからね。

prism3980
質問者

お礼

回答ありがとうございました。 丁寧な解説をいただいたおかげで、無事に解決いたしました。

その他の回答 (1)

回答No.1

エラーと一緒に、どこで発生したのか、 ソースファイル名と行番号が出力されていると思うのですが。 そこで、インスタンスが生成されていないオブジェクトを参照するような事をしているはずです 例: Foo foo; //foo = new Foo(); //インスタンスを生成していないと foo.bar(); // ここでエラー

prism3980
質問者

補足

回答ありがとうございます。 エラーが発生したのは 34行目 for(i=0;i<trial_max;i++) と 145行目 If(epsilon>rnd.Next(100)) だったのですが、この場合ですと何がエラーの原因になっているのでしょうか?

関連するQ&A