Mnohé problémy každodenní (průmyslové) praxe jsou de facto optimalizačními problémy: v množině přípustných řešení (např. přidělení úkolů pracovníkům či procesorům, naplánování vozidel a jejich tras pro zásobování, návrh rozmístění elektronických součástek na desce plošných spojů) hledáme takové řešení, které je z nějakého hlediska (např. ceny, času) optimální. Tyto problémy lze často formulovat jako problémy kombinatorické (nebo též diskrétní) optimalizace, většinou v pojmech grafů a (celočíselných) lineárních nerovnic. Některé problémy lze uspokojivě řešit rychlými polynomiálními algoritmy, u jiných (NP-těžkých) se musíme spokojit s algoritmy, které jen aproximují optimální řešení, či s jinými (heuristickými) algoritmy, které dávají rozumné výsledky, byť jejich kvalita není obecně garantována.
Cílem předmětu je přiblížení oblasti kombinatorické optimalizace, klasifikace problémů, které zde patří, a osvětlení metod používaných k jejich praktickému řešení.