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 produce

    • a in Activities or \(a \in A\)

  • Resources - Set of resources that are used to conduct activities

    • r in Resources or \(r \in R\)

Parameters

  • Values - measure of value from conducting one unit of Activity a

    • Values[a] for a in Activities or \(V_a \enspace \forall a \in A\)

  • ResourceNeeds - amount of Resource r needed for Activity 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 of Activity a_1, you need sum(ResourceNeeds[r, a_1] for r in Resources)

  • MaxResource - maximum amount of units available of Resource r

    • MaxResource[r] for r in Resources or \(M_r \enspace \forall r \in R\)

  • MaxActivity - maximum amount of demand for Activity a

    • MaxActivity[a] for a in Activities or \(M_a \enspace \forall a \in A\)

Decision Variables

  • NumActivity - number of units to conduct of Activity a

    • NumActivity[a] for a in Activities or \(X_a \enspace \forall a \in A\)

Objective

Maximize total value of activities being conducted.

\[\text{Max} \sum_{a \in A} V_aX_a\]

Constraints

  • An Activity a cannot be conducted more than its MaxActivity

\[0 \leq X_a \leq M_a \quad \forall a \in A\]
  • To conduct 1 unit of an Activity, all ResourceNeeds are required. In other words, sum(ResourceNeeds[r,a] for r in Resources) must happen per Activity 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 exceed MaxResource[r]

\[\sum_{a \in A} N_{r,a}X_a \leq M_r \quad \forall r \in 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.