commit 34af4fb027de440f265e7e58c688f2d9c327afb5 Author: Claude Date: Thu Nov 5 19:08:51 2026 +0900 Unity の条件に大型店⑧⑨の下げ膳(ロボット1・2台)を足す(132〜135番) 試算の数字とページの表示は変えない。値は v2_9_large の結果から写した Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01LevEXRjJt67bSDYZYEUWTQ diff --git a/public/sim/serving-robot-params.json b/public/sim/serving-robot-params.json index 76f7021..aea6e67 100644 --- a/public/sim/serving-robot-params.json +++ b/public/sim/serving-robot-params.json @@ -5898,6 +5898,146 @@ "full_wait_mean": 1.0218, "pay_wait_mean": 0.7422 } + }, + { + "condition": { + "store": "large_p6", + "staff": 6, + "robots": 1, + "arrivals_per_h": 70, + "mode": "bus", + "trays": 3, + "fragile_by": "any", + "registers": 1 + }, + "site_result": { + "dish_wait_mean": 2.3583, + "dish_wait_p90": 3.1278, + "cold_share": 0.1354, + "seat_wait_mean": 5.9933, + "turn_mean": 2.4367, + "walk_km_per_staff": 3.2798, + "staff_util": 0.5859, + "robot_util": 0.8522, + "robot_share": 0.5034, + "robot_bus_share": 0.1875, + "collects": 0, + "rescues": 0.925, + "pauses": 28.15, + "fragile_robot": 37.075, + "groups": 135.475, + "entry_wait_mean": 6.3412, + "blocked_wait_mean": 0.8058, + "guide_wait_mean": 0.0881, + "staff_wait_mean": 0.894, + "full_wait_mean": 5.1875, + "pay_wait_mean": 33.9524 + } + }, + { + "condition": { + "store": "large_p6", + "staff": 6, + "robots": 2, + "arrivals_per_h": 70, + "mode": "bus", + "trays": 3, + "fragile_by": "any", + "registers": 1 + }, + "site_result": { + "dish_wait_mean": 1.9063, + "dish_wait_p90": 2.9681, + "cold_share": 0.0981, + "seat_wait_mean": 7.0338, + "turn_mean": 2.2047, + "walk_km_per_staff": 2.577, + "staff_util": 0.5314, + "robot_util": 0.8234, + "robot_share": 0.8641, + "robot_bus_share": 0.4182, + "collects": 0, + "rescues": 2.175, + "pauses": 60.85, + "fragile_robot": 59.925, + "groups": 139.85, + "entry_wait_mean": 7.338, + "blocked_wait_mean": 0.8115, + "guide_wait_mean": 0.0433, + "staff_wait_mean": 0.8547, + "full_wait_mean": 6.2223, + "pay_wait_mean": 34.9873 + } + }, + { + "condition": { + "store": "large_p7", + "staff": 6, + "robots": 1, + "arrivals_per_h": 70, + "mode": "bus", + "trays": 3, + "fragile_by": "any", + "registers": 1 + }, + "site_result": { + "dish_wait_mean": 2.5748, + "dish_wait_p90": 3.5045, + "cold_share": 0.2306, + "seat_wait_mean": 9.2214, + "turn_mean": 3.189, + "walk_km_per_staff": 4.2703, + "staff_util": 0.6461, + "robot_util": 0.875, + "robot_share": 0.4464, + "robot_bus_share": 0.18, + "collects": 0, + "rescues": 0.9, + "pauses": 26.325, + "fragile_robot": 35.9, + "groups": 141.35, + "entry_wait_mean": 9.7417, + "blocked_wait_mean": 1.5309, + "guide_wait_mean": 0.2061, + "staff_wait_mean": 1.737, + "full_wait_mean": 7.6904, + "pay_wait_mean": 34.2627 + } + }, + { + "condition": { + "store": "large_p7", + "staff": 6, + "robots": 2, + "arrivals_per_h": 70, + "mode": "bus", + "trays": 3, + "fragile_by": "any", + "registers": 1 + }, + "site_result": { + "dish_wait_mean": 2.1818, + "dish_wait_p90": 3.2876, + "cold_share": 0.1662, + "seat_wait_mean": 7.1608, + "turn_mean": 2.4264, + "walk_km_per_staff": 3.1786, + "staff_util": 0.5715, + "robot_util": 0.8438, + "robot_share": 0.7898, + "robot_bus_share": 0.4015, + "collects": 0, + "rescues": 2.05, + "pauses": 54.15, + "fragile_robot": 56.425, + "groups": 138.525, + "entry_wait_mean": 7.5453, + "blocked_wait_mean": 0.9491, + "guide_wait_mean": 0.0759, + "staff_wait_mean": 1.0249, + "full_wait_mean": 6.2118, + "pay_wait_mean": 34.3623 + } } ] } \ No newline at end of file diff --git a/tools/serving_sim/export_params.py b/tools/serving_sim/export_params.py index 832b453..befc073 100644 --- a/tools/serving_sim/export_params.py +++ b/tools/serving_sim/export_params.py @@ -6,7 +6,7 @@ Unity はこの JSON を読み、値を手で写さない(LOG359 のずれ9「 使い方: python3 export_params.py results.json <出力先> (出力先は p2m-site の public/sim/serving-robot-params.json。unity_rules は出力先の今の値を引き継ぐ) - common:店に共通の値。role が "unity_measures" の値は Unity で測ってサイトに戻すための仮の値なので、Unity は読まない - stores:Unity で回す店(fam_p1・fam_p5・fam_p2・fam_p3・fam_p4・fam_p0、2026-11-02 から大型店の large_p6・large_p7)の値。registers はレジの数(v2.8) -- unity_conditions:Unity で回す条件(0〜17番は店ごとに混み具合が普通の3つ。18〜53番は2026-10-29に足した空いている・混んでいるの各3つ。54〜89番は2026-10-30に足したスタッフが少ない・多いの各3つ(混み具合は普通)。計90条件。90〜119番は2026-11-02に足した大型店⑧⑨。120〜131番は2026-11-04に足した下げ膳にも使う条件)と、同じ条件の試算の結果(40回の平均)。Unity の店はレジの内側に店員が1人だけなので、レジは1つ +- unity_conditions:Unity で回す条件(0〜17番は店ごとに混み具合が普通の3つ。18〜53番は2026-10-29に足した空いている・混んでいるの各3つ。54〜89番は2026-10-30に足したスタッフが少ない・多いの各3つ(混み具合は普通)。計90条件。90〜119番は2026-11-02に足した大型店⑧⑨。120〜131番は2026-11-04に足した下げ膳にも使う条件。132〜135番は2026-11-05に足した大型店⑧⑨の下げ膳)と、同じ条件の試算の結果(40回の平均)。Unity の店はレジの内側に店員が1人だけなので、レジは1つ """ import json import sys @@ -102,6 +102,18 @@ for k in UNITY_STORES: r = rows[h.key(c)] conds.append({"condition": c, "site_result": {m: r[m] for m in r if m not in c}}) +# 2026-11-05 エイイチと決めた:大型店⑧⑨にも配膳だけと配膳+下げ膳の比較動画を作るため、⑧⑨の下げ膳も Unity で回す。 +# 前の132条件(0〜131番)は並びも中身も変えず、後ろに足す。店ごとに 普通・真ん中の人数で ロボット1・2台(4条件・132〜135番)。 +# 大型店の結果は results.json ではなく iCloud の simulation/v2_9_large/(⑧ results_large_mac.json・⑨ results_large_p7_v2.json)にあるので、 +# rows に入っていなければ、その2つを results.json と同じ形で読み足してから回す +for k in UNITY_STORES_LARGE: + s = h.STORES[k] + for robots in (1, 2): + c = {"store": k, "staff": s["staff"][1], "robots": robots, "arrivals_per_h": s["arrivals"][1], "mode": "bus", + "trays": 3, "fragile_by": "any", "registers": UNITY_REGISTERS} + r = rows[h.key(c)] + conds.append({"condition": c, "site_result": {m: r[m] for m in r if m not in c}}) + D = { "meta": { "schema_version": "serving-robot-params/0.4",