1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Khoa học máy tính: Bài toán tìm đường ngắn nhất trên đồ thị cho hai đối tượng có ràng buộc khoảng cách

93 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • 1.1 Giới thiệu và động cơ (14)
  • 1.2 Mục tiêu, nhiệm vụ và phạm vi đề tài (16)
  • 1.3 Tổ chức luận văn (17)
  • 2.1 Các bài toán liên quan (19)
  • 2.2 Các phương pháp tìm đường (path – plan- (22)
    • 2.2.1 Đồ thị tầm nhìn (23)
    • 2.2.2 Sơ đồ Voronoi 2.2.3 Phân hoạch môi trường (Cell decomposition)2.2.3Phân hoạch môi trường (Cell decomposition) (26)
    • 2.2.4 Trường thế năng (Potential Field) (28)
  • 2.3 Các kỹ thuật tìm đường cho nhiều robot (33)
  • 3.1 Preliminaries (37)
  • 3.2 Đặc tả bài toán (37)
  • 3.3 Tính chất của bài toán (40)
  • 4.1 Đồ thị đường (Line graph) (42)
  • 4.2 Các giải thuật tìm đường đi ngắn nhất cổ (43)
    • 4.2.1 A-sao (44)
  • 4.3 Cây tứ phân (47)
  • 4.4 Quy hoạch tuyến tính (48)
  • 5.1 Phương pháp biến đổi đồ thị (54)
  • 5.2 Áp dụng giải thuật A* trên đồ thị H (60)
  • 5.3 Biểu diễn môi trường hoạt động của robot (62)
    • 5.3.1 Biểu diễn môi trường bằng cây tứ phân (62)
    • 5.3.2 Giải thuật tìm cell lân cận (67)
    • 5.3.3 Bản đồ đường đi (Path Connectivity Graph) (71)
  • 5.4 Xây dựng mô hình tuyến tính nhị nguyên (73)
  • 6.1 Tập dữ liệu (74)
  • 6.2 Các tham số và cài đặt ban đầu (76)
  • 6.3 Kết quả thực nghiệm (76)
  • 6.4 Kết luận (83)
  • Kết luận (85)
    • 7.1 Tổng kết (86)
    • 7.2 Những đóng góp của đề tài (86)
    • 7.3 Hướng phát triển đề tài (87)

Nội dung

Hơn nữa các đối tượng này còn có các ràng buộc với nhau, trongđó không chỉ một đường đi ngắn nhất được tìm ra mà nhiều đường đi ngắnnhất luôn thỏa những ràng buộc cụ thể sao cho k đối tư

Giới thiệu và động cơ

Các thiết bị tự hành hay người máy là một thiết bị nhân tạo trông giống như con người, hoạt động tự động hoặc bán tự động bằng sự điều khiển của máy tính hoặc các vi mạch điện tử được lập trình Người máy có nhiều ứng dụng hữu ích trong các lĩnh vực sản xuất, thám hiểm vụ trụ hay để phục vụ cho mục đích trinh thám quân sự, hoặc dân sự Ví dụ: tham dò địa hình dưới đáy đại dương hay vực sâu, tìm tàu đắm dưới biển, dò tìm các đối tượng cụ thể ở khu vực nguy hiểm, khai phá mìn, robot thay thế con người làm việc ở những môi trường độc hại hay robot thay con người làm việc nhà, tìm kiếm và cứu nạn, theo dõi các loài có nguy cơ tuyệt chủng, kết nối mạng đa tác nhân và tối ưu hóa các quy trình sản xuất của nhà máy Làm sao có thể chuyển đổi các nhiệm vụ trên thành các mô tả mức thấp phù hợp để có thể kiểm soát được các thiết bị? Các ứng dụng trên làm phát sinh các vấn đề về lập kế hoạch chuyển động tùy thuộc vào các ràng buộc khác nhau Những ràng buộc từ tránh chướng ngại vật, khoảng cách đến những vấn đề động học và chuyển động Nhu cầu ngày càng tăng về các hệ thống tự trị trong cả đấu trường quân sự và dân sự cũng như tính hữu dụng của các thiết bị thông minh đã thúc đẩy cho sự phát triển không ngừng của các giải thuật cho robot như các giải thuật lưu vết (tracking), điều khiển (controling) và giải thuật tìm đường (path planning) Nhiều thuật toán đã được phát triển để cung cấp các giải pháp cho vô số các vấn đề về lập kế hoạch chuyển động.

Cùng với bài toán tìm đường cho một robot thì các thuật toán lập kế hoạch đường dẫn đa đối tượng (path planning for multi-agents), những năm gần đây, thu hút sự chú ý đáng kể trong các cộng đồng hệ thống và điều khiển thông minh Hơn nữa các đối tượng này còn có các ràng buộc với nhau, trong đó không chỉ một đường đi ngắn nhất được tìm ra mà nhiều đường đi ngắn nhất luôn thỏa những ràng buộc cụ thể sao cho k đối tượng không đụng độ với nhau tại mỗi bước di chuyển là kết quả của bài toán Robot thường di chuyển theo nhóm phối hợp chặt chẽ với nhau để dò tìm mục tiêu cụ thể Bởi vì, so với một robot lớn đơn lẻ:

(i) Chế tạo và vận hành nhiều robot nhỏ thì tiết kiệm hơn nguyên vật liệu và nhiêu liệu (xăng, dầu).

(ii) Khả năng bị phát hiện bởi kẻ thù ít hơn.

(iii) tăng cường độ bền (thông qua dự phòng) (iv) Có thể đạt được mục tiêu trong thời gian nhanh hơn.

(v) Sự hỏng (damage) của một robot thành viên thì không gây ra sự thất bại của mục tiêu chung.

(vi) các đội robot có thể tăng miền ứng dụng của tự trị robot bằng cách cung cấp giải pháp cho các tác vụ vốn đã được phân phối, theo thời gian, không gian hoặc chức năng.

Từ những năm 1980, các nhà nghiên cứu đã giải quyết được nhiều vấn đề trong các nhóm đa robot, chẳng hạn như các kiến trúc điều khiển, giao tiếp, phân bổ nhiệm vụ, học tập.

Một vấn đề quan trọng trong các nhóm robot di động này là điều phối các chuyển động của nhiều robot tương tác trong cùng một không gian làm việc.

Bất kể nhiệm vụ của robot là gì, họ phải có khả năng chia sẻ hiệu quả không gian làm việc để ngăn chặn sự can thiệp giữa các thành viên trong nhóm Giải pháp cho vấn đề phối hợp chuyển động được tiếp cận theo nhiều cách khác nhau, tùy thuộc vào mục tiêu cơ bản của đội robot Trong một số trường hợp, đường dẫn của robot được lên kế hoạch và phối hợp một cách rõ ràng, ví dụ như ứng dụng quản lý kho bãi Trong các trường hợp khác, việc lập kế hoạch được thư giãn và chủ yếu là để tránh va chạm, áp dụng cho các nhiệm vụ như giao hàng bữa ăn bệnh viện tự động Trong các tình huống khác, các robot có thể có các cơ chế ít lập kế hoạch trước, tập trung vào việc phối hợp chuyển động của robot trong thời gian thực bằng cách sử dụng các phương pháp tiếp cận phản ứng, dựa trên hành vi hoặc dựa vào lý thuyết điều khiển, chẳng hạn như sẽ được sử dụng trong các ứng dụng lưu giữ hoặc tạo hình.

Lý thuyết đồ thị là ngành khoa học được phát triển từ lâu nhưng lại có nhiều ứng dụng hiện đại, nó là kiến thức cơ sở cho nhiều ngành khoa học kỹ thuật khác nhau như Điện tử, Hóa học, Ngôn ngữ học, Kinh tế học, Máy tính, Nhiều khái niệm của lý thuyết đồ thị được sinh ra từ các vấn đề thực tiễn như: đường đi, chu trình, tập ổn định, chu số, sắc số, duyệt đồ thị, đường đi Hamilton, tâm đồ thị, luồng vận tải, đồ thị phẳng, cây bao trùm, cây biểu thức, cây mã tiền tố tối ưu Vì vậy lý thuyết đồ thị gắn kết nhiều ngành khoa học lại với nhau.

Mục tiêu, nhiệm vụ và phạm vi đề tài

Mục tiêu chính của luận văn là nhìn bài toán tìm đường ngắn nhất tránh vật cản cho hai đối tượng ở khía cạnh mới rằng hai đối tượng luôn cách nhau một khoảng cách nhất định Đề tài cho thấy khả năng ứng dụng của sự kết hợp giữa lý thuyết đồ thị và giải thuật thông minh vào bài toán tìm đường đa đối tượng Góc nhìn mới đã phát huy sức mạnh của bài toán cổ điển.

Không gian tìm kiếm được biểu diễn là một đồ thị đơn, vô hướng, có trọng số Trong khi di chuyển một trong hai đối tượng có thể dừng lại, đồng thời chúng luôn luôn có kết nối với nhau về khoảng cách Sự kết nối này tượng trưng cho ý nghĩa trong thực tế rằng: hoạt động của cả nhóm là sự kết hợp của các hành động phối hợp của các đối tượng Mỗi đối tượng tự điều khiển và nó khai thác không chỉ kiến thức riêng của nó về môi trường xung quanh, mà còn các dữ liệu nhận được từ các đối tượng láng giềng mà nó có thể truy cập.

Các nội dung chính trong đề tài bao gồm:

• Tìm hiểu tổng quan các giải pháp cho bài toán tìm đường một đối tượng và đa đối tượng

• Tìm hiểu các giải pháp cụ thể cho bài toán tìm đường đi ngắn nhất (theo khoảng cách) tránh vật cản cho hai đối tượng có ràng buộc với nhau về khoảng cách bằng cách kết hợp lý thuyết đồ thị và cell decomposition với độ phức tạp tính toán trong thời gian đa thức

• Tìm hiểu quy hoạch tuyến tính nguyên (Integer Linear Programming ILP)

• Giải thuật đề xuất được chạy thực nghiệm trên tập dữ liệu thực tế và so sánh với mô hình ILP

Tổ chức luận văn

Luận văn được trình bày gồm có bảy chương:

Chương 1: Tổng quan Chương 2: Các nghiên cứu liên quan Chương 3: Định nghĩa bài toán và các giả định Chương 4: Cơ sở lý thuyết

Chương 5: Phương pháp biến đổi đồ thị kết hợp cây tứ phân Chương 6: Thực nghiệm

Chương 1 giới thiệu đề tài cũng như nêu nhiệm vụ và phạm vi của đề tài.

Chương 2 tóm tắt các công trình liên quan, trình bày tổng quan về các kỹ thuật và phương pháp phổ biến trong việc xác định đường đi của robot Bài toán tìm đường tránh vật cản trong môi trường biết trước cho hai robot có ràng buộc với nhau về khoảng cách là một hướng tiếp cận mới trong bài toán tìm đường (path planning) này Chương 3 nêu ra các giả định, đặc tả chi tiết bài toán một cách toán học và tính chất của bài toán Chương 4 trình bày các cơ sở lý thuyết của các phương pháp được ứng dụng để tìm lời giải cho bài toán đã đặt ra Trên các lý thuyết ở chương 4, chương 5 trình bày cụ thể các bước của giải pháp đề xuất Giải pháp này tiếp cận theo hướng adaptive cell decomposition kết hợp phép quy dẫn đồ thị Chương này cũng trình bày mô hình tuyến tính nhị nguyên cho bài toán tìm đường ngắn nhất trên đồ thị cho hai đối tượng có ràng buộc cách nhau một cạnh Chương 6 trình bày tập dữ liệu và kết quả thực nghiệm để kiểm chứng chất lượng lời giải và thời gian thực thi của giải pháp đã hiện thực Chương 7 kết lại các kết quả đã đạt được và nêu các hướng phát triển có thể để hoàn thiện hơn đề tài.

Các nghiên cứu liên quan

Các bài toán liên quan

Công trình [39], Subhrajit Bhattacharya và các cộng sự nghiên cứu bài toán tìm đường đa đối tượng với ràng buộc tham số thời gian về khoảng cách từng đôi một với nhau Đây là bài toán thường nảy sinh khi lập kế hoạch cho các hệ thống nhiều robot với phạm vi giao tiếp hạn chế Các tác giả đặt vấn đề như là tìm kiếm trên N đồ thị đường đi tối ưu thỏa mãn ràng buộc khoảng cách Giải pháp DPC lặp lại việc tìm kiếm trên các đồ thị này với sự gia tăng dần dần của các ràng buộc khoảng cách cho đến khi đạt được sự hội tụ đầy đủ Các ràng buộc này là ràng buộc mềm, được chấp nhận vi phạm theo hàm phạt (penalty function) kiểu kỹ thuật tăng cường đối số Lagrange Các tác giả đã chứng minh rằng dưới điều kiện cụ thể giải thuật đảm bảo hội tụ thành giải pháp tối ưu Thực nghiệm cho thấy thuật toán hội tụ nhanh chóng cho các nhóm tối đa sáu đối tượng cùng hoạt động trong môi trường lộn xộn Và các kết quả mô phỏng cũng cho thấy việc triển khai và thực hiện thuật toán trên ba robot tìm đường trên môi trường lộn xộn trong khi tuân theo các giới hạn khoảng cách theo tham số thời gian Các tác giả mở rộng bài toán này trong [40]: mỗi robot được cho một tập hợp các tác vụ không có thứ tự mà nó phải thực thi trước khi nó di chuyển đến mục tiêu của nó, trong khi các hàm mục tiêu, các ràng buộc mềm về khoảng cách và độ phức tạp được kế thừa từ giải thuật DPC trên bằng cách xây dựng đồ thị trạng thái - tác vụ và đề xuất một hàm heuristic hiệu quả để thực hiện tìm kiếm trên đồ thị này Giải thuật sẽ quyết định thứ tự thực hiện các tác vụ sao cho đạt được lời giải tối ưu đồng thời các ràng buộc khoảng cách được thỏa mãn cùng với việc thực hiện thành công các tác vụ.

Mariusz Glabowski và các cộng sự [26], Yogita Gigras, Kusum Gupta[27] cho thấy rằng các giải thuật Meta-Heuristic đã giải quyết bài toán tìm đường đi ngắn nhất cho nhiều đối tượng khá hiệu quả và cho lời giải gần tối ưu Đây là một bài toán tối ưu tổ hợp, dạng bài toán có độ phức tạp tính toán cao thuộc lớp NP khó [27] thực hiện một nghiên cứu so sánh giữa giải thuật bầy đàn (Particle swarm optimization) và giải thuật đàn kiến (Ant Algorithm).

Kết quả thực nghiệm cho thấy giải thuật đàn kiến vượt trội hơn so với tối ưu hóa bầy hạt trong thời gian tính toán Bên cạnh đó còn có giải thuật mô phỏng luyện kim SA (Simulated Annealing), giải thuật di truyền GA (Genetic Algorithm) được áp dụng cho bài toán này bởi các tác giả O Castillo và L.

Trujillo [28] Với độ phức tạp tính toán cao của các bài toán tối ưu tổ hợp cũng như đòi hỏi về mặt thời gian, việc giải các bài toán này với tính chất tuần tự của giải thuật sẽ gặp phải những vấn đề về thời gian thực hiện chương trình, tốc độ xử lý, khả năng lưu trữ của bộ nhớ, xử lý dữ liệu với quy mô lớn Kích thước bài toán tăng lên và không gian tìm kiếm càng lớn yêu cầu cần phải song song hóa các giải thuật [29] để tăng tốc độ và hiệu quả của giải thuật.

Yongbo Chen, Jianqiao Yu và hai cộng sự khác [24] trình bày một thuật toán hiệu quả và khả thi cho bài toán tìm đường cho nhiều máy bay không người lái (multi-UAVs) trong môi trường thực tế biết trước Các tác giả cải tiến phương pháp artificial potential field Để tránh đụng độ giữa các UAV, các tác giả đưa ra khái niệm định dạng, quy tắc để thay đổi định dạng và quá trình tái cấu trúc; tức là các UAV luôn di chuyển theo một định dạng xác định trước, tuy nhiên trong một số trường hợp chúng có thể rời khỏi đội hình và tính độ lỗi cho đường đi đó Bài báo này áp dụng định dạng hình xương cá và kích thước của nó được thể hiện trong hình 2.1 Mô hình tìm đường cho lead plane được thực hiện độc lập trước, các wingman cần phải theo các vị trí được gọi là "điểm mục tiêu ảo" để duy trì định dạng Yếu tố khoảng

Hình 2.1: Sơ đồ mô hình đa UAV [24] cách giữ các UAV là ràng buộc mềm Kết quả của mô phỏng thực nghiệm đã chứng minh rằng phương pháp đề xuất có khả năng tìm đường tốt và khắc phục được vấn đề "vùng chết" trong vấn đề tìm đường, đồng thời chỉ ra rằng các sai số định dạng lớn trong khu vực ảnh hưởng của các chướng ngại vật, và nhỏ ở khu vực không có chướng ngại vật.

Wagner và Choset [25] hiện thực giải thuật M* trên không gian được biểu diễn như hệ tọa độ có số chiều thay đổi cho bài toán lập kế hoạch đường đi cho nhiều robot (multirobot path planning) Đây là một bài toán tối ưu về robot trong lĩnh vực trí tuệ nhân tạo và kết quả của bài toán là n đường đi tối ưu cho n robot đồng thời tránh được sự đụng độ giữa các robot Các giải thuật để giải bài toán này có thể được chia thành hai loại: ghép và tách các robot Mỗi loại đều có ưu điểm và nhược điểm riêng Các tác giả đã khai thác các lợi ích của mỗi loại giải thuật, kết hợp chúng để đưa ra lời giải M* M* được chứng minh là thực sự đầy đủ và tối ưu, đồng thời thực nghiệm cũng cho thấy độ phức tạp trung bình của nó thì nhỏ hơn độ phức tạp trung bình của giải thuật A* Tuy nhiên, M* có một điểm yếu Nó sẽ thất bại trong trường hợp có một số lượng robot đủ lớn đổ dồn về một điểm, bởi vì khi đó M* phải tìm kiếm trên một không gian với số chiều quá lớn Số lượng robot bao nhiêu là đủ lớn và giải pháp khả thi cho trường hợp này rM* cũng được nghiên cứu tiếp theo Và dĩ nhiên để tìm được lời giải với những ràng buộc về bộ nhớ máy tính và thời gian, rM* không còn đảm bảo được tính đầy đủ và tối ưu của M*.

Các phương pháp tìm đường (path – plan-

Đồ thị tầm nhìn

Đồ thị tầm nhìn là một trong những phương pháp tìm đường sớm nhất và xây dựng các đường dẫn thông qua kết nối mỗi cặp đỉnh của các chướng ngại vật bằng một đường thẳng mà không đi qua bên trong các chướng ngại vật.

Phân tích đồ thị tầm nhìn là một bài toán đầy thách thức vì cấu trúc tổ hợp của đồ thị tầm nhìn vẫn chưa được hiểu đầy đủ. Định nghĩa 3: Đồ thị tầm nhìn là một đồ thị vô hướng G (V, E) được xác định cụ thể như sau:

− V là tập hợp các đỉnh của vật cản và điểm khởi đầu, mục tiêu mà robot cần di chuyển.

− E là tập con của VxV, hai đỉnh của G tạo thành một cạnh khi và chỉ khi đoạn thẳng hoặc là cạnh của vật cản hoặc hai đỉnh có thể đi được đến nhau mà không bị cản trở bởi bất kì vật cản nào.

Input: một tập n điểm là đỉnh của các chướng ngại vật, điểm khởi đầu, điểm kết thúc.

Output: một danh sách các điểm có thể nhìn thấy được của mỗi điểm

Một số thuật toán sinh đồ thị tầm nhìn với độ phức tạp thời gian được cải tiến

- Na¨ıve algorithm - Cách đơn giản nhất để xây dựng đồ thị tầm nhìn là xét mỗi cặp đỉnh (u,v) có giao nhau với bất kỳ cạnh nào của vật cản hay không.

Hình 2.2: Một ví dụ tìm đường sử dụng đồ thị tầm nhìn [12]

Nếu không, hai đỉnh u, v là hai đỉnh có thể nhìn thấy nhau và cạnh (u,v) được thêm vào tập cạnh của đồ thị tầm nhìn Dĩ nhiên là để hoàn thành được đồ thị tầm nhìn thì quá trình kiểm tra này phải lặp lại với tất cả cặp đỉnh, số cặp đỉnh phải xét là n 2 (n là số đỉnh) Giải thuật có độ phức tạp thời gian là O(n 3 ) Đối với lưu trữ, giải thuật cần ít nhất là O(n) cho input, và O(|e|) không gian bộ nhớ để lưu lại đồ thị tầm nhìn Năm 1979, Lozano-Perez và Wesley, trình bày giải thuật Na¨ıve cho khối đa diện [13].

- Thuật toán của Lee lần đầu tiên trình bày một giải pháp mới và có ý nghĩa,chạy trong thời gian O(n2 log n) Ông đã cải tiến giải thuật Na¨ıve bằng cách sử dụng một biến thể của thuật toán sweep-line, kết hợp cấu trúc dữ liệu là cây tìm kiếm nhị phân để xử lý việc chèn và xóa danh sách cạnh Nhờ sử dụng thuật toán sắp xếp tối ưu, thao tác tìm kiếm, chèn và xóa cạnh có độ phức tạp thời gian là O(log n) Ý tưởng của giải thuật là : với mỗi đỉnh v,tầm nhìn đối với tất cả các đỉnh khác được tính bởi a) sắp xếp tất cả các đỉnh xung quanh theo thứ tự góc từ một đường thẳng quét bắt đầu nào đó, b) sử dụng kỹ thuật quét mặt phẳng để thăm mỗi đỉnh theo thứ tự góc, c) lưu vết khoảng cách của mỗi đoạn thẳng xung quanh trên một đường quét bằng cấu trúc dữ liệu đã được sắp xếp Trong trường hợp xấu nhất, danh sách cạnh lưu nhiều nhất là O(n) cạnh Trong một lần quét, danh sách được sắp xếp theo góc cần O(n) không gian bộ nhớ, nhưng có thể được giải phóng sau khi hoàn thành [Lee, 1978] [14]

