Sự phức tạp của một vấn đề mạng chuyển đổi


17

Một mạng chuyển đổi (tên được phát minh) được tạo với ba loại nút:

  • một nút Bắt đầu
  • một nút kết thúc
  • một hoặc nhiều nút chuyển đổi

Nút chuyển đổi có 3 lối thoát: Trái, Lên, Phải; có hai trạng thái L và Rtrạng thái đích TL hoặc TR . Mỗi công tắc có thể được duyệt qua các quy tắc sau:

  • luôn luôn từ trái sang lên; trạng thái của công tắc thay đổi thành L
  • luôn luôn từ phải lên trạng thái cho công tắc thay đổi thành R
  • từ Lên đến Trái chỉ khi công tắc ở trạng thái L; nhà nước không thay đổi
  • từ Up sang Right nếu công tắc ở trạng thái R; nhà nước không thay đổi
  • không bao giờ từ trái sang phải hoặc phải sang trái

nút chuyển đổi
Hình 1. Nút chuyển đổi ở trạng thái L với trạng thái đích TR

Các thuộc tính này cũng giữ:

  • Có thể cách ly 0, 1 hoặc 2 lối thoát của công tắc (không được kết nối với công tắc khác);
  • một đường dẫn chỉ có thể "chạm" vào một công tắc để thay đổi trạng thái của nó: nhập từ bên trái và thoát từ bên trái hoặc nhập từ bên phải và thoát khỏi bên phải;
  • không có giới hạn về số lần chuyển đổi có thể được duyệt / chạm.

Vấn đề quyết định là: "Có một đường dẫn từ nút Bắt đầu đến nút Kết thúc tồn tại sao cho tất cả các trạng thái cuối cùng của các công tắc khớp với trạng thái đích tương ứng không?"

Rõ ràng, tất cả các công tắc ban đầu không ở trạng thái mục tiêu của chúng phải được chuyển qua (hoặc chạm) ít nhất một lần;

Đây là một bản vẽ nhanh của một mạng tầm thường (được tạo bằng Excel ... Tôi sẽ làm cho mạng tốt hơn):

ví dụ2

Một giải pháp tầm thường là:

S -> 1 -> 2 -> 3 -> 2 -> E -> 1 -> E

EDIT 2:

  1. Là vấn đề này được biết đến? ---> bạn đã cho tôi tài liệu tham khảo tốt cho luận án của Hearn (biểu đồ ràng buộc);

NPSPACE=PSPACE

NP

NP-complete


1
Tôi đã xem nhanh tờ giấy được đề xuất (bây giờ tôi sẽ đọc kỹ hơn), nhưng vấn đề của tôi có vẻ khác: các công tắc thay đổi trạng thái theo hướng mà chúng đi qua. Trong bài viết, các công tắc được "sửa" và các vấn đề (đơn giản hơn) thuộc loại: "Có cấu hình công tắc nào tồn tại không, sao cho ...".
Marzio De Biasi

4
@Vor: Điều này có vẻ liên quan mật thiết đến các trò chơi logic ràng buộc của Demaine và Hearn (Tôi nghĩ rằng các nhóm luận án của Hearn.csail.mit.edu/mac/users/bob/hearn-thesis-final.pdf là một bài viết rất hay của tác phẩm này ). Tôi tự hỏi nếu một người có thể giải quyết sự phức tạp của vấn đề của bạn bằng cách sử dụng các kỹ thuật của họ. Có vẻ như nó có thể hoàn thành NEXP ...
Joshua Grochow

3
Tôi vừa mới chỉ ra tác phẩm Hearn / Demaine - lưu ý rằng hiện tại nó cũng có sẵn dưới dạng một cuốn sách, "Trò chơi, Câu đố & Tính toán" (ISBN 976-1-56881-322-6), và nó chắc chắn cảm thấy vô cùng câu hỏi
Steven Stadnicki

2
@Kaveh: đối với trình độ chuyên môn của tôi, nó là tầm thường trong NPSPACE = PSPACE. Dường như không thể "đếm"; nhưng tôi không thấy bất kỳ bằng chứng dễ dàng nào cho thấy nếu một giải pháp tồn tại, thì một giải pháp khác tồn tại trong đó mọi công tắc được chuyển / chạm chỉ một số lần không đổi.
Marzio De Biasi

1
Chỉ là một ghi chú bên lề: một phiên bản đơn giản hơn của câu đố này cũng được Dillenburg và Nelson xem xét và nó được trình bày trong Tìm kiếm Chu vi
Carlos Linares López

Câu trả lời:


2

Vấn đề ít nhất là NP-hard, bằng cách giảm từ 3-SAT.

Trước tiên, hãy xem xét vấn đề tìm đường dẫn từ Bắt đầu đến Thoát khỏi biểu đồ được chỉ dẫn sau với hạn chế là không có đường dẫn nào có thể truy cập cả ba nút (vuông) của mệnh đề:

3SAT

