GIAO TIẾP GIỮA CÁC AGENT TRONG HỆ BKAS

Một phần của tài liệu đồ án công nghệ thông tin Xây dựng mô hình hệ thống đa agent BKAS và xây dựng hệ thống hỗ trợ chuẩn đoán bệnh dưa trên mô hình BKAS. (Trang 57)

với nhau, trên cơ sở đú chỳng điều phối các hoạt động của chúng và hợp tác với các agent khác. Điều này làm nảy sinh một câu hỏi quan trọng là: các giao thức nào và các kỹ thuật truyền thông nào là có ích để tăng cường sự cộng tác giữa các agent tham gia trong quá trình truyền thông đó. Trong một hệ đa agent, có nhiều cách được đề xuất cho các agent để trao đổi thông tin với agent khỏc. Cỏc agent có thể trực tiếp trao đổi các thông điệp, hoặc chúng có thể tự tổ chức thành một hệ liên đoàn và giao tiếp với nhau thông qua các agent trung gian đặc biệt (facilitator agent), hoặc chúng có thể phổ biến rộng rãi (broadcast) các thông báo. Cách tiếp cận phổ biến khác được sử dụng cho phép các agent truyền thông qua lại với nhau là thông qua một kho dữ liệu dùng chung - được gọi là blackboard - tại đó thông tin có thể được gửi đi và nhận về.

1.18 Vấn đề giao tiếp trong hệ đa agent

Trong hệ thống đa agent, mỗi agent cần có khả năng tương tác và giao tiếp với các agent khác và với môi trường xung quanh để hợp tác và chia sẻ tri thức. Để làm được điều này, ngoài cơ chế truyền thông, giữa các agent cần phải có một ngôn ngữ biểu đạt chung hoặc cú cỏc ngôn ngữ có thể chuyển đổi qua lại và sử dụng chung nền tảng tri thức để có thể hiểu được các thông điệp trao đổi với nhau. Hiện nay chưa có một ngôn ngữ nào được thừa nhận cho mọi agent, mọi nơi, mọi lúc để thể hiện các câu hỏi và thông tin. Tuy nhiên, một ngôn ngữ giao tiếp giữa các agent cần có một số đặc trưng cơ bản, đảm bảo tính tự chủ và không phụ thuộc vào cấu trúc trong của agent:

Về hình thức: một ngôn ngữ giao tiếp tốt cho các agent phải có tính tường thuật, đơn giản về mặt cú pháp, và con người có thể hiểu được. • Về nội dung: ngôn ngữ giao tiếp nên được phân tầng theo một cách

nào đó mà thích hợp cả với các hệ thống khác. Nghĩa là ngôn ngữ giao tiếp giữa các agent nờn cú những nét đặc trưng (riêng biệt) - để mô tả hoạt động giao tiếp, ngôn ngữ biểu đạt nội dung - để mô tả thông tin về lĩnh vực muốn giao tiếp.

Về ngữ nghĩa: ngữ nghĩa của ngôn ngữ giao tiếp cũng cần bộc lộ được những thuộc tính về mặt ngữ nghĩa của một ngôn ngữ bất kỳ nào khác.

Về thực hiện: việc thực hiện cũng nên có hiệu quả, cả về mặt tốc độ, cả về mặt sử dụng băng thông đường truyền.

Networking: ngôn ngữ truyền thông giữa các agent cũng cần phù hợp với kỹ thuật mạng hiện đại.

Về môi trường: môi trường có tính phân bố cao, không đồng nhất, và thực sự là một môi trường động.

Tính tin cậy: ngôn ngữ giao tiếp phải hỗ trợ cho các cuộc truyền thông được an toàn và tin cậy.

Ngôn ngữ thực hiện, kiến trúc phần mềm agent, và các ứng dụng cũng sẽ ảnh hưởng tới việc thiết kế ngôn ngữ giao tiếp giữa các agent. Khi các ứng dụng agent ngày càng trở nên phức tạp, nhu cầu diễn đạt và gìn giữ thêm những tri thức về môi trường, lịch sử, và các mục đích của agent cũng sẽ phát sinh, bởi vì một agent có thể phản ứng lại một cách tự chủ đối với các sự kiện xảy ra trong môi trường, agent cần một môi trường kiểu mẫu và một tập các luật quản lý các hành động của nó. Vì vậy, một ngôn ngữ truyền thông giữa các agent phải là một ngôn ngữ biểu diễn tri thức, cho phép trao đổi tri thức giữa các agent.

1.19 Các phương pháp giao tiếp

