Các vấn đề cảm thấy theo cấp số nhân nhưng là P


12

Tôi đang cố gắng xây dựng một danh sách các thuật toán / vấn đề "đặc biệt hữu ích", như trong việc giải quyết các vấn đề "có vẻ rất" theo cấp số nhân, nhưng có một số thuật toán đặc biệt thông minh cuối cùng giải quyết chúng. Ví dụ về những gì tôi muốn nói:

  • Lập trình tuyến tính (Thuật toán đơn giản là thời gian theo cấp số nhân; phải mất một thời gian dài để tìm ra giải pháp thời gian đa thức!)
  • Tổng quát hơn, Lập trình Semidefinite
  • Kiểm tra tính nguyên thủy
  • 2-SAT và HORNSAT
  • Tính toán các yếu tố quyết định (nếu điều này không có vẻ khó khăn, hãy xem xét vĩnh viễn)
  • Tìm kiếm sự kết hợp hoàn hảo
  • Một loạt các vấn đề lý thuyết nhóm cứng có thể được thực hiện bằng cách sử dụng Phân loại các nhóm đơn giản hữu hạn
  • Một loạt các vấn đề về đồ thị cứng có thể được thực hiện bằng cách sử dụng các đặc tính Cấm nhỏ phức tạp (khả năng nhúng trên một bề mặt tùy ý; giới hạn của treewidth và độ rộng nhánh; đồ thị có thể giảm Delta-Wye)
  • Tính toán số mũ trong một nhóm giới hạn (nghĩa là tính toán trong các bước , như được thực hiện bằng bình phương lặp lại)mộtbmodkđăng nhậpb
  • Tính toán dựa trên thuật toán LLL. (Như một trường hợp đặc biệt: Thuật toán Euclide. Như một trường hợp tổng quát hơn: thuật toán PSLQ hoặc HJLS.)
  • Các vấn đề ràng buộc mà không có điều khoản Taylor (?). Tôi thừa nhận tôi không hiểu đầy đủ về điều này, nhưng có vẻ như nó có thể bao gồm các trường hợp 2-SAT / HORNSAT ở trên và bất kỳ đại số tuyến tính nào trên các trường hữu hạn. Xem ở đây cho một bài viết dài hơn
  • Các vấn đề tính toán thông qua giảm ba chiều .

Như một đề cập đáng trân trọng, tôi cũng sẽ đề cập đến biểu đồ đẳng cấu, bởi vì nó vẫn cực kỳ dễ dàng ( ) và tương đương với rất nhiều vấn đề đẳng cấu khác:nđăng nhập2n

  • Digraphs / multicless / hypergraphs (một loại vấn đề 'khó hơn')
  • Máy tự động / CFG hữu hạn

Rõ ràng là có một loạt khó khăn trong số này, nhưng tất cả đều để lại ít nhất một số người có cảm giác 'bất ngờ' theo nghĩa là vấn đề có thể nghe có vẻ khó khăn nhưng hóa ra có thể giải quyết được. LP có thể nghe có vẻ tương đối đơn giản, nhưng mọi người mất khá nhiều thời gian để xây dựng một giải pháp thực tế. Lặp đi lặp lại bình phương hoặc giải 2-SAT là điều mà một sinh viên có thể tự mình nghĩ ra, nhưng nếu bạn chỉ tìm hiểu về các vấn đề NP-Complete mà không thấy HORNSAT, thì có vẻ như là một ứng cử viên tự nhiên cho NP-Complete. Giải quyết CFSG hoặc có một cách đa thức để kiểm tra khả năng giảm Delta-Wye không phải là kỳ công.

Tôi hy vọng điều này có ý nghĩa; Rõ ràng có rất nhiều thuộc tính chủ quan ở đây, nhưng tôi tò mò muốn biết những gì người khác tìm thấy là giải pháp hiệu quả cho các vấn đề "rõ ràng khó".


Như một động lực cho câu hỏi này (vì một người bạn cũng hỏi): Chúng tôi thường nói về việc dạy học sinh về NP-Tính đầy đủ và Không chắc chắn như thế nào, vì nó giúp họ nhận ra khi nào vấn đề sẽ Quá Khó và họ nên tránh chúng. Danh sách này sẽ là "những vấn đề bạn có thể nhầm với NP-Complete nhưng thực tế bạn có thể làm". Không phải tôi hy vọng nhiều sinh viên sẽ có đầy đủ ấn tượng rằng các yếu tố quyết định không thể được tính toán - giống như họ có thể sẽ không gặp phải 3SAT trong tự nhiên - nhưng họ sẽ nhận ra các vấn đề tương đương khác
Alex Meiburg

1
Tôi nghi ngờ điều này là quá rộng để phù hợp với trang web của chúng tôi. Yêu cầu một danh sách đầy đủ về một cái gì đó không giống như loại câu hỏi hoạt động tốt ở đây. "Tôi tò mò muốn nghe những gì người khác tìm thấy ..." nghe có vẻ như là loại câu hỏi không phù hợp ở đây; xem trung tâm trợ giúp của chúng tôi .
DW

1
Tôi hiểu, tôi đã cố gắng thừa nhận tính chủ quan trong câu hỏi này, nhưng tôi nghĩ rằng câu hỏi này phần lớn là điều mà mọi người sẽ đồng ý và học hỏi từ các cuộc thảo luận hiệu quả. Đối với câu hỏi rằng có những giai điệu tôi sẽ cho có thể (mặc dù tôi biết một trang web khác nhau), xem cstheory.stackexchange.com/questions/20930/... hoặc cstheory.stackexchange.com/questions/11119/... ?
Alex Meiburg

Ngoài ra, không rõ ràng "cảm giác" theo cấp số nhân đối với ai.
Raphael

Câu trả lời:


2

Đối với tôi, một trong những thuật toán hiệu quả nhất là thuật toán Blossom V tìm thấy sự phù hợp hoàn hảo về trọng lượng tối đa trong một biểu đồ chung:

https://en.m.wikipedia.org/wiki/Blieo_alacticm


1
Đây là một ví dụ tốt! Chưa bao giờ thực sự nghĩ về nó hoặc cần nó, tôi nghĩ rằng tôi có ấn tượng rằng sự kết hợp tối đa trên các biểu đồ tùy ý là NP-hard. :)
Alex Meiburg

1

Đối với tôi tất cả các thuật toán cổ điển và hiệu quả hơn gần đây để xác minh hoặc tìm một cây bao trùm tối thiểu (MST) của đồ thị có trọng số cạnh được kết nối là những ứng cử viên tốt. Nhiều thuật toán được liệt kê trong wikipedia .

Ngay từ cái nhìn đầu tiên, vấn đề này trông giống như vấn đề nhân viên bán hàng du lịch, một trong số ít các vấn đề NP-hard nổi tiếng nhất. Đáng kinh ngạc nhất, có các thuật toán tuyến tính để xác minh MST và nhiều thuật toán gần tuyến tính để tìm MST! Trong thực tế, một trong những vấn đề mở nổi tiếng nhất trong các thuật toán là liệu có một thuật toán tuyến tính xác định để tìm MST trong các biểu đồ chung hay không. Hóa ra có các cấu trúc và tính chất toán học và đồ thị phong phú cũng như vô số ứng dụng thực tế có liên quan đến MST, khiến nó trở thành một trong những chủ đề thú vị và có thể mở rộng hơn trong khóa học khoa học máy tính. Đối với một giới thiệu toàn diện hơi lỗi thời nhưng được viết rất tốt, xin vui lòng kiểm tra hướng dẫn của Jason Eisner .

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.