Tìm một tập hợp kích thước cố định có thành viên được chứa bởi số lượng lớn nhất các tập hợp khác


7

Tôi đã suy nghĩ về một vấn đề, được truyền cảm hứng từ việc gặp một giáo sư ngoại ngữ cấp độ mới bắt đầu tại Viện Goethe, người đã học năm ngôn ngữ phổ biến nhất được sử dụng bởi các sinh viên để giao tiếp với càng nhiều sinh viên càng tốt.

Hãy xem xét một số dân số hữu hạn của mọi người, mỗi người nói bất kỳ số lượng ngôn ngữ. Vì mục đích của vấn đề, chúng tôi sẽ bỏ qua một số điều khiến ngôn ngữ trở nên phức tạp trong cuộc sống thực (ví dụ: mọi người nói một số ngôn ngữ nhưng ở các cấp độ khác nhau, rằng những người hiểu một ngôn ngữ có thể có thể hiểu được liên quan chặt chẽ ngôn ngữ, vân vân).

Ví dụ:

  • P 1 lên tiếng {English, German}.
  • P 2 lên tiếng {Spanish, Italian, French}.
  • P 3 lên tiếng {Mandarin, English}.
  • P 10000 nói {Afrikaans, Swahili, English}, và như vậy.

Tôi đang viết một số tài liệu mà tôi muốn dịch để được nhiều người hiểu nhất có thể. Thật không may, ngân sách của tôi bị hạn chế và tôi chỉ có thể đủ khả năng dịch sang N ngôn ngữ khác nhau.

Đối với một giá trị N đã cho, làm cách nào để tính toán bộ ngôn ngữ N tối ưu để đạt được số lượng người lớn nhất trong số dân dự định?

Vấn đề nghe có vẻ dễ dàng được khái quát hóa như một vấn đề lý thuyết tập hợp / tổ hợp, và vì vậy tôi chắc chắn ai đó đã từng làm việc trên một cái gì đó giống như nó trước đây. Tôi muốn xem qua các tài liệu hiện có, nhưng tôi không biết làm thế nào để tìm thấy nó.

Có một tên cho loại vấn đề này? Nếu không, nó có thể được giảm xuống một vấn đề được biết đến?


Tôi tin rằng vấn đề này thuộc nhóm vấn đề được gọi là vấn đề tối ưu hóa
MatthewRock

2
@MatthewRock Yea. Nếu bạn đưa cho tôi một quả táo và hỏi tôi, "đó là loại táo gì?" và tôi nói, "Đó là một loại trái cây", phản ứng của bạn sẽ là gì?
Raphael

1
"Có một cái tên cho vấn đề bao trùm một bộ với một số lượng cố định của các bộ khác không?" có lẽ? Chà, tôi hỏi "Có tên cho Set Cover với kích thước giải pháp cố định không?" nhưng vì rõ ràng bạn không biết về Set Cover, điều đó sẽ không có ý nghĩa.
Raphael

@Raphael Tôi tin rằng đó là cách khác; Tôi đưa cho bạn một quả và hỏi nó là gì. Bạn nói với tôi rằng đó là "một loại táo" hoặc (nhiều khả năng) rằng "nó có thể mọc trên cây". Bạn đã không trả lời câu hỏi của tôi, nhưng có lẽ nó có thể giúp tôi bằng cách nào đó - do đó, một nhận xét, không phải là một câu trả lời. Trường hợp xấu nhất: Tôi chỉ đăng bình luận vô dụng. Một trường hợp thực tế một chút: ai đó học được một cái gì đó mới.
MatthewRock

Câu trả lời:


6

Tôi tin rằng vấn đề của bạn là một ví dụ trực tiếp của Vấn đề bảo hiểm tối đa NP-hard, có liên quan đến Set Cover.

Từ wikipedia, Vấn đề bảo hiểm tối đa :

Là đầu vào, bạn được cung cấp một số bộ và một số k . Các bộ có thể có một số yếu tố chung. Bạn phải chọn tối đa k của các bộ này sao cho số lượng phần tử tối đa được bao phủ, tức là liên kết của các bộ được chọn có kích thước tối đa.

Vì vậy, trong trường hợp của bạn, có một bộ cho mỗi ngôn ngữ có số lượng bằng với số lượng sinh viên nói ngôn ngữ đó. Đầu vào là số N của số lượng bản dịch tối đa.


Đóng đinh nó Chào mừng đến với trang web!
David Richerby

2

Nếu chúng tôi bỏ qua số lượng người nói ngôn ngữ bản địa hiện tại, vấn đề của bạn là Set Cover - bạn hỏi liệu có thể bao gồm tất cả các ngôn ngữ với hầu hết các dịch giả .k

Thêm trọng số - số lượng người bản ngữ của mỗi ngôn ngữ - thêm chế độ tối ưu hóa - chúng tôi chỉ có thể bao gồm một số ngôn ngữ nhưng muốn tổng trọng lượng tối đa. Điều này chắc chắn không dễ dàng hơn; việc giảm từ Set Cover là không đáng kể.

Vì vậy, vấn đề của bạn là NP-hard.

Vì nó cũng dễ dàng diễn đạt bằng lập trình số nguyên, chúng ta có thể kết luận nó là NP-Complete.

Về tên, tôi không biết một. "Covered Set Cover" đã được sử dụng cho biến thể có chi phí, nhưng tôi đã phát minh ra thứ gì đó xung quanh những dòng này. "Có thể đặt Trọng lượng tối đa", có thể.


Bạn không cần phải bỏ qua người bản ngữ: mỗi người quan tâm có một danh sách các ngôn ngữ họ nói và một trong số đó có lẽ là ngôn ngữ mẹ đẻ của họ. Ngoài ra, bạn dường như đang tối ưu hóa theo nghĩa ngược lại với những gì câu hỏi yêu cầu. Bạn đang trả lời câu hỏi, "Số lượng bản dịch nhỏ nhất sẽ cho phép mọi người hiểu là gì?"; câu hỏi đặt ra là "Tôi có ngân sách dịch cố định: tôi nên dịch sang ngôn ngữ nào để tối đa hóa số người có thể hiểu?"
David Richerby 6/07/2016

2
Trên thực tế, điều này vẫn đưa ra một bằng chứng đơn giản hơn về NP-độ trễ so với của tôi. Bạn có thể giải quyết tập hợp bằng cách sử dụng tìm kiếm nhị phân để tìm giá trị tối thiểu của (số lượng bản dịch được thực hiện) sao cho tập hợp những người đạt được là tất cả mọi người. k
David Richerby

@DavidR Richby Ý tôi là độc giả . Nó vẫn tiềm ẩn trong câu hỏi, nhưng từ mô tả tôi đã thu thập được rằng chúng tôi có dữ liệu về việc có bao nhiêu người có thể hiểu ngôn ngữ nào, chính xác để tối ưu hóa khi bạn nêu. Tôi rõ ràng hình thành một cách dễ hiểu lầm?
Raphael

@DavidR Richby Có thể là chúng tôi không thể tiếp cận tất cả mọi người trong ngân sách, đó là trường hợp thú vị. Đó là nơi vấn đề phân ra từ Set Set đơn giản.
Raphael
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.