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
• Bằng cách nào để kỹ thuật hoá và áp dụng đối với các hệ thống MAS
thực tế? Làm thế nào để thiết kế nền và phát triển các phương pháp
luận cho MAS.
Cũng như như nhiều hướng nghiên cứu và công nghệ khác, tác tử không phải
là một công nghệ hay một hướng nghiên cứu độc lập và hoàn toàn mới mà được
hình thành từ nhiều hướng nghiên cứu nhiều công nghệ khác, đồng thời sử dụng
nhiều kết quả từ các hướng nghiên cứu này. Tác tử cũng không phải là ứng dụng
mới, được sử dụng biệt lập mà nó thường được sử dụng kết hợp với các ứng dụng
khác cho phép bổ trợ tăng khả năng hiệu quả của những ứng dụng này. Các lĩnh
vực nghiên cứu liên quan tới tác tử bao gồm:
• Trí tuệ nhân tạo.
• Mạng máy tính, internet, intranet.
• Công nghệ phần mềm.
Có rất nhiều các ứng dụng thành công của tác tử và hệ tác tử trong thực tế, các
ứng dụng này rất đa dạng và phong phú. Các ứng dụng tiêu biểu thể hiện ưu điểm
của giải pháp sử dụng tác tử trong những miền ứng dụng khác nhau:
• Ứng dụng trong quản lý sản xuất: Tiêu biểu là hệ thống
YAMS[Parunak]. YAMS được xây dựng dưới dạng các tác tử cộng tác
trong đó mỗi xưởng và các thành phần của xưởng được biểu diễn bởi
một tác tử, từng tác tử có kế hoạch và khả năng của mình. Từ tác tử
mức trên, công việc được phân chia xuống tác tử phân xưởng và xuống
tới từng vị trí công việc tùy thuộc và khả năng. Hệ tác tử còn được sử
dụng trong lập kế hoặc sản xuất, hỗ trợ thiết kế sản phẩm, quản lý
robot công nghiệp.
• Tác tử quản lý luồng công việc (workflow): Tiêu biểu cho hệ thống
loại này là ADEPT [Jennings 1999], được xây dựng cho hệ thống
British Telecom (BT). ADEPT mô hình hóa các bộ phận và nhân viên
11/118
như những tác tử cung cấp dịch vụ đánh giá, tác tử thương lượng với
tác tử khác để giải quyết công việc.
• Tác tử thu thập và quản lý thông tin: Tác tử thuộc loại này chủ yếu
được dùng để giải quyết các vấn đề dư thừa thông tin, đặc biệt là thông
tin trên Internet bao gồm lọc thông tin và thu thập thông tin. Trong đó
có hai hệ thống tác tử thông tin tiêu biểu: Tác tử thông tin cá nhân
MAXIMS [Maes 1994] là tác tử lọc và phân loại thư điện tử và Hệ
quản lý vốn đầu tư WARREN [jennings] là hệ đa tác tử cho phép lọc
và thu thập thông tin.
• Tác tử phục vụ thương mại điện tử: gồm tác tử mua hàng, tác tử đấu
giá và chợ điện tử. Tiêu biểu là hệ thống chợ điện tử Kasbah [Chavez
và Maes 1996].
• Tác tử giao diện: Phổ biến nhất của tác tử giao diện là tác tử Office
Assistant được cung cấp cùng bộ với Microsoft Office.
• Trò chơi sử dụng tác tử
I.3. Hợp tác trong hệ đa tác tử (Cooperation)
I.3.1. Tại sao cần hợp tác trong MAS
• Có những nhiệm vụ mà việc thực hiện một mình để hoàn thành là không
thể do nó lớn quá so với khả năng và hiểu biết của mỗi phần tử được.
• Việc nhiều agent cùng tham gia giải quyết vấn đề cải thiện năng suất chung
của cả hệ: Số nhiệm vụ thực hiện trong một khoảng thời gian sẽ tăng lên,
thời gian thực hiện đối với mỗi nhiệm vụ cũng giảm đi do có dự hỗ trợ lẫn
nhau giữa các agent.
• Tài nguyên được khai thác và sử dụng một cách hợp lý hơn.
I.3.2. Khái niệm về Cooperation
I.3.2.1. Xét về bản chất:
Một tập hợp các agent được gọi là hợp tác nếu chúng cùng xác định một mục
đích chung và phối hợp, hỗ trợ lẫn nhau để đạt được mục đích chung đó. Việc hợp
12/118
tác có tồn tại hay không phụ thuộc vào việc các agent có đảm nhiệm các nhiệm vụ
sau khi đã xác định mục đích chung.
Tuy nhiên, ta xét tình huống sau: Ted và Bill cùng xây một bức tường, Ted có
thể xây tường một mình hết 1 giờ, Bill hết 1.5 giờ. Tuy nhiên, làm việc cùng nhau
mất 3 giờ!
Như vậy có phải là hợp tác không? Liệu có phải chỉ cần tập hợp các agent lại,
cùng làm việc hướng tới một mục đích gọi là hợp tác? Đó chính là vấn đề đặt ra
đối với định nghĩa ở trên:
• Nếu không có yêu cầu về đảm bảo hiệu năng của hệ thì cản trở cũng là hợp
tác?
• Đối với các agent mang tính phản xạ thì sao, loài kiến là một ví dụ, chúng
hợp tác với nhau mà không ý thức được điêu đó.
• Định nghĩa này cũng chưa thể hiện mức độ hợp tác
I.3.2.2. Xét về hiện tượng:
Nhìn từ bên ngoài mà không xét đến trạng thái nhận thức, loài kiến được coi
là có hợp tác vì chúng có một số hiện tượng biểu thị sự hợp tác. Để xác định được
sự hợp tác cần có các tiêu chí để đánh giá, các tiêu chí này phải cung cấp khả năng
quan sát và định lượng. Chúng được dùng để đánh giá mức độ hợp tác
I.3.2.2.1. Các tiêu chí đánh giá
Một số các tiêu chí để đánh giá:
• Điều chỉnh các hành động: về mặt không gian, thời gian.
• Mức dộ song song: sự phân bổ các tài nguyên và việc thực hiện đồng thời
các công việc đối với các agent.
• Chia sẻ tài nguyên.
• Tính vững chắc của hệ thống: đối với các lỗi, các trục trặc có thể xảy ra đối
với mỗi agent, sự bổ sung cho nhau để khắc phục được khi có lỗi xảy ra.
• Tính không dư thừa của các hành động
• Tính không cố định của các xung đột: số khối tình huống cố định thấp
13/118
I.3.2.2.2. Định nghĩa
Các agent được xác định là đang hợp tác, hay ở trong trạng thái hợp tác, nếu 2
đ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 của cả
nhóm làm cho việc đạt đến mục đích cuối cùng trở nên dễ dàng hơn. Nếu một
agent mới không làm tăng hiệu năng thì hệ coi như bị phá vỡ (tuy nhiên hệ vẫn có
thể là hệ hợp tác theo tiêu chí thứ 2)
Giải quyết và tránh xung đột: Hành động của các agent nhằm tránh hoặc giải
quyết các xung đột tiềm tàng. Nếu không thể cải thiện được hiệu năng, các agent
có thể phối hợp để đảm bảo hiệu năng không trở nên tồi hơn. Trường hợp này, các
agent đang giải quyết xung đột. Ví dụ: các bộ phận điều khiển bay, đèn hiệu giao
thông tại các nút giao thông
Hợp tác và giải quyết xung đột đều làm tăng khả năng đạt đến đích của nhóm:
tăng hiệu năng làm tăng khả năng tới đích, việc giảm xung đột đảm bảo khả năng
tới đích. Xét trên khía cạnh khả năng ý thức, có thể chia hợp tác làm 2 loại:
• Hợp tác có chủ đích: Các agent có ý định hợp tác (tuy nhiên vẫn đòi hỏi
một sự hợp tác thực sự, đảm bảo được yêu cầu về hiệu năng).
• Hợp tác mang tính phản xạ: Các agent không có ý định cụ thể về hợp tác
nhưng chúng vẫn thoả mãn ít nhất một trong 2 tiêu chí trên. Ví dụ: loài
kiến. Sự hợp tác ở đây chỉ như là hiệu ứng phụ được sinh ra do hành động
của các agent.
14/118
I.3.3. Phương thức hợp tác
Bằng cách nào có thể hợp tác được?
Nhóm lại và nhân lên (Grouping and Multiplication):
Các agent tương tự nhau về mặt logic hoặc vật lý được tập hợp lại. Điều này làm
cho chúng dễ dang hợp tác hơn, cả nhóm có thể hoạt động như một tổ chức đơn lẻ
có thể: tự bảo vệ, quyết định hướng đi, tìm kiếm thức ăn
Nhân lên có nghĩa là thêm vào hệ nhiều agent nữa, điều này làm cải thiện hiệu
năng, tăng độ tin cậy và tính vững chắc.
Truyền thông (Communications):
Khả năng thu nhận thông tin của các agent được mở rộng. Điều này cho phép các
agent thu lợi ích từ các thông tin và khả năng của các agent khác. Nó rất cần thiết
cho việc hợp tác. Việc truyền thông được thông qua: gửi/nhận các thông điệp
đến/từ các agent khác, thay đổi và cảm nhận dự thay đổi của môi trường. Truyền
thông là nền tảng cho phân chia nhiệm vụ và phối hợp hành động
Chuyên môn hoá (Specialization):
Các agent quen hơn đối với mỗi loại công việc cụ thể nào đó. Điều này làm cho
việc thiết kể dễ dang hơn vì các agent cho một nhiệm cụ đơn lẻ dễ thiết kế hơn. Sự
thích nghi, bao gồm: việc tăng cường kiến thức về một lĩnh vực nhất định vào đó,
học cách ứng xử mới có thể tạora sự chuyên môn hoá.
Chia sẻ nhiệm vụ, tài nguyên (Task & Resource Sharing):
Nhiệm vụ, thông tin, và các tài nguyên được phân chia nhằm đạt tới mục đích
chung. Việc phân chia được dựa trên 2 yếu tố cung ứng và yêu cầu, sử dụng 2 kỹ
thuật điển hình:
• Mạng cộng tác (acquaintance networks): gồm những agent đã biết, biết về
khả năng và quyền hạn.
• Nguyên tắc thị trường, vd: contract net.
Điều chỉnh các hành động (Coordination of actions):
Tạo ra một số hành động không sản xuất (non-productive) để đảm bảo các hành
động sản xuất được thực hiện trong những điều kiện tốt nhất có thể. Những hành
15/118
động này được gọi là nhiệm vụ điều phối (coordination tasks). Xác định thứ tự
thực hiện của các hành động bao gồm:
• Đồng bộ các hoạt động.
• Lập kế hoạch cho nhiều agent.
• Điều chỉnh
Phân xử và thương lượng:
Phân xử và thương lượng dùng để giải quyết xung đột và ngăn chặn sự suy giảm
hiệu năng của hệ thống.
• Phân xử (arbitration): Thường có một vài agent có thẩm quyền, đặt ra các
luật đối với các hành vi, các ràng buộc đối với các hoạt động của agent. Các
agent ý thực có thể lựa chọn để theo hay không các luật này, các agent phản
xạ gắn với các luật.
• Thương lượng: Giữa các agent thường xảy ra xung đột, xung đột cả mục
đích lẫn tài nguyên, khi đó cần phải thương lượng. Thương lượng là quá
trình qua đó các bên tham gia đạt được thỏa thuận về một số vấn đề có liên
quan đến lợi ích của mình. Để tác tử đạt được thỏa thuận cần hai yếu tố sau.
Thứ nhất cần quy định cơ chế hay giao thức thương lượng cho tác tử. Thứ
hai là chiến lược mà tác tử sử dụng trong quá trình tìm kiếm thỏa thuận với
tác tử khác. Yêu cầu chính đối với giao thức thương lượng là giao thức đó
phải cho phép tác tử đạt được lợi ích mong muốn khi sử dụng chiến lược
riêng thích hợp cho mình, có như vậy tác tử mới chấp nhận giao thức và
tham gia thương lượng. Các yếu tố liên quan đến thương lượng bao gồm:
không gian thương lượng, giao thức thương lượng, chiến lược thương
lượng riêng của từng tác tử, quy tắc xác định khi nào đạt được thỏa thuận.
Độ phức tạp của thương lượng phụ thuộc vào số lượng vấn đề thương
lượng được đưa ra cùng một lúc và số lượng các tác tử tham gia thương
lượng.
Contract Net:
16/118
Contract Net là một giao thức phân chia nhiệm vụ được biết đến nhiều. Trong giao
thức này, các agent đóng 2 vai trò: người quản lý và người đấu thầu. Với một
nhiệm vụ cần thực hiện, một agent phải xác định liệu nó có thể chia thành các
nhiệm vụ nhỏ để có thể thực hiện đồng thời hay không.Các giai đoạn của giao
thức:
• Nhận diện (recognition): Agent nhận được nhiệm vụ, và nó nhận ra rằng
nó không thể một mình thực hiện do 1 trong 2 khả năng:
o Không đủ khả năng.
o Không muốn thực hiện một mình, để có chất lượng tốt hơn, hay
tránh tắc nghẽn
• Thông báo (announcement): một thông báo bao gồm cả đặc tả về nhiệm
vụ cung với các ràng buộc, yêu cầu được truyền bá rộng rãi.
• Đấu giá (Bidding): Các agent quyết định có tham gia đấu giá hay không:
xác định khả năng giải quyết vấn đề của chính nó, xác định các điều kiện
ràng buộc và các thông tin về giá cả; đăng ký nếu muốn tham gia.
• Chấp nhận và giải quyết (Awarding & Expediting): Agent mà đã gửi
thông báo ban đầu phải chọn giữa các bên tham gia đấu giá để quyết định
xem ai được “ký hợp đồng”. Bên nhận được hợp đồng giải quyết nhiệm vụ.
Giao thức tạo ra khả năng phân chia nhiệm vụ một cách động, cho phép các
agent đấu giá cho nhiều nhiệm vụ cùng một thời gian, và cung cấp một sự cân
bằng tải mang tính tự nhiên (các agent bận bịu không cần đấu giá). Hạn chế của nó
là ở chỗ: nó không phát hiện và giải quyết các xung đột, người quản lý không
thông báo cho các node bị từ chối, các agent cũng không thể từ chối các cuộc đấu
giá, không có sự ưu tiên trong thực hiện các nhiệm vụ (các nhiệm vụ cấp bách
không được chú trọng).
Các vấn đề cài đặt đối với Contract Net, đó là bằng cách nào để:
• Xác định nhiệm vụ.
• Xác định chất lượng của dịch vụ.
17/118
• Chọn giữa các đề nghị mang tính cạnh tranh.
• Phân biệt các đề nghị dựa trên nhiều tiêu chí.
I.3.4. Tổ chức và Hợp tác
Bằng cách nào những nguyên tắc về hợp tác có thể gắn liền với các nguyên tắc
về tổ chức.
Các kỹ thuật hợp tác và các mục đích:
Hình 1: Kỹ thuật hợp tác.
Cài đặt & Cơ sở hạ tầng:
18/118
Hình 2: Cài đặt.
I.4. Điều phối trong hệ đa tác tử (Coordination)
I.4.1. Định nghĩa điều phối
Trong một 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 trong hệ đa agent này nên điều phối các quyết định của
mình.
Có rất nhiều định nghĩa điều phối khác nhau:
Định nghĩa 1 : Điều phối là một cơ chế đảm bảo các agent duy trì mối liên hệ giữa
các hoạt động của nó (trình tự, thực thi…). Điều khiển các thông tin điều phối phải
được thực hiện bởi 1 agent thông minh.
Mức độ điều khiển là từ 0 (zero) đến tuyệt đối (total). Điều khiển nghịch đảo
với tính tự chủ (đối với agent, không điều khiển tương ứng với tự chủ tuyệt đối,
ngược lại điều khiển tuyệt đối tương ứng với không có tính tự chủ).
19/118
Định nghĩa 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 tình trạng hỗn loạn:
Điều phối là một điều hết sức cần thiết vì trong các hệ thống hướng agent, sự
hỗn loạn là rất dễ xảy ra. Không một agent nào có thể bao quát hết được môi
trường, hệ thống mà nó thuộc vào. Điều này đơn giản không thực thi được vì mỗi
cộng đồng agent đều rất phức tạp. Ví dụ như một ông chủ không thể biết hết tất cả
các hoạt động của tất cả các nhân công của mình. Mỗi agent chỉ có khung nhìn cục
bộ, do đó mục đích và kiến thức của chúng có thể xung đột nhau. Giống như bất
kỳ một xã hội phức tạp nào, từng nhóm agent phải được điều phối để đạt được
mục đích chung.
Thoả mãn các ràng buộc chung:
Thông thường mỗi nhóm agent đều có những ràng buộc chung mà chúng phải
thoả mãn nếu muốn công việc thành công. Ví dụ như một hệ thống agents đang
được xây dựng phải thoả mãn ràng buộc là nằm trong ngân sách định trước. Cũng
tương tự như các agents quản lý hệ thống mạng phải trả lời lỗi trong vòng vài giây
và một số điều khác trong vòng vài giờ. Do đó các agents cần điều phối hành vi
của chúng để thoả mãn các điều kiện ràng buộc chung.
Chia sẻ kinh nghiệm, nguồn tài nguyên và thông tin:
Trong hệ đa agent, các agent có những khả năng và kiến thức khác nhau.
Chúng có những nguồn về thông tin, tài nguyên, mức độ tin cậy, khả năng đáp
ứng, các dịch vụ… khác nhau. Trong trường hợp này các agent phải được điều
phối cũng giống như trường hợp sau: Các chuyên gia về y học như bác sĩ gây mê,
bác sĩ phẫu thuật, bác sĩ cấp cứu, y tá…đều cùng làm việc với nhau để cứu chữa
cho các bệnh nhân bị tai nạn. Trong ví dụ này mỗi chuyên gia có kinh nghiệm
20/118
trong lĩnh vực của mình nhưng họ đều chia sẻ thông tin chung về tình trạng của
bệnh 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 hiện một công việc có kết quả theo thứ tự A, B,
C. Rõ ràng để thực hiện được mục đích này 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 khác và kết
hợp lại với nhau để giải quyết các bài toán nhanh chóng hơn, dễ dàng hơn.
Điều phối có thể bao gồm cả hợp tác, nhưng cần phải nhấn mạnh rằng hợp tác
không phải là điều kiện cần thiết trong một tập hợp các agent mà trong thực tế nó
có thể là các hành vi không liên kết. Nếu các agents không hiểu biết hết về nhau
khi đó các hành vi không liên kết có thể là tốt. Điều phối cũng có thể không cần sự
hợp tác. Ví dụ như có một người đang chạy về phía bạn nhưng bạn muốn thoát
khỏi anh ta, khi đó bạn sẽ điều phối các hành động của mình đối với anh ta cho
phù hợp mà không phải là hợp tác với anh ta.
Để đạt được sự điều phối, các agent có thể phải liên lạc với nhau. Tuy nhiên,
điều phối cũng có thể không cần sự liên lạc hay cung cấp các mô hình hành vi của
21/118
mình cho nhau. Trong trường hợp này, sự điều phối đạt được bằng cách tổ chức.
Song để điều phối giữa các agent được dễ dàng, chúng nên hợp tác với nhau thông
qua việc liên lạc, truyền thông để có thể biết được về mục đích, ý định, kết quả và
trạng thái của nhau.
Ở trong môi trường phân tán, điều phối còn có các tác dụng:
• Liên kết mạng: Tối đa hoá sự kết hợp tốt giữa các agent trong hệ thống
phân tán.
• Chỉ định nhiệm vụ và nguồn tài nguyên giữa các agent.
• Nhận biết và giải quyết các mối xung đột giữa các mục đích, sự kiện, hiểu
biết, khung nhìn và hành vi của các agent.
• Quyết định về kiến trúc của một agent được thiết lập.
Tuy nhiên danh sách các lý do trên để thấy được điều phối giữa các agent là
cần thiết vẫn chưa đầy đủ. Mức độ phối hợp được thể hiện trong phạm vi hoạt
động của các agent trong đó tránh thực hiện các hoạt động không cần thiết:
• Tránh livelock: Livelock là trường hợp mà hoạt động của các agent được
diễn ra liên tục nhưng không thu được sự tiến bộ nào.
• Tránh deadlock: Deadlock là trạng thái của sự việc mà các hành động sau
đó của hai hay nhiều agent là không thể thực hiện được.
• Tối đa hoá khả năng của mỗi agent.
• Đảm bảo khả năng an toàn cho hệ thống.
=> Tóm lại điều phối là một thuộc tính cần thiết và tất yếu 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 loại phụ thuộc lẫn nhau giữa
các hành động của các agent là : fit, flow và sharing. Mô hình của chúng:
Hình 4: Các loại phụ thuộc lẫn nhau giữa các hành động.
a) Fit interdependency (Sự phụ thuộc điều chỉnh)
Mô tả tình huống trong đó có một vài hành động thực hiện cùng một thời điểm
để tạo ra một sản phẩm hoặc một dịch vụ. Do đó, các đầu ra của các hoạt động này
phải được điều phối để chúng phù hợp, tương thích với nhau để tạo ra một sản
phẩm hoặc một dịch vụ liên kết. Khi một số sản phẩm đầu ra được tạo ra đồng
thời, các hoạt động tạo ra chúng sẽ được điều phối đồng thời. Vì vậy các hoạt
động điều phối trong quan hệ phụ thuộc fit interdependency chính là việc đặc tả
đầu ra của các hoạt động như là một tiến trình.
b) Flow Interdependency (Sự phụ thuộc luồng)
Bao gồm một số các hành động được liên kết với nhau một cách tuần tự, đầu
ra của một hành động này là đầu vào của một hành động khác. Sự điều phối các
hoạt động này chính là việc đảm bảo có một luồng tài nguyên đáp ứng được xuyên
suốt trình tự của các hoạt động. Nếu không các hoạt động sẽ không thể thực hiện
vì không có tài nguyên đầu vào (nếu một hành động nào đó không có đầu ra đúng)
hoặc các tài nguyên bị phủ lên nhau trong khi chờ được xử lý.
c) Sharing Interdependency (Phụ thuộc chia sẻ)
23/118
Nghĩa là hai hoạt động cùng dùng chung một nguồn tài nguyên. Sự điều phối
ở đây chính là sự phân bổ tài nguyên đến các hoạt động này sao cho tạo ra giá trị
kinh tế là lớn nhất hoặc đưa ra sự phân quyền ưu tiên cho các hành động để chúng
sử dụng nguồn tài nguyên đó.
I.4.3.2. 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 định cho cả nhóm.
I.4.3.2.2. Direct Supervision (giám sát trực tiếp)
Một agent có một số mức độ điều khiển đối với một số agent khác và nó có
thể điều khiển thông tin, nguồn tài nguyên và hành vi. Thông thường, giám sát
trực tiếp được thiết lập thông qua điều chỉnh qua lại.
I.4.3.2.3. Standardization (Chuẩn hóa)
Các thủ tục chuẩn hoá được thiết lập cho các agent để tuân theo.
Trong cơ chế điều chỉnh qua lại được thực thi bằng sự chấp thuận
Trong cơ chế giám sát được thực thi bằng các yêu cầu.
I.4.3.2.4. Mediated Coordination – Điều phối gián tiếp
Một agent gián tiếp hoạt động như một nhân vật trung gian (facilitator- tìm
kiếm thông tin), như một nhân vật môi giới (broker- cố vấn việc thương lượng
nguồn tài nguyên), và một nhà giám sát (thực hiện một số mức độ giám sát trực
tiếp). Nguyên tắc đầu tiên là bắt buộc nhưng những nguyên tắc khác là không bắt
buộc.
I.4.3.2.5. Reactive Coordination – Điều phối phản xạ
Agent phản ứng lại các tình huống đặc biệt với các hành vi đặc trưng. Với sự
lựa chọn thích hợp từ các hành vi, các hoạt động mà nó học được khi phải phản
ứng với các tình huống khác nhau, chúng sẽ lựa chọn được cách phản xạ tốt nhất.
24/118
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
Với điều chỉnh tương hỗ, sự điều phối theo cơ chế này là không cần thiết đối
với cả hai loại phụ thuộc flow và sharing bởi vì nó không cần điều phối các đầu ra
cho các hoạt động này để phù hợp với các hoạt động khác ( những sự phụ thuộc
kiểu flow và sharing yêu cầu các chuẩn của đầu vào và đầu ra). Do đó, để phù hợp
bằng kinh nghiệm người ta thấy rằng điều phối theo cơ chế điều chỉnh tương hỗ
chỉ phù hợp với sự phụ thuộc lẫn nhau của các hành động theo kiểu fit.
Các cơ chế điều phối theo kiểu chuẩn, kiểu trung gian, kiểu phản xạ không thể
áp dụng cho sự phụ thuộc giữa các hoạt động kiểu fit bởi vì các cơ chế điều phối
này các yêu cầu đầu vào cần được chuẩn hoá giữa các hoạt động liên tiếp nhau.
Các cơ chế điều phối trên theo kiểu định ra trước các tài nguyên được chuyển từ
công việc này đến công việc khác, hoặc xác định giới hanh của số lượng các đầu
ra được tạo ra, như vậy hoạt động của chúng chỉ phù hợp với các hoạt động phụ
thuộc lẫn nhau kiểu flow và sharing.
Điều phối theo cơ chế giám sát trực tiếp có thể được áp dụng cho cả 3 loại phụ
thuộc. Các giám sát viên có thể trực tiếp điều khiển cho các đầu ra của chúng phù
hợp với nhau, các luồng xử lý được mịn hoặc ấn định các nguồn tài nguyên cho
các hoạt động nếu chúng bị dùng chung. Vì vậy, cơ chế giám sát trực tiếp là cơ
chế điều phối được áp dụng rộng rãi nhất.
Tóm tắt các cơ chế điều phối ứng với những sự phụ thuộc lẫn nhau của các hành
động:
Fit Flow Sharing
Giám sát trực tiếp
Điều chỉnh tương hỗ
Giám sát trực tiếp
Chuẩn hoá
Điều phối trung gian
Điều phối phản xạ
Giám sát trực tiếp
Chuẩn hoá
Điều phối trung gian
Điều phối phản xạ
25/118