Resource Allocation¶
The Resource Allocation Problem optimizes using scarce resources for valued activities.
The resources are limited by some maximum quantity available,
while the activities have some numeric value assigned to each of them.
A matrix-like parameter shows all of the resources needed to conduct one unit
of that activity (ResourceNeeds
).
This type of problem is seen often, with a few examples being production management
and budget allocation.
Definitions¶
Sets¶
Activities
- Set of activities that are available to producea in Activities
or \(a \in A\)
Resources
- Set of resources that are used to conduct activitiesr in Resources
or \(r \in R\)
Parameters¶
Values
- measure of value from conducting one unit ofActivity a
Values[a] for a in Activities
or \(V_a \enspace \forall a \in A\)
ResourceNeeds
- amount ofResource r
needed forActivity a
ResourceNeeds[r, a] for r in Resources for a in Activities
or \(N_{r,a} \enspace \forall r \in R, a \in A\)
Note
To conduct one unit of
Activity a
, you need all resources required. For example, to conduct one unit ofActivity a_1
, you needsum(ResourceNeeds[r, a_1] for r in Resources)
MaxResource
- maximum amount of units available ofResource r
MaxResource[r] for r in Resources
or \(M_r \enspace \forall r \in R\)
MaxActivity
- maximum amount of demand forActivity a
MaxActivity[a] for a in Activities
or \(M_a \enspace \forall a \in A\)
Decision Variables¶
NumActivity
- number of units to conduct ofActivity a
NumActivity[a] for a in Activities
or \(X_a \enspace \forall a \in A\)
Constraints¶
An
Activity a
cannot be conducted more than itsMaxActivity
To conduct 1 unit of an Activity, all
ResourceNeeds
are required. In other words,sum(ResourceNeeds[r,a] for r in Resources)
must happen perActivity a
conducted. This is implied by the problem parameters given by the user and the next constraint.The amount of resources used for a
Resource r
must not exceedMaxResource[r]
API Reference¶
See the corresponding section in the API Library Reference to learn more about how to use the API for this problem class.