Cái gì khó hơn: Xáo trộn một bộ bài đã được sắp xếp hoặc sắp xếp một bộ bài xáo trộn?


18

Bạn có một mảng gồm phần tử riêng biệt. Bạn có quyền truy cập vào một bộ so sánh (hàm hộp đen lấy hai phần tử và và trả về đúng iff ) và nguồn bit thực sự ngẫu nhiên (hàm hộp đen không có đối số và trả về bit ngẫu nhiên thống nhất độc lập). Hãy xem xét hai nhiệm vụ sau:naba<b

  1. Các mảng hiện đang được sắp xếp. Tạo ra một hoán vị được chọn ngẫu nhiên (hoặc gần như thống nhất).
  2. Mảng bao gồm một số hoán vị được chọn thống nhất ngẫu nhiên theo tính chất. Sản xuất một mảng được sắp xếp.

Câu hỏi của tôi là

Nhiệm vụ nào đòi hỏi nhiều năng lượng không có triệu chứng?

Tôi không thể xác định câu hỏi chính xác hơn vì tôi không biết đủ về mối liên hệ giữa lý thuyết thông tin, nhiệt động lực học, hoặc bất cứ điều gì khác là cần thiết để trả lời câu hỏi này. Tuy nhiên, tôi nghĩ rằng câu hỏi có thể được xác định rõ (và tôi hy vọng ai đó giúp tôi với câu trả lời này!).

Bây giờ, về mặt thuật toán, trực giác của tôi là chúng bằng nhau. Lưu ý rằng mỗi loại là một sự xáo trộn ngược lại và ngược lại. Sắp xếp yêu cầu so sánh, trong khi xáo trộn, vì nó nhặt một hoán vị ngẫu nhiên từlựa chọn, yêu cầu bit ngẫu nhiên. Cả xáo trộn và phân loại đều yêu cầu khoảng hoán đổi.logn!nlognn!logn!nlognn

Tuy nhiên, tôi cảm thấy cần có một câu trả lời áp dụng nguyên tắc của Landauer , nói rằng nó đòi hỏi năng lượng để "xóa" một chút. Theo trực giác, tôi nghĩ rằng điều này có nghĩa là việc sắp xếp mảng khó khăn hơn, bởi vì nó đòi hỏi phải "xóa" các thông tin , từ trạng thái rối loạn năng lượng thấp, entropy cao sang trạng thái trật tự cao. Nhưng mặt khác, đối với bất kỳ tính toán nhất định, sắp xếp chỉ biến đổi một hoán vị này sang một hoán vị khác. Vì tôi không phải là chuyên gia hoàn toàn ở đây, tôi đã hy vọng ai đó có kiến ​​thức về kết nối với vật lý có thể giúp "sắp xếp" điều này!nlogn

(Câu hỏi không nhận được bất kỳ câu trả lời nào về math.se , vì vậy tôi đang đăng lại nó ở đây. Hy vọng điều đó ổn.)


Tôi chưa từng nghĩ đến điều này, vì vậy hãy cẩn thận. Nếu chúng ta bắt đầu với một mảng được sắp xếp, sau đó sử dụng sắp xếp hợp nhất, nhưng thay vì so sánh, chúng ta sử dụng các bit ngẫu nhiên để thực hiện hợp nhất (vì vậy thay vì trả về đúng iff chúng ta trả về đúng nếu bit ngẫu nhiên là 1 ). Trường hợp cơ sở trong đó chúng ta có hai mảng có kích thước một tạo ra hai mảng có thể có kích thước hai với xác suất đồng nhất. Tôi đã không nhận được nhiều hơn thế. a<b1
Luke Mathieson

2
Tôi nghĩ rằng để trả lời câu hỏi này, trước tiên bạn cần xác định chi phí hoạt động tương đối; Mất bao nhiêu để đọc dữ liệu, ghi dữ liệu và tạo / lấy số ngẫu nhiên?
mitchus

@mitchus: Tôi chủ yếu tò mò về các giới hạn vật lý nếu chúng ta giả sử máy tính "hiệu quả tối ưu". Hiểu biết sơ bộ của tôi là có một mức độ vật lý thấp hơn ràng buộc vào lượng năng lượng cần thiết để "xóa" một chút thông tin, trong khi các hoạt động khác đòi hỏi ít năng lượng hơn. Vì vậy, tôi tự hỏi nếu trực giác này là chính xác và đủ hình thức để đưa ra một câu trả lời.
usul

Bạn có ý nghĩa gì bằng cách xóa một chút? Ghi đè lên nó? Theo như tôi biết, máy tính thường không xóa bất cứ thứ gì (ngoại trừ lý do riêng tư) mà chỉ "quên" về nó bằng cách phân bổ vùng nhớ liên quan. Nhưng có lẽ tôi không nắm bắt được mức độ trừu tượng chính xác ở đây :)
mitchus

2
@ Patrick87 Thật không may, một mô hình năng lượng thống nhất quá xa sự thật để sử dụng nó; xem Đánh giá các thuật toán theo mức tiêu thụ năng lượng của chúng bởi Fudeus née Bayer và Nebel (2009).
Raphael

Câu trả lời:


6

nlogn!nlog2n(nlnn)kTnlog2n

Lưu ý rằng đây chỉ là giới hạn lý thuyết thấp hơn. Năng lượng hiện đang được tiêu thụ bởi các quy trình này trên một máy tính kỹ thuật số thực tế không liên quan đến phân tích trên.


Cảm ơn rất nhiều! Tôi có thể hỏi một người theo dõi có thể ngây thơ không? Giả sử tôi thay đổi từ ngữ của câu hỏi để thuật toán sắp xếp được đưa ra một số hoán vị cố định của các mục và phải sắp xếp chúng. Bây giờ, nếu bạn đăng ký một triết lý Bayes và có niềm tin thống nhất vào đầu vào này, có vẻ như câu trả lời nên giống nhau. Nhưng theo một triết lý rằng không có sự ngẫu nhiên trong đầu vào (mặc dù tôi không biết nó là gì), cuộc tranh luận dường như thất bại. Làm thế nào để tôi giải quyết nghịch lý? Cảm ơn một lần nữa !!
usul

(nlnn)kT

3

Cũng không. Bất kỳ mạch nào cũng có thể được đảo ngược bằng cách theo dõi đầu vào, và sự tiêu tán năng lượng của tính toán đảo ngược có thể được thực hiện nhỏ tùy ý .


nhưng làm cho nó có thể đảo ngược có thể làm cho nó không hiệu quả. Mối quan hệ giữa các thuật toán tối ưu là gì . BTW, tôi không nghĩ họ so sánh. Xáo trộn vốn dĩ đòi hỏi sự ngẫu nhiên (và bất kỳ sự ngẫu nhiên khác nhau sẽ tạo ra một đầu ra khác nhau). Sắp xếp có thể là xác định. Sắp xếp "đảo ngược" sẽ xáo trộn theo cách xác định.
Ran G.

1
"Hiệu quả" bạn có nghĩa là thời gian, không gian, hoặc sự kết hợp của cả hai? Tạo một tính toán có thể đảo ngược không nhất thiết phải thêm độ phức tạp thời gian tiệm cận và tồn tại các phiên bản có thể đảo ngược của mọi tính toán không sử dụng nhiều không gian hơn so với [Vitányi05] ban đầu .
rphv

1
Miễn là bạn giữ đầu vào xung quanh, bất kỳ mạch nào cũng có thể được đảo ngược. Nếu bạn không muốn giữ thông tin có thể tái tạo lại hoán vị ban đầu xung quanh, mạch phân loại có thể được đảo ngược.
Peter Shor
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.