Package org.integratedmodelling.riskwiz.bn

Examples of org.integratedmodelling.riskwiz.bn.BNNode


        if (curNodeName == null) {
            throw new RuntimeException(
                    "Ill-formed <deterministic> tag, no names specified!");
        }

        BNNode curNode = graph.getBeliefNode(curNodeName);

        if (curNode == null) {
            throw new RuntimeException(
                    "Ill-formed <deterministic> tag, non-existant names specified!");
        }

        if (DetTableString == null) {
            throw new RuntimeException(
                    "Ill-formed <deterministic> tag, no values specified!");
        }

        // Post processing
        for (Iterator i = parents.iterator(); i.hasNext();) {
            String parentNodeName = (String) i.next();

            graph.addEdge(parentNodeName, curNodeName);
        }

        // int domainOrder= curNode.getDomain().getOrder();
        IOUtil.parseDetTableString(DetTableString,
                (TabularDetF) curNode.getFunction());
    }
View Full Code Here


        if (curNodeName == null) {
            throw new RuntimeException(
                    "Ill-formed <utility> tag, no names specified!");
        }

        BNNode curNode = graph.getBeliefNode(curNodeName);

        if (curNode == null) {
            throw new RuntimeException(
                    "Ill-formed <utility> tag, non-existant names specified!");
        }

        // Post processing
        for (Iterator i = parents.iterator(); i.hasNext();) {
            String parentNodeName = (String) i.next();

            graph.addEdge(parentNodeName, curNodeName);
        }

        IOUtil.parseTableString(UtilitiesString,
                (TabularFunction) curNode.getFunction());
    
    }
View Full Code Here

    protected LinkedList<String> processParents(String parentsNames) {
        LinkedList<String> parents = new LinkedList<String>();
        Vector<String> parantsNamesVector = parseList(parentsNames);

        for (String parentName : parantsNamesVector) {
            BNNode parentNode = graph.getBeliefNode(parentName);

            if (parentNode == null) {
                throw new RuntimeException("Cannot resolve node " + parentName);
            }
            if (parentNode.isUtility()) {
                throw new RuntimeException(
                        "Utility nodes can never be parent nodes!");
            }
            if (parentNode != null) {
                parents.add(parentName);
View Full Code Here

            e.printStackTrace();
        }
        Set<BNNode> nodes = network.vertexSet();

        // creating new evidence
        BNNode node1 = network.getBeliefNode("Cloudy");

        inference.setObservation(node1, "false");
        // much better way to do just the same as in last two lines
        // inference.setObservation("Cloudy", "false");
     
View Full Code Here

            JTCompilerDebugger deb = new JTCompilerDebugger();

            deb.doAll();
     
            inference.initialize(network, new JoinTreeCompiler(), deb);
            BNNode node1;

            node1 = network.getBeliefNode("Cloudy");
     
            // alternative way to set observation, it should work for more general
            // situation where evidence is not just observation but a probability distribution
            PT de = TableFactory.createObservation(node1.getDiscretizedDomain(),
                    "false");

            // normally this is better to use   for seting evidence, there is easy way with observations
            inference.setEvidence("Cloudy", de);
            inference.run();
            Set<BNNode> nodes = network.vertexSet();

            for (BNNode node : nodes) {
                System.out.println(
                        node.getName() + ":\n" + node.getMarginal().toString()
                        + "\n");
            }
     
            PT de1 = TableFactory.createObservation(node1.getDiscretizedDomain(),
                    "false");

            // normally this is better to use   for seting evidence, there is easy way with observations
            inference.setEvidence("Cloudy", de1);
            inference.run();
View Full Code Here

    private void sampleBN() throws ParseException {
        double weight = 1.0;

        for (int i = 0; i < orderedNodes.size(); i++) {
            BNNode node = orderedNodes.elementAt(i);

            if (!node.hasEvidence()) {
                Object aSample = sampleNode(node);
                int iSample = mapToDiscreteDomain(node, aSample);

                node.setCurrentSample(aSample);
                node.setDiscretizedSample(iSample);
            } else {
                double w = getWeight(node);

                if (w == 0) {
                    return;
                } else {
                    weight *= w;
                }

            }

        }

        for (int i = 0; i < orderedNodes.size(); i++) {
            BNNode node = orderedNodes.elementAt(i);

            if (!node.hasEvidence()) {
                int iNodeSample = node.getDiscretizedSample();

                node.getSamplesCounter()[iNodeSample] += weight;
            }

        }

    }
View Full Code Here

    
    }

    private void updateMarginals() {
        for (int i = 0; i < orderedNodes.size(); i++) {
            BNNode node = orderedNodes.elementAt(i);

            if (!node.hasEvidence()) {
                PT marginal = new PT(
                        DomainFactory.createDomainProduct(
                                node.getDiscretizedDomain()));
                double[] counter = node.getSamplesCounter();

                for (int j = 0; j < counter.length; j++) {
                    double val = counter[j];

                    marginal.setValue(j, val);
                }
                marginal.normalize();
                node.setMarginal(marginal);
            }
        }
    }
View Full Code Here

    }

    private void sampleBN() throws ParseException {
        Util.initRandom(true);
        for (int i = 0; i < orderedNodes.size(); i++) {
            BNNode node = orderedNodes.elementAt(i);
            Object aSample = sampleNode(node);
            int iSample = mapToDiscreteDomain(node, aSample);

            if (!isConsistent(node, iSample)) {
                // reject all BN sample
                return;
            } else {
                node.setCurrentSample(aSample);
                node.setDiscretizedSample(iSample);
            }

        }

        for (int i = 0; i < orderedNodes.size(); i++) {
            BNNode node = orderedNodes.elementAt(i);

            if (!node.hasEvidence()) {
                int iNodeSample = node.getDiscretizedSample();

                node.getSamplesCounter()[iNodeSample] += 1;
            }

        }

    }
View Full Code Here

TOP

Related Classes of org.integratedmodelling.riskwiz.bn.BNNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.