Linear programming is a technique for choosing the optimal alternative from a set of feasible options to maximize or minimize an objective function subject to constraints. It involves decision variables, an objective function expressed as a linear combination of the variables, and constraints on the variables. The optimal solution can be found graphically or using the simplex method. Graphically, the feasible region is identified and the point optimizing the objective function chosen. Binding constraints affect the optimal solution, while non-binding and redundant constraints do not.