Class WeightedSemiring

java.lang.Object
org.tweetyproject.math.algebra.Semiring<Double>
org.tweetyproject.math.algebra.WeightedSemiring

public class WeightedSemiring extends Semiring<Double>
This class represents a Weighted Semiring, where elements are interpreted as weights or costs. In this semiring, the multiplication operation corresponds to finding the minimum of two weights, the addition operation corresponds to adding weights, Double.POSITIVE_INFINITY represents the additive identity, and 0.0 represents the multiplicative identity.
Author:
Sandra Hoffmann
  • Constructor Details

    • WeightedSemiring

      public WeightedSemiring()
      Constructs a WeightedSemiring instance.
    • WeightedSemiring

      public WeightedSemiring(double maxWeight)
      Constructs a WeightedSemiring instance with a max weight.
      Parameters:
      maxWeight - the max weight
  • Method Details

    • validateAndReturn

      public Double validateAndReturn(Double value)
      Validates and returns the given value if valid.
      Overrides:
      validateAndReturn in class Semiring<Double>
      Parameters:
      value - The value to be validated.
      Returns:
      The validated value.
      Throws:
      IllegalArgumentException - If the value is outside the valid range [0.0, maxValue].
    • getRandomElement

      public Double getRandomElement()
      Generates a random element from the semiring within the specified maximum value.
      Specified by:
      getRandomElement in class Semiring<Double>
      Returns:
      A randomly chosen Double element.
    • divide

      public Double divide(Double dividend, Double divisor)
      Performs a custom division operation on two Double values. If the divisor is greater than or equal to the dividend, returns the multiplicative identity (oneElement). Otherwise, returns the result of subtracting the divisor from the dividend.
      Specified by:
      divide in class Semiring<Double>
      Parameters:
      dividend - The Double dividend.
      divisor - The Double divisor.
      Returns:
      The result of the custom division operation.