Một agent tự nhận thức để tìm kiếm - pdf 17

Download miễn phí Luận văn Một agent tự nhận thức để tìm kiếm



MỤC LỤC
 
PHẦN I : LÝ THUYẾT
Chương I: Ý tưởng và đặc trưng của bài toán Trang 1
1. Ý tưởng Trang 1
2. Đặc trưng Trang 3
Chương II: Kiến thức liên quan Trang 5
I. Đồ Họa Máy Tính Trang 5
1. Khái niệm Trang 6
2. Các ứng dụng tiêu biểu của kỹ thuật đồ họa: Trang 6
3. Giải thuật xén: Trang 7
4. Camera tổng hợp: Trang 9
II. Trí Tuệ Nhân Tạo Trang 12
1. Khái niệm: Trang 12
2. Các lĩnh vực nghiên cứu và ứng dụng cơ bản
của Trí Tuệ Nhân Tạo Trang 13
3. Các phương pháp và kỹ thuật Trí Tuệ Nhân Tạo Trang 14
4. Các Giải Thuật Tìm Kiếm Heuristic Trang 14
4.1 Giải thuật leo đồi Trang 15
4.2 Giải thuật A* Trang 16
III. Lập trình hướng đối tượng với Visual C++ 6 Trang 17
1. Khái niệm về lập trình hướng đối tượng : Trang 17
1.1 Tổng quan: Trang 17
1.2 Một số khái niệm: Trang 18
1.3 Các ưu điểm của lập trình hướng đối tượng: Trang 20
2. Ngôn ngữ lập trình Visual C++ trên môi trường Windows Trang 22
2.1 Tổng quan: Trang 22
2.2 Thư viện MFC: Trang 25
2.2 .1 Window Messages: Trang 25
2.2 .2 Hộp thoại ở chế độ Modal và Modaless: Trang 26
IV. Giới Thiệu Về UML Trang 26
1. Tổng quan: Trang 26
2. Công dụng của UML: Trang 27
3. Khái quát về UML: Trang 28
3.1 View: Trang 28
3.2 Diagram: Trang 29
3.3 Model Element: Trang 31
3.4 Tool: Trang 32
Chương III: Hướng Tiếp Cận Của Đề Tài Trang 34
Chương IV: Giao Diện Của Ứng Dụng Trang 36
Phần II : THIẾT KẾ CHƯƠNG TRÌNH Trang 38
1. Thiết kế mức quan niệm: Trang 38
1.1 Sơ đồ lớp với các lớp chính: Trang 38
1.2 Biểu đồ cộng tác: Trang 39
2. Thiết kế mức cài đặt: Trang 40
2.1 Sơ đồ lớp: Trang 40
2.2. Sơ đồ cộng tác: Trang 42
2.3 Cấu trúc của lớp Robot: Trang 44
2.4 Sơ đồ lớp với các thuộc tính: Trang 50
2.5 Sơ đồ tìm kiếm: Trang 51
2.6 Sơ đồ tuần tự cho chức năng
thu thập thông tin (chức năng nhận thức): Trang 53
2.7 Các lớp tiện ích: Trang 54
Phụ lục
Tài liệu tham khảo
 
 



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