Cơ chế truyền thông giỳp cỏc agent trao đổi thông tin với nhau, trên cơ sở đó agent điều phối hoạt động của mình và hợp tác với các agent khác. Điều này làm nảy sinh một câu hỏi quan trọng: các giao thức nào và các kỹ thuật truyền thông nào là có ích để tăng cường sự cộng tác giữa các agent tham gia trong quá trình truyền thông đó? Trong một hệ đa agent, đã có nhiều phương pháp được đề xuất để agent trao đổi thông tin với các agent khỏc. Cỏc agent có thể trực tiếp trao đổi các thông điệp (truyền thông trực tiếp), hoặc chúng có thể tự tổ chức thành một hệ liên đoàn và giao tiếp với nhau thông qua các agent trung gian đặc biệt (facilitator agent), hoặc chúng có thể gửi các thông báo tới tất cả các agent khác (broadcast). Một phương pháp khác cho phép các agent truyền thông qua lại với nhau là thông qua một kho dữ liệu dùng chung - được gọi là blackboard - tại đó thông tin có thể được gửi đi và nhận về.

1.19.1 Truyền thông trực tiếp

Truyền thông trực tiếp thiết lập các kết nối vật lý trực tiếp với các agent khác thông qua một giao thức như giao thức TCP/IP đảm bảo sự đến nơi an toàn của cỏc gúi tin. Kết nối vật lý ở đây ngụ ý rằng: agent tham gia giao tiếp phải nhận biết được agent khác trong hệ thống. Agent có thể lấy được địa chỉ của các agent khác theo hai cách:

• Từ các thông điệp nhận được từ các agent khác (địa chỉ là một phần trong thông điệp), hoặc

• Từ một đối tượng trung tâm (centralized object), ví dụ:

Conversation-manager trong COOL hoặc AgentNameServer trong

JATLite) - giống như một dịch vụ chỉ dẫn (directory service) mà tại đó tất cả các agent tham gia vào hệ thống đều phải đăng ký với đối tượng này.

Agent gửi có thể truy cập địa chỉ của các agent nhận bằng cách tìm kiếm trong đối tượng trung tâm này. Việc đăng ký giống như là một quá trình khởi động để lấy các thông tin về tất cả các agent tham gia vào hệ thống. Kỹ

thuật truyền thông trực tiếp được sử dụng trong hầu hết các platform và các ngôn ngữ kiến trúc agent đang tồn tại.

1.19.2 Các hệ liên đoàn

Khi số lượng các agent trong hệ thống trở nên quá lớn thì chi phí và việc xử lý liên quan đến vấn đề truyền thông trực tiếp trở nên không thể cáng đáng nổi. Một trong những phương pháp nhằm loại bỏ yếu điểm này đó là tổ chức một nhúm cỏc agent thành một hệ liên đoàn. Hình 5 mô tả cấu trúc của một hệ liên đoàn. Trong hệ liên đoàn này, các agent không liên lạc trực tiếp với agent khác. Thay vào đú, chỳng giao tiếp thông qua một agent trung gian đặc biệt. Ở đây, mỗi một nhóm agent có một agent trung gian tích luỹ các tri thức và các nhu cầu, khả năng riêng biệt của các agent trong nhúm. Cỏc agent cũng có thể gửi các yêu cầu và thông tin về mức độ ứng dụng tới các agent trung gian và nhận về các thông tin phản hồi. Các agent trung gian sẽ sử dụng các thông tin nhận được từ các agent để truyền thông điệp mức ứng dụng (application-level message) và gửi chúng tới địa chỉ tương ứng. Trong hệ thống này, các agent sẽ tổ chức thành một tập đoàn, ở đó chúng từ bỏ quyền tự trị của chúng và tuân theo sự chi phối của các agent trung gian; và các agent trung gian này sẽ chịu trách nhiệm đáp ứng các nhu cầu của các agent trong hệ thống.

1.19.3 Truyền thông quảng bá

Đây là trường hợp một thông điệp được truyền tới tất cả các agent trong môi trường, hoặc agent gửi không biết ai sẽ là agent nhận (chẳng hạn như khi một agent loan báo một nhiệm vụ và muốn chọn ra từ tất cả các agent những agent có thể thực hiện nhiệm vụ đó). Có thể có hai lựa chọn sau:

• Agent gửi có thể gửi thông điệp tới tất cả các agent khác trong hệ thống, hoặc:

• Agent gửi có thể duy trì những kết nối truyền thông riêng biệt tới tất cả các agent trong hệ thống và gửi tới mỗi agent đó một thông điệp trực tiếp (sử dụng giao thức TCP/IP).

