Pemrograman kuadrat adalah metode yang digunakan untuk mengoptimalkan fungsi kuadrat multivariabel yang mungkin atau mungkin tidak dibatasi secara linier. Banyak masalah dunia nyata, seperti mengoptimalkan portofolio perusahaan atau mengurangi biaya produsen, dapat dijelaskan dengan menggunakan program kuadrat. Jika fungsi tujuan cembung maka solusi yang layak mungkin ada dan dapat diselesaikan dengan algoritma yang dikenal seperti algoritma simpleks yang diperluas. Ada metode untuk menyelesaikan beberapa fungsi kuadrat non-cembung tetapi rumit dan tidak tersedia.
Teknik optimasi matematika digunakan dalam pemrograman kuadratik untuk meminimalkan fungsi tujuan. Fungsi tujuan terdiri dari sejumlah variabel keputusan yang mungkin dibatasi atau tidak. Variabel keputusan memiliki pangkat 0, 1 atau 2. Fungsi tujuan dapat dikenai sejumlah persamaan linear dan kendala ketidaksetaraan mengenai variabel keputusan. Contoh pemrograman kuadrat adalah: meminimalkan f(x,y) = x2 + 3y2 – 12y + 12 di mana x + y = 6 dan x > 0 dan y 0.
Seringkali menarik untuk menggunakan fungsi kuadrat multivariat untuk menggambarkan masalah dunia nyata. Misalnya, dengan menggunakan teori portofolio modern, seorang analis keuangan akan mencoba mengoptimalkan portofolio perusahaan dengan memilih proporsi aset yang meminimalkan risiko yang terkait dengan pengembalian yang diharapkan. Persamaan kuadrat yang terdiri dari bobot aset dan korelasi antar aset menggambarkan varians portofolio yang dapat diminimalkan dengan menggunakan pemrograman kuadratik. Contoh lain mungkin produsen yang menggunakan persamaan kuadrat untuk menggambarkan hubungan antara komponen kualitas yang berbeda dan biaya produk. Pabrikan dapat meminimalkan biaya sambil mempertahankan standar tertentu dengan menambahkan kendala linier ke program kuadrat.
Salah satu syarat terpenting dalam menyelesaikan program kuadrat adalah konveksitas persamaan objektif. Konveksitas fungsi kuadrat ditentukan oleh Hessian atau matriks turunan keduanya. Fungsi disebut cembung jika matriks Hessian adalah pasti positif atau semi-pasti positif, yaitu jika semua nilai eigennya masing-masing positif atau non-negatif. Jika Hessian positif dan solusi yang layak ada, maka minimum lokal itu unik dan merupakan minimum global. Jika Hessian semi-positif, solusi yang layak mungkin tidak unik. Fungsi kuadrat non-cembung mungkin memiliki minimum lokal atau global, tetapi lebih sulit untuk ditentukan.
Ada banyak pendekatan untuk menyelesaikan fungsi kuadrat cembung menggunakan pemrograman kuadrat. Pendekatan yang paling umum adalah perluasan dari algoritma simpleks. Beberapa metode lain termasuk metode titik interior atau penghalang, metode himpunan aktif, dan metode gradien konjugasi. Metode ini diintegrasikan ke dalam program tertentu seperti Mathematica® dan Matlab® dan tersedia di perpustakaan untuk banyak bahasa pemrograman.