Cuộc gặp gỡ hàng ngày với các vấn đề hoàn thành NP


34

Mark Dominus đã thu thập một vài ví dụ về việc giảm thời gian đa thức từ các vấn đề NP-hard khác nhau sang biểu thức chính quy phù hợp . Hình dung xác minh thời gian đa thức không phải là một bước nhảy vọt.

Làm thế nào để bạn minh họa NP-class hoàn thành cho sinh viên đại học hoặc cho bạn bè trong các lĩnh vực khác, những người muốn tìm hiểu sự ồn ào gần đây trên bài báo của Deolalikar?

Câu trả lời:


24

Ví dụ yêu thích của tôi để sử dụng với những người bạn không phải là CS là ví dụ này:

Áp-ra-ham, A. Blum, Sandholm. Xóa các thuật toán cho thị trường trao đổi hàng đổi hàng: cho phép trao đổi thận trên toàn quốc. EC07.

Thị trường trao đổi thận về cơ bản là một hình thức hạn chế của chu kỳ bao gồm. Tôi thích ví dụ này bởi vì a) thật dễ dàng để giải thích ý chính (nếu bạn bỏ qua một số chi tiết kỹ thuật hơn) và b) đó là một trong số ít trường hợp tôi biết về thuật toán tốt hơn có thể cứu mạng!

Ví dụ yêu thích thứ hai của tôi là vấn đề bệnh viện và cư dân (hay còn gọi là vấn đề tuyển sinh đại học). Mỗi bệnh viện xếp hạng tất cả cư dân (sinh viên tốt nghiệp y khoa) và cư dân xếp hạng bệnh viện. Mỗi bệnh viện có một số lượng nhất định. Từ đó, nó là một vấn đề phù hợp ổn định và có thể được giải quyết trong thời gian đa thức.

Nhưng trong thực tế, các cặp vợ chồng có thể tham gia hệ thống (vâng, thực sự có một hệ thống ) cùng nhau, do đó, hệ thống sẽ không chia tay các cặp vợ chồng vừa đăng ký cư trú. Việc bổ sung các cặp vợ chồng làm cho vấn đề NP-hoàn thành. Ngoài việc dễ giải thích, điều này thể hiện độc đáo cách giới thiệu các kết nối tầm xa có thể tạo ra tính hoàn chỉnh NP.


1
Ví dụ tuyệt vời! David Manlove đã làm việc nhiều về các loại vấn đề này (cả trao đổi và kết hợp); các hệ thống đang được sử dụng ở Anh và Hungary. dcs.gla.ac.uk/~davidm/publications.html Theo tôi biết, các phương pháp này đánh bại các thuật toán NRMP và thuật toán xấp xỉ 3/2 của Eric McDermid là thuật toán được biết đến nhiều nhất. dx.doi.org/10.1007/978-3-642-02927-1_57
András Salamon

13

Một số vấn đề "mỗi ngày" là NP-hard, được xây dựng phù hợp:

  • Chỉ định các lớp học đại học cho các khoảng thời gian để giảm thiểu xung đột lịch trình.

  • Chỉ định khách dự tiệc cưới vào chỗ ngồi để bạn bè ngồi cùng bàn, nhưng kẻ thù thì không.

  • Lên kế hoạch cho một chuyến đi đường đến thăm tất cả các điểm du lịch trong danh sách, để giảm thiểu lái xe.


12

Vấn đề nhân viên bán hàng du lịch rõ ràng là có thể truy cập được ... ít nhất là tôi đang ở đây, đây dường như là vấn đề CS phổ biến nhất trong số những người không CS. Tôi cũng thấy hình minh họa sau đây của Vertex Cover khá hấp dẫn, như được giới thiệu bởi người hướng dẫn thuật toán của tôi:

Bạn có một mạng lưới đường và muốn đảm bảo rằng nếu một chiếc xe bị hết nhiên liệu, có một trạm xăng ở ít nhất một đầu đường.

Là một người lập kế hoạch thành phố, bạn muốn giảm thiểu chi phí bằng cách xây dựng số lượng trạm xăng ít nhất có thể. Đây thực chất là vấn đề che đỉnh, và tôi đã tìm thấy một số thành công khi chỉ ra rằng mặc dù bạn không mong đợi tìm được đỉnh đỉnh tối ưu trong thời gian đa thức, bạn có thể tìm thấy thứ gì đó chỉ là hai nhân tố trong thời gian đa thức, bằng cách chỉ cần chọn cả hai điểm cuối của kết quả khớp tối đa (tốt, chi tiết cuối cùng đó có thể bị bỏ qua tùy thuộc vào mức độ quan tâm của khán giả - đặc biệt là vì thuật toán MM không chính xác là hai lớp).

