###########################################################
# #
# Construct a BDD and a ROBDD for a given network #
# system, and evaluate its reliability #
# #
###########################################################
from c_bdd import BDDSystem
from c_robdd import ROBDDSystem
from c_graph import BDDGraph, ROBDDGraph
import numpy as np
p = 0.5
matrix = np.array([[1, 1, 0, 0, 0], \
[1, 0, 1, 1, 0], \
[0, 1, 1, 0, 1], \
[0, 0, 0, 1, 1]])
tlist = [0,3]
sys = BDDSystem(BDDGraph(matrix, tlist))
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(ROBDDGraph(matrix, tlist))
result = sys.calculateReliability0(p)
sys.printSystem()
print("")
print("---------------")
print("ROBDD-method:")
print("---------------")
print("System unreliability = ", result[0])
print("System reliability = ", result[1])