Tối thiểu hóa thành phần tối đa của một vectơ


11

Tôi muốn tìm hiểu điều gì đó về vấn đề tối ưu hóa này: Đối với cho số nguyên không âm , tìm một hàm f giảm thiểu các biểu hiệnai,j,kf

maxkiai,f(i),k

Một ví dụ sử dụng một công thức khác nhau có thể làm cho nó rõ ràng hơn: Bạn được cung cấp một tập hợp các vectơ như

{
    {(3, 0, 0, 0, 0), (1, 0, 2, 0, 0)},
    {(0, 1, 0, 0, 0), (0, 0, 0, 1, 0)},
    {(0, 0, 0, 2, 0), (0, 1, 0, 1, 0)}
}

Chọn một vectơ từ mỗi bộ, sao cho thành phần tối đa của tổng của chúng là tối thiểu. Ví dụ: bạn có thể chọn

(1, 0, 2, 0, 0) + (0, 1, 0, 0, 0) + (0, 1, 0, 1, 0) = (1, 1, 2, 1, 0)

với thành phần tối đa bằng 2, rõ ràng là tối ưu ở đây.

Tôi tò mò nếu đây là một vấn đề nổi tiếng và phương pháp giải pháp gần đúng cụ thể cho vấn đề nào có sẵn. Nó phải nhanh và dễ lập trình (không có bộ giải ILP , v.v.). Không có giải pháp chính xác là cần thiết vì nó chỉ là một xấp xỉ của vấn đề thực sự.


Tôi thấy rằng tôi nên đã thêm một số chi tiết về các trường hợp vấn đề tôi quan tâm:

  • i{0,1,,63} , nghĩa là luôn có 64 hàng (khi được viết như trong ví dụ trên).
  • j{0,1} , nghĩa là chỉ có 2 vectơ trên mỗi hàng.
  • k{0,1,,N1} trong đó (chiều dài vectơ) nằm trong khoảng từ 10 đến 1000.N

Hơn nữa, trên mỗi hàng, tổng các phần tử của tất cả các vectơ là như nhau, nghĩa là

i,j,j:kai,j,k=kai,j,k

và tổng các phần tử của vectơ tổng nhỏ hơn độ dài của nó, nghĩa là

kiai,f(i),k<N

4
Không khó để giảm vấn đề 3 phân vùng cho vấn đề của bạn. Điều này có nghĩa là vấn đề của bạn đã hoàn thành NP ngay cả khi các số được đưa ra một cách đơn nhất và điều này loại trừ một trong những cách tiếp cận phổ biến cho thuật toán gần đúng.
Tsuyoshi Ito

Cảm ơn đã sửa chữa và cảm ơn @Tsuyoshi Ito vì cái nhìn sâu sắc. Nếu tôi hiểu chính xác, việc hạn chế hai vectơ trên mỗi dòng (mà tôi quên nêu) làm mất hiệu lực giảm và có thể làm cho vấn đề dễ dàng hơn nhiều.
maaartinus

Bạn nói đúng, việc giảm từ vấn đề 3 phân vùng tôi nghĩ là không hoạt động nếu chỉ có hai vectơ trên mỗi hàng.
Tsuyoshi Ito

Vì vậy, có sự kết hợp để so sánh? ji
Jason Kleban

@ uosɐſ: Nói chính xác, có các kết hợp có thể, trong đó là số khả năng cho và là số khả năng cho . JI=264J=2jI=64i
maaartinus

Câu trả lời:


7

Giảm từ 3SAT xuống phiên bản hai vectơ: đưa ra một công thức, hãy để biến chỉ số, và mệnh đề chỉ mục. Đặt là số lần biến xuất hiện tích cực (nếu ) hoặc phủ định (nếu ) trong mệnh đề . OPT nhỏ hơn iff công thức là thỏa đáng (sự rõ ràng là rõ ràng).ij{0,1}kai,j,kij=0j=1k3

Làm thế nào tôi sẽ tấn công vấn đề này: tìm kiếm khu phố lớn. Bắt đầu với bất kỳ giải pháp. Chọn hàng ngẫu nhiên. Sử dụng sức mạnh vũ phu để tìm giải pháp tốt nhất trong đó có thể thay đổi trên các hàng đó. Rất có thể thực hiện được với thậm chí vừa phải với kích thước bài toán là hàng. Nói lại.rfk64


