Skip to content
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

Substitutions (Delete Terms, Recovery Rules, Exchange Events) #154

Closed
4 tasks done
rakhimov opened this issue Dec 29, 2016 · 0 comments
Closed
4 tasks done

Substitutions (Delete Terms, Recovery Rules, Exchange Events) #154

rakhimov opened this issue Dec 29, 2016 · 0 comments

Comments

@rakhimov
Copy link
Owner

rakhimov commented Dec 29, 2016

The construct is unique to the Open-PSA MEF covering the following extra-logical constructs:

  • Delete terms
  • Declarative recovery rules
  • Non-declarative recovery rules
  • Exchange events
@rakhimov rakhimov added this to the v0.15.0 milestone Aug 5, 2017
@rakhimov rakhimov modified the milestones: v0.15.0, v0.16.0 Aug 14, 2017
rakhimov added a commit that referenced this issue Nov 1, 2017
The name is modified to be required.
The target is corrected to be a single event.

Issue #154
rakhimov added a commit that referenced this issue Nov 1, 2017
rakhimov added a commit that referenced this issue Nov 1, 2017
This is missing from the Open-PSA MEF specification.

Issue #154
rakhimov added a commit that referenced this issue Nov 1, 2017
Only basic validations for duplicates and missing events
are implemented.
Substitution specific validation must be implemented separately.

Issue #154
rakhimov added a commit that referenced this issue Nov 1, 2017
- Only basic events are allowed.

Issue #154
rakhimov added a commit that referenced this issue Nov 1, 2017
Delete Terms, Recovery Rules, and Exchange Event types
are deduced from the Substitution setups.
If the deduced type does not match the explicitly declared one,
the input is considered invalid.

Issue #154
rakhimov added a commit that referenced this issue Nov 1, 2017
This substitution case has no effect on analysis,
and strictly, it cannot be classified as substitution.

Issue #154
rakhimov added a commit that referenced this issue Nov 1, 2017
Non-declarative substitutions
have to be implemented with set operations at post-processing.
Complex Boolean formulas would require more expensive solutions
(i.e., solving the general satisfiability).

The declarative substitutions, in contrast,
can simply use implication operator at pre-processing,
so there's no need to restrict formulas for the declarative approaches.

Issue #154
rakhimov added a commit that referenced this issue Nov 1, 2017
Target cannot appear in a source set of non-declarative Substitutions.

Issue #154
rakhimov added a commit that referenced this issue Nov 1, 2017
No target or source events can be arguments of another hypothesis.

Issue #154
rakhimov added a commit that referenced this issue Nov 1, 2017
rakhimov added a commit that referenced this issue Nov 9, 2017
Non-declarative substitutions with False target
are the same as declarative substitutions (delete-terms)
since the source set has no effect (irrelevant).

Issue #154
rakhimov added a commit that referenced this issue Nov 9, 2017
rakhimov added a commit that referenced this issue Nov 9, 2017
Handling of CCF events with non-declarative substitutions
requires major rework of the current CCF application approaches.
Non-declarative substitutions need to be applied before CCF,
and the analysis needs to rerun again.
For example, this gets very hairy very quickly
with application of truncations.

Issue #154
rakhimov added a commit that referenced this issue Nov 9, 2017
Declarative substitutions (e.g., delete terms, recovery rules)
are applied to the Boolean formula directly (=> operator)
as described in the Open-PSA MEF.

PDAG needs to be aware of all the events in the substitutions
because they may not appear in the original fault tree for construction.
The Model is passed directly to PDAG to gather substitution events.
This is convenient but not the ideal approach.
It would be more appropriate to pass
only the relevant set of substitutions instead of the whole model.

Issue #154
rakhimov added a commit that referenced this issue Nov 18, 2017
Non-declarative substitutions can only be analyzed with approximations.
BDD and prime-implicants cannot apply non-declarative substitutions
and guarantee the exact solutions.
The analysis must run with minimal cut sets
and probability approximations.

Issue #154
rakhimov added a commit that referenced this issue Nov 18, 2017
These substitutions cannot be applied by PDAG at construction.
The analysis must handle non-declarative substitutions with sets.

Issue #154
rakhimov added a commit that referenced this issue Nov 18, 2017
The implementation is naive with O(N * M) complexity.
It doesn't take advantage of ZBDD features.
The reason for suboptimal implementation is
that non-declarative substitutions should be avoided in the first place.

This will be optimized if there is more need for it in future.
In addition, more validation/verification tests are required
before taking advantage of ZBDD features.

The current solution for Substitution application is adhoc
because all/most facilities assume declarative constructs,
and non-declarative approaches are bolted-in.

Issue #154
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant