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:
L(x, lambda, mu)=f(x)+ sumki=1 lambdaifi(x)+ summi=1 muihi(x)
g( lambda, mu)= infxL(x, lambda, mu)
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:
L(x, lambda)=cTx+ lambdaT(Ax+b)
g( lambda)= infxL(x, lambda)= begincases lambdaTb, quadc+AT lambda=0β infty, quadc+AT lambda neq0 endcases
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=1x2iHal 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: