########################################################### # # # Construct a BDD and a ROBDD for a given 3-out-of-5 # # system and evaluate its reliability # # # # This system is taken from Exam 2022 problem 1 # # # ########################################################### from c_bdd import BDDSystem from c_robdd import ROBDDSystem from c_conthreshold import BDDConsecutiveThreshold, ROBDDConsecutiveThreshold # Component reliabilities p = 0.5 # Component weights a = [1, 1, 1, 1, 1] # Threshold b = 3 # Initial value s0 = 0 # Number of components n = len(a) # Sum of weights wsum = 0 for wg in a: wsum += wg sys = BDDSystem(BDDConsecutiveThreshold(a, wsum, s0, b)) result = sys.calculateReliability0(p) sys.printSystem() print("") print("---------------") print("BDD-method:") print("---------------") print("System unreliability = ", result[0]) print("System reliability = ", result[1]) print("") print("------------------------") print("") sys = ROBDDSystem(ROBDDConsecutiveThreshold(a, wsum, s0, b)) result = sys.calculateReliability0(p) sys.printSystem() print("") print("---------------") print("ROBDD-method:") print("---------------") print("System unreliability = ", result[0]) print("System reliability = ", result[1])