SCML2020/2021

This module describes the Supply Chain Management League Platform as run in 2020 and 2021.

scml.scml2020 Package

Implements the SCML 2020 world design.

The detailed description of this world simulation can be found here.

Functions

is_system_agent(aid)

Checks whether an agent is a system agent or not

Classes

FactoryState(inventory, balance, commands, …)

FinancialReport(agent_id, step, cash, …)

A report published periodically by the system showing the financial standing of an agent

FactoryProfile(costs)

Defines all private information of a factory

Failure(is_inventory, line, step, process)

A production failure

ExogenousContract(product, quantity, …[, …])

Represents a contract to be revealed at revelation_time to buyer and seller between them that is not agreed upon through negotiation but is endogenously given

RandomAgent(*args, **kwargs)

An agent that negotiates randomly.

DoNothingAgent([name, type_postfix, ufun])

An agent that does nothing for the whole length of the simulation

IndependentNegotiationsAgent(*args, **kwargs)

Implements the base class for agents that negotiate independently with different partners.

MarketAwareIndependentNegotiationsAgent(*args)

Implements the base class for agents that negotiate independently with different partners using trading/catalog prices to control signing

BuyCheapSellExpensiveAgent(*args, **kwargs)

An agent that tries to buy cheap and sell expensive but does not care about production scheduling.

MarketAwareBuyCheapSellExpensiveAgent(*args)

An agent that tries to buy cheap and sell expensive but does not care about production scheduling.

DecentralizingAgent(*args[, …])

IndDecentralizingAgent(*args[, …])

DecentralizingAgentWithLogging(*args, **kwargs)

MarketAwareDecentralizingAgent(*args[, …])

MarketAwareIndDecentralizingAgent(*args[, …])

ReactiveAgent(*args[, negotiator_type, …])

MarketAwareReactiveAgent(*args[, …])

MovingRangeAgent(*args[, price_weight, …])

MarketAwareMovingRangeAgent(*args[, …])

SatisficerAgent(*args[, …])

A simple monolithic agent that tries to carefully make small profit every step.

SCML2020World(process_inputs, …[, …])

A Supply Chain SCML2020World simulation as described for the SCML league of ANAC @ IJCAI 2020.

SCML2021World(*args, **kwargs)

Failure(is_inventory, line, step, process)

A production failure

AWI(world, agent)

The Agent SCML2020World Interface for SCML2020 world.

Simulation(*args, **kwargs)

Provides a simulator to the agent.

ProductionStrategy(*args, **kwargs)

Represents a strategy for controlling production.

SupplyDrivenProductionStrategy(*args, **kwargs)

A production strategy that converts all inputs to outputs

DemandDrivenProductionStrategy(*args, **kwargs)

A production strategy that produces ONLY when a contract is secured

TradeDrivenProductionStrategy(*args, **kwargs)

A production strategy that produces ONLY for contracts that the agent did not initiate.

TradePredictionStrategy(*args[, …])

A prediction strategy for expected inputs and outputs at every step

FixedTradePredictionStrategy(*args[, add_trade])

Predicts a fixed amount of trade both for the input and output products.

ExecutionRatePredictionStrategy()

A prediction strategy for expected inputs and outputs at every step

FixedERPStrategy(*args[, execution_fraction])

Predicts that the there is a fixed execution rate that does not change for all partners

MeanERPStrategy(*args[, execution_fraction])

Predicts the mean execution fraction for each partner

MarketAwareTradePredictionStrategy(*args[, …])

Predicts an amount based on publicly available market information.

SignAll()

Signs all contracts no matter what.

SignAllPossible()

Signs all contracts that can in principle be honored.

KeepOnlyGoodPrices(*args[, buying_margin, …])

Signs all contracts that have good prices

TradingStrategy(*args, **kwargs)

Base class for all trading strategies.

ReactiveTradingStrategy(*args, **kwargs)

The agent reactively responds to contracts for selling by buying and vice versa.

PredictionBasedTradingStrategy(*args[, …])

A trading strategy that uses prediction strategies to manage inputs/outputs needed

