NHK高知「とさ金」に出演:「高知競馬 快進撃の舞台裏」

「高知競馬 快進撃の舞台裏」という特集のコメンテーターとして、NHK高知の制作番組「とさ金」に出演します。「競馬の経済学」を読んだディレクターから声をかけて頂きました。放送は今週の金曜6月21日19:30からの予定。高知県内だけの番組ですが、NHKプラスでは見られるようです。よろしければご覧ください!

収録の様子

追伸:
関連記事がこちらにあります。

追伸2:
好評につき、全国放送(7月13日(土)午前5:10-5:40)、国際放送(7月20日(土)午前5:15-5:45)でも放映されるようです。

備忘録:太平洋にも日本海にも流れる川と湖はある!

中央分水嶺によって、太平洋と日本海に流れる水は分かれるのだけど、その分水嶺付近に川や湖があれば、その川や湖は両方に流れているはずだ。登山をしなくても、巡れるような川や湖を調べてみた。

(1)分水嶺に川があると、その水は両方に流れる。

(2)人口的に疎水や用水が作られ、つながる場合もある

  • 猪苗代湖
    • 猪苗代湖の水は、もともとは日本海に流れるのだが、安積疎水によって、太平洋にも流れる
    • 安積疎水

備忘録:chromedriverが動かず、webdriver_managerからselenium managerへ乗り換え

背景

python+seleniumでchromeのバージョンアップに自動的に対応するために、webdriver managerを使っていたが、chromedriverのダウンロード環境が変わり、 webdriver manager がうまく動作しなくなった。したがって手動で chromedriver を更新しなければならなくなった。

しかし、seleniumの新しいバージョンにはselenium managerというのがデフォルトでついているようで、これを使うと webdriver_manager を使わなくても済む。これを使って上手くいくようになった。

対処した内容

(1)seleniumのアップグレード

pip install --upgrade selenium

バージョンが4.10.0以上になってくれればOK

(2)念のためwebdriver-managerをアンインストール

pip uninstall webdriver-manager

(3)コードからwebdriver_managerモジュールのimportを削除

from webdriver_manager.chrome import ChromeDriverManager

を削除

コメントアウトした

(4)ChromeDriverManagerを使っていた部分を変更

driver = webdriver.Chrome(ChromeDriverManager().install())

driver = webdriver.Chrome()

に変更。

これで動くようになったようだ、とりあえず。

参考にした情報

一歩ずつ学ぶゲーム理論

裳華房より2021年に出版した拙著「一歩ずつ学ぶゲーム理論」は初めて学ぶ者も数式でゲーム理論を理解できることを目指した教科書です.

モンティ・ホール問題の直感的説明は間違ってることが多い

※本記事に対してメールを頂き、それを受けて少し書き直しました。ありがとうございました。(2024/03/16)
※修正した記事が間違ってましたので、直しました。ご指摘頂いた方、ありがとうございました(2024.03.22)

モンティホール問題とは?

まずモンティ・ホール問題について説明しておきます。

司会者(モンティ・ホールさん)と回答者がいて、回答者の前にはA、B、Cの3つのドアがあります。1つのドアは当たりで豪華な商品があり、回答者はそのドアを当てます。2つのドアはハズレです。回答者が「当たり」のドアを当てる、というものです。

まず、回答者がが当たりと思うドアを1つ選びます。ここではAを選んだとしましょう。司会者は、当たりのドアを知っていて、回答者が選ばなかったドアのうち、1つのドアがハズレであることを示します。ここではBのドアがハズレだと示されたとしましょう。

ここで司会者が回答者に言います。「あなたには、もう一度ドアを選び直すチャンスがあります。そのままにしますか?それとも変えますか?(stick or switch?)」
今回の場合、Aのまま留まるか?Cに変えるか?ということになります。

さて、回答者はドアを変更すべきでしょうか?それとも留まるべき?

この問題、AとCの2枚のドアのうち1つが当たりなので、変えても留まっても当たる確率は半々(1/2)のように思えます。しかしこの問題の答は「変えたほうが良い」です。留まる(Aのまま)だと当たる確率は1/3、変えると(Cに変更)当たる確率は2/3になります。

なぜ、そうなるかについては、ベイズの定理を使って、数々のネットの情報や本で説明されています。拙著「ゼミナールゲーム理論入門」でも「一歩ずつ学ぶ ゲーム理論」でも、もちろん解説されています。

「直観的説明」には注意が必要

「お、じゃあネットで検索してみようか!」と思ったあなた!ちょっと待ってください。この問題に対して「直感的に説明すると...」とした説明には、間違っていることが結構あります。本稿の意図は「直感的な説明は間違っていることが多いので、ベイズの定理で理解しましょう」ということなんです。

