Class BottleneckSemiring

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

public class BottleneckSemiring extends Semiring<Double>
This class represents a Bottleneck Semiring. In this semiring, the multiplication operation corresponds to finding the maximum of two weights, the addition operation corresponds to finding the minimum, 0.0 represents the additive identity, and Double.Positive_Infitity represents the multiplicative identity.
Author:
Sandra Hoffmann
  • Constructor Details

    • BottleneckSemiring

      public BottleneckSemiring()
      Constructs a BottleneckSemiring instance.
    • BottleneckSemiring

      public BottleneckSemiring(double maxWeight)
      Constructs a BottleneckSemiring instance with a max weight.
      Parameters:
      maxWeight - 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 Double element within the specified maximum value.
      Specified by:
      getRandomElement in class Semiring<Double>
      Returns:
      A random Double element.
    • divide

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