Đối với một ví dụ về một "bước nhảy phức tạp" với một sự thay đổi nhỏ về bản chất của vấn đề, tôi nghĩ rằng sự khác biệt giữa việc kiểm tra khả năng 2 màu và 3 màu là một ví dụ điển hình. Với tất cả sự công khai xung quanh định lý bốn màu, người ta cũng có thể chỉ ra rằng việc kiểm tra xem một bản đồ có thể được tô màu đúng chỉ với ba màu thay vì bốn màu hay không, mặc dù chúng ta biết rằng nó luôn có thể được tô màu bằng bốn màu. Một số lượng khá lớn người tìm thấy điều này khá giật mình.

Một tình huống khá tự nhiên khác là vấn đề phục hồi bế tắc trong các hệ điều hành. Điều này được mô hình hóa bằng bài toán NP-đầy đủ của tập đỉnh phản hồi - số đỉnh nhỏ nhất mà việc loại bỏ làm cho biểu đồ trở nên tuần hoàn - và tôi thấy đây cũng là một ví dụ đáng chú ý (và được giải thích thêm trong bài viết trên wikipedia đó).


3
Một kết hợp tối đa là đủ cho phép tính gần đúng hai, dễ dàng hơn nhiều để tính toán và giải thích.
Warren Schudy

1
@Warren: Cảm ơn bạn đã chỉ ra điều đó, tất nhiên bạn hoàn toàn đúng!
Neeldhara

8

Tôi nghĩ đỗ xe song song là NP-hard.

Trong thực tế, vấn đề chung hơn của việc tìm đường đi ngắn nhất với độ cong giới hạn đưa một đối tượng đa giác từ vị trí ban đầu đến vị trí cuối cùng trong môi trường đa giác là NP-hard. Bằng chứng có thể được tìm thấy ở đây - http://portal.acm.org/citation.cfm?id=298976


7

Knapsack khá dễ nắm bắt, đặc biệt đối với bất kỳ ai đã phải đối phó với một chiếc vali nhỏ .. một ví dụ hay nếu họ biết lập trình động.

Một trò vui khác (thực tế giống hệt nhau) là Subset-sum, bởi vì nó cũng có một cách giải thích vật lý tốt đẹp: hãy tưởng tượng các số là khoảng cách của các khối lượng điểm bằng nhau trên một thước đo lý tưởng (không có khối lượng), với điểm tựa ở gốc. Subset-sum nói: có tồn tại một tập hợp con không rỗng sao cho thước đo sẽ vẫn cân bằng? (tức là sao cho trọng tâm là điểm hỗ trợ cho thước?)

Trong cả hai trường hợp, dường như trực quan rằng các chiến lược ngây thơ có thể buộc phải dùng đến việc kiểm tra tất cả các tập hợp con.

Nếu họ có nhiều nền tảng hơn, thật tốt khi phát triển các vấn đề bằng cách loại bỏ các ràng buộc. Ví dụ, bắt đầu với một vấn đề dòng chảy tối đa, biến nó thành một chương trình tuyến tính và biến nó thành một chương trình số nguyên. (Một điều tuyệt vời tất nhiên là MAX-CUT, vì với những người có nhiều nền tảng hơn, bạn cũng có thể đưa ra UGC; Tôi chạm vào một số điều này trong câu trả lời MO https://mathoverflow.net/questions/33036/is-quadratic-programming -still-np-hard-if-you-have-bound-and-a-khả thi-điểm / 33048 # 33048. ) Ngoài ra, có những thứ gọn gàng như các vấn đề có vẻ tương tự nhau có độ phức tạp rất lớn (Euler (cạnh) là tuyến tính thời gian, đường dẫn Hamilton (đỉnh) là NP-đầy đủ).


7
Tôi thích phiên bản Subset Sum sau đây: bạn được tặng 10 bảng để mua đồ ăn nhẹ từ cửa hàng. Bạn có thể tìm thấy chính xác sự kết hợp mua đúng để không còn tiền không?
András Salamon

6

Xây dựng trò chơi ô chữ là NP-Complete: Đưa ra một bộ câu trả lời, cố gắng ghép chúng vào một lưới.


5

Tôi đã tạo trang web Tagxedo, http://www.tagxedo.com , một trình tạo từ đám mây phù hợp với các từ (có kích thước theo tần số của chúng) thành hình dạng. Kết quả rất đẹp, nhưng vấn đề dễ dàng được chứng minh là NP-hard (vấn đề đóng gói).

Thật thú vị, nhiều vấn đề NP-hard có xấp xỉ "dễ dàng". Tagxedo dường như đang làm một công việc gần như hoàn hảo trong nhiều trường hợp. Điều này dẫn đến cuộc thảo luận thú vị về ý nghĩa thực tế của P vs NP và chủ đề gần đúng.


4

Một người bạn của tôi đã dành một năm nghỉ phép để xem một trận bóng chày ở mọi sân vận động lớn ở Bắc Mỹ. Mà không bay. (Anh ta không khá thành công, ba sân vận động đã được xây dựng năm đó.)


Có, nhưng anh ta đang cố gắng giảm thiểu việc sử dụng gas? :)
Suresh Venkat

