Làm thế nào để tôi biết nếu một mạng so sánh sắp xếp?


9

Tôi được trình bày với một mạng lưới so sánh. Làm cách nào để xác định xem mạng so sánh có phải là mạng sắp xếp không? Trong hình bên dưới có một ví dụ về mạng sắp xếp lựa chọn và sắp xếp chèn. Mục đích là để có một mạng so sánh và sắp xếp các giá trị số. Nếu tôi kiểm tra 2 ^ n giá trị trong trường hợp này 2 ^ 8. Đây là rất nhiều công việc | cách không hiệu quả để kiểm tra nó. Tôi đang tìm kiếm một mô hình / bằng chứng toán học để xác minh đây là một mạng sắp xếp hợp lệ. Một mạng sắp xếp dựa trên sắp xếp chèn


2
Bạn đã tìm kiếm, đọc hoặc thử cái gì? Điều gì đã chặn bạn? Câu hỏi càng chính xác, câu trả lời càng tốt. Là câu hỏi của bạn về bất kỳ mạng so sánh tùy ý, tức là một quy trình chung để xác định xem một mạng so sánh tùy ý có phải là một mạng sắp xếp không? Hoặc là câu hỏi của bạn về chương trình đã cho.
babou

2
Bạn có thể sử dụng nguyên tắc zero one: một mạng sắp xếp là chính xác nếu nó hoạt động trên tất cả các đầu vào zero one.
Yuval Filmus

@YuvalFilmus Đó là một bài kiểm tra theo cấp số nhân (về số lượng đầu vào). Đây có phải là một vấn đề NP hoàn chỉnh.?
babou

@babou Mình không có ý kiến. Trong trường hợp này, nó thực tế.
Yuval Filmus

một ý tưởng rõ ràng là một cách tiếp cận theo kinh nghiệm, chỉ cần xem xét hành động của nó đối với hoán vị ngẫu nhiên của [1..n], quan sát kết quả của nó, nó sẽ thất bại hoặc thành công, nếu nó thành công, bạn có cách tiếp cận gần như ...
vzn

Câu trả lời:


10

Nói chung, việc xác minh xem một mạng so sánh cụ thể có thực sự là một mạng sắp xếp chính xác hay không là một vấn đề hoàn chỉnh của Co-NP. Nếu bạn muốn kiểm tra bằng cách kiểm tra, thì bạn cần thử nhiều cấp số nhân.

Cụ thể, tồn tại các mạng sắp xếp sắp xếp tất cả trừ một giá trị chính xác, vì vậy bạn không thể hy vọng kiểm tra xem mạng có chính xác hay không chỉ đơn giản bằng cách cung cấp cho nó một vài đầu vào.

2n2nn1

1,2,,nC(n,n/2)1

Để biết bằng chứng về những sự thật này, xem các giấy tờ sau:

Về độ phức tạp tính toán của xác minh mạng sắp xếp tối ưu . Ian Parberry. Parle'91 Parallel Architectures and Languages ​​Europe, 1991.

Giới hạn về kích thước của các bộ kiểm tra để sắp xếp và các mạng liên quan . Moon Jung Chung và B. Ravikumar. Toán học rời rạc, tập 81, tr.1--9, tháng 4 năm 1990.


6

Trích dẫn câu hỏi của bạn:

Tôi đang tìm kiếm một mô hình / bằng chứng toán học để xác minh đây là một mạng sắp xếp hợp lệ.

n

  1. n=1
  2. n1n
    1. nb8
    2. n1
    3. Mạng nhỏ hơn này sẽ sắp xếp tất cả các yếu tố còn lại theo giả thuyết quy nạp.

Bằng chứng minh họa


5

Khi bạn nhìn vào một mạng sắp xếp chung, bạn có thể không biết làm thế nào để chứng minh rằng nó sắp xếp mọi chuỗi giá trị (có độ dài phù hợp cho mạng sắp xếp) một cách chính xác. Nhưng tôi đã học được về thủ thuật hay này, cách đơn giản hóa nhiệm vụ:

Nguyên tắc 0-1

Khi một mạng sắp xếp sắp xếp mọi chuỗi (có độ dài phù hợp) chỉ bao gồm "0" và "1" một cách chính xác, thì nó sẽ sắp xếp bất kỳ chuỗi nào (có độ dài phù hợp) một cách chính xác. Tất nhiên "0" và "1" là giữ chỗ cho bất kỳ yếu tố riêng biệt nào trong miền của mạng sắp xếp.

Vì vậy, bạn có thể xây dựng một bằng chứng như thế này:

  1. Lấy hai phần tử riêng biệt từ miền của mạng sắp xếp và gọi chúng là "0" và "1", sao cho "0" <"1"
  2. Xây dựng tất cả các chuỗi nhị phân với độ dài chính xác của mạng sắp xếp
  3. Trong các chuỗi này thay thế 0 bit và 1 bit bằng "0" và "1"
  4. Áp dụng các chuỗi này cho mạng sắp xếp
  5. Mỗi chuỗi phải được sắp xếp theo thứ tự như 000..01 ... 1

2n

n2nn

Chúng ta có thể làm nó rẻ hơn không?

Thật không may, có lẽ chúng tôi không thể có được giá rẻ hơn nhiều so với thử nghiệm toàn diện, ít nhất là khi sử dụng máy Turing để xây dựng các bằng chứng. Tất nhiên khi bạn xem một mạng sắp xếp cụ thể, bạn có thể có một ý tưởng sáng tạo làm thế nào để đưa ra một bằng chứng đơn giản. Nhưng nói chung, một thuật toán để xây dựng các bằng chứng như vậy rất có thể phức tạp như kiểm tra tất cả các chuỗi nhị phân. Lý do cho điều này là mạng phân loại bằng chứng có liên quan đến lớp phức tạp hoàn chỉnh NP như được nêu trong các câu trả lời khác.

2n

Triển vọng / Outlook

Bộ não của bạn có phải là máy Turing không

Một hậu quả triết học là: Khi bạn tin rằng bạn có thể tìm thấy bằng chứng sáng tạo cho tính chính xác của từng mạng sắp xếp, thì bạn cũng tin rằng bộ não của bạn rất có thể không phải là máy Turing.

Sắp xếp song song

"Nguyên tắc 0-1" cũng được sử dụng để chứng minh tính đúng đắn của các thuật toán sắp xếp song song. Tôi có một bài thuyết trình hay (hy vọng) về điều này trên Github .

Sửa mạng sắp xếp

Nếu một trong các chuỗi được sắp xếp không chính xác (vì vậy bạn đã chứng minh mạng sắp xếp sai), bạn có thể sử dụng chuỗi này để xây dựng một mạng sắp xếp mà không gặp lỗi đó. Chỉ cần thêm một so sánh bổ sung về vị trí của "đường viền 1-0" trong chuỗi kết quả sai.


O(2n)

n

Một cái gì đó như thế , vâng. (Tôi đã đọc câu trả lời của bạn như "đây là cách thực hiện trong thời gian theo cấp số nhân và có lẽ chúng ta không thể làm tốt hơn vì nó là NP-hard". Đó là một người không theo trình tự, do đó là nhận xét của tôi.)
Raphael
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.