ばんえい競馬の数理モデルを作ろうとしたら現実の難しさに挫折した話

## はじめに

この記事は[TakkuMattsuさん](https://x.com/NorsteinBekkler)主催の[競馬 Advent Calendar 2024](https://adventar.org/calendars/10186) 22日目の記事です.
昨日[^not_yesterday]の記事は[こはるなぎ まなかさん](https://x.com/KoharunagiManak)の[【2024→2025】競馬番組一般事項変更概要](https://vtuberstart.com/2025keibabangumiippanjikou/)でした. クリノメガミエースルールとか初めて知った...

[昨年](https://13thmiko.notion.site/G1-2-906f32113b944e97bb25a598de9644f1), [一昨年](https://note.com/sanyoseaside/n/n69f92c7df9a1)と, レーティングや競争格付けなどをテーマに書いていたのですが[^media], 今年はすこし趣向を変え, 物理学などの数理の観点から競馬を見てみ**ようとして挫折して投げ出した話をします**.

[^media]:なんで毎年掲載メディアが変わってるんですかね...?
昨年はnoteの機能に不満があって$\LaTeX{}$で出したPDFをnotion上のページで公開したのですが, 今年は"やっぱ学術系ならQiitaかな"と思ったのでまた変えました. 特に毎年掲載メディアを変えることは意識してないです.
[^not_yesterday]: 正確にはこの記事の公開は12/23なので一昨日ですね. 誠に申し訳ございませんでした.

## 注意

:::note alert
- この記事は, **挫折したことをとにかく長々書く記事です**. まともに読まれることを想定しておらず, 結論等も特にありません.
- よほどの覚悟がない限り, 次節[TL;DR](#tldr)[^what_tldr]を読んでブラウザバックすることをおすすめします.
- この記事の筆者は, 物書きの専門家でなければ物理学などの専門家ではなく, またばんえい競馬に携わるホースマンでもありません. **間違った知識や冗長な文章が含まれる場合があります.**
:::

[^what_tldr]: Too Long, Didn't Readの略. "そんな長文は読まん"という意味の非難から始まり, 転じて長文に対する要約を意味する場合もあるが, 原義がゆえに使うのは憚られがちである模様.
少なくともこの記事に対しては全く問題なく使用できるだろう. なぜならこんな長文誰も読まないからである.

## TL;DR

- 摩擦こわい
- 筋肉こわい
- 非線形システムこわい
- 色々やったけど無理でした
- 明日の記事は[大欅まいる🌳&鳥神🐦🐎さん](https://x.com/ohkeyakimile55)です

## ばんえい競馬とは

ばんえい競馬について, 一旦次の映像[^love_kingfesta]をご覧いただければだいたい分かるとは思いますが...

[^love_kingfesta]: このレース, タイトル演出からキングフェスタの勝ち方まで色々好きすぎる

<iframe width="560" height="315" src="https://www.youtube.com/embed/GP8dSwXawL0?si=cXgQmx3UHz0u1mPh&amp;start=52" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

一応言葉でも説明しておきます.

ばんえい競馬は競馬の一種で, 日本は帯広市でほぼ毎週開催されています.
"ばんえい"は漢字で"輓曳"と書きます. 両方とも"引っ張る"みたいな意味の漢字ですね.
その名の通り, **馬がそりを引いて, その速さを競う**競技がばんえい競馬です.

そりを引くということで, 普通の競馬とは結構違う部分があります.

- 馬が重いです. 大体サラブレッドの2倍ぐらい
- そりも重いです. 軽くても500kgぐらい, 重い時は1000kgも
- スタート/ゴールはそり基準です. そりをゴール線の向こうまで運びきらないと終わりません
- 常に走り(歩き)続けると体力が持たないので, よく止まって調整します

(下は普通の競馬の例)

<iframe width="560" height="315" src="https://www.youtube.com/embed/ZytVpoA3huQ?si=yvqRRIKBuxdCEhe8&amp;start=5" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

## ばんえい競馬の予想

さて, 競馬といえば(基本的には)馬券がつきものであり[^saudi], どの馬が力を見せるか, それを予想することは一般的な楽しみ方です[^saudi2].

ばんえい競馬を予想するにあたって入れておくと良い知識を[ばんえい猫のアルルさん](https://x.com/banneko_aruru)さんが[記事にしていらっしゃる](https://banei-neko.hatenablog.jp/entry/2021/07/25/083014)ので, 少し引用させていただきます.

- コースが乾いていたり, 逆に水が浮くくらい悪化していたらパワーを貯めて最後に逆転する戦略が有利
- 中間の適度に湿っている状態は, 早く前に進む戦略が有利

レース中, 基本的には何回か止まって体力の消耗を防ぐ必要があるのですが, それをどこで行うか, という戦略ですね.

こういうのを見ると物理的に理由を考えてみたくなるという謎の性がはたらいたため, 次の節から考察していきます.

[^saudi]: 例外はイスラム圏ぐらいでしょうか, 宗教で禁止されているらしいです
[^saudi2]: ちなみにイスラム圏でも賭博ではない予想行為は普通に行われています. 景品とかもあるんだとか

## コースの摩擦について

さて, コースとそりの間には摩擦があります[^why_friction].
数理的にばんえい競走を考えるなら摩擦はちゃんと考えないといけませんから, まずはこれについて考えていきましょう.

### 一般的な摩擦のモデル

一般的な摩擦のモデルは以下のような感じです.

---

- 止まっているときの摩擦(静止摩擦力)と動いているときの摩擦(動摩擦力)がある.
- 静止摩擦力(の限界)より動摩擦力のほうが小さい.
- 静止摩擦力も動摩擦力も, 重さに比例する.
- 接触面積や(動摩擦力について)動く速度は摩擦力と関係ない.

1つ目と2つ目で, 静止しているときのほうが摩擦が大きくなるということを言っていますね. そりを引くときでいえば, 止まっているところから動き出させるのに大きな力が必要ですが, **一度動き出せばそこまで強い力を入れなくても動かせる**, という感じです.

3つ目, 重さという表現はちょっと正しくないんですが...
例えばばんえい競馬の最重量そりは$1000[\rm{kg}]$, 最軽量そりは$500[\rm{kg}]$の質量があります[^banei_weight]. このとき, 摩擦力も2倍の差があるということです.
さらに, 最重量そりを斜め上方向に引き上げるように運べば, コースにかかるそりの重さが少し下がります. 例えばそれで$900[\rm{kg}]$分の重さになったなら, 摩擦力も元のそりと比べて0.9倍になるのです.

最後, 4つ目はそりを大きくしても小さくしても, 超速で走ってもゆっくり歩いても(止まらなければ), 摩擦力は変わらないという, ただそれだけです.

---

以上, 摩擦の一般モデルでした. 高校物理をちゃんとやってた人なら飛ばしてよかったかもしれませんね.

**なのですが...調べてみると様子が違うようで...?**

[^why_friction]: じゃなかったらちょっと力いれるだけで滑っていっちゃいますね. 氷の上滑るときみたいな
[^banei_weight]: アローワンス, 騎手の質量は省略.

### 砂の摩擦の論文を調べた

というわけで砂とそりの間の摩擦係数[^what_coefficient]を知りたいということで, 研究論文を調べてある一本の論文を見つけました. 琉球大学農学部の論文だそうです[^Setouchi_2001]. オープンアクセス助かる.

:::note info
大まかな内容としては多分"いろんな砂とステンレスの間の摩擦係数調べたよ～水に濡らしたりもしてみたよ～"みたいな感じだと思います.
:::

で結果なんですが, どうやら摩擦係数は**一定じゃない**らしいです.

まず荒い粒子多めの石灰質砂Aの場合, 

- 砂が乾いているとき, **湿度が高いほど摩擦が大きい**
- 砂が湿っているとき, 摩擦係数は一定だが**乾いているときより大きい**

**直感に反するポイントが多すぎる.**

まず湿度が関係あるらしいです. **これからのばんえいは湿度も開示する時代...?**
そして砂は濡れてるほうが**摩擦が強いらしいです.** 普通逆じゃないの...?

一方細かい粒子多めの"国頭マージ"[^kunigami]の場合, **こちらは濡れている方が普通に摩擦が弱いらしい**です(湿度の話は書いてなかった...)

[^Setouchi_2001]: 瀬戸内秀規, and 新城俊也. "石灰質砂と鋼材の摩擦特性に及ぼす水分の影響." (2001): 103-111.
[^what_coefficient]: 摩擦力と重さの比例係数. 摩擦力が重さの何杯かということ.
[^kunigami]: "くにがみマージ"と読むらしい. 沖縄の国頭村(くにがみそん)と関係があるんでしょうか?

### 気づく

さて, 摩擦のことを調べるために論文とか色々調べていたのですが, ここであることに気づきます.

**こんなに詳しい特性を調べる必要はあったんだろうか?[^reason]**

今回の目的は完璧なシミュレーションではなくあくまでばんえい競馬の競争特性について理解を促進すること...
ならば適当にそれっぽく動くモデルを考えればよかったのでは...?

突っ込みたくなる人もいるかも知れませんが, 一応コンピューターシミュレーションをちょっとかじった私の意見として, **ちょっと理解を深めるぐらいならそんな正確なモデルはいらないはずです(多分).**

というわけで論文まで持ち出したのですが結局摩擦は一般的なモデル, それも特性値も特に決めずにやっていきます.

:::note info
定性的にわかればそれでええんや...
:::

[^reason]: 強いて言うなら**乾いてる砂は湿度で摩擦が違うことがある**というのが結構いい発見だった

## 馬の体力について

さて, もう一つ欠かせないモデルが馬の体力です.

多分高校物理をやった人でも**動物の体力のモデル**は思いつかないのではないかなと思います.

というわけで砂同様論文を調べてきました.

人の体力というか, 筋力の疲労と回復の論文ですが, 豊田中央研究所の論文が見つかりました[^Hayamizu_2006].

[^Hayamizu_2006]: 速水則行, 田中英一, and 山本創太. "筋の疲労・回復に対する数理モデルの定式化." 日本機械学会論文集 A 編 72.713 (2006): 100-105.

### 筋肉のモデル

この論文ではまず, 筋肉はちっちゃい筋肉, もとい**運動単位**の集合としています. 運動単位一つ一つの力を束ねると, 全体の筋肉が出す筋力になります.
運動単位の状態は以下の2つの軸に分けて分類しています.

- 脳からの刺激に反応して活性化しているか
- 疲労しているか

脳からの刺激は**アクセルのようなものですね**.
目一杯踏めば全部の運動単位をフル活用して最大の筋力を出そうとしますし, 軽く踏めば一部の運動単位で軽く力を出します.

ですがアクセルで動かすエンジンと違うのは**疲労すること**です. 疲労している運動単位は活性化しても力を出せなくなります.

このモデルでは, 脳の刺激は脳が随意的に操作できる, 疲労については, 力を出していると確率的に疲れ, 力を出していないと確率的に回復する, というようになっています.

このモデルに基づけば, 脳が出す刺激の信号の量をうまく変えることによって, 力を出したり休憩したりする動作が再現できるということですね[^apologize].

[^apologize]: 説明が下手でいいですね(?). 当該論文はオープンアクセスなのでぜひ読んでみてください. Fig.2は特にわかりやすいです.

### モデルを使ってそりを引く

さて, この筋肉モデルと上に上げた摩擦のモデルを使って実際に(?)そりを引いてみましょう.

---

- 脳が筋肉に刺激を入れ始める. 運動単位が徐々に活性化し, 筋力が高まる.
- 筋力がそりとコースの(最大)静止摩擦力を超えて, そりが動き始める.
- そりが動いたため, そりとコースの間の摩擦が動摩擦になって, 摩擦力が下がる.
- 必要な筋力が減ったため, 運動刺激を下げる.
- 徐々に運動単位が疲労していき, 同じ運動刺激で出せる筋力が下がる.
- 筋力を維持するために運動刺激を更に高める.
- 運動刺激をこれ以上高められなくなる.
- 疲労により筋力が下がる.
- そりを引ける筋力を維持できなくなり, 停止する.
- 運動刺激を低めて, 疲労から回復させる.

---

この流れは運動刺激を限界まで与える方法ですが, 実際にはそれより先に, 騎手の方が馬を止めることも多いでしょう.

## 湿ったコースと乾いたコースの違いを考える

さて, コースの水分が変わって摩擦が変化すると, 上の手順のうちどこが変わってくるでしょうか.

- 脳が筋肉に刺激を入れ始める. 運動単位が徐々に活性化し, 筋力が高まる.
- 筋力がそりとコースの(最大)静止摩擦力を超えて, そりが動き始める.
    - **乾いたコースほど, 動き始めるまでに必要な筋力が大きい.**
- そりが動いたため, そりとコースの間の摩擦が動摩擦になって, 摩擦力が下がる.
    - **乾いたコースほど, 動いているときの摩擦も大きい.**
- 必要な筋力が減ったため, 運動刺激を下げる.
    - **乾いたコースほど, 必要な筋力が多く, あまり運動刺激を下げられない.**
- 徐々に運動単位が疲労していき, 同じ運動刺激で出せる筋力が下がる.
    - **乾いたコースほど, 活性化している運動単位が多いため, 疲労も速い.**
- 筋力を維持するために運動刺激を更に高める.
    - **乾いたコースほど, 速い疲労をカバーするために急激に運動刺激を高めないといけない.**
- 運動刺激をこれ以上高められなくなる.
    - **乾いたコースほど, 限界も早い.**
- 疲労により筋力が下がる.
- そりを引ける筋力を維持できなくなり, 停止する.
    - **乾いたコースほど, 必要な筋力が多いため, 停止が早い.**
- 運動刺激を低めて, 疲労から回復させる.

摩擦が変わっただけですが, それによって結構色んなところが変わりました.
乾燥するほど

- 最初に出さなければいけない筋力が大きい
- そりを動かすときも, 動摩擦のせいで効率が悪い
- 疲労の増え方も速く, 疲労が限界に達するのも早い

と, 全体的に動かしづらいですね.

:::note warn
一方, 全体的に変わるのは疲労の **増え方**だけで, 回復は変わりません. 完全に運動刺激を止めれば, 路面の状態に関係なく, 一定のスピードで回復します.
:::

## 基本的に全力出し切るのが有利?

さて, 運動単位が疲労から回復するスピードですが, 疲労している運動単位は一定確率で回復するのでした.

ここで考えていただきたいのですが,

- 筋肉の90%が疲労しているとき
- 筋肉の50%が疲労しているとき

**回復の速度はどちらが早いでしょうか?**

例えば疲労している筋肉が1秒ごとに10%の確率で回復するとして, それぞれ1秒後に回復している運動単位の量は

- 筋肉全体の9%
- 筋肉全体の5%

で, **圧倒的に前者が高速に回復します**.

もっと具体的な数字をあげると, 

- 9割疲労から5割疲労までの回復にかかる時間: 大体5.6sぐらい
- 5割疲労から1割疲労までの回復にかかる時間: **大体15.3sぐらい**

ダブルスコア以上の差がありますね.

:::note warn
もちろん, すべて回復しきるまでにかかる時間はより疲労している方が長いです.
ですが, 溜まっている疲労の割に思ったより長くはなりません.
(察しの良い方はお気づきかと思いますが, この回復時間の関係は対数や指数で表せます)
:::

これを見ると, 正解の戦略は **筋力を疲労限界まで使って, 全力で回復する**のように思えます.

## 疲労の量とレース

さて, このままだと皆が全力でそりを引いて止まらないアメリカンばんえい競馬になってしまいそう[^american]なので, コースによって違う"疲労"の要素と, レースの戦略の間に何等かの結びつきを見つけたいです.

[^american]: 一般にアメリカの競馬は, 序盤めちゃくちゃ飛ばして後半耐えるみたいなレースが多いらしいです

### 疲労の増加速度と出している筋力は比例する

力を出している運動単位(つまり, まだ疲労せず刺激を受けている運動単位)の数は2つの数値と関係あります.

- 疲労の増加速度: 力を出している運動単位は確率的に疲労します.
- 出している筋力: それぞれの運動単位が出す力を合計すると筋力になります.

よって, 筋力と疲労の増加速度は比例します.

### 筋力一定仮説

ここでいくつか, レース中の馬の運動について仮定をさせてください.

:::note
- そりを動かしている間, 馬は摩擦力と同じ力でそりを引く.
- つまり, そりを動かしている間, そりの速度は一定である.
:::

1つ目の仮定がなく, 例えば摩擦力よりも余計に多く力を入れて引いてると, そりはどんどん加速していきます.
ですが, 少なくとも馬が出せるスピードには限度がありますよね. なので, 結局速度の限界に達すれば加速, つまり引く力をある程度緩めて摩擦力と同じにせざるを得ないのです.

### レースの速度について

さて, そりの速度が一定として, その速度はどうやって決まるかというと, 恐らく**静止摩擦に打ち勝ってそりを動かし始めるときの筋力**, それが**動摩擦力とどの程度の差があるか**ということでしょう.
強い筋力で長い時間動かせばその分加速できます. **ですが, 筋力が強いぶん疲労の増加速度も高いです**([疲労の増加速度と出している筋力は比例する](#疲労の増加速度と出している筋力は比例する)から).
するとその分, **その速度を保って動かせる時間(つまり, 動摩擦力と同じ筋力を維持できなくなるまで疲労する時間)も短くなります**.

::: note info
**そりを動かす速度を早くしようとすると, その分短時間で止まらないといけなくなってしまうわけですね.** トレードオフというやつです.
:::

## トレードオフの最適な点は?

さて, トレードオフの関係を見出した以上, **コースのコンディションなどによって最適なスピードが変わるはずです.**
なんとかして最適点の性質を解析して, それがレースコンディションとどう関係するのか, 確かめたいですね.

### 疲労の増加速度と速度の増加速度(加速度)は比例の関係である...?

そりの速度の増加速度, つまり加速度は, 加わる力と比例します(ニュートンの運動第2法則).

~~なので筋力と疲労増加速度は比例するのでそりの加速度と疲労増加速度は比例します.~~
これではいけませんね. 筋力の一部は摩擦力が相殺してしまうからです.

正確には, 加速度と比例するのは(筋力 - 摩擦力)です.

さて, これをなんとかして疲労に結びつける必要があるのですが, おそらくこのように理解するのが簡単でしょう.

:::note info
もともと, 動摩擦に打ち勝つため, 一定の筋力が必要である.
そりを加速させたいなら, 余計に筋力を足す必要がある.
:::

これだけだとまだ当たり前のことしか言っていないので, (何度もいいますが)[疲労の増加速度と出している筋力は比例する](#疲労の増加速度と出している筋力は比例する)という事実を使い, 以下のように書き換えます

:::note info
もともと, 動摩擦に打ち勝つため, 一定の速度で疲労を貯めなければいけない.
そりを加速させたいなら, 余計に疲労を貯める速度を上げる必要がある.
:::

この"余計に""上げる必要がある"疲労の増加速度が加速度と比例しています.

**更にここから, 速度と"余計に"貯めた疲労の量が比例することも言えます**.

### 疲労の限界点は動摩擦力と一次の関係である

そりを動かし続けるためには, 動摩擦力と同等の筋力が必要です.

疲労のせいでその分の運動単位も確保できなかった場合, そりは止まってしまします.
**つまり, 疲労が(動摩擦力で決まる)ある限界点に到達すると, その時点で止まってしまいます**.

そしてその限界点は, 疲労の最大値から(動摩擦力と比例する)特定の値を引いたところにあるのです.

<!-- これじゃない? 重い馬場だとこの限界点が低い, つまり進んだ距離の割に長く休憩する必要がある -->
<!-- もしかして重馬場だとほとんどの馬が一様に止まって動くを繰り返すだけで, 軽馬場だと限界まで動いたときとちょっと動いて止まるときの差が激しいとか? -->

## 挫折が来る

**突然ですが, 筆者はここで挫折しました**.

というのも, 前節で述べたトレードオフを求めるためには

- そりを引く
- 回復する

という一連の動作にかかる時間と, それで進める距離から**平均速度を求める**必要があるのです.

この内 "一連の動作にかかる時間" は, 

- 速度が早いほど, 余計に疲労を負った状態で走り出すことになる. よって, 限界点に到達するのも早い.
    具体的には, 速度と限界点に到達するまでの時間の減りは比例する.
- 回復は, コースによって決まる一定時間がかかる.

とできます.

また進める距離も, 限界点に到達するまでの時間と速度をかければ良いです.

ただ, 以下のような問題がありました.

- 回復はコースの動摩擦力の**対数**に比例する(線形比例や一次の関係にならない)
- トレードオフの最適点を表す式が(おそらく)かなり難しくて, 文章で説明できなさそう
- 私の頭がもたない

というわけで結構考えたのですがもうこれ以上説明はできなさそうなので, 断念することにしました.

## あとがき

なんというか, 竜頭蛇尾どころか竜頭ミジンコ尾みたいな記事になりましたが, いかがでしたでしょうか.

多分10年後ぐらいにちゃんと数式を持ち出してリベンジするかもしれません[^media2].
(でもこいつ非線形システムやしなぁ...こんなことで非線形システムの学習せないかんとは思わんかった)

[^media2]: まーた掲載メディア変えよって