Ngay cả việc tìm kiếm một lịch trình khả thi là NP-hard, bởi vì các sân vận động không mở cửa hàng ngày (chu kỳ Hamilton với các cửa sổ thời gian).
Jeffε

4

Do sự thành công của các công ty như Uber và Lyft, nhiều người có trải nghiệm trực tiếp rất dễ tiếp cận với các vấn đề hoàn thành NP.

Đưa ra một bộ sưu tập các tài xế và một danh sách những người muốn được đón tại nhiều thời điểm, việc phân bổ hành khách hiệu quả nhất cho các tài xế là gì?

Vấn đề này (khi được chỉnh sửa lại một cách thích hợp) là NPC và tôi tưởng tượng rằng mọi người đôi khi tự hỏi làm thế nào Uber quyết định ghép các tài xế và hành khách.


3

Tôi thường sử dụng SAT làm ví dụ. Tôi nói điều gì đó như "tất cả các loại vấn đề xuất hiện mọi lúc có thể được viết lại khi tìm kiếm một sự phân công thực sự cho một công thức logic lớn. Câu hỏi P vs NP là liệu có cách nào dễ dàng hơn để giải quyết công thức logic này hơn là chỉ cố gắng tất cả các khả năng. Cho đến nay không ai có thể tìm ra cách nào hoặc chứng minh rằng không có lối thoát dễ dàng nào ".


2
Tôi không chắc có bao nhiêu người gặp phải điều này mỗi ngày.
Dave Clarke

3

Một vấn đề hoàn chỉnh Np như Sudoku (trên nxn sqaure) giống như một công cụ phổ quát cho phép chúng tôi giải quyết hiệu quả tất cả các vấn đề có giải pháp kiểm chứng hiệu quả. Yêu cầu duy nhất là có một phương pháp hiệu quả để giải Sudoku.


2

NP

npjmNPpjkNP- Hoàn thành trong tình huống này. Quan sát rằng đây không phải là khối cung cấp, chúng tôi cho rằng họ không thể lật đổ. Nó có thể là chồng giấy tờ, thùng hoặc đĩa.

Hi vọng điêu nay co ich!


2

Một ví dụ hay thay đổi có thể truy cập được là một bản trình bày ngắn gọn của Mark Dominus (xem bài đăng trên blog có liên quan ) có tên là Bài viết yêu thích NP-Complete của tôi trong đó hình ảnh dưới đây là phần cuối của tổng quan về bìa chính xác bằng 3 bộ .

Các tiêu đề trong loạt video bao gồm

  • Nhảy múa, âm nhạc và sách
  • Tay, Tai và Chân
  • Thức dậy với Elmo (về việc ngủ, mặc quần áo và đánh răng)
  • Những người trong khu phố của bạn (về lính cứu hỏa, nhân viên cứu hộ và y tá)

Mục đích rõ ràng là mỗi video có chứa ba tập phim về một chủ đề chung được rút ra từ một nhóm các chủ đề mà trẻ nhỏ quan tâm.

Con vịt kỳ lạ trong sê-ri là một video về hoa, chuối và lông.

Hoa, chuối, và tóc.


0

Đặc biệt, khi xem xét vấn đề Knapsack sau này, vấn đề NP-Complete này có thể rất phù hợp:

Đoán số, trong đó bạn chỉ có thể đoán các số duy nhất cho đến khi bạn hiểu đúng.

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.