Este documento describe los conceptos fundamentales de la programación lineal y programación entera. La programación lineal busca optimizar un objetivo sujeto a restricciones lineales mediante variables continuas. La programación entera agrega la condición de que algunas variables deben ser enteros. Se explican métodos como simplex y ramificar y podar para resolver problemas lineales y enteros.