Enum Class RewardDistribution

java.lang.Object
java.lang.Enum<RewardDistribution>
com.tnsai.coordination.groups.coalition.RewardDistribution
All Implemented Interfaces:
Serializable, Comparable<RewardDistribution>, Constable

public enum RewardDistribution extends Enum<RewardDistribution>
Strategy for distributing rewards among coalition members.

RewardDistribution determines how the coalition value (total reward) is divided among participating agents.

Distribution Methods

  • EQUAL - Same share for all members
  • PROPORTIONAL - Based on contribution ratio
  • SHAPLEY - Fair division based on marginal contribution
  • NUCLEOLUS - Minimizes maximum dissatisfaction
  • CUSTOM - User-defined distribution
  • Enum Constant Details

    • EQUAL

      public static final RewardDistribution EQUAL
      Equal distribution.

      All members receive the same share regardless of contribution. Simple and perceived as fair.

    • PROPORTIONAL

      public static final RewardDistribution PROPORTIONAL
      Proportional distribution.

      Rewards proportional to recorded contributions. More contribution = more reward.

    • SHAPLEY

      public static final RewardDistribution SHAPLEY
      Shapley value distribution.

      Fair division based on marginal contribution to all possible sub-coalitions. Mathematically optimal but computationally expensive.

    • NUCLEOLUS

      public static final RewardDistribution NUCLEOLUS
      Nucleolus distribution.

      Minimizes the maximum dissatisfaction among coalition members.

    • PERFORMANCE_BASED

      public static final RewardDistribution PERFORMANCE_BASED
      Performance-based distribution.

      Rewards based on individual task performance quality rather than just participation.

    • SENIORITY_BASED

      public static final RewardDistribution SENIORITY_BASED
      Seniority-based distribution.

      Earlier joiners or more experienced members get higher share.

    • WINNER_TAKE_ALL

      public static final RewardDistribution WINNER_TAKE_ALL
      Winner-take-all distribution.

      Best performer gets all or majority of reward. Creates strong competition.

  • Method Details

    • values

      public static RewardDistribution[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static RewardDistribution valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • getDescription

      public String getDescription()
      Gets distribution description.
      Returns:
      description
    • calculate

      public Map<String,Double> calculate(double totalValue, Map<String,Double> contributions)
      Calculates reward distribution.
      Parameters:
      totalValue - total value to distribute
      contributions - agent contributions
      Returns:
      map of agent IDs to rewards