Vấn đề cấu hình lại con rắn


13

Trong khi viết một bài đăng nhỏ về sự phức tạp của các trò chơi điện tử NibblerSnake ; Tôi thấy rằng cả hai đều có thể được mô hình hóa như các vấn đề cấu hình lại trên đồ thị phẳng; và dường như các vấn đề như vậy chưa được nghiên cứu kỹ trong khu vực lập kế hoạch chuyển động (ví dụ, hãy tưởng tượng một chuỗi các toa xe hoặc robot được liên kết). Các trò chơi đã được biết đến, tuy nhiên đây là một mô tả ngắn về mô hình cấu hình lại có liên quan:

VẤN ĐỀ

Đầu vào : cho một đồ thị phẳng , l cuội p 1 , . . . , p l được đặt trên các nút u 1 , . . . , u l tạo thành một con đường đơn giản. Những viên sỏi tượng trưng cho con rắn , và p 1 đầu tiên là đầu của anh ta. Đầu có thể được di chuyển từ vị trí hiện tại của nó sang một nút miễn phí liền kề và cơ thể đi theo nó. Một số nút được đánh dấu bằng dấu chấm; Khi đầu đến một nút có dấu chấm, cơ thể sẽ tăng lênG= =(V,E)tôip1,...,ptôibạn1,...,bạntôip1 cuội trong e di chuyển sau của đầu. Dấu chấm trên nút bị xóa sau khi vượt qua con rắn.ee

Vấn đề : Chúng tôi hỏi liệu con rắn có thể được di chuyển dọc theo biểu đồ và đạt cấu hình mục tiêu trong đó cấu hình mục tiêu là mô tả đầy đủ về vị trí của con rắn, tức là vị trí của các viên sỏi.T

Thật dễ dàng để chứng minh rằng vấn đề SNAKE là NP-hard trên đồ thị phẳng bậc 3 tối đa ngay cả khi không sử dụng dấu chấm nào và cả trên đồ thị lưới RẮN nếu chúng ta có thể sử dụng số lượng chấm tùy ý. Mọi thứ trở nên phức tạp trên các biểu đồ lưới rắn mà không có dấu chấm (nó có liên quan đến một vấn đề mở khác).

Tôi muốn biết nếu vấn đề đã được nghiên cứu dưới tên khác.
và đặc biệt, nếu có bằng chứng cho thấy nó nằm trong NP ...

Chỉnh sửa: vấn đề hóa ra là hoàn toàn PSPACE ngay cả trên các đồ thị phẳng và kết quả có vẻ rất thú vị, vì vậy vẫn còn phải tìm hiểu xem đó có phải là vấn đề mới hay không và nếu có kết quả đã biết về nó.

nhập mô tả hình ảnh ở đây
Một ví dụ đơn giản (đá cuội được thể hiện bằng màu xanh lá cây, đầu của con rắn là P1).


1
Vấn đề nằm ở không liên quan gì đến việc liệu sỏi có được phép hay không: nếu Vấn đề rắn không có sỏi nằm ở N P , thì vấn đề Rắn với sỏi, vì chúng tôi có thể chỉ định thứ tự các chấm được nhặt lên, trạng thái của con rắn ngay trước khi nó đạt đến một dấu chấm, và trong trạng thái e sau khi nhặt dấu chấm. Theo giả định rằng Vấn đề rắn không có sỏi nằm ở N P , tồn tại một chứng chỉ cho chúng ta biết cách thực hiện các động tác "ở giữa". NPNPeNP
Tom van der Zanden

Bạn có thể cung cấp một định nghĩa tốt hơn và rõ ràng hơn cho cấu hình mục tiêu? ví dụ: bạn có ý nghĩa gì khi mô tả đầy đủ về vị trí rắn?
Saeed

@Saeed: cấu hình đích chỉ đơn giản là vị trí cuối cùng của viên sỏi (tức là con rắn). Tôi sẽ thêm một con số để làm rõ vấn đề.
Marzio De Biasi

Câu hỏi của bạn đã đủ rõ ràng, nhưng tôi có thuật ngữ lẫn lộn trong bình luận của tôi. Nó nên đọc "dấu chấm" ở mọi nơi thay vì "viên sỏi".
Tom van der Zanden

@TomvanderZanden: ok cảm ơn, tôi đồng ý với bạn (xem thêm nhận xét của tôi về câu trả lời của Zimmux). Tôi đã viết "... có hoặc không có dấu chấm ..." để nói rằng chúng không liên quan; nhưng nó không đủ rõ ràng; Vì vậy, tôi chỉnh sửa câu hỏi và làm cho nó rõ ràng hơn.
Marzio De Biasi

Câu trả lời:


8

Di chuyển một con rắn từ vị trí này sang vị trí khác là PSPACE hoàn tất. Rắn là tầm thường trong PSPACE. Chúng tôi giảm độ cứng PSPACE từ Logic ràng buộc không điều kiện của Hearn.

Logic ràng buộc không điều kiện

Đặt một đồ thị ràng buộc là một đồ thị có hướng với các cạnh có trọng số 212223132Tiện ích NCL

Con rắn

Trong quá trình xây dựng của chúng tôi, đầu của con rắn sẽ đuổi theo đuôi của nó ở một khoảng cách nhỏ và sẽ buộc phải lặp lại cùng một chu kỳ với những sửa đổi nhỏ. Chúng tôi nhúng từng cạnh của đồ thị ràng buộc như trong hình (các cạnh hiển thị màu đỏ), trong đó chúng tôi chỉ ra vị trí của con rắn bằng các đường dày. Một cạnh có hai cạnh (đỉnh) và con rắn đi theo con đường trung tâm ở đỉnh mà cạnh đó hướng tới. Đảo ngược một cạnh

Để đảo ngược một cạnh, đầu tiên con rắn xóa tuyến đường trung tâm và sau đó đi tuyến đường trung tâm một khi đầu của nó đạt đến đỉnh đối diện.

2

Rắn và Rắn hoặc

Cuối cùng, các đường màu đen của tất cả các tiện ích cạnh được kết nối để tạo thành một chu kỳ duy nhất, vì vậy đầu của con rắn đuổi theo đuôi của nó. Nếu giữa hai tiện ích cạnh, chúng ta tạo đường dẫn màu đen đủ dài, con rắn phải luôn đi qua các đường dẫn màu đen theo cùng một thứ tự tuần hoàn.

Để chỉ ra rằng các đường dẫn màu đen luôn có thể được xây dựng theo cách phẳng, hãy xem xét một cây con bao quanh (các cạnh dày trong hình bên dưới) của biểu đồ ràng buộc. Sau đó, chúng ta có thể làm cho các cạnh màu đen đi theo cây này như minh họa dưới đây, dẫn đến một đồ thị phẳng.

Spanning Subtree Chu kỳ phẳng

Vị trí mục tiêu của con rắn có thể được bắt nguồn bằng cách biến đổi tương tự. Do đó, cấu hình lại một con rắn là PSPACE hoàn chỉnh, ngay cả trên các đồ thị phẳng.


Tuyệt quá! :-) :-) :-)
Marzio De Biasi
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.