La programación lineal es una técnica para resolver problemas de optimización de recursos sujetos a restricciones lineales. Incluye definir una función objetivo y restricciones lineales expresadas como ecuaciones e inecuaciones lineales. Los conjuntos convexos son aquellos donde si dos puntos están contenidos, también lo está el segmento que los une. La programación lineal utiliza conceptos como hiperplanos, desigualdades lineales, semiplanos y conjuntos poliédricos convexos para representar gráficamente problemas de optimización.