From 2d1fccd845e184a5dca8660e1c26782cfee9b431 Mon Sep 17 00:00:00 2001 From: Vectornaut Date: Tue, 13 Feb 2024 21:00:41 +0000 Subject: [PATCH] Add challenging examples with respect to performance and finding witnesses --- Engine-prototype.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Engine-prototype.md b/Engine-prototype.md index 10cca17..78618fa 100644 --- a/Engine-prototype.md +++ b/Engine-prototype.md @@ -5,6 +5,13 @@ * In tests with no scale constraint (based on commit 8e33987), hyperplanes through the origin tend to hit around 1.5 times as many real solutions as ones through the trivial solution. * In tests with a scale constraint (based on commit af1d31f), the hit ratio drops to 1.0 to 1.2, and becomes more variable. +### Challenging examples + +With three mutually tangent spheres, `HomotopyContinuation` doesn't seem to find solutions, even though we know there are some. One solution, in $[r, s, x, y, z]$ coordinates, is: +* $[0, 0, 0, 0, 1]$ (plane perpendicular to $z$ axis) +* $[1, 0, 0, 0, 1]$ (unit sphere above plane, touching at $[x, y] = [0 ,0]$) +* $[1, 4, 0, 2, 1]$ (unit sphere above plane, touching at $[x, y] = [0, 2]$) + ## Rational points One strategy for exploring a positive-dimensional solution variety is to enumerate rational points. When the user drags the display, we move numerically along the solution variety, snapping to the nearest known rational point when the drag ends. @@ -28,6 +35,8 @@ The size of the Gröbner basis depends a lot on the variable order. For the exam * One point on a sphere * Two points on a sphere * Three mutually tangent spheres +* Two spheres, and a bunch of points which are each on both spheres + * With the current system for turning a construction into a system of equations, the Gröbner basis calculation becomes overwhelmingly big with three points and two spheres. Removing one of the points makes the calculation totally manageable. ## General simplifications