Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 57 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
57
Dung lượng
7,55 MB
Nội dung
Luận văn tốt nghiệp GVHD: HUỲNH VĂN ĐỨC PHẦN I : LÝ THUYẾT CHƯƠNG I : Ý TƯỞNG VÀ ĐẶC TRƯNG CỦA BÀI TOÁN 1. Ýù Tưởng Trong thời đại kỹ thuật công nghệ phát triển mạnh mẽ như hiện nay, vấn đềtự động hoá luôn được đặt lên vò trí hàng đầu. Những công việc trước đây con người phải tự tay làm thì ngày nay đã được thay thế dần bằng những bộ máy hiện đại được lập trình theo những chức năng chuyên dụng. Theo đà phát triển, con người đã chế tạo ra Robot – một loại máy móc thông minh kết hợp từ các ngành cơ khí, điện tử và tin học – và nó giúp con người rất nhiều việc: từ việc thám hiểm những nơi con người không đến được cho đến những công việc nội trợ trong gia đình. Từ khi xuất hiện đến nay, Robot luôn được các nhà khoa học đặc biệt quan tâm và làm cho nó ngày càng thông minh hơn, chuyên nghiệp hơn để thích ứng với những yêu cầu mới, những công việc mới trong những lónh vực mới. Một trong những việc rất cần đến sự trợ giúp của Robot là lónh vực tìm kiếm, chẳng hạn như việc tìm và gỡ mìn, một việc làm rất nguy hiểm đối với con người nhưng Robot lại làm rất tốt. Bên cạnh đó, việc thám hiểm SVTH: Đặng Hồng Hải Trang 1 Luận văn tốt nghiệp GVHD: HUỲNH VĂN ĐỨC những hành tinh xa xôi, những đáy biển sâu… thì không có sự lựa chọn nào tốt hơn Robot. Hiện nay, con người còn có những ý tưởng chưa thực hiện được về việc chế tạo Robot như: Robot cảnh sát chuyên trấn áp tội phạm, Robot nội trợ, Robot có cảm xúc, Robot cảm nhận bằng âm thanh, Robot mô phỏng các hoạt động của con người… Tuy Robot được ứng dụng vào rất nhiều lónh vực khác nhau nhưng hiện tại, việc chế tạo Robot vẫn còn gặp rất nhiều khó khăn về kỹ thuật cũng như công nghệ. Thực tế đó đã làm nảy sinh ý tưởng: có thể mô phỏng hoạt động của một Robot trong thế giới thực bằng máy tính được không? Câu trả lời là có và đã có nhiều công ty lớn làm theo cách này. Đây là một hướng phát triển rất quan trọng trong việc chế tạo Robot vì nó giúp cho việc thiết kế cũng như thử nghiệm Robot không còn khó khăn và tốn kém như trước. Tuy nhiên, việc thể hiện toàn bộ hoạt động của một Robot từ thế giới thực lên máy tính là một bài toán khá rộng lớn nên ở đây, trong giới hạn của đề tài này, tôi chỉ tập trung tìm hiểu bài toán “Xây dựng mô hình mô phỏng một đối tượng – tạm gọi là Robot – có khả năng nhậnthức môi trường chung quanh đểtìmkiếm mục tiêu”. Phần quan trọng của bài toán này là mô phỏng sự nhậnthức của Robot, một bài toán tuy nhỏ nhưng không thể thiếu đối với hầu hết các Robot. Mục tiêu của bài toán là mô phỏng cách một Robot tự phân tích môi trường chung quanh để đi tìm vật thể. Giống như con người, đầu tiên Robot phải tìm nó bằng cách đi tìm khắp mọi nơi nhưng khi đã gặp thì Robot sẽ nhớ vò trí đó để đònh vò cho lần tìmkiếm sau. Và trong quá trình tìm kiếm, Robot phải tìm cách tránh né chướng ngại vật, phải đánh dấu đường đi đã qua, phải tự đưa ra những quyết đònh khi đã có thêm thông tin… SVTH: Đặng Hồng Hải Trang 2 Luận văn tốt nghiệp GVHD: HUỲNH VĂN ĐỨC Với bài toán này, các nội dung chính cần đạt được là: Khả năng nhậnthức môi trường xung quanh của Robot: Robot sau khi “nhìn” sẽ phân biệt được chướng ngại vật, đường đi hay vật cần tìm trong khung nhìn. Khả năng đưa ra hành vi thích hợp của Robot: sau khi nhậnthức được môi trường chung quanh, Robot sẽ đi tìm mục tiêu theo hướng tốt nhất trong các hướng có thể đi được, kết hợp chuyển hướng quan sát nếu gặp phải chướng ngại vật. Khả năng học của Robot: Robot có thể học bằng cách nhớ lại vò trí của vật cần tìmđể đònh vò cho lần tìmkiếm sau. 2. Đặc trưng của bài toán: Do đây là một bài toán tìmkiếm nên nó có một số đặc trưng sau: • Thông tin về đối tượng cần tìm có thể chưa chính xác hoặc bò thay đổi (Heuristic chưa có hoặc bò thay đổi) • Đối tượng cần tìm có thể ở những nơi mà Robot không bao giờ tìm thấy được vì đối tượng bò che khuất phía sau vật cản. Kết quả là không bao giờ tìm thấy trong trường hợp môi trường cần tìmkiếm rộng lớn (có khả năng thất bại) • Có thể có những đường không đi tiếp được mà thoạt đầu Robot chưa biết (có khả năng quay lui) • Có thể có những ngã đường buộc Robot phải chọn một trong số các hướng có thể đi được. Trong thực tế, hướng “gần” đối tượng cần tìm lại là hướng xa nhất do cuối cùng phải đi đường vòng (khả năng mạo hiểm trong việc rẽ nhánh) SVTH: Đặng Hồng Hải Trang 3 Luận văn tốt nghiệp GVHD: HUỲNH VĂN ĐỨC • Robot có thể được đặt ở những nơi mà tất cả các hướng Robot đều không thể đi tiếp. Kết quả là Robot sẽ quay lui về tới vò trí xuất phát và ngưng quá trình tìmkiếm (khả năng kết thúc sớm) • Đối tượng cần tìm có thể nằm ở những nơi Robot chỉ nhìn thấy nhưng không thể đi đến được (khả năng Robot đi vòng quanh đối tượng càng lúc càng xa) • Có thể có những lối đi quá hẹp để Robot có thể đi qua được (coi như đường đang đi là đường không đi tiếp được) • Robot nên đi những nơi mà nó chưa đi qua. Do đó có thể có khả năng đối tượng cần tìm nằm ở bên kia đường đã đi rồi. Kết quả là Robot sẽ phải quay lui hoặc đi vòng. SVTH: Đặng Hồng Hải Trang 4 Luận văn tốt nghiệp GVHD: HUỲNH VĂN ĐỨC CHƯƠNG II : KIẾN THỨC LIÊN QUAN Do đề tài mô phỏng khả năng nhậnthức của Robot nên một số kiến thức sau đây được sử dụng: Đồ hoạ máy tính: để thể hiện giao diện và giải quyết một số vấn đề kỹ thuật như: tạo khung nhìn, thu thập thông tin về những đối tượng trong khung nhìn … Trí tuệ nhân tạo: hỗ trợ khả năng nhậnthức và đưa ra quyết đònh nhằm phục vụ cho việc tìm kiếm. Lập trình hướng đối tượng: vì tính chất của đề tài là mô phỏng thế giới thực nên lập trình hướng đối tượng là một cách tiếp cận hiệu quả nhất. UML (Unified Modeling Languge): được sử dụng để lên mô hình cho dự án . I. ĐỒ HỌA MÁY TÍNH: SVTH: Đặng Hồng Hải Trang 5 Luận văn tốt nghiệp GVHD: HUỲNH VĂN ĐỨC Đồ hoạ máy tính là một trong những lónh vực phát triển nhanh nhất và lý thú nhất của ngành tin học. Ngay từ khi xuất hiện, đồ họa máy tính đã cuốn hút rất nhiều người thuộc nhiều lónh vực khác nhau. Và nhờ có công nghệ đồ họa mà con người có thể làm quen dễ dàng với máy tính. Do đó, để thể hiện giao diện cũng như giải quyết một số vấn đề kỹ thuật, đề tài này cũng dùng đến một số kỹ thuật sau: Tiếp cận Camera tổng hợp: sử dụng cách tiếp cận này để tạo ra khung nhìn cho Robot. Các giải thuật xén: để lấy các đối tượng trong khung nhìn của Robot nhằm mô phỏng việc Robot chỉ có thể thấy những gì nằm trong khung nhìn của nó mà thôi. 1. Khái niệm : Đồ họa là quá trình đưa ra một bức ảnh dựa vào một số mô tả. Để làm được điều này chúng ta phải thực hiện đồng thời 2 việc: thứ nhất là đưa ra một tiếp cận khả dó mô tả được các đối tượng từ đơn giản đến phức tạp, thứ hai là xây dựng một tập đầy đủ các công cụ vẽ ảnh cho phép đưa ra những bức ảnh từ những nét phác thảo thô sơ cho đến những hình ảnh sống động đầy hiện thực. Nói cách khác, đồ họa máy tính là tất cả những gì liên quan đến việc sử dụng máy tính để phát sinh ra hình ảnh. Các vấn đề liên quan đến công việc này bao gồm: tạo, lưu trữ, thao tác trên các mô hình hình học của đối tượng và các ảnh. 2. Các ứng dụng tiêu biểu của kỹ thuật đồ họa: 2.1 Xây dựng giao diện người dùng (User Interface) SVTH: Đặng Hồng Hải Trang 6 Luận văn tốt nghiệp GVHD: HUỲNH VĂN ĐỨC Giao diện đồ họa đang được đa số người dùng ưa thích nhờ tính thân thiện, dễ sử dụng của nó. Ưu điểm của nó so với ứng dụng console có thể được tóm tắt như sau: • Người dùng có thể nắm bắt dễ dàng nếu các icon được thiết kế tốt để gợi nhớ về chức năng của nó. • Có khả năng mở rộng giao diện, nhiều cửa sổ. 2.2 Lónh vực giải trí, nghệ thuật và mô phỏng : Các phần mềm đồ họa có thể cho phép các họa só tạo ra các hình ảnh ngay trên màn hình máy tính. Người họa só được máy tính cung cấp các công cụ làm việc rất đầy đủ như: khung vẽ, bảng pha màu, các thao tác cắt, dán, tẩy, xóa, phóng to, thu nhỏ và rất nhiều công cụ toán học khác nhau mà họa só trên khung vải không sao có được. Các phần mềm khác để xây dựng các hình ảnh động và các kỹ xảo hoạt hình cũng có đầy đủ chức năng như vậy. Hiện tại công nghệ VRML đang phát triển rất nhanh cho phép tạo ra các thế giới thực tại ảo trên máy tính cũng như cho phép xây dựng những ứng dụng trong giải trí, trò chơi, thương mại. 3. Giải thuật xén- Clipping: Xén là tiến trình xác đònh các điểm của một đối tượng nằm trong hay ngoài cửa sổ hiển thò. Đặc trưng của bài toán xén hình là loại bỏ các phần hình ảnh nằm ngoài một vùng cho trước. Hiện nay có 2 hướng tiếp cận xén thông dụng là cắt và tô. Phương pháp cắt được dùng trong trường hợp hình nhỏ hơn vùng cần xén. Trong khi đó, phương pháp tô được dùng trong trường hợp hình lớn hơn vùng cần xén. Vì tính chất của đề tài này là hình ảnh rất lớn so với vùng cần xén (chứa luôn vùng cần xén) nên ở đây tôi chọn phương pháp tô mà không chọn phương pháp cắt. Dựa trên phương SVTH: Đặng Hồng Hải Trang 7 Luận văn tốt nghiệp GVHD: HUỲNH VĂN ĐỨC pháp tô này, thay vì tô màu ở những vò trí cần tô ta lấy thông tin về đối tượng tại đó. Có hai cách tiếp cận chính để tô màu một vùng tô là: tô theo dòng quét (scan-line fill) và tô theo đường biên (boundary fill). Phương pháp tô màu theo dòng quét thường được dùng để tô màu các đa giác và một số đường cong đơn giản. Còn phương pháp tô màu theo đường biên thường được dùng cho các vùng tô có đường biên phức tạp hơn. Vì khung nhìn của Robot chỉ là một đa giác đơn giản nên phương pháp tô màu theo dòng quét được sử dụng thay vì phương pháp tô màu theo đường biên. Giải thuật tô màu đa giác theo dòng quét – Scanline: Giải thuật dựa trên ý tưởng sử dụng một đường quét trên trục y của màn hình đi từ y max đến y min của vùng cần được tô màu. Với mỗi giá trò y = y i đường thẳng quét cắt các đường biên của vùng cần tô tạo ra đoạn thẳng y = y i với giới hạn x ∈ [x min - x max ]. Trên đoạn thẳng đó chúng ta tô màu các điểm tương ứng đi từ x min > x max . Các điểm cần tô màu sẽ là (x i , y i ) thuộc đoạn thẳng y = y i nói trên. Phép tô màu hình chữ nhật với giải thuật Scanline là phép tô màu đơn giản nhất bởi với mọi đường quét y = y i ta đều thu được hai giá trò x min và x max như nhau. Phép tô màu cho một đa giác bất kỳ sẽ phức tạp hơn rất nhiều so với hình chữ nhật. Độ phức tạp ở đây sẽ xảy ra từ việc xác đònh giải thuật cho việc tính giao điểm của đường thẳng quét đểtìm ra đường biên xấp xỉ khi tô màu đến việc suy diễn đưa ra các phần đoạn thẳng cần tô màu trên đường thẳng quét khi gặp loại hình đa giác lõm hay điểm cắt trùng với đỉnh của đa giác khi mô tả. SVTH: Đặng Hồng Hải Trang 8 Luận văn tốt nghiệp GVHD: HUỲNH VĂN ĐỨC Phép tô màu một đa giác điển hình (như hình vẽ) sẽ theo những bước sau: Tìm giao điểm của đường thẳng quét với các cạnh của đa giác. Sắp xếp các giao điểm theo thứ tự tăng dần của giá trò biến x. Tô màu từng đoạn thẳng nằm giữa cặp điểm giao của đường thẳng quét và cạnh của đa giác. Trong bước này, ta phải giải quyết một vấn đề nảy sinh khi đường thẳng quét đi qua đỉnh của đa giác. Giả sử rằng tại đỉnh của đa giác, đường thẳng quét sẽ cắt 2 cạnh của đa giác tại hai điểm chồng khít lên nhau. Bài toán sẽ có lời giải trong một số trường hợp khi số điểm cắt là chẵn. Với số điểm cắt lẻ thì chúng ta không thể tìm được các cặp điểm cần tô màu. Để khắc phục nhược điểm trên ta sắp xếp các đỉnh mà dòng quét đi qua. Giải thuật sau đây sẽ cho phép ta quyết đònh lấy P là một điểm hay hai điểm trùng khớp nhau vào danh sách các điểm cắt. Nếu P là giao điểm của 2 cạnh đa giác có hướng ngược nhau, một cạnh có giá trò y tăng khi x tăng, một cạnh có giá trò y giảm khi x tăng thì dòng quét tạo ra hai điểm giao trên P. SVTH: Đặng Hồng Hải Trang 9 Luận văn tốt nghiệp GVHD: HUỲNH VĂN ĐỨC Ngược lại, nếu P là đỉnh chung của 2 cạnh đa giác có hướng y cùng nhau, y tăng khi x tăng thì đỉnh P cung cấp 1 điểm giao duy nhất cho danh sách điểm giao. Điều này được minh họa như sau: 4. Camera tổng hợp: Giống như con người, Robot cũng có khả năng nhìn và nhận biết được sự có mặt của các đối tượng trong phạm vi quan sát. Để mô phỏng khả năng này của Robot trên máy tính, tôi sử dụng cách tiếp cận camera tổng hợp với các đặc điểm sau: Là một công cụ hữu hiệu mà gói đồ họa 3D như CORE (Bergeron 1978), GKS3D và PHIGS (Brown 1985) cung cấp nhằm hỗ trợ cho việc lấy ảnh của thế giới thực. Camera tổng hợp có một mặt phẳng quan sát và một con mắt. Mặt phẳng quan sát xác đònh hệ tọa độ quan sát. Cửa sổ mô tả trong mặt phẳng quan sát. Con mắt, cửa sổ và các mặt phẳng trước, sau xác đònh khối quan sát. Các cạnh đều bò xén qua 6 mặt của khối quan sát này, phần còn lại được chiếu lên mặt phẳng quan sát, chuyển đến NDC (thiết bò đồ họa chuẩn) và cuối cùng được vẽ lên thiết bò. Nói cách khác, Camera tổng hợp mô tả một camera đònh vò và đònh hướng trong không gian, gồm 3 phần chính: SVTH: Đặng Hồng Hải Trang 10 [...]... phương pháp tìmkiếm Heuristic và phương pháp học nên ở đây chỉ đề cập đến hai phương pháp này Còn những phương pháp khác nếu có nhu cầu tìm hiểu thêm, xin xem thêm ở tài liệu tham khảo 4 Các Giải Thuật TìmKiếm Heuristic Lập trình Heuristic là một hướng tiếp cận quan trọng trong việc xây dựng các hệ thống trí tuệ nhân tạo Lý thuyết tìmkiếm Heuristic bao gồm các phương pháp và các kỹ thuật tìm kiếm, sử... thù của đề tài là mô phỏng quá trình nhậnthức thế giới xung quanh đểtìmkiếm nên một số diagram sau được sử dụng: • Class diagram – xây dựng cấu trúc tónh của các lớp trong ứng dụng • Sequence diagram – lên lược đồ cho quá trình nhậnthức • Collaboration diagram – lược đồ tương tác của các đối tượng trong ứng dụng • Activity diagram – lên lược đồ cho quá trình tìmkiếm Class diagram Class diagram chỉ... Các class có thể liên quan với nhau theo một số quan hệ như sau: SVTH: Đặng Hồng Hải Trang 30 Luận văn tốt nghiệp GVHD: HUỲNH VĂN ĐỨC • Associate: nối đến class khác • Dependent: một class thuộc/ sử dụng một class khác • Speciallize: một class là một đặc biệt hóa của một class khác • Package: nhóm chung trong một đơn vò Một hệ thống thường có một số class diagram Một class cũng có thể tham gia vào nhiều... nghóa là một element có thể là đặc tả của một element khác • Dependency (phụ thuộc): chỉ ra rằng một element phụ thuộc vào một element khác theo một nghóa nào đó SVTH: Đặng Hồng Hải Trang 32 Luận văn tốt nghiệp GVHD: HUỲNH VĂN ĐỨC • Aggregation: một hình thức của association, trong đó một element chứa một element khác Các model element khác còn có message, action, stereotype… 3.4 Tool: Việc sử dụng một. .. kiếm, sử dụng các tri thức đặc biệt nảy sinh từ bản thân bài toán cần giải để rút ngắn quá trình giải, nhanh chóng đi đến kết quả mong muốn Kỹ thuật cơ bản dựa trên các tri thức Heuristic hay được sử dụng trong thực tiễn là các hàm đánh giá 4.1 Giải thuật leo đồi Giải thuật leo đồi là một giải thuật tìmkiếm dựa trên hàm đánh giá theo chiều sâu nghóa là chỉ tập trung tìmkiếm theo một hướng Những nét... ra những quyết đònh, những lời giải bằng cách tìmkiếm thông tin trong không SVTH: Đặng Hồng Hải Trang 12 Luận văn tốt nghiệp GVHD: HUỲNH VĂN ĐỨC gian bài toán Từ đó thiết kế các chương trình cho máy tính để giải quyết bài toán trong quá trình tìmkiếm Trên cơ sở đó, ta ứng dụng kỹ thuật tìmkiếm của trí tuệ nhân tạo vào đề tài nhằm giải quyết bài toán tìmkiếm của Robot 1 Khái niệm: Trong thực tế, nhiều... Nguyên tắc xén: p dụng giải thuật tô màu trên không gian tìmkiếm theo khung nhìn của Robot (được tạo ra bởi phương pháp Camera tổng hợp) để lấy thông tin về những đối tượng trong không gian tìmkiếm lọt vào khung nhìn này Các kỹ thuật tìmkiếm Heristic: SVTH: Đặng Hồng Hải Trang 35 Luận văn tốt nghiệp GVHD: HUỲNH VĂN ĐỨC Đề tài sử dụng 2 kỹ thuật tìmkiếm của trí tuệ nhân tạo là leo đồi và A* Tuy có nhiều... công thức phản ánh bản chất kỹ thuật của lập trình hướng đối tượng như sau: Đối tượng = dữ liệu + phương thức Lớp (class) Lớp là một khái niệm mới trong lập trình hướng đối tượng so với các kỹ thuật lập trình khác Đó là một tập các đối tượng có cấu trúc dữ liệu và các phương thức giống nhau (hay nói cách khác là một tập các đối tượng cùng loại) Như vậy khi có một lớp thì chúng ta sẽ biết được một mô... án Hiện nay, một ngôn ngữ hỗ trợ việc lên mô hình được sử dụng nhiều nhất là UML Do đó, tôi cũng sử dụng ngôn ngữ này để lên mô hình cho dự án của mình 1 Tổng quan: UML (Unified Modeling Languge) là một ngôn ngữ mô hình hóa được xây dựng lần đầu tiên bởi Booch, Rumbaughvà Jacobson Nó mô hình hệ thống thế giới thực thành một model Một model bao gồm một số View, mỗi View sẽ diễn tả một mặt, một khía cạnh... sử chúng ta có một kế thừa lớp hình tứ giác và tam giác từ lớp hình đa giác (hình tam giác và tứ giác có đầy đủ các thuộc tính và tính chất của một hình đa giác) Lúc này một đối tượng thuộc lớp hình tam giác hay tứ giác đều có thể hiểu rằng nó là một hình đa giác Mặt khác với mỗi đa giác ta có thể tính diện tích của nó Như vậy làm thế nào mà một đa giác có thể sử dụng đúng công thứcđể tính diện tích . lại vò trí của vật cần tìm để đònh vò cho lần tìm kiếm sau. 2. Đặc trưng của bài toán: Do đây là một bài toán tìm kiếm nên nó có một số đặc trưng sau: • Thông tin về đối tượng cần tìm có thể chưa chính. – tạm gọi là Robot – có khả năng nhận thức môi trường chung quanh để tìm kiếm mục tiêu”. Phần quan trọng của bài toán này là mô phỏng sự nhận thức của Robot, một bài toán tuy nhỏ nhưng không. cách một Robot tự phân tích môi trường chung quanh để đi tìm vật thể. Giống như con người, đầu tiên Robot phải tìm nó bằng cách đi tìm khắp mọi nơi nhưng khi đã gặp thì Robot sẽ nhớ vò trí đó để