====================================================================
依頼84：④の入口近くとトイレ前の、解けずに残る詰まりを直し、180回で確かめる
2026-11-03 15:43〜17:30　作業場所 cs:70 → cs:73　build_id cs73_20261103_1601（画面なし・保留 0）
====================================================================

--------------------------------------------------------------------
0. 始める前の確かめ（どれも依頼どおり）
--------------------------------------------------------------------
  Unity エディタ・night_runner・rec_runner：動いていない（Unity Hub だけ）／KIOXIA：マウント済み／
  unity_ledger_v1.lock：無し／保留 0／作業場所 cs:70 - head／Builds/headless は cs70_20261103_1359
  台帳を archive/unity_ledger_v1_pre_base71_20261103/ に退避（1918 行・md5 326414af3938f358b53d074b3ae167e2。依頼83 の終わりと同じ）

--------------------------------------------------------------------
1. 原因（直す前に確かめたこと。依頼83 の記録とコードから）
--------------------------------------------------------------------
 a. ④ fam_p2・2台・種0・4・7（入口側から来た横の通路と、左の壁ぞいの卓 T01〜T05 の細い通路の口 x 1.6〜3.8・z 2.2〜3.0）
   ・種0：ロボット1号機（受け渡し口へ戻る・空）と2号機（T01 へ料理）が横の通路で向かい合い（900 秒）、
     助けで1号機を 1.39 m 押した先が、左下の行き止まりのへこみ (1.64, 2.19)。そこは2号機の行き先（T01 の止まる点）の
     すぐ手前で、2号機の前のセンサー（0.6 m）の中だった。2台とも動けなくなり（1467 秒に両方とも 1往復の打ち切り）、
     スタッフ2人も2号機の東側で、2号機を抜けられないまま止まった（(3.2, 2.65)・(2.2, 3.0)）
   ・助けで解けなかった理由は2つ
     (1) 動かす先の決め方が「相手の道の線から 2 台の半径＋0.1 m」だけで、相手の前のセンサーの外まで離さない。
         2回目からの助けは毎回 2.5 cm しか動かさず、同じ2台の助けが同じ所で 514 回（種7 は 699 回）続いた
     (2) 動かす台（1号機）がへこみの奥にいて、助けのスタッフは手前の2号機にふさがれて着けない（47 回交代・3871 秒）。
         交代しても動かす台は変わらないので、だれも着けないままだった
   ・スタッフの案内・料理は、通れないまま 3 回ずつあきらめて別のスタッフに渡すのをくり返し、そのたびに詰まりの行が
     1 件ずつ増えた（種0 の 34 件の大半）。スタッフはその場から動けていなかった
   ・種4 は、ロボットと止まっているスタッフの助けが同じ所で毎回 1〜2 cm しか動かしていなかった（(1) と同じ形。相手が人）
 b. 客のトイレ前（⑤ (14,9)・② (9,6)）
   ・トイレ自体ではなく、客がトイレから席へ戻る途中で止まっていた。戻り道には「あきらめて席へ戻る」が無く
     （行きだけ）、60 秒ごとに行き直すだけ。回り込みの道も毎回見つからなかった（行き直し 546〜1107 回）
   ・ふさいでいたのは、止まっているだけで自分からは動かない相手だった
     ⑤：往復を終えて待機場所 (14.8, 8.8) に止まっているロボット。パントリーの壁とのすき間 0.33 m を人の道が通り、
         客とスタッフが台をはさんで向かい合ったまま。ロボットは「止まっている」だけで動けなくなってはいないので、助けを呼ばない
     ②（ロボット 0 台）：持ち場 (9.5, 5.5) に立つ手の空いたスタッフが、パントリーの壁の角を回る人の道をふさいでいた
   ・人どうしの詰まりの決まり（JamWatcher：体を横に向ける → 3 秒で下がる）は、止まっている相手（立っているだけの人・
     待機の台）を相手にしないので、どちらも届いていなかった
 c. スタッフの「料理」の詰まりが 1 件だけ残る（全員帰った 15 回・19 件）
   ・どれも本当に止まっていたのではなく、記録の閉じ忘れだった（料理は 19 件ともすべて届いていた）
     C（10 件）：3回あきらめて交代した料理を、そのあとロボットが積んだ。仕事を板から外すとき（RemoveServeJob）に詰まりを閉じていなかった
     A（7 件）：料理を卓に届けたあと、受け渡し口へ戻る途中で 60 秒着けず、済んだ仕事を「交代」に回して新しく詰まりを始めていた。
               済んだ仕事なのでだれも取らず、閉じなかった
     A'（2 件）：交代のあと別のスタッフが届けたが、戻り道でまた交代になり、閉じなかった

