Package org.drools.beliefs.bayes
Class JunctionTreeBuilder
- java.lang.Object
-
- org.drools.beliefs.bayes.JunctionTreeBuilder
-
public class JunctionTreeBuilder extends Object
-
-
Constructor Summary
Constructors Constructor Description JunctionTreeBuilder(Graph<BayesVariable> graph)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description JunctionTreebuild()JunctionTreebuild(boolean init)JunctionTreebuild(org.kie.api.io.Resource resource, String namespace, String name)JunctionTreebuild(org.kie.api.io.Resource resource, String namespace, String name, boolean init)static boolean[][]cloneAdjacencyMarix(boolean[][] src)Clones the provided arraystatic voidconnect(boolean[][] adjMatrix, int v1, int v2)voidcreateClique(int v, boolean[][] clonedAdjMatrix, Set<Integer> verticesToUpdate, boolean[] adjList)intcreateJunctionTreeGraph(SeparatorSet[][] sepGraph, JunctionTreeClique parent, JunctionTreeClique[] jtNodes, JunctionTreeSeparator[] jtSeps, int i)static voiddisconnect(boolean[][] adjMatrix, int v1, int v2)voideliminateVertex(PriorityQueue<EliminationCandidate> p, Map<Integer,EliminationCandidate> elmVertMap, boolean[][] clonedAdjMatrix, boolean[] adjList, Set<Integer> verticesToUpdate, EliminationCandidate v)boolean[][]getAdjacencyMatrix()static List<Integer>getAdjacentVertices(boolean[][] adjacencyMatrix, int i)Graph<BayesVariable>getGraph()JunctionTreejunctionTree(List<org.drools.core.util.bitmask.OpenBitSet> cliques, boolean init)JunctionTreejunctionTree(org.kie.api.io.Resource resource, String namespace, String name, List<org.drools.core.util.bitmask.OpenBitSet> cliques, boolean init)voidmapNodeToCliqueFamily(org.drools.core.util.bitmask.OpenBitSet[] varNodeToCliques, JunctionTreeClique[] jtNodes)Given the set of cliques, mapped via ID in a Bitset, for a given bayes node, Find the best clique.voidmapVarNodeToCliques(org.drools.core.util.bitmask.OpenBitSet[] nodeToCliques, int id, org.drools.core.util.bitmask.OpenBitSet clique)Maps each Bayes node to cliques it's in.voidmergeGraphs(SeparatorSet[][][] graphs, SeparatorSet separatorSet)voidmoralize()voidmoralize(GraphNode<BayesVariable> v, GraphNode v1)List<org.drools.core.util.bitmask.OpenBitSet>triangulate()static voidupdateCliques(List<org.drools.core.util.bitmask.OpenBitSet> cliques, org.drools.core.util.bitmask.OpenBitSet newClique)
-
-
-
Constructor Detail
-
JunctionTreeBuilder
public JunctionTreeBuilder(Graph<BayesVariable> graph)
-
-
Method Detail
-
getGraph
public Graph<BayesVariable> getGraph()
-
build
public JunctionTree build()
-
build
public JunctionTree build(boolean init)
-
build
public JunctionTree build(org.kie.api.io.Resource resource, String namespace, String name)
-
build
public JunctionTree build(org.kie.api.io.Resource resource, String namespace, String name, boolean init)
-
moralize
public void moralize()
-
moralize
public void moralize(GraphNode<BayesVariable> v, GraphNode v1)
-
connect
public static void connect(boolean[][] adjMatrix, int v1, int v2)
-
disconnect
public static void disconnect(boolean[][] adjMatrix, int v1, int v2)
-
triangulate
public List<org.drools.core.util.bitmask.OpenBitSet> triangulate()
-
eliminateVertex
public void eliminateVertex(PriorityQueue<EliminationCandidate> p, Map<Integer,EliminationCandidate> elmVertMap, boolean[][] clonedAdjMatrix, boolean[] adjList, Set<Integer> verticesToUpdate, EliminationCandidate v)
-
createClique
public void createClique(int v, boolean[][] clonedAdjMatrix, Set<Integer> verticesToUpdate, boolean[] adjList)
-
updateCliques
public static void updateCliques(List<org.drools.core.util.bitmask.OpenBitSet> cliques, org.drools.core.util.bitmask.OpenBitSet newClique)
-
getAdjacencyMatrix
public boolean[][] getAdjacencyMatrix()
-
cloneAdjacencyMarix
public static boolean[][] cloneAdjacencyMarix(boolean[][] src)
Clones the provided array- Parameters:
src-- Returns:
- a new clone of the provided array
-
junctionTree
public JunctionTree junctionTree(List<org.drools.core.util.bitmask.OpenBitSet> cliques, boolean init)
-
junctionTree
public JunctionTree junctionTree(org.kie.api.io.Resource resource, String namespace, String name, List<org.drools.core.util.bitmask.OpenBitSet> cliques, boolean init)
-
mergeGraphs
public void mergeGraphs(SeparatorSet[][][] graphs, SeparatorSet separatorSet)
-
createJunctionTreeGraph
public int createJunctionTreeGraph(SeparatorSet[][] sepGraph, JunctionTreeClique parent, JunctionTreeClique[] jtNodes, JunctionTreeSeparator[] jtSeps, int i)
-
mapNodeToCliqueFamily
public void mapNodeToCliqueFamily(org.drools.core.util.bitmask.OpenBitSet[] varNodeToCliques, JunctionTreeClique[] jtNodes)Given the set of cliques, mapped via ID in a Bitset, for a given bayes node, Find the best clique. Where best clique is one that contains all it's parents with the smallest number of nodes in that clique. When there are no parents then simply pick the clique with the smallest number nodes.- Parameters:
varNodeToCliques-jtNodes-
-
mapVarNodeToCliques
public void mapVarNodeToCliques(org.drools.core.util.bitmask.OpenBitSet[] nodeToCliques, int id, org.drools.core.util.bitmask.OpenBitSet clique)Maps each Bayes node to cliques it's in. It uses a BitSet to map the ID of the cliques- Parameters:
nodeToCliques-id-clique-
-
-