Làm thế nào tôi có thể tính toán con đường ngắn nhất trong môi trường Euclide với đa giác không lồi?


10

Ai đó có thể đề xuất các bài báo hoặc thuật toán về việc tính toán các đường đi ngắn nhất trong không gian Euclide với đa giác không lồi làm chướng ngại vật không?


Lưu ý rằng trừ khi điểm bắt đầu, điểm cuối của bạn hoặc một đa giác khác nằm trong khoảng trống giữa một đa giác không lồi và thân lồi của nó, bạn có thể thay thế đa giác không lồi bằng thân tàu phức tạp của nó. Dễ dàng nhìn thấy bằng cách chỉ vẽ một đa giác không lồi và thân lồi của nó, sau đó xem xét những con đường ngắn nhất đi qua sự khác biệt.
MSalters

Câu trả lời:


3

Cách tiếp cận đơn giản nhất là biến đa giác không lồi thành nhiều hình lồi, sau đó thực hiện va chạm lồi và tìm đường thông thường (thông qua A * hoặc D * hoặc bất cứ điều gì). Quá trình đầu tiên thường được gọi là tam giác trong hình học tính toán, và có một số cách phổ biến để làm điều đó.


3

Đây có thể không phải là câu trả lời chính xác cho câu hỏi của bạn nhưng tôi có thể đề nghị bạn một cách tiếp cận về vấn đề này.

Trên thực tế vấn đề của bạn là hai vấn đề kết hợp.

  1. Tìm những con đường ngắn nhất
  2. Tìm va chạm

Và vấn đề thứ hai được nhúng vào đầu tiên. Tôi có thể khuyên bạn nên tìm kiếm mù trước. Đây là một bài trình bày rất đơn giản về nó: Tìm kiếm mù

Nếu bạn đọc tài liệu để xây dựng không gian trạng thái, bạn sẽ cần tạo các điểm trạng thái và chúng phải có ý nghĩa pháp lý, các trạng thái này có thể nằm trên con đường ngắn nhất của bạn để chúng không va chạm với bất kỳ đối tượng nào trong không gian của bạn. Từ bây giờ bạn có thể tiếp tục với các thuật toán va chạm Euclidian. Sau khi xây dựng không gian trạng thái và cây tìm kiếm của bạn bị hạn chế với các va chạm, bạn có thể chọn bất kỳ thuật toán đường dẫn ngắn nhất hoặc một thuật toán lai của riêng bạn hoặc của một biến đổi lai.

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.