-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use exact tdom in overapproximation of Taylor models #189
Merged
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Two questions:
t0
the expansion point, or is itinf(tdom)
?Δt
different fromtdom
?One remark: I think the correct evaluation should read
TM.evaluate(set(R), tdom-t0)
, witht0
the point where the Taylor expansion is constructed.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The
R
here isxTM1v
in thevalidated_integ
algorithm, defined in this line:ReachabilityAnalysis.jl/src/Algorithms/TMJets/validated_integ.jl
Line 530 in 824789c
For
xTM1v
, the expansions in time are centered at zero (zI
). That's whyTM.evaluate(set(R), tdom)
should matchTM.evaluate(set(R), tdom-tdom.x0)
, which should also matchTM.evaluate(set(R), Δt - t0)
modulo rounding errors.Here,
t0
corresponds to the start time of this reach-set, which is the final time of the previously computed reach-set.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To be clear,
The expansion point of this taylor model is
inf(tdom)
, which is zero by construction invalidated_integ
. OTOH,t0
is what we call thetstart(R)
; think of a flowpipe as a union of reach-sets, and each reach-sets carries it's time span that you can access withtspan(R)
; there iststart(R)
andtend(R)
which are just theinf
andsup
of the intervaltspan(R)
.Yes.
tdom
is the domain of the taylor model which by construction are always of the form[0, t]
. However,Δt = tspan(R)
.Storing time like that allows to see flowpipes as "one thing", instead of the reach-sets in isolation; in other words, you can take a solution and ask for
sol(1 .. 2)
which will return all those reach-sets whose time intervals intersect1 .. 2
; and also dosol(30.5)
and this will return the reach-set corresponding to time30.5
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the explanation; that clarifies a lot.
One disadvantage of storing [t0, t1], [t1, t2], [t2, t3], ... is that you will loose precision if the integration span is large: simply think that
eps(tn)
grows with a growingtn
, so you loose some significant figures. That's the reason thatvalidated_integ
returns the vector[t0, t1, t2, ...]
, and theTaylorModel1
s spanning the interval [0, δtn].There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting observation! As i did in this PR, one can access this "true" domain through
TM.domain(first(set(R)))
; i pick the first one because it's the same for all components. Perhaps there should be a getter function for this.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure how general this is, I mean, to have a vector of TM1s which share the same domain. I also think we should provide a getter function for
tm.x0
...There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 see PR #190.
i've opened JuliaIntervals/TaylorModels.jl#75