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

How to deal with empty Terms and/or Zero/One BDDs #4

Open
michaelhglass opened this issue Jul 4, 2017 · 4 comments
Open

How to deal with empty Terms and/or Zero/One BDDs #4

michaelhglass opened this issue Jul 4, 2017 · 4 comments
Assignees
Labels

Comments

@michaelhglass
Copy link
Member

We have a rich processing chain that directly derives reliability functions from terms and/or BDDs. However, if we pass e.g. a zero or a one BDD, the functions will typically observe a system that fails at time 0 or will never fail. Both situations are against the assumption of a reliability function to be 1 at time 0 and 0 at infinity. We need to think about a concept to resolve this throughout JReliability.

@felixreimann
Copy link
Collaborator

Would specific degenerated reliability functions do the job? https://en.wikipedia.org/wiki/Degenerate_distribution
A reliability function has to be monotonically decreasing. Wouldn't this also hold for the constant R(x)=1 and the constant R(x)=0 function?
What else would break if we just implement it like this (distributions, the gui, ...)?

@michaelhglass
Copy link
Member Author

This I am not sure. By definition, a reliability function should be 1 at time 0 and 0 at infinity. So both degenerated function either violate the condition at 1 or at infinity. Consider for example the evaluator for the first moment and a constant 1 function (not to mix with constant failure rate). The area below the curve is then infinity. I think we should check what happens to our framework. One may be able to tolerate degenerated functions, giving the user respective strange results. I am just unsure whether all our approximations etc. terminate. Should we go ahead and enable degenerated functions? Then we should possibly create a branch and check all functions.
Follow-up question would then be: Should we create a marker for ReliabilityFunctions that decay to a degenerated function? Something like "isDegenerated?"? This could ease the consideration also for tests. Several functions can be easily configured to become degenerated (Linear term with empty lhs).

@felixreimann
Copy link
Collaborator

felixreimann commented Jul 7, 2017 via email

@michaelhglass
Copy link
Member Author

Hmmmm. So this basically means we would only capture this when converting something to ReliabilityFunction. But we could also just create a new ReliabilityFunction. :D Also, for example the Moment Evaluator would benefit from being able to ask the Function whether the assumptions will hold; otherwise, we would have to integrate this check in every class. Lots of options.

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

No branches or pull requests

2 participants