Supply Chains and
Agent-Based Models:
First Steps
Pedro Ribeiro de Andrade
DSA/CCST/INPE
São José dos Campos, 2010
Supply Chains
Source: http://www.researchintouse.com/nrk/RIUinfo/valuechain/valuechain.htm
Beer Game
Objective: keep the stock close to zero
Positive stock is better than negative (half cost, chain effects)
Transportation time
Random demand
How much to order given the current situation?
Source: http://www.beergame.lim.ethz.ch/
Source: http://www.beergame.lim.ethz.ch/
Literature
on ABM
ABM and Economic Chains
Do not work with real world data
Study only synchronization and forecasting
Focus on behaviour and learning
Source: http://www.beergame.lim.ethz.ch/
Economy: Input-Output Matrixes
Source: (Ichihara, Guilhoto, Imori, 2008)
Input-Output Matrix: One Example
Economic Structure, Southeast Pará in 2004 (R$10^6)
Source: (Costa, 2008)
Scenarios
Source: (Costa, 2008)
Inverse of Leontief Matrix (I – A)-1
Projections of the scenarios are analitically computed over the
inverse matrix.
Source: (Costa, 2008)
Results of the
Scenarios
Remuneration
Profit
Employment
Emissions
Source: (Costa, 2008)
Proposal
1. Reproduce Chiquito’s model using an agent-based
approach and investigate the same scenarios.
Tentar estimar o verdadeiro custo de oportunidade
para o PIB regional.
2. Espacializar o modelo, com agentes representativos
das sete micro-regiões. Colocar apenas os
produtores iniciais da cadeia no espaço, os outros
seriam onipresentes.
3. Trabalhar com modelos evolutivos, no qual exista
um aprendizado dos agentes entre execuções do
modelo, para tentar maximizar os resultados.
Input-Output Matrix
Economic Structure of Southeast Pará in 2004 (R$10^6)
Model Components
Agents
Agents
Connections
Agents’ Properties
Ignored
Connections
Agents
Agents
Connections
Agents’ Properties
Ignored
Weights are normalized to one.
Reactive Agents
0.2
A
A
800
B
2000
C
1200
Subtotal
4000
Taxes
1000
Profit
2000
Salaries
3000
Total
10000
Jobs
10
A
0.5
B
0.3
C
“A” received 1000:
Costs: 400
Send 80 to “A”, 200 to “B”, 120 to “C”
Taxes: 100
Profit: 200
Salaries: 300
Jobs: 1
Behaviour – Dumb Agent
agent.execute = function(ag)
ag:Message{receiver = government,
content = "money",
value = ag.received * ag.taxes}
ForEachNeighbor(ag, function(neigh, weigh)
ag:Message{receiver = neigh,
content = "money",
value = ag.received * ag.costs * weigh}
end)
ag.received = 0
end
agent.OnMessage = function(ag, message)
if message.content == "money" then
ag.received = ag.received + message.value
end
end
Demand Option 1 – Everything is Exogenous
Exogenous
Demand Option 2 – Local is Endogenous
Endogenous
Exogenous
Demand Option 3 – Local is Mixed
Endogenous
Exogenous
Local Demand
1. Exogenous: All the demand comes from the two
columns of local demand.
2. Endogenous: Salaries goes to the families’
expenses. Part of the profits also go to the families’
expenses (28.18%) and part to investments
(11.14%).
3. Mixed: Only salaries go the the families’ expenses.
The rest is considered exogenous (public workers,
social programs, retirements).
Simulations
1. Generate the initial (exogenous) demand
2. The model runs until there is no more endogenous
demand (i.e. demand <= $0.01)
Results – Validation with the measured values
Results – Scenario 2
Results – Four Scenarios (Differences)
Scenario 1
Scenario 2
Scenario 3
Scenario 4
F. V. Waugh, Econometrica 18:142-154, 1950
Future
“Explode” the agents into societies,
scaling down to the micro level
Future
Connect them to the land use (productive) system.
Good way to couple top-down and bottom-up
Future
Use the new census data to generate a new economic
chain and study the relations between the economic
changes (of the chain) and the land use changes.
Supply Chains and
Agent-Based Models:
First Steps
Pedro Ribeiro de Andrade
DSA/CCST/INPE
São José dos Campos, 2010
© Copyright 2026 Paperzz