Examples of Proposition


Examples of aima.core.probability.proposition.Proposition

  }

  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

Examples of aima.core.probability.proposition.Proposition

  }

  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

Examples of aima.core.probability.proposition.Proposition

  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()]);
    ProbabilityTable d = (ProbabilityTable) bayesInference.ask(X,
        new AssignmentProposition[0], bayesNet);

    // Then calculate the probability of the propositions phi
    // be seeing where they hold.
    ProbabilityTable.Iterator di = new ProbabilityTable.Iterator() {
      private double probSum = 0;

      public void iterate(Map<RandomVariable, Object> possibleWorld,
          double probability) {
        if (conjunct.holds(possibleWorld)) {
          probSum += probability;
        }
      }

      public Object getPostIterateValue() {
View Full Code Here

Examples of aima.core.probability.proposition.Proposition

    return ((Double) di.getPostIterateValue()).doubleValue();
  }

  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

Examples of aima.core.probability.proposition.Proposition

  }

  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

Examples of aima.core.probability.proposition.Proposition

  }

  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()];

      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++;
            }
            int dIdx = ud.getIndex(values);
            ud.setValue(dIdx, ud.getValues()[dIdx] + probability);
          }
        }

        public Object getPostIterateValue() {
          return null; // N/A
        }
      };

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

      d = ud;
View Full Code Here

Examples of graphplan.domain.Proposition

                  "move(b1,pu2,pu3)"};
   
    List<Proposition> planPreconds = graphplan.getPlanPreconditions(Arrays.asList(plan), description);
   
    String signatures[] = new String[] {"over(b1,pu1)","empty(pu2)","empty(pu3)"};
    Proposition propositions[] = PropositionFactory.getInstance().getPropositions(signatures);
   
    if(propositions.length != planPreconds.size()) {
      fail("Preconditions are not minimal");
    }
   
View Full Code Here

Examples of graphplan.domain.Proposition

      PropositionLevel precondLevel = (PropositionLevel) graph.getGraphLevel(i-2);
      ActionLevel actionLevel = (ActionLevel) graph.getGraphLevel(i-1);
      //Then see if each proposition in the effectLevel is connected by some action
      //to the precondLevel
      for (Iterator<Proposition> iter = effectLevel.getPropositions(); iter.hasNext();) {
        Proposition proposition = iter.next();
        //If no action is connected to the effect level
        if(actionLevel.getGeneratingActions(proposition).size() == 0) {
          //We need to propagate this action to the previous level
          actionLevel.addNoop(proposition);
          precondLevel.addProposition(proposition);
View Full Code Here

Examples of graphplan.domain.Proposition

   * Adds a list of propositions to an action level
   * @param propositions
   */
  public void addPropositions(List<Proposition> propositions) {
    for (Iterator<Proposition> iter = propositions.iterator(); iter.hasNext();) {
      Proposition proposition = iter.next();
      this.addProposition(proposition);
    }
  }
View Full Code Here

Examples of graphplan.domain.Proposition

  public boolean visitPropositionLevel(PropositionLevel propositionLevel) {
    StringBuilder sbMutexes = new StringBuilder();
   
    sbOutput.append("Proposition Level [");
    for (Iterator<Proposition> iter = propositionLevel.getPropositions(); iter.hasNext();) {
      Proposition proposition = iter.next();
      sbOutput.append(proposition.toString());
      if(iter.hasNext()) {
        sbOutput.append(", ");
      }
     
      sbMutexes.append("   "+proposition.toString()+": ");
      for(Iterator<Proposition> j = propositionLevel.getMutexes(proposition); j.hasNext(); ) {
        Proposition mutex = j.next();
        sbMutexes.append(mutex.toString());
        if(j.hasNext()) {
          sbMutexes.append(", ");
        }
      }
      sbMutexes.append(System.getProperty("line.separator"));
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.