(X1X2X3)(X1¬X2X4)

Chúng tôi chuyển đổi các biểu đồ này thành một mạng chuyển đổi. Đối với điều này, chúng tôi sử dụng ba tiện ích:

  1. Mỗi nút tròn và cạnh hai chiều trở thành một Dây , tạo thành các kết nối giữa các công tắc.
  2. Mọi cạnh được định hướng sẽ trở thành tiện ích Một chiều bao gồm một công tắc duy nhất (xem bên dưới).
  3. Mỗi nút vuông đại diện cho một trong ba công tắc là một phần của tiện ích Khoản (xem bên dưới).

Trong các minh họa sau đây, các công tắc được vẽ dưới dạng hai mũi tên đến, một trong số đó là nét đứt (bị vô hiệu hóa). Hướng mục tiêu được vẽ bằng một vòng tròn màu đen (sao cho mũi tên rắn cuối cùng phải ở bên cạnh vòng tròn).

Lưu ý: Chúng tôi sẽ sử dụng phần chữ đậm để phân biệt Thoát khỏi biểu đồ với các lối thoát của tiện ích.

ABBAX1X2X3X1X2X3

Tiện ích một chiều Điều khoản tiện ích

Hãy nhớ lại rằng đối với biểu đồ ban đầu, việc tìm một đường dẫn đến Lối ra và không truy cập cả ba nút vuông của bất kỳ mệnh đề nào là NP-đầy đủ. Bây giờ hãy xem xét vấn đề tiếp cận Thoát khỏi biểu đồ được chuyển đổi mà không phải lo lắng về vị trí mục tiêu của các công tắc.

Quan sát rằng bất kỳ đường dẫn nào là giải pháp cho vấn đề đồ thị ban đầu cũng là một giải pháp cho biểu đồ được chuyển đổi. Vì vậy, giả sử một đường dẫn cho biểu đồ được chuyển đổi không phải là một giải pháp cho biểu đồ ban đầu. Điều này có thể xảy ra trong hai trường hợp:

  1. BA
  2. Một đường dẫn đi qua cả ba đường dẫn của một số tiện ích Khoản .

Trong trường hợp đầu tiên, tiện ích Một chiều trước tiên phải được di chuyển theo hướng dự định, trong trường hợp đó, đường dẫn cũng có thể tránh đi qua nó ở vị trí đầu tiên.

Vì vậy, hãy xem xét trường hợp thứ hai trong đó đường dẫn đi qua cả ba công tắc của một số tiện ích Khoản . Sau đó, tiện ích đó sẽ có tất cả ba công tắc được lật (xem bên dưới). Đây là nơi chúng tôi sử dụng các vị trí mục tiêu. Lưu ý rằng xương sống màu xám của tiện ích Khoản không còn có thể đạt được, có nghĩa là các công tắc không còn có thể được chuyển đến vị trí mục tiêu của chúng. Trong trường hợp này, chúng tôi nói rằng tiện ích Khoản này không thể phục hồi.

Điều khoản bế tắc

Vẫn còn cho thấy rằng đối với bất kỳ giải pháp nào cho vấn đề đồ thị ban đầu, các công tắc của đồ thị được chuyển đổi có thể được đặt ở vị trí đích của chúng. Đối với điều này, chúng tôi sử dụng thực tế là dây Thoát chỉ có thể đạt được khi có giải pháp hoặc một số tiện ích Khoản nào đó không thể phục hồi được.

Để đặt các công tắc ở vị trí mục tiêu của chúng, giờ đây chúng ta có thể thêm các tiện ích Một chiều bổ sung từ dây Thoát vào lối vào của mọi tiện ích Một chiều hiện có , cũng như ba dây thoát của tất cả các tiện ích Khoản . Sau đó, khi mã thông báo đạt đến Thoát , tất cả các tiện ích Một chiều bổ sung có thể được duyệt qua (và do đó đặt vào vị trí mục tiêu của chúng), đồng thời đặt các công tắc còn lại vào vị trí mục tiêu của chúng (trừ khi có một điều khoản không thể phục hồi). Cuối cùng, mã thông báo có thể quay trở lại Thoát và câu đố được giải.

Chúng ta nên lưu ý rằng các tiện ích khoản chỉ có thể được phục hồi khi được nhập từ một lối thoát chưa được xử lý; và do các tiện ích Một chiều được đặt giữa các tiện ích Khoản và biến tiếp theo, điều này không thể xảy ra cho đến khi đạt được dây Thoát .

Do đó, vấn đề mạng chuyển đổi là NP-hard.


Hiện vẫn chưa rõ vấn đề nằm ở NP hay PSPACE-hard. Việc giảm độ cứng NP khi xây dựng mạng chuyển mạch phẳng sẽ có ý nghĩa rất lớn đối với các biến thể bị hạn chế của Sokoban, cụ thể là vì tất cả các công tắc đều tương đương với tiện ích Sokoban bên dưới.

Sokoban

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.