特に「確率は変わらない」的な説明は、間違いです。例えば「最初に選んだドアが当たる確率は1/3、それ以外が当たる確率は2/3だから、ハズレのドアを開けた後も、最初に選んだドアの当たる確率は1/3で、それ以外が当たる確率は2/3」と言う説明は誤りです。正しい説明は「情報によって確率は変わる」です。

最初に各ドアの当たる確率が等しいと、この「確率は変わらない」という説明も(たまたま)正しいように見えるのですが、最初に当たりやすいドアと、当たりにくいドアがあると考えれば、この説明が正しくないことが分かります。

A,B,Cのドアがあり、どれか1つが当たりだとします。ただし、Aのドアは当たりやすく当たる確率は0.5、Bは当たりにくく当たる確率は0.2、Cは0.3であるとします。

回答者は最初に(当たりやすそうな)Aのドアを選んだとしましょう。

ここで司会者(解答を知っている)は、選んでないドアからハズレのドアを1つ開けます。Bのドアが当たりならCが開き、Cのドアが当たりならBが開きますね。さて、Aのドアが当たりの場合はBとCのどちらを開けても良いのですが、ここで司会者がBとCのドアを開ける確率は同じ1/2であるとします(ここを変えると答も変わります)。

さて、司会者がBのドアを開けて、ハズレであることを示したとします。回答者はドアを変えたほうが良いんでしょうか?

「最初にAのドアが当たる確率は0.5、それ以外は当たる確率は0.5、この確率は変わらない」という説明だとフィフティ・フィフティで、変えても変えなくとも確率は1/2のような気がします。

しかし、この場合はAのドアのままだと当たる確率は5/11、Cに変えると当たる確率は6/11です。この場合は、やはりドアを変えたほうが良いです。

ちなみに司会者がCのドアを開けてハズレであることを示すと、 Aのドアのままだと当たる確率は5/9、Bに変えると当たる確率は4/9です。この場合は、ドアを変えない方が良いのです。つまり、この場合は「司会者がBのドアを開けたときはCに変えたほうが良く、Cのドアを開けたときはAのドアのままが良い」です。

モンティ・ホール問題の本質は、ドアを開けたことが情報になっていて、開ける前の事前確率と開けた後の事後確率が変化している、ということにあります。なので「元の確率と変わらないから」 的な説明は間違っていることが多いのです。

A,B,Cのドアが当たる確率が、それぞれ0.54、0.13、0.33として同じ状況だとしましょう。司会者がドアを開ける前は「Aのドアが当たる確率は0.54、それ以外は当たる確率は0.46」です。司会者がBのドアを開けたとき、回答者はドアを変えたほうが良いのでしょうか?確率は変わらない」のならば「Aのドアが当たる確率は0.54」なので、変えないほうが良いですね。

しかしこの場合も「Aのドアのままだと当たる確率は0.45、Cに変えると当たる確率は0.55」になります。司会者がドアを開ける前は、Aを選んだ方が、それ以外のドアが当たる確率より高いにも関わらずです!

計算方法は、ベイズの定理を勉強してください。このように、この問題は「直感的な」理解はなかなか難しいのです。ネットの説明でも「情報によって確率は変わる」という回答を読むと良いでしょう。

なぜ間違いを犯すのかという研究がある

認知科学や認知心理学では、なぜ人間はこの問題に対して正しい答が出せないのか、どのような点が間違いを引き起こすのかについて研究されています(いました)。興味にある方は、以下の本を参考にしてください。

市川 伸一 (著)、日本認知科学会 (編集)、確率の理解を探る―3囚人問題とその周辺 (認知科学モノグラフ 10) (1998)/5/1

ちなみに、若い頃、先輩の金融工学の大家KJ先生(川喜田二郎氏ではないよ)に「認知科学にこんな研究があります」と話したことがあります。そのときKJ先生曰く:

渡辺君。こんな研究は意味ないよ。
皆んながベイズの定理を正しく理解すれば良いだけだ!

…でした。直感的な理解ではなく、ベイズの定理で理解しましょう。

ゲーム理論で考えると?

さて、この問題では「回答者が差したドアが当たりの場合は、司会者は残りの2つのドアを等しい確率で開ける」とされていました。これによって、回答者は、指さしたカーテンの中で、まだ開いていないドアに変えたほうが当たる確率が高い、となっています。

でも「司会者ができるだけ回答者に賞品を当てて欲しくない」と考えると、ドアをどのように開けると良いのでしょうか?これはゲーム理論になりますね。ゲーム理論のテキストの演習問題なんかでは、見かけるものです(私の記憶だと、たとえば「Scott Bierman and Luis Fernandez, “Game Theory with Economic Applications,” Addison Wesley, (1997)」などに載っていた気がします。)。

答はどうなるでしょうか?ベイズの定理とゲーム理論を勉強した皆さんなら簡単ですね!

2023年第1回O Rセミナー 『エンジニアのためのゲーム理論-ビジネスへの応用とマーケットデザイン』

