暫定テスト 5 位の解答を作るにあたって、Claude Code にどんなプロンプトを投げたかの記録です。 セッションログから、自分が入力した発言だけをAIが抜き出しました。
- 時刻はすべて JST に変換しています。
- 発言は原文のままです。長い貼り付け (コンパイルエラーやプロファイル出力) は省略して
[貼り付け: …]と書いています。 - Claude が自分で書いたサブエージェントへの指示、サブエージェントの完了通知 (
<task-notification>) は除いています。
環境#
| 項目 | 内容 |
|---|---|
| ツール | Claude Code (CLI) 2.1.314 |
| モデル | Claude Opus 5.5 。一部のサブエージェントで Fable を使用 |
| 構成 | メインのセッション 1 つが、サブエージェント (約 150 体) と git worktree を使って並列に探索する「agent swarm」 |
| 言語 | C++ |
| 提出 | 提出作業は自分が手で行い、結果 (絶対スコア・実行時間・相対スコア) をチャットで伝えた |
| その他 | Codex も併用 (最終的な成果にはほとんど影響していないと思います) |
Claude はメモリ機能に、こちらのフィードバックを方針として保存していました。主なものは末尾に載せています。
全体の流れ#
- 10/30 19:00〜 ルールを CLAUDE.md にまとめさせ、雑な初回提出を作らせる。
- 10/30 19:10〜 メインのセッションで「最大限考え、提出用の最適化されたプログラムを作成して」と依頼。以後このセッションを 11/4 まで使い続けた。
- 10/30 夜〜 サブエージェントで並列探索させる方向に。寝る前に「agent swarm を構築して永続的に改善して」と放置。
- 11/1〜 2 位に落ちる。値の調整ばかりで局所最適に陥っている点を繰り返し指摘し、サブエージェントに自律性を持たせるよう指示。
- 11/2 「一旦リセットして、全てやって良いので 1 位を目指して」。寝ている間に 8 時間かけてパラメータの同時最適化。
- 11/3〜11/4
/goalで目標を設定し、本質的な改善を要求し続ける。 - 11/5~ 週の制限をほぼ使い切り諦める。
プロンプト全文#
セッション 1: ルールの整理と初回提出 (10/30)#
19:01 https://atcoder.jp/contests/ahc074/tasks/ahc074_a をwith AIで解きたいと思います。とりあえず、ルールをCLAUDE.mdとして記述してください。
19:04 いや、ストーリーを省くのはいいけど、細部を省くのはやめなさい
19:07 良いです。ツールをDLしておいておきました。 とりあえず、最初の提出用の雑なプログラムをお願いします。
19:07 コードはC++でお願いします
セッション 2: メイン (10/30 〜 11/4)#
ここが本体です。/clear の直後に次のプロンプトを投げ、以後はほぼこのセッションだけで進めました。
10/30 (初日)#
19:10 これはAHC074でAI部門で参加しています。 main.cppは最小の提出コードです。特になんの最適化もしていない単純なプログラムです。 最大限考え、提出用の最適化されたプログラムを作成してください。
20:43 続けてください。他のエージェントの作業もあるので気をつけて。
20:44 今は停止させました。問題ありません。気にしないでその方向性で続けてください
21:21 650178点で現状1位です。すらばらしい!実行時間は1423 msです早いね?
21:23 そうですね。もっと頑張ってください。自信を持って進めていいですよ。!!
21:57 そうですね。それもいいと思いますし、subagentに任せて色々探索してみるのもありだと思います。 既存研究なども調べさせて良いかもですね。 提出の結果は635519点でした
22:46 良いですね。新しくわかったことを活かせるような案を検討してください。
22:51 うーん。両方やっていいんじゃない?subagentにやらせてみたりして。測定だけ被らないようにすればさ。
22:54 階段の3%もね
23:47 不採用案の再点検と浮かせる手の強化、subagentで両方進めて。 圧倒的に1位。この調子で行こう!
10/31#
00:53 天才だね。パラメータ調整して
01:17 私は寝るのでスコアの改善を永続的に進めてください。 subagent, worktreeを使ってagent swarmを構築するとより良いと思います。 現状も一位です。提出などは起きたらやるので、最良がmain.cppであれば良いです。 最大限頑張ってください。あなたならできます。
08:50 おはよう。どんな感じですか
08:57 おめでとう。552388点で一位ですよ。この調子で続けてください
08:58 1539 msです。!
10:03 548449点で、1566 ms。現状一位です。 この調子で改善を続けてください。 局所最適解に陥らないためにも、もっとsubagentを活用してswarmとして問題を解いてください
13:36 543074点でした。fastfreeは時間がかかるので、もっとこの線の改善を続けてみて欲しいです。 候補が出尽くしたと思うなら、なぜそうなのか、そこからどうできるのかを考えるべき
16:31 539836点、1676 msです。
17:12 もっとsubagentを動かして改善を狙ってください。やはり、局所最適に陥っているきらいがありますね
17:43 測定ロジックの順番待ち自体があるのはいいんだけどさ、CPU時間で測ってるのにそうなるの?
18:41 デッドロックしてない?
19:39 540059点, 1655 msでした。m21はたまた悪いのを引いたのかな?
20:44 532846点, 1652 msの相対スコアはマックスです。おめでとう!
23:03 subagentが変更したりしてないですか?心当たりはないです。
23:09 531397点の1605 msで一位です。おめでとう
23:46 531516点でした。私が提出したのはCodexが変更したバージョンですから、それが原因かな? BASE21って何?
23:47 えっと、今の一つ前に提出したので21:47のCodexで、今回のはここのmain.cppだよ
23:49 ケースごとはわからないけど、1640 msではあるから、出てないんじゃないかな?
23:56 それもいいですけど、並行して他の改善も進めてください。swarmなんですから。
11/1#
00:00 residualは良いと思いますけど、そもそも空いているのは0.3秒ぐらいあります。1.9秒ぐらいは使えるはずです。 時間を長くして改善と言い張るのは終盤にやることですが、そもそも2秒なのに2秒を使わないで考えているのも変な話です。あと、値の改善みたいなものは最後にやるべきですよ。それは局所最適への道です。一方で、どこに改善のタネがあるのか、そう言った部分で探すのは良いと思います。
00:42 結構時間がかかってるね。私は今日が誕生日です。極めて個人的なことなので検閲。この調子で頑張ってください。寝るので、朝、期待していますよ
07:23 528484点で1569 msでした。
07:24 ところで、まだ1500msとかで、1900ms使うようにはしてないの?
09:45 サブエージェントでがちゃがちゃと編集しているのでまぁ、そうでしょうね。 効くやり方が見えてきたように感じます。このまま続けてください。 agent swarmです!
09:50 それもいいですけど、本質的な改善の部分もしないと行き詰まると思います。アイデアを探し出すことも忘れないでください。 526128点で1652 ms 二位でした。49,885,906,030点で二位に落ちてしまいました。 一位は49,946,308,720点です。ここからは1.9 sで調整して本気でやっていきましょう。 いつまでも本番環境で成立しない部分で調整しても仕方ないですからね。
10:32 渋滞してるね
11:03
/goal 見込みで52万点以下
13:39 どの程度かかるの
15:23 524657点、1881 ms。2位です。
15:24 一位が49,990,625,000, 私が49,843,750,000です。 一位も提出で動いていることに注意してくだしあ
15:32 改善を狙ってくれるのは良いけど、2%も良いかいなの?順位の合計って何? 私は2位だよ?つまり、他の誰かが局所最適で勝ってるってこと?
15:35 そうですか。では一位のスコアを超えることを新しいgoalにして頑張ってください。 進め方は良いと思います。
19:01 今は高速化だけを動かしていますが、それはagent swarmではありません。まぁ、速度なので、他に邪魔されたくないのはわかりますが、
21:21 523252点の1888 msで二位でした。 一位が49,997,142,857で私が49,857,142,850点です。 今回提出前の一位が満点でした。一位ではないですが、いくつかのシードでは勝てたということでしょう
21:29 実際、本質的に100倍高速にアルゴリズムを組み替えることはできないので、少し離れたところの局所最適解にあるのだと思います。そうですね。もっと頑張りましょう。 できるかどうかわからないですけど、一応、Codexも契約しているので、Astraみたいな別のモデルでも試してみるといいかもですね。
21:34 ところでふと思ったのですが、37と27に分けたり、128と64に分けるのは数学的な保証があるのでしょうか? 問題文の最初にわかる注文バーコードの複雑性からもこれらの性質は異なってくるはずです
11/2#
00:40 なんというか、もっと調査の質を変えて欲しいです。今はあなたが具体的な仮説を指示してsubagentに検証させていますが、もっとagent swarmとして一つ一つのsubagentに自律性を持たせるべきです。 具体的な解の変更や、実際にアルゴリズムがどのように解を生成するのか確認したり、debuglogを追加するなどして、もっと高速に仮説検証を回したり、そもそも新しいアイデアの基盤とするべきです。 それと、また一位が50,000,000,000点に戻り、私は二位で49,854,395,594点です。 もっと良い解法があるはずです。結局のところ、変数を適当に回し続けたところで局所解に陥るだけです。 もっと積極的にエージェント同士でコミュニケーションをとってください。
07:58 519132点の1884 msで二位でした。一位が49,986,376,020点、私が49,866,485,000点です
08:03 ちなみにOptunaによるパラメータの最適化って見込みある? もうパラメータによる差はないんだっけ?やったことはある?
08:15 調整だけで効かないってわかってるのになんで調整ばっかしてんの? コードの質が良くなるのはいいかもしれないけど、それって結局のところ局所最適では?
14:21 そうですか。一旦ここまでの話はリセットして、全てやって酔うので1位を目指してください
14:50 [貼り付け: AtCoder のコードテストで動かした、本番環境の CPU 情報 (Sapphire Rapids、AVX-512 など) と SA の反復速度の計測結果] でした
16:35 焼きなましの差分更新みたいなことはできる?回数を10倍ぐらい上げていきたいよね。 0, 1, -1の三値で表現できるし、うまく扱えないかなー。
16:40 もっと画期的なアイデアを考えてほしいね。連鎖を厳密に解きながらなんとかするのが良さそう
20:32 519265点数で1884 msでした。2位で49,862,244,916点数で、1位は満点です
20:43 そういえばちゃんとコードの整理はしてる? 提出のコンパイルエラーです。 [貼り付け: 提出時のコンパイル警告 (-Wmisleading-indentation)]
22:07 517968点の1884 msで2位でした。相対スコアは49,865,822,765点で、1位は満点です
11/3#
00:13 良いですね。私は寝るのでこのPCがあなたに完全に使えるようになります。 負荷を気にしなくてよくなるということなので、この際にOptunaあるいは別の手段で完全なパラメーターの最適化を行いましょう。単一のパラメータによる変更では効かない部分も効いてくることがあると思います。 8時間ぐらいを予算にして行ってください。
07:38 おはよう。517761点で1884 ms。順位は2位で49,854,679,812点でした。 1位は49,997,536,946点です。
07:40 まぁ上振れと下振れの範疇でしょう。相対スコアは下がってますが、1位を満点から引きずり下ろせたのもデカイです
07:47 具体的に変数はどのように変化しましたか?またそこから導かれる改善案はありますか?
07:50 2もやってみてほしい
12:39 schedはどのぐらいかかる?
12:40 まぁ大体効くだろうし策にschedとtune39を適用した。main_a.cppを作っておいて。main.cppはあとから変えたらいいけど
12:46 516483点で1883 ms、2位でした。相対スコアは49,852,657,001です。1位はまた更新して満点になりました。
13:16
/goal 平均50点の改善
13:21 あの、さすがに数値調整に頼りすぎです。もう起きたので、本質的な改善を狙ってください。
15:08 速さの改善は良いと思いますけど、なかなか本質とは離れているよね。 もうちょっとなんかない?
15:14 [貼り付け: SA の各段階の所要時間のプロファイル出力]
17:18 つまるところ、最初に使うバーコードセットの設計からたどり着ける最良にはたどり着けているということですね。これは大きな成果だと思います。あとは設計の良さですか。
17:20 なるほどね。未来の注文を予測することはできる?まぁ無理だと思うけど
17:21 高速化ですが、1位に勝つには4倍ほど早くしなければなりません。手はありますか?
17:27 今の焼きなましは実行中にどんなことをしていますか? 不必要な部分を切り取って4倍速くすることはできないかな。
17:29 不必要な探索空間をカットするのはどうでしょうか。例えば、本質的に解として対照なものがあると思います
17:31 これは単なるアイデアですけど、もっと大胆にメモリを使って乱数部分を高速に回せないのでしょうか。
17:32 OK。今まで効いた改善を教えてください
17:34 三角形のスタックってなに?制約はまだあったりする?
17:36 これをベースラインとして焼きなまし法で変更するってこと?評価関数の設計はどんな感じなの
17:38 三角形の形も一旦は壊せるようにできない?
17:42 6時間もかかるの?
19:05 [貼り付け: コンパイルオプション違いの速度比較の計測結果]
22:07 なぜ1.7倍遅い速度で確かめてるの?それいる?
23:37 とりあえず提出のためにmain_a.cppを更新して
23:54 516930点数で下振れを引きましたね。2位なのは変わりないです
11/4#
07:46 517614点で1884 msでした
16:35 諦めないで頑張りなさい
Claude がメモリに残した方針 (要約)#
フィードバックを受けて Claude 自身がメモリに書いた方針です。後半の進め方はこれに沿っていました。
- 仕様の細部を省かない: 問題文やルールのまとめでは、ストーリー以外を省略しない。
- 時間予算は 1.9 秒、値の調整は終盤: 1.65 秒を上限のように扱わない。重みや係数の調整、SA の延長は局所最適への道なので終盤に回し、「改善のタネ探し」を優先する。大きく効いたのは制約の除去や見えない費用の発見で、値の調整ではなかった。
- サブエージェントの自律: サブエージェントに具体的な仮説や手順を指示せず、観察の切り口だけを渡す。実際の解やデバッグログを見させ、共有の掲示板 (
BOARD.md) と直接のメッセージでエージェント同士に話させる。担当の半分以上を調整に回さない。 - リセット (11/2): それまでの方針や棄却の結論に縛られず、値の調整・高速化・書き直し・別構造を同時に進めてよい。提出はユーザーが行い、公開や push はしない。
所感 (自分のプロンプトの傾向)#
- 具体的な解法はほとんど指示していない。投げたのは主に、提出結果の報告、励まし、そして「局所最適に陥っていないか」「本質的な改善か」という問い直し。
- 寝ている間も回し続けさせる (「永続的に進めて」「PC を完全に使ってよい」)。
- サブエージェントの使い方 (並列化、自律性、エージェント間の会話) について繰り返し注文を付けた。
