Các ràng buộc liên quan đến trong một chương trình tuyến tính?


16

Giả sử

tối thiểuMộtvec(Bạn)tùy thuộc vào BạnTôi,jtối đa{BạnTôi,k,Bạnk,j},Tôi,j,k= =1,Giáo dục,n

Trong đó Bạn là ma trận đối xứng n×nvec(Bạn) định hình lại Bạn thành một vectơ một chiều với n2 mục.

Một phần của chương trình trên gây ra sự cố cho tôi là tối đa{,} . (Hạn chế các giải pháp cho ma trận đối xứng không âm có vẻ đơn giản.)

Cảm ơn trước cho bất kỳ trợ giúp hoặc tài liệu tham khảo!


bất kỳ lý do tại sao bạn không thể thêm cả hai ràng buộc?
Aron Ahmadia

1
@AronAhmadia: Anh ấy không thể thêm cả hai ràng buộc vì điều đó sẽ tương đương với BạnTôi,jtối thiểu{BạnTôi,k,Bạnk,j} cho tất cả Tôi,j,k . Tôi không nghĩ rằng có một cải cách LP cho vấn đề này, nhưng có thể có một cải cách MILP, mặc dù điều đó có thể làm cho nó tốn kém hơn để giải quyết.
Geoff Oxberry

@ N21: Bạn mong đợi n sẽ lớn đến mức nào cho những vấn đề bạn muốn giải quyết?
Geoff Oxberry

@Geoff: Cảm ơn! Cuối cùng tôi hy vọng sẽ có n lớn n, nhưng ngay bây giờ tôi quan tâm nhất để có được một giải pháp sơ bộ với n ít hơn, nói 100, hoặc thậm chí 10.
N21

Cảm ơn bạn đã làm rõ @GeoffOxberry, tôi đã không hoàn toàn nghĩ về điều đó trước khi đăng.
Aron Ahmadia

Câu trả lời:


14

Chỉnh sửa: Hãy thử giải thích lại lần nữa, lần này khi tôi tỉnh táo hơn.

Có ba vấn đề lớn với việc xây dựng (theo thứ tự mức độ nghiêm trọng):

  1. Không có sự cải tổ rõ ràng nào về vấn đề rõ ràng là trơn tru, lồi hoặc tuyến tính.
  2. Đó là vô nghĩa.
  3. Nó không nhất thiết phải lồi.

Không rõ ràng cải cách mịn / lồi / tuyến tính

Trước hết, không có sự cải tổ rõ ràng, tiêu chuẩn của từng ràng buộc . Đề xuất của Aron áp dụng cho ràng buộc phổ biến hơn , trong đó một ràng buộc như được thay thế bằng hai bất đẳng thức tương đương sau:Việc cải cách không lý tưởng, mỗi ràng buộc đã được thay thế bằng các ràng buộc tuyến tính , nhưng nó chuyển đổi một chương trình phi tuyến không thành một chương trình tuyến tính, là các lệnh có độ lớn nhanh hơn để giải quyết.thiểu U i jmin k { U i k , U k j } U i jU i k ,tối đatối thiểu

Uijmink{Uik,Ukj}
U i jU k j ,
BạnTôijBạnTôik,k
tối thiểu 2 n
BạnTôijBạnkj,k.
tối thiểu2n

Wolfgang chỉ ra rằng có thể (anh ta không bao gồm một bằng chứng) để cải tổ các ràng buộc sao cho chúng là tuyến tính và trơn tru bằng cách thêm các biến chùng. Một biến chùng cần phải được thêm vào cho mỗi ràng buộc trong công thức ban đầu, điều đó có nghĩa là chúng ta sẽ thêm ràng buộc trong cải cách này. Ngoài ra, mọi ràng buộc được thay thế bằng các ràng buộc tuyến tính (hoặc hơn). Kẻ giết người thực sự là sự không chân thực được chuyển từ các ràng buộc sang mục tiêu, vì vậy công thức của Wolfgang vẫn mang lại một chương trình phi tuyến vô nghĩa.đa n 2 tối đa 2 ntối đatối đan2tối đa2n

Không có sự cải tổ tiêu chuẩn nào về các ràng buộc trong một vấn đề tối thiểu hóa mà tôi biết, đã kiểm tra sách giáo khoa lập trình tuyến tính của tôi và đã thực hiện tìm kiếm tài liệu. Điều đó không có nghĩa là một cuộc cải cách như vậy không tồn tại; nó chỉ có nghĩa là tôi đã không đi qua nó. Nếu tôi phải đoán, tôi sẽ nói rằng một công thức LP không tồn tại.tối đa

