mathmodel-skill — 数学モデリング3コンテスト汎用スキル (v7.4.5)
10 段階で「3~4 日でコンテスト論文を 1 本作成」することをエンジニアリング化します。ユーザーが問題を直接提示した場合、デフォルトで Autopilot ワンクリック納品を実行します。つまり、問題読み取り、モデリング、コード求解、統計/グラフ作成、引用、論文、PDF ビジュアル QA、納品チェックリストを自動で行います。「モデリングを開始」とだけ指示された場合は、番号付き Q&A 形式の Guided Mode を保持します。各フェーズの成果物は、ルーブリック自己評価、セクションレベルのパッチ、クロスフェーズのバックトラック、最終的な相互ブラインドレビューを経ます。
v7.2 更新: v7.1 のコンプライアンスと単一フォルダ納品に加え、適応型 page_budget.json を導入。本文はタスクの重要度と証拠負荷に応じて割り当て、付録は完全な再現性に基づいて自然にページ分割します。novelty_ledger、アルゴリズム名-数学的定義-コード-ソルバーログ-実験結果の一貫性ハードゲート、および重要な実質的なインタラクションのみを保持する AI 開示を新たに追加しました。オプションの外部スキルはハードな依存関係ではありません。
v7.3 更新: 既存の論文に対する最小限のパッチ改訂。まず原稿の章構成、本文ページ数、図表番号/数/サイズ、完全な付録をロックし、検証可能な問題を一つずつ修正します。公開配布版からは、未承認のサードパーティテンプレート、ユーザーケース、ページごとのプライベートデータを削除し、独自に作成したワークフロー、集計統計、証拠トレーサビリティ、数値安定性チェックのみを保持します。
v7.4 更新: 標準の SKILL.md をクロスエージェントのエントリポイントとして採用。Claude Code、Cursor、VS Code/Copilot、OpenCode のディスカバリパス、ツールのダウングレード、状態の相互運用性に関する説明を追加し、安全な scripts/install_skill.py インストーラを提供します。
既存論文の改訂:まずベースラインを保全
「監査後の修正」は書き換えを意味しません。references/manuscript_revision_contract.md を必読:ユーザーが承認した構造、図表、ページ数を保持します。各変更は検証済みの問題に対応する必要があります。許可なくメインモデルの交換、全文の圧縮、図表の移動や縮小、全付録のやり直しを行ってはなりません。改訂後は最新の PDF で実ページ数を測定し、原稿の章構成、図表リストとサイズを比較します。未解決の科学的問題はそのまま監査リストに残し、「すべて解決した」と主張するために未検証の新しい回答に置き換えてはなりません。
Agent Skills エントリポイント (クロスエージェント)
このファイルは、クライアントを問わない唯一のワークフローエントリポイントです。SKILL.md をサポートするエージェントは、このファイルと隣接するリソースディレクトリを全体としてロードする必要があります。このファイルだけをコピーしないでください。
一般的なディスカバリ位置:
- ユーザーレベルインストール:
$HOME/.agents/skills/mathmodel-skill/ - プロジェクトレベルインストール:
<repo>/.agents/skills/mathmodel-skill/ - Claude Code:
~/.claude/skills/mathmodel-skill/または<repo>/.claude/skills/mathmodel-skill/ - Cursor:
~/.cursor/skills/mathmodel-skill/または<repo>/.cursor/skills/mathmodel-skill/ - VS Code/Copilot:
~/.copilot/skills/mathmodel-skill/または<repo>/.github/skills/mathmodel-skill/ - OpenCode:
~/.config/opencode/skills/mathmodel-skill/または<repo>/.opencode/skills/mathmodel-skill/ - UI メタデータ:
agents/openai.yaml(Codex オプション) - プラグイン配布メタデータ:
.codex-plugin/plugin.json+skills/mathmodel-skill/SKILL.mdshim (Codex オプション) - プロジェクトガイダンス:
AGENTS.mdは引き続きリポジトリ/ワークスペースレベルの指示として使用可能ですが、唯一のエントリポイントではありません
スキルがインストールされたら、ユーザーは「モデリングを開始」、/mathmodel-skill、またはクライアントの自然言語/スキルコマンドを使用してトリガーできます。
Harness 互換性とダウングレード戦略
このスキル v7.4.5 は、標準の SKILL.md を最優先のエントリポイントとして使用し、同時に harness 非依存の設計を維持します:
| harness | エントリポイント/ディスカバリ | ユーザーインタラクションツール | 状態ファイル |
|---|---|---|---|
| Claude Code | .claude/skills/<name>/SKILL.md | AskUserQuestion ツール | cwd/state/decision_log.json |
| Codex CLI / Codex app | .agents/skills/<name>/SKILL.md + オプションのプラグイン | markdown 番号リスト | 同上 (相互運用) |
| Cursor | .cursor/skills/<name>/SKILL.md または .agents/skills/ | スラッシュコマンド / Agent 選択 | 同上 (相互運用) |
| VS Code/Copilot | .github/skills/<name>/SKILL.md または .agents/skills/ | /skills メニュー / Agent 選択 | 同上 (相互運用) |
| OpenCode | .opencode/skills/<name>/SKILL.md または .agents/skills/ | skill ツール | 同上 (相互運用) |
| その他互換 Agent | クライアントのスキルディレクトリ内の SKILL.md | ネイティブ UI; それ以外は番号リスト | 同上 (相互運用) |
クロス harness 相互運用: 1 日目に Codex で Stage 0-2 を実行し、2 日目に Claude Code に切り替えて Stage 3+ を続行できます。状態は完全に保持されます。詳細は references/harness_compat.md を参照してください。
現在の harness に AskUserQuestion、スキルツール、またはネイティブな選択肢 UI がない場合: 同じ一連の決定フィールドを保持し、Markdown 番号リストまたは 1 行の自由テキスト質問を使用します。ユーザーに decision_log.json の手動編集を要求したり、ツールがないために結果を偽造したりしてはなりません。
2 つのインタラクションモード
interaction_mode は fast / standard / championship と直交します。前者はユーザーに一時停止して質問するかどうかを決定し、後者は分析の深さを決定します。
| interaction_mode | トリガー | 動作 |
|---|---|---|
autopilot | ユーザーが問題テキスト/PDF/画像/添付ファイルを提供し、求解または納品を要求した場合 | Stage 0 から検証可能な納品パッケージまで連続実行。通常の決定は自動的に推奨項目を採用して記録。ハードブロッキングのみ質問を一時停止 |
guided | ユーザーが「モデリングを開始」とだけ言った、問題が未公開、または段階的な協力を明示的に希望した場合 | 重要な決定には番号付き Q&A を使用 |
Autopilot では references/autopilot_delivery.md と references/deliverable_contract.md を必読してください。文献、統計、図、論文、引用、または最終レビューに関わる場合は references/nature_capability_router.md に従ってルーティングします。Nature スキルを決して変更してはなりません。
Guided Q&A プロトコル (Friendly Mode)
基本原則: Guided ユーザーは番号付き質問に答えるだけでよく、bash / python / json を手動で入力する必要はありません。Autopilot では、エージェントがこれらの質問に対して推奨項目を採用して state に書き込み、一時停止しません。
- Guided の離散オプション (コンテスト選択 / 問題選択 / モデル選択 / verdict 決定) → 必ず Q&A 形式を使用
- 自由テキスト (PDF パス / 締切) → 1 行返信
- 状態の読み書き (decision_log.json) → エージェントが自動実行
- 各ステージの重要な決定ポイントには「私に決めさせてください (推奨: X)」というセーフティーネットオプションがあり、ユーザーが迷ったら 4 を選んでも問題なく実行できます
Claude Code: AskUserQuestion ツールを使用; Codex: markdown 番号リストを使用 (1-4 + セーフティーネット)。両者は意味的に同等です。references/harness_compat.md §1 を参照。
パス解決プロトコル (全フェーズで必読)
| タイプ | 位置 | 例 |
|---|---|---|
| スキル内汎用 | スキルルートディレクトリからの相対パス | references/stage_05_subproblem_loop.md, templates/shared/decision_log.json |
| コンテスト特化 | competitions/<comp>/... (decision_log.competition でディスパッチ) | competitions/cumcm/winning_patterns.md, competitions/mcm/abstract_template.md |
| LaTeX テンプレート | templates/latex/<comp>/main.tex | templates/latex/cumcm/main.tex, templates/latex/mcm/main.tex |
| ユーザー成果物 | ユーザー cwd/ からの相対パス | cwd/{state,analysis,src,results,figures,paper_workspace,paper_output,support_materials,qa,delivery}/ |
| state 永続化 | cwd/state/decision_log.json | 各フェーズで必読、必書き込み |
| 環境変数 | MATHMODEL_STATE_DIR (互換性のための CUMCM_STATE_DIR) / MATHMODEL_COMPETITION で上書き可能 | スクリプトはこれらの変数を使用 |
規約: <skill>/ = スキルインストールディレクトリ、<cwd>/ = ユーザーのカレントワーキングディレクトリ、<comp>/ = 現在のコンテスト (cumcm | mcm | diangong)。
Quick Start
A. ユーザーが直接問題を提供 → デフォルトでワンクリック納品
1. source packet に読み取り可能な問題と必要な添付ファイルが含まれているか判断します。
2. references/autopilot_delivery.md、deliverable_contract.md、nature_capability_router.md を読み込みます。CUMCM の場合は、最初に `competitions/cumcm/current_rules.md` を検証してから `references/cumcm_2026_compliance.md` を読み込みます。
3. 自動で scripts/bootstrap_run.py を実行して state を初期化または復元します。既存のファイルを上書きしないでください。
4. 問題文/ファイル名から competition、year、letter、language を推測します。信頼度が低く、テンプレートに影響する場合のみ 1 つの質問をします。
5. competitions/<comp>/winning_patterns.md と現在のステージのドキュメントを読み込み、Stage 0-9 を連続実行します。CUMCM では、本文を書き始める前に `scripts/plan_paper_budget.py` を実行し、本文/付録のカウント基準と証拠量に基づく小問のページ配分をロックします。
6. まず scripts/validate_delivery.py の exit code 0 をコアな機械的ゲートとして使用します。科学的/視覚的な blocking concern は引き続き Stage 9 で判断します。
7. すべてのコンテストの最後に `scripts/package_delivery.py` を実行してバージョン管理されたフォルダを出力します。CUMCM では先に `AI ツール使用詳細.pdf` を生成する必要があり、人による確認ブロッカーがある場合は候補パッケージと `NOT_SUBMISSION_READY.md` を保持します。
B. ユーザーが「モデリングを開始」とだけ言った場合 → Guided
1. 1 段落の紹介 (50 字以内): 「数学モデリングワークフローを起動します。10 段階 + 3 コンテスト、Guided 番号協力方式。」
2. 一度に 5 つの質問 (Claude Code: AskUserQuestion で 1 メッセージ; Codex: 5 つの番号リスト):
- コンテスト (cumcm 中国コンテスト / mcm 米国コンテスト / diangong 電工杯、デフォルト cumcm)
- 問題番号 (コンテストに応じて: cumcm A-E / mcm A-F / diangong A-B; 「未発表」も可)
- チームメンバー数 + 各人の得意分野 (モデリング/プログラミング/ライティング)
- 締切 (ISO 文字列または「今から X 時間後」)
- 問題 PDF のパス (「未発表」も可)
3. 自動初期化 (エージェントが `scripts/bootstrap_run.py --mode guided` を実行; ユーザーに json を編集させない):
- state が存在しない → v4 テンプレートから初期化
- state が既に存在する → `--resume` で current_stage を読み、復帰ポイントを決定
4. competitions/<comp>/winning_patterns.md を 1 回読み込み (ベースライン確立)、以降は再読み込みしない
5. Stage 0 (references/stage_00_kickoff.md) に進み、既に質問済みのことは再度質問しない
既存 state によるトリガー (ユーザーが途中でスキルに戻ってきた場合):
1. cwd/state/decision_log.json の competition と current_stage を読み込む
2. 対応する stage_NN.md を読み込む (必要に応じて competitions/<comp>/* の内容と組み合わせる)
3. winning_patterns を再読み込みしない
3 コンテスト × 3 モード マトリックス
所要時間 / 言語 / テンプレート / データ状態は competition によって決定されます。トークンバジェット / フィードバックの深さは mode によって決定されます。一時停止戦略は interaction_mode によって決定されます。これら 3 つは直交して組み合わされます。
| Competition | 所要時間 | 言語 | LaTeX | サブ問題数 IQR | データ状態 |
|---|---|---|---|---|---|
| cumcm | 72h | 中国語 | xelatex / 独自 ctexart | [3, 5] | 91 件のソースドキュメントからの集計統計、59 件が正常に抽出 |
| mcm | 96h | 英語 | pdflatex / article | [3, 6] | seed v0.1 |
| diangong | 72h | 中国語 | xelatex / ctex | [6, 8] | seed v0.1 |
| Mode | Token | フィードバックレベル | 用途 |
|---|---|---|---|
| fast | ≤ 50k | L1 単回 + 最終ハードゲート/圧縮最終レビュー | 問題選択の試走; 納品が要求された場合でも再現性/統計/PDF/最終レビューゲートは保持 |
| standard | ≤ 200k | L1+L2+最終 L3 | デフォルトのメインフロー |
| championship | ≤ 500k | L1+L2+L3+L4 + red-team | 提出前の最終追い込み |
モードの自動推奨 (締切までの残り時間に基づく):
-
60h: standard (最後の 6h で championship に昇格)
- 24-60h: standard
- 6-24h: fast の主要フェーズ + championship の最終レビュー
- < 6h: 直接 stage 9 へ (championship)
10 フェーズインデックス
| # | フェーズ | reference | 所要時間 | フィードバック | コンテストによる差異点 |
|---|---|---|---|---|---|
| 0 | source packet + チーム/環境起動 | stage_00_kickoff.md | 1h | L1 | 所要時間 / 言語 / コンパイラ / 問題番号体系 |
| 1 | 問題選択 (複数問題を比較 → 1) | stage_01_problem_selection.md | 2-4h | L1 | 問題番号体系 (A-E/A-F/A-B) + task_type の書き込み |
| 2 | 問題の深層解析と分解 | stage_02_analysis.md | 2-3h | L1 | 汎用 |
| 3 | モデル選定 (≥3 候補) | stage_03_model_selection.md | 2-4h | L1 + 反事実 | 汎用 |
| 4 | Foundation (仮定+記号+用語) | stage_04_foundation.md | 1h | L1 | 汎用 |
| 5 | 再帰的サブ問題ループ Q1..Qn + 実実行 + per-Qi 集約 | stage_05_subproblem_loop.md | 6-12h × n | L1 + サブチェックポイント | サブ問題数の差異; 再現性とデータリークチェック |
| 6 | 統計検証 + グローバル感度 / ロバスト性 | stage_06_robustness.md | 2-3h | L1 + L2 | エンジニアリングパラメータ vs 数学パラメータ; 区間と限界 |
| 7 | モデル評価 + 一般化 | stage_07_evaluation.md | 1-2h | L1 | 汎用 |
| 8 | エビデンスに基づく論文作成 + 引用検証 | stage_08_writing.md | 12-30h | L1 | 適応型ページ予算 + 要約/LaTeX + 用語/数値一貫性; CUMCM 2026 AI 宣言/付録 |
| 9 | 相互ブラインド最終レビュー + PDF ビジュアル QA + 納品パッケージ化 | stage_09_review.md | 2-6h | L1 + L3 | 3 件の相互ブラインドレポート + 合成 + manifest + バージョン管理された納品フォルダ |
読み込みプロトコル (トークン節約の鍵)
フェーズ N に進入するときのみ references/stage_NN_*.md を読み込みます。決して一度にすべてを読み込まないでください。
- Autopilot 起動時: 追加で
references/autopilot_delivery.mdとreferences/deliverable_contract.mdを読み込みます - competition が
cumcmの場合: Stage 0、8、9 で最初にcompetitions/cumcm/current_rules.mdを検証してからreferences/cumcm_2026_compliance.mdを読み込みます。現在のコンテスト年の新しい通知を優先し、上書き関係を記録します - Nature 能力が必要な場合:
references/nature_capability_router.mdを読み込み、ルーティングされたスキルの完全なSKILL.mdと、そのスキルの今回必要なフラグメントのみを読み込みます
各フェーズの追加読み込み (必要に応じて + competition に応じて切り替え):
- 各フェーズの開始時:
cwd/state/decision_log.jsonを必読 - 各フェーズの終了時:
cwd/state/decision_log.jsonを必書き込み (コアな決定 + 5 次元スコア) - stage 1-9:
references/rubrics.mdの該当セクション (L1 スコアリング用) - stage 1:
competitions/<comp>/topic_specs.json(問題番号 → task_type マッピング) - stage 3, 5:
references/model_catalog.md(クロスコンテスト汎用) - stage 5: per-Qi スコアリング実行後、
scripts/score_artifact.py --mode aggregate_qiを呼び出して集約 - stage 5-6: 統計/グラフルーティング +
qa/reproducibility.json,qa/statistics_audit.md - stage 8:
competitions/<comp>/{winning_patterns, phrase_bank, abstract_template, paper_skeleton}.md+ 作成/推敲/引用ルーティング; CUMCM はanalysis/page_budget.json、analysis/novelty_ledger.json、アルゴリズム一貫性監査、AI 宣言、および重要なイベントレベルの詳細 PDF を生成 - stage 8 ハードしきい値スコアリング:
competitions/<comp>/empirical.jsonからエビデンスを注入 (cumcm は真値; mcm/diangong seed は自動で [seed: ...] マーク付き) - stage 9:
competitions/<comp>/anti_patterns.md+rubric_overlay.json+feedback_layer3_panel.md+ PDF/納品契約; CUMCM は最後にバージョン管理された納品パッケージ化を実行 - stage 9 既存論文改訂: 優先して
references/manuscript_revision_contract.mdを実行; 公開スキルにはユーザー原稿、スコア、または過去のイテレーションケースは組み込まれていません - stage 9 数値と推論のチェック: 重要な結果は異なる実装または観測量で相互検証。差異はまず仮定、単位、分散、前処理、最適化を調査。代替アルゴリズムを直接真値として扱わない。通常の F 検定はネストと誤差分布の条件を満たす必要がある。AIC はネストを必要としないが、同じデータ上の比較可能な尤度と正しいパラメータ数が必要。相関スペクトルデータは相関誤差モデルまたは適切な分割検証を検証。すべてのデータ依存ステップはトレーニングフォールド内で完了する必要がある。悪条件の基底関数はスケール、条件数、環境感度をチェック。バージョンの違いだけで根本原因を断言しない。
p5/p95は中央 90% 区間。事前分布の伝播、シナリオ範囲、サンプリング信頼区間は明確に区別して命名する必要がある。 - フィードバックがトリガーされた場合: 対応する
references/feedback_layer*.md - harness 適応の差異 (クロスエージェントユーザー必読):
references/harness_compat.md
収束基準 (統一定義、3 か所で一致)
verdict 優先順位 (高い順から降順):
| verdict | トリガー | 動作 |
|---|---|---|
block | issues に ≥1 の high-severity が含まれる | Guided は一時停止; Autopilot はまず最小限の修正を行い、hard blocker にのみユーザーに問い合わせ |
pass_early | raw_min ≥ 9 かつ weighted_mean ≥ 9 | iter-1 で早期終了 |
pass | raw_min ≥ 7 かつ weighted_mean ≥ 8 | 次のフェーズへ |
pass_with_review (stage 5) | 任意の Qi が mark_for_review だが加重しきい値を満たす | stage 6 へ進む。L2 は review_qis を必読 |
refine | その他 | section-patch で精密修正、iter+=1 (上限 3) |
refine_partial (stage 5) | 任意の Qi.min < 7、他の Qi は pass 済み | その Qi のみを refine、他は触らない |
carryover | iter == 3 でも refine のまま | 次のフェーズへ進む。L2 が処理するようマーク |
weighted_mean = Σ(s_i × w_i) / Σ(w_i)。重みは config/dim_weights.json[<comp>][<task_type>] から取得 (clamp [0.7, 1.5]); task_type=default の場合、すべて 1.0 で従来のロジックと同等。
この定義は feedback_layer1_critic.md / rubrics.md / scripts/score_artifact.py の 3 か所で完全に一致している必要があります。
状態の永続化
各フェーズ:
- 開始時:
cwd/state/decision_log.jsonを読み込み、current_stage とコンテキストを確認 - 終了時: stage ノードを更新 (コアな決定 + 棄却案 + スコア)、
current_stage += 1
decision_log.json v4.1 スキーマの主要フィールド (templates/shared/decision_log.json と整合):
- root:
competition,task_type,mode,current_stage,budget,events - execution:
interaction_mode,status,source_packet,nature_router,checkpoints,blockers - stage_5 拡張:
qi_count,qi_weights,qi_status - scores 拡張:
weighted_mean,review_qis,refine_qisを含む (stage 5 加重集約用) - evidence / artifacts / qa: 要約、ロケーター、成果物パス、検証状態のみを保存
- compliance.cumcm: 2026 ルールセット、AI 使用と人による確認、要旨/公式本文/付録の分離カウント、余白/匿名審査、最終納品パッケージパス; 人による確認フィールドはエージェントが勝手に true にしてはならない
- stage 8:
page_budgetは計画と実際のページ数、動的なサブ問題の重み、異常の説明を保存;novelty_ledgerは革新のタイプと証拠を保存;qa/algorithm_claim_consistency.jsonは blocking がゼロでなければ提出不可
L2 クロスフェーズバックトラック (stage 5/6/8 の終わり) はこのファイルを読み込んで能動的に競合を見つけ、対象を絞ったロールバックをトリガーします: フェーズ全体をやり直すのではなく、競合ポイントのみを修正します。
トークンバジェット規律
- L1 Critic は強制的に JSON 出力、約 500 トークン/回
- 精密修正戦略: section-level patch (
scripts/extract_diff.pyを使用)、完全な artifact を再送信しない (約 60% のトークン節約) - references/ と competitions/ のファイルは遅延読み込み、この SKILL.md 本体は ≤ 6k トークン
- フェーズ完了後、artifact の要約 + 重要なデータ + パスを decision_log に書き込み、コンテキストに全文を保持しない
- 予算超過 30% → 自動ダウングレード (championship → standard、standard → fast)
ユーザー指示ショートカット
- "stage N に進む" / "stage N をやり直す" → ジャンプ
- "mcm に切り替え" / "cumcm に切り替え" / "diangong に切り替え" → decision_log.competition を変更 (既存 state との互換性に注意)
- "championship にアップグレード" → L3 + L4 + red-team を有効化
- "fast に切り替え" → イテレーションを無効化
- "stage M にロールバック" → decision_log を読み込み、current_stage をロールバックし、≥M のノードをクリア
- "L2 バックトラックを実行" → 即座にクロスステージバックトラックをトリガー
- "進捗を表示" → decision_log の要約と現在のスコアを出力
データソースの声明
competitions/cumcm/: 91 件の 2023–2025 年ソースドキュメントからの集計測定。そのうち 59 件はテキスト抽出に成功しempirical.jsonに収録。統計フィールドと独自に作成した汎用ルールのみを公開。PDF、抽出テキスト、ユーザーのページごとのケースは公開しない。これらの観察は経験的な事前分布であり、公式ルールではありませんcompetitions/mcm/: SEED v0.1。COMAP 公開のスコアリングルーブリック + Outstanding Winner の公開パターンに基づく手書き。empirical はプレースホルダcompetitions/diangong/: SEED v0.1。過去の問題数 + 公開審査基準から推定。empirical はプレースホルダ- 汎用モデルリスト
references/model_catalog.mdはクロスコンテストで再利用
今後、明示的に処理を許可された新しいソースドキュメント (例: 公開ライセンスまたは資料所有者の書面による承認) を入手した場合、scripts/ingest_papers.py --competition <comp> を使用してリポジトリ外で seed を再生成して上書きできます。元のドキュメントや抽出テキストを公開リポジトリに持ち込んではなりません。
外部リソースおよびオプションスキルとの関係
コアとなるモデリングと納品契約は自己完結型。インターネット検索と個別にインストールされた外部スキルはオンデマンドの強化機能であり、利用できない場合はダウングレードして記録する必要があります。外部能力の不足のために引用や結果を偽造してはなりません。CUMCM はまず公式のベースラインを検証してから、cumcm_2026_compliance.md で明示的にマークされたメンテナーの戦略を実行し、package_delivery.py を使用して 1 つのフォルダを生成します。
利用可能な nature-* スキルは、references/nature_capability_router.md を通じて読み取り専用でルーティングされます。そのソースコード、ドキュメント、アセットをコピー、変更、再配布してはなりません。これらは本プロジェクトの依存関係ではなく、いかなる公式な提携関係も示しません。メインチェーンは academic-search、statistics、figure、writing、polishing、ref-verifier、reviewer をオプションで使用可能。reader、paper-card、downloader、citation、data、paper2ppt は条件付きでトリガー。以下のリソースも人手による補足として利用可能:
- 中国コンテスト:
personqianduixue/Math_Model、datawhalechina/intro-mathmodel、dxs.moe.gov.cn優秀論文ギャラリー - 米国コンテスト: COMAP 公式サイト
comap.com、MCM Tutorial(Frank Giordano) - 電工杯: 中国電機工学会論文集