scml.scml2020.agents.indneg =========================== .. py:module:: scml.scml2020.agents.indneg .. autoapi-nested-parse:: Implements the base class for agents that negotiate independently with different partners. These agents do not take production capacity, availability of materials or any other aspects of the simulation into account. They are to serve only as baselines. Assumptions ----------- The main assumptions of the agents based on `IndependentNegotiationsAgent` are: 1. All production processes take one input time and generate one output type. Classes ------- .. autoapisummary:: scml.scml2020.agents.indneg.IndependentNegotiationsAgent scml.scml2020.agents.indneg.MarketAwareIndependentNegotiationsAgent Module Contents --------------- .. py:class:: IndependentNegotiationsAgent(*args, **kwargs) Bases: :py:obj:`scml.scml2020.components.negotiation.IndependentNegotiationsManager`, :py:obj:`scml.scml2020.components.prediction.FixedTradePredictionStrategy`, :py:obj:`scml.scml2020.components.trading.ReactiveTradingStrategy`, :py:obj:`scml.scml2020.world.SCML2020Agent` Implements the base class for agents that negotiate independently with different partners. These agents do not take production capacity, availability of materials or any other aspects of the simulation into account. They are to serve only as baselines. Remarks: - `IndependentNegotiationsAgent` agents assume that each production process has one input type with the same index as itself and one output type with one added to the index (i.e. process $i$ takes product $i$ as input and creates product $i+1$ as output. - It does not assume that all lines have the same production cost (it uses the average cost though). - It does not assume that the agent has a single production process. .. py:method:: acceptable_unit_price(step: int, sell: bool) -> int Returns the maximum/minimum acceptable unit price for buying/selling at the given time-step :param step: Simulation step :param sell: Sell or buy .. py:method:: target_quantity(step: int, sell: bool) -> int Returns the target quantity to sell/buy at a given time-step :param step: Simulation step :param sell: Sell or buy .. py:class:: MarketAwareIndependentNegotiationsAgent(*args, buying_margin=None, selling_margin=None, min_price_margin=0.5, max_price_margin=0.5, **kwargs) Bases: :py:obj:`scml.scml2020.components.signing.KeepOnlyGoodPrices`, :py:obj:`IndependentNegotiationsAgent` Implements the base class for agents that negotiate independently with different partners using trading/catalog prices to control signing These agents do not take production capacity, availability of materials or any other aspects of the simulation into account. They are to serve only as baselines. Remarks: - `IndependentNegotiationsAgent` agents assume that each production process has one input type with the same index as itself and one output type with one added to the index (i.e. process $i$ takes product $i$ as input and creates product $i+1$ as output. - It does not assume that all lines have the same production cost (it uses the average cost though). - It does not assume that the agent has a single production process.