SCML2020

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

scml.scml2020 Package

Implements the SCML 2020 world design

Functions

is_system_agent(aid)

Checks whether an agent is a system agent or not

Classes

RandomAgent(*args, **kwargs)

An agent that negotiates randomly.

DoNothingAgent(**kwargs)

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.

BuyCheapSellExpensiveAgent(*args, **kwargs)

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

DecentralizingAgent(*args[, …])

IndDecentralizingAgent(*args[, …])

ReactiveAgent(*args[, negotiator_type, …])

MovingRangeAgent(*args[, price_weight, …])

FactoryState(inventory, balance, commands, …)

SCML2020Agent(**kwargs)

Base class for all SCML2020 agents (factory managers)

AWI(world, agent)

The Agent SCML2020World Interface for SCML2020 world allowing a single process per agent

SCML2020World(process_inputs, …[, …])

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

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

Factory(profile, initial_balance, inputs, …)

A simulated factory

Failure(is_inventory, line, step, process)

A production failure

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[, …])

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 that the there is a fixed execution rate that does not change for all partners

SignAll

Signs all contracts no matter what.

SignAllPossible

Signs all contracts that can in principle be honored.

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

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

Class Inheritance Diagram

Inheritance diagram of scml.scml2020.agents.random.RandomAgent, scml.scml2020.agents.do_nothing.DoNothingAgent, scml.scml2020.agents.indneg.IndependentNegotiationsAgent, scml.scml2020.agents.bcse.BuyCheapSellExpensiveAgent, scml.scml2020.agents.decentralizing.DecentralizingAgent, scml.scml2020.agents.decentralizing.IndDecentralizingAgent, scml.scml2020.agents.reactive.ReactiveAgent, scml.scml2020.agents.moving.MovingRangeAgent, scml.scml2020.world.FactoryState, scml.scml2020.world.SCML2020Agent, scml.scml2020.world.AWI, scml.scml2020.world.SCML2020World, scml.scml2020.world.FinancialReport, scml.scml2020.world.FactoryProfile, scml.scml2020.world.Factory, scml.scml2020.world.Failure, 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.signing.SignAll, scml.scml2020.components.signing.SignAllPossible, scml.scml2020.components.trading.TradingStrategy, scml.scml2020.components.trading.ReactiveTradingStrategy, scml.scml2020.components.trading.PredictionBasedTradingStrategy, scml.scml2020.components.negotiation.NegotiationManager, scml.scml2020.components.negotiation.StepNegotiationManager, scml.scml2020.components.negotiation.IndependentNegotiationsManager, scml.scml2020.components.negotiation.MovingRangeNegotiationManager