The agent_set is expected to be an instance of
DevelopmentProjectDataset. It is assumed that initially all projects are
unplaced.
Algorithm:
The model must be set to use capacity (via entries ``compute_capacity_flag''
and ``capacity_string'' in run_config). The capacity attribute is
considered as a variable that is 1 for locations that are developable for this
particular project type, otherwise 0. This means that no more than one project
of the same type can occupy one location. The method
determine_units_capacity() assures that locations taken in previous
chunks are marked as taken.
The weight array for sampling is constructed in each chunk by combining
information about project sizes and minimum and maximum developable units in
each location. Thus, the weight array is a 2-d array which implies that
different projects have different weights for the same locations, depending on
their size. The dimension of the location axis of this array is for memory
reasons reduced to only locations that are developable. No additional
filtering is done (the model sets the class property filter to
None).
The class overwrites its parent's method get_agents_order() in a way that it
sorts the agents according to their sizes in descending order. This means that
larger projects enter the choice process first.
The run() method proceeds otherwise as defined in the parent class.
Output:
It returns results of its parent class.