Hình 2.3: Ví dụ của Lee Scan với danh sách cạnh

- O(n 2 ) thuật toán sử dụng sắp xếp Trong nhiều năm sau đó, thuật toán nhanh nhất để sinh đồ thị tầm nhìn được biết đến lúc bấy giờ có cận trên thời gian thực thi làO(n 2 logn) Đến năm 1985, Wezl [8, 15] khai thác đặc tính đặc biệt của sự sắp xếp các đường thẳng (cặp các đỉnh) để giảm độ phức tạp thành O(n 2 ) Tiếp theo đó nhiều giải thuật được công bố cũng cho phép xây dựng đồ thị tầm nhìn trong thời gian O(n 2 ), hầu hết trong số đó hàm chứa kiểu sắp xếp topo của các cặp đỉnh, chẳng hạn như công bố bởi Asano et al., (1986) và Edelsbrunner, (1987).

- Một trong những báo khoa học được công bố gần đây nhất về đồ thị tầm nhìn có thời gian thực thi đạt được là O(nlogn + E), trong đó E là số cạnh của đồ thị Trong trường hợp xấu nhất,E = O(n 2 )cho một đồ thị hoàn chỉnh,nhưng một đồ thị hoàn chỉnh thường là không phổ biến Trong trường hợp tốt nhất, thời gian thực thi giảm còn O(n) Đây là các thuật toán nhạy cảm đầu ra cho các đồ thị có ngưỡng mật độ tối thiểu nhất định [Ghosh and Mount,1987] [16]