MarketAwarePredictionBasedTradingStrategy(*args)

NegotiationManager(*args[, horizon, …])

A negotiation manager is a component that provides negotiation control functionality to an agent

StepNegotiationManager(*args[, …])

A negotiation manager that controls a controller and another for selling for every timestep

IndependentNegotiationsManager(*args[, …])

A negotiation manager that manages independent negotiators that do not share any information once created

MovingRangeNegotiationManager(*args[, …])

My negotiation strategy

Factory(profile, initial_balance, inputs, …)

A simulated factory

AWI(world, agent)

The Agent SCML2020World Interface for SCML2020 world.

SCML2020Agent([name, type_postfix, ufun])

Base class for all SCML2020 agents (factory managers)

OneShotAdapter(oneshot_type, oneshot_params)

An adapter allowing agents developed for SCML-OneShot to run in SCML2020World simulations.

Class Inheritance Diagram

Inheritance diagram of scml.scml2020.common.FactoryState, scml.scml2020.common.FinancialReport, scml.scml2020.common.FactoryProfile, scml.scml2020.common.Failure, scml.scml2020.common.ExogenousContract, scml.scml2020.agents.random.RandomAgent, scml.scml2020.agents.do_nothing.DoNothingAgent, scml.scml2020.agents.indneg.IndependentNegotiationsAgent, scml.scml2020.agents.indneg.MarketAwareIndependentNegotiationsAgent, scml.scml2020.agents.bcse.BuyCheapSellExpensiveAgent, scml.scml2020.agents.bcse.MarketAwareBuyCheapSellExpensiveAgent, scml.scml2020.agents.decentralizing.DecentralizingAgent, scml.scml2020.agents.decentralizing.IndDecentralizingAgent, scml.scml2020.agents.decentralizing.DecentralizingAgentWithLogging, scml.scml2020.agents.decentralizing.MarketAwareDecentralizingAgent, scml.scml2020.agents.decentralizing.MarketAwareIndDecentralizingAgent, scml.scml2020.agents.reactive.ReactiveAgent, scml.scml2020.agents.reactive.MarketAwareReactiveAgent, scml.scml2020.agents.moving.MovingRangeAgent, scml.scml2020.agents.moving.MarketAwareMovingRangeAgent, scml.scml2020.agents.satisficer.SatisficerAgent, scml.scml2020.world.SCML2020World, scml.scml2020.world.SCML2021World, scml.scml2020.common.Failure, scml.scml2020.awi.AWI, scml.scml2020.components.simulation.Simulation, scml.scml2020.components.production.ProductionStrategy, scml.scml2020.components.production.SupplyDrivenProductionStrategy, scml.scml2020.components.production.DemandDrivenProductionStrategy, scml.scml2020.components.production.TradeDrivenProductionStrategy, scml.scml2020.components.prediction.TradePredictionStrategy, scml.scml2020.components.prediction.FixedTradePredictionStrategy, scml.scml2020.components.prediction.ExecutionRatePredictionStrategy, scml.scml2020.components.prediction.FixedERPStrategy, scml.scml2020.components.prediction.MeanERPStrategy, scml.scml2020.components.prediction.MarketAwareTradePredictionStrategy, scml.scml2020.components.signing.SignAll, scml.scml2020.components.signing.SignAllPossible, scml.scml2020.components.signing.KeepOnlyGoodPrices, scml.scml2020.components.trading.TradingStrategy, scml.scml2020.components.trading.ReactiveTradingStrategy, scml.scml2020.components.trading.PredictionBasedTradingStrategy, scml.scml2020.components.trading.MarketAwarePredictionBasedTradingStrategy, scml.scml2020.components.negotiation.NegotiationManager, scml.scml2020.components.negotiation.StepNegotiationManager, scml.scml2020.components.negotiation.IndependentNegotiationsManager, scml.scml2020.components.negotiation.MovingRangeNegotiationManager, scml.scml2020.factory.Factory, scml.scml2020.awi.AWI, scml.scml2020.agent.SCML2020Agent, scml.scml2020.agent.OneShotAdapter