Ejemplo n.º 1
0
#!/usr/bin/env python
import openpnl
#print dir(openpnl)

model = openpnl.pnlExCreateRndArHMM()
#model = openpnl.pnlExCreateKjaerulfsBNet()

pArHMM = openpnl.CDBN_Create(model)
pInfEng = openpnl.C1_5SliceJtreeInfEngine_Create(pArHMM)
nTimeSlices = 5

# set up evidence ...
pEvidences = openpnl.newCEvidences(nTimeSlices)
for i in range(0,nTimeSlices):
    ev = openpnl.mkEvidence( pArHMM, [1], [1.0] );
    openpnl.assignEvidence( pEvidences, ev, i )

pInfEng.DefineProcedure(openpnl.ptSmoothing, nTimeSlices)
pInfEng.EnterEvidence(pEvidences, nTimeSlices)
pInfEng.Smoothing()

queryPrior = [0]
#queryPrior = openpnl.intVector([0])
queryPriorSize = 1
slice_ = 0

pInfEng.MarginalNodes(queryPrior, queryPriorSize, slice_)
pQueryJPD = pInfEng.GetQueryJPD();

mdl = pQueryJPD.GetModelDomain()
mat = pQueryJPD.GetMatrix(openpnl.matTable)
Ejemplo n.º 2
0
#!/usr/bin/env python
import openpnl

pWSBnet = openpnl.pnlExCreateWaterSprinklerBNet()
pWSBnet.GetGraph().Dump()

pEvidForWS = openpnl.mkEvidence(pWSBnet, [0], [1])
pNaiveInf = openpnl.CNaiveInfEngine.Create(pWSBnet)
pNaiveInf.EnterEvidence(pEvidForWS)

nodes = [1, 3]
pNaiveInf.MarginalNodes(nodes)

pMarg = pNaiveInf.GetQueryJPD()

obsVls = openpnl.pConstValueVector()
#print obsVls
#pEvidForWS.GetObsNodesWithValues( openpnl.toIntVector(nodes), obsVls )

print openpnl.convertVector(
    pMarg.GetMatrix(openpnl.matTable).ConvertToDense().GetVector())
Ejemplo n.º 3
0
    ]:

    parents = pGraph.GetParents(node);
    print "node: ", node, " parents: ", parents
    domain = list(parents) + [node]
    cCPD = openpnl.CTabularCPD.Create( pBNet.GetModelDomain() , openpnl.toConstIntVector(domain) )
    cCPD.AllocMatrix( cpdvals, openpnl.matTable )
    cCPD.NormalizeCPD()
    pBNet.AttachFactor(cCPD)


# Set up the inference engine
infEngine = openpnl.CPearlInfEngine.Create( pBNet );

# Problem 1 P(W|C=0)
ev = openpnl.mkEvidence( pBNet, [0], [0] )
infEngine.EnterEvidence(ev)
infEngine.pyMarginalNodes( [3], 0 )
infEngine.GetQueryJPD().Dump()
m = openpnl.convertVector(infEngine.GetQueryJPD().GetMatrix(openpnl.matTable).ConvertToDense().GetVector())
index = np.arange(0,2,1)
plt.figure()
plt.bar(index, m)
plt.title("Marginal of P(WetGrass|Cloudy=False)")
plt.ylabel("P(WetGress = x)");
plt.xticks(index+0.5, ('WetGrass=False', "WetGrass=True"))


# Problem 1 P(W|C=1)
ev = openpnl.mkEvidence( pBNet, [0], [1] )
infEngine.EnterEvidence(ev)
Ejemplo n.º 4
0
#!/usr/bin/env python
import openpnl

pWSBnet = openpnl.pnlExCreateWaterSprinklerBNet()
pWSBnet.GetGraph().Dump()

pEvidForWS = openpnl.mkEvidence(pWSBnet, [0], [1])
pNaiveInf = openpnl.CNaiveInfEngine.Create(pWSBnet)
pNaiveInf.EnterEvidence(pEvidForWS)

nodes = [1, 3]
pNaiveInf.MarginalNodes(nodes)

pMarg = pNaiveInf.GetQueryJPD()

obsVls = openpnl.pConstValueVector()
# print obsVls
# pEvidForWS.GetObsNodesWithValues( openpnl.toIntVector(nodes), obsVls )


print openpnl.convertVector(pMarg.GetMatrix(openpnl.matTable).ConvertToDense().GetVector())