Kvadratno programiranje je metoda, ki se uporablja za optimizacijo večvariabilne kvadratne funkcije, ki je lahko linearno omejena ali pa tudi ne. Številne resnične probleme, kot je optimizacija portfelja podjetja ali zmanjšanje stroškov proizvajalca, je mogoče opisati s kvadratnim programom. Če je ciljna funkcija konveksna, lahko obstaja izvedljiva rešitev in jo je mogoče rešiti z znanimi algoritmi, kot je razširjeni simpleksni algoritem. Obstajajo metode za reševanje nekaterih nekonveksnih kvadratnih funkcij, vendar so zapletene in niso na voljo.
Tehnike matematične optimizacije se uporabljajo v kvadratnem programiranju za minimiziranje ciljne funkcije. Ciljna funkcija je sestavljena iz številnih spremenljivk odločanja, ki so lahko omejene ali pa tudi ne. Odločilne spremenljivke imajo moči 0, 1 ali 2. Ciljna funkcija je lahko izpostavljena številnim linearnim omejitvam enakosti in neenakosti v zvezi s spremenljivkami odločitve. Primer kvadratnega programiranja je: minimiziraj f(x,y) = x2 + 3y2 – 12y + 12, kjer je x + y = 6 in x > 0 in y ≥ 0.
Pogosto je zanimivo uporabiti multivariantne kvadratne funkcije za opis problemov iz resničnega sveta. Na primer, z uporabo sodobne teorije portfelja bo finančni analitik poskušal optimizirati portfelj podjetja z izbiro deleža sredstev, ki minimizira tveganje, povezano z danim pričakovanim donosom. Kvadratna enačba, sestavljena iz uteži sredstev in korelacije med sredstvi, opisuje varianco portfelja, ki jo je mogoče minimizirati s kvadratnim programiranjem. Drug primer je lahko proizvajalec, ki uporablja kvadratno enačbo za opis razmerja med različnimi kakovostnimi komponentami in stroški izdelka. Proizvajalec lahko zmanjša stroške ob ohranjanju določenih standardov z dodajanjem linearnih omejitev v kvadratni program.
Eden najpomembnejših pogojev pri reševanju kvadratnega programa je konveksnost ciljne enačbe. Konveksnost kvadratne funkcije je določena s Hessian ali matriko njegovih drugih izvodov. Funkcija se imenuje konveksna, če je Hessiova matrika pozitivno določena ali pozitivno poldefinirana, to je, če so vse lastne vrednosti pozitivne oziroma nenegativne. Če je Hessian pozitiven in obstaja izvedljiva rešitev, je ta lokalni minimum edinstven in je globalni minimum. Če je Hessian polpozitiven, izvedljiva rešitev morda ni edinstvena. Nekonveksne kvadratne funkcije imajo lahko lokalne ali globalne minimume, vendar jih je težje določiti.
Obstaja veliko pristopov k reševanju konveksne kvadratne funkcije z uporabo kvadratnega programiranja. Najpogostejši pristop je razširitev simpleksnega algoritma. Nekatere druge metode vključujejo metodo notranje točke ali pregrade, metodo aktivnega niza in metodo konjugiranega gradienta. Te metode so integrirane v določene programe, kot sta Mathematica® in Matlab®, in so na voljo v knjižnicah za številne programske jezike.