Vô nghĩa

Trong bối cảnh này, độ không đồng nghĩa có nghĩa là ít nhất một trong các hàm trong công thức (mục tiêu hoặc các ràng buộc) không được phân biệt hai lần liên tục. Các hàm nonsmooth trong công thức này là các hàm .tối đa

Nonsmoothness là một vấn đề rất lớn bởi vì:

  • nó ngay lập tức làm cho vấn đề của bạn trở nên phi tuyến
  • hầu hết các bộ giải lập trình phi tuyến đều đảm nhận hai lần các hàm phân biệt liên tục

Vì các hàm thậm chí không thể phân biệt liên tục một lần, bạn thậm chí không thể sử dụng các phương pháp giảm độ dốc truyền thống mà không gặp khó khăn. Các thuật toán lập trình phi tuyến Nonsmooth chậm hơn so với các đối tác trơn tru của chúng.tối đa

Có thể không thuyết phục

Vấn đề của bạn có thể không phải là vấn đề, bởi vì trong "dạng chuẩn" cho các chương trình phi tuyến (nghĩa là thể hiện tất cả các ràng buộc ở dạng ), các ràng buộc rắc rối trong bạn công thức làg(x)0

BạnTôij-tối đak{BạnTôik,Bạnkj}0,Tôi,j,k.

Các chức năng này là lõm.

Chứng minh: Trong trường hợp này, các hàm và đều lồi. Tổng các hàm lồi là lồi và nhân một hàm lồi với -1 kết quả trong hàm lõm. (QED.) max k { U i k , U k j }-BạnTôijtối đak{BạnTôik,Bạnkj}

Như Tim chỉ ra, chỉ vì không phải là không có nghĩa là vấn đề của bạn thực sự không phải là vấn đề, nhưng nếu bạn đang cố gắng giải quyết vấn đề tối ưu hóa để tối ưu toàn cầu, bạn chỉ có thể đảm bảo rằng người giải quyết tối ưu hóa lồi sẽ trả lại tối ưu toàn cầu nếu vấn đề của bạn là lồi. Nếu bạn thực sự muốn một tối ưu toàn cầu, nó sẽ cho phép bạn xác định xem bộ khả thi của bạn có lồi (hay không). Trong trường hợp không có thông tin như vậy, bạn phải cho rằng vấn đề của bạn có thể là không thuyết phục và sử dụng các thuật toán không dựa vào thông tin lồi. Ngay cả khi đó, sự không rõ ràng và thiếu một cải cách tốt là vấn đề lớn hơn nhiều.g

Tùy chọn để giải quyết vấn đề

  • Giải quyết cho có thể tìm một giải pháp khả thi. Trong trường hợp này, hãy làm những gì Aron đã nói và thay thế bằng sau đó có thể được biểu thị lại dưới dạng hai bất đẳng thức riêng biệt bằng cách sử dụng phép cải cách LP tiêu chuẩn. Vấn đề kết quả sẽ là hạn chế LP của vấn đề bạn muốn giải quyết; nó sẽ giải quyết nhanh chóng liên quan đến vấn đề ban đầu của bạn và nếu nó có giải pháp, giải pháp đó sẽ khả thi cho vấn đề ban đầu của bạn và giá trị hàm mục tiêu của nó sẽ bị ràng buộc thấp hơn trên giá trị hàm mục tiêu tối ưu của vấn đề ban đầu của bạn.U i jmin k { U i k , U k j } ,

    Uijmaxk{Uik,Ukj},i,j,k
    BạnTôijtối thiểuk{BạnTôik,Bạnkj},Tôi,j,k,
  • Hãy thử vận ​​may với công thức của bạn như với một bộ giải gói cho các chương trình không chuyên. Tôi không có nhiều kinh nghiệm với các loại người giải quyết này. (Một đồng nghiệp của tôi sử dụng chúng trong nghiên cứu của anh ấy.) Họ có thể chậm, vì họ không thể sử dụng thông tin phái sinh. (Tôi nghĩ rằng họ sử dụng thông tin độ dốc tổng quát hoặc thay thế của Clarke.) Cũng không chắc là bạn sẽ có thể giải quyết các trường hợp vấn đề lớn với bộ giải gói.