結論（先に）
  ・a・b・c の原因を確かめて直した（cs:71・72・73。実行ファイル cs73_20261103_1601）
  ・同じ種の2回（⑦種7）は記録が1行も違わない
  ・180回（cs:73）：瞬間移動 0・1コマの跳び 0。解けずに残った詰まり 92 件・21 回 → 2 件・2 回、全員帰らなかった回 6 → 1、
    1往復あたりの助け 0.290 → 0.193。止める線（瞬間移動・中央値2倍）には当たらなかった
  ・ただし新しく ⑦2台 種9 の1回が全員帰らなかった（下の 4 (4)）。合格の線 (3) にはまだ届かない
  ・向きは 12 本中 10 本が試算と同じ（依頼83 の逆2本は直り、別の2本が逆になった。どちらも ⑦⑤ の入店待ち 1→2台）
  ・途中で KIOXIA が一度外れ、180回は3回に分けて回した（中身は同じ並び・同じ版。下の 5）

--------------------------------------------------------------------
2. 直したこと
--------------------------------------------------------------------
 a（cs:71・73）
   ・同じ2台（または同じ台と同じ人）の助けが、前にもこの台の 2 m 以内であったら、動かす先を
     止まっている台と同じ決め方（相手の体の半径＋相手の前のセンサー 0.6 m＋自分の半径＋0.1 m。人なら人の半径＋自分のセンサー＋自分の半径＋0.1 m）
     で、床をたどって届く所に探す。見つからなければ今までの決め方。1.2 m の決め方そのものは変えていない（使う場面を広げただけ）
   ・助けのスタッフが 60 秒着けずに交代したら、相手がロボットで動かせる台なら、手前の相手の台の方を動かすことにする（どちらかが下がる）
   ・助けのスタッフが、もう動かす台から 0.8 m（立つ点の距離）以内にいれば着いたとみる（cs:73。2台のあいだに挟まれた人が、
     もう1台の側にある立つ点へ届かず、交代を 95〜107 回くり返していた。試しの ④2台 種4・7 で見つけた）
 b（cs:72）
   ・歩きたいのに 30 秒（30 秒の線）0.3 m も進めない人のすぐ前（体どうしの間 0.6 m 以内）に、止まっているだけの相手がいたら相手をどかす
     　往復を終えて止まっている台 → 立ち往生の助けを呼び、スタッフが押して人の道の外へ動かす（今の助けの決まりをそのまま使う）
     　手の空いて立っているスタッフ → 人の道から 0.7 m 以上離れた、歩いて行ける空いた床へ歩いてどき、次の仕事までそこで待つ
   ・どちらも瞬間移動なし。助けが切の回は何もしない
 c（cs:71）
   ・料理の仕事を板から外すとき（料理が届いた・ロボットに渡した・戻された）に、交代で始めた詰まりを閉じる
   ・料理を卓に届けたあと、受け渡し口へ戻る途中で 60 秒着けないときは、交代にせず仕事を終えて次の仕事を取る
     （前は give_ups.csv に「あきらめた／交代した」の行が出ていた所。今は出ない）
 記録に足したもの（台帳の列は変えていない）
   ・rescues.csv の終わりに wide_clear・swaps
   ・summary.json の stuck_rescue に blocked_robot_calls・blocked_staff_steps
 変えていないもの：ロボットの速さ・物理の設定・譲る順番・人とロボットの数字・rescue_s 15 秒・30 秒の線・同じ種で同じ結果にする作り・
                    止まっている台を 1.2 m 離す決め方・瞬間移動をなくした作り・店の形・台帳の列と今までの行

