Các bước đảm bảo thoát khỏi mê cung


13

Đưa ra một mê cung 2 chiều nơi bạn có thể đưa ra 4 lệnh "di chuyển lên / xuống / phải / trái". Biết mê cung nhưng không biết người đó ở đâu, làm thế nào để tìm ra chuỗi lệnh tối thiểu đảm bảo thoát khỏi mê cung? Tôi đang tìm kiếm một chuỗi lệnh sẽ hoạt động bất kể bạn bắt đầu từ đâu trong mê cung.

Giả sử rằng nếu đối tác của chúng tôi được đưa ra lệnh "di chuyển đúng" khi có một bức tường bên phải, anh ta sẽ chỉ đơn giản là giữ nguyên vị trí của mình.

Nói cách khác, chúng ta được cung cấp một mê cung và chúng ta phải chọn một chuỗi các lệnh. Sau đó, đối tác của chúng tôi sẽ được đặt ở đâu đó trong mê cung và sẽ tuân theo chuỗi các lệnh chúng tôi đã chọn trước. Chúng tôi muốn trình tự này để đảm bảo đối tác của chúng tôi sẽ trốn thoát, bất kể đối tác của chúng tôi ban đầu được đặt ở đâu. Lưu ý rằng các lệnh được phép không có bất kỳ câu lệnh điều kiện nào, vì vậy chúng không thể theo một trình tự khác tùy thuộc vào đối tác của bạn.

Có một thuật toán đa thức thời gian để xây dựng một chuỗi như vậy, đưa ra một mô tả về mê cung?

Yuval Filmus đề cập đây là trường hợp đặc biệt của một vấn đề từ đồng bộ hóa và có thể liên quan đến các chuỗi truyền tải phổ quát. Tôi cũng tìm thấy một bài báo có vẻ phù hợp:

Mê cung đồng thời giải quyết vấn đề . Stefan Funke, André Nusser, Sabine Storandt. Ái Nhĩ Lan 2017.

Thật không may cho các đồ thị chung điều này dường như là một vấn đề chưa được giải quyết, nhưng tôi tự hỏi liệu có thể có một thuật toán tốt cho trường hợp cụ thể này không. Tôi đã đưa ra một cách tiếp cận ứng viên: Dán nhãn cho mọi vị trí với số bước tối thiểu cần thiết để thoát và theo dõi mọi tác nhân trong mê cung. Có thể thực hiện tìm kiếm A * theo cách này.


Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
Thằn lằn rời rạc

Chiến lược của Eppstein cho automata đơn điệu là phân cụm các trạng thái sao cho thay vì tìm kiếm một đường dẫn trong tập hợp toàn bộ trạng thái mà ông tìm kiếm một đường dẫn trong một biểu đồ chỉ có nhiều đỉnh. Sự khái quát hóa tự nhiên nhất của các khoảng thành 2D mà tôi có thể nghĩ đến là thân tàu lồi, nhưng thật không may là số lượng của chúng tăng lên một cách đa thức .
Peter Taylor

Câu trả lời:


-1

Một thuật toán luôn hoạt động là: Đặt tay trái lên tường và tiếp tục theo cách đó để thoát. Không thể đảm bảo đường đi ngắn nhất (để làm như vậy, bạn cần biết mê cung, ít nhất là một phần và có thể nhìn về phía trước. Hãy xem thuật toán (A-star) , ban đầu nó được thiết kế cho các nhiệm vụ như vậy ).Một*


Bạn không thể mã hóa tường theo sau như một chuỗi cố định của các hướng Hồng y. Các lựa chọn phụ thuộc vào các bức tường xung quanh bạn, đặc biệt không được phép bởi câu hỏi.
Curtis F

Nếu bạn biết con đường ngắn nhất, bạn có thể mã hóa nó thành "di chuyển sang trái, sau đó thẳng, sau đó ...". Nếu bạn không biết con đường ngắn nhất, bạn không thể đưa ra những chỉ dẫn như vậy cho con đường ngắn nhất. Nếu bạn không biết đường đi, bạn không thể chỉ đường để thoát ra.
vonbrand
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.