Trong những năm gần đây, sự phát triển mạnh mẽ của các công nghệ truyền thông và internet đã ảnh hưởng sâu rộng đến mọi mặt của cuộc sống từ kinh tế, khoa học đến văn hoá và xã hội. Rõ ràng sự phát triển của phần cứng đóng vai trò rất quan trọng trong quá trình tiến hoá này nhưng yếu tố then chốt đã ảnh hưởng mạnh mẽ đến xã hội tri thức ngày nay chính là bản thân phần mềm. Khi mà mạng máy tính và Internet trở thành phổ biến thì việc xử lý thông tin phân tán, chia xẻ và tích hợp thông tin thông qua đường truyền giữa các máy với những cơ sở dữ liệu có những khuôn dạng khác nhau càng ngày càng trở nên phổ biến.
Trang 1ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
INTELLIGENT AGENT
Giáo viên hướng dẫn : Ts.Phạm Lê Thị Anh Thư Sinh viên thực hiện : Đặng Vũ Hải Long - 10520386
Bùi Hoàng Khánh Duy – 10520379 Nguyễn Thanh Hiền – 10520064 Trần Anh Nguyên - 10520032
TP.HỒ CHÍ MINH 6/2013
1
BÁO CÁO
ĐỒ ÁN
Trang 2Mục Lục
Trang 3MỞ ĐẦU
Trong những năm gần đây, sự phát triển mạnh mẽ của các công nghệ truyền thông và internet đã ảnh hưởng sâu rộng đến mọi mặt của cuộc sống từ kinh tế, khoa học đến văn hoá và xã hội Rõ ràng sự phát triển của phần cứng đóng vai trò rất quan trọng trong quá trình tiến hoá này nhưng yếu tố then chốt đã ảnh hưởng mạnh mẽ đến xã hội tri thức ngày nay chính là bản thân phần mềm Khi mà mạng máy tính và Internet trở thành phổ biến thì việc xử lý thông tin phân tán, chia xẻ và tích hợp thông tin thông qua đường truyền giữa các máy với những cơ sở dữ liệu có những khuôn dạng khác nhau càng ngày càng trở nên phổ biến Điều này dẫn đến một thách thức mới đối với giới phát triển phần mềm khi phải đối đầu với những yêu cầu thực tế của các hệ phần mềm phức tạp, mở và phân tán
Những nghiên cứu và công nghiệp phát triển phần mềm trong những cuối năm 80 và đầu thập niên 90 xoay quanh cách tiếp cận hướng đối tượng tiến hoá
từ phương pháp luận phần mềm cấu trúc truyền thống Phương pháp hướng đối tượng có ưu điểm so với phương pháp cấu trúc là khả năng sử dụng lại mã nguồn,
dễ đọc mã nguồn và xử lý lỗi Ý tưởng cơ bản của nó là xem hệ phần mềm như tập hợp các thực thể tương tác gọi là “đối tượng” trong đó mỗi đối tượng được xác định bởi ba yếu tố: Định danh, trạng thái và hành vi Như vậy, phát triển phần mềm dựa trên cách tiếp cận này có nghĩa là tiến hành xây dựng mô hình của hệ thống cần được phát triển (cả trong các pha phân tích và thiết kế) dựa trên khái niệm đối tượng và những khái niệm liên quan như thành viên, phương thức, quan hệ Ngôn ngữ UML đã được sử dụng rộng rãi để mô hình các hệ phần mềm này dưới dạng use case, biểu đồ lớp, biểu đồ tương tác
Tuy nhiên, cách tiếp cận hướng đối tượng tỏ ra không đáp ứng được nhu cầu phát triển các hệ phần mềm mở, phân tán, phức tạp như quản lý mạng viễn thông, thương mại điện tử, trợ giúp văn phòng, tìm kiếm/lọc thông tin Là một phát triển tiếp theo của hướng đối tượng, cách tiếp cận hướng agent được xem là công nghệ hứa hẹn cho phát triển các hệ phần mềm phức tạp này Ý tưởng cơ bản
Trang 4của hệ đa agent là xem hệ phần mềm như một cấu trúc xã hội bao gồm các agent
có khả năng tự chủ cùng với các tương tác “có tính chất tri thức” hay “mang ngữ nghĩa” giữa chúng
Giống như đối tượng, các agent cũng có định danh, trạng thái và hành vi nhưng những khái niệm này được mô tả một cách tinh tế hơn:
• Trạng thái có thể bao gồm tri thức, lòng tin, đích cần phải thoả mãn, các trách nhiệm được gán cho từng agent
• Hành vi là những vai trò mà agent có thể đảm nhiệm, những công việc cần phải tiến hành, các sự kiện cần phải được quan sát
Công nghệ phần mềm hướng agent đã thu hút nhiều quan tâm nghiên cứu
vì nó được xem là cách tiếp cận tiến hoá từ công nghệ phần mềm hướng đối tượng và công nghệ tri thức Nó đã tỏ ra có nhiều hứa hẹn cho phát triển các hệ phần mềm trong môi trường phân tán và mở Thập niên 90 đã chứng kiến sự nở
rộ của nhiều ứng dụng và thử nghiệm thành công trong các lĩnh vực khác nhau như viễn thông, quản lý không lưu, các dịch vụ trên Internet Những năm 2000, các nghiên cứu về agent tập trung vào xây dựng các phương pháp luận phát triển phần mềm bao gồm xây dựng quy trình, công cụ cùng các kỹ thuật phân tích và thiết kế hệ đa agent
Do giới hạn về thời gian, báo cáo này chỉ đưa ra một cái nhìn tổng quan về agent và các khái niệm cơ bản của nó thôi chứ không tìm hiểu sâu về công nghệ agent và đa agent Bên cạnh việc tìm hiểu lý thuyết, nhóm chúng em cũng xây dựng một game đơn giản gồm một agent để demo
Trang 5Môi trường Tác tử
Cảm nhận
Tác động
CHƯƠNG 1: INTELLIGENT AGENT
1.1 Khái niệm về agent
Có rất nhiều định nghĩa khác nhau, thậm chí khác nhau về agent, nhưng có một định nghĩa thường được sử dụng như sau:
“Agent là một hệ tính toán hoàn chỉnh được đặt trong một môi trường nhất định, có khả năng hoạt động một cách tự chủ và mềm dẻo trong môi trường
đó nhằm đạt được mục đích đã thiết kế”
Có thể hiểu định nghĩa trên như sau: Hệ thống tính toán có thể là phần cứng, phần mềm, hoặc cả phần cứng lẫn phần mềm Bất cứ agent nào cũng tồn tại
và hoạt động trong một môi trường nhất định Agent nhận thông tin từ môi trường qua các cơ quan cảm nhận và tác động vào môi trường bằng các cơ quan tác động
Hình: Agent tương tác với môi trường
Đối với các agent phần cứng, cơ quan cảm nhận có thể là các cảm biến, camera, cơ quan tác động có thể là các bộ phận cơ học, quang học hoặc âm thanh Đối với các agent là chương trình phần mềm, môi trường hoạt động thông thường
là các máy tính hoặc mạng máy tính Việc cảm nhận môi trường và tác động được thực hiện thông qua các lời gọi hệ thống Nói chung, agent có thể được thiết kế để hoạt động để hoạt động trong nhiều dạng môi trường khác nhau Một điểm cần chú ý là cảm nhận về môi trường của agent có thể không đầy đủ do môi trường quá phức tạp hoặc có chứa các yếu tố không xác định
Một yêu cầu quan trọng đối với agent là tính tự chủ Cũng như bản thân định nghĩa về agent, cũng có nhiều cách hiểu khác nhau về tính tự chủ Ở đây, tự chủ được hiểu như là khả năng các agent hành động không cần đến sự can thiệp trực tiếp của người hay các agent khác: agent hoàn toàn có khả năng kiểm soát
Trang 6trạng thái cũng như hành vi của mình trong một thời gian tương đối dài Một số các tác giả định nghĩa tính tự chủ rộng hơn, chẳng hạn yêu cầu agent phải có khả năng tự học
Với đặc điểm tồn tại và hành động tự chủ trong môi trường, agent có thể thực hiện các mục tiêu cho trước và do vậy có thay thế chủ của mình (người dùng hoặc các agent khác) thực hiện một số các nhiệm vụ nào đó
1.2 Các đặc điểm của agent
Một agent thông thường có những đặc điểm sau:
• Tính tự chủ (autonomy): Mỗi agent có một trạng thái riêng, độc lập với
các agent khác (tự chủ ở trạng thái bên trong) đồng thời nó có thể tự quyết định các hành động của mình (tự chủ về hành động) Tự chủ ở trang thái bên trong thể hiện ở chổ: mỗi agent chứa một trạng thái nào đó của riêng
nó, các agent khác không truy nhập được vào các trạng thái này Còn tính
tự chủ về hành động thể hiện ở chỗ agent có thể tự quyết định các hành động của mình (có thể là một hành động đơn hoặc là một chuỗi các hành động) dựa trên trạng thái hiện thời mà không có sự can thiệp của con người hay các agent khác Tính tự chủ chính là đặc trưng quan trọng nhất của agent
• Khả năng phản ứng (reactivity): Tính phản ứng là khả năng agent có
thể nhận biết được môi trường (qua bộ phận cảm nhận nào đó) và dựa qua nhận biết đó, agent đáp ứng kịp thời những thay đổi xảy ra trong môi trường Tính phản ứng thể hiện rõ nhất ở các agent hoạt động trên các môi trường có tính mở và hay thay đổi như Internet, môi trường mạng phân tán, môi trường vật lý, … Phản ứng của mỗi một agent đối với môi trường bên ngoài đều hướng tới việc thực hiện mục tiêu (đích) của agent đó
• Tính chủ động (pro-activeness): Khi có sự thay đổi của môi trường,
agent không chỉ phản ứng một cách đơn giản mà còn xác định một chuỗi hành động cần thực hiện, bản thân mỗi agent sẽ chủ động trong việc khởi động và thực hiện chuỗi hành động này
• Khả năng xã hội (social ability): Các agent không chỉ hướng tới đích
riêng của mình mà còn có khả năng tương tác với các agent khác trong hệ thống để hướng tới đích chung của hệ thống Các hoạt động tương tác này rất đa dạng bao gồm phối hợp, thương lượng, cạnh tranh…
Cách thức hoạt động của Intelligent Agent như sau: từ tập giả thiết thu nhận từ môi trường và tập các quy tắc của Agent, Agent sẽ chọn lựa hành động phù hợp, sau khi thực hiện hành động đã chọn, môi trường sẽ thay đổi và quá trình được lặp lại
Trang 71.3 Agent và đối tượng
Để hiểu rõ hơn khái niệm agent, chúng ta hãy so sánh agent và đối tượng Trong phương pháp hướng đối tượng, các đối tượng được định nghĩa là các thực thể tính toán đóng gói bao gồm các trạng thái, các hành động hay phương thức trong trạng thái đó và các đối tượng liên lạc với nhau thông qua việc gửi các thông điệp (message)
Xét theo quan điểm hệ thống, có thể xem mỗi agent cũng là một đối tượng nhưng ở mức trừu tượng cao hơn Vì vậy, khái niệm đối tượng được sử dụng trong phần này là để chỉ các đối tượng chuẩn (standard object) trong phương pháp hướng đối tượng Với định nghĩa agent đã được đề cập ở Mục 1.1.1 thì các đối tượng và các agent có các điểm khác biệt sau:
• Agent có tính tự chủ cao hơn đối tượng Điều này thể hiện ở chỗ các agent có thể tự quyết định hành động của mình mà không phải là thực hiện hành động theo yêu cầu của agent khác Ngược lại, các đối tượng chỉ thực sự hoạt động khi nhận được lời gọi hàm từ các đối tượng khác
• Agent có tính hướng đích, mỗi agent có một đích riêng và đích của các agent trong một hệ thống có thể thống nhất hay không tương thích với nhau Trong khi đó các đối tượng không có mục đích riêng, chúng cùng chia sẻ mục đích chung của cả hệ thống Do đó, các agent thường phải thương lượng với nhau trong quá trình tương tác
• Agent có các hành vi linh hoạt dựa trên các đặc trưng như tính chủ động, khả năng phản ứng và khả năng xã hội đã trình bày ở trên Còn các đối tượng thì không có các kiểu hành vi này
• Mỗi agent có một hoặc nhiều luồng điều khiển (thread) riêng Trong hệ hướng đối tượng cũng có điều khiển theo kiểu luồng (thread) nhưng không yêu cầu mỗi đối tượng là có thread riêng mà ngược lại có thể có nhiều đối tượng chung một thread Bản chất của sự khác nhau này cũng
là đặc trưng quan trọng về mức độ tự chủ của agent so với đối tượng
1.4 Agents và Expert Systems
Sự khác biệt chính giữa Agent và Expert System (hệ chuyên gia) như sau:
• Agent thì được đặt trong một môi trường còn hệ chuyên gia thì tách biệt chúng không gắn liền với bất kỳ môi trường mà nó hoạt động thông qua người sử dụng như một người trung gian
• Những hệ chuyên gia không có khả năng: tác động lại, hướng đích
• Hệ chuyên gia không được trang bị khả năng giao tiếp, sự hợp tác, phối hợp và sự dàn xếp
Trang 81.5 Các khái niệm dùng để xây dựng agent
Để xây dựng agent, người ta dựa trên các tính chất của agent đã như tính
tự hoạt động trong môi trường thay đổi liên tục, chắc chắn, mềm dẻo, tính xã hội…
- Percepts và Actions
Hai khái niệm cơ bản mô tả giao tiếp giữa agent và môi trường đó
là cảm nhận (percepts) từ môi trường qua bộ cảm ứng (sensors)
và hành động (actions) để gây ảnh hưởng lên môi trườngqua bộ tác động (actuators)
- Goals và Events
Mục tiêu (goal) được định nghĩa là các trạng thái mà agent cần phải hướng đến Mục tiêu giúp cho agent tự hoạt động và hoạt động chuyên nghiệp Khía cạnh quan trọng của hoạt động chuyên nghiệp đó là agent đeo đuổi mục tiêu bền bỉ: nếu kế hoạch đạt mục tiêu bị thất bại thì nó xem xét các kế hoạch thay thế cho đến khi nó tin rằng không thể đạt được mục tiêu hoặc mục tiêu không còn thích hợp nữa
Biến cố(event) là sự kiện xảy ramà agent phải phản ứng lại Biến cố
có thể dẫn đến mục tiêu mới, gây ra những thay đổi thông tin về môi trường và dẫn đến hành động thực hiện ngay lập tức
- Plans và Beliefs
Lòng tin (beliefs) của agent là tri thức và thông tin của agent về môi trường Do môi trường luôn thay đổi liên tục nên agent cần lưu giữ thông tin mà nó nhận được Ví dụ agent tin là có đám cháy ở vị trí X vì
nó vừa thấy ở đó, mặc dù hiện giờ agent không thấy
Kế hoạch (plans) là một “thư viện các phương pháp” Ví dụ kế hoạch để đạt mục tiêu chữa cháy gồm 3 bước: xác định đường dẫn đến đám cháy, đi theo đường dẫn đến đám cháy và phun nước cho đến khi dập tắt đám cháy
1.6 Môi trường của agent
Môi trường của agent bao gồm các loại sau:
• Accessible và Inaccessible: môi trương accessible (có thể truy cập)
là một môi trường mà agent có thể thu được những thông tin chính xác, đầy đủ, mới nhất về môi trường đó Môi trường thế giới thực (Internet hay môi trường vật lý) là những môi trường inaccessible (không thể truy cập) Môi trường càng accessible thì xây dựng agent càng đơn giản
• Deterministic và non-deterministic (xác định và không xác định):
Một môi trường xác định là một môi trường mà mỗi hành động của
Trang 9agent đều cho một kết quả duy nhất đối với môi trường Trên thực
tế, hầu hết các môi trường là không xác định
• Dynamic và Static (tĩnh và động): Môi trường tĩnh là môi trường
mà không đổi ngoại trừ được agent tác động vào Ngược lại, môi trường động là môi trường mà thay đổi vượt qua tầm kiểm soát của agent (môi trường vật lý, Internet)
• Episodic và non-episodic (phân đoạn và không phân đoạn): Với
một môi trường phân đoạn thì kinh nghiệm của Agent được chia thành các đoạn Mỗi đoạn bao gồm nhận thức và hành động của Agent Chất lượng của các hành động của Agent phụ thuộc vào chính các đoạn của nó Bởi vì dãy các đoạn không phụ thuộc vào hành động xảy ra ở đoạn trước Môi trường phân đoạn thì đơn giản đối với Agent vì nó không cần “suy nghĩ” trước
• Discrete và continuous (rời rạc và liên tục): Môi trường rời
rạc là môi trường có hữu hạn các trạng thái Ví dụ trò chơi cờ tướng là một môi trường rời rạc (mặc dù số trạng thái rất lớn)
1.7 Ứng dụng của agent
Các ứng dụng của agent có thể được chia thành 2 nhóm chính:
• Các hệ thống phân tán (distributed systems): Trong đó các agent trở thành các nút xử lý
• Phần mềm giúp đỡ cá nhân (personal software assistants): Trong đó agent đóng vai trò giúp đỡ người dùng làm việc trong một ứng dụng nào đó Nhấn mạnh về tính riêng lẻ của agent
Các lĩnh vực áp dụng của agent:
• Agents với các giác quan phân tán (Agents for Distributed Sensing)
• Quản lý tiến trình thương mại và công việc (Agents for Workflow and
• Business Process Management)
• Agent thu thập và quản lý thông tin (Agents for Information Retrieval and
• Management)
• Agent trong lĩnh vực thương mại điện tử (Agents for Electronic Commerce)
• Agent giao diện giữa người và máy (Agents for Human-Computer
• Interfaces)
• Agent trong môi trường ảo (Agent for Virtual Environment)
• Agent để mô phỏng xã hội (Agent for SocialSimulation)
Trang 10Trang
Trang 11CHƯƠNG 2: ỨNG DỤNG MÔ PHỎNG MỘT AGENT ĐƠN GIẢN
2.1 Mô Tả Ứng Dụng
Để demo về Intelligent Agent, chúng em đã xây dựng một ứng dụng đơn agent đơn giản Ứng dụng là một game dựa trên ý tưởng của game Pacman nhưn đơn giản hơn rất nhiều Game chỉ có hai nhân vật là một agent và một nhân vật do người chơi điều khiển Agent có nhiệm vụ là đi thu nhặt các cục vàng trong bản
đồ và tránh né để không bị bắt bởi nhân vật do người chơi điều khiển Người chơi điều khiển nhân vật còn lại để đuổi bắt và ngăn cản agent thu nhặt vàng
2.2 Phương Pháp Trong Ứng Dụng
Game được xây dựng trên nền FrameWork XNA 4.0, mô phỏng một intelligent agent đơn giản nhất Agent này có mục đích là thu nhặt các cục vàng trên bản đồ Nó có khả năng thu nhận thông tin từ môi trương (bản đồ) để biết vị trí nào có vàng, trí nào có kẻ thù (người chơi điều khiển) và đưa ra quyết định hành động, tránh né kẻ thù hay nhặt vàng rồi chết Trong ứng dụng này thì agent
sẽ ưu tiên tránh né kẻ thù trước
Môi trường được cài đặt bằng một mảng 2 chiều gồm 14 dòng và 20 cột (tương ứng với 14 dòng và 20 cột trên bản đồ) Các yếu tố trong môi trường gồm:
Các khối gạch (BRICK): agent và con người không thể đi qua được
Các cục vàng (GOLD): đây là mục tiêu chính mà agent hướng tới
Con người (HUMAN): sẽ được điều khiển bởi người chơi để đuổi bắt agent
Agent: được xây dựng để tự động đi thu nhặt các cục vàng
Hoạt động của agent:
Agent sử dụng thuật toán A* để tính toán đường đi ngắn nhất giữa hai điểm trên bản đồ
Agent có ba trạng thái chính:
- EIDStatus.FIND_FOOD_TO_GO: Khi ở trạng thái này, agent chưa có mục tiêu là cục vàng để đi tới ăn
- Vì thế trong trạng thái này Agent sẽ tìm kiếm trong thế giới xem cục vàng nào là đang ở vị trí an toàn nhất (có chỉ số an toàn cao nhất) để đi tới ăn (Công thức tính chỉ số an toàn của cục vàng an toàn
Trang