Added a test notebook for the 2 step Homotopy #336
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We tried to test the implementation of the two step Homotopy as a part of the Hackathon. For reference, this was the task:
Current homotopy methods are not tailored to any system in particular. This results in a significant overhead in the "warm-up" step, where roots are deformed from a polynomial system with many roots into a generic system with less roots that serves as the start system. We could however gain efficiency by directly input a start system where the number of solutions is exactly an upper bound for the target system to solve. A (known) [https://www.sciencedirect.com/science/article/pii/S0021782423001563] example, for N linearly coupled parametric oscillators with coupling J is the system with J=0, which saturates at 5^N solutions.
The goal is to implement and test this homotopy, analyzing how big with N can we get.
We tried by setting J=0 at the warm up step, but the warm up is still very slow for large systems (8 oscillators). For small systems, it appears as this warm up works and gives all real solutions of the problem in the second step. Only the 0 solution seems to get lost at times, but that should be easy to recover.
We therefore suggest to try solving the warmup for every oscillator individually, then constructing the warmup solution through combinatorics from the individual solution and finally doing the second step.