/** * {@inheritDoc} */ @Override public void setModel(DynamicBayesianNetwork model_) { this.model = model_; this.bnTime0 = model.toBayesianNetworkTime0(); this.bnTimeT = model.toBayesianNetworkTimeT(); }
/** * Creates a new DynamicBayesianNetwork from a DynamicDAG object. * @param dynamicDAG1 a Dynamic directed acyclic graph. */ public DynamicBayesianNetwork(DynamicDAG dynamicDAG1){ dynamicDAG = dynamicDAG1; this.initializeDistributions(); }
@Override public void setDAG(DynamicDAG dag) { this.dynamicDAG = dag; this.dagTime0=this.dynamicDAG.toDAGTime0(); this.dagTimeT=this.dynamicDAG.toDAGTimeT(); }
/** * Tests if two Dynamic Bayesian networks are equals. * Two Dynamic Bayesian networks are considered equals if they have an equal conditional distribution for each variable at both Time 0 and T. * @param bnet a given DynamicBayesianNetwork to be compared with this DynamicBayesianNetwork. * @param threshold a threshold value. * @return a boolean indicating if the two DynamicBNs are equals or not. */ public boolean equalDBNs(DynamicBayesianNetwork bnet, double threshold) { boolean equals = true; if (this.getDynamicDAG().equals(bnet.getDynamicDAG())){ for (Variable var : this.getDynamicVariables()) { equals = equals && this.getConditionalDistributionTime0(var).equalDist(bnet.getConditionalDistributionTime0(var), threshold) && this.getConditionalDistributionTimeT(var).equalDist(bnet.getConditionalDistributionTimeT(var), threshold); } } return equals; }
/** * Returns the total number of variables in this DynamicBayesianNetwork. * @return an {@code int} that represents the number of variables. */ public int getNumberOfVars() { return this.getDynamicVariables().getNumberOfVars(); }
/** * Creates a new EF_BayesianNetwork object given a {@link DynamicDAG} object. * @param dag a {@link DynamicDAG} object. */ public EF_DynamicBayesianNetwork(DynamicDAG dag) { this.bayesianNetworkTime0 = new EF_BayesianNetwork(dag.getParentSetsTime0()); this.bayesianNetworkTimeT = new EF_BayesianNetwork(dag.getParentSetsTimeT()); }
/** * {@inheritDoc} */ @Override public DynamicBayesianNetwork getLearntDBN() { return new DynamicBayesianNetwork(this.dag, this.ef_extendedBNTime0.toConditionalDistribution(), this.ef_extendedBNTimeT.toConditionalDistribution()); }
@Override public String toString() { return this.getModel().toString(); }
/** * Returns the set of dynamic variables in this DynamicBayesianNetwork. * @return set of variables of type {@link DynamicVariables}. */ public DynamicVariables getDynamicVariables() { return this.dynamicDAG.getDynamicVariables(); }
/** * Creates a new DynamicBayesianNetworkSampler given an input {@link DynamicBayesianNetwork} object. * @param network1 an input {@link DynamicBayesianNetwork} object. */ public DynamicBayesianNetworkSampler(DynamicBayesianNetwork network1){ network=network1; this.causalOrderTime0 = eu.amidst.dynamic.utils.Utils.getCausalOrderTime0(network.getDynamicDAG()); this.causalOrderTimeT = eu.amidst.dynamic.utils.Utils.getCausalOrderTimeT(network.getDynamicDAG()); }
/** * Sets the name of the dynamic BN. * @param name a {@code String} object. */ public void setName(String name) { this.dynamicDAG.setName(name); }
@Override public String getName() { return dbn.getName(); }
/** * Returns the name of the dynamic BN. * @return a {@code String} object. */ public String getName() { return this.dynamicDAG.getName(); }
public void setDBN(DynamicBayesianNetwork dbn) { this.dbn = dbn; this.bnTime0 = dbn.toBayesianNetworkTime0(); this.bnTimeT = dbn.toBayesianNetworkTimeT(); }
/** * Returns the total number of variables in this DynamicBayesianNetwork. * @return an {@code int} that represents the number of variables. */ public int getNumberOfDynamicVars() { return this.getDynamicVariables().getNumberOfVars(); }
/** * Tests if this DynamicDAG contains cycles. * @return a boolean indicating if this DynamicDAG contains cycles (true) or not (false). */ public boolean containCycles() { return this.toDAGTimeT().containCycles() || this.toDAGTime0().containCycles(); }
/** * Converts this EF_DynamicBayesianNetwork to an equivalent {@link DynamicBayesianNetwork} object. * @param dag a {@link DynamicDAG} object defining the graphical structure. * @return a {@link DynamicBayesianNetwork} object. */ public DynamicBayesianNetwork toDynamicBayesianNetwork(DynamicDAG dag) { return new DynamicBayesianNetwork(dag, EF_BayesianNetwork.toConditionalDistribution(this.bayesianNetworkTime0.getDistributionList()), EF_BayesianNetwork.toConditionalDistribution(this.bayesianNetworkTimeT.getDistributionList())); }
@Override public String getName() { return dbn.getName(); }
public DBNSampler(DynamicBayesianNetwork dbn) { this.dbn = dbn; this.bnTime0 = dbn.toBayesianNetworkTime0(); this.bnTimeT = dbn.toBayesianNetworkTimeT(); this.random = new Random(seed); }
private void resetInfAlgorithms(){ this.infAlgTime0.setModel(this.model.toBayesianNetworkTime0()); this.infAlgTimeT.setModel(this.model.toBayesianNetworkTimeT()); }