1
Geoff, thứ tốt; điều này đánh vào những điểm chính và cung cấp nhiều kiến ​​thức và đề xuất mang tính xây dựng. Tôi đã bình chọn nó lên. Nhưng dường như bạn đang coi sự không quan tâm là một điều gì đó tách biệt với thực tế là, như bạn nói, "không có sự cải tổ tiêu chuẩn nào về những hạn chế tối đa trong một vấn đề tối thiểu hóa mà tôi biết". Nhưng trên thực tế, cái trước chính xác là lý do tại sao cái sau là không thể. Các ràng buộc không lồi không thể được thể hiện trong lập trình tuyến tính --- dừng hoàn toàn! Đây là một vấn đề không lồi và nó sẽ phải được định dạng lại thành một vấn đề số nguyên hỗn hợp hoặc một số phương pháp phỏng đoán khác được áp dụng.
Michael Grant

@MichaelGrant: Tôi đã đưa ra lập luận đó trong các phiên bản 1 và 2 hơn một năm trước, và sau đó nhận được một luồng nhận xét dài về khẳng định của tôi rằng vấn đề là không thuyết phục. (Xem câu trả lời của Tim bên dưới.) Khi tôi nhớ lại, vào thời điểm đó, Tim lập luận rằng bất đẳng thức với lõm không tạo ra một tập hợp khả thi. Tôi không chắc tại sao, bởi vì theo định nghĩa, một chương trình lồi phải có thể được thể hiện sao cho cho lồi. Tôi cảm thấy mệt mỏi khi tranh luận với Tim về điều đó; Tôi nên hoàn nguyên một số chỉnh sửa trước đây của tôi. g g ( x ) 0 gg(x)0gg(x)0g
Geoff Oxberry

1
Đúng là các hàm ràng buộc không lồi có thể mô tả các tập lồi (thực sự khái niệm quasiconvexity bao trùm hầu hết các trường hợp này). Nhưng thực tế là mô tả một tập hợp không lồi trong . Vì vậy, yêu cầu của Tim không liên quan đến vấn đề đặc biệt này. Cũng có thể hình dung rằng giao điểm của các bộ không lồi kết thúc là lồi, nhưng đó là một sự cố không thể xảy ra. ( x , y , z )xtối đa{y,z}(x,y,z)
Michael Grant

1
Có, bạn có thể chứng minh tuyên bố cụ thể đó bởi vì một tập hợp như vậy là hypograph của và tập hợp được xác định bởi hypograph của một hàm là lồi nếu hàm này bị lõm. max{y,z}
Geoff Oxberry

3

Giải pháp cho câu hỏi của bạn là .

Đặt Kể từ và những hạn chế của bạn là tuyến tính trong , bất kỳ nhiều tích cực của thỏa mãn các ràng buộc. Do đó, .Mộtvec(U)Ut±UphútV(Mộtvec(V))mint(Mộtvec(tU))=-

U=(1111).
Avec(U)Ut±UminV(Avec(V))mint(Avec(tU))=

Chắc chắn là một giải pháp cho câu hỏi như đặt ra. Tôi đoán là OP sẽ đặt ra một số ràng buộc không âm trong , trong trường hợp đó, giá trị hàm mục tiêu tối ưu có thể không . - U
Geoff Oxberry

@GeoffOxberry: Đúng. Ngay cả với các ràng buộc tích cực trên , câu trả lời là . Biểu mẫu như được đặt ra ngụ ý rằng đó thực sự là một câu hỏi tối ưu hóa ma trận a la . 0 2 tr ( A * U ) = Một - U 2 - Một2 - U 2U02tr(Một^*Bạn)= =Một^-Bạn2-Một^2-Bạn2
Deathbreath

2

Để hình thành các ràng buộc , chúng tôi tạo biến nhị phân , , . Đặt là giới hạn của biến , khi đó chúng ta chỉ cần thêm các ràng buộc sau:n b i{ 0 , 1 } 1 i n M fftối đa{f1,f2,...,fn}n bTôi{0,1}1TôinMf

1)ffTôi+(1-bTôi)M,Tôi

2)ΣTôibTôi= =1

Thông thường, đặt nếu chúng ta có thể ước tính giá trị của .f iM: =mmộtxTôifTôi-mTôinTôifTôifTôi


1

