Giải pháp trung điểm cho các chương trình tuyến tính


9

Có một chương trình tuyến tính mà tôi muốn không chỉ là một giải pháp mà là một giải pháp trung tâm nhất có thể trên mặt của đa giác giả định giá trị tối thiểu.

Một tiên nghiệm, chúng tôi hy vọng mặt thu nhỏ phải có chiều cao vì nhiều lý do, bao gồm cả hàm mục tiêu được thu nhỏ là tối đa của nhiều ràng buộc:

Thu nhỏ chủ đề thành với tuyến tính và cho tất cả và .f i ( ˉ x ) ϵ < 0 f i x i > 0 i i x i = 1ϵfi(x¯)ϵ<0fixi>0iixi=1

Tất nhiên, chúng tôi sẽ không nhận được bất kỳ thuộc tính giống như trung tâm nào dưới dạng thuật toán đơn giản. Có bất kỳ thuật toán điểm nội thất thông thường thể hiện các tính chất như vậy mặc dù? Thậm chí có đảm bảo họ sẽ tránh các đỉnh hoặc mặt chiều thấp hơn bất cứ khi nào có thể?


Trên thực tế, tôi có thể hài lòng với một chương trình bậc hai dễ dàng tìm ra điểm giữa của toàn bộ đa giác vì tính trung tâm quan trọng hơn mức tối thiểu, chỉ tò mò mơ hồ nếu các thuật toán lập trình tuyến tính khác cung cấp các thuộc tính có liên quan.

Cập nhật: Tôi đã giảm vấn đề tiềm ẩn thành một vấn đề tối thiểu hóa bị ràng buộc đơn giản có thể giải quyết được với các số nhân Lagrange, nhưng dù sao câu hỏi trên vẫn rất thú vị.


2
không chính xác câu hỏi của bạn nhưng: tính toán trọng tâm là # P-hard; tôi không chắc chắn xấp xỉ tốt nhất là gì, nhưng đối với một số ứng dụng đặt đa giác ở vị trí đẳng hướng và lấy trung bình của nhiều mẫu thống nhất từ ​​các đa giác (biến đổi). xem những lưu ý này, bổ đề 15 chẳng hạn: cc.gatech.edu/~vempala/acg/notes.pdf
Sasho Nikolov

Đây có phải là một câu hỏi lý thuyết hay thực tế hơn? có lẽ sẽ khả thi khi tạo ra tất cả các đỉnh của mặt tối ưu và sau đó sử dụng một số kết hợp lồi phù hợp của chúng.
nặc danh

Câu trả lời:


4

Tôi có một vài quan sát quá dài cho các bình luận. Đây là một bản tóm tắt.

  1. Bất kỳ thuật toán nào để giải quyết chính xác vấn đề của bạn đều có thể được sử dụng để giải quyết chính xác các chương trình tuyến tính (nghĩa là "lập trình tuyến tính mạnh", được sử dụng trong giải pháp của Sariel và hiện tại không có thuật toán thời gian đa thức).

  2. Theo dõi tự nhiên là nếu các giải pháp gần đúng (nghĩa là "lập trình tuyến tính yếu") có thể cung cấp một giải pháp. Mặc dù câu trả lời là có, nhưng có vẻ như điều kiện dừng cho quy trình này đòi hỏi số lượng mà theo hiểu biết tốt nhất của tôi, không thể tính được trong thời gian đa thức. (ví dụ, các thuật toán tìm thấy một cái gì đó tốt, nhưng xác nhận đây là khó khăn.) gợi ý chính của tôi ở đây là để tạo ra một định nghĩa ý nghĩa của một " -optimal giải pháp" cho vấn đề của bạn, trong trường hợp mà phương pháp này là dễ xử lý. (Chiến lược này thực sự ném ra các mặt nhỏ của khối đa diện.)ϵ

Nói chung, trong khi suy nghĩ về tuyên bố hiện tại của bạn về vấn đề của bạn, tôi tiếp tục chạy vào xem xét hiệu quả. Nhưng có trực giác hợp lý cho vấn đề này: các vật thể chúng ta ném xung quanh - các đỉnh, mặt, v.v. - rời rạc và phong phú theo cấp số nhân.