Hình 2.4: Đồ thị tầm nhìn và sơ đồ Voronoi.

Sơ đồ Voronoi 2.2.3 Phân hoạch môi trường (Cell decomposition)2.2.3Phân hoạch môi trường (Cell decomposition)

Phân hoạch môi trường trống mà robot có thể đi được thành tập các vùng đa giác lồi−được gọi là cell để bắt nguồn cho việc sinh đồ thị Tính liên thông của đồ thị diễn tả cho mối quan hệ liền kề giữa các cell Kết quả tìm đường trên đồ thị bản chất là chuỗi các cell liền kề nhau Phương pháp phân hoạch môi trường (cell decomposition hay viết tắt là CD) được áp dụng cho bài toán tìm đường theo các bước như sau:

1 Chia không gian cấu hình thành các vùng đơn lồi.

2 Xác định các cell liền kề nhau để xây dựng đồ thị liên kết chúng

3 Xác định cell chứa điểm cấu hình khởi đầu và điểm cấu hình mục tiêu và tìm trên đồ thị đường đi giữa chúng bằng một giải thuật tìm đường thích hợp

4 Tính đường đi trong các cell từ chuỗi các cell tìm được, ví dụ như đi qua trung điểm của đường biên của cell.

Các giải thuật CD có thể được phân loại thành cell decomposition chính xác (ECD) và cell decomposition xấp xỉ (ACD) Các giải thuật ECD phân chia không gian cấu hình trống (free configuration space),C f ree thành các cell sao cho hợp của chúng chính xác làC f ree Do đó, ECD có tính đầy đủ Tuy nhiên, để có được một không gian được phân chia như vậy không phải lúc nào cũng là một quy trình tính toán thực tế vì độ phức tạp tăng nhanh với số chiều và kích thước của C f ree Vì vậy, ECD thích hợp ứng dụng giải lớp các bài toán tìm đường chứa vật cản là đa diện lồi hoặc phẳng, và robot chỉ có khả năng di chuyển _ đã có nhiều bài báo khoa học được công bố những năm 1980’s [17][18][19][20].

Cell Decomposition chính xác (Trapezoidal decomposition)

Hình 2.5: Phương pháp phân hoạch dọc sử dụng các ô để xây dựng lộ trình để tìm lời giải.

Cell Decomposition xấp xỉ (Quadtree) Không giống như các giải thuật ECD, kết quả của các giải thuật ACD là một tập hợp các đa giác lồi, không trùng lắp có hình dạng riêng được xác định trước ước lượng gần đúng cho Cfree, hợp của các cell có đường biên xấp xỉ với đường biên của Cfree ACD có thể được thực hiện bằng cách sử dụng một loạt các kỹ thuật khác nhau.

Luận văn này sẽ hiện thực một trong những tiếp cận của ACD là cây tứ phân,tức là phân hoạch không gian cấu hình trống thành các ô vuông chiếu trên mặt phẳng x-y, [21] Các tác giả [31] cũng đã tiếp cận cây tứ phân để giải quyết bài toán tìm đường tránh vật cản cho một robot tự hành.

Các kỹ thuật khác, như phương pháp xấp xỉ– và–phân rã (approximate-and- decompose method) [22], chia C f ree thành các cell hình chữ nhật, đã được thực hiện thành công cho các bài toán hoạch định chuyển động tương tự [23].

Các phương pháp dựa trên lẫy mẫu ngẫu nhiên Các giải thuật thuộc phương pháp này sinh ra một probabilistic roadmap bằng cách kết nối các đỉnh ngẫu nhiên trong vùng robot có thể đi qua được mà không chạm phải các chướng ngại vật Bằng cách xem xét đỉnh ngẫu nhiên có nằm trong vật cản hay không trước khi sinh cạnh nối nó đồ thi, các giải thuật này xem việc phát hiện đụng độ như “hộp đen” và độc lập với các mô hình hình học.

Trường thế năng (Potential Field)

Trường thế năng là thuật toán mô phỏng dựa vào hiện tượng các hạt tích điện đẩy hút lẫn nhau trong môi trường, được đề xuất bởi Khatib năm 1986 [30].

Thuật toán nhằm giải quyết bài toán hành vi di chuyển cho các robot dựa vào vector tổng hợp các vector mô phỏng từ môi trường mà không dùng đến các phương pháp biểu diễn môi trường như đồ thị và cây Phương pháp hiện thực theo các bước sau:

Tìm đường đến mục tiêu Mục đích nhằm tìm ra một vector tiềm năng cho hướng duy chuyển của robot đến mục tiêu (SeekGoal).

Trong chuyển động trong không gian 2 chiều, ta có vector vị trí của robot là v = [x, y] T , robot cần tìm một vector để quyết định tốc độ và hướng di chuyển là δ = [∆x, ∆y] T

Thuật toán có thể hiện thực như sau:

• Cho (x G , y G ) là vị trí của vật thể đích, đích có bán kính r, bán kính ảnh hưởng bên ngoài là s Vị trí của robot hiện tại là (x, y) α là một hệ số cho trước.

• Khoảng cách giữa robot và đích là d =p

• Tìm góc giữa robot và đích θ = arctan2(y G − y, x G − x).

• Tính ∆x và ∆y theo công thức:

Hình 2.6: Mô phỏng lực hút của đích cần tới

Tránh vật cản Mục đích nhằm tìm một vector giúp cho robot tìm đường tránh chướng ngại vật, hoặc tránh các đối tượng cùng di chuyển trong không gian.

Thuật toán có thể hiện thực như sau:

• Cho (x O , y O ) là tọa độ của vật cản, r là bán kính vật cản, s là phạm vi ảnh hưởng, robot sẽ cố gắn tránh phạm vi ảnh hưởng này Robot có tọa độ (x, y) β là một hệ số cho trước.

• Khoảng cách giữa robot và vật cản là d =p

• Tìm góc giữa robot và vật cản θ = arctan2(y O − y, x O − x).

• Tính ∆x và ∆y theo công thức:

• Trong tính toán, ∞ có thể là một con số tương đối lớn cho trước, tuy nhiên con số này không được quá lớn để khi tính ra vector(∆x, ∆y)∆time quá lớn.∆time là quản thời gian giữa 2 lần tính toán.

Hình 2.7: Mô phỏng lực đẩy của vật cản cần né tránh

Kết hợp nhiều đối tượng Bằng việc tổng hợp tất cả các vector của các đối tượng bên ngoài tác động vào, ta có được vector quyết định phương hướng chuyển động tức thời của robot.

Trong môi trường hoạt động của robot, hướng đi của robot sẽ được tính lại tại mỗi frame, cho khoảng cách giữa các frame là ∆t, vector vận tốc chính là − → v, khi đó, vector tọa độ − → p 0 của robot sẽ được tính theo công thức − → p 0 = − → p + − → v ∆t

Hình 2.8: Kết hợp đối tượng mục tiêu và vật cản

• Trường thế năng song song, nhằm mục đích dẫn đường cho đối tượng di chuyển song song với vật cản có độ dài lớn, thường là bức tường.

• Trường thế năng trong góc hộp(hình chữ U).

Hình 2.9: Hành trình của robot trong Potential Field [30]

• Trường thế năng vuông góc, ép đối tượng đổi hướng khi có xu hướng đi về phía vật cản.

• Trường thế năng tiếp tuyến, đưa đối tượng đi vòng qua vật cản.

• Trường thế năng hỗn độn, thay đổi một cách ngẫu nhiên hướng di chuyển của đối tượng, từ đó có cơ hội giúp đối tượng thoát khỏi các vật cản như các góc chết. Ứng dụng

Thuật toán mô phỏng trường thế năng có ưu điểm sử dụng ít bộ nhớ, thời gian tính toán nhanh nên được ứng dụng nhiều trong lĩnh vực tự động hóa, khi mà các thiết bị tự động còn rất hạn chế về bộ nhớ điều khiển.

Thuật toán sử dụng trong bài toán tìm đường cho một hoặc nhiều robot, tạo ra các hành vi của các đối tượng trong game, xử lí né tránh vật cản, xử lí va chạm.

Hình 2.10: Trường thế năng song song [30]

Hình 2.11: Trường thế năng vuông góc [30]

Các kỹ thuật tìm đường cho nhiều robot

Lập kế hoạch chuyển động cho nhiều robot đã được nghiên cứu rộng rãi từ những năm 90 Phương pháp tiếp cận đối với bài toán tìm đường đa

Hình 2.12: Trường thế năng tiếp tuyến [30]

Hình 2.13: Trường thế năng hỗn độn [30] robot thường được phân loại là tập trung (coupled, centralized) và tách rời(decouple) Các phương pháp tập trung xem các robot riêng biệt như một hệ thống tổng hợp, và thường thực hiện việc tìm đường trong một không gian cấu hình tổng hợp, được hình thành bằng cách kết hợp các không gian của các robot riêng lẻ Cách tiếp cận tách rời tìm các đường dẫn cho từng robot riêng biệt một cách độc lập, và sau đó xem xét sự tương tác giữa các robot

Hình 2.14: Trường thế năng trong góc hộp[30]

