Open falematte opened 4 months ago
We do not have it in the package currently.
You can use the same strategy of branch and prune. For a function $f: \mathbb{R}^n -> \mathbb{R}$, and a level y
X
.f(X)
with interval arithmetic.f(X)
does not contain y
, discard X
(it is guaranteed no part of the isoline is in X
). Otherwise bisect X
in two smaller boxes, and go back to 2 with both.You continue this until you get to boxes that are small enough. The remaining boxes are guaranteed to contain all of the y
-isolines.
I think that this is essentially what https://github.com/JuliaIntervals/IntervalOptimisation.jl does to find global optimums of a function.
However, as far as I know, in general it is hard to prove the existence of the isoline in a box. The reason is that by default proving existence and uniqueness is the same, and for an isoline the solution is never unique. I had a trick for something similar in my master thesis, but it was not published and I don't know if there is something similar in the literature.
What @Kolaru describes is what IntervalConstraintProgramming.jl does, although that package it not in a good state right now.
For proving existence / uniqueness of isolines, I believe there are approaches using a parametric version of the interval Newton method, e.g. https://epubs.siam.org/doi/10.1137/130906544
I find this package absolutely useful. Any way of using it or similar methods to find, given a function from R^n to R the isolines?