@Override public void setDAG(DynamicDAG dag) { this.dynamicDAG = dag; this.dagTime0=this.dynamicDAG.toDAGTime0(); this.dagTimeT=this.dynamicDAG.toDAGTimeT(); }
/** * 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(); }
/** * Returns the Bayesian network at Time T. * @return a {@link BayesianNetwork} object. */ public BayesianNetwork toBayesianNetworkTimeT(){ DAG dagTimeT = this.getDynamicDAG().toDAGTimeT(); BayesianNetwork bnTimeT = new BayesianNetwork(dagTimeT); for (Variable dynamicVar : this.getDynamicVariables()) { Variable staticVar = dagTimeT.getVariables().getVariableByName(dynamicVar.getName()); ConditionalDistribution deepCopy = Serialization.deepCopy(this.getConditionalDistributionTimeT(dynamicVar)); deepCopy.setVar(staticVar); List<Variable> newParents = deepCopy.getConditioningVariables().stream().map(var -> dagTimeT.getVariables().getVariableByName(var.getName())).collect(Collectors.toList()); deepCopy.setConditioningVariables(newParents); bnTimeT.setConditionalDistribution(staticVar,deepCopy); } return bnTimeT; }
if (dynamicDAG.toDAGTime0().containCycles() || dynamicDAG.toDAGTimeT().containCycles()) { System.out.println("ERROR: DAG WITH CYCLES"); System.out.println(dynamicDAG.toString());
if (dynamicDAG.toDAGTime0().containCycles() || dynamicDAG.toDAGTimeT().containCycles()) {