1. Trang chủ
  2. » Công Nghệ Thông Tin

Tiểu luận lập trình hướng Agent

67 187 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Tiểu luận môn: Các mô hình lập trình tiên tiến MỤC LỤC MỤC LỤC .1 MỞ ĐẦU CHƯƠNG GIỚI THIỆU AGENT VÀ HỆ ĐA AGENT 1.1 Agent 1.1.1 Khái niệm 1.1.2 Agent đối tượng .4 1.2 Hệ đa agent Các ứng dụng hệ đa agent Các hệ ứng dụng công nghiệp Các ứng dụng thương mại Các ứng dụng giải trí Các ứng dụng y tế 1.3 Các kiểu kiến trúc 1.4 Ngôn ngữ lập trình công cụ 10 1.5 Cơ sở hình thành Agent Vật lý Agent thông minh (FIPA) 11 1.5.1 Mục đích FIPA 11 1.5.2 Các khái niệm cốt lõi FIPA .12 1.5.3 Mối Liên quan FIPA JADE 15 1.6 Kết luận 16 CHƯƠNG GIỚI THIỆU JADE .17 2.2 Kiến trúc JADE .19 2.3 Kết luận 21 CHƯƠNG CÁC ĐẶC ĐIỂM CỦA JADE 22 3.1.1 Ðịnh danh agent .23 3.1.2 Khởi tạo Agent 24 3.1.3 Kết thúc agent 24 3.1.4 Truyền tham số cho agent 25 3.1.5 Cài đặt dự án Ticket-Trading 26 3.2 Cài đặt nhiệm vụ cho Agent 29 3.2.1 Lập lịch thực thi Behaviour 29 3.2.2 One-shot behaviour, cyclic behavior generic behavior .30 3.2.3 Bổ sung thêm hành vi agent 31 3.2.4 Lập lịch cho hành vi agent 32 3.2.5 Các hành vi ví dụ ticketTrading .33 3.3 Truyền thông Agent 35 3.3.1 Gửi thông điệp 36 3.3.2 Nhận thông điệp .37 3.3.3 Khóa hành vi đợi thông điệp 37 3.3.4 Lựa chọn thông điệp từ hàng đợi .38 3.3.5 Các hội thoại phức tạp .39 3.3.6 Nhận thông điệp node khóa 41 3.4 Khám phá Agent – Dịch vụ trang vàng 41 3.4.1 DF agent 42 3.4.2 Tương tác với DF agent 42 3.4.3 Tìm kiếm dịch vụ .43 Tiểu luận môn: Các mô hình lập trình tiên tiến 3.5 Agent với giao diện đồ họa 44 3.5.1 Thực hành lập trình tốt với lắng nghe kiện AWT 44 3.5.2 Thực hành lập trình cách sửa đổi giao diện dồ họa luồng thực thi Agent 46 3.6 Kết luận 46 CHƯƠNG ONTOLOGY TRONG HỆ ĐA AGENT 47 4.1 Khái niệm Ontology 47 4.1.1 Khái niệm 47 4.1.2 Ontology sở tri thức 48 4.1.3 Phân loại ontology 49 4.1.4 Vai trò ontology tương tác agent .50 4.2 Biểu diễn ontology 51 4.2.1 Biểu diễn ontology theo kiểu hình thức 51 4.2.2 Biểu diễn ontology theo kiểu không hình thức 56 4.3 Phương pháp luận xây dựng ontology tổng quát 59 4.4 Kết luận 61 CHƯƠNG PHÁT TRIỂN HỆ ĐA AGENT VỚI PHƯƠNG PHÁP LUẬN MASE VÀ JADE 61 KẾT LUẬN 66 TÀI LIỆU THAM KHẢO 67 MỞ ĐẦU Trong năm gần đây, phát triển mạnh mẽ công nghệ truyền thông internet ảnh hưởng sâu rộng đến mặt sống từ kinh tế, khoa học đến văn Tiểu luận môn: Các mô hình lập trình tiên tiến hoá xã hội Rõ ràng phát triển phần cứng đóng vai trò quan trọng trình tiến hoá yếu tố then chốt ảnh hưởng mạnh mẽ đến xã hội tri thức ngày thân phần mềm Khi mà mạng máy tính Internet trở thành phổ biến việc xử lý thông tin phân tán, chia sẻ tích hợp thông tin thông qua đường truyền máy với sở liệu có khuôn dạng khác ngày trở nên phổ biến Điều dẫn đến thách thức giới phát triển phần mềm phải đối đầu với yêu cầu thực tế hệ phần mềm phức tạp, mở phân tán Phát triển phần mềm hướng agent xem cách tiếp cận tiến hóa phát triển phần mềm dựa thành phần cho hệ phân tán Sự khác biệt agent với thành phần thông thường tính tự chủ, tính linh hoạt, tính xã hội… tăng cường thêm vào thành phần phần mềm Cho đến nay, đặc trưng nghiên cứu rộng rãi lĩnh vực trí tuệ nhân tạo Agent hệ đa agent đạt nhiều tiến đáng kể ứng dụng lĩnh vực khác đặc biệt môi trường mạng Internet thương mại, dịch vụ y tế, giáo dục… Tiểu luận môn: Các mô hình lập trình tiên tiến CHƯƠNG GIỚI THIỆU AGENT VÀ HỆ ĐA AGENT 1.1 Agent 1.1.1 Khái niệm Thuật ngữ “agent”, hay agent phần mềm, sử dụng rộng rãi xuất nhiều lĩnh vực nghiên cứu trí tuệ nhân tạo, sở liệu, tài liệu hệ điều hành mạng máy tính Mặc dù chưa có định nghĩa thống agent (Genesereth Ketchpel (1994), Wooldridge Jennings (1995), Russel Norvig (2003)) tất định nghĩa có chung điểm rằng: Agent hệ tính toán hoàn chỉnh hay chương trình đặt môi trường định, có khả hoạt động cách tự chủ mềm dẻo môi trường nhằm đạt mục đích thiết kế Các đặc trưng agent: • Tính tự chủ (autonomy): Mỗi agent có trạng thái riêng, độc lập với agent khác (tự chủ trạng thái bên trong) đồng thời tự định hành động (tự chủ hành động) Tự chủ trang thái bên thể chổ: agent chứa trạng thái riêng nó, agent khác không truy nhập vào trạng thái Còn tính tự chủ hành động thể chỗ agent tự định hành động (có thể hành động đơn chuỗi hành động) dựa trạng thái thời mà can thiệp người hay agent khác Tính tự chủ đặc trưng quan trọng agent • Tính phản ứng (reactivity): Tính phản ứng khả agent nhận biết môi trường (qua phận cảm nhận đó) dựa qua nhận biết đó, agent đáp ứng kịp thời thay đổi xảy môi trường Tính phản ứng thể rõ agent hoạt động môi trường có tính mở hay thay đổi Internet, môi trường mạng phân tán, môi trường vật lý, … Phản ứng agent môi trường bên hướng tới việc thực mục tiêu (đích) agent • Tính chủ động (pro-activeness): Khi có thay đổi môi trường, agent không phản ứng cách đơn giản mà xác định chuỗi hành động cần thực hiện, thân agent chủ động việc khởi động thực chuỗi hành động • Khả xã hội (social ability): Các agent không hướng tới đích riêng mà có khả tương tác với agent khác hệ thống để hướng tới đích chung hệ thống Các hoạt động tương tác đa dạng bao gồm phối hợp, thương lượng, cạnh tranh… 1.1.2 Agent đối tượng Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang Tiểu luận môn: Các mô hình lập trình tiên tiến Để hiểu rõ khái niệm agent, so sánh agent đối tượng Trong phương pháp hướng đối tượng, đối tượng định nghĩa thực thể tính toán đóng gói bao gồm trạng thái, hành động hay phương thức trạng thái đối tượng liên lạc với thông qua việc gửi thông điệp (message) Xét theo quan điểm hệ thống, xem agent đối tượng mức trừu tượng cao Cụ thể: • Agent có tính tự chủ cao đối tượng Điều thể chỗ agent tự định hành động mà thực hành động theo yêu cầu agent khác Ngược lại, đối tượng thực hoạt động nhận lời gọi hàm từ đối tượng khác • Agent có tính hướng đích, agent có đích riêng đích agent hệ thống thống hay không tương thích với Trong đối tượng mục đích riêng, chúng chia sẻ mục đích chung hệ thống Do đó, agent thường phải thương lượng với trình tương tác • Agent có hành vi linh hoạt dựa đặc trưng tính chủ động, khả phản ứng khả xã hội trình bày Còn đối tượng kiểu hành vi • Mỗi agent có nhiều luồng điều khiển riêng Trong hệ hướng đối tượng có điều khiển theo kiểu luồng không yêu cầu đối tượng có thread riêng mà ngược lại có nhiều đối tượng chung thread Bản chất khác đặc trưng quan trọng mức độ tự chủ agent so với đối tượng 1.2 Hệ đa agent Hệ đa agent tập agent hoạt động hệ thống, agent có đích khác toàn hệ agent hướng tới mục đích chung thông qua tương tác Quá trình tính toán xử lý thông tin hệ đa agent có nhiều ưu điểm sau [20]: - Khả tính toán hiệu quả: Hệ đa agent cung cấp khả tính toán hiệu nhờ trình tính toán phân chia cho agent khác khả phối hợp xử lý nhiều agent - Độ tin cậy cao: Do có nhiều agent tham gia giải toán agent có chế trao đổi, kiểm tra kết nên độ tin cậy tính toán hệ đa agent cho cao - Khả mở rộng: Hệ đa agent hệ mở có thêm agent bớt agent agent hoàn thành nhiệm vụ Khả phù hợp với tính mở yêu cầu hệ phần mềm Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang Tiểu luận môn: Các mô hình lập trình tiên tiến - Tính mạnh mẽ: Hệ đa agent xử lý toán định phức tạp toán dựa thông tin không chắn toán thương lượng thương mại điện tử, toán điều khiển tự động - Khả bảo trì: Do hệ đa agent gồm nhiều agent, agent module có tính tự chủ cao nên hệ đa agent hệ dễ bảo trì - Khả phản ứng: Hệ đa agent kế thừa khả phản ứng agent đơn nên nhận biết thay đổi môi trường agent hệ thống phối hợp với để đưa hành động tương ứng với thay đổi - Tính linh hoạt: Các agent hệ đa agent có khả khác tương tác với để giải vấn đề chung Một agent hệ thường chờ agent khác mà chủ động tương tác để tìm thông tin cần thiết để giải vấn đề đặt cho riêng - Khả sử dụng lại: Hệ đa agent có khả sử dụng lại agent có khả riêng dùng lại cho nhiều ứng dụng khác Các ứng dụng hệ đa agent Trong năm gần đây, hệ đa agent ngày trở nên phổ biến áp dụng nhiều hệ thống khác Các ứng dụng hệ đa agent chia thành nhóm sau:  Các hệ ứng dụng công nghiệp Các ứng dụng hệ đa agent công nghiệp ứng dụng lĩnh vực nghiên cứu Hiện nay, agent áp dụng rộng rãi dạng hệ thống như: - Hệ sản xuất: hệ đa agent ứng dụng sản xuất, công việc phân chia thành nhóm công việc công việc nhỏ vào giao cho agent thực Các agent cần có chế lập kế hoạch phối hợp (tương tác) lẫn để hoàn thành công việc giao - Hệ thống điều khiển tiến trình: Các hệ điều khiển tiến trình có vai trò lớn công nghiệp Hệ đa agent hệ thống xem điều khiển tiến trình (process controller) với tính tự chủ linh hoạt để điều khiển hoạt động tiến trình - Hệ thống viễn thông: hệ thống viễn thông thường hệ thống lớn, phân tán, yêu cầu trình giám sát quản lý theo thời gian thực (như quản lý mạng viễn thông, giám sát hoạt động thiết bị) Các ứng dụng phù hợp với hệ đa agent - Ngoài ra, hệ đa agent áp dụng hệ thống quản lý không lưu quản lý lưu lượng giao thông Đây hệ quản lý yêu cầu tính thời gian Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang Tiểu luận môn: Các mô hình lập trình tiên tiến thực cao, thành phần hệ thống phải có tính tự chủ linh hoạt xử lý tình  Các ứng dụng thương mại Trong thời gian gần đây, hệ đa agent ngày áp dụng nhiều thương mại điện tử Với hệ ứng dụng này, việc trao đổi mua bán diễn thuận lợi hiệu cho người bán, người mua nhà sản xuất Các hệ ứng dụng agent thương mại bao gồm: - Hệ quản lý thông tin: Các hệ thống thực việc lọc, tách thu thập thông tin cần thiết dùng thương mại Hệ thống thường xuyên phải xử lý khối lượng thông tin lớn nhằm cung cấp cho người dùng thông tin cần thiết - Các hệ thương mại điện tử: Các agent hệ thương mại điện tử đại diện cho người bán, người mua người môi giới giao dịch điện tử Các agent tự trao đổi với thông qua chiến lược thương lượng Đây xu hướng phát triển thương mại điện tử - Các ứng dụng quản lý tiến trình kinh doanh Quản lý tiến trình kinh doanh nhằm giúp cho người quản lý định tình cụ thể thực công việc cụ thể với hỗ trợ tất thành viên đơn vị Các agent đại diện cho thành viên thực vai trò xác định Công việc phân chia cho nhóm thành viên dựa chế tương tác agent  Các ứng dụng giải trí Các hệ đa agent sử dụng để xây dựng ứng dụng giải trí trò chơi điện tử ứng dụng khác nhà hát hay rạp chiếu phim tương tác (Interactive Theatre and Cinema)  Các ứng dụng y tế - Ứng dụng giám sát bệnh nhân Các agent hoạt động chuyên gia để theo dõi chẩn đoán bệnh cho người bệnh Việc chẩn đoán bệnh thực thông qua chế lập luận agent - Các ứng dụng chăm sóc sức khoẻ (Health Care) Hệ đa agent thiết kế để thực nhiệm vụ mạng lưới y tế cộng đồng 1.3 Các kiểu kiến trúc Kiến trúc agent chế nằm bên thành phần tự chủ nhằm hỗ trợ hành vi agent giới thực, môi trường động môi trường mở Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang Tiểu luận môn: Các mô hình lập trình tiên tiến Các kiến trúc agent chia thành nhóm chính: dựa logic, có tính phản ứng, BDI phân lớp a Kiến trúc dựa logic: lấy tảng từ kỹ thuật dựa tri thức truyền thống môi trường thể hoạt động cách sử dụng chế lập luận - Ưu điểm: tri thức người biểu diễn ký hiệu mà việc mã hóa trở nên dễ dàng làm cho người hiểu logic hoạt động dễ dàng - Nhược điểm: khó để biên dịch giới thực thành mô tả hình tượng cách xác đầy đủ Hơn việc biểu diễn xử lý dạng kí hiệu nhiều thời gian để có kết thường đưa muộn, ích b Kiến trúc có tính phản ứng: thực thi trình đưa định ánh xạ trực tiếp tình sang hành động dựa chế kích thích - phản ứng tạo liệu thiết bị cảm biến Không giống kiến trúc dựa logic, chúng mô hình biểu diễn tri thức thế, không tận dụng kiểu lập luận phức tạp Kiến trúc có tính phản ứng tiếng kiến trúc gộp Brooks (Brooks, 1991) Kiến trúc gộp xác định tầng máy hữu hạn trạng thái – máy kết nối với thiết bị cảm biến – thiết bị truyền thông tin theo thời gian thực (một ví dụ kiến trúc gộp thể hình 1) Các tầng tạo thành phân cấp hành vi agent Trong đó, mức độ thấp điều khiển so với mức độ cao ngăn xếp, thế, việc định đưa thông qua hành vi hướng đích Những agent thiết kế gộp hiểu điều kiện hành động, không đưa kế hoạch Hình 1.1: Kiến trúc gộp di chuyển robot Ưu điểm: thực thi tốt môi trường động, chúng thường thiết kế đơn giản so với agent dựa logic Nhược điểm: agent có khả phản ứng không áp dụng mô hình kết tác động môi trường chúng Do đó, Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang Tiểu luận môn: Các mô hình lập trình tiên tiến liệu sensor không đủ để xác định hành động thích hợp thiếu trạng thái agent khiến cho thiết kế agent học hỏi từ kinh nghiệm Hơn nữa, hành động agent dựa sở tương tác hành vi khác khiến cho kỹ sư khó thiết kế agent có khả phản ứng để thi hành tác vụ đặc biệt agent phải nhận thông qua nhiều hành vi c Kiến trúc BDI: kiến trúc agent phổ biến (Rao Georgeff, 1995) Một kiến trúc BDI tiếng hệ thống lập luận theo thủ tục (PRS – Procedural Reasoning System) (Georgeff Lansky, 1987) Kiến trúc dựa kiểu liệu chính: Lòng tin (beliefs), tác vụ (desires), ý định (intentions) kế hoạch (plans) phận phiên dịch Trong hệ thống PRS, lòng tin biểu diễn thông tin mà agent có môi trường nó, không đầy đủ không xác Tác vụ biểu diễn tác vụ phân công cho agent tương ứng mục tiêu, mục đích mà hoàn thành Ý định thể mong muốn mà agent cần phải đạt Cuối cùng, kế hoạch rõ vài trình hành động mà agent phải làm để đạt mục đích Bốn cấu trúc liệu quản lý phận phiên dịch agent chịu trách nhiệm cập nhật lòng tin từ quan sát từ môi trường, sinh tác vụ dựa sở lòng tin mới, lựa chọn tập tác vụ vài tập để hoạt động, chúng gọi ý định Cuối cùng, phận phiên dịch phải lựa chọn hành động để thực thi dựa sở ý định agent tri trức mặt thủ tục Hình 1.2: Kiến trúc PRS d Kiến trúc phân tầng: cho phép hành vi agent vừa mang tính phản xạ vừa có tính kế hoạch Để có linh hoạt này, hệ thống xếp thành tầng hệ thống phân cấp nhằm thích ứng với hai loại hành vi agent Có hai loại luồng điều khiển kiến trúc phân lớp: phân lớp ngang (Ferguson, 1991) phân lớp dọc (Muller et al, 1995) Trong phân lớp nằm ngang, lớp kết nối cách trực tiếp với đầu vào sensor đầu hành động (xem hình 3); có tầng hoạt động giống agent Điểm mạnh cách phân lớp dễ dàng thiết kế agent cần n loại hành vi khác nhau, kiến trúc Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang Tiểu luận môn: Các mô hình lập trình tiên tiến yêu cầu n tầng Tuy nhiên, tầng bị ảnh hưởng agent, nên không cần có chức trung gian hòa giải để kiểm soát hành động Sự phức tạp n khác lượng lớn tương tác xảy tầng ngang - m (với m số lượng hành động tầng) Hình 1.3: Luồng liệu luồng điều khiển kiến trúc phân lớp Một kiến trúc phân lớp dọc loại trừ số vấn đề đầu vào sensor đầu hành động giải phần lớn tầng Kiến trúc phân lớp dọc chia nhỏ thành kiến trúc điều khiển chiều hai chiều Trong kiến trúc chiều, luồng điều khiển từ tầng đầu, tầng nhận liệu từ sensor, xuống đến tầng cuối, tầng sinh đầu hành động (xem Hình 2) Trong kiến trúc hai chiều, luồng liệu lên xuyên qua tầng điều khiển, tiếp lại có luồng liệu trở theo thứ tự ngược lại (xem hình 3) Điểm mạnh chủ yếu kiến trúc phân lớp dọc tương tác tầng làm giảm đáng kể m (n-1) Nhược điểm kiến trúc phụ thuộc vào tất tầng không chấp nhận lỗi, tầng lỗi, toàn hệ thống lỗi 1.4 Ngôn ngữ lập trình công cụ Ngôn ngữ lập trình, tảng công cụ phát triển hệ thống đa agent thành phần quan trọng mà có ảnh hưởng đến việc ứng dụng rộng rãi công nghệ agent Trong thực tế, thành công hệ thống đa agent phần lớn phụ thuộc vào sẵn có công nghệ (tức ngôn ngữ lập trình, thư viện phần mềm công cụ phát triển) phép thực thi khái niệm kỹ thuật hình thành sở cho hệ thống đa agent Hệ thống agent cài đặt cách sử dụng loại ngôn ngữ lập trình Cụ thể, ngôn ngữ hướng đối tượng coi phương tiện phù hợp, khái niệm agent không khác nhiều so với từ khái niệm đối tượng Trong thực tế, agent chia sẻ nhiều tính chất với đối tượng đóng gói (encapsulation), có kế thừa (inheritance) truyền thông điệp (message passing) Tuy nhiên, agent khác với đối tượng số điểm chính: tính tự chủ (autonomous) (nghĩa chúng Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 10 Tiểu luận môn: Các mô hình lập trình tiên tiến ontologies khác Mỗi quan hệ gọi luật kết hợp (articulation rule) Mỗi hàm sinh quan hệ gọi hàm sinh luật kết hợp Đầu vào hàm sinh luật kết hợp hai ontology (trong tập ontology có O) đầu hàm tập luật kết hợp (trong tập tất luật R) hai ontology Như vậy, cách hình thức hàm sinh luật kết hợp hàm f: OxO → R, O tập tất ontology có R tập tất tập luật R Chúng ta giả sử hàm sinh kết hợp hàm hoàn chỉnh, tức với ontology cho trước, hàm luôn kết thúc trả lại luật kết hợp tương ứng Như vậy, định nghĩa hàm sinh luật kết hợp sau: Định nghĩa 1: Cho hai ontology O1, O2 Một hàm f nối hai đỉnh n ∈ O1 n2 ∈ O2 gọi hàm sinh luật kết hợp f sinh cạnh (n R n2) (n2 R n1), với R quan hệ Ký hiệu: f(O1,O2) Hình 4.1 biểu diễn luật kết hợp Một luật kết hợp có dạng đơn giản luật số phức tạp nhiều luật số (true mệnh đề đúng) Có số dạng hàm sinh luật kết hợp hàm sinh bắc cầu hàm sinh quán (xem chi tiết [28]) 4.2.1.3 Các phép toán tập ontology Từ định nghĩa ontology, quan hệ, luật kết hợp hàm sinh luật kết hợp, ta xây dựng phép toán ontology bao gồm phép lựa chọn (Select), phép giao (intersection), phép hợp (union) phép hiệu (difference) Phép chọn Phép chọn dùng để lựa chọn phần ontology cần quan tâm Ví dụ, người quan tâm đến việc đặt chỗ khách sạn mà không quan tâm đến việc mua vé tàu hoả người cần xem xét phần ontology mô tả yêu cầu khách sạn bỏ khái niệm mô tả yêu cầu liên quan đến chuyến tàu Phép Select định nghĩa theo dạng sau: Định nghĩa 2: Cho ontology O = ((N,E),R) đỉnh n ∈ N, phép chọn select(O,n) = (Gn,Rn) với Gn = (Nn, En) đồ thị G cho với tất đỉnh n’ Nn, tồn đường từ n đến n’ G Trong đó, E n = {e=(n1Rn2) ∈ E|n1,n2 ∈ Nn} tập cho cạnh E n biểu diễn quan hệ n1 n2 Nn; Rn = {r ∈ R|Nodes(r) ∈ Nn} tập luật lấy từ tập R tất luật O ứng với khái niệm Nn Định nghĩa 3: Cho ontology O = ((N, E), R) tập đỉnh V Phép chọn định nghĩa Select(O,V) = (G, Rv) với G = (V, Ev), Ev = {e= (n1 Rn2) ∈ E|n1,n2 ∈ V} Rv = {r ∈ R|Nodes(r)⊆ V} Xem xét lại ví dụ trình bày Hình 4.1 Ontology O3 chứa cạnh (O3.XeLuxury SubClassOf O3.Ôtôcon) (O3.XeLuxury HasA O3.Giábánlẻ) Phép Select(O3, Ôtôcon) chọn tất đỉnh thu từ đỉnh Ôtôcon Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 53 Tiểu luận môn: Các mô hình lập trình tiên tiến ontology O3 (bao gồm Xe Luxury, Giá chi tiết, Đơn vị tiền tệ, Giá trị Dollar) với tất cạnh chúng Phép Select(O3, {Ô tô con, Xe Luxury}) chọn hai đỉnh O3 Ô tô O3 Xe Luxury với cạnh Xe Luxury SubClassOf O3.Ô tô hai đỉnh Phép giao Phép giao thực hai ontology cần kết hợp sinh ontology luật kết hợp sinh từ hàm sinh kết hợp Phép giao định nghĩa sau: Định nghĩa 4: Giao hai ontology O1 = ((N1, E1), R1) O2 = ((N2, E2), R2) hàm sinh kết hợp f OI 1,2 = O1 ∩f O2, OI1,2 = (NI, EI, RI), NI = Nodes(f(O1,O2)), EI = Edges(E1, NI ∩ N1) + Edges(E2, NI ∩ N2) + Edges(f(O1, O2)) RI = Rules(O1, NI∩N1) + Rules(O2, NI∩N2) + f(O1, O2)) Các đỉnh có ontology giao đỉnh có mặt luật kết hợp Một cạnh ontology giao tạo nên từ cạnh có mặt hai ontology nguồn đầu hàm sinh kết hợp theo luật kết hợp Luật ontology giao luật kết hợp hai ontology nguồn mà có khái niệm có mặt ontology giao Phép hợp Định nghĩa 5: Phép hợp hai ontology O1 = (V1, E1, R1) O2 = (V2, E2, R2) biểu diễn tập OU = O1∪AR O2 = (VU, EU, RU) với VU = V1∪ V2 ∪ VI1,2 EU = E1∪E2∪EI1,2 RU = R1∪R2∪RU1,2, OI1,2 = O1∩AR O2 = (VI1,2, EI1,2,RI1,2) giao hai ontology O1, O2 Tập VI1,2 không rỗng luật kết hợp không sinh đỉnh Tuy nhiên, trường hợp hai nút ontology khác cần kết hợp lại có chung nhãn (ví dụ O1.x O2.x) tồn hàm f chúng biểu diễn giá trị (giả sử hàm f: Equals: O1.x Equals O2.x) ontology giao hợp có hai node O1.x O2.x với cạnh tương ứng hai khái niệm Hiệu hai ontology Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 54 Tiểu luận môn: Các mô hình lập trình tiên tiến Định nghĩa 6: Hiệu hai ontology O1 O2, ký hiệu O1 - O2, với O1 = ((V1, E1), R1) O2 = ((V2, E2), R2) định nghĩa OD = ((VD, ED), RD), với VD = V1 – VI1,2 ED = E1 – EI1,2 RD = R1 – RI1,2 với OI1,2 = O1 ∩f O2 = (VI1,2, EI1,2, RI1,2) tập giao hai ontology với hàm sinh kết hợp f Có thể hiểu hiệu hai ontology phần ontology mà không phổ biến ontology thứ hai Các đỉnh, cạnh luật phần giao hai ontology (theo định nghĩa phép giao) mà lại có ontology thứ bao gồm đỉnh, cạnh luật hiệu hai ontology 4.2.1.4 Các tính chất phép toán Phần dành trình bày số tính chất phép toán ontology Tính chất bất biến Đây tính chất quan trọng phép toán hợp giao Một cách trực giác, tính chất bất biến yêu cầu hợp (hoặc giao) ontology với cho kết ontology giống với ontology ban đầu Trong phép hợp, tính chất bất biến yêu cầu O1 ∪f O1 = O1(với f hàm sinh luật kết hợp) Đặt OU = O1 ∪f O1 AR = f(O1,O2) Theo định nghĩa phép hợp ta có Nodes(OU) = Nodes(AR) Theo tính bất biến ta cần có Nodes(OU) = Nodes(O1) = Nodes(AR) Như vậy, hàm f phải sinh luật kết hợp bao hàm tất đỉnh O1 Tuy nhiên, lúc OU hoàn toàn giống O1 Ngoài cạnh luật có O1, OU có cạnh kết nối đỉnh O1 với (self-edges) luật áp dụng cho đỉnh (self-rules) Khi đó, điều kiện chặt chẽ tính bất biến không thỏa mãn; khái niệm khác gọi tính bất biến ngữ nghĩa sau: Một phép toán bất biến ngữ nghĩa phép toán áp dụng hai ontology, bỏ cạnh kết nối đỉnh với luật áp dụng cho đỉnh, ontology kết giống với ontology ban đầu Tính chất bất biến phép giao hoàn toàn tương tự phép hợp Dễ dàng nhận phép hiệu có tính chất bất biến Tính chất giao hoán Tính chất giao hoán tính chất quan trọng, tính chất cho phép đổi thứ tự ontology phép toán giúp cho trình thực tính toán Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 55 Tiểu luận môn: Các mô hình lập trình tiên tiến thuận lợi Tương tự với tính chất bất biến, [28] định nghĩa tính chất giao hoán ngữ nghĩa Định nghĩa 7: Một hàm sinh kết hợp f gọi hàm sinh giao hoán ngữ nghĩa f(O1, O2) ⇔ f(O2, O1) với ontologyO1, O2 Tính chất giao hoán ngữ nghĩa phép giao (hoặc phép hợp): Một phép giao (hoặc phép hợp) gọi giao hoán ngữ nghĩa hàm sinh kết hợp sử dụng phép giao (hay phép hợp) hàm sinh giao hoán ngữ nghĩa Tính chất giao hoán không áp dụng cho phép hiệu Tính chất kết hợp Nếu phép toán có tính chất kết hợp, thay đổi thứ tự ontology nhằm tối ưu hóa trình tính toán Trong phép giao, tính chất kết hợp yêu cầu (O1∩ARules O2)∩fARules O3 = O1∩ARules (O2 ∩ARules O3) ARules hàm sinh luật luật kết hợp Tính chất kết hợp phép giao phát biểu sau: Một phép giao sử dụng hàm sinh luật kết hợp f có tính chất kết hợp hàm f quán kết nối bắc cầu Nếu hàm f không quán không kết nối bắc cầu nhiều trường hợp tính chất kết hợp không thoả mãn (xem thêm [28]) Tính chất kết hợp phép hợp phát biểu hoàn toàn tương tự phép giao Như vậy, với việc sử dụng đồ thị lý thuyết đồ thị để biểu diễn ontology, xây dựng đại số ontology với phép toán tương ứng Đây sở cho nghiên cứu tổng hợp sử dụng lại ontology 4.2.2 Biểu diễn ontology theo kiểu không hình thức Khác với biểu diễn ontology theo kiểu hình thức, biểu diễn ontology theo kiểu không hình thức gắn bó chặt chẽ với việc xây dựng hệ thống Theo cách tiếp cận này, mối quan hệ ontology định nghĩa rõ ràng ngôn ngữ riêng, sử dụng trực tiếp mối quan hệ sẵn có lớp-lớp con, lớp-đối tượng-giá trị… ngôn ngữ Có nhiều phương pháp biểu diễn ontology không hình thức khác phân chia thành hai dạng chính: • Cách biển diễn ontology trực tiếp ngôn ngữ lập trình • Cách biểu diễn ontology sử dụng ngôn ngữ riêng Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 56 Tiểu luận môn: Các mô hình lập trình tiên tiến Trong cách biểu diễn thứ nhất, ontology biểu diễn trực tiếp ngôn ngữ lập trình Java hay C++ Cách biểu diễn có ưu điểm hỗ trợ phát triển nghĩa sử dụng trực tiếp kết biểu diễn cho phát triển trình ứng dụng thành phần hệ thống dễ dàng hiểu nội dung cấu trúc ontology Để minh hoạ cho cách biểu diễn này, ta xem xét lại ví dụ Hình 4.1 Giả sử lớp UserRequest Cost định nghĩa trước Khi đó, khái niệm HotelRequest, TrainRequest định nghĩa thành lớp, khái niệm khác định nghĩa thành thuộc tính tương ứng với hai lớp biểu diễn ngôn ngữ Java sau: public class HotelRequest extends UserRequest implements java.io.Serializable{ private Cost roomCost; private int starNumber; private int distance; private boolean internet; public int getroomCost(){ return roomCost; } public int getstarNumber(){ return starNumber; } public int getdistance(){ return distance; } public boolean getinternet(){ return internet; } public void setroomCost(Cost newcost){ this.roomCost = newcost; } public void setstarNumber(int newstarNumber){ this.starNumber = newstarNumber; } public void setdistance(int newdistance){ this.distance = newdistance; } public void setinternet(boolean newinternet){ Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 57 Tiểu luận môn: Các mô hình lập trình tiên tiến this.internet = newinternet; } } public class TrainRequest extends UserRequest implements java.io.Serializable{ private int possition; private int timelost; private Cost ticketPrice; public int getpossition(){ return possition; } public int gettimelost(){ return timelost; } public int getticketprice(){ return ticketprice; } public void setpossition(int newpossition){ this.possition = newpossition; } public void settimelost(int newtimelost){ this.timelost = newtimelost; } public void setticketprice(Cost newprice){ this.ticketprice = newprice; } } Như vậy, cách biểu diễn ontology theo ngôn ngữ lập trình, mối quan hệ định nghĩa theo quan hệ kế thừa quan hệ lớp - thuộc tính với hàm trả lại giá trị lớp thuộc tính Để hỗ trợ cho phát triển hệ đa agent Internet, nhiều nghiên cứu tiến hành đưa ngôn ngữ dành riêng cho biểu diễn ontology Topic Maps, RDF, OIL, DAML Hầu hết phương pháp tập trung vào việc biểu diễn tài nguyên Internet thông qua địa URL mối quan hệ tài nguyên cấu trúc giống mạng ngữ nghĩa biểu diễn tri thức Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 58 Tiểu luận môn: Các mô hình lập trình tiên tiến 4.3 Phương pháp luận xây dựng ontology tổng quát Có nhiều cách biểu diễn ontology không hình thức khác cách biểu diễn lại tương ứng với công cụ hay phương pháp xây dựng ontology cụ thể Tuy nhiên, đặc điểm chung cách biểu diễn xem ontology cấu trúc phân lớp khái niệm thuộc tính khái niệm Cấu trúc phân lớp biểu diễn mạng ngữ nghĩa với mối quan hệ khái niệm Dựa đặc điểm này, phương pháp xây dựng ontology cuối chuyển khái niệm, thuật ngữ, mối quan hệ ontology thành tập lớp, thuộc tính…và biểu diễn ontology theo phương pháp biểu diễn Các phương pháp xây dựng ontology có đầu vào yêu cầu hệ thống, yêu cầu tương tác hệ đa agent cần xây dựng… đầu sơ đồ phân cấp ontology biểu diễn khái niệm cần thiết cho tương tác agent hệ đa agent Tuy có nhiều điểm khác mục đích, đầu vào đầu giống nên ta quy tất phương pháp xây dựng ontology theo phương pháp chung tổng quát gọi vòng đời phát triển ontology Theo H Beck H Pinto, việc xây dựng ontology vòng đời hoàn chỉnh theo tiến trình (process) cụ thể từ tập yêu cầu vào đến có phân cấp ontology sử dụng ontology tương tác hệ đa agent Một cách tổng quát, tiến trình bao gồm dãy hành động, hành động xem pha vòng đời phát triển ontology Các pha trình xây dựng ontology biểu diễn Hình 4.3 Đặc tả (Specification) Pha nhằm xác định mục đích phạm vi ontology Mục đích trả lời cho câu hỏi “Tại ontology lại xây dựng?” Còn phạm vi ontology nhằm trả lời cho câu hỏi “Ontology hướng tới gì, đối tượng sử dụng ontology người dùng hay trình ứng dụng?” Hình thành khái niệm (Conceptualization) Bước tiến hành tập hợp khái niệm cần có ontology khái niệm mô tả mô hình khái niệm (conceptual mode) Mô hình khái niệm phải đảm bảo thoả mãn tất đặc tả mục đích phạm vi ontology có bước trước Hình thức hoá (Formalization) Bước nhằm hình thức hoá khái niệm ontology Bước thực thông qua việc chuyển đổi mô hình khái niệm bước trước vào mô hình hình thức Cài đặt (Implementation) Mỗi thành phần mô hình ontology hình thức có bước trước cài đặt theo ngôn ngữ biểu diễn ontology Bảo trì (Maintenance) Mỗi thành phần cập nhật sửa đổi để tạo nên ontology hoàn chỉnh Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 59 Tiểu luận môn: Các mô hình lập trình tiên tiến Ngoài pha trên, vòng đời phát triển ontology tổng quát có hoạt động tồn song song toàn trình phát triển ontology Các hoạt động bao gồm: Thu thập tri thức (knowledge accquisition) Mỗi tri thức liên quan đến ontology thu thập nhờ sử dụng kỹ thuật suy luận tham chiếu đến danh mục tri thức phù hợp Đánh giá (evaluation) Trong hoạt động này, người phát triển sử dụng kỹ thuật ước lượng cụ thể để đánh giá pha xây dựng ontology Viết tài liệu (Documentation) Hoạt động viết tài liệu cần thiết tất pha vòng đời phát triển ontology tổng quát Với công việc, người phát triển phái viết tài liệu để trả lời câu hỏi làm công việc gì, làm lại thực công việc Sử dụng lại (reuse) Người phát triển sử dụng lại ontology có trình xây dựng ontology Đây vấn đề tích hợp ontology thu hút nhiều mối quan tâm thời gian gần Đặc tả Hình thành khái niệm Hình thức hoá Cài đặt Bảo trì Thu thập tri thức Đánh giá Viết tài liệu Hình 4.3: Các bước xây dựng ontology Trên vòng đời phát triển ontology tổng quát Có nhiều phương pháp xây dựng ontology cụ thể đời TOVE, ENTERPRISE, METHONTOLOGY, Các phương pháp thường tập trung vào việc xây dựng ontology từ đầu với vòng đời gồm bước khác Tuy nhiên, phương pháp tuân theo vòng đời phát triển ontology tổng quát nói đến Phương pháp luận MaSE tích hợp trình xây dựng ontology thành bước pha phân tích Như vậy, MaSE với agentTool hỗ trợ trình phát triển hệ đa agent hoàn chỉnh Kỹ thuật xây dựng ontology MaSE dựa bước Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 60 Tiểu luận môn: Các mô hình lập trình tiên tiến vòng đời phát triển ontology tổng quát trình bày chi tiết Chương tài liệu 4.4 Kết luận Chương trình bày khái quát ontology, phương pháp biểu diễn ontology phương pháp luận phát triển ontology tổng quát Việc áp dụng ontology hệ đa agent nhiều vấn đề biểu diễn ngữ nghĩa thông tin, tổng hợp sử dụng lại ontology cần tiếp tục nghiên cứu phát triển đặc biệt cho tích hợp thông tin hệ thống lớn CHƯƠNG PHÁT TRIỂN HỆ ĐA AGENT VỚI PHƯƠNG PHÁP LUẬN MaSE VÀ JADE 5.1 Phương pháp luận MaSE 5.1.1 Tổng quan pha MaSE Những khó khăn việc xây dựng hệ thống đa agent phức tạp: - Xác định nhiệm vụ mà hệ thống phải thực - Xác định thực thể hệ thống đóng vai trò agent - Định nghĩa tương tác agent - Đặc tả giao thức phức tạp đầy đủ - Định nghĩa tương tác hệ thống với môi trường - Định nghĩa hành vi liên quan đến agent Các phương pháp luận có nhiệm vụ giúp cho người thiết kế giải vấn đề phải quản lý phức tạp này, phải làm dễ dàng tiến trình kỹ nghệ phần mềm cách cung cấp tiến trình nghiêm ngặt cho phép tạo mô hình miêu tả khía cạnh khác phần mềm Federico Bergenti et al tác giả sách “Methodologies and software engineering for agent systems – The agent-oriented software engineering handbook” đưa tổng kết giai đoạn phát triển chung cho phần mềm hướng agent gồm: • Phân tích + Miêu tả vấn đề (thu thập yêu cầu) + Xem xét role agent việc phân tích goal + Ngôn ngữ đặc tả sử dụng khái niệm agent + Công cụ hỗ trợ cho ngôn ngữ • Thiết kế Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 61 Tiểu luận môn: Các mô hình lập trình tiên tiến + Kiến trúc phần mềm + Các thành phần + Các hành vi mong đợi • + Cách xây dựng agent từ đầu sử dụng môi trường phát triển agent Cài đặt • + Đề xuất số ngôn ngữ hướng agent, thư viện, framework công cụ hỗ trợ Test + Kiểm tra thỏa mãn yêu cầu ban đầu + Phần mềm có lỗi hay không? 5.1.2 Phân tích thiết kế với MaSE Phương pháp luận tập trung vào giai đoạn phân tích thiết kế - số giai đoạn phát triển phần mềm hướng agent chung Giai đoạn Mô hình Phân tích a Xác định Goal b Áp dụng Use case c Làm mịn Role Goal Hierarchy Use cases, Sequence Diagrams Concurrent Tasks, Role Model Thiết kế a Tạo lớp Agent Agent Class Diagrams b Xây dựng phiên giao tiếp Conversation Diagrams c Lắp ráp lớp Agent Agent Architecture Diagrams d Thiết kế hệ thống Deployment Diagrams Tuy bước biểu diễn cách tuần tự, thực tế, phương pháp luận phương pháp lặp Mục đích giúp người thiết kế tự di chuyển bước pha cho với lần di chuyển thành công có thêm chi tiết bổ sung vào cuối cùng, thiết kế hệ thống hoàn chỉnh thống tạo Một điểm mạnh MaSE khả lưu vết thay đổi suốt toàn tiến trình Mỗi đối tượng tạo pha phân tích thiết kế lưu vết tiến lùi qua nhiều bước khác với đối tượng có liên quan khác 5.1.2.1 Phân tích Pha phân tích MaSE tạo tập role task miêu tả cách mà hệ thống thỏa mãn mục đích (goal) Mục đích trừu tượng yêu cầu đạt role Thông thường, hệ thống có mục Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 62 Tiểu luận môn: Các mô hình lập trình tiên tiến đích toàn cục tập mục đích Goal sử dụng MaSE chúng chụp lại điều mà hệ thống cố gắng đạt có tính ổn định qua thời gian chức (function), tiến trình (process) cấu trúc thông tin Role miêu tả thực thể thực số chức hệ thống Trong MaSE, role có trách nhiệm đạt giúp đỡ để đạt goal Cách tiếp cận pha phân tích MaSE định nghĩa goal hệ thống từ tập yêu cầu sau định nghĩa role cần thiết để đạt goal Để định nghĩa role, MaSE sử dụng biểu đồ Use case biểu đồ Sequence Diagram Sau chi tiết bước pha phân tích Xác định Goal Bước có nhiệm vụ chuyển đổi đặc tả hệ thống thành tập goal hệ thống cách có cấu trúc Ngữ cảnh ban đầu hệ thống (initial system context) điểm bắt đầu cho pha phân tích Đấy đặc tả yêu cầu phần mềm với tập yêu cầu định nghĩa rõ ràng Hai bước xác định goal là: định nghĩa goal mô hình hóa goal Định nghĩa goal Mục đích bước chụp lại chất tập yêu cầu ban đầu Quá trình bắt đầu việc trích rút kịch (scenario) từ đặc tả ban đầu miêu tả goal scenario Goal thân yêu cầu then chốt hệ thống Sau rút goal, tất role task định nghĩa bước sau phải hỗ trợ goal Nếu có role task không hỗ trợ goal tồn tại, role task bị thừa goal tìm Mô hình hóa goal Bước phải cấu trúc goal thành biểu đồ Goal Hierarchy Diagram Đây biểu đồ có hướng chu trình, node biểu diễn goal Để phát triển biểu đồ phân cấp goal, người phân tích phải nghiên cứu goal tầm quan trọng mối liên quan chúng Mỗi goal có tầm quan trọng, mức độ chi tiết khác Đầu tiên, ta phải xác định goal toàn cục hệ thống đặt gốc biểu đồ Sau đó, phân rã goal thành goal Mỗi goal phải hỗ trợ goal cha định nghĩa “cái gì” cần phải làm để hoàn thành goal cha Việc phân rã goal không giống với phân rã chức (function) Goal miêu tả “cái gì” (what), function miêu tả “làm nào” (how) Việc phân rã goal kết thúc phân rã tiếp ta thu function thay goal Áp dụng Use case Bước bước then chốt để chuyển goal thành role task tương ứng với role Các use case vẽ từ yêu cầu hệ thống miêu tả chuỗi kiện mà kiện định nghĩa hành vi mong hệ thống, chúng ví dụ cách mà hệ thống cư xử Để giúp xác định giao tiếp thực hệ đa agent, use case chuyển thành biểu Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 63 Tiểu luận môn: Các mô hình lập trình tiên tiến đồ Sequence Diagram Sequence Diagram MaSE giống với Sequence Diagram UML ngoại trừ việc chúng sử dụng để minh họa chuỗi kiện role để định nghĩa giao tiếp agent đóng vai trò làm role Các role định nghĩa hình thành nên tập role sử dụng bước tiếp theo, kiện sử dụng để định nghĩa task phiên hội thoại (conversation) Đầu tiên, phải trích rút Use Case từ ngữ cảnh ban đầu hệ thống Positive use case use case miêu tả xảy trình vận hành hệ thống bình thường Còn negative use case định nghĩa lỗi thất bại Làm mịn Role Mục đích bước để chuyển biểu đồ Goal Hierarchy Diagram biểu đồ Sequence Diagram thành role task tương ứng với role Các role hình thành nên sở cho lớp agent tương ứng với goal hệ thống pha thiết kế Thông thường việc chuyển đổi từ goal sang role – 1, goal ánh xạ với role Tuy nhiên, có tình mà role có trách nhiệm với nhiều goal Nhìn chung, giao diện với tài nguyên bên tài nguyên bên đòi hỏi phải có role riêng đóng vai trò giao tiếp với hệ thống Chúng ta thường coi người tài nguyên bên Trong MaSE, không mô hình cách xác tương tác người máy, tạo role đặc biệt để đóng với giao diện người dùng Bằng cách này, định nghĩa cách mà người dùng giao tiếp với hệ thống mà không cần định nghĩa giao diện người dùng Các tài nguyên khác sở liệu, tệp tin hệ thống có từ trước cần role riêng Định nghĩa role chụp lại mô hình Role Model, có chứa thông tin tương tác task role phức tạp mô hình role truyền thống Kendall Sau tạo role xác định task, người phát triển phải chụp lại hành vi role cách định nghĩa chi tiết task Một role gồm nhiều task Mỗi task thực thi luồng điều khiển riêng giao tiếp với Các task đồng thời định nghĩa mô hình Concurrent Task Models đặc tả máy hữu hạn trạng thái 5.1.2.2 Thiết kế: Pha gồm bước nhỏ sau: Tạo lớp agent: gán role cho kiểu agent cụ thể Xây dựng phiên hội thoại: định nghĩa phiên hội thại agent - Lắp ráp lớp agent: thiết kế kiến trúc bên trình Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 64 Tiểu luận môn: Các mô hình lập trình tiên tiến - suy luận lớp agent Thiết kế hệ thống: định nghĩa số lượng vị trí agent hệ thống triển khai Tạo lớp Agent Các lớp agent tạo từ role định nghĩa pha phân tích Tại đây, xây dựng biểu đồ Agent Class Diagram để minh họa tổ chức toàn hệ thống agent gồm lớp agent phiên hội thoại chúng Đầu tiên, gán role cho lớp agent Nếu gán nhiều role lớp agent thực chúng đồng thời Mỗi role phải gán cho cho lớp agent Tại đây, xác định phiên hội thoại mà agent khác tham gia vào Ví dụ, agent đóng vai trò role A agent đóng vai trò role B phải có phiên giao tiếp agent agent Biểu đồ Agent Class Diagram giống với biểu đồ lớp phân tích thiết kế hướng đối tượng có hai khác biệt lớp agent định nghĩa role mà đóng thuộc tính phương thức, quan hệ lớp agent chụp lại dạng phiên hội thoại Xây dựng phiên hội thoại Mục đích bước xác định chi tiết phiên hội thoại dựa chi tiết bên task đồng thời Một phiên hội thoại xác định giao thức hai agent mô hình hóa biểu đồ Communication Class Diagram, cho bên khởi tạo cho bên đáp ứng Bên khởi tạo bắt đầu phiên hội thoại cách gửi thông điệp Khi agent đáp ứng nhận thông điệp, so sánh với phiên hội thoại hoạt động Nếu phù hợp, dịch chuyển phiên hội thoại thích hợp sang trạng thái thực hành động hoạt động yêu cầu chuyển dịch trạng thái Nếu không, giả sử thông điệp yêu cầu so sánh với phiên hội thoại mà tham gia vào với agent gửi thông điệp Nếu thấy phù hợp, bắt đầu phiên hội thoại Một thông tin từ biểu đồ Concurrent Task Model tích hợp vào phiên hội thoại, người thiết kế phải đảm bảo yếu tố khác tính bền vững khả chịu lỗi Lắp ráp lớp agent Chi tiết lớp agent thiết kế bước Bước gồm hai bước nhỏ sau: định nghĩa kiến trúc agent định nghĩa thành phần kiến trúc Người thiết kế lựa chọn thiết kế kiến trúc thành phần kiến trúc từ đầu từ có sẵn Các thành phần gồm thuộc tính, phương thức, kiến trúc Ở đây, xây dựng biểu đồ Agent Architecture Diagram Thiết kế hệ thống Đây bước cuối phương pháp luận MaSE sử dụng biểu đồ Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 65 Tiểu luận môn: Các mô hình lập trình tiên tiến Deployment Diagrams để số lượng, kiểu vị trí agent hệ thống Đây bước đơn giản phần lớn công việc thực bước trước Người thiết kế nên định nghĩa việc triển khai hệ thống trước cài đặt agent thường yêu cầu thông tin biểu đồ Deployment Diagram, hostnemt địa để giao tiếp Biểu đồ Deployment Diagram mang lại hội cho người thiết kế hòa nhập hệ thống với môi trường để tối đa hóa sức mạnh xử lý độ rộng băng thông sẵn có 5.2 Kết luận Nội dung chương tập trung trình bày quy trình phát triển hệ phần mềm đa agent dựa phương pháp luận MaSE Quy trình phân thành hai pha: pha phân tích pha thiết kế Mục đích pha phân tích tiến hành xây dựng đích (goal) hệ thống dựa để xây dựng use case, ontology sơ đồ role Pha thiết kế bao gồm xác định lớp agent, xây dựng phiên hội thoại, lắp ráp agent thiết kế hệ thống KẾT LUẬN Qua thời gian nghiên cứu công nghệ Agent, đặc biệt trình thực tiểu luận, nhóm nắm rõ cách phân tích, xây dựng mô hình phân tán dựa công nghệ Agent áp dụng vào mô hình vào toán xây dựng chương trình mua vé xe dựa công nghệ Agent Những kết mà tiểu luận đạt tổng kết sau: • Tìm hiểu chung công nghệ Agent, hướng phát triển kiến trúc phần mềm hữu ích; ứng dụng Agent, với với hệ thống phân tán, mở, phức tạp phát triển với lớn mạnh Internet ngày • Tìm hiểu môi trường Jade, sử dụng thư viện Jade để xây dựng chương trình mua vé xe • Áp dụng mô hình vào toán phân tán xây dựng chương trình mua vé xe Bên cạnh kết đạt được, có vấn đề mà thời điểm mà tiểu luận chưa đạt chưa đưa Jade Ontology để mô tả mối quan hệ agent Các hệ thống phức tạp xây dựng phát triển công nghệ Agent hoàn toàn khả thi hữu ích Đây hướng phát triển đầy triển vọng mang lại nhiều lợi ích cho hệ phần mềm tương lai Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 66 Tiểu luận môn: Các mô hình lập trình tiên tiến TÀI LIỆU THAM KHẢO A Tiếng Việt: [1] PGS.TS Trần Đình Quế, Phát triển phần mềm hướng Agent, Học viện Công nghệ Bưu Chính Viễn thông, 2010 B Tiếng Anh: [2] Fabio Bellifemine et al Developing Multi-Agent Systems with JADE, John Wiley Sons, 2007 [2] W Branner et al Intelligent Software Agents: Foundations and Application, Springer, 1998 [3] S A DeLoach, Analysis and Design using MaSE and agentTool 12th Midwest Artificial Intelligence and Cognitive Science Conference (MAICS 2001), Ohio, March 31-April 1, 2001 [4] M Wooldridge, An Introduction to Multiagent Systems, Published in John Wiley & Sons, 2009 [5] Pedro Cuesta-Morales et al., Developing Multi-Agent System Using MaSE and JADE, 2004 Thành viên: Đỗ Gia Bảo – Bùi Xuân Hiền – Văn Minh Nghiêu Trang 67 .. .Tiểu luận môn: Các mô hình lập trình tiên tiến 3.5 Agent với giao diện đồ họa 44 3.5.1 Thực hành lập trình tốt với lắng nghe kiện AWT 44 3.5.2 Thực hành lập trình cách... yêu cầu từ agent khác); chúng có hành vi linh hoạt; agent hệ thống điều khiển luồng riêng Ngôn ngữ lập trình hướng agent loại ngôn ngữ lập trình Nó tập trung vào đặc điểm hệ thống đa agent Tối... khái quát agent, hệ đa agent, ứng dụng hệ đa agent Một so sánh agent đối tượng trình bày nhằm làm sáng tỏ khái niệm Tiếp theo trình bày kiểu kiến trúc Agent, sở hình thành Agent vật lý Agent thông

Ngày đăng: 15/05/2017, 13:10

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w