(đối với các đường dẫn được tạo). Điểm mạnh, theo lý thuyết, của các giải thuật thuộc phương pháp tập trung có tính đầy đủ (luôn luôn tìm ra giải pháp nếu tồn tại) Tất nhiên, không tránh khỏi khó khăn trong thực tế là, nếu đạt được tính đầy đủ, thì độ phức tạp thời gian là hàm mũ với số chiều của không gian cấu hình tổng hợp Trong khi các giải thuật tiếp cận hướng tách rời vốn không đầy đủ và có thể dẫn đến tình trạng bế tắc (deadlock), nhưng có thể giảm thiểu đáng kể thời gian thực thi.

Phương pháp tập trung (Centralised planning) Các công trình chính như là: phương pháp dựa vào các đường công trọng yếu (critical curves) của Schwartz and Sharir [42], phương pháp super-graph của Svestka và M.

Overmars [43], phương pháp spanning tree của Peasgood và các cộng sự [44].

Phương pháp tách rời (Decoupled planning) Các công trình tiêu biểu như là: phương pháp lập kế hoạch ưu tiên (prioritized planning approach) lần đầu tiên được đề xuất bởi Erdmann và Lozano Peréz [45], Kant và Zucker đề xuất các kỹ thuật phối hợp đường dẫn (Path coordination techniques)[46]. Định nghĩa bài toán và các giả định

Preliminaries

Định nghĩa 1: Không gian cấu hình (configuration space) là một khái niệm trong lĩnh vực Robotics dùng để biểu diễn môi trường hoạt động của robot, trong đó vị trí (hoặc cấu hình) của robot được xác định hoàn toàn bởi một điểm có n tham số độc lập là tọa độ, hướng, tốc độ, độ ưu tiên Để tính được Định nghĩa 2: vùng không gian vật cản, C obs , là tập con của không gian cấu hình mà nếu được xâm nhập bởi một điểm đại diện của robot (ví dụ: centroid), sẽ gây ra đụng độ giữa A và vật cản B j

Đặc tả bài toán

Xét đồ thị đơn vô hướng, liên thông, có trọng số G(V, E) nhúng trong phần obstacle - free của không gian tĩnh W = R 2 G có tập đỉnh V là các vị trí collision-free trong W và tập cạnh là những đường đi collision-free giữa các đỉnh.

Cho tập 2 robot A = {A i , ∀1 ≤ i ≤ |A|}, mỗi robot với một cấu hình khởi đầu(vị trí, hướng) và một cấu hình mục tiêu mong muốn và di chuyển trên các cạnh của G Đỉnh bị chiếm đóng bởi robot A i tại thời điểm t sẽ được ký hiệu

Hình 3.1: Không gian cấu hình là q i (t) Hai robot thì không được chiếm đóng đồng thời tại cùng một đỉnh.

Không gian cấu hình (configuration space) C tượng trưng cho tập hợp tất cả các cấu hình có thể của robot A trong không gian W Một cấu hình q/inC là một đặc tả hoàn chỉnh một vị trí của một robot Kí hiêu O ⊂ Wcho vùng không gian chứa các chướng ngại vật Tập đóng A(q) ⊂ Wlà tập hợp của các điểm bị chiếm bởi robot khi nó di chuyển Thì, C-vùng không gian vật cản, C obs , được định nghĩa như sau:

Tập hợp của các cấu hình tránh được đụng độ với các chướng ngại vật, được gọi là không gian trống, là

Một đường đi không có trở ngại vật từ điểm khởi đầu c init = q(0) đến điểm mục tiêuc goal = q(1)là một ánh xạ liên tụcπ[0, 1] → C f ree sao choπ(0) = c init và π(1) = c goal Với một đội hai robot, ta định nghĩa một không gian trạng thái để xét cấu hình của hai robot đồng thời:

Chiều của không gian X là N, với N = dim(C 1 ) + dim(C 2 ) C-vùng không gian chướng ngại vật được định nghĩa lại như là sự kết hợp của các cấu hình đụng độ giữa robot-obstacle và các cấu hình đụng độ giữa robot-robot Tập con của X tương ứng với robot Ai va chạm với chướng ngại vật là

X obs i = {x ∈ X|A i (q i ) ∩ O 6= ∅} (3.1) Tập con của X tương ứng với robot Ai đụng độ với robot Aj như sau,

Vùng chướng ngại vật trong không gian X được định nghĩa là sự kết hợp của phương trình (3.1) và (3.2),

Bài toán: Trong không gian X f ree được mô tả như trên, xây dựng đồ thị G (V, E) đơn, vô hướng, có trọng số không âm (được viết tắt là đồ thị G) như mô tả trên; và tập 2 robot có tập điểm khởi đầu {q 1 (0), q 2 (0) | q 1 (0) ∈ V ∧ q 2 (0) ∈ V ∧ (q 1 (0), q 2 (0)) ∈ E} và tập điểm mục tiêu {q 1 (1), q 2 (1) | q 1 (1) ∈ V ∧ q 2 (1) ∈ V ∧ (q 1 (1), q 2 (1)) ∈ E}, tính các đường đi trên G {π 1 , π 2 } sao cho:

− mỗi đường là đường đi của một robot, là một dãy các đỉnh trong đó hai đỉnh liền kề bất kỳ đều tạo thành một cạnh, tức là

A 2 (q) = {q 2 (0), , q 2 (t), q 2 (t + α), , q 2 (1)} hay π 1 = hq 1 (0), , q 1 (t), q 1 (t + α), , q 1 (1)i π 2 = hq 2 (0), , q 2 (t), q 2 (t + α), , q 2 (1)i trong đó, (q 1 (t), q 1 (t + α)) ∈ E ∧ (q 2 (t), q 2 (t + α)) ∈ E, ∀t ∈ [0, 1 − α]

− Với một hằng số R được định nghĩa trước R min 6 R 6 R max thì dis{q 1 (t), q 2 (t)} = R, ∀t ∈ [0, 1]

Tìm đường đi cho hai robot đến được mục tiêu mà không có sự đụng độ với các chướng ngại vật và robot khác trong suốt quá trình di chuyển hai đối tượng luôn cách nhau một khoảng cách R(R min 6 R 6 R max )

Tính chất của bài toán

Bài toán trên có các tính chất sau:

Tính chất 1: Bài toán tìm đường ngắn nhất có và chỉ có 3 khả năng sau:

• Bài toán không tồn tại lời giải

• Bài toán có vô số đường đi và trong đó có một đường đi là đường đi ngắn nhất _ tức là lời giải

• Bài toán có duy nhất một đường đi và đó cũng là đường đi ngắn nhất

Tính chất 2: Bài toán vô nghiệm trong ba trường hợp sau:

• Hai điểm khởi đầu hoặc hai điểm mục tiêu không thỏa mãn ràng buộc khoảng cách.

• Tập điểm khởi đầu và tập điểm mục tiêu nằm ở hai thành phần liên thông khác nhau.

• Hai điểm khởi đầu hoặc hai điểm mục tiêu nằm ngược thứ tự trên cùng một đường nối nhưng không có cạnh để hai robot tránh nhau.

Tính chất 3: Nếu một đường dẫn π = hq(0), , q(i), , q(j), , q(1)i, ∀i ∈[0, 1], ∀j ∈ [0, 1] là đường đi ngắn nhất trên G(V, E, W ) từ q(0) đến q(1) thì các đường dẫn thành phần của π hq(i), , q(j)i, ∀i ∈ (0, 1), ∀j ∈ (0, 1) cũng là đường đi ngắn nhất trên G từ q(i) đến q(j).

Phần này sẽ trình bày lý thuyết về các thao tác biến đổi đồ thị, là ý tưởng chính để giải quyết bài toán đã đặt ra, xem lại các giải thuật cho bài toán tìm đường đi ngắn nhất cho một đối tượng và nêu phương pháp thu thập số liệu.

Đồ thị đường (Line graph)

Cho đồ thị G1(V 1, E1) , đồ thị đường G2(V 2, E2) của G1 là đồ thị mà:

E2 ∈ V 2 × V 2 ⇒ E2 = {(x, y, y, z), ∀(x, y) ∈ V 2 ∧ (y, z) ∈ V 2} Đồ thị đường của một đồ thị G1 là một đồ thị G2 tượng trưng cho sự liền kề giữa các cạnh của đồ thị G1 Hay đồ thị đường là đồ thị mới được tạo từ đồ thị cũ bằng cách chuyển cạnh thành đỉnh và tạo các cạnh tơưng ứng nếu các cạnh liền kề Ví dụ được thể hiện trong hình 4.1.

Ngoài ra còn có một số thao tác khác để tạo đồ thị mới từ đồ thị cũ như: đồ thị đối ngẫu (dual graph), đồ thị bù (complement graph), tích Đề-các của đồ thị (Cartesian product of graphs), tích Ten-xơ của đồ thị (Tensor product of graphs).

Hình 4.1: a) Đồ thị G1; b) Đồ thị G2 [47]

Các giải thuật tìm đường đi ngắn nhất cổ

A-sao

Giải thuật A* là một trong những giải thuật tìm kiếm tiềm năng trên không gian tìm kiếm rộng Nó là sự kết hợp giữa giải thuật duyệt theo chiều rộng trước (Breadth First Search, viết tắt là BFS) và “heuristic" để xếp loại từng nút (đỉnh) trong đồ thị theo ước lượng về tuyến đường tốt nhất đi qua nút đó Heuristic xếp hạng các nút bằng cách ước lượng đường đi tốt nhất đi qua nút đó và thuật toán này duyệt các nút theo thứ tự của đánh giá heuristic này.

Công thức điển hình được diễn đạt như sau: f (x) = g(x) + h(x)

Trong đó, f (x) là điểm được gán cho nút x, ước lượng lời giải tốt nhất đi qua nút x, g(x) là chi phí nhỏ nhất thực sự đi từ nút khởi đầu đến x và h(x) là ước lượng của chi phí đi từ x đến nút mục tiêu.

Giải thuật A* kết thúc khi hàng đợi open-list không còn phần tử nào.

Bổ đề 1: Một đường đi được lấy ra khỏi hàng đợi thì không được thêm vào hàng đợi một lần nữa ở các bước sau.

Nói một cách khác, "Nếu đường đi p = hv 0 , v 1 , , v k i là đường đi được lấy ra khỏi hàng đợi, thì p không được đưa vào hàng đợi ở các bước sau."

− Giả sử p = hv 0 , v 1 , , v k i được lấy ra khỏi hàng đợi.

− Thì p phải được thêm vào hàng đợi ở các bước trước đó.

− Thì tại bước này, v 0 phải được lấy ra từ hàng đợi và thêm vào danh sách đã duyệt close_list

− Theo giải thuât, ở 3.4 thì nếu v 0 thuộc close_list thì không thêm nó vào hàng đợi open_list, do đó, đường đi p không thể được đặt vào hàng đợi thêm một lần nữa ở bước sau. Định nghĩa: Một đỉnh v được gọi là có thể tiếp cận từ S, nếu tồn tại một đường dẫnp = hv 0 , v 1 , , v k ibắt đầu từ S và kết thúc tại v, tức làv 0 = S, v k = v và (v i , v i+1 ) ∈ E procedure A*(S, D, graph):

