Tải bản đầy đủ (.doc) (26 trang)

BÁO CÁO MÔN HỌC CÔNG NGHỆ PHẦN MỀM HƯỚNG AGENT ĐỀ TÀI: TÌM HIỂU CÁC HỆ ĐA AGENT MỞ

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 (725.57 KB, 26 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

BÁO CÁO MÔN HỌC
CÔNG NGHỆ PHẦN MỀM HƯỚNG AGENT
ĐỀ TÀI: TÌM HIỂU CÁC HỆ ĐA AGENT MỞ
Giáo viên hướng dẫn : TS Nguyễn Mạnh Hùng
Học viên : Nguyễn Thị Kim Chung
Lớp M13CQCS01-B
Hà Nội, tháng 12 năm 2013
Tìm hiểu các hệ đa agent mở
Mục lục
Lời nói đầu 4
Chương 1: Hệ đa agent 5
1.1 Hệ đa agent 5
1.1.1 Khái niệm và ưu điểm của hệ đa agent 5
1.1.1 Khái niệm và ưu điểm của hệ đa agent 5
1.1.2 Đặc trưng và mục đích của hệ đa agent 6
1.1.2 Đặc trưng và mục đích của hệ đa agent 6
1.1.3 Tổ chức của hệ đa agent 6
1.1.3 Tổ chức của hệ đa agent 6
1.2 JACK: Cơ sở hạ tầng 8
1.3 Phương pháp tiếp cận ACMAS 9
Chương 2: OCMAS và AGR 12
2.1 Các nguyên tắc chung của OCMAS 12
2.2 Mô hình AGR 14
2.3 Sơ đồ Cheeseboard 15
2.4 Mô tả cấu trúc tổ chức 15
2.5 Phương pháp luận 17
Chương 3: Ứng dụng 19
3.1 Tổ chức một hội thảo (đánh giá các bài báo khoa học) 19
Kết luận 25


Tài liệu tham khảo 26
Nguyễn Thị Kim Chung 2
Tìm hiểu các hệ đa agent mở
Danh mục hình vẽ
Hình 1: Các "cheeseboard" ký hiệu để mô tả tổ chức cụ thể 15
Hình 2 Đại diện cơ cấu tổ chức 16
Hình 3: Mô tả mô hình ứng dụng độc lập nền tảng (ASPI) 19
Hình 4: Kết quả mô phỏng khi đệ trình bài báo (kết quả khởi đầu) 21
Hình 5: Giao thức tương tác giữa PC chair và PC member (1) 22
Hình 6: Giao thức tương tác giữa PC chair và PC member (2) 23
Hình 7: Giao diện của agent PC chair 24
Hình 8: Mô phỏng cho việc phân công review (quyết định cuối cùng) 24
Nguyễn Thị Kim Chung 3
Tìm hiểu các hệ đa agent mở
Lời nói đầu
Các môi trường tính toán hịên thời như mạng truyền thông, mạng Internet…
thường không đồng nhất, phân tán, động, mở mà chúng ta không thể đoán trước các
hành vi của hệ thống trong thời gian thiết kế. Việc phát triển các hệ phần mềm phức
tạp trên môi trường như vậy đòi hỏi phải có phương pháp luận và công cụ phù hợp.
Mặc dù phương pháp hướng đối tượng được sử dụng rộng rãi hiện nay là một tiến hoá
đáng kể trong lĩnh vực kỹ nghệ phần mềm của những năm 80-90 nhưng nó tỏ ra không
thích ứng với yêu cầu thích nghi, phân tán và tương tác linh hoạt. Trong những năm
gần đây, cách tiếp cận dựa trên agent cho phát triển các hệ phần mềm phức tạp đã thu
hút nhiều quan tâm nghiên cứu. Ngoài khả năng hướng đích, phản xạ một cách tự chủ
với sự thay đổi của môi trường, các thành phần gọi là agent còn có khả năng tương tác
với nhau hoặc dưới dạng cộng tác, hợp tác, cạnh tranh, thương lượng. Tương tác trong
hệ đa agent càng ngày càng được xem là một vấn đề quan trọng cần phải đối mặt khi
phát triển các ứng dụng phân tán.
Bản chất của hệ đa agent là đa chủng, phân tán và mở chính vì thế đề tài này
tập trung vào tìm hiểu kiến trúc tổ chức xã hội trong hệ đa agent.

Nguyễn Thị Kim Chung 4
Tìm hiểu các hệ đa agent mở
Chương 1: Hệ đa agent
1.1 Hệ đa agent
1.1.1 Khái niệm và ưu điểm của hệ đa agent
Hệ đa agent là một hệ nhiều agent tương tác với nhau để hoàn thành mục đích
chung của cả hệ thống và mỗi agent cũng hoàn thành mục đích riêng của mình.
Quá trình tính toán và xử lý thông tin trong hệ đa agent được xem là có nhiều
ưu điểm so với hệ đối tượng như sau [1]:
• Khả năng tính toán hiệu quả: cung cấp khả năng tính toán hiệu quả hơn
nhờ việc phân chia cho các agent khác nhau và các agent có khả năng
phối hợp tốt.
• Độ tin cậy: có nhiều agent cùng tham gia vào 1 vấn đề và có cơ chế trao
đổi , kiểm tra  độ tin cậy tốt hơn.
• Khả năng mở rộng: hệ đa agent là hệ mở vì có thể thêm các agent mới
hoặc bớt các agent đã hoàn thành nhiệm vụ đi.
• Tính manh mẽ: Hệ đa agent có khả năng giải quyết được các bài toán
phức tạp như điều khiển tự động, thương mại điện tử…
• Bảo trì: do hệ đa agent bao gồm nhiều agent, mỗi agent là 1 module có
tính độc lập cao  nếu có vấn đề xảy ra đối với 1 agent cũng không ảnh
hưởng đến các agent khác và khả năng bảo trì cũng tốt hơn nhiều.
• Khả năng phản ứng: Hệ đa agent kế thừa khả năng phản ứng của các
agent đơn nên khi nhận biết được 1 thay đổi của môi trường thì các agent
trong hệ thống sẽ phối hợp với nhau để đưa ra hành động tương ứng.
• Tính linh hoạt: Các agent trong hệ đa agent có khả năng tương tác với
nhau để giải quyết vấn đề chung.
• Khả năng sử dụng lại cao: mỗi agent là 1 module riêng và có 1 chức
năng riêng  có thể sử dụng lại agent này với các ứng dụng khác có
cùng chức năng đó
Nguyễn Thị Kim Chung 5

Tìm hiểu các hệ đa agent mở
1.1.2 Đặc trưng và mục đích của hệ đa agent
Các đặc trưng của hệ đa agent:
• Không có xử lý tập trung, không có điều khiển tập trung
• Không có agent nào có đầy đủ thông tin (dữ liệu, tri thức) của toàn hệ
thống.
• Các agent liên lạc với nhau thông qua việc truyền message ở dạng đối
tượng, và giải nghĩa message bằng ontology.
Mục đích:
• Có khả năng giải quyết được các vấn đề lớn, ngoài khả năng của các
agent đơn lẻ (ví dụ do hạn chế tài nguyên).
• Cho phép tương tác giữa các hệ sẵn có, ví dụ hệ chuyên gia, hệ trợ giúp
quyết định, các giao thức truyền thông sẵn có…
• Tăng tính mở rộng (scalability), mô hình tổ chức của các agent có thể
thay đổi mềm dẻo theo sự biến động của môi trường.
• Cho phép giải quyết bài toán có tính phân tán. Các agent có thể hoạt
động tự chủ, phân tán và có thể tương tác được với các agent khác.
1.1.3 Tổ chức của hệ đa agent
Có nhiều định nghĩa về một tổ chức chính xác có nghĩa là gì. Từ tổ chức là một
từ phức tạp có nhiều nghĩa, Gasser đề xuất một định nghĩa của tổ chức như sau: [2]
Một tổ chức cung cấp một framework cho hoạt động và tương tác thông qua
các định nghĩa về vai trò, hành vi được mong chờ và các mối quan hệ quyền hạn (ví
dụ: kiểm soát).
Định nghĩa này là khá tổng quát và không cung cấp bất kỳ thông tin về cách
thiết kế tổ chức. Jennings và Wooldridge đưa ra một định nghĩa thực tế hơn:
Một tổ chức là một bộ sưu tập các vai trò (role), mà đứng trong mối quan hệ
nhất định với nhau, và có tham gia vào mô hình thể chế hóa hệ thống tương tác với
các vai trò(role) khác "
Nguyễn Thị Kim Chung 6
Tìm hiểu các hệ đa agent mở

Tuy nhiên, định nghĩa này thiếu một tính năng rất quan trọng của các tổ chức:
phân vùng của tổ chức, cách ranh giới được đặt giữa các tiểu tổ chức. Ngoại trừ trong
các tổ chức nhỏ, các tổ chức được cấu trúc như tập hợp của nhiều phân vùng, đôi khi
được gọi là nhóm hoặc cộng đồng, ngữ cảnh, bộ phận, dịch vụ… và mỗi phân vùng
chính nó có thể được chia thành các phân vùng. Từ những định nghĩa, nó có thể lấy
được các tính năng chính của các tổ chức:
• Một tổ chức được thành lập các agent (cá nhân) mà biểu hiện một hành vi
• Tổ chức tổng thể có thể được phân chia thành các phân vùng có thể chồng
chéo lên nhau (gọi là các nhóm phân vùng).
• Hành vi của các agent có chức năng liên quan đến hoạt động tổng thể tổ
chức (khái niệm về vai trò).
• Agents tham gia vào mối quan hệ động (cũng được gọi là mô hình hoạt
động) đó là kiểu mẫu sử dụng phép phân loại của roles, tasks hoặc
protocols.
• Các loại trạng thái có liên quan thông qua mối quan hệ giữa roles, tasks và
protocols
Một yếu tố quan trọng của tổ chức là các khái niệm về vai trò (role). Role được
hiểu là một tập hành vi mà một đối tượng có thể áp đặt lên đối tượng khác để làm thay
đổi khả năng cũng như hành vi của đối tượng đó. Một số phương pháp khác thì xem
role là một tập các đối tượng hoặc thực thể để nhấn mạnh sự tương đồng giữa role
trong chương trình máy tính và trong thế giới thực.
Cấu trúc của tổ chức là những gì tồn tại khi các thành phần cá nhân tham gia
vào hoặc rời khỏi một tổ chức gồm hai khía cạnh: khía cạnh tĩnh và khía cạnh động:
Khía cạnh tĩnh của một tổ chức được làm bằng hai phần: một cấu trúc phân
vùng và một cấu trúc vai trò. Một cấu trúc phân vùng chỉ cách agent được lắp ráp
thành các nhóm và làm thế nào các nhóm có liên quan đến nhau. Một cấu trúc vai trò
được xác định, đối với từng nhóm, bằng một loạt các vai trò và mối quan hệ của họ.
Cấu trúc này cũng xác định tập các ràng buộc rằng các agent phải đáp ứng để đóng
một vai trò cụ thể và lợi ích thu được với vai trò đó.
Nguyễn Thị Kim Chung 7

Tìm hiểu các hệ đa agent mở
Khía cạnh động của một tổ chức có liên quan đến các mô hình thể chế hóa các
tương tác được xác định trong vai trò. Nó cũng định nghĩa:
• Các phương thức để tạo ra, tiêu diệt, nhập nhóm và vai trò.
• Làm thế nào những phương thức được áp dụng và làm thế nào trách nhiệm
và quyền hạn được kiểm soát.
Cách phân vùng và cấu trúc vai trò có liên quan đến hành vi của các agent.
1.2 JACK: Cơ sở hạ tầng
JACK là ngôn ngữ lập trình agent mà ẩn bên dưới là 1 platform cài đặt ngữ nghĩa
của ngôn ngữ lập trình đó, được phát triển dựa trên nền tảng Java. Nó đề cập đến sự
cần thiết đối với hệ thống phần mềm để biểu lộ sự có lý, hành vi giống con người
trong phạm vi vấn đề cụ thể. Agent sử dụng JACK là agents thông minh
Các Agents phải có kế hoạch, mỗi kế hoạch miêu tả cách mà agent phải tương
tác để xử lý với tình huống bất ngờ. Do đó, một agent cố gắng đạt mục tiêu và sử dụng
phương án thích hợp, phương án đó sẽ được xác định bằng việc phân tích sự hiểu biết
của nó đối với môi trường bên ngoài. Mỗi Agent có [3]:
• Tập hợp niềm tin về thế giới
• Tập hợp sự kiện tương ứng
• Tập hợp mục tiêu phát sinh
Agent class: bao gồm tất cả các hàm liên quan đến Agent. Nó cho phép xác định hành
vi của một Agent, khả năng của nó, loại thông điệp và những sự kiện nó có thể cảm
nhận và phương án nó dùng đề hoàn thành mục tiêu. Mỗi JACK agent liên kết với một
quá trình thực hiện độc lập.
Nói chung, đinh nghĩa của lớp này cần bao gồm những câu lệnh nhận thực sau:
• Nền tảng kiến thức mà Agent có thể sử dụng và tham khảo
• Sự kiện mà Agent có thể sẵn sàng để vận hành
• Phương thức mà Agent có thể thực hiện
Database class: Mỗi lớp database mô tả tập hợp các niềm tin mà Agent có thể có. Nó
thể hiện những niềm tin này theo thứ tự, hệ thống cơ sở dữ liệu dựa trên Tuple. Sự
thống nhất mang tính logic của niềm tin mà cơ sở dữ liệu này chứa đựng được duy trì

một cách tự động. Ví dụ: Nếu một agent thêm một niềm tin mẫu thuẫn với niềm tin có
Nguyễn Thị Kim Chung 8
Tìm hiểu các hệ đa agent mở
sẵn, database class tự động phát hiện và loại đi niềm tin cũ đi. Database class không
phải là cách duy nhất mà agent có thể thể hiện thông tin.
Event Class: Những events thúc đẩy một agent hành động. Đó là một số các loại
event trong JACK, mỗi cái sử dụng khác nhau
Các loại event khác nhau này giúp mô hình hóa:
• Sự kích thích nội bộ: về cơ bản sự kiện mà một Agent gửi cho chính nó. Những
sự kiện nội bộ này là sự thực hiện liên tục của một Agent và nhận thức mà nó
đảm bảo.
• Sự kích thích bên ngoài: nhận các thông điệp từ các Agent khác
• Động cơ mà agent có thể có, chẳng hạn như mục tiêu mà các agent cam kết đạt
được.
1.3 Phương pháp tiếp cận ACMAS
Công nghệ phần mềm từ khi agent ra đời cho tới nay có thể được hưởng lợi ích
từ các khái niệm và kiến trúc đề xuất bởi cộng đồng MAS (Multi-Agent Systems) để
đơn giản hóa việc thiết kế các hệ thống phần mềm phức tạp. Để làm cho hệ thống
MAS sẵn sàng cho các ứng dụng công nghiệp, một tổ chức phi lợi nhuận được gọi là
FIPA đã đề xuất một tập hợp các tiêu chuẩn thiết kế hệ thống đa agent phải được đáp
ứng để làm cho MAS của họ tương thích với các hệ thống khác.Một điểm thú vị về các
tiêu chuẩn, các nền tảng đã được xây dựng theo họ (xem Jade và Fipa-OS) dựa trên
một số giả định nằm trong hệ thống MAS. [2]
• Một agent có thể giao tiếp được với bất kỳ agent khác.
• Một Agent cung cấp một tập hợp các dịch vụ trong đó có sẵn cho tất cả các
agent khác trong hệ thống.
• Mỗi agent có trách nhiệm để hạn chế khả năng bị tác động từ các agent
khác.
• Trách nhiệm của mỗi agent là xác định mối quan hệ của nó, tương tác vd
với các agent khác. Do đó mỗi agent “biết được” trực tiếp (thông qua agent

thân quen của nó) tập hợp các agent mà nó có thể tương tác.
Nguyễn Thị Kim Chung 9
Tìm hiểu các hệ đa agent mở
• Mỗi agent có chứa tên của nó theo cách của nó để có thể truy cập được từ
bên ngoài (các khái niệm về ID của Agent cũng được biết đến bởi tất cả các
nhà thiết kế của MAS). Do đó các Agent được cho là phải được tự trị và
không hạn chế vị trí theo cách chúng tương tác.
Jennings và Wooldridge đã chỉ ra được, có thể ACMAS (Agent centered multi-agent
system) bị một số hạn chế khi làm công nghệ các hệ thống lớn:
“Một quan niệm sai lầm phổ biến là hệ thống agent dựa trên yêu cầu không
thực sự cần cấu trúc. Trong khi điều này có thể đúng trong một số trường hợp, hầu hết
các hệ thống agent yêu cầu khá nhiều mức độ hệ thống kỹ thuật. Một số cách của cơ
cấu xã hội thường cần thiết để giảm độ phức tạp của hệ thống , để tăng hiệu quả của hệ
thống và để mô hình chính xác hơn cho các vấn đề được giải quyết”. Điều này dẫn
đến hai hạn chế lớn theo Jenning:
Các mô hình và kết quả của sự tương tác vốn đã không thể đoán trước.
Dự đoán hành vi của tổng thể hệ thống dựa trên các thành phần cấu thành của
nó là vô cùng khó khăn (đôi khi không thể ) bởi vì khả năng cao các hành vi khẩn cấp
(và nằm ngoài mong muốn).
Ngoài ra không thể khẳng định chắc chắn rằng các agent được thiết kế bởi
nhiều nhà thiết kế khác nhau có thể tương tác với nhau mà hoàn toàn không có bất cứ
điều gì xảy ra. Điều này đặt ra một sự đồng nhất mạnh mẽ vào các agent: agent có
nghĩa vụ phải sử dụng cùng một ngôn ngữ và được xây dựng sử dụng kiến trúc rất
giống nhau. Những điểm yếu khác của các MAS là:
• An ninh của các ứng dụng: khả năng mà tất cả các agent có thể giao tiếp
mà không cần bất kỳ điều khiển bên ngoài có thể dẫn đến các vấn đề an
ninh. Khi tất cả các agent có thể tương tác một cách tự do hoàn toàn, đó là
trách nhiệm của cá agent và đó cũng là của các nhà thiết kế ứng dụng. Vì
không có quản lý an ninh “chung” nó rất dễ dàng cho một agent hành động
không thể kiểm soát và có thể xảy ra gian lận. Ngược lại,nếu các biện pháp

an ninh quá mạnh có thể ngăn chặn hệ thống làm việc hiệu quả trên lĩnh vực
mà yêu cầu tốc độ phản ứng, nó quan trọng hơn là an ninh.
Nguyễn Thị Kim Chung 10
Tìm hiểu các hệ đa agent mở
• Mô đun : trong công nghệ phần mềm cổ điển, các thực thể hợp tác chặt chẽ
để cùng nhau được nhóm lại thành các module hay “gói”. Đối với mỗi
module, các quy tắc của khả năng hiển thị được xác định. Một số tổ chức có
thể được nhìn thấy bởi các gói khác ( và thậm chí cả phần mềm) trong khi
những gói khác không thấy, vì vậy được gọi là tổ chức tư nhân, được ẩn đi
và do đó không thể truy cập từ bên ngoài gói. Điều này không thể với
AOMAS nơi mà tất cả các agent có thể truy cập từ khắp mọi nơi. Nó phải đề
xuất một cách quan trọng để nhóm các agent phải làm việc cùng nhau. Tuy
nhiên, đề xuất này không nên có ở những nhóm tĩnh, nhưng đề xuất một
cách để nhóm các tác nhân tích cực làm việc với nhau. Hơn nữa ,các agent
sẽ có thể tự động tự thay đổi nhóm của mình trong suốt cuộc đời của agent
theo một số quy tắc thiết kế chung.
• Framework/ phương pháp tiếp cận thành phần. Công nghệ phần mềm
hiện đại đã chỉ ra tầm quan trọng của khái niệm Framework/thành phần.
Một Framework là một kiến trúc trừu tượng trong đó các thành phần Plugin.
Nó thường cần thiết để xác định các Sub-Frameworks của Frameworks. Ví
dụ: trong một giao diện Frameworks, một số thành phần lớn như biểu đồ,
cây hoặc bảng (xem các thành phần Jtree hoặc Jtable của Java), có thể giới
thiệu sub framework của họ. Trong ACMAS chỉ có một framework, nền
tảng riêng của mình và nó không có thể mô tả sub-framework trong đó
tương tác cụ thể có thể được xây dựng.
Nguyễn Thị Kim Chung 11
Tìm hiểu các hệ đa agent mở
Chương 2: OCMAS và AGR
Trong phần này sẽ mở rộng và tiếp tục trình bày và phân tích các khái niệm
chính của tổ chức tập trung hệ thống đa nhân (OCMAS: Organization centered multi-

agent system) và thuộc tính của mình để xây dựng MAS và sẽ tập trung vào một mô
hình cụ thể của OCMAS, được gọi là AGR, cho Agent / Nhóm / Vai trò, một mô hình
tổ chức đơn giản nhưng rất mạnh mẽ và tổng quát của hệ thống đa agent. [2]
2.1 Các nguyên tắc chung của OCMAS
Phần trước đã cho phép chúng ta hiểu được các khái niệm cơ bản của tổ chức.
Bây giờ xem xét hệ thống đa agent từ một quan điểm tổ chức. Câu hỏi đặt ra là: các
nguyên tắc chính mà từ đó tổ chức tập trung hệ thống đa agent (OCMAS) có thể được
tiếp cận với cả quá trình phân tích và thiết kế là gì? [2]
Việc sử dụng của các tổ chức cung cấp một cách thức mới để mô tả cấu trúc và
sự tương tác diễn ra trong MAS. Cấp độ tổ chức, cách tổ chức được mô tả nằm trong
mức độ khác hơn mức agent mà thường là mức chỉ xem xét trong ACMAS. Mức này,
có thể được gọi là "cấp độ tổ chức" (hoặc "cấp xã hội") chịu trách nhiệm cho các mô tả
về các khía cạnh cấu trúc và động lực của các tổ chức.
Cấp độ tổ chức là một đại diện trừu tượng của tổ chức cụ thể, tức là một đặc
điểm kỹ thuật của các khía cạnh cấu trúc và động học của MAS, trong đó mô tả các
mối quan hệ kỳ vọng và mô hình hoạt động đó sẽ xảy ra ở cấp agent và do đó hạn chế
và tiềm năng tạo thành phạm vi hiểu biết mà agent cư xử.
Các nguyên tắc của tổ chức:
• Nguyên tắc 1: Các cấp độ tổ chức mô tả "cái gì" và không phải là "làm
thế nào". Cấp độ tổ chức áp đặt một cấu trúc thành các mô hình của các
hoạt động agent, nhưng không mô tả agent cư xử như thế nào. Nói cách
khác, cấp độ tổ chức không chứa bất kỳ "mã" mà có thể được thực hiện
bởi các agent, nhưng cung cấp các chi tiết kỹ thuật, sử dụng một số loại
tiêu chuẩn hoặc luật lệ, của các giới hạn và mong đợi được đặt trên hành
vi của agent.
Nguyễn Thị Kim Chung 12
Tìm hiểu các hệ đa agent mở
• Nguyên tắc 2: Không có mô tả agent và do đó không có vấn đề tinh thần
(mental issues) tại cấp độ tổ chức. Cấp độ tổ chức không nên nói bất cứ
điều gì về cách thức agent sẽ làm sáng tỏ mức này. Do đó, các agent

phản ứng cũng như agent cố ý có thể hành động trong một tổ chức. Cấp
độ tổ chức nên loại bỏ bất kỳ vấn đề về tâm lý như niềm tin, mong
muốn, ý định, mục tiêu, vv và chỉ cung cấp mô tả các hành vi dự kiến.
• Nguyên tắc 3: Một tổ chức cung cấp một cách phân vùng hệ thống, mỗi
phân vùng (hoặc nhóm) tạo nên một bối cảnh tương tác cho các agent.
Do đó, một nhóm là một đơn vị tổ chức trong đó tất cả các thành viên có
thể tương tác một cách tự do. Nhiều Agent thuộc về một nhóm có thể nói
chuyện với nhau, sử dụng cùng một ngôn ngữ. Hơn nữa, nhóm thiết lập
ranh giới. Trong khi đó, cấu trúc của một nhóm A có thể được biết đến
tất cả các agent thuộc A, nó được ẩn cho tất cả các agent không thuộc về
A. Như vậy, nhóm mờ đục dần với nhau và không giả định một tiêu
chuẩn chung của sự tương tác agent và kiến trúc.
Từ những nguyên tắc này tạo ra những quan điểm sau:
• Một tổ chức có thể được xem như một framework năng động, nơi các
agent là thành phần. Vào một nhóm/tham gia một vai trò có thể được
xem như một tiến trình plug-in nơi một thành phần được tích hợp vào
một framework.
• Thiết kế hệ thống ở cấp độ tổ chức có thể đưa ra những vấn đề cần thực
hiện, chẳng hạn như lựa chọn xây dựng các agent phải đóng một vai trò
cụ thể, lại mở ra.
• Nó có thể nhận ra sự thật "Open System" mà kiến trúc các agent được để
không xác định.
• Có thể xây dựng hệ thống an toàn sử dụng các nhóm như "hộp đen" bởi
vì những gì xảy ra trong một nhóm không thể được nhìn thấy từ agent
mà không thuộc nhóm đó. Nó cũng có thể xác định chính sách an ninh
để giữ cho điều không mong muốn ra khỏi một nhóm.
Nguyễn Thị Kim Chung 13
Tìm hiểu các hệ đa agent mở
Để cho thấy làm thế nào những nguyên tắc có thể được hiện thực hóa trong một
mô hình tính toán, phần này sẽ trình bày các vấn đề cơ bản và phương pháp luận của

các agent / Nhóm / Vai trò mô hình, hoặc gọi là mô hình AGR, còn được gọi là mô
hình Aalaadin. Mô hình này phù hợp với các nguyên tắc chung OCMAS mà đã đề xuất
trong phần trước.
2.2 Mô hình AGR
Mô hình AGR (Agent/Group/Role) được dựa trên ba khái niệm nguyên thủy,
Agent, nhóm và vai trò mà cấu trúc kết nối và không thể xác định được bởi các yếu tố
gốc. Đáp ứng một bộ tiên đề mà hợp nhất các khái niệm này. [2]
• Agent: một agent là một hoạt động, giao tiếp thực thể đóng vai trò trong các
nhóm. Một agent có thể giữ nhiều vai trò, và có thể là thành viên của nhiều
nhóm. Một đặc tính quan trọng của mô hình AGR, phù hợp với các nguyên
tắc! ở trên, là không hạn chế được đặt trên kiến trúc của một agent hoặc về
khả năng về tinh thần của nó.
• Nhóm (Group): một nhóm là một tập hợp các agent chia sẻ một số đặc
điểm chung. Một nhóm là sử dụng như một bối cảnh cho một mô hình hoạt
động, và được sử dụng cho các tổ chức phân vùng.
Theo nguyên tắc ở trên, hai agent có thể giao tiếp khi và chỉ khi họ thuộc về
cùng một nhóm, nhưng một agent có thể thuộc về nhiều nhóm. Tính năng
này sẽ cho phép định nghĩa của cơ cấu tổ chức
• Vai trò (Role): vai trò là đại diện trừu tượng của một vị trí chức năng của
một agent trong một nhóm. Một agent phải đóng một vai trò trong một
nhóm, nhưng một agent có thể đóng nhiều vai trò. Vai trò là địa phương cho
các nhóm, và một vai trò phải được yêu cầu của một agent. Một vai trò có
thể được tạo nên bởi một số agent.
Nguyễn Thị Kim Chung 14
Tìm hiểu các hệ đa agent mở
2.3 Sơ đồ Cheeseboard
Trong sơ đồ cheeseboard, một nhóm được biểu diễn như là một hình bầu dục
trông giống như một bảng (board). Agents được biểu diễn như Skittles mà đứng trên
bảng (board) và đôi khi đi qua bảng khi cùng thuộc về một số nhóm. [2]
Hình 1: Các "cheeseboard" ký hiệu để mô tả tổ chức cụ thể

Một vai trò được thể hiện như một hình lục giác và nối mạng hình lục giác này
cho các agent. Hình 2 cho một ví dụ của một tổ chức cụ thể bằng cách sử dụng sơ đồ
cheeseboard. Trong bức tranh này, các agent F là thành viên của cả G2 và G3, đóng
vai trò R4 và R5 trong G2 và R6 trong G3.
2.4 Mô tả cấu trúc tổ chức
Các ký hiệu cheeseboard, trong khi rất phù hợp cho tổ chức cụ thể, không phải
là phù hợp với mô tả về mối quan hệ trong tổ chức ở một mức độ trừu tượng, tức là
cho định nghĩa của cơ cấu tổ chức. Do đó đã giới thiệu một ký hiệu để mô tả cơ cấu tổ
chức. [2]
Để thể hiện sơ đồ tổ chức trong một cách đơn giản và thuận tiện hơn, đề xuất
một tập hợp các đồ họa. Trong ký hiệu này, cấu trúc nhóm, tức là đại diện trừu tượng
của nhóm, được biểu diễn như hình chữ nhật, trong đó vai trò, biểu diễn như là hình
lục giác, được đặt. Hạn chế được biểu diễn như là mũi tên giữa các vai trò. Ở đây sử
Nguyễn Thị Kim Chung 15
Tìm hiểu các hệ đa agent mở
dụng hai loại mũi tên. Mũi tên lớn được sử dụng cho sự tương ứng và mũi tên mỏng
được sử dụng cho mô hình phụ thuộc.
Sơ đồ tương tác, được biểu diễn như hình chữ nhật tròn, được sử dụng để mô tả
giao thức truyền thông giữa các vai trò. Mà không xem xét cách agent giao tiếp, có thể
để mô tả thông tin liên lạc ở một mức độ trừu tượng, ví dụ như khó khăn cụ thể giữa
các vai trò. Một sự tương tác có thể xảy ra giữa hai hay nhiều agent và được mô tả ở
cấp độ tổ chức giữa các vai trò. Vai trò khởi xướng của sự tương tác được đại diện bởi
một mũi tên chỉ hướng tới sự tương tác. Vai trò tham gia khác được biểu diễn như là
đường nét đơn giản giữa tương tác và vai trò. Hình 3 cho thấy một cơ cấu tổ chức có
liên quan đến tổ chức cụ thể của hình 1. Trong sơ đồ này, nhiều trường hợp khác nhau
được thể hiện. Có 3 cấu trúc nhóm, được gọi là GS1, GS2 và GS3. Các d1 phụ thuộc
thể hiện sự tương ứng giữa vai trò của R2 và R3 GS1 vai trò của GS2. điều này cho
phép định nghĩa của agent mà hành động như đại diện giữa hai nhóm. Các d2 phụ
thuộc thể hiện một sự phụ thuộc giữa R4 và R5, có nghĩa là tất cả các agent playing R5
phải play R4. Tương tác I2, I5 và I6, có liên quan đến chỉ có một vai trò, sẽ được thực

hiện bởi các agent khác nhau đóng vai trò tương tự. Các I3 tương tác diễn ra giữa các
agent tham gia ba vai trò. Tương tác có thể được tìm bởi các loại khác nhau của sơ đồ:
Máy tự động, Petri lưới hoặc trình tự sơ đồ tổ chức, như chúng ta sẽ thấy dưới đây.
Hình 2 Đại diện cơ cấu tổ chức
Nguyễn Thị Kim Chung 16
Tìm hiểu các hệ đa agent mở
2.5 Phương pháp luận
Các nhà thiết kế đầu tiên phải xác định các nhóm chính của ứng dụng. Một
nhóm có thể được sử dụng cho hai mục đích chính: [2]
Để đại diện cho một tập hợp các agent tương tự. Trong trường hợp này, một
nhóm chỉ đơn thuần là một bộ sưu tập các agent có biểu hiện tương đồng nhất định.
Thường có vài vai trò có thể chứa nhiều agent. Ví dụ, trong AGR, có một tập hợp các
agent bằng cách sử dụng ngôn ngữ giao tiếp như nhau, chẳng hạn như ACL FIPA,
người ta có thể thiết kế một nhóm FIPA. Sau đó, các agent FIPA được gọi là Người
điều hành Directory (DF) và dịch vụ chuyển tin nhắn (MTS) sẽ được biểu diễn như là
agent DF và vai trò MTS tương ứng. Tất cả các agent khác chỉ đơn thuần là sẽ có một
vai trò 'thành viên' đơn giản.
Đại diện cho một hệ thống dựa trên chức năng: mỗi vai trò sau đó tương ứng
với một chức năng hoặc một hệ thống phụ của toàn bộ hệ thống. Agents sau đó hoạt
động như các chuyên gia đặc trưng bởi kỹ năng của mình để đạt được các chức năng
liên quan đến vai trò. Ví dụ trong một mạng máy tính, máy in có khả năng in và có thể
liên quan đến vai trò của "máy in". Một nhóm nghiên cứu Robot bóng đá sẽ có những
vai trò "thủ môn", "tiền đạo", "trung vệ"…
Một khi các nhóm đã được xác định, cơ cấu tổ chức tổng thể được xây dựng sử
dụng một số mô hình tổ chức chẳng hạn như mô hình tổ chức thương mại điện tử được
trình bày trong phần tiếp theo như một ví dụ.
Các phân vùng của agent mô tả cách một tổ chức được phân rã thành các tiểu
hợp phần, và tùy chọn cách các thành phần phụ được thêm tạo thành các thành phần
riêng của, và cách mà những tiểu hợp phần được tổng hợp. Trong AGR, phân cấp của
nhóm, còn được gọi là holarchy bởi Odell và Parunak trong đó một nhóm được đại

diện bởi một agent ở các cấp độ tiếp theo, có thể được đại diện bởi một mô hình tổ
chức, nơi một số "đại biểu tham dự agent trong một nhóm được xem như" agent đại
diện 'trong một nhóm khác. Khi cơ cấu tổ chức được xây dựng cùng với động tổ chức
của tạo nhóm đó là thời gian để có được vào định nghĩa của vai. Sau đó, người ta có
thể sử dụng Gaia phương pháp để điền vào các vai trò và gắn chúng với các cấu trúc
chung. Quan điểm được đưa ra ở đây có một số kết nối với thiết kế hướng đối tượng,
Nguyễn Thị Kim Chung 17
Tìm hiểu các hệ đa agent mở
nơi mà các sơ đồ chính là sơ đồ lớp, đại diện cho các khía cạnh tĩnh của các đối tượng,
và các sơ đồ trình tự, cho một cái nhìn sâu sắc về các khía cạnh năng động của các đối
tượng. Tuy nhiên, chúng ta thường sử dụng sơ đồ cheeseboard để có được một ý tưởng
đầu tiên của mô hình tổ chức người ta có thể sử dụng để xây dựng một OCMAS
Nguyễn Thị Kim Chung 18
Tìm hiểu các hệ đa agent mở
Chương 3: Ứng dụng
3.1 Tổ chức một hội thảo (đánh giá các bài báo khoa học)
Hãy xem xét ví dụ về việc tổ chức một cuộc hổi thảo trong đó có các roles như
Program committee chair - Chủ tịch hội đồng, PC member - thành viên hội đồng đánh
giá, primary PC member - trưởng nhóm đánh giá và Author - tác giả bài báo được
đánh giá, cũng là thành viên hội đồng. PCChair có trách nhiệm assign bài báo cho
thành viên hội đồng đọc và đánh giá. Mỗi bài báo cần được đánh giá bởi tối thiểu n
thành viên. Thành viên không được đánh giá bài báo của chính mình. Đối với mỗi bài
báo, PC Chair sẽ chỉ định một thành viên trong hội đồng làm trưởng nhóm. Người này
có trách nhiệm thu thập comment từ nhóm đánh giá, tổng hợp, giải quyết các mâu
thuẫn trong các đánh giá của thành viên. Trên cơ sở đó quyết định bài báo cáo được
thông qua hoặc hủy bỏ. [4]
Hình 3: Mô tả mô hình ứng dụng độc lập nền tảng (ASPI)
Nguyễn Thị Kim Chung 19
Tìm hiểu các hệ đa agent mở
Như thể hiện trong hình, lớp PCChairRole được định nghĩa là một lớp con của

lớp LeadingRole, trong khi các lớp AuthorRole và PCMemberRole được định nghĩa là
lớp con của lớp Role. Các đối tượng PrimaryPCMemberRole là một PCMemberRole
đặc biệt có quyền accept/reject bài báo, vì vậy, nó được định nghĩa như là một lớp con
của lớp PCMemberRole. Một đối tượng PCChairRole chịu trách nhiệm assign việc
review bài báo cho các đối tượng PCMemberRole, do đó mối quan hệ liên kết "assign
paper" được định nghĩa giữa hai lớp này. Một PrimaryPCMemberRole ra quyết định
về việc chấp nhận một bài báo, do đó, nó có một mối quan hệ "notify decision" với tác
giả của bài báo để thông báo về kết quả. Ngoài ra, AuthorRole có một mối quan hệ
không tương thích với cả hai PCMemberRole và PrimaryPCMemberRole. Điều này có
nghĩa rằng một PCMemberRole hoặc một PrimaryPCMemberRole không thể đánh giá
bài báo của chính mình.
Khi thiết kế mô hình ứng dụng độc lập nền tảng, sử dụng JINI framework của Sun
làm middleware cho phép các agents giao tiếp với hệ và với các không gian roles cũng
như giao tiếp với nhau. Kiến trúc JINI được thiết kế để giải quyết vấn đề quản trị
mạng bằng cách cung cấp một giao diện mà các thành phần khác nhau của mạng có
thể tham gia hoặc rời khỏi mạng bất cứ lúc nào. Trái tim của hệ thống JINI là bộ 3
giao thức discovery, join, và lookup. Discovery: được dùng khi một dịch vụ tìm kiếm
một dịch vụ tra cứu đã được đăng ký với nó. Join: được dùng khi một dịch vụ đã định
vị được dịch vụ tra cứu và yêu cầu kết hợp với nó.Lookup: xảy ra khi người dùng/tác
nhân cần xác định và qua đó triệu gọi một dịch vụ được mô tả bởi giao tiếp và năng
lực phục vụ và các đặc tính khác của nó.
Cụ thể hơn, cả không gian roles và tập agent đăng ký các dịch vụ mà chúng cung
cấp với hệ JINI, vì vậy các agent có thể tìm kiếm một dịch vụ nào đó và gọi nó khi cần
thiết. Trong khi đó, mỗi agent cũng đăng ký chính nó như là một proxy trong hệ JINI,
vì vậy các agent có thể tìm thấy nhau và giao tiếp với nhau bằng cách truyền message
không đồng bộ. Để biêt thêm chi tiết của phương pháp này, hãy tham khảo phần trước
về việc các agents có thể giao tiếp với nhau không đồng bộ như thế nào.
Ứng dụng hệ thống đa agents mở được phát triển dựa trên mô hình ASPS cung
cấp một giao diện người dùng cho phép người sử dụng đệ trình một bài báo hoặc đóng
vai một thành viên hội đồng đánh giá. Một Agents được đại diện cho tác giả khi đệ

Nguyễn Thị Kim Chung 20
Tìm hiểu các hệ đa agent mở
trình bài báo thì sẽ lấy role Author từ tập roles còn khi review bài báo thì sẽ lấy role
Program Committee . Trong quá trình này, việc gán role được tự động thực hiện bởi
các máy chủ quản lý không gian roles. Khi hết thời hạn nộp bài, quá trình gán review
các bài báo cáo bắt đầu. Agent PC Chair (Agent chủ tịch) căn cứ keywords trong các
bài báo để xác định các Agent Program Committee có khả năng review dựa trên hiểu
biết thế mạnh của họ về một lĩnh vực nào đó phù hợp, và tạo ra một bảng phân công
review ban đầu. Một kết quả mô phỏng cho một bảng như vậy được minh họa trong
sau:
Hình 4: Kết quả mô phỏng khi đệ trình bài báo (kết quả khởi đầu)
Từ bảng này có thể thấy việc gán review ban đầu không cân đối: một số bài báo
được giao cho nhiều người đánh giá, trong khi một số khác chỉ có 1 người kiểm tra. Để
cân bằng số người đánh giá cho mỗi bài báo, PCChair chủ tịch cần tìm người nhận xét
bổ sung cho những bài báo mà không có đủ người nhận xét , và có thể bỏ bớt một số
người nhận xét cho những bài báo mà có quá nhiều người nhận xét. Tất nhiên có thể
một người được gán thêm không đồng ý việc review thêm tài liệu đó (Vì không rơi
vào lĩnh vực họ hiểu). Điều này đòi hỏi các PCChair đàm phán với các thành viên hội
đồng để đạt được mục tiêu của mình . Một giao thức tương tác đơn giản hóa để thực
hiện việc đàm phán đó được thể hiện trong hình 5:
Nguyễn Thị Kim Chung 21
Tìm hiểu các hệ đa agent mở
Hình 5: Giao thức tương tác giữa PC chair và PC member (1)
Như hình vẽ , Chủ tịch hội đồng đầu tiên tạo một yêu cầu cho một thành viên hội đồng
review một bài báo. Các thành viên hội đồng có sự lựa chọn hoặc chấp nhận hoặc từ
chối yêu cầu. Nếu yêu cầu được chấp nhận, chủ tịch thông báo cho thành viên về thời
hạn hoàn thành review. Nếu thành viên hội đồng phủ quyết (không thể hoàn thành với
thời hạn đó), cuộc nói chuyện kết thúc.
Nguyễn Thị Kim Chung 22
Tìm hiểu các hệ đa agent mở

Ngược lại, nếu thành viên xác nhận ok, Chủ tịch xác nhận với thành viên đánh
giá đã commit assign review. Tương tự như vậy , đối với mỗi bài báo, Chủ tịch hội
đồng cần phải chỉ định một thành viên đánh giá phụ trách chung việc đánh giá. Một
giao thức tương tác đơn giản hóa cho việc communicate như vậy được minh họa trong
hình 6:
Hình 6: Giao thức tương tác giữa PC chair và PC member (2)
Giao diện người dùng của các agent PC Chair được minh họa trong Hình 7. Từ
đó, chúng ta có thể thấy rằng Agent PC Chair giao tiếp với hai agent, tức là, Agent_4
và Agent_6, và cuối cùng chỉ định Agent_6 là thành viên đánh giá chính cho Paper_8.
Nguyễn Thị Kim Chung 23
Tìm hiểu các hệ đa agent mở
Hình 7: Giao diện của agent PC chair
Sau khi assign review các bài báo trở nên cân bằng và mỗi bài báo đã được chỉ
định một review team lead, hệ thống tạo ra các bảng phân công review cuối cùng.
Hình 8 cho thấy các kết quả mô phỏng cho việc phân công review cuối cùng.

Hình 8: Mô phỏng cho việc phân công review (quyết định cuối cùng)
Nguyễn Thị Kim Chung 24
Tìm hiểu các hệ đa agent mở
Kết luận
Trong phần đầu đã chỉ ra định nghĩa hệ đa agent. Một số đặc điểm, vai trò và tổ
chức của nó. Giúp cho các bạn hiểu thêm một chút về JACK và ACMAS cùng một số
nhược điểm mà OCMAS có thể giải quyết. Phần tiếp theo là chi tiết hơn về OCMAS
và mô hình AGR, thấy được làm thế nào nó có thể ứng dụng thiết kế sử dụng những
khái niệm hoàn toàn tuân thủ các nguyên tắc OCMAS. AGR cung cấp một cách để
phân vùng một hệ thống thông qua các khái niệm về nhóm. Do đó, những hạn chế
chính của ACMAS biến mất: nó có thể xây dựng các ứng dụng an toàn ở cấp độ nhóm,
bằng cách thiết kế cổng, vai trò ngăn chặn agent không được phép nhập vào một
nhóm, hoặc bằng cách mô tả tiêu chuẩn có liên quan đến nhóm và vai trò. Các chương
trình phức tạp có thể được xây dựng bằng cách sử dụng các nhóm như các khuôn khổ

năng động mà agent có thể tạo ra.
Báo cáo đã trình bày một tập hợp các sơ đồ (sơ đồ cơ cấu tổ chức, sơ đồ
"cheeseboard" và sơ đồ trình tự tổ chức) có thể đại diện cho các khía cạnh khác nhau
của OCMAS.
Cuối cùng, là một case study nhỏ về áp dụng hệ đa agent mở để xây dưng, tổ
chức một hội thảo như nào.
Mặc dù đã cố gắng tìm hiểu tài liệu để hoàn thành báo cáo này nhưng em mới
chỉ ra được một phần nhỏ của kiến trúc tổ chức xã hội trong hệ đa agent, vẫn còn
nhiều vấn đề phải nghiên cứu và làm rõ hơn nữa. Và nếu có điều kiện em sẽ tiếp tục
tìm hiểu thêm về đề tài trong thời gian tới.
Nguyễn Thị Kim Chung 25

×