Bạn không thể giới thiệu một biến chùng? Vì vậy, để định dạng lại ràng buộc hãy viết nó như sau: Điều này sẽ có một giải pháp khả thi đối với vấn đề ban đầu nếu bạn chọn s = infinite. Nhưng tôi khá chắc chắn rằng bạn có thể chỉ ra rằng nếu bạn thêm một thuật ngữ vào hàm mục tiêu (nghĩa là bạn muốn có nhỏ càng tốt, tốt nhất là bằng không) và đủ lớn, sau đó bạn sẽ nhận lại được một giải pháp khả thi nếu vấn đề ban đầu có các giải pháp khả thi với giá trị khách quan nhỏ hơn vô hạn.x i < = s i s i > = một i 1 s i > = một i 2 . . . s i > = a i n c max ( s i - max (

xTôi<=tối đa(mộtTôi1,mộtTôi2,...,mộtTôin)
xTôi<=STôi
STôi> =mộtTôi1
STôi> =mộtTôi2
...
STôi> =mộtTôin
c*tối đa(STôi-tối đa(mộtTôi),0)
STôi-tối đa(mộtTôi)c

(Một bằng chứng sẽ đi dọc theo các dòng cho thấy rằng nếu và nếu , thì giải pháp là không thể thực hiện được; nói cách khác, là thước đo khả năng không thể viết được Nếu vấn đề ổn định, cần có sự cải thiện hữu hạn về giá trị hàm mục tiêu đối với vi phạm hữu hạn về tính khả thi. Nếu bạn chọn c lớn hơn tỷ lệ giữa thay đổi giá trị khách quan và vi phạm tính khả thi, thì đã sửa đổi chức năng mục tiêu sẽ phát triển cho các vấn đề đi vào khu vực không khả thi.)STôi> =tối đa(mộtTôi)xTôi= =STôiSTôi-tối đa(mộtTôi)


Đó là một ý tưởng tốt. Giả sử bằng chứng của bạn đi qua, vấn đề sau đó sẽ chuyển sự phi tuyến tính và sự không rõ ràng từ các ràng buộc vào mục tiêu, cả hai vẫn là những phẩm chất không mong muốn trong một công thức.
Geoff Oxberry

Tôi sợ điều này sẽ không hoạt động. Nếu số lượng là các biến, không phải là hằng, thì ràng buộc ban đầu của bạn không phải là một tập lồi trong . Mặt khác, bộ ràng buộc được điều chỉnh của bạn là một bộ lồi trong . Hai bộ ràng buộc không thể tương đương. mộtTôij(xTôi,mộtTôi1,mộtTôi2,...,mộtTôin)(xTôi,STôi,mộtTôi1,mộtTôi2,...,mộtTôin)
Michael Grant

1

Tôi không thể tìm thấy nút bình luận ...

tôiog(x)<5

Nếu đó là một tập hợp lồi, bạn có thể thực hiện giảm độ dốc trên hàm mục tiêu của mình, sử dụng một cái gì đó như Dykstra's_projection_alacticm để chiếu lại không gian của các ràng buộc.


Nâng cao cho nhận xét về các chức năng lõm; Tôi nên nghĩ nhiều hơn về lời giải thích của mình. Chiếu vào tập hợp khả thi là một khả năng, mặc dù tôi không chắc chắn ra khỏi đầu nếu bạn có thể áp dụng các thuật toán đó với các ràng buộc không rõ ràng.
Geoff Oxberry

x2+y2<5

"Các vấn đề không liên quan chỉ là NP-hard nếu chúng có số NP các giải pháp khả thi." NP là viết tắt của "đa thức không điều kiện". Tôi hoàn toàn lạc lối về những gì bạn đang nói. Thứ hai, tôi đã đề cập đến độ lõm vì các hàm tuyến tính là lõm và lồi; Hàm không lồi. Chỉ vì hàm này không phải là tuyến tính và piecewise tuyến tính không loại trừ ngay khả năng tồn tại một cải cách LP.
Geoff Oxberry

BạnTôijtối thiểuk{BạnTôik,Bạnkj}

Xin lỗi, đã phải viết tay bình luận, vì vậy tôi đã sử dụng NP cho phi đa thức và P cho đa thức. Vấn đề là tối ưu hóa không lồi không phải lúc nào cũng khó NP. Chỉ NP-hard nếu số lượng giải pháp khả thi là WORSE hơn đa thức. Xin lỗi vì sự nhầm lẫn :) Bạn nói đúng về việc cải tổ thành tuyến tính. Bạn dường như nói "Do đó, không có cách nào để cải tổ chương trình của bạn thành chương trình tuyến tính", vì không lồi lõm, tôi chỉ lưu ý rằng nó không liên quan đến lồi lõm mà là tuyến tính.
Tim

0

-0

Bạn0Mộtn-0

mộtbcctối đa(một,b)b= =cTôi,j,k

  1. BạnTôij<Bạnjk= =BạnTôik
  2. BạnTôik<Bạnjk= =BạnTôij
  3. Bạnjk<BạnTôik= =BạnTôij
  4. BạnTôij= =Bạnjk= =BạnTôik

tG(t)BạnTôij= =tBạnTôij= =Bạnjk= =tBạnj= =tBạnTôi= =Bạnk= =tG(t)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.