Package aima.core.probability.proposition

Examples of aima.core.probability.proposition.Proposition


    return probabilityOf(ProbUtil.constructConjunction(phi));
  }

  public double posterior(Proposition phi, Proposition... evidence) {

    Proposition conjEvidence = ProbUtil.constructConjunction(evidence);

    // P(A | B) = P(A AND B)/P(B) - (13.3 AIMA3e)
    Proposition aAndB = new ConjunctiveProposition(phi, conjEvidence);
    double probabilityOfEvidence = prior(conjEvidence);
    if (0 != probabilityOfEvidence) {
      return prior(aAndB) / probabilityOfEvidence;
    }
View Full Code Here


  }

  public CategoricalDistribution posteriorDistribution(Proposition phi,
      Proposition... evidence) {

    Proposition conjEvidence = ProbUtil.constructConjunction(evidence);

    // P(A | B) = P(A AND B)/P(B) - (13.3 AIMA3e)
    CategoricalDistribution dAandB = jointDistribution(phi, conjEvidence);
    CategoricalDistribution dEvidence = jointDistribution(conjEvidence);
View Full Code Here

  }

  public CategoricalDistribution jointDistribution(
      Proposition... propositions) {
    ProbabilityTable d = null;
    final Proposition conjProp = ProbUtil
        .constructConjunction(propositions);
    final LinkedHashSet<RandomVariable> vars = new LinkedHashSet<RandomVariable>(
        conjProp.getUnboundScope());

    if (vars.size() > 0) {
      RandomVariable[] distVars = new RandomVariable[vars.size()];
      vars.toArray(distVars);

      final ProbabilityTable ud = new ProbabilityTable(distVars);
      final Object[] values = new Object[vars.size()];

      ProbabilityTable.Iterator di = new ProbabilityTable.Iterator() {

        public void iterate(Map<RandomVariable, Object> possibleWorld,
            double probability) {
          if (conjProp.holds(possibleWorld)) {
            int i = 0;
            for (RandomVariable rv : vars) {
              values[i] = possibleWorld.get(rv);
              i++;
            }
View Full Code Here

    int i = 0;
    for (RandomVariable rv : s1.getFor()) {
      props[i] = new RandVar(rv.getName(), rv.getDomain());
      i++;
    }
    final Proposition Xtp1 = ProbUtil.constructConjunction(props);
    final AssignmentProposition[] xt = new AssignmentProposition[tToTm1StateVarMap
        .size()];
    final Map<RandomVariable, AssignmentProposition> xtVarAssignMap = new HashMap<RandomVariable, AssignmentProposition>();
    i = 0;
    for (RandomVariable rv : tToTm1StateVarMap.keySet()) {
View Full Code Here

    for (RandomVariable rv : b_kp1t.getFor()) {
      RandomVariable prv = tToTm1StateVarMap.get(rv);
      props[i] = new RandVar(prv.getName(), prv.getDomain());
      i++;
    }
    final Proposition Xk = ProbUtil.constructConjunction(props);
    final AssignmentProposition[] ax_kp1 = new AssignmentProposition[tToTm1StateVarMap
        .size()];
    final Map<RandomVariable, AssignmentProposition> x_kp1VarAssignMap = new HashMap<RandomVariable, AssignmentProposition>();
    i = 0;
    for (RandomVariable rv : b_kp1t.getFor()) {
      ax_kp1[i] = new AssignmentProposition(rv, "<Dummy Value>");
      x_kp1VarAssignMap.put(rv, ax_kp1[i]);
      i++;
    }
    final Proposition x_kp1 = ProbUtil.constructConjunction(ax_kp1);
    props = new Proposition[e_kp1.size()];
    final Proposition pe_kp1 = ProbUtil.constructConjunction(e_kp1
        .toArray(props));

    // &sum;<sub>x<sub>k+1</sub></sub>
    CategoricalDistribution.Iterator ib_kp2t = new CategoricalDistribution.Iterator() {
      public void iterate(Map<RandomVariable, Object> possibleWorld,
View Full Code Here

  public double prior(Proposition... phi) {
    // Calculating the prior, therefore no relevant evidence
    // just query over the scope of proposition phi in order
    // to get a joint distribution for these
    final Proposition conjunct = ProbUtil.constructConjunction(phi);
    RandomVariable[] X = conjunct.getScope().toArray(
        new RandomVariable[conjunct.getScope().size()]);
    CategoricalDistribution d = bayesInference.ask(X,
        new AssignmentProposition[0], bayesNet);

    // Then calculate the probability of the propositions phi
    // be seeing where they hold.
    final double[] probSum = new double[1];
    CategoricalDistribution.Iterator di = new CategoricalDistribution.Iterator() {
      public void iterate(Map<RandomVariable, Object> possibleWorld,
          double probability) {
        if (conjunct.holds(possibleWorld)) {
          probSum[0] += probability;
        }
      }
    };
    d.iterateOver(di);
View Full Code Here

    return probSum[0];
  }

  public double posterior(Proposition phi, Proposition... evidence) {

    Proposition conjEvidence = ProbUtil.constructConjunction(evidence);

    // P(A | B) = P(A AND B)/P(B) - (13.3 AIMA3e)
    Proposition aAndB = new ConjunctiveProposition(phi, conjEvidence);
    double probabilityOfEvidence = prior(conjEvidence);
    if (0 != probabilityOfEvidence) {
      return prior(aAndB) / probabilityOfEvidence;
    }
View Full Code Here

  }

  public CategoricalDistribution posteriorDistribution(Proposition phi,
      Proposition... evidence) {

    Proposition conjEvidence = ProbUtil.constructConjunction(evidence);

    // P(A | B) = P(A AND B)/P(B) - (13.3 AIMA3e)
    CategoricalDistribution dAandB = jointDistribution(phi, conjEvidence);
    CategoricalDistribution dEvidence = jointDistribution(conjEvidence);
View Full Code Here

  }

  public CategoricalDistribution jointDistribution(
      Proposition... propositions) {
    ProbabilityTable d = null;
    final Proposition conjProp = ProbUtil
        .constructConjunction(propositions);
    final LinkedHashSet<RandomVariable> vars = new LinkedHashSet<RandomVariable>(
        conjProp.getUnboundScope());

    if (vars.size() > 0) {
      RandomVariable[] distVars = new RandomVariable[vars.size()];
      int i = 0;
      for (RandomVariable rv : vars) {
        distVars[i] = rv;
        i++;
      }

      final ProbabilityTable ud = new ProbabilityTable(distVars);
      final Object[] values = new Object[vars.size()];

      CategoricalDistribution.Iterator di = new CategoricalDistribution.Iterator() {

        public void iterate(Map<RandomVariable, Object> possibleWorld,
            double probability) {
          if (conjProp.holds(possibleWorld)) {
            int i = 0;
            for (RandomVariable rv : vars) {
              values[i] = possibleWorld.get(rv);
              i++;
            }
            int dIdx = ud.getIndex(values);
            ud.setValue(dIdx, ud.getValues()[dIdx] + probability);
          }
        }
      };

      RandomVariable[] X = conjProp.getScope().toArray(
          new RandomVariable[conjProp.getScope().size()]);
      bayesInference.ask(X, new AssignmentProposition[0], bayesNet)
          .iterateOver(di);

      d = ud;
    } else {
View Full Code Here

    return probabilityOf(ProbUtil.constructConjunction(phi));
  }

  public double posterior(Proposition phi, Proposition... evidence) {

    Proposition conjEvidence = ProbUtil.constructConjunction(evidence);

    // P(A | B) = P(A AND B)/P(B) - (13.3 AIMA3e)
    Proposition aAndB = new ConjunctiveProposition(phi, conjEvidence);
    double probabilityOfEvidence = prior(conjEvidence);
    if (0 != probabilityOfEvidence) {
      return prior(aAndB) / probabilityOfEvidence;
    }
View Full Code Here

TOP

Related Classes of aima.core.probability.proposition.Proposition

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.