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.
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).
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=1↓0λi=2−ii
⟨c,x⟩−λi∑j=1mln(⟨aj,x⟩−b),
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 τ λ i⟨c,x⟩jmλ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.