示例#1
0
                             ailb,
                             aiub,
                             aiedges,
                             node_repair=rarray[-1],
                             asmp0=asmp0)
     aarray.append(node_ai)
 elif inspyear[ia]:
     # node ai
     node_ai = create_node_a("A" + str(ia + 1),
                             [aarray[-1], node_k, node_m], ainum, ailb,
                             aiub, aiedges)
     # node inspection
     node_insp = Node("Inspection" + str(ia + 1),
                      parents=None,
                      rvname='discrete')
     node_insp.set_node_kind(DECISION_NODE)
     node_insp.set_node_state_name(['no', 'insp1', 'insp2', 'insp3'])
     # node mi
     node_mi = create_node_mi("M" + str(ia + 1), [node_insp, node_ai],
                              minum, ailb, aiub, aiedges)
     # node ui
     node_ui = Node("Util_Insp" + str(ia + 1),
                    parents=[node_insp],
                    rvname='deterministic')
     node_ui.set_node_kind(UTILITY_NODE)
     node_ui.assign_func(inspection_utility)
     # node repair
     node_repair = Node("Repair" + str(ia + 1),
                        parents=[node_insp],
                        rvname='discrete')
     node_repair.set_node_kind(DECISION_NODE)
示例#2
0
     aiedges = np.linspace(0., aiub, ainum-1.)
 aiedges = np.hstack((aiedges,acrit+1e-3))
 if ia == 0:
     node_ai = create_node_a("A"+str(ia+1), [aarray[-1], node_k, node_m], ainum, ailb, aiub, aiedges)
     aarray.append(node_ai)
 elif inspyear[ia-1]:
     asmp0 = rv_a0.rvs(size=int(nsmp))
     node_ai = create_node_a("A"+str(ia+1), [aarray[-1], node_k, node_m], ainum, ailb, aiub, aiedges,
             node_repair=rarray[-1], asmp0=asmp0)
     aarray.append(node_ai)
 elif inspyear[ia]:
     # node ai
     node_ai = create_node_a("A"+str(ia+1), [aarray[-1], node_k, node_m], ainum, ailb, aiub, aiedges)
     # node inspection
     node_insp = Node("Inspection"+str(ia+1), parents=None, rvname='discrete')
     node_insp.set_node_kind(DECISION_NODE)
     node_insp.set_node_state_name(['no', 'insp1', 'insp2', 'insp3'])
     # node mi
     node_mi = create_node_mi("M"+str(ia+1), [node_insp, node_ai], minum, ailb, aiub, aiedges)
     # node ui
     node_ui = Node("Util_Insp"+str(ia+1), parents=[node_insp], rvname='deterministic')
     node_ui.set_node_kind(UTILITY_NODE)
     node_ui.assign_func(inspection_utility)
     # node repair
     node_repair = Node("Repair"+str(ia+1), parents=[node_insp], rvname='discrete')
     node_repair.set_node_kind(DECISION_NODE)
     node_repair.set_node_state_name(['no', 'repair'])
     # node ur
     node_ur = Node("Util_Repair"+str(ia+1), parents=[node_repair, node_ai], rvname='deterministic')
     node_ur.set_node_kind(UTILITY_NODE)
     def repair_utility(pstate, node_ai=node_ai):
示例#3
0
import numpy as np
import itertools
import sys

from bnexample1_funcs import form2y

# random variables
rvX1 = stats.lognorm(1., scale=np.exp(0))
rvX3 = stats.lognorm(1., scale=np.exp(3*np.sqrt(2)))

# create nodes
weather = Node("Weather", parents=None, rvname='discrete')
forecast = Node("Forecast", parents=[weather], rvname='discrete')
umbrella = Node("Umbrella", parents=[forecast], rvname='discrete')
satisfy = Node("Satisfaction", parents=[weather, umbrella], rvname='deterministic')
umbrella.set_node_kind(DECISION_NODE)
satisfy.set_node_kind(UTILITY_NODE)

# assign CPT
# node weather
weathercpt = np.array([[0.7, 0.3]])
weather.assign_cpt(weathercpt, statenames=['sunshine', 'rain'])
# node forecast
forecastcpt = np.array([[0.7, 0.2, 0.1], [0.15, 0.25, 0.6]])
forecast.assign_cpt(forecastcpt, statenames=['sunny', 'cloudy', 'rainy'])
# node umbrella
umbrella.set_node_state_name(['take_umbrella', 'dont_take_umbrella'])
# node satisfy
def calculate_util(pstate):
    forecaststate,umbrellastate = pstate
    if forecaststate==0 and umbrellastate==0:
示例#4
0
import sys

from bnexample1_funcs import form2y

# random variables
rvX1 = stats.lognorm(1., scale=np.exp(0))
rvX3 = stats.lognorm(1., scale=np.exp(3 * np.sqrt(2)))

# create nodes
weather = Node("Weather", parents=None, rvname='discrete')
forecast = Node("Forecast", parents=[weather], rvname='discrete')
umbrella = Node("Umbrella", parents=[forecast], rvname='discrete')
satisfy = Node("Satisfaction",
               parents=[weather, umbrella],
               rvname='deterministic')
umbrella.set_node_kind(DECISION_NODE)
satisfy.set_node_kind(UTILITY_NODE)

# assign CPT
# node weather
weathercpt = np.array([[0.7, 0.3]])
weather.assign_cpt(weathercpt, statenames=['sunshine', 'rain'])
# node forecast
forecastcpt = np.array([[0.7, 0.2, 0.1], [0.15, 0.25, 0.6]])
forecast.assign_cpt(forecastcpt, statenames=['sunny', 'cloudy', 'rainy'])
# node umbrella
umbrella.set_node_state_name(['take_umbrella', 'dont_take_umbrella'])


# node satisfy
def calculate_util(pstate):