From cb668e4961f6b67db18b73b0989e0b3448fd9956 Mon Sep 17 00:00:00 2001 From: Glen Whitney Date: Thu, 8 Feb 2024 21:20:34 +0000 Subject: [PATCH] Update Engine prototype --- Engine-prototype.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Engine-prototype.md b/Engine-prototype.md index a5655b8..da8e26a 100644 --- a/Engine-prototype.md +++ b/Engine-prototype.md @@ -19,4 +19,15 @@ 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 \ No newline at end of file +* Three mutually tangent spheres + +## General simplifications + +Some of these are obvious, but we may as well write them down. Note we may want to simultaneously run different solvers/heuristics and update the display as they each return new/useful information, killing ones that become redundant. + +* Keep the network of entities (or variables?) and constraints. Only ever work on one connected component of this at a time. +* Conversely, track rigid subnetworks, and replace them with fewer working variables. [What do we do about/how do we display over-constrained subnetworks? Do we display the configuration "nearest" to satisfying all the constraints in some sense but show it some bright alarm state the violated constraints, perhaps graded by "how badly" the constraint fails?] +* Track the current displayed witnesses of satisfying the constraints (after all, that's what we are showing). In lightly constrained networks, temporarily add constraints fixing all the entities except for the ones that are being moved, backing off on some temporary constraints by distance in the constraint network until we get a low-dimensional component that we are on, and move just along that component. + +## Overall solver approaches +[Need to start listing some here.] \ No newline at end of file