Formulating Resource Allocation Problems as LPs

Translating a verbal resource-allocation scenario into a linear program: choosing decision variables, writing the linear objective, and writing one capacity constraint per limited resource.

Step 1 of 157%

Tutorial

Introduction

A resource allocation problem asks: given limited resources, how should we divide them among competing activities to maximize total profit (or minimize total cost)?

To model such a problem as a linear program, we follow three steps.

  1. Decision variables. Introduce one variable xjx_j for each activity, representing the level of that activity (units produced, hours used, acres planted, etc.).

  2. Objective function. If each unit of activity jj contributes cjc_j dollars of profit, the total profit is the linear function

maximizec1x1+c2x2++cnxn.\text{maximize} \quad c_1 x_1 + c_2 x_2 + \cdots + c_n x_n.
  1. Resource constraints. If resource ii is available in total amount bib_i and each unit of activity jj consumes aija_{ij} units of resource ii, then total usage cannot exceed availability:
ai1x1+ai2x2++ainxnbi.a_{i1} x_1 + a_{i2} x_2 + \cdots + a_{in} x_n \le b_i.

Activity levels are also non-negative: xj0x_j \ge 0 for every jj.

For instance, if making one chair requires 22 hours of labor, one table requires 55 hours, and 4040 hours are available, the labor constraint is

2x1+5x240.2 x_1 + 5 x_2 \le 40.
navigate · Enter open · Esc close · ⌘K/Ctrl K toggle