h sách B(n) chứa các đỉnh đi được từ đỉnh n.
Thuật giải A*:
1. Open.Store(s)
2. while not Open.Empty() do
2.1 n = Open.Retrieve()
2.2 Close.Store(n)
2.3 if (n == g) then return true
2.4 for m Ỵ B(n) do
2.4.1
2.4.2 if (m Ï Open È Close) then Open. Store(m)
2.4.3 if (m == (m’ ỴOpenÈClose) && ^f(m) < ^f(m’) then
2.4.3 .1 <đặt lại tham chiếu cho m’)
2.4.3 .2 if (m’ Ỵ Close ) < chuyển m’ qua Open )
3. return false
Danh sách mở Open được sử dụng trong trường hợp này là Queue.
III. LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI VISUAL C++
Thực tế, mọi thứ trong thế giới thực đều có thể được xem như đối tượng. Do đó, để mô phỏng thế giới thực thì không có hướng tiếp cận nào tốt hơn hướng đối tượng. Trong số các ngôn ngữ hỗ trợ hướng đối tượng thì C++ được xem là ngôn ngữ lập trình thông dụng nhất. Hiện nay, trên thị trường có nhiều công cụ hỗ trợ lập trình trên C++ như Borland C++, Watson C++, Visual C++… trong đó Visual C++ của hãng Microsoft được ưa chuộng nhất vì tính thân thiện, dễ sử dụng và hỗ trợ triển khai ứng dụng nhanh. Vì thế, tui chọn Visual C++ làm công cụ phát triển ứng dụng của mình trong đề tài này.
1. Khái niệm về lập trình hướng đối tượng:
1.1 Tổng quan:
Lập trình hướng đối tượng (Object-Oriented Programming – gọi tắt là OOP), hay chi tiết hơn là lập trình định hướng đối tượng, là một phương pháp lập trình lấy đối tượng (object) làm nền tảng để xây dựng thuật giải, xây dựng chương trình.
Lập trình hướng đối tượng đặt trọng tâm vào đối tượng - yếu tố quan trọng trong quá trình phát triển chương trình- và không cho phép dữ liệu biến động tự do trong hệ thống. Dữ liệu được gắn chặt với các hàm thành các vùng riêng mà chỉ có các hàm đó tác động lên và cấm các hàm bên ngoài truy cập tới một cách tuỳ tiện. Lập trình hướng đối tượng cho phép chúng ta phân tích bài toán thành các thực thể được gọi là các đối tượng và sau đó xây dựng các dữ liệu cùng các hàm xung quanh các đối tượng đó. Các đối tượng có thể tác động, trao đổi thông tin với nhau thông qua cơ chế truyền nhận thông điệp (message). Việc tổ chức một chương trình hướng đối tượng có thể được mô tả như sau:
Đối tượng A
Dữ liệu
Đối tượng B
Dữ liệu
Đối tượng C
Dữ liệu
message
Lập trình hướng đối tượng có các đặc tính chủ yếu sau:
Tập trung vào dữ liệu thay cho các hàm.
Chương trình được chia thành các đối tượng.
Cấu trúc dữ liệu được thiết kế sao cho đặc tả được đối tượng.
Các hàm thao tác trên các vùng dữ liệu của đối tượng được gắn với cấu trúc dữ liệu đó.
Dữ liệu được đóng gói lại, được che giấu và không cho phép các hàm ngoại lai truy cập tự do.
Các đối tượng tác động và trao đổi thông tin với nhau qua các hàm
Có thể dễ dàng bổ sung dữ liệu và các hàm mới vào đối tượng nào đó khi cần thiết.
Chương trình được thiết kế theo cách tiếp cận từ dưới lên (bottom-up).
Sau đây là một số khái niệm được sử dụng trong lập trình hướng đối tượng.
1.2 Một số khái niệm:
Đối tượng (object)
Đối tượng là sự kết hợp giữa dữ liệu và cách thao tác trên dữ liệu đó. Có thể đưa ra 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 + cách
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 cách 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ô tả cấu trúc dữ liệu và cách của các đối tượng thuộc lớp đó. Mỗi đối tượng sẽ là một thể hiện cụ thể (instance) của lớp đó. Trong lập trình, chúng ta có thể coi một lớp như là một kiểu còn các đối tượng sẽ là các biến có kiểu của lớp.
Nguyên tắc đóng gói dữ liệu
Trong lập trình hướng đối tượng ta đã thấy các hàm hay thủ tục được sử dụng mà không cần biết nội dung cụ thể của nó. Người sử dụng chỉ cần biết chức năng của hàm cũng như các tham số cần truyền vào để gọi hàm thực thi mà không cần quan tâm đến những lệnh cụ thể bên trong nó. Người ta gọi đó là sự đóng gói về chức năng.
Trong lập trình hướng đối tượng, không những chức năng được đóng gói mà cả dữ liệu cũng như vậy. Với mỗi đối tượng, người ta không thể truy cập trực tiếp vào các thành phần dữ liệu của nó mà phải thông qua các thành phần chức năng (các cách) để làm việc đó.
Chúng ta sẽ thấy sự đóng gói thực sự về dữ liệu chỉ có trong một ngôn ngữ lập trình hướng đối tượng “thuần khiết” (pure) theo nghĩa các ngôn ngữ được thiết kế ngay từ đầu chỉ cho lập trình hướng đối tượng. Còn đối với các ngôn ngữ “lai” (hybrid) được xây dựng trên các ngôn ngữ khác (ban đầu chưa phải là hướng đối tượng) như C++ vẫn có những ngoại lệ nhất định vi phạm nguyên tắc đóng gói dữ liệu.
Tính thừa kế (inheritance)
Một khái niệm quan trọng của lập trình hướng đối tượng là sự thừa kế. Sự thừa kế cho phép chúng ta định nghĩa một lớp mới trên cơ sở các lớp đã tồn tại có bổ sung những cách hay các thành phần dữ liệu mới. Khả năng kế thừa cho phép chúng ta sử dụng lại một cách dễ dàng các module chương trình mà không cần thay đổi các module đó. Đây là một điểm mạnh của lập trình hướng đối tượng so với lập trình cấu trúc.
Tính đa hình (polymorphime)
Tính đa hình xuất hiện khi có khái niệm kế thừa. Giả 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 phù hợp với nó là hình tam giác hay tứ giác. Ta gọi đó là tính đa hình.
1.3 Các ưu điểm của lập trình hướng đối tượng:
Lập trình hướng đối tượng đem lại một số lợi thế cho người thiết kế lẫn người lập trình. Cách tiếp cận hướng đối tượng giải quyết được nhiều vấn đề tồn tại trong quá trình phát triển phần mềm và tạo ra được những phần mềm có độ phức tạp và chất lượng cao. Phương pháp này mở ra một triển vọng to lớn cho người lập trình. Những ưu điểm chính của lập trình hướng đối tượng là:
Thông qua nguyên lý kế thừa, chúng ta có thể loại bỏ được những chương trình lặp lại trong quá trình mô tả các lớp và có thể mở rộng khả năng sử dụng của các lớp đã xây dựng mà không cần viết lại.
Chương trình được xây dựng từ những đơn thể (đối tượng) trao đổi với nhau nên việc thiết kế và lập trình sẽ được thực hiện theo quy trình nhất định chứ không phải dựa vào kinh nghiệm và kỹ thuật như trước nữa. Điều này đảm bảo rút ngắn được thời gian xây dựng hệ thống và tăng năng suất lao động.
Nguyên lý đóng gói hay che giấu thông tin giúp lập trình v...
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status