OyamaZemi / MirandaFackler.notebooks

Jupyter Notebooks for Miranda and Fackler
BSD 3-Clause "New" or "Revised" License
9 stars 14 forks source link

9.8.3 update_Bellmanの関数 #30

Open akihirosasaki opened 6 years ago

akihirosasaki commented 6 years ago

objectiveの書き方がおそらく間違っているだと思いますが、objectiveが思ったように認識されず、「MethodError: no method matching optimize(::#objective#74{MarketingBoardModel,Array{Float64,1},Float64,Array{Float64,2}}, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::Optim.Fminbox)」と返ってきてしまいます。どのようにしたらよいでしょうか。お手数おかけしますが、ご確認いただけますと幸いです。 https://github.com/akihirosasaki/Markting-Board-Model/blob/master/src/Marketing%20Board%20Model.ipynb

oyamad commented 6 years ago

Fminbox() は普通の関数には使えないということだと思います.See Box minimization.

そもそも Fminbox() を使う必要ありますか.objective の引数は2次元配列のようですが,各プレイヤーは自身の x_p (スカラー) を動かすのでないですか.

akihirosasaki commented 6 years ago

https://github.com/akihirosasaki/Markting-Board-Model/blob/master/src/Marketing%20Board%20Model.ipynb

企業1の最適化行動を考えるときに、x1を変数zにしていますが、x2をどのように定めればいいかわからず止まってしまいました。

①x1とx2を自由に動かす→プレイヤー1のリターンをmaximizeする ②x2を固定してx1を自由に動かす→1のリターンをmaximize ③x1を自由に動かしてx2をランダムに出す→1のリターンをmaximize のどの考えが正しいでしょうか。 認識違いであればすみません。

oyamad commented 6 years ago

2です.

メインのループをよく理解してください. (C に加えて) まず初期の x1, x2 を決める. 第 i 回目の iteration では

@keiikegami 時間があったら見てあげて.