/* Xác định đường đi p = hv 0 = S, v 1 , , v k−1 , v k = Di trên đồ thị graph = (V, E), V là tập đỉnh và E là tập cạnh*/ begin 1 close_list := ();

2 open_list := priorityQueue; # khởi tạo hàng đợi ưu tiên từ S 3 while open_list không phải tập rỗng:

3.1 item := lấy phần tử đầu tiên trong open_list 3.2 if (item == G): return generatePath(S, D, close_list) (Xóa phần tử item trong hàng đợi open_list) 3.3 neighbors := danh sách lân cận của item 3.4 for each vertex in neighbors if vertex in close_list: continue tính lượng giá f(x) cho vertex Thêm vertex vào hàng đợi open_list 4 return failure; end;

Bảng 4.1: Mã giả thuật toán A* ương

Bổ đề 2: Nếu đỉnh v là một đỉnh có thể tiếp cận được từ S, thì v sẽ được thêm vào danh sách đã duyệt close_list sau số lần lặp cố định.

− Giả sử v có thể tiếp cận được từ S, nhưng nó không bao giờ được đặt trong danh sách đã duyệt.

− Vì v có thể tiếp cận được từ S, nên có một đường đi hv 0 , v 1 , , v k i sao cho v 0 = S, v k = v và (v i−1 , v i ∈ E.

− Gọi v i là đỉnh đầu tiên trong chuỗi trên mà không bao giờ được đưa vào danh sách đã duyệt, tức là không bao giờ được duyệt tới *

− (1) Trước đó v i chưa từng được duyệt bởi một đường dẫn khác.

• Vì v i−1 đã được đưa vào danh sách đã duyệt, nên hàng đợi nhất định đã từng chứa đường dẫn hv 0 , v 1 , , v i−1 i, với v 0 = S.

• Vì số đường đi khác nhau là một số xác định, không có đường đi nào được duyệt hai lần (bổ đề 1), v i chưa được duyệt tới (theo (1)), (v i−1 , v i ) ∈ E hayv i là láng giềng củav i−1 , nên đường dẫnhv 0 , v 1 , , v i−1 , v i i phải được đưa vào hàng đợi, và lấy ra khỏi hàng đợi sau số lần lặp xác định Điều đó có nghĩa là v i phải được duyệt tới **

Mệnh đề * và ** mâu thẫu ⇒ giả định sai ⇒ bổ đề 2 được chứng minh.

Cây tứ phân

Cây tứ phân là một cấu trúc dữ liệu phân nhánh dạng cây, được sử dụng để phân hoạch vùng không gian hai chiều hiện tại thành các vùng nhỏ hơn và dễ quản lý hơn Khác với cây nhị phân, mỗi lần phân hoạch, quadtree sẽ chia vùng hiện tại thành 4 vùng Do đó, cây tứ phân được định nghĩa là một cấu trúc cây mà mỗi node hoặc là có 4 node con hoặc là node lá, không có ngoại lệ.

Việc sử dụng Quadtree giúp chúng ta quản lý các vật cản một cách hiệu quả hơn, bằng cách phân chia vùng cần xử lý các vật cản thành những vùng con, các đối tượng sẽ được đưa vào các vùng tương ứng và được quản lý riêng biệt.

Quá trình phân chia cứ thế tiếp diễn cho đến khi mỗi vùng chỉ chứa một số lượng đối tượng nhất định hoặc mức độ phân chia đạt mức “chấp nhận được”.

Hình 4.2: Một ví dụ cây tứ phân.

Quy hoạch tuyến tính

Định nghĩa: Bài toán Quy hoạch tuyến tính dạng tổng quát có dạng: f (x) = n

X j=1 c j x j −→ min (4.1) thỏa hệ ràng buộc

Trong đó, (4.1) là hàm mục tiêu, (4.2) và (4.3) được gọi là hệ ràng buộc của bài toán c j , a ij , b j , i = 1, , m; j = 1, , n) là các hằng số cho trước.

• Mỗi vectorx = (x 1 , x 2 , , x n ) thỏa (4.2) và (4.3) được gọi là một phương án của bài toán.

• Mỗi phương án x thỏa (4.1), nghĩa là tại đó hàm mục tiêu đạt giá tị nhỏ nhất (lớn nhất) trên tập các phương án được gọi là một phương án tối ưu (PATU) của bài toán.

• Giải một bài toán quy hoạch tuyến tính là đi tìm một phương án tối ưu của nó hoặc chỉ ra rằng bài toán vô nghiệm, nghĩa là bài toán không có PATU.

Khi (4.3) là ràng buộc x j ∈Z thì đó là bài toán quy hoạch tuyến tính nguyên (ILP) Một bài toán tuyến tính nguyên mà nghiệm x j chỉ nhận hai giá trị 0 hoặc 1 được gọi là bài toán quy hoạch tuyến tính nhị nguyên.

Quy hoạch tuyến tính (LP) là một trong những cách đơn giản nhất để thực hiện tối ưu hóa Nó giúp chúng ta giải quyết một số vấn đề tối ưu hóa rất phức tạp bằng cách đưa ra một vài giả định đơn giản hóa LP là một kỹ thuật đơn giản mà ta "mô tả" các mối quan hệ phức tạp thông qua các hàm tuyến tính và sau đó tìm các điểm tối ưu Gọi là "mô tả" bởi vì các mối quan hệ thực sự có thể phức tạp hơn nhiều - nhưng chúng có thể được đơn giản hóa thành các mối quan hệ tuyến tính Đã có nhiều phương pháp để giải bài toán LP Các phương pháp phổ biến như: phương pháp đồ thị, sử dụng OpenSolver, thuật toán Simplex, phương pháp Góc Tây Bắc và phương pháp Chi phí nhỏ nhất.

Vậy nên, khi sử dụng kỹ thuật LP để đạt được lời giải tối ưu thì vấn đề mà chúng ta cần giải quyết là như thế nào để xây dựng bài toán thực tế thành một mô hình toán học Như định nghĩa mô hình bao gồm một hàm mục tiêu, các phương trình hay bất phương trình tuyến tính tuân theo các ràng buộc.

Luận văn này sử dụng kỹ thuật ILP để so sánh với phương pháp của tác giả luận văn Bài toán ILP được giải bằng solver GLPK phiên bản 4.45 và ngôn ngữ mô hình hóa GNU MathProg [41].

Các thuật ngữ phổ biến được dùng trong LP

• Biến quyết định: Các biến quyết định là các biến sẽ quyết định đầu ra (output) Giá trị biến quyết định diễn đạt cho giải pháp tối ưu Để giải quyết bất kỳ bài toán nào, các biến quyết định cần được xác định trước tiên.

• Hàm mục tiêu: Nó được định nghĩa là mục tiêu đưa ra quyết định.

• Ràng buộc: Các ràng buộc là những hạn chế hoặc giới hạn đối với các biến quyết định, thường giới hạn giá trị của các biến quyết định.

• Các giới hạn không âm: Đối với tất cả các LP, các biến quyết định nênên có các giá trị không âm, nghĩa là các giá trị cho các biến quyết định phải lớn hơn hoặc bằng 0.

Quy trình xây dựng một bài toán LP

1 Xác định các biến quyết định.

3 Chú ý đến các ràng buộc 4 Nêu rõ giới hạn không âm Để một bài toán là LP thì các biến quyết định, hàm mục tiêu và ràng buộc tất cả phải là các hàm tuyến tính.

Mô hình tuyến tính nhị nguyên cho bài toán tìm đường ngắn nhất một đối tượng

Cho bài toán tìm đường đi ngắn nhất cho một đối tượng trên đồ thị G (V, E) có trọng số w ij ∀ij ∈ E từ đỉnh bắt đầu s đến đỉnh mục tiêu d.

Ta có định nghĩa của biến x ij: x ij =

 1, nếu đường đi có đi qua cạnh ij 0, ngược lại

Ta có công thức để tính toán lượng lưu lượng tại mỗi nút đơn i b(i) = Lượng lưu lượng đi từ i −Lượng lưu lượng vào đến i

Bài toán đường đi ngắn nhất được biểu diễn dưới dạng mô hình toán học theo quy hoạch nguyên tuyến tính như sau:

Tối thiểu hóa X ij∈E w ij x ij thỏa mãn b(i) =

Phương pháp biến đổi đồ thị kết hợp cây tứ phân

Chương này sẽ trình bày giải pháp đề xuất cho bài toán đã đặt ra Phần 5.1 sẽ mô tả cụ thể đồ thị G được quy dẫn thành đồ thị H như thế nào để giải quyết vấn đề đã đặt ra hai robot luôn luôn có ràng buộc khoảng cách với nhau trong khi di chuyển và cho phép một trong hai robot dừng Phần 5.2 sẽ trình bày hàm heuristic được chọn cho A*, và với cách chọn này A* được chứng minh là tìm được đường đi tối ưu và đầy đủ Phần 5.3 giải quyết bài toán làm sao để xây dựng đồ thị G biểu diễn cho môi trường hoạt động của hai robot Luận văn này tiếp cận theo hướng Cell Decomposition, cụ thể là phương pháp cây tứ phân Phần 5.4 xây dựng mô hình tuyến tính nhị nguyên cho bài toán tìm đường đi ngắn nhất trên đồ thị cho hai đối tượng có ràng buộc về khoảng cách để so sánh nghiệm tối ưu với giải pháp H.

Hình 5.1 thể hiện ý tưởng tổng quát của giải pháp được trình bày trong luận văn này.

• Bước 1: Hướng tiếp cận quadtree để phân tách không gian hoạt động thành hai vùng không gian có chứa vật cản C obs và vùng không gian không chứa vật cản C f ree bằng một đường biên xấp xỉ

• Bước 2: Xây dựng đồ thị G trong C f ree dựa vào các node trắng của quadtree và biến đổi về đồ thị H

Hình 5.1: Outline của giải pháp được đề xuất.

• Bước 3: Áp dụng giải thuật tìm đường A* trên đồ thị H như bài toán cổ điển tìm đường ngắn nhất trên đồ thị cho một đối tượng Từ kết quả đó dùng phép quy đổi ngược với bước 2 để trả về lời giải là cặp đường đi cho hai robot tự hành trên đồ thị G Và đó cũng là lời giải cho bài toán đã đặt ra ban đầu.

Như vậy, chúng ta đã đưa Bài toán 1 (bài toán tìm đường tránh vật cản cho hai robot tự hành có ràng buộc khoảng cách trong không gian tĩnh hai chiều) về Bài toán 2 (bài toán tìm đường ngắn nhất trên đồ thị cho hai robot tự hành có ràng buộc khoảng cách — luôn cách nhau một cạnh) Hay nói một cách khác, luận văn này được chia thành hai phần: phần 1 - xây dựng roadmap, phần hai - tìm đường ngắn nhất hai đối tượng trên đồ thị.

Phương pháp biến đổi đồ thị

