int getCPT(int[] nodeSet, int nNodes, int[] values, int[] order, BayesNet bayesNet) { int iCPTnew = 0; for (int iNode = 0; iNode < nNodes; iNode++) { int nNode = nodeSet[iNode]; iCPTnew = iCPTnew * bayesNet.getCardinality(nNode); iCPTnew += values[order[nNode]]; } return iCPTnew; } // getCPT
int getCPT(int[] nodeSet, int nNodes, int[] values, int[] order, BayesNet bayesNet) { int iCPTnew = 0; for (int iNode = 0; iNode < nNodes; iNode++) { int nNode = nodeSet[iNode]; iCPTnew = iCPTnew * bayesNet.getCardinality(nNode); iCPTnew += values[order[nNode]]; } return iCPTnew; } // getCPT
JunctionTreeSeparator(Set<Integer> separator, BayesNet bayesNet, JunctionTreeNode childNode, JunctionTreeNode parentNode) { // //////////////////// // initialize node set m_nNodes = new int[separator.size()]; int iPos = 0; m_nCardinality = 1; for (Integer element : separator) { int iNode = element; m_nNodes[iPos++] = iNode; m_nCardinality *= bayesNet.getCardinality(iNode); } m_parentNode = parentNode; m_childNode = childNode; m_bayesNet = bayesNet; } // c'tor
JunctionTreeSeparator(Set<Integer> separator, BayesNet bayesNet, JunctionTreeNode childNode, JunctionTreeNode parentNode) { // //////////////////// // initialize node set m_nNodes = new int[separator.size()]; int iPos = 0; m_nCardinality = 1; for (Integer element : separator) { int iNode = element; m_nNodes[iPos++] = iNode; m_nCardinality *= bayesNet.getCardinality(iNode); } m_parentNode = parentNode; m_childNode = childNode; m_bayesNet = bayesNet; } // c'tor
JunctionTreeNode(Set<Integer> clique, BayesNet bayesNet, boolean[] bDone) { m_bayesNet = bayesNet; m_children = new Vector<JunctionTreeNode>(); // //////////////////// // initialize node set m_nNodes = new int[clique.size()]; int iPos = 0; m_nCardinality = 1; for (Integer integer : clique) { int iNode = integer; m_nNodes[iPos++] = iNode; m_nCardinality *= bayesNet.getCardinality(iNode); } // ////////////////////////////// // initialize potential function calculatePotentials(bayesNet, clique, bDone); } // JunctionTreeNode c'tor
JunctionTreeNode(Set<Integer> clique, BayesNet bayesNet, boolean[] bDone) { m_bayesNet = bayesNet; m_children = new Vector<JunctionTreeNode>(); // //////////////////// // initialize node set m_nNodes = new int[clique.size()]; int iPos = 0; m_nCardinality = 1; for (Integer integer : clique) { int iNode = integer; m_nNodes[iPos++] = iNode; m_nCardinality *= bayesNet.getCardinality(iNode); } // ////////////////////////////// // initialize potential function calculatePotentials(bayesNet, clique, bDone); } // JunctionTreeNode c'tor
order[m_nNodes[iNode]] = iNode; m_MarginalP[iNode] = new double[m_bayesNet .getCardinality(m_nNodes[iNode])]; values[i]++; while (i < m_nNodes.length && values[i] == m_bayesNet.getCardinality(m_nNodes[i])) { values[i] = 0; i++;
order[m_nNodes[iNode]] = iNode; m_MarginalP[iNode] = new double[m_bayesNet .getCardinality(m_nNodes[iNode])]; values[i]++; while (i < m_nNodes.length && values[i] == m_bayesNet.getCardinality(m_nNodes[i])) { values[i] = 0; i++;
values[i]++; while (i < node.m_nNodes.length && values[i] == m_bayesNet.getCardinality(node.m_nNodes[i])) { values[i] = 0; i++;
values[i]++; while (i < node.m_nNodes.length && values[i] == m_bayesNet.getCardinality(node.m_nNodes[i])) { values[i] = 0; i++;
values[i]++; while (i < m_nNodes.length && values[i] == m_bayesNet.getCardinality(m_nNodes[i])) { values[i] = 0; i++;
values[i]++; while (i < m_nNodes.length && values[i] == m_bayesNet.getCardinality(m_nNodes[i])) { values[i] = 0; i++;
values[i]++; while (i < m_nNodes.length && values[i] == m_bayesNet.getCardinality(m_nNodes[i])) { values[i] = 0; i++;
values[i]++; while (i < m_nNodes.length && values[i] == m_bayesNet.getCardinality(m_nNodes[i])) { values[i] = 0; i++;
values[i]++; while (i < m_nNodes.length && values[i] == bayesNet.getCardinality(m_nNodes[i])) { values[i] = 0; i++;
values[i]++; while (i < m_nNodes.length && values[i] == bayesNet.getCardinality(m_nNodes[i])) { values[i] = 0; i++;
values[i]++; while (i < m_nNodes.length && values[i] == m_bayesNet.getCardinality(m_nNodes[i])) { values[i] = 0; i++;
values[i]++; while (i < m_nNodes.length && values[i] == m_bayesNet.getCardinality(m_nNodes[i])) { values[i] = 0; i++;
values[i]++; while (i < m_nNodes.length && values[i] == m_bayesNet.getCardinality(m_nNodes[i])) { values[i] = 0; i++;
values[i]++; while (i < m_nNodes.length && values[i] == m_bayesNet.getCardinality(m_nNodes[i])) { values[i] = 0; i++;