--------------------------------------------------------------------
3. 変えたファイル・版
--------------------------------------------------------------------
  cs:71　Service/ServiceOps.cs・Robot/ServingRobotController.cs・People/StaffAgent.cs・Experiment/TripLogger.cs（a の広く離す・入れ替え、c）
  cs:72　Service/ServiceOps.cs・People/StaffAgent.cs・Experiment/TripLogger.cs・Experiment/ExperimentRunner.cs（b）
  cs:73　People/StaffAgent.cs（a の「0.8 m 以内なら着いた」）
  実行ファイル：Builds/headless　build_id cs73_20261103_1601・unity_cs ServiceSim/cs:73・pending_changes 空・error CS 0
  （どの check-in の前も /tmp/req84/try1〜3 に試しのビルドを作り error CS 0 を確かめた）

--------------------------------------------------------------------
4. 確かめ
--------------------------------------------------------------------
 (1) 同じ種の2回（⑦ fam_p5・2台・種7。det84a・det84b、cs:73）
   conditions・contacts・dishes・give_ups・groups・nowarp_jams・passes・people_jams・requeues・rescues・robot_track・
   stops・summary・timeline・yields、どれも 1 行も違わない。trips.csv は最後の列 plan_ms_max だけ違う、
   run_info.json は run_label・wall_seconds・speedup・plan_ms_max_per_trip だけ違う（どれも名札か計算にかかった実時間。前と同じ扱い）
 (2) 直しの途中の試し（どれも completed・瞬間移動 0）
   t84a（cs:71）④2台 種0・4・7：3回とも全員帰った・残り 0（依頼83 は 3回とも全員帰らず）
   t84b（cs:72）上の3回＋⑤1台 種0・⑤2台 種3・②0台 種8・③2台 種2：7回とも全員帰った・残り 0
                 ただし ④ 種4・7 で 5000 秒を超える詰まりが1件ずつ（解けはした）→ cs:73 の直しにつながった
   t84c（cs:73）④2台 種0〜9＋⑤1台 種0・⑤2台 種3・②0台 種8・③2台 種2 の 14回：全員帰った・残り 0・助けが終わる前に回が終わった 0
     ④2台（種10個の中央値）：入店待ち 17.96 分（依頼83 18.96）・料理の待ち 1.73 分（依頼83 2.18）・1往復あたりの助け 0.570（依頼83 2.129）
     依頼83 で解けなかった4回：⑤1台 種0 入店 1.66・⑤2台 種3 1.96・②0台 種8 1.64（どれも全員帰った）
     残った長い詰まり：④2台 種4 の 5166 秒（左の壁ぞいの細い通路 x 2.1 に2台が入り、奥の台の助けのスタッフが手前の台にふさがれて 69 回交代。
                        相手が客なので、台どうしの入れ替えが働かない。回の中で解けた）
 (3) 180回（label base71・同時4本・cs:73。並びは依頼83 と同じ 6店 × 0・1・2台 × 種0〜9）
   180 回とも completed。実時間 中央値 1.2 分・最長 4.1 分（⑦2台 種9。依頼83 の最長は 6.0 分）
   依頼83 と並べる（全体）
     項目                                  依頼83（cs:70）      今回（cs:73）
     瞬間移動（teleports の内訳の和）            0                   0
     1コマの跳びの見張り                         0                   0
     解けずに残った詰まり（件・回）             92 件・21 回         2 件・2 回
     全員帰らなかった回                          6                   1（⑦2台 種9）
     助けが終わる前に回が終わった                2                   3（⑤2台 種0・6・7。どれも全員が帰ったあと）
     助け（回／往復／1往復あたり）        3274／11284／0.290   2244／11650／0.193
     詰まり（回・秒・1回の最長）       2422・2,858,996・41779   2170・177,753・31402
   店・台数ごと（種10個の中央値。入店待ち・料理の待ちは分、助けは1往復あたり）
     店・台数   入店待ち 83→今回     料理の待ち 83→今回   助け 83→今回     詰まり秒 83→今回
     ③1台       3.31 → 3.19        2.38 → 2.40        0.158 → 0.155     7294 →  5507
     ③2台       2.81 → 2.50        1.60 → 1.48        0.201 → 0.167    48139 → 15096
     ⑦1台       3.23 → 3.04        2.45 → 2.40        0.197 → 0.160    15933 →  7144
     ⑦2台       4.63 → 2.82        1.54 → 1.48        0.168 → 0.145    31337 → 43412（種9 の 31402 秒が大半）
     ④1台      12.62 → 10.76       2.05 → 1.89        0.332 → 0.253    12969 →  4995
     ④2台      18.96 → 17.96       2.18 → 1.73        2.129 → 0.570  2430502 → 50936
     ⑤1台       6.44 → 6.17        2.66 → 2.68        0.100 → 0.219    58089 → 11439
     ⑤2台       5.63 → 7.62        1.74 → 1.68        0.130 → 0.238   163882 → 24302
     ⑥1台       5.39 → 5.38        1.98 → 1.98        0.052 → 0.049     2714 →  3270
     ⑥2台       5.52 → 4.83        1.24 → 1.11        0.085 → 0.084    31953 →  7537
     ②0台       1.90 → 1.86        0.89 → 0.88          ―                32897 →    55
     ②1台       1.58 → 1.60        0.98 → 1.02        0.096 → 0.090     3522 →  2345
     ②2台       1.50 → 1.59        0.57 → 0.58        0.171 → 0.148    19716 →  1666
     （0台の ③⑦④⑤⑥ は依頼83 と同じ値。2倍を超えた店・台数は無い。いちばん増えたのは ⑤2台の入店待ち 1.35 倍。
       ⑤ の助けが増えたのは、待機場所の台が人の道をふさいだときに助けを呼ぶようにした（b）ためとみられるが、確かめていない）
   向きの12本（＋は増える・－は減る）
     店  入店待ち Unity 0→1→2台      向き  試算 0→1→2台       向き  合う？
     ③   3.90 → 3.19 → 2.50     －－   4.09 → 1.68 → 1.13   －－   合う
     ⑦   4.40 → 3.04 → 2.82     －－   3.08 → 1.58 → 1.60   －＋   逆（1→2台。Unity －0.22・試算 ＋0.02）
     ④  12.64 → 10.76 → 17.96   －＋  10.91 → 4.81 → 5.57   －＋   合う
     ⑤   8.13 → 6.17 → 7.62     －＋   7.51 → 3.16 → 2.37   －－   逆（1→2台。Unity ＋1.45・試算 －0.79）
     ⑥   9.45 → 5.38 → 4.83     －－   7.91 → 3.68 → 2.11   －－   合う（依頼83 は逆）
     ②   1.86 → 1.60 → 1.59     －－   2.61 → 1.79 → 1.30   －－   合う
     店  料理の待ち Unity 0→1→2台    向き  試算 0→1→2台       向き  合う？
     ③   0.95 → 2.40 → 1.48     ＋－   0.63 → 1.97 → 0.96   ＋－   合う
     ⑦   1.01 → 2.40 → 1.48     ＋－   0.63 → 2.01 → 1.01   ＋－   合う
     ④   1.25 → 1.89 → 1.73     ＋－   0.99 → 1.29 → 0.47   ＋－   合う（依頼83 は逆）
     ⑤   1.09 → 2.68 → 1.68     ＋－   0.77 → 2.28 → 1.27   ＋－   合う
     ⑥   1.09 → 1.98 → 1.11     ＋－   0.84 → 2.01 → 0.82   ＋－   合う
     ②   0.88 → 1.02 → 0.58     ＋－   0.61 → 0.91 → 0.40   ＋－   合う
     12 本中 10 本が合う。逆の2本のうち ⑦ は試算の差が 0.02 分でほとんど横ばい。⑤ は Unity の差 1.45 分で小さくない
   詰まりの場所の上位（店・1 m のマス・回数・合計秒）
     依頼83：④(2,3) 1,068,651 秒・④(2,4) 901,900・④(3,3) 124,612・⑤(14,9) 111,912 …
     今回  ：⑦(17,6) 1 回 31,402 秒（種9）・④(2,3) 24 回 11,392・④(2,4) 10 回 8,558・④(2,5) 10 回 6,938・④(5,3) 18 回 4,221・
             ⑤(16,9) 12 回 3,797・⑤(14,9) 23 回 3,622・⑤(20,3) 54 回 3,157
     だれ・仕事：ロボット 1往復の打ち切り 33 回 58,084 秒・客ドリンクバー 1601 回 52,825・スタッフ片付け 105 回 35,697・
                 スタッフ料理 31 回 10,638（依頼83 は 87 回 814,526）・スタッフ案内 32 回 5,884（依頼83 は 73 回 1,511,301）・客トイレ 90 回 3,054（依頼83 は 135,474）
 (4) 残った詰まりの中身と場所
   ・⑦2台 種9（全員帰らなかった。11798 秒〜回の終わり 31402 秒）：1号機が卓42 へ向かう途中の (16.85, 5.77) で、
     1.4 cm の幅を約 50 秒ごとに行ったり来たりし続けた。卓の前の (17.94, 5.98) には往復を終えた2号機が止まっていた。
     1号機は少しずつ動いているので「止まった」と数えられず、30 秒の線に届かないため、助けを一度も呼んでいない（種9 の助け 30 回はどれもこの前）
   ・⑤2台 種0：1号機の 1往復の打ち切り (16.37, 8.52)、1218 秒。全員が帰ったあとで、待機場所の近くの台どうしの助けが終わる前に回が終わった
     （⑤2台 種6・7 も同じ所 (14〜15, 8.7〜8.8) で、助けが終わる前に回が終わった。客は全員帰っている）