Ý tưởng của thuật toán: Thay đổi tập đỉnh, cạnh, trọng số của các cạnh của đồ thị G để thu được đồ thị H sao cho: (i) hai robot có thể di chuyển trên H như một đối tượng ; do đó ta có thể áp dụng A* cho H để tìm đường đi ngắn nhất giữa hai đỉnh bất kì trong H và (ii) đường đi ngắn nhất giữa hai đỉnh bất kì của H cũng chính là cặp đường đi ngắn nhất giữa hai cặp đỉnh tương ứng của G.

Các bước để thực hiện ý tưởng trên là một phép quy dẫn (reduction) từ đồ thị G(V, E, W ) về đồ thịH(V H , E H , W H ) có tập đỉnh, tập cạnh và trọng số của cạnh được xác định như sau:

Thêm khuyên cho mọi đỉnh v ∈ V, hay thêm vào tập láng giềng của v một phần tử là chính nó tạo thành cạnh (v,v) Tập cạnh của đồ thị G được mở rộng thành E ∩ {(v, v), ∀v ∈ V }

Tập đỉnh của đồ thị H là tập cạnh có quan tâm thứ tự của đồ thị G Hình 5.2a, đồ thị G có cạnh 01 thì đồ thị H 5.2c có hai đỉnh 0_1 và 1_0.

Hai đỉnh (v, w) ∈ V H và (x, y) ∈ V H có cạnh nối khi (x,v), (y,w), (x,y) là các cạnh trong G, trong đó có hai trường hợp đặc biệt: i) nếu x ≡ v thì y 6= w để tránh trường hợp hai đối tượng cùng dừng. ii) nếu x 6= v thì (x, y) 6= (w, v), ví dụ hình 5.2c hai đỉnh 0_1 và 1_0 trong đồ thị H thì không có cạnh nối Điều này có nghĩa là khi robot 1 đang ở đỉnh 0 và robot hai đang ở đỉnh 1 thì chúng không thể đổi chỗ cho trực tiếp cho nhau, vì trong không gian tĩnh hai chiều W ⊂ R 2 robot 1 di chuyển đến đỉnh 1 trong khi robot 2 di chuyển đến đỉnh 0 sẽ xuất hiện đụng độ.

Tập cạnh của đồ thị H đươc xác định như sau:

Trọng số của cạnh (v, w) → (x, y) của đồ thị H được xác định bằng cách tính tổng độ dài đường đi robot 1 di chuyển từ v đến x và độ dài đường đi robot 2 di chuyển từ w đến y

Như vậy, phương pháp này cho phép một đối tượng dừng lại chờ đối tượng kia, đồng thời chúng luôn luôn có kết nối với nhau về khoảng cách Xét trường hợp đồ thị G có dạng như hình 5.3 Hình 5.3c cho thấy đồ thị H đạt được sau phép quy dẫn từ đồ thị G Hình 5.3d minh họa đường đi của hai robot, trong đó,

- đường đi của robot một màu xanh π 1 = hv0, v1, v3, v3i - đường đi của robot hai màu đỏ π 2 = hv5, v5, v1, v2i Để đảm bảo đường đi ngắn nhất giữa bất kì hai đỉnh (s 1 , s 2 ), (d 1 , d 2 )nào trongH cũng là hai đường đi ngắn nhất giữa s 1 , d 1 và s 2 , d 2 ) trong G và ngược lại,

(b) Đồ thị G thêm khuyên (c) Đồ thị H

Hình 5.2: Một trường hợp quy dẫn đồ thị H từ đồ thị G

(a) Đồ thị G với 6 đỉnh (b) Đồ thị G thêm khuyên

(d) Đường đi trên đồ thị G của hai robot

Hình 5.3: Một trường hợp một trong hai robot dừng ta phải đảm bảo:

Nếu P 1 (s 1 , d 1 ), P 2 (s 2 , d 2 ) và Q 1 (s 1 , d 1 ), Q 2 (s 2 , d 2 ) là hai cặp đường đi giữa cặp điểm khởi đầu (s 1 , s 2 ) và cặp điểm mục tiêu (d 1 , d 2 ) thỏa mãn

Như vậy, quan hệ "ngắn hơn" giữa hai cặp đường đi bất kì với cùng cặp điểm khởi đầu và cặp điểm mục tiêu phải được bảo toàn khi ta quy dẫn G về H. Chúng tôi đã đảm bảo điều này bằng cách chọn tập đỉnh, tập cạnh và trọng số của cạnh của H như trên Ta sẽ chứng minh:

Bổ đề 1: Nếu trong G cặp đường đi

P 2 = hs 2 = p 1 2 , p 2 2 , , p k 2 = d 2 i có quan hệ ngắn hơn

Q 2 = hs 2 = q 1 2 , q 2 2 , , q 2 k = d 2 i thì trong H đường đi

P = h(s 1 , s 2 ) = (p 1 1 , p 1 2 ), (p 2 1 , p 2 2 ), , (p k 1 , p k 2 ) = (d 1 , d 2 )i có quan hệ "ngắn hơn" đường đi

Chứng minh Từ điều kiện nếu cặp đường đi P 1 , P 2 có quan hệ ngắn hơn cặp đường đi Q 1 , Q 2 , tức là

Phép quy dẫn này đảm bảo được tính liên thông giữa hai cặp đường đi trong đồ thị G và tính liên thông của đường đi tương ứng trong H Ta sẽ chứng minh:

Bổ đề 2: Nếu trong G có cặp đường đi P 1 = hv, xi, P 2 = hw, yi, thì trong H đỉnh (v,w) liên thông đỉnh (x,y).

Chứng minh: Từ điều kiện nếu ta suy ra (x, v) ∈ E ∧ (y, w) ∈ E ∧ (x, y) ∈ E ∧ (v, w) ∈ E Do đó, (v, w) và (x, y) là hai đỉnh có cạnh nối trong đồ thị H(đpcm).

Bổ đề 3: Nếu trong G, s 1 liên thông d 1 , s 2 liên thông d 2 và thỏa mãn điều kiện ràng buộc khoảng cách, thì trong H đỉnh (s 1 , s 2 liên thông đỉnh (d 1 , d 2 ). Chứng minh:Từ điều kiện nếu ta suy ra trong G tồn tại hai đường đi

P 2 = hs 2 = p 1 2 , p 2 2 , p 3 2 , , p k−1 2 , p k 2 = d 2 iVì bất kì hai đỉnh liền kề trong P 1 và P 2 thì có cạnh nối, ta có các cặp đỉnh sau là có cạnh nối trong H:

Do đó, trong H tồn tại một đường dẫn

Hay trong H, đỉnh (p 1 1 , p 1 2 ) liên thông đỉnh (p k 1 , p k 2 ) , tức là đỉnh (s 1 , s 2 liên thông đỉnh (d 1 , d 2 ) (đpcm).

Phép quy dẫn này có độ phức tạp thời gian đa thức là O(E), với E là số cạnh của đồ thị G Bởi vì, bước quy dẫn tập đỉnh V H có thời gian O(2E), bước quy dẫn tập cạnh E H có thời gian O(4E), bước tính trọng sốW H có thời gianO(2E) Như vậy, phương pháp này có độ phức tạp thời gian đa thức với số cạnh đồ thị G.

Áp dụng giải thuật A* trên đồ thị H

A* là một thuật toán tìm kiếm trong đồ thị, sử dụng một "đánh giá heuristic" để xếp loại từng đỉnh theo ước lượng về tuyến đường tốt nhất đi qua đỉnh đó.

Vậy "heuristic" là gì? Heuristic là phương pháp giải quyết vấn đề dựa trên phỏng đoán, ước chừng, kinh nghiệm, trực giác để tìm ra giải pháp gần như là tốt nhất, nhanh chóng, dễ dàng Hàm Heuristic là gì? Hàm Hueristic là hàm ứng với mỗi trạng thái hay mỗi sự lựa chọn một giá trị ý nghĩa đối với vấn đề dựa vào giá trị hàm này ta lựa chọn hành động.

Gọi f(x) là tổng chi phí của đường đi từ đỉnh khởi đầu đến đỉnh mục tiêu thông qua đỉnh x tại thời điểm hiện tại A* quyết định thứ tự ưu tiên gán cho một đường đi có đi qua đỉnh x hay không bởif(x), tổng chi phí này được phân tích thành: f (x) = h(x) + g(x) Trong đó, g(x) là chi phí đường đi hay tổng khoảng cách Euclid từ đỉnh khởi đầu đến đỉnh x.g(x) = g 1 (x) + g 2 (x) g 1 (x), g 2 (x)lần lượt là tổng khoảng cách Euclid từ đỉnh khởi đầu đến đỉnh x của robot 1, robot 2. h(x) là ước lượng khoảng cách đường chim bay hay độ đo Euclid từ đỉnh x đến đỉnh mục tiêu h(x) = h 1 (x) + h 2 (x) h 1 (x), h 2 (x)lần lượt là ước lượng khoảng cách đường chim bay hay độ đo Euclid từ đỉnh x đến đỉnh mục tiêu của robot 1, robot 2.

Với cách chọn hàm g(x) và h(x) như trên ta có thể chứng minh được A* là tối ưu và đầy đủ.

Peter Hart, Nils Nilsson, và Bertram Raphael [38] (1968) đã chứng minh rằng nếu hàm heuristic h có tính chất thu nạp được (admissible), thì A* có tính chất thu nạp được (hay tối ưu) h có tính chất thu nạp được khi và chỉ khi h có tính chất đơn điệu (hay nhất quán) hay Phát biểu một cách hình thức, với mọi đỉnh A, B, trong đó B là đỉnh tiếp theo của A thì: f(B)> f (A) h(B) + g(B)> h(A) + g(A) (5.1) g(B ) = g(A) + Euclid(A, B) (5.2)

Thay 5.2 vào 5.1, ta được h(B) + g(A) + Euclid(A, B)> h(A) + g(A) h(B) + Euclid(A, B )> h(A)

BG + AB > AG luôn đúng theo định lý tam giác Vậy, h(x) có tính chất thu nạp được, A* là tối ưu.

Hình 5.4: Hình ảnh minh họa

A* có độ phức tạp thời gian là O(b d , với b là số bậc tối đa của đồ thị H, d là số bước di chuyển của đường đi tối ưu (solution depth), phụ thuộc vào input.

Biểu diễn môi trường hoạt động của robot

Biểu diễn môi trường bằng cây tứ phân

Để phân vùng không gian hai chiều đề tài sử dụng cấu trúc dữ liệu phân cấp cây tứ phân (Quadtrees) Cấu trúc này được hiện thực như một cách để phân chia không gian cấu hình trống với các vùng chứa vật cản Nhờ sự phân chia này mà đồ thị được xây dựng sẽ chỉ nhúng trong vùng không gian trống và tận dụng tối đa vùng không gian này Từ đó, việc tìm đường cho robot trên đồ thị có thể xem nhiệm vụ tránh vật cản như "hộp đen" Phương pháp này phân chia một cách đệ quy không gian cấu hình bằng phương pháp tứ giác, tức là một tứ giác đều được phân chia một cách đệ quy thành bốn hình vuông khác Ta gọi mỗi ô vuông là 1 cell Sau đó gắn nhãn các cell này là FULL, FREE hoặc MIXED.

• FULL nếu cell được chứa hoàn toàn trong một hoặc một phần vật cản.

• FREE nếu bên trong cell không chứa bất kì vật cản nào.

• MIXED nếu bên trong nó vừa chứa vật cản hoặc một phần vật cản vừa chứa không gian trống.

Tiếp tục lặp cho đến khi tất cả các ô MIXED được phân tách thành các ô FULL hoặc FREE Nếu một ô là FULL thì thuật toán sẽ không làm gì cả.

Các ô được gắn nhãn FREE được thêm vào tập hợp các ô trống, C f ree Các ô FREE được phân chia tiếp nếu kích thước cạnh của nó còn lớn hơn R max Điều này đảm bảo rằng khi hai robot di chuyển trên đồ thịG quadtree luôn cách nhau một cạnh thì trong môi trường hoạt động chúng luôn cách nhau một khoảng R sao cho R min 6 R 6 R max Các bước phân chia và hình thành cây tứ phân được minh họa ở hình 5.5 và 5.6.

Thông thường , mỗi node của cây tứ phân được lưu trữ như một bản ghi với sáu trường, năm trong số đó là con trỏ (tới chính nó, phần tư NW, NE, SW và SE) và thứ sáu là trạng thái của mỗi phần tư FULL, FREE hoặc MIXED.

Tuy nhiên, cây tứ phân có thể được biểu diễn mà không dùng con trỏ bằng cách mã hóa mỗi ô FREE với một số nguyên hệ tứ phân có chữ số phản ánh sự phân chia phần tư liên tiếp Cây tứ phân được lưu theo cách này được gọi

Hình 5.6: a) Bước 4; b) Bước 5; c) Bước 6 là "linear quatree" [36] chứng minh rằng nó tốn ít hơn 66 % bộ nhớ để lưu trữ so với dùng con trỏ Kỹ thuật này được đề xuất bởi Gargantini (1982) và ngày càng được sử dụng nhiều hơn nhờ tính tiết kiệm không gian bộ nhớ máy tính Luận văn này ứng dụng cấu trúc "linear quadtree" với các tính chất sau:

