• • ■• Path Planning: A* Algorithm • Giới thiệu Điều hướng địa hình tìm đường ngắn đến vị trí Mục tiêu vấn đề quy hoạch đường Mặc dù có nhiều cách tiếp cận vấn đề này, phổ biến biết đến rộng rãi tìm kiếm A Star Chúng tơi cố gắng tìm thuật tốn A cách trực giác Xem xét vấn đề ngang địa hình hiển thị bên (cho phép di chuyển đường chéo) 2 4 • Xác định chi phí Khoảng cách hai nút đơn giản xác định cách tính khoảng cách thẳng hai nút Mặc dù điều khơng phải khoảng cách thật (vì thực tế có trở ngại cần phải khảo sát), khơng đánh giá q cao khoảng cách thực tế 1 ■ Có thể cho thấy miễn chi phí khơng đánh giá q cao, thuật tốn chấp nhận được, tức tạo đường dẫn 4tối ưu Chúng ta xem xét trường hợp Ma trận 4X4 đơn giản Vị trí bắt đầu (1, 1) Các nút (chỉ có trường hợp (1, 2) Khơng có mơ hồ, Robot đạt đến nút (2, 4) Ở có hai nút (3, 4) (3, 3) Nút xác định Robot (Hình nhậtphí Màu phảitừđi cách đánhChữ giá chi choXanh) mục tiêu cảqua hai địa nút.hình đạt mục tiêu (hình bầu dục màu đỏ) Cách tiếp cận lực lượng tàn bạo bắt đầu hình vng xác định tất ô vuông bao quanh Di chuyển đến một(3, f(n) for node 3) lặp lại q trình tìm thấy vng mục tiêu h(2,1) = + + sqrt(2) { Khoảng cách từ N(1, 1) -> N(1,2) -> N(1,3)->N(2,1)} Tuy nhiên, nàymỗi đòiơhỏi tínhlàtốn f(n) = h(2, 1) phương + 1.414 pháp (Giả sử vuông 1X1cao đơnvàvị)không phải lúc đảm bảo đường tốt cho mục tiêu A A g(n) = sqrt( (4 - 3) + (1-3) 2) = 2.23 f(n)= 3.44+H(2,1) f(n) for node (3,4) Chìa khóa nằm việc xác định hình vng thích hợp Với số thơng tin liên quan đến vị trí h(n)= h(2,1) + 1tơi cố gắng để thực đốn giáo dục Ví dụ: bạn biết mục tiêu nằm mục tiêu, chúng g(n)=sqrt( (4-3)A2 + (1-4)A2) phía đơng, khám phá =ơ 4.16 vng phía đơng vị trí bạn Nếu bạn biết tiêu đề mục tiêu, bạn ln cố gắng di chuyển đến vng theo hướng f(n) = 4.16 + h(2,1) Now f(n) for (3,3) Bạn đưa cách tốt để xác định xem cần lựa chọn hình vng nào? Đã tìm thấy nhỏ hai, nút f (n) A * sử giữađến vị trí và tiếp mụctục tiêumở vàrộng di chuyển vng có cho khoảng Robot bâydụng khoảng dicách chuyển núthiện (3, 3) nútđến kế hình tiếp trên, đến cách nhỏ giá đạt Nó đến đánh nút mục tiêu.ơ vuông (từ gọi "nút") cách kết hợp h (n), khoảng cách (chi phí) với nút g (n), khoảng cách (chi phí) để nhận từ nút đến nút đích Tổng chi phí f (n) = g (n) + h (n) tính cho nútCụt nút có chi phí nhỏ f (n) chọn làm người kế nhiệm Ngõ Điều xảy robot rơi vào kết thúc chết? Xem xét địa hình ■ • • • • • • Từ học được, Node (2, 1) chọn làm nút thay Node (1, 2) Robot tiếp tục qua tuyến đường kết thúc khối Nút (4, 1) Chúng ta cần phải thêm chế theo robot: A) Khám phá tuyến đường thay rơi vào kết thúc chết B) Khơng qua đường mà biết dẫn đến kết thúc chết Điều thực cách trì hai danh sách OPEN CLOSED Danh sách OPEN chứa tất đường dẫn liên tiếp chưa khám phá danh sách CLOSED lưu trữ tất đường dẫn khám phá Danh sách OPEN lưu giữ nút cha nút Điều sử dụng cuối để theo dõi đường dẫn từ Mục tiêu đến vị trí bắt đầu, tạo tuyến đường tối ưu Xem xét hình Nút bắt đầu có người kế nhiệm (2, 1) (1, 2) Từ phép tính ban đầu (2, 1) chọn robot di chuyển dọc theo nút đó, nhiên tới điểm chết, loại bỏ nút (2, 1) lấy người kế nhiệm thứ hai (1, 2) khám phá tuyến đường Start Mode (1 ) Exercise A) min_fn.m: Chức lấy danh sách OPEN làm đối số,3^của trả nút NC1 2}một NC1 có chức chi phí nhỏ B) Node_index.m: Chức trả mục vị trí nút danh MO ,4Jsách OPEN Tập thể dục MC 3.1 ; MC2.43 1) Xem xét robot có số ràng buộc vật lý định (ví dụ: theo rvic-^.1 đường đủ rộng để di chuyển) Nếu đường tối ưu dẫn qua khu vực hẹp, khơng khả thi Thay đổi chương trình để tạo đường dẫn tối ưu mặt vật lý ràng buộc định C4.33 Dead Endđịa hình 2D Sửa Mđổi 2) Chương trình xử lý chương trình để tạo đường dẫn Kích thước Mot Visited Khi đạt nút mục tiêu, nút gốc tìm thấy theo dõi trở lại nút bắt đầu để có Con đường hồn chỉnh Trong ví dụ N (4,3) -> N (3,4) -> N (2,3) -> N (1,2) -> N (1,1) cho đường dẫn tối ưu Từ điều kiện thu thuật tốn sau Thuật toán A * 1) Đặt nút bắt đầu vào danh sách OPEN tính tốn hàm chi phí f (n) {H (n) = 0; G (n) = khoảng cách mục tiêu vị trí bắt đầu, f (n) = g (n).} 2) Xoá khỏi danh sách OPEN nút với chức chi phí nhỏ đặt vào CLOSED Đây nút n (Nếu hai nút trở lên có chức chi phí, tự ý giải mối quan hệ Nếu nút nút mục tiêu, sau chọn nút mục tiêu) 3) Nếu n nút mục tiêu chấm dứt thuật tốn sử dụng trỏ để có đường dẫn giải pháp Nếu không, tiếp tục 4) Xác định tất nút n tính tốn chức chi phí cho người kế nhiệm khơng có danh sách CLOSED 5) Liên kết với người kế thừa không nằm danh sách OPEN CLOSE giá tính tốn đặt chúng vào danh sách OPEN, đặt trỏ tới n (n nút cha) 6) Liên kết với người kế nhiệm mở OPEN nhỏ giá trị chi phí tính giá trị chi phí trước (Min (mới f (n), f (n) cũ)) 7) Đi tới bước Chương trình Matlab bao gồm tệp sau A) A_star1.m: Đây tệp chứa thuật toán Điều cần phải thực để chạy chương trình B) distance.m: Đây chức tính toán khoảng cách nút C) Expan_array.m: Chức lấy nút trả danh sách kế thừa mở rộng, với giá trị fn tính tốn Một tiêu chí khơng có người kế nhiệm nằm danh sách CLOSED D) insert_open.m: Chức điền vào danh sách OPEN với giá trị truyền cho Đối số xval, yval, parent_xval, parent_yval, hn, gn, fn