--------------------------------------------------------------------
5. 途中で止めたこと・KIOXIA が外れたこと
--------------------------------------------------------------------
  ・16:42 に私の見張りが「② の入店待ちの中央値が 0・1・2台とも依頼83 の2倍を超えた」と出し、止める線どおり 180回を止めた
    （走っていた4回は「手で止めた」で、出力フォルダは _stopped。台帳には completed の行だけが入るので、この4回の行は無い）。
    調べると、見張りが「今回の種0〜4 の中央値」を「依頼83 の種0〜9 の中央値」と比べていた誤りだった。
    ② は種によって入店待ちが 1 分台と 8 分台に分かれる店で、同じ種どうしではどの回も依頼83 とほぼ同じ
    （例：0台 種0〜4 の中央値 依頼83 8.06 → 今回 8.24）。見張りを同じ種どうしの比べ方に直し、同じ並びの続きから回した
  ・16:57:30 に KIOXIA が外れ、夜の実行係は新しい回を始めずに書き込みの失敗で落ちた（148 回 completed の時点）。
    走っていた実行ファイル3本は、KIOXIA の無いまま Mac の中へ書かせないよう私が止めた。
    17:0x に KIOXIA がつながり直したので、鍵ファイルが無いこと・前の行が変わっていないことを確かめてから、残り 32 回を続きとして回した
  ・180 回の出力は 3 回に分けて回したが、版（cs:73）・並び・設定は同じ。記録：night/20261103_base71/
    （runner_log・runs.csv・judge.md。judge は 回の失敗 5（止めた4回＋⑦2台種9）・基準なし 179）、/tmp/req84/（並び・見張り・集計の手順と出力 agg71.txt）

