Rygsækproblemet er et af de mest studerede optimeringsproblemer inden for operationsanalyse, kombinatorisk optimering og datalogi. Dette skyldes dels problemets enkelthed dels dets store anvendelighed. Problemet bliver ofte præsenteret på følgende måde: antag at vi har en mængde af artikler som hver har en værdi og en vægt. Givet er også en rygsæk som har en grænse for hvor meget den kan bære. Rygsækproblemet er således givet ved: hvilke artikler skal fyldes i rygsækken for at maksimere værdien af rygsækkens indhold mens kapaciteten samtidig er overholdt.

På trods af denne lidt naive definition har rygsækproblemet mange praktiske anvendelser; maksimering af den forventede profit ved udvælgelse af (diskrete) aktiver givet et budget og når for eksempel et stykke stof skal skæres i mønstre og spildet skal minimimeres.

Matematisk formulering redigér

Lad mængden af artikler være givet ved  . Hver artikel   har en værdi og en vægt henholdsvis givet ved   og  . Rygsækkens kapacitet kaldes her  . Lad nu   være en binær variable, som antager værdien 1 hvis artikel   vælges og 0 ellers. På denne måde kan problemet skrives som