Tải bản đầy đủ (.docx) (13 trang)

Đồ án INTELLIGENT AGENT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (322.47 KB, 13 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠ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
Trí Tuệ Nhân Tạo - Agent
Mục Lục
Trí Tuệ Nhân Tạo - Agent
MỞ ĐẦ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
Trí Tuệ Nhân Tạo - Agent
củ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.
Môi trường Tác tử
Cảm nhận
Tác động
Trí Tuệ Nhân Tạo - Agent
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
Trí Tuệ Nhân Tạo - Agent
trạ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.
Trí Tuệ Nhân Tạo - Agent
1.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.
Trí Tuệ Nhân Tạo - Agent
1.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
Trí Tuệ Nhân Tạo - Agent
agent đề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)
Trí Tuệ Nhân Tạo - Agent
Trang
Trí Tuệ Nhân Tạo - Agent
CHƯƠ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
Trí Tuệ Nhân Tạo - Agent
bằng số bước di chuyển ngắn nhất từ AGENT đến GOLD cộng số bước
di chuyển ngắn nhất từ HUMAN đến GOLD). Khi đã tim thấy mục tiêu
thì Agent sẽ chuyển sang trạng thái EIDStatus.GOING_TO_FOOD.
- EIDStatus.GOING_TO_FOOD: Khi ở trạng thái này , Agent sẽ di
chuyển tới cục vàng an toàn nhất đã tìm ra, tuy nhiên trong lúc di
chuyển Agent sẽ kiểm tra trong bán kính 4 ô xung quanh vị trí hiện tại
của Agent xem có Human xuất hiện không nếu có thì Agent sẽ biết có
nguy hiểm và sẽ chuyển sang trạng thái
IDStatus.ESCAPE_FROM_HUMAN.
- EIDStatus.ESCAPE_FROM_HUMAN: Khi ở trạng thái này agent sẽ
biết là mình đang bị nguy hiểm và sẽ tìm ra vị trí có chỉ số an toàn cao
nhất trong 4 vị trí (TOP_LEFT; TOP_RIGHT; BOTTOM_LEFT;

BOTTOM_RIGHT) và di chuyển tới. (Công thức tính chỉ số an toàn
của vị trí an toàn bằng số bước di chuyển ngắn nhất từ AGENT đến
POSITION cộng số bước di chuyển ngắn nhất từ HUMAN đến
POSSITION). Trong quá trình di chuyển nếu mà Agent nhận thấy rằng
khoảng cách đến HUMAN > 7 thì sẽ biết là mình đã an toàn và lại tiếp
tục chuyển sang trạng thái EIDStatus.FIND_FOOD_TO_GO để tìm
cục vàng an toàn nhất để di chuyển tới.
Trang
Trí Tuệ Nhân Tạo - Agent
2.3. Giao Diện Và Hướng Dẫn Sử Dụng
Để tăng độ vui nhộn cho game thì agent đã được biểu diễn bởi hình Mario,
các cục vàng muc tiêu của agent là các cục nấm. Người chơi điều khển nhân vật
robot sát thủ màu đen. Vât cản là các khối gạch.
 Bắt đầu chơi và tạm dừng: nhấn F1.
 Người chơi dùng các phím mũi tên (lên, xuống, trái, phải) để điều khiển
robot đi bắt agent. Mỗi lần nhấn phím robot đi được một ô.
 Để đặt thêm nấm cho Agent chỉ cần click vào vị trí trống trên bản đồ.
 Nếu robot bắt được agent (agent và robot va chạm) thì game kết thúc.
TÀI LIỆU THAM KHẢO
 Slide Intelligent Agent – Phạm Lê Thị Anh Thư
 2008, Jones_Artificial Intelligence-A Systems Approach
 Phát triển phần mềm hướng Agent – Trần Đình quế, 2010
- HẾT -
Trang

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×