1
Đây là một giảm đẹp. Tôi không chắc tại sao nó không có phiếu bầu nào. Dù sao, đây là +1 của tôi.
Tsuyoshi Ito

1
Tôi nghĩ bạn nên xây dựng một chút về giảm. Đặc biệt, bạn có ẩn tốt, có thể là quá tốt, vì nó làm cho đồ trang sức hơi khó nhìn. f
Raphael

7

Chúng ta không thể thảo luận về độ phức tạp của một vấn đề khi kích thước của vấn đề được cố định thành một hằng số, bởi vì (phần lớn) lý thuyết phức tạp liên quan đến hành vi tiệm cận của sự phức tạp của vấn đề khi kích thước của vấn đề có xu hướng vô cùng. Ở đây, tôi coi cả số lượng hàng và độ mờ của vectơ là biến.

Sau đó, vấn đề là NP-đầy đủ ngay cả khi các số trong đầu vào được đưa ra một cách đơn nhất. Đây không phải là một câu trả lời cho câu hỏi của bạn bởi vì bạn đang hỏi về xấp xỉ, nhưng nó là một cái gì đó.

Xác định vấn đề một cách chặt chẽ:

Sơ thẩm : n cặp vectơ a i , b im ( i ∈ {1, Vách , n }) và K ∈, tất cả đều bằng nhau.
Câu hỏi : Chúng ta có thể chọn a i hoặc b i cho mỗi i để tổng của các vectơ n này có nhiều nhất K trong mỗi tọa độ không?

Sau đây là một vấn đề NP-đầy đủ được gọi là phân vùng 3 :


Sơ đồ 3 phân vùng : B ∈ và 3 k số nguyên c 1 , Số, c 3 k giữa B / 4 và B / 2, độc quyền, sao cho i = 1 3 k c i = kB , tất cả đều ở dạng đơn.
Câu hỏi : Có thể các MultiSet { c 1 , ..., c 3 k } được phân chia thành k multisets S 1 , ..., S k sao cho tổng của mỗi S j bằngB ?

Cho một thể hiện ( B ; c 1 , Mạnh, c 3 k ) của bài toán 3 phân vùng, xây dựng một thể hiện của vấn đề trên như sau. Đối với mỗi i = 1, ..., 3 kj = 1, ..., k , chúng tôi sẽ xây dựng một cặp 4 k vectơ chiều, đại diện cho sự lựa chọn về việc c i thuộc về S j hay không:

  • Các vector đại diện cho sự lựa chọn “ c iS j ” chỉ có một khác không nhập cảnh, đó là ( k -1) c i tại j thứ phối hợp.
  • Các vector đại diện cho sự lựa chọn “ c iS j ” cũng chỉ có một entry khác không, đó là B tại ( k + i ) -thứ phối hợp.

Không khó để thấy rằng trường hợp ( B ; c 1 , Mạnh, c 3 k ) của bài toán 3 phân vùng có một giải pháp khi và chỉ khi có một cách để chọn một vectơ từ mỗi 3 k 2 được xây dựng cặp để tất cả các tọa độ của tổng của các vectơ là tại hầu hết ( k -1) B . (Trong thực tế, khi điều này xảy ra, tất cả các tọa độ của tổng bằng ( k 1) B. ) Vì vậy, đây là một sự giảm từ vấn đề 3 phân vùng cho vấn đề trên.

Cho đến nay, tôi đã bỏ qua hai ràng buộc bổ sung được nêu ở cuối câu hỏi, nhưng cả hai đều dễ thực thi bằng cách sửa đổi mức giảm này một chút. Điều kiện là tổng các phần tử của mỗi vectơ bằng nhau có thể được thực thi bằng cách nối các tọa độ giả chỉ chứa 0 hoặc 1. Điều kiện là tổng này nhỏ hơn kích thước có thể được thực thi bằng cách nối các tọa độ giả chỉ chứa 0.


Câu trả lời hay, chỉ là một số lưu ý: 1. Tôi không quan tâm đến sự phức tạp về lý thuyết ở đây. 2. Số lượng hàng được cố định và có thể duy trì như vậy, vì đủ. Điều đó nói rằng, cảm ơn rất nhiều. N
maaartinus
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.