ボートレースAIの自動予想システムについて、今回は3日間の自然運転テストまで進みました。
今回の目的は、予想ロジックを変えることではありません。
現在の戦略や購入基準は固定したまま、毎日の運用を人の操作なしで安全に動かせるかを確認しました。
- 3連複
- AI予想上位3艇
- confidence:top1_gap
- 購入基準:11.02以上
- strategy:
trio_top3_top1_gap_fixed_v1 - score:
explainable-score-v1
Stage 5.8で完全自動接続に成功
8月16日には、当日のレーススケジュール取得から対象レースの自動選定、レース専用のLaunchAgent登録、対象時刻での自然起動、AI予想、PURCHASE / SKIP判定までを、人が途中で操作せずに通すことができました。
06:30 当日のレーススケジュール取得
↓
06:35 対象レースを自動選定
↓
レース専用のLaunchAgentを自動登録
↓
対象時刻に自然起動
↓
AI予想
↓
PURCHASE / SKIP判定
この日の下関12Rでは、AI上位は1・3・2号艇、3連複は1=2=3、top1_gapは13.42でした。購入基準11.02を上回ったため、システムはPURCHASEと判定しました。
その後、人の確認を挟んで結果を評価したところ、結果は1-2-3で的中。100円を仮想投資した場合、払戻350円、収支+250円となりました。
対象レースの選定から予想、PURCHASE / SKIP判定までを自動で通せたことが大きな確認ポイントでした。
3日間の自然運転テストへ
Day1|8月19日 下関12R
top1_gapは2.05。購入基準11.02を下回ったため、判定はSKIPでした。予定時刻に正常に実行され、判定も保存されました。
Day2|8月20日 大村12R
AI上位は1・3・4号艇、top1_gapは9.58。こちらも購入基準11.02未満のためSKIPです。
実際の結果は1-3-4でした。「買っていれば当たっていた」という結果ではありますが、後から判定を変えることはしていません。
Day3|8月21日 大村12R
AI上位は3・1・2号艇、top1_gapは1.70。この日も判定はSKIPでした。
締切前のAI判定までは正常に保存されています。なお、この日は実際の着順・払戻を使った的中確認は行っていません。
自動運転が正常に完了したことと、予想結果の評価は別に管理しています。
自動運転で見つかった「時刻」の問題
当初は本番判定時刻の20秒前から準備を開始していましたが、通信や処理時間によっては判定時刻を超えてしまうケースがありました。
そこで現在は、本番判定の60秒前から準備を開始するように変更しました。これは予想基準を変えたわけではありません。
LaunchAgentの早期起動にも対応
同じ予定分の中で少し早く起動
→ 正しい時刻まで待機
明らかに異常な早期起動
→ 処理を中止
という安全処理を追加し、macOS側の起動仕様による数秒のズレを吸収できるようにしました。
Stage 6はFINAL GO
3日間の自然運転を終え、Stage 6はSTAGE_6_FINAL_GOとなりました。
ここまでで、対象レースの自動選定、race-specific LaunchAgentの登録、自然起動、時刻制御、PURCHASE / SKIP保存、二重実行防止、DB整合性、人による結果評価との分離を確認できました。
ただし、これで正式Forward Testをすぐ始めるわけではありません。
次に必要なのは、これまでのテストデータと、これからの正式成績を混ぜないことです。
まとめ
今回の3日間テストでは、予想ロジックそのものではなく、毎日安全に自動実行するための運用部分を確認しました。
今は、「毎日同じルールで、正しい時刻に、安全に動く」ことを一つずつ確認しています。
次回は、これまでのテスト結果と正式Forward Testの成績を混ぜないために追加した、campaignとSHADOW運用について紹介します。
次回:ボートレースAIのテスト結果と本番成績を分ける仕組みを作りました


コメント