Heltalsprogrammering er en matematisk metode til løsning af optimeringsproblemer, der har den begrænsning, at kun heltallige løsninger kan godtages. De vigtigste er branch and bound og dynamisk programmering, men man kan også forsøge at se bort fra betingelsen, at løsningen skal være heltallig, og til gengæld søge løsninger med forskellige lineære uligheder tilføjet. Hvis løsningen er heltallig, er opgaven løst, forudsat hensigtsmæssigt valg af ekstra betingelser.