Ảnh hưởng của kích thước của automata di động đối với các lớp phức tạp


9

Lấy ví dụ về việc giảm 3d → 2d: Chi phí mô phỏng thiết bị tự động di động 3d bằng thiết bị tự động di động 2d là bao nhiêu?

Đây là một loạt các câu hỏi cụ thể hơn:

  1. Những loại thuật toán sẽ có độ phức tạp thời gian của chúng thay đổi, bao nhiêu?

  2. Điều gì sẽ là ý tưởng cơ bản cho mã hóa; Làm thế nào để lưới 3d có hiệu quả (hoặc không hiệu quả) được ánh xạ vào lưới 2d? (Thử thách dường như đạt được sự giao tiếp giữa hai ô có hàng xóm ban đầu trên lưới 3d, nhưng không phải là hàng xóm nữa trên lưới 2d).

  3. Cụ thể, tôi quan tâm đến độ trôi phức tạp cho các thuật toán phức tạp theo cấp số nhân (mà tôi đoán vẫn còn theo cấp số nhân bất kể kích thước nào, có phải vậy không?)

Lưu ý: Tôi không quan tâm đến các lớp có độ phức tạp thấp mà phương thức I / O được chọn có ảnh hưởng đến độ phức tạp. (Có lẽ cách tốt nhất là giả định rằng phương thức I / O là không thứ nguyên: được thực hiện cục bộ trên một ô cụ thể trong một số bước thời gian khác nhau.)


Một số bối cảnh: Tôi quan tâm đến việc viết lại biểu đồ cục bộ song song, nhưng các biểu đồ đó gần với lưới 3d (hoặc có thể là …d,) hơn so với lưới 2d, tôi muốn biết những gì sẽ xảy ra khi triển khai phần cứng trên 2 chiều chip silicon.

Câu trả lời:


5

Tôi sẽ giải thích các phần của bài viết này: Mô phỏng 3D Cellular Automata với 2D Cellular Automata .

Hãy bắt đầu bằng cách mã hóa lưới, một hàm . Theo trực giác, thể bảo toàn khoảng cách vì số lượng ô ở khoảng cách nhỏ hơn R so với gốc không giống nhau. Bạn sẽ cần phải nhúng những khoảng R 3 tế bào vào một số cùng một số tế bào nhưng đó sẽ là bằng cách nào đó có dạng r 2 nhưng sau đó bạn phải có r > R . Các rR này hơi giống bán kính của khái niệm vùng lân cận bạn tìm thấy trong bất kỳ thiết bị tự động di động nào. tt:Z3Z2tRR3r2r>RrR

Vì vậy, việc chuyển đổi của bài viết sẽ làm cho mọi việc về cơ bản lớn hơn bởi một sức mạnh của ít nhất . Rằng nếu điểm là xa xôi của d trong lưới đầu tiên, họ sẽ xa ít nhất là O ( 3/2dtrong lưới thứ hai. Thật không may, nhúng cho trước chỉ trongO(d3).Ôi(d3)Ôi(d3)

Tuy nhiên, và đây là một nhận xét rất quan trọng, bạn không có được cùng một khu phố so với máy tự động đầu tiên và đó là lý do tại sao trước đây tôi đã nói "hơi giống". Để trích dẫn bài viết:

Rõ ràng là sẽ có các ô rất gần trong và do đó [mã hóa của chúng sẽ] tùy ý xa trong Z 2Z3Z2

Điều đó cũng đúng với thời gian: thời gian thực hiện một bước trong có thể tùy ý kéo dài trong Z 2 . Lưu ý rằng mã hóa là mô phỏng nhiều hơn: 2D CA, tác giả thậm chí còn mô phỏng tính toán của hàm t : Z 3Z 2 .Z3Z2t:Z3Z2

Việc đặt cược an toàn là sự phức tạp (về thời gian) của bất kỳ thuật toán nào chạy trên 3D CA sẽ phát nổ khi chạy trên mã hóa của CA 3D này thành CA 2D. Tác giả nói rằng nó không thể bị ràng buộc bởi bất kỳ chức năng nào trong mô phỏng của mình. Và tôi nói rằng vụ nổ ít nhất là theo cấp số nhân nói chung, vì thời gian lan truyền của thông tin phụ thuộc vào vị trí.

Ý tưởng chạy thuật toán trên automata di động có vẻ hơi lạ đối với tôi, nhưng đó là chuyện cá nhân. Tuy nhiên, đó không là gì so với ý tưởng triển khai thiết bị tự động di động thành chip silicon, hay đó chỉ là tôi?


Cảm ơn bạn rất nhiều cho các liên kết. Khoảng cách tùy ý giữa hai nút làm cho vấn đề tồi tệ hơn nhiều so với tôi nghĩ. Tuy nhiên, sự thay đổi phức tạp trên các thuật toán có thể không tệ vì bạn không bắt buộc phải mô phỏng việc triển khai trên máy tự động 3d để chạy chúng trên 2d. Điều này có nghĩa cho trường hợp sử dụng của tôi, tôi sẽ phải dựa vào một mã hóa cụ thể, vì một giải pháp chung có giới hạn khủng khiếp này!
Stéphane Gimenez

Ồ, và về việc triển khai phần cứng có thể, hãy hỏi ;-)
Stéphane Gimenez
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.