I use this code to create the pump example:
Code: Select all
Network network = new Network();
int pump = network.addNode(Network.NodeType.Cpt, "Pump");
network.setOutcomeId(pump, 0, "non_stop");
network.setOutcomeId(pump, 1, "failure");
network.addOutcome(pump, "ok"); // *
int crack = network.addNode(Network.NodeType.Cpt, "Crack");
network.setOutcomeId(crack, 0, "present");
network.setOutcomeId(crack, 1, "absent"); // *
int sensor = network.addNode(Network.NodeType.NoisyAdder, "Sensor");
network.setOutcomeId(sensor, 0, "high");
network.setOutcomeId(sensor, 1, "normal"); // *
network.setOutcomeId(sensor, 2, "low");
network.addArc(pump, sensor);
network.addArc(crack, sensor);
network.setNodeDefinition(pump, getP3(0));
network.setNodeDefinition(crack, getP2(1));
network.setNodeDefinition(sensor, new double[]{
0.8, 0.1, 0.1, // nonstop, absent*
0.05, 0.15, 0.8, // fail, absent*
0.0, 1.0, 0.0, // ok*, absent*
0.02, 0.08, 0.9, // ok*, present
0.0, 1.0, 0.0, // ok*, absent*
0.0, 1.0, 0.0, // leak
});
network.writeFile("pump.xdsl");
Code: Select all
<?xml version="1.0" encoding="ISO-8859-1"?>
<smile version="1.0" id="Unnamed" numsamples="1000" discsamples="10000">
<nodes>
<cpt id="Pump">
<state id="non_stop" />
<state id="failure" />
<state id="ok" />
<probabilities>0 1 0</probabilities>
</cpt>
<cpt id="Crack">
<state id="present" />
<state id="absent" />
<probabilities>1 0</probabilities>
</cpt>
<noisyadder id="Sensor">
<state id="high" />
<state id="normal" />
<state id="low" />
<parents>Pump Crack</parents>
<dstates>1 2 1</dstates>
<weights>1 1 1</weights>
<parameters>0.3333333333333333 0.3333333333333333 0.3333333333333333 0.3333333333333333 0.3333333333333333 0.3333333333333333 0 1 0 0.3333333333333333 0.3333333333333333 0.3333333333333333 0 1 0 0 1 0</parameters>
</noisyadder>
</nodes>
</smile>
What are <dstates> and how can I set them using the java api?
-Jochen