Example #1
0
  public double getProbabilitySoftRule(UGroundedSoftRule softRule) {
    if (softRule.partitions == null) softRule.partitions = getPartitions(softRule);

    double q_c = 1;
    for (USoftRulePartition partition : softRule.partitions) {
      steps++;
      if (partition.n > 1) {
        q_c = 0;
        break;
      } else if (partition.n == 1) partition.q_r = (1 - partition.p_i);
      else partition.q_r = partition.p_i;
      // System.out.println("  PART: " + partition + "  " + partition.p_i + "  " + partition.q_r);
      q_c *= (1 - partition.q_r);
      steps++;
    }

    // System.out.println("SOFTRULE: " + softRule + " -> " + (1 - q_c));
    return 1 - q_c;
  }