(1.) Giả sử chúng ta có một thuật toán giải quyết chính xác vấn đề của bạn. Lưu ý rằng bất kỳ điểm tiếp xúc nào của bất kỳ mặt nào chứa điểm giữa được cung cấp sẽ là một giải pháp chính xác cho chương trình tuyến tính ban đầu. Vì vậy, tiến hành như sau. Thêm một ràng buộc tuyến tính mới nói rằng giá trị mục tiêu ban đầu phải bằng giá trị tối ưu (mà chúng ta biết bây giờ) và đặt mục tiêu mới để tối đa hóa tọa độ đầu tiên của giải pháp. Lặp lại quy trình này một lần cho mỗi thứ nguyên, mỗi lần thêm một ràng buộc và chọn tọa độ mới để tối đa hóa. Quá trình này sẽ làm giảm kích thước của giải pháp mỗi lần; nhất thiết, khi quá trình hoàn thành, chúng ta có một tập hợp affine 0 chiều, nghĩa là một điểm duy nhất. Do đó vớidO(d)Lặp lại thuật toán giải điểm giữa của bạn (và chỉ tăng mô tả vấn đề bằng một đa thức số lượng trong mỗi lần), lập trình tuyến tính mạnh được giải quyết. Điều này cho thấy rằng trong khi giải pháp của Sariel yêu cầu lập trình tuyến tính mạnh mẽ, một giải pháp chính xác cho câu hỏi của bạn không thể tránh được. ( Chỉnh sửa : lưu ý rằng bằng chứng của tôi giả sử một khối đa diện nhỏ gọn (đa giác) làm đầu vào; nếu không, nó phải làm việc khó hơn một chút để tìm các đỉnh.)d

(2.) Đây là sơ đồ lặp, sử dụng bộ giải lồi hoàn toàn trong mỗi lần lặp, các giải pháp của nó sẽ hội tụ thành một khái niệm nhẹ về giải pháp trung điểm. Chọn một chuỗi các tham số hình phạt tích cực nhưng đang giảm ; thật hợp lý khi những thứ này đi xuống về mặt hình học, tức là . Bây giờ, với mỗi , tối thiểu hóa hàm lồiλ i = 2 - i i{λi}i=10λi=2ii

c,xλij=1mln(aj,xb),

nơi là gốc khách quan, và bạn dãy qua trở ngại ban đầu, bây giờ được đặt trong mục tiêu thông qua các rào cản logarit (lưu ý, đây là tiêu chuẩn). Bây giờ nếu chúng ta nghĩ về mặt thu nhỏ (kích thước lớn nhất) của khối đa diện của bạn, hãy lưu ý rằng đối với đủ nhỏ và dung sai với hộp đen tối lồi của bạn, tối ưu gần đúng của bạn sẽ ở gần mặt này, tuy nhiên các rào cản sẽ đẩy nó càng xa càng tốt từ các ràng buộc khác. Nói cách khác, nhưj m λ i τ λ ic,xjmλiτλigiảm dần, mục tiêu tuyến tính ban đầu cuối cùng sẽ chi phối một số rào cản khó khăn đang giữ bạn khỏi khuôn mặt thích hợp, nhưng sẽ không tác động đến các rào cản giữ bạn khỏi các ranh giới khác, đặc biệt là các mặt của mục tiêu.

Trong một thế giới hoàn hảo, chúng tôi sẽ ngồi xuống và phân tích xác định một giá trị hoàn hảo , hoặc ít nhất là thời gian dừng lại để bạn không phải giải quyết, vô cùng nhiều vấn đề. Thật không may, điều này có vẻ khó khăn. Một ý tưởng là, để xác định chiều rộng nhỏ nhất của bất kỳ mặt nào có kích thước lớn hơn 0; đây là một vấn đề tối thiểu hóa được xác định rõ ràng với tối ưu tích cực, bởi vì có nhiều mặt chính xác (và chiều rộng được tính tương đối với mỗi mặt). Với điều này, chúng ta có thể đặt đủ nhỏ để tầm ảnh hưởng của các rào cản rất nhỏ trong trung tâm của mọi khuôn mặt. Thật không may, có thể có nhiều mặt theo cấp số nhân, vì vậy tính toán số lượng này là vô nghĩa.λλλ

Tất cả các điều kiện dừng tôi có thể đưa ra có những khó khăn tính toán này. (Hơn nữa, nhiều người một lần nữa có thể được sử dụng để biến điều này thành một bộ giải lập trình tuyến tính mạnh.)

