from __future__ import annotations
from ..components.acceptance import (
AcceptAnyRational,
AcceptBetterRational,
AcceptNotWorseRational,
)
from ..components.offering import WAROfferingPolicy
from .modular.mapneg import MAPNegotiator
__all__ = ["WABNegotiator", "WARNegotiator", "WANNegotiator"]
[docs]
class WABNegotiator(MAPNegotiator):
"""
Wasting Accepting Better (neither complete nor an equilibrium)
Args:
name: Negotiator name
parent: Parent controller if any
preferences: The preferences of the negotiator
ufun: The ufun of the negotiator (overrides preferences)
owner: The `Agent` that owns the negotiator.
"""
def __init__(self, *args, **kwargs):
kwargs["acceptance"] = AcceptBetterRational()
kwargs["offering"] = WAROfferingPolicy()
super().__init__(*args, **kwargs)
[docs]
class WARNegotiator(MAPNegotiator):
"""
Wasting Accepting Any (an equilibrium but not complete)
Args:
name: Negotiator name
parent: Parent controller if any
preferences: The preferences of the negotiator
ufun: The ufun of the negotiator (overrides preferences)
owner: The `Agent` that owns the negotiator.
"""
def __init__(self, *args, **kwargs):
kwargs["acceptance"] = AcceptAnyRational()
kwargs["offering"] = WAROfferingPolicy()
super().__init__(*args, **kwargs)
[docs]
class WANNegotiator(MAPNegotiator):
"""
Wasting Accepting Any (an equilibrium but not complete)
Args:
name: Negotiator name
parent: Parent controller if any
preferences: The preferences of the negotiator
ufun: The ufun of the negotiator (overrides preferences)
owner: The `Agent` that owns the negotiator.
"""
def __init__(self, *args, **kwargs):
kwargs["acceptance"] = AcceptNotWorseRational()
kwargs["offering"] = WAROfferingPolicy()
super().__init__(*args, **kwargs)