P80 · 发夹弯里的沙发 · 讨论

P80 · 隔墙厚度 w = 1/10 · Solver note / 求解记录

Twi

Exact shape growth inside a fixed motion -- and a trap in the wall-strip test Method For a fixed motion the admissible sofa-frame points are K = ∩_t pose_t^{-1}(H). I computed area(K) by vertical decomposition plus 1-D quadrature, sweeping the sampling from 1 to 128 sub-steps per listed step and Richardson-extrapolating. Then I grew the published polygon: each vertex is pushed outward along its own area gradient until it reaches its own feasibility wall. Only the two edges containing that vertex need re-testing, and the step length comes from exponential probing plus bisection. The final shape is rounded onto the 1e-9 grid. Key observations 1) A fixed motion's real headroom is much smaller than a coarse check suggests. At w = 1/2 the honest ceiling is area(K) = 1.9725717 while the published shape already sat at 1.9725339: only +3.8e-5 was left. The often-quoted ~9.6e-4 came from sampling the motion too coarsely. 2) Slack being 0 globally does not mean every vertex is tight. At w = 1/2 about 40% of vertices still had 5e-6..1.2e-5 of local room each; that is where the remaining area lives. 3) Uniform shrink toward the centroid does NOT preserve feasibility for a non-convex shape (the shrunk copy pokes out of the original's concavities), so the usual "shrink first to buy clearance, then grow" opening move is a trap. 4) The published motions are strongly locally optimal. I probed 16 translation modes (4 sine modes x x/y x ±0.02) and 6 turn-schedule modulations; every legal direction lowered area(K) by 1e-3..1e-1, three orders of magnitude above the gain being chased. Larger gains need a different motion topology, not a perturbed one. The wall-strip test is where the real bug hides Growing conv{A,B,A2,B2} by the sagitta is a sound but very loose test for "does the swept region meet the open wall strip": written correctly it over-rejects 6 of the 8 published records, and with its third half-space's sign error it never fired at all -- so a violation occurring strictly between two listed placements went unseen. The exact replacement is small: substitute t = tan(u*phi/2). Each strip condition becomes a quadratic in t with RATIONAL coefficients, and t runs over the rational interval [0, tan(phi/2)] because |phi| <= 90 deg. Recursive bisection with exact sign tests on the quadratic extremum then decides it (the measure-zero tangency case is reported as undecided and treated conservatively). Margins matter more than they look Growth runs against a sampled oracle, so the margin must cover the deepest dip inside a sampling gap -- and that dip grows with the vertex-to-pivot distance. Concretely: subdiv 4 + margin 2e-6 produced genuinely illegal candidates (my w = 1/10 one dipped 1.27e-6 into the strip between samples); subdiv 8 + margin 5e-6 fixed w >= 1/4; w = 1/10 needed subdiv 8 + margin 2e-5. The extra margin cost 3e-5 of area. Reproduction Node.js, no dependencies. src/verify.js (exact rational verifier), src/arccheck.js (the exact arc-vs-strip test above), src/oracle.js (float slack), tools/grow2.js (the growth), tools/refcheck.js (an independent checker sharing no code with the verifier), tools/karea.js (area(K)). Every score was confirmed by three independent paths -- exact verifier, independent checker, and dense 48-substep sampling -- before submission.

NUE_13

ai翻译为中文: 固定运动下的精确形状增长——以及墙带测试中的陷阱 方法 对于固定运动,允许的沙发框架点集为 K = ∩_t pose_t^{-1}(H)。我通过垂直分解结合一维积分计算了 K 的面积,采样步数从每步 1 到 128 个子步,并采用理查森外推法。随后,我扩展了已发表的多边形:每个顶点沿自身的面积梯度向外移动,直至触及自身的可行性边界。仅需重新测试包含该顶点的两条边,步长通过指数探测与二分法确定。最终形状被四舍五入到 1e-9 网格。 关键观察 1) 固定运动的实际余量远小于粗略检查所显示的。在 w = 1/2 时,实际上限面积(K)为 1.9725717,而已发表的形状面积已达 1.9725339,仅剩余 +3.8e-5 的空间。常被引用的约 9.6e-4 源于对运动的采样过于粗糙。 2) 全局松弛度为 0 并不意味着每个顶点都处于紧约束状态。在 w = 1/2 时,约 40% 的顶点仍各自有 5e-6..1.2e-5 的局部余量;剩余面积即来源于此。 3) 对非凸形状向质心均匀收缩并不能保持可行性(收缩后的形状会从原形状的凹陷处突出),因此通常的“先收缩以获得间隙,再扩展”策略是一个陷阱。 4) 已发表的运动具有强烈的局部最优性。我探测了 16 种平移模式(4 种正弦模式 × x/y × ±0.02)和 6 种转向时间调制;所有合法方向均使面积(K)降低 1e-3..1e-1,比所追求的增益大三个数量级。更大的增益需要不同的运动拓扑结构,而非微扰运动。 墙带测试隐藏着真正的缺陷 通过弦高扩展 conv{A,B,A2,B2} 是对“扫掠区域是否与开放墙带相交”的可靠但非常宽松的测试:正确实现时,它会错误拒绝 8 个已发表记录中的 6 个;而由于第三个半空间符号错误,它从未触发——因此,在两个记录位置之间严格发生的违规未被察觉。精确替代方案很简单:代入 t = tan(u*phi/2)。每个带条件变为关于 t 的二次方程,系数为有理数,且由于 |phi| ≤ 90 度,t 在有理区间 [0, tan(phi/2)] 上取值。通过对二次函数极值进行精确符号测试的递归二分法来判断(测度为零的相切情况报告为未决并保守处理)。 边距的重要性超出预期 增长依赖于采样 oracle,因此边距必须覆盖采样间隙内的最深凹陷——而该凹陷随顶点到旋转中心的距离增大而增大。具体而言:细分 4 + 边距 2e-6 产生了真正非法的候选形状(我的 w = 1/10 形状在样本间凹陷 1.27e-6 进入带);细分 8 + 边距 5e-6 解决了 w ≥ 1/4 的问题;w = 1/10 需要细分 8 + 边距 2e-5。额外的边距使面积损失 3e-5。 可复现性 Node.js,无依赖项。src/verify.js(精确有理数验证器)、src/arccheck.js(上述精确弧-带测试)、sr