Vì lý do này, khuyến nghị của tôi là xây dựng một khái niệm về `` - bao gồm điểm giữa tối ưu '' và giải quyết nó bằng cách chọn và dung sai hộp đen lồi của bạn một cách thích hợp. Tôi nghĩ rằng đây là một lựa chọn hợp lý bởi vì bạn có thể thực sự không quan tâm đến khuôn mặt có chiều rộng lớn nhất nhiều nhất .bước sóng τ εϵλτϵ

(Một số ý kiến ​​cuối cùng.) Có vẻ như khái niệm "điểm giữa" là rất quan trọng; Nhận xét của Sasho chỉ ra rằng trọng tâm (trung tâm của khối lượng?) Là một vấn đề cực kỳ khó khăn, trong khi đó, việc tìm kiếm, quả bóng được ghi lớn nhất là dễ dàng. Các rào cản logarit mà tôi đã đề xuất ở trên nói chung sẽ không phù hợp với một trong hai khái niệm trung điểm này. Mặt khác, đối với các rào cản và bóng, bạn có thể rút ra một giới hạn thấp hơn về khoảng cách từ tâm của bạn đến ranh giới tương đối của khuôn mặt; có lẽ điều này hữu ích hơn với bạn?

Cuối cùng, từ mô tả của bạn, tôi tin rằng bạn có nghĩa là "khuôn mặt mục tiêu" có kích thước càng cao càng tốt? Điều này được xác định rõ, tuy nhiên cũng có các mặt giải pháp cho tất cả các kích thước nhỏ hơn có thể. Dù sao, cả cách tiếp cận của Sariel và cách tiếp cận rào cản ở trên sẽ hoạt động với diện mạo lớn nhất.


Có, tôi đã xem xét các thủ thuật như thế này, nhưng cuối cùng tôi đã thực hiện tối thiểu hóa chủ đề cho bằng cách sử dụng số nhân Lagrange. Nó mang lại một thuộc tính trung tâm yếu cho trên đường chéo, có thể không phải là bề mặt thu nhỏ, nhưng chắc chắn là một trong những bề mặt ràng buộc không bao giờ di chuyển. Tôi chỉ đơn giản là chạy một chương trình tuyến tính riêng biệt khi các điều kiện không ngừng phát triển và tôi thực sự cần mức tối thiểu thực sự cho . Cuối cùng, không cần phải giữ tối thiểu để giúp các ràng buộc phát triển nhanh hơn. Cảm ơn mặc dù! :) Σ j x j = 1 x ε εifi(x)2+jxj2jxj=1xϵϵ
Jeff Burdges

Ahh # 2 có vẻ thú vị, không phải những gì tôi nghĩ ban đầu. dễ thương! Như tôi đã nói, tôi tha thứ cho vì đã không hạ cánh trên khuôn mặt thu nhỏ, miễn là nó đi đâu đó hợp lý nhanh chóng. Tôi sẽ chơi với điều này tại một số điểm. Trên thực tế, tôi sẽ cần phải đọc về dù sao tối ưu hóa lồi vì tôi đã tìm thấy một lý do để thực hiện song song mục tiêu của mình thay vì tuyến tính. x
Jeff Burdges

Tôi không hiểu quan điểm về "lập trình tuyến tính mạnh" và tôi chưa bao giờ nghe thấy biểu hiện này trước đây. người ta không biết làm thế nào để giải quyết LP trong thời gian đa thức mạnh. nhưng việc giải một LP trong đa thức thời gian trong mô tả đầu vào (tức là thời gian đa thức yếu) tất nhiên là được biết đến. Nếu OP muốn một thuật toán chạy trong thời gian đa thức yếu thì giải pháp của Sariel + thuật toán điểm bên trong đa thời gian sẽ thực hiện công việc, phải không?
Sasho Nikolov

@SashoNikolov, đây là sự hiểu biết hiện tại của tôi. Bất kỳ bộ giải hiện tại (đa thời gian yếu) nào cũng sẽ lấy dung sai làm đầu vào và trả về một giải pháp tối ưu . Trong khi đó, giải pháp của Sariel chủ yếu phụ thuộc vào một giải pháp chính xác: cụ thể, một phương pháp điểm bên trong sẽ trả về một mức tối ưu gần đúng bên trong, có nghĩa là bước xác định thân tàu của mặt tối ưu mong muốn sẽ thực sự chọn ra toàn bộ khả thi bộ. Tôi đồng ý rằng tôi nên xem lại những gì tôi đã viết về mạnh / yếu, trong đó vấn đề chính là thực sự có được giải pháp chính xác theo bất kỳ cách nào. τττ
matus

