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)
- 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:
- 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ó".