(i) Chỉ lưu các node màu trắng

(ii) Mã hóa được sử dụng cho mỗi node kết hợp các tính chất kề trong bốn hướng chính.

(iii) Cách biểu diễn mỗi node ngầm mã hóa đường dẫn từ gốc đến node đó.

Từ đó đạt được các lợi ích:

• Độ phức tạp thời gian và không gian bộ nhớ chỉ phụ thuộc vào số node trắng

• Con trỏ được loại bỏ

Mã hóa node trắng theo các quy ước sau: Phần tư NW được mã hóa với 0, NE với 1, SW với 2 và SE với 3

Hình 5.7: Mã hóa cây tứ phân

Giải thuật tìm cell lân cận

Định nghĩa 3: Tâm c của cell được xem là giao điểm của hai đường chéo của ô vuông Định nghĩa 4: Thế nào là hai cell lân cận? Hai cell lân cận là hai cell FREE có chung một cạnh

Ta gọi bốn bên của một khối vuông là N, E, S và W, và bốn con của khối được diễn tả theo thứ tự là các phần tư NW, NE, SW, SE như hình5.8 Bốn bên của khối vuông được đặt tên và cũng là bốn hướng theo đường ngang và dọc Để diễn đạt cho các phép tính giữa các phần tư và bốn bên, ta định

Hình 5.8: Các cạnh bên nghĩa các vị từ và hàm sau:

Hàm SONTYPE (P, I) xác định một phần tư trong node P là phần tư nào trong quan hệ với cha nó SONTYPE (P, NW) = NW

ADJ(B, I ) → {T rue, F alse} ADJ (B, I) = T rue khi và chỉ khi phần tư I thì kề với đường biên bên B của một khối vuông Ví dụ: ADJ (W, SW ) = T rue,ADJ(W, SE) = F alse.

REF LECT (B, I) → {N W, N E, SW, SE} trả về giá trị SONTYPE của ô vuông cùng kích thước mà liền kề về hướng B với ô vuông có giá trị SONTYPE là I REF LECT (N, SW ) = N W.

COM M ON SIDE(Q1, Q2) → {N, SW, E} COMMONSIDE có kết quả là giá trị đường biên của khối vuông mà phần tư Q1 và Q2 có chung Ví dụ:

COM M ON SIDE(SW, N W ) = W Nếu Q1 và Q2 không phải là hai phần tư liền kề, hoặc nếu chúng giống nhau, thì giá trị của COMMONSIDE không xác định.

OP QU AD(Q) → {N W, N E, SW, SE} OPQUAD(Q) là phần tư mà không có chung đường biên với phần tư Q, hay là phần tư không liền kề với phần tư Q, ví dụ: OP QU AD(SW ) = N E Bảng 5.1 - 5.4 thể hiện các định nghĩa mối quan hệ ADJ, REFLECT, OPQUAD, and COMMONSIDE Ωtương ứng với một giá trị không xác định.

Cho một node A tương ứng với một khối vuông cụ thể trong không gian cấu hình, lân cận cùng kích thước theo chiều dọc và chiều ngang của node A được xác định bằng cách tìm tổ tiên chung gần nhất của A và lân cận Tổ tiên chung gần nhất được xác định dựa vào hướng muốn tìm lân cận của A, chẳng hạn như, lân cận về phía đông (đường biên E) của A, thì tổ tiên chung gần nhất chỉ có thể đạt được từ phần tư con NW hoặc SW Xét trường hợp như trong hình 5.9, lân cận về phía đông của node A là node G Từ node A đi ngược lên node cha của nó cho đến khi tìm được tổ tiên chung gần nhất là node D A là phần tư NE của B (đánh số 1) hay từ A đi theo link NE để đếnB Sau đó, theo link NE để đến C (2), theo link NW để đến D (3) Vì muốn tìm lân cận của A về phía đông nên node D đạt được từ phần tư NW là tổ tiên chung gần nhất Điều này có thể xác định bằng vị từ ADJ(B, I) Sau khi xác định được tổ tiên chung thì để đến được lân cận G, giải thuật sẽ đi theo các link phản chiếu của 3,2,1 Cụ thể là, theo link NE để đến E (4), theo linkNW để đến F (5), theo link NW để đến G (6) Hình 5.9 thể hiện lân cận củaA về phía đông được xác định như thế nào.

Hình 5.9: Quá trình xác định lân cận phía đông của node A (tức node G)

Giả định rằng lân cận theo hướng được chỉ định thực sự tồn tại (nghĩa là, chúng ta đang xét không phải là đường biên của không gian cấu hình), ta có thuật toán tìm lân cận cùng kích thước theo bốn hướng ngang hoặc dọc như bảng 5.5 bên dưới:

Nhưng không phải lúc nào node láng giềng của một node A cũng có cùng kích thước với nó, thường là trường hợp láng giềng của một node khác kích thước nó Trong trường hợp này ta nói rằng giải thuật sẽ tìm láng giềng cuối là láng giềng có kích thước bằng hoặc lớn hơn nó Nếu node láng giềng là vật cản(status = FALSE) thì A không có láng giềng về hướng đó Nếu A liền kề với đường biên của không gian cấu hình và đang tìm láng giềng về hướng biên đó thì A cũng không có láng giềng về hướng này Giải thuật trả về NULL trong trường hợp A không có láng giềng Code tổng quát mô tả thuật toán tìm láng giềng có kích thước bằng hoặc lớn hơn một node cho trước theo chiều ngang hoặc dọc trong bảng 5.6. procedure EQUAL_ADJ_NEIGHBOR(P, D):

