| I think you might also be confused about the difference between system identification and observability. The problem of constructing a model of a system's dynamics is system identification [0]. A state observer [1] tries to determine the internal state of the system given measurements of a system's inputs outputs and a model of its dynamics. The system is observable [2] if the state observer can fully reconstruct the internal state. One motivation for checking whether a system is observable is to determine whether a given combination of sensors (corresponding to a particular set of outputs) is sufficient to for the internal state to be determined, or whether more should be added. The state observer of a process is another dynamical system whose inputs are the process input and process output, and whose output is an estimate of the process' internal state; if the system is observable, then this estimate converges to the true state over time. This whole formalism doesn't really apply to something like your example, which has no dynamics. If you have the code for the hash function in your example, then determining the values that its internal variables take for an arbitrary input is trivial; if you don't then it is very difficult. In either case, your problem is different to the problem of observabilty in control theory. [0]: https://en.wikipedia.org/wiki/System_identification [1]: https://en.wikipedia.org/wiki/State_observer [2]: https://en.wikipedia.org/wiki/Observability |
While identiability typically is just a person running an experiment and saying "hey look these state values are unable to be recovered / estimated when I ran the algorithm". This is why I never understood why this analysis was very helpful as it isn't very useful outside of the specific experiment / motion / inputs used.
For example from [1] has these reasonably straightforward definitions.
[1] http://www.math.chalmers.se/Math/Research/Preprints/Doctoral...