Khi độ dài của thông điệp là đáng kể và có nhiều agent trong hệ thống thì băng thông đường truyền được sử dụng để truyền thông điệp sẽ khá lớn. Việc duy trì các kết nối riêng có nghĩa là nhiều bản sao của cùng một thông điệp phải được gửi tới mỗi một agent nhận. Mặt khác, phương pháp đầu có tác dụng ngăn cản sự quá tải của mạng bằng cách gạt bỏ đi nhu cầu tạo ra nhiều bản sao của cùng một thông điệp và truyền chúng tới các agent khác nhau. Điều này giúp thực hiện một hệ đa agent mềm dẻo, linh hoạt và hoàn toàn tự trị bởi vì các agent có thể rời bỏ hoặc gia nhập hệ thống mà không cần phải thông báo với ai, miễn là chúng hoàn thành tất cả các công việc, nhiệm vụ mà chúng đang tiến hành, những công việc có ảnh hưởng tới hoạt động của các agent khác. Ngoài ra, ta có thể áp dụng phương pháp “lai” bằng cách sử dụng truyền thông quảng bá để tìm ra những đặc tính và địa chỉ của các agent trong hệ thống, sau đó sẽ sử dụng các thông tin đó để thực hiện truyền thông trực tiếp.

Hai phương pháp chủ yếu và phổ biến trong truyền thông quảng bá là:

contract-net và specification-sharing:

• Trong phương pháp contract-net, các agent đang có nhu cầu được phục vụ sẽ gửi đi các yêu cầu tới các agent khác. Agent nhận được các thông báo này sẽ xem xét các yêu cầu đó và nếu có thể đáp ứng, nó sẽ gửi lời mời tới các agent đang có nhu cầu phục vụ. Các agent

đang có nhu cầu được phục vụ sẽ xem xét những lời mời đó để quyết định xem agent nào đáp ứng được những yêu cầu đã được đưa ra. • Trong phương pháp specification-sharing, các agent sẽ quảng bá các

khả năng và nhu cầu của chúng và các agent khác sẽ sử dụng các thông tin này để đối chiếu với các nhu cầu và hoạt động của chúng xem có phù hợp không, và có thể đáp ứng được không.

1.19.4 Hệ thống bảng đen

Trong lĩnh vực trí tuệ nhân tạo, bảng đen (blackboard) là một mô hình bộ nhớ dùng chung rất hay được sử dụng. Bảng đen là một kho chứa mà ở đó các agent có thể ghi các thông điệp, gửi các kết quả cục bộ và thu nhận thông tin. Nó được chia thành nhiều mức độ trừu tượng phù hợp với từng vấn đề, và các agent đang làm việc tại một cấp độ trừu tượng cụ thể nào đó sẽ truy cập tới cấp bảng đen tương ứng. Bằng cách này, dữ liệu được tổng hợp tại bất kỳ một cấp độ nào cũng có thể được truyền thông tới các cấp độ cao hơn, trong khi mục tiêu ở cấp độ cao hơn có thể được thẩm thấu xuống nhằm định hướng sự mong đợi của các agent cấp thấp hơn.

1.20 Truyền thông trong BKAS

Giữa các agent trong cùng 1 hệ thống: Khi một agent khách được khởi tạo, nó chỉ biết duy nhất một agent, đó là facilitator agent mức trên nó. Trong trường hợp agent khách cần giao tiếp (cần dịch vụ hỗ trợ), nó gửi thông điệp trực tiếp đến cho facilitator agent duy nhất nó biết. Thông điệp này sẽ được dich vụ truyền thông của platform chuyển đến hàng đợi của facilitator agent.

Facilitator agent nhận thông điệp, lọc ra yêu cầu và tỡm trong tri thức của nó agent nào cung cấp dịch vụ mà agent khách yêu cầu. Nếu có, facilitator agent sẽ chuyển tên của agent đó cho agent khách, hai agent này sẽ tự trao đổi trực tiếp với nhau, không cần qua facilitator agent nữa. Nếu agent khách có khả năng tự học, nó có thể lưu tên của các agent nó đã giao tiếp ứng với các dịch vụ của chúng.

Như vậy, lần sau khi có yêu cầu dịch vụ đó, nó sẽ tự gửi đến agent phục vụ không qua facilitator agent.

Giữa các agent thuộc 2 hệ thống khác nhau: Một hệ thống lớn bao gồm nhiều hệ thống đơn (các hệ thống đơn cũng dựa trên mô hình BKAS). Khi agent khách gửi thông điệp cho facilitator agent, trong trường hợp agent này không tỡm thấy agent cung cấp dịch vụ đó trong hệ thống của mình, nó sẽ gửi thông điệp đó cho facilitator agent mức trên nó. Khi ấy, facilitator agent đóng vai trò làm agent khách trong hệ thống lớn.

