Worker Registry
Simple worker registry data structure for ABM firm agents
Code
from sfctools.datastructs.worker_registry import WorkerRegistry
from sfctools import Agent
import numpy as np
np.random.seed(1980)
class Worker(Agent):
def __init__(self):
super().__init__()
self.reservation_wage = np.random.rand()
a = Agent()
wreg = WorkerRegistry(owner=a,wage_attr="reservation_wage") # create a new worker registry
workers = [Worker() for i in range(10)] # create a bunch of workers
for worker in workers: # add workers to registry
wreg.add_worker(worker)
costs = wreg.get_avg_costs() # get average reservation wage of all workers
print("Average cost: %.2f\n" % costs)
wreg.fire_random(2) # fire two random workers
# pop workers from the worker stack
print("Wokers left:")
for i in range(8):
print(wreg.pop())
Output
Average cost: 0.55
Wokers left:
Worker__00009
Worker__00008
Worker__00007
Worker__00006
Worker__00005
Worker__00003
Worker__00002
Worker__00001