Задачи, в которых отыскивается максимум или минимум некоторой функции при наличии ограничений на переменные, объединяются общим названием — задачи математического программирования. Линейное программирование — это один из разделов математического оптимального программирования, изучающий способы отыскания максимума или минимума линейной функции при наличии линейных ограничений. Функция, максимум или минимум которой отыскивается, называется целевой функцией. Тот набор значений переменных, на котором достигается максимум или минимум, определяет оптимальный план, а всякий другой набор, удовлетворяющий ограничениям, определяет допустимый план.