Tôi đang tạo trò chơi với 10.000 bản đồ 10.000.
Tôi muốn người dùng có thể đặt vị trí và nhờ đó máy tính tìm thấy đường đi tốt nhất ngay lập tức.
Tuy nhiên, vì bản đồ là 10.000 x 10.000, có 100.000.000 nút và tìm đường dẫn này thông qua một phương pháp thông thường như A * hoặc Dijkstra sẽ yêu cầu bộ nhớ lớn và thời gian dài.
Vì vậy, câu hỏi của tôi là: Làm thế nào tôi có thể tìm thấy con đường tốt nhất?
Thuật toán tôi đang xem xét sẽ chia thế giới thành 100 phần, mỗi phần có 1.000.000 nút. Mỗi phần sau đó sẽ được chia thành 100 phần phụ. Điều này sẽ được lặp lại cho đến khi mỗi phần con chứa 100 nút. Sau đó, thuật toán sẽ tìm đường dẫn tốt nhất của các phần, sau đó là các phần con, sau đó là các phần phụ cho đến khi tìm thấy tập hợp các nút tốt nhất. Điều này có hiệu quả và có cách nào tốt hơn không?
Tôi cũng đang xem xét tìm kiếm điểm nhảy, nhưng tôi không biết điều đó, và nó sẽ là một nỗi đau để tìm hiểu chỉ để thấy rằng nó không thể làm điều đó.Đường dẫn trên bản đồ lớn
Chỉnh sửa: Tôi đã cố gắng thêm A *. Tuy nhiên, nó mất khoảng 5 giây để chạy, đó là khoảng 4 giây dài hơn lý tưởng.
Làm như với bản đồ đường phố bình thường của chúng tôi và tạo biểu đồ ngoài bản đồ 10.000 x 10.000 của bạn. Tôi chắc chắn rằng bạn kết thúc với một biểu đồ nhỏ hơn nhiều so với 100.000.000 ... – CFrei
Bạn đang nói chia nó thành các phần? Nếu vậy, đó là giải pháp mà tôi đang xem xét như là câu hỏi của tôi nói. –
Có thể bạn không cần phải chia nó ra, chỉ cần luôn luôn giữ cho con đường của bạn tìm kiếm trong một phạm vi tương đối nhỏ xung quanh máy nghe nhạc của bạn, và cập nhật khi bạn di chuyển. – eldo