Seharusnya
di mana adalah simetris matriks, dan membentuk ulang menjadi vektor satu dimensi dengan entri.
Bagian dari program di atas yang memberi saya masalah adalah . (Membatasi solusi untuk matriks simetrik nonnegatif tampaknya mudah.)
Terima kasih sebelumnya atas bantuan atau referensi!
Jawaban:
Sunting: Mari kita coba penjelasan ini lagi, kali ini ketika saya lebih terjaga.
Ada tiga masalah besar dengan formulasi (dalam urutan keparahan):
Tidak ada reformulasi yang mulus / cembung / linier
Pertama, tidak ada standar, reformulasi yang jelas dari setiap batasan . Saran Aron berlaku untuk batasan min yang lebih umum , di mana batasan seperti U i j ≤ min k { U i k , U k j } digantikan oleh dua ketidaksetaraan setara berikut: U i j ≤ U i kmax min
Wolfgang menunjukkan bahwa dimungkinkan (dia tidak menyertakan bukti) untuk merumuskan kembali batasan sehingga linear dan halus dengan menambahkan variabel kendur. Variabel slack perlu ditambahkan untuk setiap batasan maks dalam formulasi asli, yang berarti bahwa kami menambahkan n 2 kendala dalam reformulasi ini. Selain itu, setiap batasan maks diganti dengan 2 n (atau lebih) kendala linier. Pembunuh yang sebenarnya adalah bahwa ketidak-munduran dipindahkan dari batasan ke tujuan, sehingga formulasi Wolfgang masih menghasilkan program non-linear yang tidak.max max n2 max 2n
Tidak ada reformulasi standar batasan dalam masalah minimisasi yang saya ketahui, setelah memeriksa buku teks pemrograman linier saya dan telah melakukan pencarian literatur. Itu tidak berarti bahwa reformulasi semacam itu tidak ada; itu hanya berarti saya belum menemukan itu. Jika saya harus menebak, saya akan mengatakan formulasi LP tidak ada.max
Ketidaknyamanan
Dalam konteks ini, nonsmoothness berarti bahwa setidaknya salah satu fungsi dalam perumusan (tujuan atau kendala) tidak dua kali terus menerus dapat dibedakan. Fungsi nonsmooth dalam formulasi ini adalah fungsi .max
Nonsmoothness adalah masalah besar karena:
Karena fungsi-fungsi bahkan tidak pernah dapat dibedakan secara terus-menerus, Anda bahkan tidak dapat menggunakan metode gradient descent tradisional tanpa kesulitan. Algoritma pemrograman nonlinier non-linear lebih lambat dari pada yang halus.max
Kemungkinan ketidaksesuaian
Masalah Anda bisa nonconvex, karena dalam "bentuk standar" untuk program nonlinier (yaitu, menyatakan semua kendala dalam bentuk ), kendala yang merepotkan dalam formulasi Anda adalahg(x)≤0
Fungsi-fungsi ini cekung.
Bukti: Dalam hal ini, fungsinya dan maks k { U i k , U k j } keduanya cembung. Jumlah fungsi cembung adalah cembung, dan mengalikan fungsi cembung dengan -1 menghasilkan fungsi cekung. (QED.)−Uij maxk{Uik,Ukj}
Seperti yang ditunjukkan Tim, hanya karena nonconvex tidak berarti bahwa masalah Anda sebenarnya nonconvex, tetapi jika Anda mencoba menyelesaikan masalah optimisasi menjadi optimal global, Anda hanya dapat menjamin bahwa solver optimasi cembung akan mengembalikan global optimal jika masalah Anda cembung. Jika Anda benar-benar menginginkan global optimal, Anda harus menentukan apakah set yang layak adalah cembung (atau tidak). Dengan tidak adanya informasi seperti itu, Anda harus mengasumsikan bahwa masalah Anda mungkin nonconvex, dan menggunakan algoritma yang tidak bergantung pada informasi konveksitas. Meskipun demikian, ketidak-beresan dan kurangnya reformulasi yang baik adalah masalah yang jauh lebih besar.g
Opsi untuk memecahkan masalah
Setuju untuk menemukan solusi yang layak. Dalam hal ini, lakukan apa yang dikatakan Aron, dan ganti dengan U i j ≤ min k { U i k , U k j } ,
Coba keberuntungan Anda pada formulasi Anda seperti halnya dengan bundle solver untuk program nonsmooth. Saya tidak punya banyak pengalaman dengan jenis pemecah ini. (Seorang kolega saya menggunakannya dalam penelitiannya.) Mereka mungkin lambat, karena mereka tidak dapat menggunakan informasi turunan. (Saya pikir mereka menggunakan subgradien atau informasi gradien umum Clarke sebagai gantinya.) Ini juga tidak mungkin bahwa Anda akan dapat memecahkan contoh masalah besar dengan pemecah bundel.
sumber
Let
sumber
In order to formulate the constraintsf≤max{f1,f2,...,fn} ,
we create n binary variables, bi∈{0,1} , 1≤i≤n .
Let M be the bound of variable f , then we only need to add the following constraints:
1)f≤fi+(1−bi)M,∀i
2)∑ibi=1
Normally, setM:=maxifi−minifi if we can estimate the value of fi .
sumber
Can't you introduce a slack variable? So to reformulate the constraint
(A proof would go along the lines of showing that ifsi>=max(ai) and if xi=si , then the solution is infeasible; in other words, si−max(ai) is a measure of infeasibility wrt to the original problem. If the problem is stable, there should be a finite improvement in objective function value for a finite violation of feasibility. If you choose c to be larger than the ratio between change in objective value and violation of feasibility, then the modified objective function would grow for problems that go into the infeasible region.)
sumber
I can't find the comment button...
As Geoff pointed out, it is a concave constraint function. However, it doesn't matter if the function itself is concave or not. Concave functions under linear constraints can be convex sets ( e.g.log(x)<5 ).
If it is a convex set, you could perform gradient descent on your objective function, using something like Dykstra's_projection_algorithm to project back onto the space of constraints.
sumber
Are there more inequality constraints not being mentioned? As stated, the problem is to minimize a linear function over a cone, so the optimal value is always either−∞ or 0 .
Even with the constraintU≥0 , the problem reduces to a discrete decision problem. Think of the linear function A as corresponding to positive/negative weights of the edges of the complete graph on n vertices. If there is a graph of diameter 2 connecting all the vertices with the sum of its weights strictly negative, then the optimal value is −∞ , otherwise the optimal value is 0 .
A quick sketch on how to prove this. First note that ifa≤b≤c , then c≤max(a,b) implies b=c . So then the inequalities imply that for every triple i,j,k , exactly one of the following must be true:
So if you fix some thresholdt and form a graph G(t) with an edge wherever Uij=t , then every 3 vertices must have exactly 0,2, or 3 edges connecting them. So if Uij=Ujk=t , then for every other vertex ℓ , we must have either Ujℓ=t or Uiℓ=Ukℓ=t . So if the graph G(t) has any edges, it must be of diameter 2.
sumber