Sedikit tentang dualitas kerucut

Ketika mempelajari kursus teori dalam pembelajaran mesin (matematika. Ekonomi, optimisasi, keuangan, dll.), Konsep "masalah ganda" sering ditemukan.

Tugas ganda sering digunakan untuk mendapatkan perkiraan yang lebih rendah (atau atas) untuk target fungsional dalam masalah optimasi. Selain itu, untuk hampir semua pernyataan yang bermakna dari masalah optimisasi, masalah ganda memiliki interpretasi yang bermakna. Artinya, jika Anda dihadapkan dengan masalah optimisasi yang penting, maka masalah gandanya juga kemungkinan besar penting.

Dalam artikel ini saya akan berbicara tentang dualitas kerucut. Cara membangun dua tugas ini, menurut pendapat saya, tidak semestinya kehilangan perhatian ...

Matan selanjutnya ...

Bagaimana biasanya tugas ganda dibangun?


Biarkan beberapa masalah optimasi diberikan:

 minx dalamRnf(x)fi(x) leq0, quad1 leqi leqkhi(x)=0,1 leqi leqm



Tugas ganda dibangun menurut skema berikut:

  • Bangun Lagrangian

L(x, lambda, mu)=f(x)+ sumki=1 lambdaifi(x)+ summi=1 muihi(x)


  • Membangun fungsi ganda

g( lambda, mu)= infxL(x, lambda, mu)


  • Dapatkan tugas ganda

 max lambda, mug( lambda, mu) lambda geq0



Kesulitan utama dalam skema ini adalah kabel pada langkah pencarian  infxL(x, lambda, mu) .

Jika masalahnya bukan cembung, maka ini adalah peti mati - dalam kasus umum, itu tidak dapat diselesaikan dalam waktu polinomial (jika P neqNP ) dan masalah seperti itu dalam artikel ini yang tidak akan kami bahas di masa mendatang.

Asumsikan masalahnya adalah cembung, lalu apa?

Jika masalahnya lancar, maka kita dapat menggunakan kondisi optimal tingkat pertama  nablaxL(x, lambda, mu)=0 . Dari kondisi ini, jika semuanya OK, ternyata untuk menyimpulkan atau x( lambda, mu)= arg minxL(x, lambda, mu) dan g( lambda, mu)=L(x( lambda, mu), lambda, mu) atau langsung berfungsi g( lambda, mu) .

Jika masalahnya tidak mulus, maka kita bisa menggunakan analog dari kondisi orde pertama 0 in partialxL(x, lambda, mu) (di sini  partialxL(x, lambda, mu) menunjukkan subdifferential dari suatu fungsi L(x, lambda, mu) ), bagaimanapun, prosedur ini biasanya jauh lebih rumit.

Kadang-kadang ada masalah optimasi β€œhalus” yang setara dan seseorang dapat membuat masalah ganda untuk itu. Tetapi untuk perbaikan struktur (dari non-halus ke halus), sebagai aturan, Anda selalu harus membayar peningkatan dimensi.

Dualitas kerucut


Ada beberapa tugas optimasi (contoh di bawah) yang menerima representasi berikut:

 minx dalamRncTxAx+b dalamK


dimana A - matriks b - vektor K - kerucut cembung non-merosot.

Dalam hal ini, tugas ganda dapat dibangun sesuai dengan skema berikut:

Tugas ganda dibangun menurut skema berikut:

  • Bangun Lagrangian

L(x, lambda)=cTx+ lambdaT(Ax+b)


  • Membangun fungsi ganda

g( lambda)= infxL(x, lambda)= begincases lambdaTb, quadc+AT lambda=0βˆ’ infty, quadc+AT lambda neq0 endcases


  • Dapatkan tugas ganda

 maks lambdabT lambdac+AT lambda=0βˆ’ lambda dalamKβˆ—


dimana cone konjugat Kβˆ— untuk kerucut K didefinisikan sebagai K ^ * = \ kiri \ {y \ dalam R ^ k | z ^ T y \ geq 0, \ quad \ forall z \ dalam K \ right \}K ^ * = \ kiri \ {y \ dalam R ^ k | z ^ T y \ geq 0, \ quad \ forall z \ dalam K \ right \} .

Seperti yang kita lihat, seluruh kerumitan membangun masalah ganda dipindahkan ke konstruksi kerucut ganda. Tetapi kegembiraannya adalah ada kalkulus yang bagus untuk membangun kerucut ganda dan sangat sering kerucut ganda dapat segera dihapus.

Contoh


Misalkan kita perlu membuat masalah optimisasi ganda untuk masalah tersebut:

 minx dalamRn |x |2+ |x |1Ax geqb



Di sini  |x |1= sumni=1|xi| ,  |x |2= sqrt sumni=1x2i

Hal pertama yang dapat Anda perhatikan: fungsi objektif selalu dapat dibuat linier!

Sebaliknya, selalu ada masalah setara dengan fungsi objektif linier:

 minx dalamRn,y diR,z dalamRy+z |x |2 leqy |x |1 leqzAx geqb



Sekarang Anda perlu menggunakan sedikit pengetahuan rahasia: banyak

K_1 = \ {(x, t) \ dalam R ^ n \ kali R | \ quad \ | x \ | _1 \ leq t \}

K_1 = \ {(x, t) \ dalam R ^ n \ kali R | \ quad \ | x \ | _1 \ leq t \}

dan

K_2 = \ {(x, t) \ dalam R ^ n \ kali R | \ quad \ | x \ | _2 \ leq t \}

adalah kerucut cembung.

Jadi, kita sampai pada notasi yang setara dengan masalah:

 minx dalamRn,y diR,z dalamRy+zIn+1 beginpmatrixxy endpmatrix+0n+1 dalamK2In+1 beginpmatrixxz endpmatrix+0n+1 diK1Axβˆ’b dalamRk+



Sekarang kita dapat segera menulis masalah ganda:

 max lambda, mu, nuβˆ’bT nu lambdai+ mui+[AT nu]i=0, quad1 leqi leqn lambdan+1+1=0 mun+1+1=0βˆ’ lambda dalamKβˆ—2(=K2)βˆ’ mu dalamKβˆ—1(=K infty)βˆ’ nu dalamRk+


atau, untuk menyederhanakan sedikit,

 maks lambda, mu, nuβˆ’bT nu lambda+ mu+AT nu=0 | lambda |2 leq1 | mu | infty leq1βˆ’ nu dalamRk+



dimana  | mu | infty= maxi| mui| .

Tautan untuk studi lebih lanjut:

Source: https://habr.com/ru/post/id431756/


All Articles