Comments (4)
Original comment by Luca Geretti (Bitbucket: lgeretti, GitHub: lgeretti)
Why can't we postpone the correctness of the definition of the automaton/system to an evaluation phase before evolution? Moreover, I think we may want to be able to overspecify behavior and possibly give a warning, if (let's say) we want to analyse the component in isolation. I'm looking at a way to provide one and only one way to define a component (and then a system), and I am willing to accept some degrees of freedom.
from ariadne.
Original comment by Pieter Collins (Bitbucket: pietercollins, GitHub: pietercollins)
There's a problem with different use-cases here. When we get a mode corresponding to a DiscreteLocation for a complete hybrid automaton (e.g. when computing system evolution), then we should not specify variables which are not used, so your example should throw an exception (or at least give a warning, since in principle we can compute the evolution). However, if the hybrid automaton is intended as a component of a larger system, then it's convenient to be able to overspecify the discrete variables, especially for inspecting the system.
I've made some initial changes: I've changed automaton.has_mode(location) to only return true if the discrete variables match exactly, and automaton.has_partial_mode(location) to return true also if location overspecifies variables in a mode. However, automaton.mode(location) works if location is overspecified, but does return only the defined discrete variables. I could then change the evolver classes to throw if the mode is overspecified.
See master-automaton for the current changes.
from ariadne.
Original comment by Luca Geretti (Bitbucket: lgeretti, GitHub: lgeretti)
If we have three automata, we compose two of them as the system under evolution, and use an initial set with locations from all three, no issue arises.
Concept example:
#!c++
AtomicHybridAutomaton first = getFirstAutomaton();
AtomicHybridAutomaton second = getSecondAutomaton();
CompositeHybridAutomaton composition({first,second});
DiscreteLocation initial_location={first|work,second|run,third|play};
A have a rather complex compositional surgery system in my macos_support branch right now, if you want to check it.
from ariadne.
Original comment by Pieter Collins (Bitbucket: pietercollins, GitHub: pietercollins)
Please could you give an example!
from ariadne.
Related Issues (20)
- Fix bug in multiplication of Taylor models HOT 1
- shared_ptr::unique not available anymore in C++20 HOT 1
- Segmentation fault in VectorFieldSimulator HOT 1
- Implement inner Enclosure approximations
- Add drawer.hpp to ariadne.hpp
- Implement constraint-based tuning of reachability properties
- pytest not found under macOS HOT 1
- Simplify results of Integrators
- Improving grid method scalability
- Installation issues from the repository HOT 13
- Python examples not updated
- Segmentation fault and extracting solution HOT 2
- Python extraction of HybridEnclosure from HybridEnclosureListSet segfaults
- Python import issues under gcc12
- Naming and documentation of optimisation solvers
- Improved linear equation solving
- Fix bugs in nonlinear optimisation solvers
- chrono library not properly working under Ubuntu Clang HOT 1
- Path issues for Python
- Relax GCC -Wshadow warning to -Wshadow=local
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ariadne.