Làm thế nào để tính toán thuật toán sao chụp heuristic?


8

Tôi có một vấn đề với thuật toán sao chụp. Đây là dự án cuối cùng của tôi và tôi cần sự giúp đỡ.

Câu hỏi của tôi là làm thế nào tôi có thể tính toán thuật toán sao chụp heuristic? Tôi có thể sử dụng ngôi sao băng pgrouting , nhưng tôi không hiểu cách tính ngôi sao băng heuristic.

Tôi đã tìm kiếm ngôi sao băng heuristic tính toán trong sách internet nhưng tôi không thể tìm thấy nó bây giờ.


Bạn có thể cho tôi biết về thuật toán sao chụp, không chỉ mã nguồn, Mr Mario?

Câu trả lời:


2

Nếu tôi hiểu bạn một cách chính xác, và tôi không phải là một chuyên gia, nhưng có lẽ bạn có thể tìm thấy một cái gì đó trong mã nguồn của chức năng heuristic chụp ngôi sao chụp ảnh và sửa đổi nó theo nhu cầu của bạn. Tất nhiên, bạn sẽ phải xây dựng pgrouting một lần nữa.


Cảm ơn Mr.Mario Miler, mã nguồn của bạn giống với pgrouting hoặc thư viện trong Postgresql, Postgis.Right?
donni

Đây là mã nguồn từ kho lưu trữ pgrouting. Bạn sẽ tải xuống toàn bộ kho lưu trữ, thay đổi chức năng heuristic theo lựa chọn của bạn và xây dựng nó. Bạn có thể tìm thấy một số hướng dẫn ở đây pgrouting.org/docs/1.x/install_ubfox.html .. ít, cũ nhưng nên hoạt động. Bây giờ tôi đã không xây dựng nên việc xây dựng nên không thể nói cho bạn biết nếu có bất kỳ vấn đề nào.
Mario Miler

Bạn có thể cho tôi biết về thuật toán sao chụp không, Mr Mario?
donni

Bạn có thể cho tôi biết về thuật toán sao chụp, không chỉ mã nguồn, Mr Mario?
donni

Bắn súng bắt đầu chỉ là một cái tên ưa thích cho những gì thực chất vẫn là A *. Nó chỉ là tuyến giữa các liên kết thay vì các nút. Xem cuộc thảo luận này: download.osgeo.org/pgrouting/forum/pgrouting.postlbs.org/
Kẻ

1

Tôi nhận được cái này từ danh sách gửi thư. Chụp * là dựa trên cạnh, vì vậy nó đi từ cạnh này sang cạnh khác trong khi A * và Dijkstra đi từ đỉnh này sang đỉnh khác. Do đó, bạn cần một cấu trúc dữ liệu giữ tất cả các cạnh liền kề cho mọi cạnh của biểu đồ của bạn. Nó cũng có thể được thực hiện bằng cách tạo một biểu đồ đường (http://en.wikipedia.org/wiki/Line_graph) ra mạng lưới đường ban đầu của bạn. Và sau đó, bạn có thể chỉ định chi phí chuyển từ cạnh này sang cạnh khác (như một thuộc tính đặc biệt của cấu trúc cạnh liền kề hoặc là chi phí của biểu đồ đường) thực sự đại diện cho bất kỳ loại hạn chế hoặc hình phạt nào khi đi từ cạnh này sang cạnh khác - chẳng hạn như hạn chế rẽ trong trường hợp rẽ hoặc bất kỳ loại hạn chế nào khác như đèn giao thông. Có điều này, bạn có thể sử dụng A * hoặc bất kỳ thuật toán đường dẫn ngắn nhất nào khác sử dụng các cạnh làm đỉnh.

Vì vậy, đó là một ý tưởng đằng sau Bắn súng *.

Và tôi nhận được một agaian này từ Anton Patrushev: http://doad.osgeo.org/pgrouting/forum/pgrouting.postlbs.org/discussion/topic/276.html . Bạn viết như thế này: Trong A *, chúng tôi đang sử dụng một cái gì đó tương tự như hàm Manhattan (| Dx | + | Dy |) / 2 http://pgrouting.postlbs.org/browser/trunk/core/src/astar_boost_wrapper.cpp#L75 Ở đó bạn sẽ thấy những nỗ lực khác được bình luận. Chúng tôi đã thử chức năng khác nhau là OK. Có lẽ, đó là lý do lịch sử. chức năng heuristic và vì một số lý do (tôi không nhớ bây giờ) đã quyết định rằng đối với một mạng lưới đường thông thường, trong Chụp này * chúng tôi đang sử dụng khoảng cách Euclidian. http://pgrouting.postlbs.org/browser/trunk/core/src/sh Boot_star_boost_wrapper.cpp#L100 .

Công thức khác: - Khoảng cách Euclide> Sqrt (Dx² + Dy² + Dz²); - Khoảng cách Manhattan> | Dx | + | Dy | + | Dz | ; - Khoảng cách tối đa> Tối đa (| Dx |, | Dy |, | Dz |).

Tôi vẫn chưa hiểu về tất cả. Bạn bè, bạn có thể cho tôi biết ngắn gọn và chi tiết về ngôi sao chụp thuật toán quy trình không?

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.