==================================================================== 依頼81:すれ違いの止まりを直し、残りの瞬間移動を0にする 2026-11-03 13:15〜13:50 check-in:cs:69 build_id cs69_20261103_1337(画面なし・録画用とも。保留 0) ==================================================================== 結論 ・瞬間移動は 0 回になった(⑦種7 の2回とも。依頼80 の同じ回は 22 回) ・1 のすれ違いの止まりは出なくなった。1往復の打ち切り 4 → 0。相手がいなくなって下がりを抜け、道を引き直した回が 10 回 ・同じ種の2回は、記録が1行も違わない(違ったのは時間を測る列 plan_ms_max と written_at だけ。依頼80 と同じ扱い) ・ただし、移さずに残った詰まりが 1 回の営業で合わせて 1601 秒(26.7 分)になり、止める線の 10 分を超えた。 依頼どおり、③⑦×種0・3・7 の6回は回さずに止めた (詰まり 31 回はすべて、客がドリンクバーから席へ戻るとき。最長 223 秒。31 回とも歩いて席に着いて解けている。 回の終わりまで解けずに残ったのは 0) -------------------------------------------------------------------- 0. 始める前の確かめ(どれも依頼どおり) -------------------------------------------------------------------- Unity エディタ・night_runner・rec_runner:動いていない(Unity Hub だけ)/KIOXIA:マウント済み/ unity_ledger_v1.lock:無し/保留 0/作業場所 cs:68 - head 台帳を archive/unity_ledger_v1_pre_zero_warp_20261103/ に退避(1724 行・md5 3dafb380b4b46527037f948cfe494059。依頼80 の終わりと同じ) -------------------------------------------------------------------- 1. すれ違いの止まりの直し(Robot/ServingRobotController.cs) -------------------------------------------------------------------- 原因:すれ違いの相手がいなくなる(離れる・譲りに入る・もう向かってこない)と相手の記録は消えるが、 「下がる」印だけが残った。そのため相手のいない所で下がり続け(依頼80 の ⑦種7 では 15.97 → 20.95 m の約 5 m)、 下がれなくなった所で止まった。下がっているあいだは速さを「走っている」側に数えていたので、stops.csv にも入らなかった 直し: ・相手がいなくなったら、下がる状態を抜けて道を引き直す(EndPassByBackOff) ・下がる状態のまま 1 コマで 1 mm も下がれていないときは「止まり」として数える。 stops.csv の原因の名前は「すれ違いで下がった」(新しく足した。ほかの原因の名前は変えていない)。 止まりとして数えるので、30 秒で助けを呼ぶ・60 秒で動けなくなる、の今の決まりがそのまま効く 結果(⑦ fam_p5・種7): ・1号機が (20.95, 6.25) にいた回は 0(その場所の近くに 1 度も行っていない) ・下がる印が立っていたのは 4 回、どれも 5 秒以内に消えた ・1往復の打ち切り 4 → 0。下がりを抜けて道を引き直した回 10 回。「すれ違いで下がった」止まり 0 回 ・注意:直したことで動きの流れが変わり、依頼80 と同じ場面(9063 秒以降の卓34 行き)はもう起きていない。 直しが「同じ場面を解いた」ことではなく「その形がもう出ない」ことを確かめた -------------------------------------------------------------------- 2. 瞬間移動を 0 にした直し -------------------------------------------------------------------- (1) 客の逃がし弁(People/GuestAgent.cs) ・移さない。60 秒(guestGiveUpSec・guestWarpHomeSec。数字は変えていない)着けないごとに、 回り込める道があれば回り込み、なければ同じ所で待ったまま行き先へ道を引き直す (回り込みの探し方は助けに行くスタッフ(依頼79c)と同じ。ロボットぜんぶと、1.2 m 以内のいちばん近い人を避ける。 客の入れない区画(レジの内側)を通る道は使わない) ・ドリンクバー・トイレの行き:行き詰まりが合わせて 3 分(180 秒)を超えたら、行かずに歩いて席へ戻る (前は 60 秒で席へ戻っていた。今は 60 秒・120 秒で行き直し、180 秒で戻る) ・帰り・退店・会計の行き:着くまで歩き続ける (2) 1往復の打ち切り(600 秒):置き直さない・往復も終えない。trips.csv の timeout=1 として記録だけして往復を続け、 止まっていれば今の助けの決まり(30 秒で呼ぶ・rescue_s 15 秒)で解く (3) スタッフが同じ仕事を 3 回あきらめたら:移さない。give_ups.csv に「交代した」と残し、その人を外して仕事を板へ戻す。 次に手が空いた別のスタッフが取る(助けの交代と同じく、全員が一度ずつ交代したら、また全員が取れるようにする)。 ※ 台帳の gave_up の列には「交代した」も入る(前は warped に入っていた分) (4) 移さずに残った詰まりの記録 ・前なら瞬間移動していた時刻から、解ける(着く・仕事が終わる・往復が終わる)までを 1 回とする (客=帰り・退店・会計で初めて行き直した時刻から。スタッフ=初めて交代した時刻から。ロボット=打ち切りの時刻から) ・nowarp_jams.csv(新しい。列:condition_id, seed, t_s, who, job, id, x, z, aisle, end_t_s, duration_s, outcome) ・summary.json:teleports に total(足した数)を足した。nowarp_jams(count・total_s・max_s・open_at_end・ guest_detours・guest_retries・pass_by_backoff_ends)を足した 変えていないもの:ロボットの速さ・物理の設定・譲る順番・人とロボットの数字・rescue_s 15 秒・30 秒の線・ 同じ種で同じ結果にする作り・止まっている台を 1.2 m 離す決め方・台帳の列と今までの行 -------------------------------------------------------------------- 3. 変えたファイル・版 -------------------------------------------------------------------- cs:69 Assets/ServiceSim/Robot/ServingRobotController.cs・People/GuestAgent.cs・People/StaffAgent.cs・ Service/ServiceOps.cs・Experiment/TripLogger.cs・Experiment/ExperimentRunner.cs 実行ファイル:Builds/headless と Builds/rec16_zerowarp69(新しいフォルダ)。どちらも build_id cs69_20261103_1337・ unity_cs ServiceSim/cs:69・pending_changes 空・error CS 0。前の録画用 rec15_standby68 は残した check-in の前に /tmp/ss81_compiletest に試しのビルドを作り、error CS 0 を確かめた -------------------------------------------------------------------- 4. 確かめ(画面なし・night_runner・同時 1 本・--no-retry。2 回とも completed・終了コード 0・1.4〜1.5 分) -------------------------------------------------------------------- (1) ⑦ fam_p5・種7(zw81a)・(2) 同じ回をもう 1 回(zw81b) trips 123・stops 1124・people_jams 920・yields 2938・contacts 162・rescues 28・give_ups 55・nowarp_jams 31・ dishes 209・groups 81・robot_track 4722 行、どれも 1 行も違わない。summary.json も同じ (trips.csv の plan_ms_max・summary.json の written_at だけ違う。どちらも計算にかかった実時間) (3) 6回:回していない(下の止めた理由のため)。並べられるのは ⑦種7 だけ 回 立ち往生 30秒以上 瞬間移動 詰まり(回/秒/最長) 入店待ち 料理の待ち 打ち切り ⑦種7 今回(cs:69) 8 25 0 31 / 1601 / 223 1.45 1.30 0 ⑦種7 依頼80(cs:68) 3 13 22 (記録なし) 1.41 1.43 4 (立ち往生=stops.csv の「動けなくなった」の数、30秒以上=stops.csv の 30 秒以上の行、入店待ち・料理の待ちは中央値(分)) ・入店待ち・料理の待ちは 2 倍の線に届いていない。詰まりの合計が 10 分の線を超えた ・立ち往生 3 → 8、30 秒以上の止まり 13 → 25 に増えた。客が席へ移されずに歩いて戻る・ドリンクバーで 3 分まで 行き直すようになり、通路にいる人が増えたことが考えられるが、確かめていない(1 回だけなのでばらつきと区別できない) ・give_ups:ドリンクバーで 3 分であきらめて席へ戻った客 34(依頼80 は 60 秒であきらめた 27+移した 13)。 スタッフの「交代した」0、ロボットの打ち切り 0。詰まり 31 回はすべて客のドリンクバーの帰り 詰まりの場所の上位(⑦種7・1 m のマスで丸めた位置・回数・合計秒) 1. (5, 4) 5 回 690 秒 ドリンクバーの前(4.1〜4.5 m の列) 2. (5, 6) 1 回 223 秒 通路 A02 3. (6, 5) 4 回 203 秒 ドリンクバーの前 4. (5, 12) 3 回 188 秒 通路 A02 5. (8, 5) 3 回 112 秒 60 秒以上かかった詰まりは 9 回で合計 1242 秒(全体の 78%)。2336〜2578 秒に卓1・3・4 の 5 人がドリンクバーの前で重なり、 1 回で 100〜223 秒かかった分が大きい -------------------------------------------------------------------- 5. 台帳 -------------------------------------------------------------------- 1724 行 → 1726 行(追記だけ。列は 59 のまま。先頭 1724 行の md5 は 3dafb380… で、始める前と同じ) 終わったあとの md5 d2f24b6e2125b42a12a58e495e53ee54。鍵ファイルは残っていない 追記 2 行:zw81a・zw81b(どちらも cs:69・completed) 記録:night/20261103_zerowarp81_zw81a・_zw81b。調べに使った手順と並べた回は /tmp/req81/(six.py・q/。q/zw81six.json は回していない) -------------------------------------------------------------------- 決めてほしいこと -------------------------------------------------------------------- 1. 詰まりの 10 分の線を超えた(26.7 分。すべて客のドリンクバーの帰り、どれも最後は歩いて席に着いている)。どうするか。案: a. このまま進め、6 回を回して並べる(今の回は「止まったまま解けない所」は 0。帰りが長びくのは、 ドリンクバーの前の混み方として記録する) b. ドリンクバーの前の混みを減らす直しを先にする(例:帰りで行き詰まったときに待つ所を通路の外にする など。直し方は相談) c. 詰まりの数え方を変える(今は「前なら移していた 60 秒の時刻」から着くまでを数えている。例:その場で止まっていた秒だけを数える) 2. ドリンクバー・トイレの行きの「3 分」は、行き始めからの秒(60 秒・120 秒で行き直し、180 秒で戻る)として入れた。 前は 60 秒で席へ戻っていた。この読み方でよいか 3. 依頼の 4 つのほかに、画面で跳んで見える動きが 1 つ残っている:立ち往生の助けで、スタッフが 15 秒かけてロボットを動かす場面は、 15 秒のあと最後に動かした先(最大 1.2 m ほど)へ置いている(依頼76・80 からの作り。summary.json の瞬間移動には入れていない)。 これも少しずつ動く形にするか (ほかに、客が席を立つときに体を席の前に出すこと・人の体を道の面に乗せ直す小さな寄せがあるが、どちらも数 cm〜席の前の出し入れで、今は瞬間移動として数えていない) 判定:止めた(決めてほしいことあり)