Lập trình game là một trong những lĩnh vực lý thú nhất và phát triển nhanh nhất của tin học. Ngay từ khi xuất hiện, lập trình game đã có sức lôi cuốn mãnh liệt, cuốn hút rất nhiều người ở nhiều lĩnh vực khác nhau như khoa học, nghệ thuật, .... Tính hấp dẫn và đa dạng của game có thể được minh họa rất trực quan thông qua việc khảo sát các ứng dụng của nó. Đặc biệt trong lĩnh vực lập trình Game Agent.
LỜI NÓI ĐẦU Lập trình game là một trong những lĩnh vực lý thú nhất và phát triển nhanh nhất của tin học. Ngay từ khi xuất hiện, lập trình game đã có sức lôi cuốn mãnh liệt, cuốn hút rất nhiều người ở nhiều lĩnh vực khác nhau như khoa học, nghệ thuật, Tính hấp dẫn và đa dạng của game có thể được minh họa rất trực quan thông qua việc khảo sát các ứng dụng của nó. Đặc biệt trong lĩnh vực lập trình game agent. Với khả năng tìm tòi, nghiên cứu, sáng tạo và sự giúp đỡ nhiệt tình của Thầy- Ths Lê Tấn Hùng chúng em nhóm sinh viên lớp CNPM – K47 đã hoàn thành đề tài xây dựng game agent. Đề tài của chúng em gồm những phần chính sau: 1. Báo cáo tổng quan về hệ đa agent. 2. Giới thiệu Java và các IDE được dùng nhiều nhất hiện nay. 3. Phân tích và minh họa chương trình game. Mặc dù chúng em đã hết sức cố gắng song vì thời gian có hạn nên chương trình của chúng em chắc chắn còn nhiều thiếu sót, chúng em mong nhận được sự chỉ bảo của thầy để đề tài này ngày càng được hoàn thiện. Chúng em xin chân thành cảm ơn thầy! Hà Nội, ngày 23 tháng 10 năm 2006 1/118 MỤC LỤC LỜI NÓI ĐẦU 1 MỤC LỤC 2 PHẦN I: Tác tử (Agent) và hệ đa tác tử (Multi Agent System - MAS) 6 I.1. Tổng quan về hệ đa tác tử 6 I.1.1. Giới thiệu chung về Agent: 6 I.1.2. Khái niệm về hệ đa agent 7 I.2. So sánh DAI và MAS 8 I.3. Hợp tác trong hệ đa tác tử (Cooperation) 12 I.3.1. Tại sao cần hợp tác trong MAS 12 I.3.2. Khái niệm về Cooperation 12 I.3.2.1. Xét về bản chất: 12 I.3.2.2. Xét về hiện tượng: 13 I.3.2.2.1. Các tiêu chí đánh giá 13 I.3.2.2.2. Định nghĩa 14 I.3.3. Phương thức hợp tác 15 I.3.4. Tổ chức và Hợp tác 18 I.4. Điều phối trong hệ đa tác tử (Coordination) 19 I.4.1. Định nghĩa điều phối 19 I.4.2. Tại sao phải cần điều phối trong hệ đa agent ? 20 I.4.3. Các cơ chế điều phối trong hệ đa agent 22 I.4.3.1. Các cơ sở để phân loại cơ chế điều phối agent 22 I.4.3.2. Các cơ chế điều phối hệ đa agent 24 I.4.3.2.1. Mutual adjustment (điều chỉnh qua lại) 24 I.4.3.2.2. Direct Supervision (giám sát trực tiếp) 24 I.4.3.2.3. Standardization (Chuẩn hóa) 24 I.4.3.2.4. Mediated Coordination – Điều phối gián tiếp 24 I.4.3.2.5. Reactive Coordination – Điều phối phản xạ 24 I.4.3.3. Mối quan hệ giữa sự phụ thuộc lẫn nhau của các hành động với các cơ chế điều phối 25 I.4.3.4. Một số điểm lưu ý 26 I.4.4. Điều phối theo mô hình của sự uỷ thác, thoả hiệp, thoả hiệp cộng đồng và học 26 I.4.4.1. Cơ sở của mô hình chung 26 I.4.4.2. Phân tích mô hình 27 I.4.4.2.1. Xem xét hệ đa agent như việc tìm kiếm các mục đích phân tán. 27 I.4.4.2.2. Điều phối trong việc tìm kiếm các mục đích phân tán 30 2/118 I.4.4.2.3. Sự uỷ thác 31 I.4.4.2.4. Sự thoả hiệp 32 I.4.4.2.5. Sự uỷ thác cộng đồng 34 I.4.4.2.6. Sự uỷ thác trong các mối liên hệ mục đích - mục đích con 36 I.4.4.2.7. Sự uỷ thác trong mối quan hệ phụ thuộc giữa các mục đích .37 I.4.5. Điều phối theo mô hình không gian 5D 37 I.4.5.1. Mục đích của sự điều phối theo mô hình 5D 37 I.4.5.2. Mô hình điều phối trong không gian 5D 38 I.4.5.3. Kiến trúc cơ bản của mô hình điều phối 39 I.4.5.3.1. Các thành phần của mô hình 39 I.4.5.3.2. Các tiến trình 40 I.4.5.3.3. Các ràng buộc 40 I.4.5.3.4. Sự kiểm tra cho cơ cấu Agent - Tiến trình- Ràng buộc 41 I.4.5.4. Phương pháp điều phối trong không gian 5D 42 I.4.6. Điều phối theo mô hình Mintzberg 42 I.4.7. Các kỹ thuật điều phối 44 I.4.7.1. Cấu trúc có tổ chức (Organizational Structure) – long term 44 I.4.7.2. Sự siêu trao đổi thông tin (Meta -Level Information Exchange) – medium term 45 I.4.7.3. Lập kế hoạch đa agent (Multi- Agent planning)- short term 46 I.4.7.4. So sánh các ưu điểm, nhược điểm của các kỹ thuật điều phối: 47 I.4.8. Thiết kế ngôn ngữ điều phối cho hệ đa agent 48 I.4.8.1. Các giả định về agent 48 I.4.8.2. Sự giao tiếp trong điều phối giữa các agent 49 PHẦN II: Ngôn ngữ Java và việc hỗ trợ xây dựng game trong Java 51 II.1. Ngôn ngữ Java: 51 II.1.1. Giới thiệu về ngôn ngữ Java: 51 II.1.2. Các đặc trưng của ngôn ngữ Java: 52 II.1.2.1. Đơn giản: 52 II.1.2.2. Hướng đối tượng: 53 II.1.2.3. Độc lập phần cứng và hệ điều hành: 54 II.1.2.4. Mạnh mẽ: 56 II.1.2.5. An toàn, bảo mật: 56 II.1.2.6. Phân tán: 58 II.1.2.7. Đa luồng: 59 II.1.2.8. Động: 59 II.1.3. Các kiểu chương trình Java: 59 II.1.3.1. Applets: 59 II.1.3.2. Ứng dụng thực thi qua dòng lệnh : 59 II.1.3.3. Ứng dụng đồ họa: 59 II.1.3.4. Servlet: 59 II.1.3.5. Ứng dụng cơ sở dữ liệu: 60 II.1.4. Máy ảo Java (JVM-Java Virtual Machine): 60 3/118 II.1.4.1. Quản lý bộ nhớ và dọn rác: 62 II.1.4.2. Quá trình kiểm tra file .class: 63 II.1.5. Java Core API: 64 II.2. Giới thiệu một vài lớp Java hay sử dụng trong Game: 66 II.2.1 Gói giao diện AWT: 66 II.2.1.1 Giới thiệu về AWT: 66 II.2.1.2 Container: 67 II.2.1.2.1. Frame: 67 II.2.1.2.2. Panel: 68 II.2.1.2.3. Dialog: 68 II.2.2.3. Thành phần (Component): 68 II.2.2.3.1. Nhãn (Label): 69 II.2.2.3.2. Ô văn bản (TextField): 69 II.2.2.3.3. Vùng văn bản (TextArea): 70 II.2.2.3.4. Button: 71 II.2.2.3.5. Checkbox và RadioButton: 71 II.2.2.3.6. Danh sách chọn lựa (Choice List): 72 II.2.2.4. Trình quản lý cách trình bày (Layout manager): 72 II.2.2.4.1. FlowLayout manager: 72 II.2.2.4.2. BorderLayout Manager: 73 II.2.2.4.3. CardLayout Manager: 73 II.2.2.4.4. GridLayout Manager: 73 II.2.2.4.5. GridBagLayout Manager: 73 II.2.2.5. Xử lý các sự kiện: 74 II.2.2.6. Menu: 77 II.2.2. Đa luồng (MultiThreading): 78 II.2.2.1. Giới thiệu: 78 II.2.2.2. Đa luồng: 78 II.2.2.3. Tạo và quản lý luồng: 78 II.2.2.4. Vòng đời của Luồng: 80 II.2.2.5. Phạm vi của luồng và các phương thức của lớp luồng: 80 II.2.2.5. Thời gian biểu luồng: 81 II.2.2.6. Luồng Daemon: 82 II.2.2.6. Đa luồng với Applets: 83 II.2.2.7. Nhóm luồng: 83 II.2.2.8. Sự đồng bộ luồng: 84 II.2.2.8.1. Mã đồng bộ: 85 II.2.2.8.2. Sử dụng khối đồng bộ (Synchronized Block): 85 II.2.2.9. Kỹ thuật “wait-notify” (đợi – thông báo): 86 II.2.2.10. Sự bế tắt (Deadlocks): 87 2.2.11. Thu dọn “rác” (Garbage collection): 88 II.2.3. Lập trình mạng trong Java: 89 II.2.3.1. Các kiến thức cơ sở về mạng máy tính: 89 4/118 II.2.3.2. Khái niệm TCP: 89 II.2.3.3. Khái niệm UDP: 90 II.2.3.4. Các cổng (Ports): 90 II.2.3.5. Các lớp thiết kế cho mạng của Java: 91 II.2.3.6. Tổng quan về Sockets: 91 II.2.3.6.1. Khái niệm Socket: 91 II.2.3.6.2. Đọc và ghi tới một Socket: 91 II.2.3.7. Tổng quan về đơn vị dữ liệu (DataGrams): 92 II.2.3.7.1. Khái niệm đơn vị dữ liệu (datagram): 92 II.2.3.7.2. Datagram client và server: 92 II.2.3.8. Quảng bá tới nhiều nơi nhận: 93 II.3. Apache Ant: 94 II.4. Giới thiệu một vài IDE sử dụng để phát triển ngôn ngữ Java: 95 II.4.1. NetBeans – Môi trường phát triển mã nguồn mở: 95 II.4.2. Eclipse: 96 PHẦN III: PHÂN TÍCH CHƯƠNG TRÌNH 97 III.1. Giới thiệu chung: 97 III.2. Kiến trúc của game: 99 III.3.Các luật được đặt ra trong game: 100 III.3.1. Yêu cầu về sân đấu: 101 III.3.2. Yêu cầu về số lượng người chơi: 101 III.3.3. Thời gian trong một trận đấu: 101 III.3.4. Các luật đưa ra khi trò chơi diễn ra: 102 III.4. Việc mô phỏng các quá trình vật lý trong game: 102 III.4.1. Tính toán vị trí cầu thủ và quả bóng theo mô hình vật lý: 102 III.4.2. Đụng độ và hướng giải quyết: 104 III.4.3. Tạo độ bất định cho đối tượng: 104 III.4.4. Giao diện giao tiếp giữa client/server: 104 III.4.5. Thuộc tính các đối tượng: 107 III.4.6. Hướng dẫn sử dụng game: 110 III.4.7. Sử dụng trí tuệ nhân tạo cho client: 111 PHẦN IV: KẾT LUẬN 117 TÀI LIỆU THAM KHẢO 117 5/118 PHẦN I: Tác tử (Agent) và hệ đa tác tử (Multi Agent System - MAS) I.1. Tổng quan về hệ đa tác tử I.1.1. Giới thiệu chung về Agent: Khi mà ngành khoa học máy tính chuyển từ những hệ thống máy tính cá nhân đơn lẻ sang những hệ thống có sức mạnh thực sự - những hệ thống phân tán, mở và động, ta phải đối mặt với những thách thức và cơ hội mới. Những đặc điểm của môi trường động và mở, trong đó, các hệ thống phải tương tác, mở rộng biên giới tổ chức, và hoạt động một cách có hiệu quả trong sự thay đổi nhanh chóng về phạm vi và sự tăng trưởng mạnh mẽ về kích thước, số lượng của thông tin, đòi hỏi một mức độ độc lập (autonomy) nào đó, cho phép các thành phần đáp ứng một cách động lại sự thay đổi của môi trường nhằm đạt được các mục tiêu của hệ thống. Các ứng dụng thực tế, các dịch vụ web là một ví dụ điển hình, cung cấp các phương thức mới để xử lý thông qua một tập các công cụ được chuẩn hoá, và hỗ trợ một khung nhìn hướng dịch vụ đối với các thành phần phần mềm riêng biệt, độc lập tương tác với nhau nhằm đạt được một chức năng có giá trị. Trong bối cảnh đó, công nghệ agent đã trở thành một công cụ chủ yếu nhằm vào các vấn đề đang nổi lên, cần sự quản lý phức tạp. Có rất nhiều các định nghĩa khác nhau về tác tử, theo định nghĩa thông dụng nhất thi Tác tử (Agent) là một hệ thống tính toán hoạt động tự chủ trong một môi trường nào đó, có khả năng cảm nhận môi trường và tác động vào môi trường. Như Agent có thể được xác định như là các thực thể tính toán giải quyết vấn đề, mang tính tự chủ, có khả năng thao tác một cách hiệu quả trong một môi trường mở, động. Agent thường được triển khai trong môi trường mà chúng tương tác, có thể hợp tác với các agent khác (cả con người lẫn phần mềm) mà có thể mục đích mâu thuẫn với nhau. Những môi trường như vậy được gọi là hệ đa agent. 6/118 I.1.2. Khái niệm về hệ đa agent Một hệ dựa agent là hệ mà phần tử trừu tượng trọng yếu (key abstraction) là agent. Về nguyên lý, một hệ dựa agent có thể được hình thành về mặt khái niệm dựa trên agent, nhưng cài đặt mà không cần bất cứ một cấu trúc phần mềm nào tương ứng với agent. Một tình huống dễ gặp hơn đó là một hệ thống được thiết kế và cài đặt gắn liền với khái niệm agent. Một hệ dựa agent có thể bao gồm 1 hay nhiều agent. Có những trường hợp phương án sử dụng một agent là hợp lý, ví dụ như đối với một lớp các hệ thống đóng vai trò chuyên gia trợ giúp, trong đó, mỗi agent đóng vai trò như một chuyên gia trợ giúp đối với người dùng, cố gắng sử dụng máy tính để thực hiện một số nhiệm vụ. Tuy nhiên, phương án hệ đa agent - hệ thống được thiết kế và cài đặt với một số agent tương tác với nhau, thường được đánh giá là tổng quan hơn, thú vị hơn đứng trên quan niệm công nghệ phần mềm. Một hệ đa agent thường thích hợp để biểu diễn các vấn đề mà có nhiều phương pháp giải quyết vấn đề, nhiều khung cảnh khác nhau, và/hoặc nhiều thực thể giải quyết vấn đề. Những hệ thống như vậy ngoài những ưu điểm truyền thống của việc giải quyết vấn đề phân tán, còn có những lợi thế của các mô hình tương tác phức tạp. Các kiểu tương tác thường thấy bao gồm: • Hợp tác: Cùng làm việc hướng tới một mục đích chung. • Điều phối: Tổ chức hoạt động giải quyết vấn đề sao cho tránh được những tương tác có hại và tận dung được các tương tác có lợi. • Thương lượng: Tiến tới sự thống nhất quan điểm giữa các bên liên quan. Tính uyển chuyển và tính tự nhiên cao của những tương tác này tạo ra sự khác biệt giữa hệ đa agent và các dạng phần mềm khác, cung cấp sức mạnh cho các mô hình. Tương ứng với 3 kiểu tương tác này là 3 kiểu ứng dụng điển hình: • Đánh giá tình huống phân tán (Distributed situation assessment) nhấn mạnh cách các agent (phân tích) với các quan niệm nhận thức và điều khiển khác nhau có thể cùng chia sẻ tri thức của bản thân chúng để đạt 7/118 tới sự giải thích nhất quán và rõ ràng, và phản hồi. Ví dụ: phân tích mạng, thu thập thông tin trên Internet, các mạng cảm nhận phân tán • Lập lịch biểu, lập kế hoạch các tài nguyên phân tán (Distributed resource scheduling and planning) chú trọng đến cách các agent (lập lịch) có thể điều phối lịch biểu của chúng để tránh và giải quyết vấn đề xung đột tài nguyên, và tối đa hoá kết quả đầu ra của hệ thống. Ví dụ: lập lịch biểu nhà máy, quản lý mạng, các môi trường thông minh • Hệ chuyên gia phân tán (Distributed expert systems) nhấn mạnh cách chia sẻ thông tin và thương lượng giữa các giải pháp được đưa ra bới các chuyên gia và tiêu chí giải quyết vấn đề khác nhau. Ví dụ: khôi phục dịch vụ mạng I.2. So sánh DAI và MAS Trong lịch sử, các nghiên cứu về các hệ thống bao gồm nhiều agent được đi theo hướng Trí tuệ nhân tạo phân tán (Distributed Artificial Intelligence-DAI), và được phân chia mang tính lịch sử thành 2 loại chính: Giải quyết vấn đề phân tán (Distributed Problem Solving-DPS), và hệ đa agent (Multi-Agent Systems-MAS). Gần đây, cụm từ “hệ đa agent” đã mang tính chung hơn, và được dùng để đề cập đến tất cả các loại hệ thống bao gồm nhiều thành phần - agent. Giải quyết vấn đề phân tán (Distributed problem solving-DPS): Một vấn đề cụ thể có thể được giải quyết bởi một số các module (các nút), các nút này hợp tác trong chia sẻ tri thức hiểu biết về vấn đề và sự tiến triển của các phương án giải quyết. Trong một hệ thống thuần DPS, tất cả các chiến lược giải quyết vấn đề được tổ chức thành một phần tích hợp của hệ thống. Ngược lại, MAS liên quan đến hành vi của một tập các agent tự chủ, có thể đã tồn tại trước rồi, và cùng hướng tới mục đích giải quyết một vấn đề nhất định. MAS có thể định nghĩa một cách gần đúng như một mạng các chuyên gia giải quyết vấn đề cùng nhau để giải quyết các vấn đề mà vượt quá khả năng và hiểu biết của mỗi thành viên. Các phần tử - các agent mang bản chất tự chủ và không đồng nhất. Các đặc điểm của MAS: 8/118 • Mỗi một agent có thông tin, khả năng giải quyết vấn đề không đầy đủ, do đó mỗi agent có một tầm nhìn hạn chế. • Không có một hệ thống điều khiển toàn cục. • Dữ liệu không tập trung. • Tính toán không đồng bộ. Những ưu điểm chính của hệ đa tác tử: • Cho phép giải quyết các vấn đề quá phức tạp đối với từng tác tử riêng lẻ. • Cho phép tích hợp các hệ thống và các chương trình có sẵn. • Cho phép mô hình hóa một cách tự nhiên và trực giác nhiều vấn đề có cấu trúc giống với hệ đa tác tử. • Cho phép giải quyết các vấn đề mà thông tin hoặc tri thức có tính phân tán. MAS có các hiệu quả đạt được về mặt hiệu năng: • Hiệu quả tính toán (computational efficiency): việc tính toán đồng thời được khai thác (thêm vào đó giảm được việc truyền thông, do chỉ phải truyền những thông tin ở mức cao chứ không phải là các dữ liệu ở mức thấp). • Tính tin cậy (reliability): khả năng phục hồi tuyệt vời của các thành phần, do các agent với các khả năng dư thừa hoặc điều phối tương tác thích hợp mang tính động, dễ dàng tìm được (thay thế, đảm nhận cong việc của những agent lỗi). • Khả năng mở rộng (extensibility): số lượng và khả năng của các agent có thể thay đổi. • Mạnh mẽ (robust): khả năng chấp nhận tính không chắc chắn, vì thông tin thích hợp được trao đổi giữa các agent. • Khả năng bảo trì được (maintainability): một hệ thống bao gồm nhiều thành phần thi dễ bảo trì hơn do tính module của nó. 9/118 • Tính đáp ứng (responsiveness): do tính module, vấn đề có thể được giải quyết một cách đơn lẻ, không cần đến toàn bộ hệ thống. • Tính uyển chuyển (flexibility): các agent với các khả năng khác nhau có thể thích nghi tổ chức giải quyết vấn đề hiện tại. • Tái sử dụng (reuse): chức năng xác định của từng agent có thể được sử dụng lại trong những nhóm agent khác nhau để giải quyết các vấn đề khác nhau Thách thức: Mặc dù MAS có nhiều ưu điểm song chúng cũng đối mặt với không ít thách thức. Dưới đây là một số vấn đề trong thiết kế và cài đặt: • Làm thế nào để mà biểu diễn, mô tả, phân chia và phân bố các vấn đề ; tổng hợp kết quả trong một nhóm các agent? • Bằng cách nào để tạo cho các agent khả năng thông tin và tương tác? Sử dụng ngôn ngữ và giao thức truyền thông nào? Khi nào và cái gì để truyền thông? • Làm thế nào để đảm bảo được các agent sẽ hành động một cách mạch lạc trong quyết định và hành động, xác định những hiệu ứng không cục bộ của các quyết định cục bồ và tránh những tương tác có hại? • Bằng cách nào để mỗi agent riêng lẻ biểu diễn và suy luận được các hành động, kế hoạch và tri thức của các agent khác để hợp tác với chúng? Làm thế nào để nhận biết được trạng thái của quá trình điều phối (vd: bắt đầu, kết thúc)? • Làm thế nào để nhận ra và hoà hợp giữa các quan điểm khác nhau, những dự định mâu thuấn giữa một nhóm các agent cùng phối hợp hành động? • Làm thế nào để cân bằng hiệu quả tính toán cục bộ và truyền thông? Tổng quát hơn là phân bố nguồn lực có hạn một cách hợp lý? 10/118 [...]... hệ đa agent chia sẻ chung một môi trường hoạt động, tương tác giữa các agent sẽ tăng lên là một điều tất yếu Một agent có thể làm thay đổi một số đặc tính của môi trường, thay đổi này tác động đến các agent khác ví dụ như nó có thể sử dụng một tài nguyên không chia sẻ của các agent khác Khi một quyết định của agent này làm ảnh hưởng đến những gì mà các agent khác có thể làm hoặc nên làm, các agent. .. các agent phụ thuộc vào nhau: agent thứ 2 phải đợi agent thứ nhất thực hiện xong thì nó mới có thể hoàn thành công việc của mình Do đó, khi hành động của các agent phụ thuộc vào nhau chúng cần phải được điều phối các hoạt động của mình Đảm bảo hiệu năng cao: Ngay cả khi các chức năng của các agent là độc lập nhau thì chúng vẫn cần phải điều phối vì thông tin của agent này sẽ ảnh hưởng đến các agent. .. nguyên được sản xuất sử dụng một sự thoả hiệp cộng đồng thích hợp Agent 1 có chấp nhận đề xuất của agent2 hay không tuỳ thuộc vào ý muốn cá nhân của nó và mối quan hệ giữa hai agent Nếu đề nghị của agent2 được agent1 chấp nhận hoặc nếu agent2 có thể buộc agent1 thì sự 35/118 thoả hiệp sẽ được chấp thuận Nếu đề nghị không được chấp thuận hai agent sẽ cùng nhau thương lượng để quyết định đạt được sự chấp... 2: Trong một hệ đa agent, điều phối là một quá trình mà trong đó mỗi agent học về các hành động của nó và đoán trước các hành động của những agent để cố gắng đảm bảo các hành động liên lạc với nhau trong một mối liên kết thống nhất Liên kết có nghĩa các hoạt động của mỗi agent đều được thực hiện tốt và không xung đột với các agent khác I.4.2 Tại sao phải cần điều phối trong hệ đa agent ? Ngăn chặn... quyết định phải thực hiện theo nhóm Mục đích nối chính là sự liên kết giữa các hành động riêng lẻ của mỗi agent vào trong một mục đích chung làm tăng tính ảnh hưởng của mỗi agent lên cộng đồng agent Ví dụ như G 1,2m là mục đích con của Agent 1 và Agent2 và kết quả là Agent1 thực hiện G1m,1 và Agent2 thực hiện G2m,2 Nhờ các mục đích nối, tất cả các thành viên trong một đội đều có ảnh hưởng đến cả nhóm... lĩnh vực (trong các ứng dụng, các agent có các trình độ, kinh nghiệm khác nhau do đó việc phân định các mục đích cho mỗi agent là một công việc không đơn giản vì phụ thuộc vào khả năng hoàn thành công việc của mỗi agent) • Dạng của các agent có trong cộng đồng (ví dụ với các agent tự chủ, tổng không gian tìm kiếm chính là hợp của các không gian tìm kiếm cục bộ và mỗi agent làm việc dựa trên các mục đích... nhân, chia sẻ về nguồn tài nguyên như dụng cụ y tế Độc lập giữa những hành động của các agents (tránh xung đột): Mục đích của các agent thường hay phụ thuộc lẫn nhau Hãy xét ví dụ : Giả sử hai agents phải giải quyết các khối công việc sau: Hình 3: Giải quyết bài toán gồm nhiều công việc Có hai agent: agent 1 có 2 khối công việc là A và B, agent 2 có khối công việc là C Mục đích của chúng là thực... trong hệ đa agent I.4.3 Các cơ chế điều phối trong hệ đa agent I.4.3.1 Các cơ sở để phân loại cơ chế điều phối agent Có rất nhiều tiêu chí để phân loại các cơ chế điều phối agent như dựa vào sự phụ thuộc lẫn nhau giữa các thành phần, hoặc sự phụ thuộc giữa nhau giữa các hành động của agent Sau đây ta xét đến các cơ chế điều phối dựa trên sự phụ 22/118 thuộc lẫn nhau giữa các hành động của agent Có ba... Các cơ chế điều phối hệ đa agent I.4.3.2.1 Mutual adjustment (điều chỉnh qua lại) Các agent chia sẻ thông tin và nguồn tài nguyên để đạt được một mục đích chung, mỗi agent phải tự điều chỉnh hành vi của chúng cho phù hợp với hành vi của các agent khác Sự điều phối theo cơ chế điều chỉnh qua lại trong nhóm là ngang bằng nhau, không agent nào có quyền điều khiển cao hơn và không agent nào có quyền quyết... điều kiện được thoả mãn: • Việc thêm một agent mới có thể làm tăng hiệu năng của cả nhóm • Hành động của các agent nhằm tránh và giải quyết các xung đột thực tế cũng như tiềm tàng Tăng hiệu năng: Việc thêm một agent mới có thể làm tăng hiệu năng của cả nhóm Nếu các agent đang hợp tác, việc thêm một agent mới hỗ trợ cho cả nhóm Trong trường hợp này, ta nói các agent đang cộng tác Việc tăng hiệu năng