I assume you are already familiar with linear algebra (systems of linear equations). If that's not the case, come talk to me.
A linear program is a system of linear inequalities, together with a linear objective function to be maximized or minimized. A simple example is:
This linear program may also be written using matrices and vectors as follows:
Above, x=(x1,x2) is the vector of variables.
A feasible solution is an assignment to x that satisfies the given linear constraints. For example, x=(1/4,1/4) is feasible.
An optimal solution is a feasible solution of maximum cost.
An optimal solution to any linear program can be found in polynomial time.
Linear programs of the form "maximize c.x subject to x ≥ 0, Ax ≤ b", where all coefficients are non-negative, are called "packing" problems. Linear programs of the form "minimize c.x subject to x ≥ 0, Ax ≥ b", where all coefficients are non-negative, are called "covering" problems.