IIabm/product.py

26 lines
879 B
Python
Raw Normal View History

2023-02-27 22:02:46 +08:00
import agentpy as ap
class ProductAgent(ap.Agent):
def setup(self, code, name):
self.product_network = self.model.product_network
self.code = code
self.name = name
def a_successors(self):
2023-08-23 11:22:30 +08:00
# find successors of a product, return in AgentList (ProductAgent)
2023-02-27 22:02:46 +08:00
nodes = self.product_network.graph.successors(
self.product_network.positions[self])
return ap.AgentList(
self.model,
[ap.AgentIter(self.model, node).to_list()[0] for node in nodes])
2023-03-06 22:38:57 +08:00
def a_predecessors(self):
2023-08-23 11:22:30 +08:00
# find predecessors of a product, return in AgentList (ProductAgent)
nodes = self.product_network.graph.predecessors(
self.product_network.positions[self])
return ap.AgentList(
self.model,
[ap.AgentIter(self.model, node).to_list()[0] for node in nodes])