/* Xác định node láng giềng cùng kích thước của P theo hướng D (dọc hoặc ngang), nếu không tồn tại láng giềng thì return NULL */ begin node P; direction D; return (SON(if ADJ(D, SONTYPE( /* Tìm tổ tiên chung gần nhất */ then EQUAL-ADJ-NEIGHBOR(FATHER(P), D) else FATHER(P),

REFLECT(D, SONTYPE(P))/* Đi theo đường phản chiếu để đến vị trí láng giềng */ end;

Bảng 5.5: Mã giả thuật toán tìm láng giềng trong cây tứ phân

"Định lý 1: Số node trung bình được truy cập bởi EQUAL_ADJ_NEIGHBOR(P, D) bị giới hạn trên bởi 4"

"Định lý 2: Số node trung bình được truy cập bởi GTEQUAL_ADJ_NEIGHBOR(P,D) bị giới hạn trên bởi 5"

Bản đồ đường đi (Path Connectivity Graph)

Đồ thị G = (V, E, W ) được xây dựng từ cây tứ phân (2 n , n là số chiều của không gian môi trường di chuyển của hai robot), với:

- Tập đỉnh V = { tâm c i của các EMPTY cell } - Tập cạnh E = { với mỗi cell xét các cell lân cận của nó, nếu đường nối tâm u của nó với tâm v của cell lân cận đang xét không cắt obstacle nào thì ta được cạnh (u, v)}

- Trọng số của cạnh (u, v) là khoảng cách euclid của hai đỉnh u, v trong không gian hoạt động. node GTEQUAL_ADJ_NEIGHBOR(P, D):

/* Xác định node láng giềng của P theo hướng D (dọc hoặc ngang), nếu không tồn tại láng giềng thì return NULL */ begin node P; direction D; node Q; if not NULL(FATHER(P)) and ADJ(D, SONTYPE(P)) then

/* Tìm tổ tiên chung gần nhất */

Q ← GTEQUAL_ADJ_NEIGHBOR(FATHER(P), D) else Q ← FATHER(P);

/* Đi theo đường phản chiếu để đến vị trí láng giềng */ while not NULL(Q) and not HAVECHILDREN(Q) then Q ← SON(Q, REFLECT(D, SONTYPE(P))) return Q; end;

Bảng 5.6: Mã giả thuật toán tìm láng giềng trong cây tứ phân

Xây dựng mô hình tuyến tính nhị nguyên

cho bài toán tối ưu tìm đường hai đối tượng

Hàm mục tiêu: Tối thiểu hóa X

Tập EE, EV được định nghĩa như sau:

EV := {(u, v) : (u, v) ∈ F ullEV ∧ R min ≤ EW [u, v] ≤ R max } EE1 := {(u1, u2, v1, v2) : (u1, u2) ∈ EV, (v1, v2) ∈ EV, (u1, v1) ∈ F ullEV, (u2, v2) ∈ F ullEV }

Giải pháp đề xuất được hiện thực bằng ngôn ngữ Python, đã chạy mô phỏng và thực quan trên máy tính Core(TM) i5-3317U, 4GB Ram, hệ điều hànhUbuntu 16.4 Phần thực nghiệm sẽ tập trung vào hai khía cạnh là chất lượng lời giải và thời gian thực thi.

Tập dữ liệu

Tập dữ liệu được sinh ra dựa vào thư viện Python để thao tác và phân tích thống kê các đồ thị, đó là công cụ graph_tool Các dạng đồ thị sinh bởi graph_tool được sử dụng trong luận văn này:

• Đồ thị hình học (geometric graph) (Hình 6.1a) công cụ graph_tool cho phép sinh ra một mạng lưới hình học từ tập điểmN −chiều Các điểm này là đỉnh của đồ thị Các cặp đỉnh có khoảng cách euclid nhỏ hơn tham số radius(f loat) được người dùng truyền vào sẽ tạo thành một cạnh Trong luận văn này chỉ sử dụng các tập điểm 2 chiều.

• Đồ thị tam giác (delaunay triangulation graph) (Hình6.1b)"triangulation" ở đây là sự phân chia của bao lồi (convex hull) của một tập điểm thành các tam giác, chỉ sử dụng tập đỉnh của các tam giác, các điểm không là đỉnh của tam giác bị loại bỏ "delaunay" nghĩa là bất kì một tam giác nào cũng không chứa đỉnh của một tam giác khác bên trong nó.

• Đồ thị vòng (circular graph)(Hình 6.1c) công cụ này cho phép tạo ra đồ thị vòng với số đỉnh láng giềng gần nhất bằng nhau với mọi đỉnh.

(a) Đồ thị hình học (b) Đồ thị tam giác hóa không lồng nhau

(c) Đồ thị vòng với 30 đỉnh (d) Đồ thị lưới hai chiều 10x10

Hình 6.1: Các dạng đồ thị

• Đồ thị lưới (lattice) (Hình 6.1d)đồ thị được tạo ra là đồ thị dạng lưới vuông

Tập dữ liệu được sinh ra bằng cách tăng dần số đỉnh và thay đổi các điều kiện có cạnh nối giữ các đỉnh để sinh ra tập đồ thị từ nhỏ đến lớn, từ thưa đến dày.

Các tham số và cài đặt ban đầu

Các tham số sử dụng trong quá trình thực nghiệm được giải thích như sau:

• threshold của quadtree: một ô FREE sẽ tiếp tục được chia bốn nếu cạnh của nó lớn hơn threshold Tham số này là R max trong bài toán thực tế.

• radius của đồ thị hình học: Graph_tool tạo đồ thị dạng đồ thị hình học bằng cách sinh ra tập đỉnh trước, mỗi đỉnh sẽ có cạnh nối với các đỉnh khác nằm trong khoảng cách bán kính này Khi tạo tập dữ liệu thực nghiệm ứng với bài toán đã đặt ra, tham số radius là R max

Kết quả thực nghiệm

Bảng 6.1 trình bày kết quả đánh giá thời gian thực thi toàn cảnh của giải pháp tìm đường trên đồ thị quy dẫn H kết hợp cây tứ phân Với kích thước môi trường hoạt động là 3200x3200 pixel, threshold của quadtree là 40 pixel, thì đồ thị G có tối thiểu là 16384 đỉnh và 32512 cạnh Các cột ở bảng 6.1 có nghĩa là: n_obs: số vật cản trong môi trường hoạt động d_obs: mật độ vật cản hay số vật cản trung bình trên một đơn vị diện tích môi trường hoạt động n_v: số đỉnh của đồ thị G v_e: số cạnh của đồ thị G V_H: số đỉnh của đồ thị quy dẫn H E_H: số cạnh của đồ thị quy dẫn H q_tree: Thời gian thực thi bước 1 (outline) cho cây tứ phân H: Thời gian thực thi bước 2 (outline) - sinh đồ thị G trong C f ree và biến đổi về đồ thị H

A*: Thời gian thực thi bước 3 (outline) cho thuật toán tìm đường A*

Tổng: Tổng thời gian thực thi để tìm lời giải cho bài toán 1 (bài toán tìm đường tránh vật cản cho hai robot tự hành có ràng buộc khoảng cách trong không gian tĩnh hai chiều) path_l: độ sâu của lời giải, số cặp đỉnh (đồ thị G) của lời giải.

Như đã phân tích ở chương 3, giải pháp có thời gian thực thi đa thức với số cạnh của đồ thị G Hình 6.2 cho thấy sự thay đổi của thời gian thực thi khi số vật cản tăng làm cho số đỉnh và số cạnh của đồ thị G thay đổi Khi số lượng vật cản tăng từ 0 đến khoảng 12000 làm số cạnh của đồ thị G tăng từ hơn 32000 lên hơn 51000 thì tổng thời gian thực thi là một đường thẳng vì sự chênh lệch rất nhỏ Điểm cực đại của số cạnh của đồ thị G thể hiện ở input thứ 38 Khi số lượng vật cản lớn hơn khoảng 12000 thì số cạnh của đồ thị G bắt đầu giảm, và với sự giảm này tổng thời gian vẫn là một đường thẳng Kết luận: thứ nhất, tổng thời gian thực thi tìm lời giải cho bài toán 1 là ổn định; thứ hai, tính liên thông của đồ thị G tăng khi số lượng vật cản tăng đến một ngưỡng nào đó, khi vượt qua ngưỡng đó thì đồ thịG mất dần tính liên thông.

Hay quadtree không có tính đầy đủ, nhưng hiệu quả với mật độ vật cản nhỏ hơn 0.3.

Hình 6.2: Biểu đồ đánh giá thời gian thực thi khi số vật cản tăng làm số cạnh của G thay đổi

Bảng 6.1: Kết quả thực nghiệm bài toán tìm đường tránh vật cản trong không gian tĩnh hai chiều n_obs d_obs Đồ thị G Đồ thị H Thời gian thực thi path_l n_v n_e V_H E_H q_tree H A* Tổng

2 10 0.0001 16404 32552 65104 258420 0.155 1.992 0.494 2.641 773 100 0.001 16582 32908 65816 261618 0.119 2.03 9.666 11.815 1914 200 0.002 16777 33290 66580 264992 0.13 2.057 0.34 2.527 725 300 0.0029 16976 33679 67358 268384 0.124 2.079 0.634 2.837 986 400 0.0039 17170 34060 68120 271810 0.14 2.083 9.473 11.696 2367 500 0.0049 17350 34410 68820 274872 0.147 2.086 2.017 4.25 1408 600 0.0059 17566 34826 69652 278500 0.145 2.12 1.031 3.296 1299 700 0.0068 17755 35178 70356 281500 0.155 2.166 0.26 2.581 7110 800 0.0078 17919 35489 70978 284202 0.169 2.246 1.302 3.717 9411 900 0.0088 18120 35860 71720 287224 0.158 2.197 0.463 2.818 9512 1000 0.0098 18294 36198 72396 290258 0.163 2.653 0.478 3.294 7213 1100 0.0107 18516 36623 73246 293946 0.161 2.336 7.972 10.469 17814 1200 0.0117 18661 36865 73730 295702 0.169 2.371 0.253 2.793 9215 1300 0.0127 18872 37268 74536 299214 0.186 2.412 0.936 3.534 12416 1400 0.0137 19045 37576 75152 301690 0.187 2.431 90.839 93.457 35917 1500 0.0147 19200 37870 75740 304188 0.201 2.597 3.925 6.723 17618 1600 0.0156 19385 38164 76328 306208 0.191 2.563 32.841 35.595 27619 1700 0.0166 19573 38538 77076 309762 0.188 2.537 4.841 7.566 19820 1800 0.0176 19702 38703 77406 310388 0.198 2.609 7.769 10.576 17721 2000 0.0195 20112 39442 78884 316196 0.213 2.532 115.764 118.509 34422 2200 0.0215 20468 40080 80160 321646 0.221 2.577 1.749 4.547 11623 2400 0.0234 20750 40509 81018 324192 0.231 2.571 0.21 3.012 6824 2600 0.0254 21038 40991 81982 327984 0.228 2.602 48.618 51.448 34025 2800 0.0273 21376 41571 83142 332504 0.237 2.673 3.329 6.239 15126 3000 0.0293 21709 42081 84162 336188 0.262 2.687 0.203 3.152 9927 3200 0.0313 22043 42645 85290 339968 0.265 2.757 1.223 4.245 12628 3500 0.0342 22489 43321 86642 344638 0.278 2.729 23.004 26.011 23329 4000 0.0391 23233 44444 88888 352008 0.303 2.829 0.493 3.625 7030 4500 0.044 23841 45180 90360 355256 0.318 2.876 23.319 26.513 24331 5000 0.0488 24582 46319 92638 363176 0.348 2.967 1.68 4.995 110 n_obs d_obs Đồ thị G Đồ thị H Thời gian thực thi path_l n_v n_e V_H E_H q_tree H A* Tổng

Bảng 6.2 trình bày kết quả đánh giá phương pháp biến đổi đồ thị (được ghi tắt làH) so với phương pháp ILP cho bài toán số 2 - một bài toán tối ưu dựa trên tập dữ liệu là dạng đồ thị hình học - dày Về chất lượng lời giải, phương pháp biến đổi đồ thị cho lời giải tốt nhất theo tiêu chuẩn là ngắn nhất về mặt khoảng cách như phương pháp ILP Solver GLPK phiên bản 4.45 cho kết quả như phương pháp đề xuất Hình 6.3 cho thấy thời gian thực thi của phương pháp biến đổi đồ thị tốt hơn hẳn phương pháp ILP Với đồ thị dày thì phương pháp biến đổi đồ thị có thời gian thực thi gần như là đường thẳng đến khi số đỉnh - số cạnh đồ thị G là 150 - 5600, sau đó mới tăng nhanh, trong khi phương pháp ILP "intractable" khi số đỉnh - số cạnh đồ thị G là 60 - 815.

Bảng 6.2: Kết quả thực nghiệm bài toán tìm đường ngắn nhất cho hai đối tượng trên đồ thị (kiểu đồ thị hình học - dày)

Input số đỉnh số cạnh Độ dài lời giải Thời gian (giây)

Input số đỉnh số cạnh Độ dài lời giải Thời gian (giây)

Bảng 6.3 trình bày kết quả đánh giá cho bài toán 2 giữa phương pháp biến đổi đồ thị (được ghi tắt là H) so với phương pháp ILP Về chất lượng lời giải,phương pháp biến đổi đồ thị cho lời giải tốt như phương pháp ILP theo tiêu chuẩn là ngắn nhất về mặt khoảng cách.(Ghi chú: Solver GLPK phiên bản4.45 cho kết quả như phương pháp đề xuất) Hình 6.4 cho thấy thời gian thực thi của phương pháp biến đổi đồ thị tốt hơn hẳn phương pháp ILP Khi số cạnh của đồ thị G tăng từ 9 đến khoảng 2000, thời gian thực thi của phương pháp biến đổi đồ thị có dạng một đường thẳng, thời gian thực thi của phương pháp ILP có dạng một đường cong parabol hướng lên.

Hình 6.3: Biểu đồ đánh giá thời gian thực thi của phương pháp H và phương pháp ILP dựa trên dạng đồ thị hình học - dày

Bảng 6.3: Kết quả thực nghiệm bài toán tìm đường ngắn nhất cho hai đối tượng trên đồ thị (kiểu đồ thị hình học - thưa)

Input số đỉnh số cạnh Độ dài lời giải Thời gian (giây)

Input số đỉnh số cạnh Độ dài lời giải Thời gian (giây)

Ngày đăng: 09/09/2024, 00:13

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w