--------------------------------------------------------------------
6. 台帳
--------------------------------------------------------------------
  1918 行 → 2124 行（追記 206 行だけ。どれも 59 列。先頭 1918 行の md5 は 326414af… で始める前と同じ）
  終わったあとの md5 a8e0a251e3f0de7ba1fe9436bb7d53ca。鍵ファイルは残っていない
  追記：t84a 3・t84b 7・t84c 14（直しの途中の試し。夜の実行係は check-in していない版では回さないので、どれも check-in した cs:71〜73）・
        det84a 1・det84b 1・base71 180

--------------------------------------------------------------------
決めてほしいこと
--------------------------------------------------------------------
  1. ⑦2台 種9 の形（ロボットが少しずつ行ったり来たりして「止まった」と数えられず、助けを呼ばない）を直すかどうか。
     直すなら「30 秒のあいだに 0.3 m も進めていなければ止まりと同じに扱って助けを呼ぶ」のように、止まりの数え方（30 秒の線の測り方）に
     手が入る。今回は「30 秒の線は変えない」ので手を入れていない
  2. 全員が帰ったあとに残るロボットどうしの助け（⑤2台 種0・6・7）は、回の終わりに残った詰まりに数えるか、記録だけにするか
  3. 向きが逆の2本（⑦入店待ち 1→2台：試算の差 0.02 分・⑤入店待ち 1→2台：Unity の差 1.45 分）を記録だけにするか。
     ⑤ は b の直し（待機場所の台が人の道をふさいだら助けを呼ぶ）で 2台の入店待ちが 5.63 → 7.62 分に増えたためとみられるが、確かめていない
  4. ④2台 種4 のように、奥の台の相手が客で、助けのスタッフが手前の別の台にふさがれる形は、回の中で解けるが 1 時間を超えることがある（5166 秒）。
     このままにするか

判定：失敗
