def runCode(generator):
  cpcode = generator.generate(m)
  cc = CPCompiler()
  runmodel = cc.compileCode(cpcode,d)
  runmodel.iterations = 1000
  result = runmodel.run()
  return result
Beispiel #2
0
def doLearn(model,data):
  cm = LinearCPLogicGenerator()
  cpcode = cm.generate(model)

  cc = CPCompiler()
  runmodel = cc.compileCode(cpcode,data)
  runmodel.iterations = 500
  return runmodel.run()
Beispiel #3
0
#for i in xrange(i+1,i+1+15):
#  data.append(ProblogExample(i,"throws(john),breaks"))
#for i in xrange(i+1,i+1+10):
#  data.append(ProblogExample(i,"throws(john)"))

#i = 0
#for i in xrange(i+1,i+1+23):
#  data.append(ProblogExample(i,"throws(mary),throws(john),breaks"))
#for i in xrange(i+1,i+1+2):
#  data.append(ProblogExample(i,"throws(mary),throws(john),problog_not(breaks)"))
#for i in xrange(i+1,i+1+15):
#  data.append(ProblogExample(i,"problog_not(throws_mary),throws(john),breaks"))
#for i in xrange(i+1,i+1+10):
#  data.append(ProblogExample(i,"problog_not(throws_mary),throws(john),problog_not(breaks)"))

#To make it work, be sure the proofs only contain positive information
#if necessary, marginalize variables
data.append(ProblogExample(0,"breaks",weight=0.76))
data.append(ProblogExample(1,"throws(mary)",weight=0.5))
data.append(ProblogExample(2,"throws(john)",weight=1))
data.append(ProblogExample(3,"throws(john),throws(mary),breaks",weight=0.46))
#We give the weights, so don't calculate them
cc.weight=False

runmodel = cc.compileCode(cpcode,otherexamples=data)
runmodel.iterations = 500
result = runmodel.run()
g = GnuplotDrawer()
g.draw(result)
pprint.pprint(result.probs[-1])
Beispiel #4
0
from semcplogic.model import ModelBuilder
from semcplogic.cpmodel import NonLinearCPLogicGenerator,TableResultInterpreter
from semcplogic.cpcompiler import CPCompiler
from semcplogic.problogresult import GnuplotDrawer
import pprint

b = ModelBuilder()
b.addNode("a")
b.addNode("b",0,0)
b.addNode("c",0,0)
b.setInfluence("a","b",5)
b.setInfluence("a","c",5)
m = b.consume()

m.nodes["c"].setLevels(["laag","middel","hoog"])
d = m.sample(100)
d2 = d.discretise({"a":["laag","hoog"],"b":["laag","hoog"],"c":["laag","middel","hoog"]})

cm = NonLinearCPLogicGenerator()
cpcode = cm.generate(m)

cc = CPCompiler()
runmodel = cc.compileCode(cpcode,d2)
runmodel.iterations = 100
result = runmodel.run()
g = GnuplotDrawer()
g.draw(result)
t = TableResultInterpreter()
r = t.interprete(m,result.latest())
pprint.pprint(r)