Class DefaultCoalition

java.lang.Object
com.tnsai.coordination.groups.DefaultAgentGroup
com.tnsai.coordination.groups.coalition.DefaultCoalition
All Implemented Interfaces:
com.tnsai.agents.groups.AgentGroup, Coalition

public class DefaultCoalition extends DefaultAgentGroup implements Coalition
Default implementation of Coalition.

Provides goal-oriented temporary alliance with:

  • Multiple formation strategies
  • Negotiation protocol
  • Contribution tracking
  • Configurable reward distribution
  • Constructor Details

    • DefaultCoalition

      public DefaultCoalition(String id, String name, String description, String goal, CoalitionFormation formation, RewardDistribution rewardDistribution, double coalitionValue, com.tnsai.agents.groups.GroupPolicy policy)
      Creates a new DefaultCoalition.
      Parameters:
      id - coalition ID
      name - coalition name
      description - description
      goal - coalition goal
      formation - formation strategy
      rewardDistribution - reward distribution
      coalitionValue - initial value
      policy - group policy
  • Method Details

    • getGoal

      public String getGoal()
      Description copied from interface: Coalition
      Gets the coalition goal.
      Specified by:
      getGoal in interface Coalition
      Returns:
      goal description
    • getFormation

      public CoalitionFormation getFormation()
      Description copied from interface: Coalition
      Gets the formation strategy.
      Specified by:
      getFormation in interface Coalition
      Returns:
      formation strategy
    • getRewardDistribution

      public RewardDistribution getRewardDistribution()
      Description copied from interface: Coalition
      Gets the reward distribution strategy.
      Specified by:
      getRewardDistribution in interface Coalition
      Returns:
      reward distribution
    • getCoalitionValue

      public double getCoalitionValue()
      Description copied from interface: Coalition
      Gets the current coalition value (total reward pool).
      Specified by:
      getCoalitionValue in interface Coalition
      Returns:
      coalition value
    • setCoalitionValue

      public void setCoalitionValue(double value)
      Description copied from interface: Coalition
      Sets the coalition value.
      Specified by:
      setCoalitionValue in interface Coalition
      Parameters:
      value - new value
    • getContribution

      public double getContribution(String agentId)
      Description copied from interface: Coalition
      Gets an agent's contribution score.
      Specified by:
      getContribution in interface Coalition
      Parameters:
      agentId - agent ID
      Returns:
      contribution score (0.0 to 1.0)
    • recordContribution

      public void recordContribution(String agentId, double contribution)
      Description copied from interface: Coalition
      Records a contribution from an agent.
      Specified by:
      recordContribution in interface Coalition
      Parameters:
      agentId - agent ID
      contribution - contribution amount
    • getAllContributions

      public Map<String,Double> getAllContributions()
      Description copied from interface: Coalition
      Gets all member contributions.
      Specified by:
      getAllContributions in interface Coalition
      Returns:
      map of agent IDs to contributions
    • getEstimatedReward

      public double getEstimatedReward(String agentId)
      Description copied from interface: Coalition
      Gets estimated reward for an agent.
      Specified by:
      getEstimatedReward in interface Coalition
      Parameters:
      agentId - agent ID
      Returns:
      estimated reward
    • negotiate

      public boolean negotiate()
      Description copied from interface: Coalition
      Initiates coalition negotiation.

      During negotiation:

      • Potential members evaluate the goal
      • Members commit or decline participation
      • Coalition forms if minimum threshold met
      Specified by:
      negotiate in interface Coalition
      Returns:
      true if coalition formed successfully
    • negotiateAsync

      public CompletableFuture<Boolean> negotiateAsync()
      Description copied from interface: Coalition
      Async negotiation.
      Specified by:
      negotiateAsync in interface Coalition
      Returns:
      future with formation result
    • getNegotiationStatus

      public Coalition.NegotiationStatus getNegotiationStatus()
      Description copied from interface: Coalition
      Gets negotiation status.
      Specified by:
      getNegotiationStatus in interface Coalition
      Returns:
      negotiation status
    • getCommittedMembers

      public List<String> getCommittedMembers()
      Description copied from interface: Coalition
      Gets list of committed members.
      Specified by:
      getCommittedMembers in interface Coalition
      Returns:
      committed member IDs
    • getDeclinedMembers

      public List<String> getDeclinedMembers()
      Description copied from interface: Coalition
      Gets list of members who declined.
      Specified by:
      getDeclinedMembers in interface Coalition
      Returns:
      declined member IDs
    • hasCommitted

      public boolean hasCommitted(String agentId)
      Description copied from interface: Coalition
      Checks if an agent has committed.
      Specified by:
      hasCommitted in interface Coalition
      Parameters:
      agentId - agent ID
      Returns:
      true if committed
    • achieve

      public CoalitionResult achieve()
      Description copied from interface: Coalition
      Attempts to achieve the coalition goal.
      Specified by:
      achieve in interface Coalition
      Returns:
      result with outcomes and rewards
    • achieve

      public CoalitionResult achieve(Map<String,Object> context)
      Description copied from interface: Coalition
      Achieves with additional context.
      Specified by:
      achieve in interface Coalition
      Parameters:
      context - additional context
      Returns:
      result
    • achieveAsync

      public CompletableFuture<CoalitionResult> achieveAsync()
      Description copied from interface: Coalition
      Async goal achievement.
      Specified by:
      achieveAsync in interface Coalition
      Returns:
      future result
    • isGoalAchieved

      public boolean isGoalAchieved()
      Description copied from interface: Coalition
      Checks if goal has been achieved.
      Specified by:
      isGoalAchieved in interface Coalition
      Returns:
      true if achieved
    • distributeRewards

      public Map<String,Double> distributeRewards(double totalValue)
      Description copied from interface: Coalition
      Calculates and distributes rewards to members.
      Specified by:
      distributeRewards in interface Coalition
      Parameters:
      totalValue - total value to distribute
      Returns:
      map of agent IDs to rewards
    • getRewardHistory

      public List<Coalition.RewardRecord> getRewardHistory()
      Description copied from interface: Coalition
      Gets reward history.
      Specified by:
      getRewardHistory in interface Coalition
      Returns:
      list of reward distributions
    • dissolveCoalition

      public void dissolveCoalition(boolean goalAchieved)
      Description copied from interface: Coalition
      Dissolves the coalition (with or without goal achieved).
      Specified by:
      dissolveCoalition in interface Coalition
      Parameters:
      goalAchieved - whether goal was achieved
    • isDissolved

      public boolean isDissolved()
      Description copied from interface: Coalition
      Checks if coalition has dissolved.
      Specified by:
      isDissolved in interface com.tnsai.agents.groups.AgentGroup
      Specified by:
      isDissolved in interface Coalition
      Returns:
      true if dissolved
    • toString

      public String toString()
      Overrides:
      toString in class DefaultAgentGroup