| |
- lib.model.Model(builtins.object)
-
- EdgeworthBox
class EdgeworthBox(lib.model.Model) |
|
EdgeworthBox(model_nm='model', props=None, grp_struct={'def_grp': {'mbr_creator': <function create_agent at 0x7bbcb03c3c10>, 'grp_action': None, 'mbr_action': <function def_action at 0x7bbcb03c3d30>, 'num_mbrs': 1, 'num_mbrs_prop': None, 'color': 'blue'}, 'red_grp': {'mbr_creator': <function create_agent at 0x7bbcb03c3c10>, 'grp_action': None, 'mbr_action': <function def_action at 0x7bbcb03c3d30>, 'num_mbrs': 1, 'num_mbrs_prop': None, 'color': 'red'}}, env_action=None, random_placing=True, serial_obj=None, exec_key=None, create_for_test=False)
This class should just create a basic model that runs, has
some agents that move around, and allows us to test if
the system as a whole is working.
It turns out that so far, we don't really need to subclass anything! |
|
- Method resolution order:
- EdgeworthBox
- lib.model.Model
- builtins.object
Methods defined here:
- create_pop_hist(self)
- Set up our pop hist object to record amount traded per period.
Directly accessing self.env.pop_hist breaks encapsulation.
But that's OK since we plan to move pop_hist into model.
- handle_props(self, props, model_dir=None)
- A generic parameter handling method.
We get height and width here, since so many models use them.
- rpt_census(self, acts, moves)
- This is where we override the default census report.
Report the amount of cheese and wine of cheese_agent
- update_pop_hist(self)
- This is our hook into the env to record the number of trades each
period.
Directly accessing self.env.pop_hist breaks encapsulation.
But that's OK since we plan to move pop_hist into model.
Methods inherited from lib.model.Model:
- __init__(self, model_nm='model', props=None, grp_struct={'def_grp': {'mbr_creator': <function create_agent at 0x7bbcb03c3c10>, 'grp_action': None, 'mbr_action': <function def_action at 0x7bbcb03c3d30>, 'num_mbrs': 1, 'num_mbrs_prop': None, 'color': 'blue'}, 'red_grp': {'mbr_creator': <function create_agent at 0x7bbcb03c3c10>, 'grp_action': None, 'mbr_action': <function def_action at 0x7bbcb03c3d30>, 'num_mbrs': 1, 'num_mbrs_prop': None, 'color': 'red'}}, env_action=None, random_placing=True, serial_obj=None, exec_key=None, create_for_test=False)
- Initialize self. See help(type(self)) for accurate signature.
- __repr__(self)
- This returns a JSON representation of the model.
- __str__(self)
- Return str(self).
- add_child(self, group)
- Put a child agent in the womb.
group: which group will add new agent
The womb should move up into model eventually.
- add_switch(self, agent_nm, from_grp_nm, to_grp_nm)
- Switch agent from 1 group to another.
The agent and groups should be passed by name.
- bar_graph(self)
- collect_stats(self)
- create_anew(self, model_nm, props, grp_struct, exec_key, env_action, random_placing, create_for_test=False)
- Create the model for the first time.
- create_env(self, env_action=None, random_placing=True)
- Override this method to create a unique env...
but this one will already set the model name and add
the groups.
- create_from_serial_obj(self, serial_obj)
- Restore the model from its serialized version.
- create_groups(self)
- Override this method in your model to create all of your groups.
In general, you shouldn't need to: fill in the grp_struct instead.
- create_user(self)
- This will create a user of the correct type.
- from_json(self, jrep)
- This method restores a model from its JSON rep.
- get_locations(self)
- get_periods(self)
- get_pop_hist(self)
- get_prop(self, prop_nm, default=None)
- Have a way to get a prop through the model to hide props structure.
- get_user_msgs(self)
- handle_args(self)
- handle_switches(self)
- This will actually process the pending switches.
- handle_womb(self)
- This method adds new agents from the womb.
The womb should move up into model eventually.
- is_api_user(self)
- is_test_user(self)
- line_graph(self)
- pending_switches(self)
- How many switches are there to execute?
- rpt_stats(self)
- This is a "wrap up" report on the results of a model run.
Each model can do what it wants here.
perhaps will take an iterator object?
a file?
Function takes in a CSV formatted string from function
collect_stats() and writes it to a csv file.
Note: added logic so func will not write to stdout
- rpt_switches(self)
- Generate a string to report our switches.
- run(self, periods=None)
- This method runs the model. If `periods` is not None,
it will run it for that many periods. Otherwise, on
a terminal, it will display the menu.
Return: 0 if run was fine.
- runN(self, periods=10)
- Run our model for N periods.
Return the total number of actions taken.
- run_batch(self, runs, steps)
- Run our model for N periods X steps.
Writes the period specific model statistics to a CSV file.
Files are saved as input filename-[integer-counter].csv
Returns the total number of actions taken.
- scatter_plot(self)
- to_json(self)
- This method generates the JSON representation for this model.
Data descriptors inherited from lib.model.Model:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
| |