As part of my dissertation work, I will be working on a circuit of capital model of the capitalist system. I apologize for the long explanation/multiple questions, but my professors can help me only with the theory here, rather than the coding. Basically, the aim is to create an agent-based model in which the following happens each turn:
- agents are split up into capitalists and workers
- capitalists have some sum of money, they buy machines (at the lowest cost they can find) and hire workers
- they produce output and make sales
- buyers attempt to buy at the lowest price
- capitalists compete, attempting to increase output (through becoming more technological, that is, increasing the ratio of machine to workers.)
Right now, I will be working on a simplified version of this. As I am a new coder, I am having some issues getting this up and running. I'm fine at reverse engineering other codes, but no existing codes deal with this in the way I'm looking for. The specific questions I have right now are:
- what's the best way to get capitalists to hire workers? As of right now, workers set their "employee-id" to the id of the capitalist, looping the procedure n times, where n is their demand for workers. Is there a more resource-efficient way to do this.
- what's the most resource efficient way to get buyers (capitalists or workers) to find the lowest price? Is there anything more efficient than "min-one-of" in this case? In future version of the model, I would like buyers to find the capitalist with the lowest price AND [inventory > 0], moving onto to the next-lowest price firm if the lowest-price one sells out. Ideally I'd want to keep the door open to that in the code.
- As of right now, patches represent individual industries or sectors of the economy (say the machine goods industry vs. the food industry). In future version of the model, I would want an individual capitalist to be able to have one plant with workers in machines goods but also expand into the food industry on a different patch, hiring different workers. What would be a good, resource efficient way to go about this?
Thanks so much for all your help, Daniel