Facilitator agent của hệ thống lớn tỡm được agent đáp ứng yêc cầu đó trong một hệ thống đơn khác, việc giao tiếp sẽ diễn ra trên hai facilitator agent thuộc hai hệ thống đơn. Như vậy, agent yêu cầu dịch vụ và agent đáp ứng giao tiếp với nhau thông qua hai facilitator agent.

1.21 Ngôn ngữ phục vụ truyền thông:

1.21.1 KQML, ngôn ngữ truyền thông cơ bản

KQML là ngôn ngữ truyền thông bậc cao và là giao thức cho phép trao đổi thông tin giữa các agent, độc lập với cú pháp, nội dung và từ điển tri thức (ontology).

KQML được hiểu theo cả hai nghĩa:

• Là một định dạng cho các thông điệp và

• Là giao thức kiểm soát các thông điệp nhằm hỗ trợ việc chia sẻ tri thức.

Truyền thông được thực hiện trên nhiều cấp độ khác nhau. Nội dung của thông điệp chỉ là một phần của truyền thông. Việc xác định và thu hút sự chú ý của người mà bạn đang muốn giao tiếp cũng là một phần của quá trình giao tiếp. Đóng gói thông báo của bạn theo một cách nào đó sao cho mục đích giao tiếp của bạn được rõ ràng cũng là một phần trong việc truyền thông - giao tiếp.

Khi sử dụng KQML, một phần mềm agent sẽ truyền đi nội dung của thông điệp, nội dung này được soạn bằng một ngôn ngữ do agent tự chọn, và được gói trong một thông điệp KQML. Nội dung của thông điệp có thể được diễn tả trong một ngôn ngữ thể hiện nào đó, và được viết dưới dạng một chuỗi mã ASCII hoặc dưới dạng một ký hiệu nhị phân nào đó. Mọi thực hiện đối với KQML đều bỏ qua phần nội dung của thông điệp chỉ trừ khi cần xác định xem thông điệp đó từ đâu gửi đến và gửi đến đâu.

Cú pháp của KQML dựa trên một danh sách các thành phần trong ngoặc đơn. Phần tử đầu tiên của danh sách là một biểu hiện (performative), các phần tử còn lại là các tham số của biểu hiện đó - mỗi tham số là một cặp: từ khoỏ/giỏ trị (keyword/value). Vì ngôn ngữ là tương đối đơn giản nên cú pháp hiện tại không quan trọng lắm và có thể được thay đổi trong tương lai nếu thấy cần thiết.

KQML được thiết kế để thực hiện nhiệm vụ ở 3 tầng khái niệm (conceptual layer):

Content layer

Chứa nội dung thật sự của thông báo, được viết bằng ngôn ngữ biểu diễn

Message layer

Mã hóa thông báo mà ứng dụng này truyền cho ứng dụng khác, nhận diện giao thức được sử dụng, định rõ các tương tác với các agent khác

Communication layer

Mã hoá các tham số truyền thông mức thấp (sender, receiver)

1.21.2 ICL (Interagent Communication Language) a. Khái niệm ICL

Interagent Communication Language (ICL) của BKAS là giao diện và ngôn ngữ truyền thông được chia sẻ bởi tất cả các agent, bất kể là agent chạy trên loại máy nào hoặc được lập trình trên ngôn ngữ máy tính nào. ICL được thiết kế như một phần mở rộng của ngôn ngữ lập trình Prolog, dựa trên sự thống nhất và nhiều đặc điểm khác của Prolog. Có một số các khai báo chính và các chương trình cơ sở được xác định là sử dụng ICL. Đó có thể là khai báo chức năng của các agent, các sự kiện (truyền thông giữa các agent) các yêu cầu đến các dịch vụ, phản hồi lại các yêu cầu, và chia sẻ các dữ liệu cơ sở.

b. Vai trò

ICL sử dụng để thực hiện các tương tác giữa các Agent như khai báo khả năng, các sự kiện, yêu cầu dịch vụ, hồi đáp, chia sẻ phần tử dữ liệu và các triger…

Sau đây là cỏc cỏch vận dụng ICL cho các lĩnh vực giao tiếp:

Khả năng: Mỗi agent tham gia trong hệ thống BKAS đều xác định và đưa ra tập khai báo các khả năng bằng ICL, sẽ mô tả các dịch vụ mà nó cung cấp.

Sự kiện: Mọi giao tiếp giữa các Agent xảy ra theo kiểu sự kiện (events). Mọi xử lý và cấu trúc bên trong của agent được tổ chức

Một phần của tài liệu đồ án công nghệ thông tin Xây dựng mô hình hệ thống đa agent BKAS và xây dựng hệ thống hỗ trợ chuẩn đoán bệnh dưa trên mô hình BKAS. (Trang 57)

Tải bản đầy đủ (DOC)

(98 trang)
w