@SashoNikolov, bây giờ tôi nghĩ về nó, khái niệm tối ưu tương tự (với cùng các vấn đề) có thể được áp dụng cho giải pháp của Sariel, ví dụ bằng cách xử lý các ràng buộc trong phạm vi dung sai nhỏ để thực sự chặt chẽ và điều chỉnh giá trị này một cách phù hợp. Tôi sẽ cập nhật giải pháp của tôi tối nay.
matus

6

Trước tiên, hãy tìm giải pháp tối ưu, sau đó thêm ràng buộc tuyến tính rằng giải pháp đó phải có giá trị bằng với mức tối ưu bạn muốn và đặt lại LP của bạn như một quả bóng tìm kiếm quả bóng lớn nhất trong vùng khả thi. Giải quyết LP đã được kiểm duyệt này và bạn có những gì bạn muốn.

Tại sao vấn đề thứ hai có thể được giải quyết bằng LP là một vấn đề dễ thương nghiêm trọng trong Hình học tính toán ...

==============

Chính thức hơn, bạn tìm thấy không gian con affine bao trùm các điểm khả thi có chứa giải pháp tối ưu. Vì vậy, giả sử rằng giải pháp tối ưu nằm trên siêu phẳng (nghĩa là là hàm mục tiêu LP ban đầu). Nếu là vùng khả thi của LP ban đầu, chúng tôi đang tìm kiếm quả bóng lớn nhất trong . Để kết thúc này, chúng ta cần tính toán không gian con affine chiều nhỏ nhất chứa tập hợp này. Khi bạn tìm thấy không gian con này, hãy thay đổi các biến để bạn chỉ xem xét phần phụ này. Bây giờ, polytope của bạn là dimenisonal đầy đủ và bạn có thể sử dụng LP thứ hai như tôi đã mô tả ở trên.hcx=αmincxPPh

Vì vậy, hãy để là đỉnh được tính bằng LP đầu tiên. Xem xét tất cả các đỉnh lân cận để . Xem xét không gian con affine của cùng với tất cả các lân cận có cùng giá trị đích (nghĩa là ). Không khó để thấy rằng không gian con affine này là không gian con mong muốn.vvvα

Vì vậy, để hè hóa: (A) giải LP để khám phá giá trị tối ưu. (B) Tính không gian con chiều nhỏ nhất chứa giải pháp khả thi với giá trị tối ưu. (C) Viết lại LP ban đầu trong phần phụ affine này (nghĩa là bỏ tất cả các kích thước không liên quan), thêm một biến và biến nó thành LP để tìm quả bóng lớn nhất trong đa giác này.


"Quả bóng lớn nhất" có nghĩa là gì trong một khối đa diện không có kích thước đầy đủ?
Kristoffer Arnsfelt Hansen

@KristofferArnsfeltHansen khối đa diện chắc chắn là một tập lồi nằm trong một không gian con affine của một số chiều.
Sasho Nikolov

để làm việc này, bạn cần chỉ định một ràng buộc giới hạn bạn đối với (các) khuôn mặt bạn đã tìm thấy trong bước đầu tiên. Bạn cũng cần biết rằng giải pháp là không đổi trên khuôn mặt này (có lẽ sự chậm chạp bổ sung sẽ tiết lộ điều này)
Suresh Venkat

Có cách nào để thực hiện các bước sau khi tối ưu hóa ban đầu trong thời gian đa thức không? Như đã viết, nó dường như đòi hỏi phải xem xét tất cả các đỉnh trong mặt mục tiêu, trong đó có thể có nhiều số mũ.
matus

1
Nó dễ hơn thế - bạn chỉ cần xem xét các đỉnh liền kề với đỉnh tối ưu - có nhiều nhất là liền kề với nó và bạn có thể tính toán chúng trong thời gian đa thức .... Để xem tại sao nó đúng, hãy xem xét đa giác trên không gian con affine - nó được kéo dài bởi các lân cận của nằm trên không gian con affine này, nhưng đây là một tập hợp con của các đỉnh liền kề với v trong đa giác gốc. Và vâng - tôi đã mất khá nhiều thời gian để thấy điều đó. vdv
Sariel Har-Peled
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.