Tôi đã có một giáo sư tính toán thần kinh một lần chỉ ra một ví dụ tuyệt vời về cách các kỹ thuật "tương tự" có thể được sử dụng cho các vấn đề song song lúng túng để giảm ràng buộc tiệm cận của một tính toán:
Lấy một bó que có kích cỡ khác nhau. Có nhiều cách thuật toán để sắp xếp bó gậy đó từ dài nhất đến ngắn nhất với O (n * log (n)). Một cách "tương tự" để sắp xếp bó gậy đó là đứng trên đầu và để gậy nằm một đầu trên bàn (1 bước). Bây giờ bạn có tất cả các gậy với một đầu ở cùng cấp với bàn. Nắm lấy tay bạn và đặt nó lên trên cùng - nó sẽ chạm lâu nhất, gỡ cây gậy đó ra và lặp lại trong N bước. Quá trình này là O (N + 1) là O (N). Chìa khóa ở đây là xếp các que ở đầu - một giải pháp song song ồ ạt để sắp xếp các đầu khác của gậy dọc theo trục z (lên).
Đây là một thử nghiệm gọn gàng và có thể đưa ra ý tưởng về cách các giải pháp tương tự có thể làm giảm ràng buộc tiệm cận của thuật toán một cách đơn giản. Hai cảnh báo lớn ở đây:
1) Chúng tôi chưa đưa vấn đề NP đến vấn đề P với ví dụ này (sẽ nói thêm về vấn đề này sau) và
2) nếu bạn đã sử dụng bộ xử lý N để sắp xếp N mục, bạn có thể sắp xếp các số theo thời gian O (log n) (với hằng số lớn), do đó việc giảm không phải là phép thuật. Đôi khi các tài nguyên tương tự cần thiết để giải quyết vấn đề theo cách song song rất rẻ. Một ví dụ khác về tài nguyên giá rẻ sẽ là tế bào thần kinh (sinh học) để học tập và nhận dạng mẫu phức tạp.
Các nơ-ron cũng có thể đặt NP rõ ràng => P vào phối cảnh. Vấn đề NP là NP để tìm tối ưu giải pháp . Bạn có thể tìm thấy một giải pháp "đủ tốt" trong thời gian P sẽ hoạt động tốt trong tự nhiên. Evolution chọn các giải pháp hiệu quả cao "đủ tốt". Hãy suy nghĩ về việc một người bình thường giỏi trong việc xác định các đối tượng trong gần như O (1). Đó là bởi vì có rất nhiều quá trình xử lý song song đang diễn ra và bộ não của bạn vẫn không phải lúc nào cũng đưa ra giải pháp tối ưu. Ví dụ, ảo ảnh quang học hoặc quên nơi bạn đặt các phím của mình (sẽ dễ dàng là O (1) cho máy tính!).
Một điểm khác với NP vs P về bản chất: giải NP để tìm giải pháp tối ưu không giống như xác định giải pháp tối ưu. Xác định một giải pháp tối ưu cho vấn đề NP có thể được thực hiện trong thời gian P. Một lần nữa công nhận một giải pháp "đủ tốt" sẽ hoạt động chứ không phải là một giải pháp tối ưu. Lấy ví dụ về việc gấp protein - đây là một ví dụ về tự nhiên làm tất cả những điều trên. Nó lợi dụng các lực tương tác phân tử mà tất cả đều hoạt động song song (không cần "thuật toán" gấp tự nhiên để giải quyết một nguyên tử tại một thời điểm như thuật toán tính toán thực hiện). Ngoài ra, không có gì đảm bảo rằng giải pháp tối ưu (chức năng) cho việc gấp protein sẽ được tìm thấy.
Có rất nhiều ví dụ về các bệnh do sai lệch protein. Như @PeterShor đã chỉ ra đôi khi thuật toán "tự nhiên" hoàn toàn không hoạt động (dẫn đến một giải pháp tối ưu về nhiệt động lực học, nhưng không phải là một chức năng). Đó là nơi mà protein chaperone đi vào - chúng hướng dẫn sự gấp lại thành dạng chức năng chính xác (một nhiệt động lực học địa phươngtối thiểu). Các protein được hình thành chính xác cũng tương tác với các protein khác để vận chuyển đến đúng vị trí, do đó, các protein "xấu" (trong đó thuật toán heuristic không thực sự giải quyết được vấn đề NP) thường bị suy giảm mà không được vận chuyển đi bất cứ đâu. Tất cả các cơ chế vận chuyển và gấp này đang diễn ra với các đường ống song song lớn. Nhiều cơ chế phiên mã và xử lý đang đồng thời chuyển đổi DNA-> RNA-> Protein tại các điểm khác nhau trên chuỗi gen. Mọi tế bào trong cơ thể bạn đều hoạt động giống nhau (nhưng với các thông điệp hóa học khác nhau về những gì cần sản xuất).
Vì vậy, trong ngắn hạn: làm thế nào tự nhiên làm điều đó? Thủ thuật và song song. Nói chung, nó không thực sự biến một vấn đề NP thành P, nó chỉ làm cho nó dễ nhìn.