public <E extends UnivariateDistribution> E getPosteriorlDistribution(String varName) { if (learningAlgorithm !=null){ return (E) this.learningAlgorithm.getLearntDBN().getConditionalDistributionsTimeT() .stream() .filter(d -> d.getVariable().getName().equals(varName)) .findFirst().get(); } return null; } }
/** * Creates a new EF_BayesianNetwork object given a {@link DynamicBayesianNetwork} object. * @param dbn a {@link DynamicBayesianNetwork} object. */ public EF_DynamicBayesianNetwork(DynamicBayesianNetwork dbn){ this.bayesianNetworkTime0 = new EF_BayesianNetwork(); this.bayesianNetworkTimeT = new EF_BayesianNetwork(); this.bayesianNetworkTime0.setDistributionList(dbn.getConditionalDistributionsTime0().stream().map(dist -> dist.<EF_ConditionalDistribution>toEFConditionalDistribution()).collect(Collectors.toList())); this.bayesianNetworkTimeT.setDistributionList(dbn.getConditionalDistributionsTimeT().stream().map(dist -> dist.<EF_ConditionalDistribution>toEFConditionalDistribution()).collect(Collectors.toList())); }
staticVar = variables.getVariableByName(dynamicVariables.getVariableById(j).getName() + "_t" + Integer.toString(final_i)); cdist = Serialization.deepCopy(dbn.getConditionalDistributionsTimeT().get(j)); cdist.getConditioningVariables().stream().forEachOrdered(cdvar -> { parentList.add(((cdvar.isInterfaceVariable() || (cdvar.getName().contains("_t"))) ?
double sampledValue = network.getConditionalDistributionsTimeT().get(var.getVarID()).getUnivariateDistribution(d).sample(random); dataPresent.setValue(var, sampledValue);
conDistT = Serialization.deepCopy(model.getConditionalDistributionsTimeT().get(dynVar.getVarID())); Variable staticVar0_interface = variables.getVariableByName(groupedClassName + "_t0"); List<Variable> parents = bn.getDAG().getParentSet(staticVar0).getParents(); ConditionalDistribution conDist_dynamic = Serialization.deepCopy(model.getConditionalDistributionsTimeT().get(dynVar.getVarID())); ConditionalDistribution conditionalDistTime1 = groupedDistributionMAPVariableTimeT(dynVar, staticVar0, staticVar0_interface.getNumberOfStates(), parents, conDist_dynamic, modelNumber); conditionalDistTime1.setVar(staticVar0);