5月26日(金)に、私がオーガナイザーを務めさせて頂き、2023年第1回O Rセミナー 『エンジニアのためのゲーム理論-ビジネスへの応用とマーケットデザイン』をオンラインで開催致しました。

今回は(あの)東京大学マーケットデザインセンター長の小島武仁先生、慶応大学の松林伸夫先生と私でセミナーを行いました。


プログラム等の詳細はここにあります。

当日は50名余りの方にご参加いただきました。ありがとうございました。

朝日新聞「グリコじゃんけん」にコメント

朝日新聞の記事「グリコじゃんけん、いつからあった?」で、グリコじゃんけんの必勝法について、コメントしました。

本サイトのグリコ・チョコレート・パイナップルゲームのゲーム理論による解をもとに、記者さんから取材を受けたものです。

記事には、以下のデジタル版(2022年9月1日版)もありますが、有料会員しか読めないようです(^^;)
グリコじゃんけん、いつからあった?(朝日新聞)

「高校生のためのゲーム理論入門」の動画公開です

昨年(2021年)の10月に東京都立大学のオープンユニバーシティで講義した「高校生のためのゲーム理論入門」(高校生のための大学授業体験シリーズ)の動画が、東京都立大学のホームページ内でOCWとして公開されることになりました!

2021年度東京都立大学オープンユニバーシティ・高校生のための大学授業体験シリーズ 高校生のためのゲーム理論入門

他のゲーム理論講義動画とともにどうぞ

筑波大附属高校で「総合的な探究の時間」のお手伝い

筑波大学附属高校で「総合的な探究の時間」のお手伝いをしてきました。高校1年生の「数学的モデリング」をテーマにしたグループで、ゲーム理論の講演をしたり、彼らの研究に助言を与えたりしました。

講演の様子

生徒たちは、ゲーム理論を中心に、自分の興味がある研究テーマに取り組みます。微分も確率もほとんど習っていない高校1年生とは思えないほどの高度な研究に取り組んでいました。テーマの例を挙げると

  • 特殊ルール(手札のシャッフル)がある3人ババ抜きの戦略
  • 3人人狼の戦略とシミュレーション
  • ゲーム理論の観点からの交通渋滞の回避
  • LINEによる異性とのやり取りの戦略

です。また、特に高校生にとってはゲーム理論によるスポーツの戦略に興味があるようで

  • バスケットボールの戦略(3Pシュートと2Pシュートのどちらを打つべきか)
  • 野球の戦略(高校野球における初級ストライクを打つべきかどうか)
  • バレーボールの戦略(アタックはストレートかクロスか)
  • サッカーの戦略(ドリブルか、パスか)

などのテーマが多く見受けられました。

野球の戦略

スポーツの戦略と混合戦略については、いくつかの研究はあるものの、それを詳しく解説したものはありません。改めて、そのような解説を書いてみようかと思いました。

多くの学生のテーマに向き合い、短い時間でアドバイスを与える担当の山田先生は、本当に凄いなと思いました。学生たちの探求は、まだまだ続くようです。

プログラム更新履歴

更新履歴:ナッシュ均衡を計算するアプリ

(comp_nash1.html, input_bimatrix.py, comp_nash1.py)

  • ver.1 2022/01/03 公開
  • ver.1.1 2022/01/04 例外処理を追加:戦略数が2以上でないとエラーになる。利得行列に空欄があるとエラーになる(htmlのinputタグのrequired属性を設定)。途中で方程式が解けないとエラーになる(正則でないとか、退化しているとかのメッセージを出す。)。利得行列の初期値に0を入れておく(htmlのinputタグのvalueに0を設定)。
  • ver.1.2. 2022/01/06 絶対値が極端に大きい(1e10以上)数値や無限大(inf)の利得は受け付けない。利得行列にNaNがあるときに受け付けない例外処理。
  • ver.1.3. 2022/01/06 正則ではない利得行列への対応
  • ver.1.4. 2022/01/07 戦略数が10以上の場合のバグへの対応:行列Aのi行j列をaijという文字列でデータを受け取っていたが、a23だと2行3列となるが、a111だと1行11列なのか、11行1列なのk分からない、という問題が発生。aizjとzで区切ることにした。
  • ver.1.5 2022/01/13 2X2は受け付けないことにしました(試験や宿題で使われるのを防ぐため)。学生が宿題や試験に使うことを防ぐため2×2の行列は計算できなくなりました(2022.01.13)。 この本や この本や このページで勉強して下さい。また、入口となるページをhtmlで書いていましたが、すべてpyファイルにし、pythonで出力することにしました。最初に入り口としてリンクされたページ。http://nabenavi.net/ap/comp_nash1はなくなりましたが、twitter等で拡散していましたので、.htaccessにてリダイレクトするようにしました。
  • ver.1.6 2022/06/09 要請があり、宿題だと受け付けない処理をつけました。