Chiến thuật là tập các qui tắc dùng để xác định hành vi ứng xử của đấu thủ ở mỗi nước đi. Mỗi qui tắc được xây dựng dựa trên các nước đi trước đó của đối thủ hoặc của cả hai bên.
1. CHUỖI BIT
Để có thể sử dụng giải thuật Gen giải bài toán nêu trên, chiến thuật sẽ được mô phỏng dưới dạng một chuỗi bit nhị phân trong đó bit 0 ( kí hiệu là C- viết tắt của cooperate) biểu diễn hành vi hợp tác được chọn, và bit 1 (kí hiệu là D - viết tắt của defect) biểu diễn hành vi bất hợp tác.
Cụ thể, xét trường hợp xây dựng qui tắc dựa vào ba nước đi trước đó của cả hai bên. Tại mỗi nước trong ba nước đi này, có 4 khả năng có thể xảy ra:
- Cả hai đấu thủ đều chọn hợp tác (kí hiệu CC hay R). - Đối phương chọn bất hợp tác ( kí hiệu CD hay S). - Đấu thủ chọn bất hợp tác (kí hiệu DC hay T).
- Cả hai đấu thủ cùng chọn bất hợp tác (kí hiệu DD hay P).
Để mã hóa một chiến thuật cụ thể, trước hết cần qui định cách thức mã hoá một chuỗi hành vi cụ thể dưới dạng chuỗi có chiều dài là ba kí tự . Thí dụ:
4* RRR, biểu thị chuỗi hành vi ở đó cả hai bên đều chọn hợp tác trong ba nước đi.
5* SSP biểu thị chuỗi hành vi mà đấu thủ bị đối phương bất hợp tác hai lần và nước đi cuối cả hai đều bất hợp tác.
Chuỗi ba chữ cái sau đó sẽ được sử dụng để tạo ra một con số có giá trị nằm giữa 0 và 63 bằng cách mã hoá chuỗi ở dạng một số nguyên theo cơ số 4 .Cách thức tiến hành như sau: CC = R = 0, DC = T =1, CD = S =2, DD = P =3. Như vậy một chuỗi mô tả ba hành vi bất hợp tác đồng thời liên tiếp nhau (PPP) sẽ được mã hoá thành 63. Sử dụng phương pháp mã hóa này, có thể định nghĩa một chiến thuật ( dựa trên ba nước đi trước đó) dưới dạng một chuỗi nhị phân dài 64 bit chứa C (hợp tác) và D (bất hợp tác), với ý nghĩa C hoặc D ở vị trí thứ i sẽ tương ứng với chuỗi hành vi biểu thị bởi số i. Thí dụ theo sơ đồ mã hoá thì kí hiệu D ở vị trí 0 sẽ là mã hoá của qui tắc có dạng RRR -> D, và kí hiệu C ở vị trí thứ 3 sẽ là mã hoá của qui tắc dạng RRP -> C.
Vì tập các qui tắc sinh bởi chuỗi có độ dài 64 bit phụ thuộc vào ba nước đi trước đó nên hành vi khi bắt đầu trò chơi sẽ không được xác định. Để giải quyết vấn đề này cần phải thêm vào 6 bit (C và D) mô tả các giả thiết về hành vi trước khi trò chơi bắt đầu. Như vậy có thể xác định được hành vi ứng xử khi trò chơi bắt đầu cũng như khi đang diễn tiến. Kết hợp giả thiết và tập các luật sinh, mỗi chuỗi có độ dài 70 bit sẽ biễu diễn một chiến thuật cụ thể, trong đó 64 bit dùng cho tập luật sinh nước đi kế tiếp và 6 bit dùng cho giả thiết.
Sau khi vấn đề mã hoá chiến thuật đã được xác định xong. Để tìm một chiến thuật tối ưu khả dĩ , cần tổ chức cuộc thi đấu với sự tham gia của nhiều đấu thủ theo thể thức vòng tròn - mỗi đấu thủ sẽ phải thi đầu lần lượt với các đôi thủ khác. Chiến thuật vượt trội (giành được số điểm cao nhất) của vòng đấu này sẽ được giữ lại để tham gia tiếp các vòng đấu sau với các chiến thuật khác.
2. MÁY HỮU HẠN TRẠNG THÁI (FINITE STATE MACHINES)
Cấu trúc của máy hữu hạn trạng thái gồm:
- Một tập hữu hạn các trạng thái nội tại, trong đó có một trạng thái được kí hiệu là trạng thái khởi đầu. Ở mỗi thời điểm có một trạng thái được chọn.
- Một tập hữu hạn các kí hiệu input và một tập hữu hạn các kí hiệu ouput. Ở mỗi trạng thái của máy hữu hạn tồn tại một ánh xạ từ tập kí hiệu input tới tập kí hiệu output: với một kí hiệu input cho trước, máy hữu hạn sẽ hoàn trả một kí hiệu output và chuyển sang một trạng thái mới.
Hình 1 minh hoạ một máy ba trạng thái có bảng kí hiệu input là {0, 1} và bảng kí hiệu output là {A, B, C}.
H.1 Máy hữu hạn trạng thái.
Máy hữu hạn, thí dụ như hình 1, sẽ được chương trình hiện thực ở dạng bảng tìm kiếm hai chiều: có số hàng bằng với số trạng thái và số cột bằng kích thước của bảng input. Bảng 2 mô tả một máy hữu hạn ở dạng bảng [3][2], mỗi phần tử của bảng chứa một kí hiệu output và một trạng thái mới viết ở dạng O/S. Trạng tháiInput 0 Input 1 0 B/1 A/2 1 B/0 B/1 2 A/2 C/1 Bảng chuyển cho hình 1.
Các máy hữu hạn trạng thái hoàn toàn có khả năng tính toán, i.e có thể xây dựng máy hữu hạn thực hiện một tác vụ bất kì, cũng có thể xem máy hữu hạn trạng thái như là một chương trình hay giải thuật.
Cách tiến hoá của FSM cũng giống hệt như sự tiến hoá của nhiễm sắc thể trong giải thuật Gen. Một tập các FSMs được đánh giá so với môi trường - là một tập gồm những kí hiệu input. Giải thuật sẽ tính toán giá trị thích nghi cho từng máy FSM dựa trên khả năng hoạt động của nó. Các giá trị thích nghi sẽ xác định cơ hội sinh sản của cộng đồng các FSMs: con cái được tạo ra bằng cách sao chép một FSM bố mẹ và có thể đột biến nó. Các phép toán đột biến có thể bao gồm việc thay đổi một kí hiệu output, thay đổi trạng thái chuyển, qui định trạng thái khởi tạo mới, thêm một trạng thái mới, hay xoá một trạng thái hiện có. Cộng đồng mới sau đó sẽ thay thế các cha- mẹ và chu trình này lại bắt đầu lặp lại.
Mô hình chiến thuật của bài toán người tù được xây dựng bằng FSM khá đơn giản. Bảng output luôn là {C, D}.Mỗi máy FSM sẽ quyết định nước đi kế tiếp - biểu diễn bởi kí hiệu output - dựa trên các nước đi trước đó của cả đấu thủ lẫn đối phương của nó, hoặc chỉ của đối phương. Số nước đi này sẽ quyết định kích thước của bảng input. Thí dụ, dựa vào nước đi ngay trước đó của cả hai bên, bảng input sẽ là {R, S, T, P}. Chỉ dựa vào nước đi trước đó của đối thủ, bảng input sẽ có dạng đơn giản hơn {C, D}, đồng thời cũng giới hạn được mức độ phức tạp của FSM.
Để chọn ra chiến thuật tối ưu khả dĩ, tương tự như mô hình chuỗi bit tổ chức cuộc thi đấu theo thể thức vòng tròn với sự tham gia của nhiều FSM -mô tả các chiến thuật. Mỗi trận đấu giữa hai đấu
thủ (hai FSM) cũng trải qua nhiều hiệp đấu. Cộng đồng các FSM ban đầu được tạo ngẫu nhiên. Sau mỗi vòng đấu, hơn nửa chiến thuật tỏ ra yếu kém trong cộng đồng sẽ bị thay thể bởi các FSM con cái mới thông qua các phép toán đột biến.
Vấn đề chọn mô hình biểu diễn chiến thuật trong bài toán người tù đặc biệt có ý nghĩa quan trọng. Biểu diễn dưới dạng chuỗi bit phù hợp với mô hình hiện thực chương trình theo giải thuật Gene chuẩn. Mỗi chiến thuật sau khi được mã hoá dưới dạng nhiễm sắc thể - một chuỗi bit (gene) biểu diễn thông tin, sẽ được đánh giá tính tốt xấu dựa trên giá trị thích nghi (điểm đạt được trong thi đấu) và quyết định khả năng sinh sản của nó để tạo ra các nhiễm sắc thể mới (những chiến thuật mới). Cấu trúc chuỗi bit phù hợp với việc thực hiện các phép toán sinh sản thông thường được định nghĩa trong giải thuật Gene: phép ghép chéo, đột biến, mà không cần phải thực hiện thêm thao tác đặc biệt nào. Tuy nhiên giải thuật theo mô hình này chỉ tập trung vào việc xử lí dữ liệu: chuỗi bit. Biểu diễn chiến thuật dưới dạng mô hình máy hữu hạn trạng thái mang một ý nghĩa khác. Giải thuật thực sự tạo ra một chương trình (giải thuật) là các máy hữu hạn. Hoạt động của máy hữu hạn theo cơ chế IF ... THEN ... tỏ ra thích hợp đối với môi trường biến động . Với cấu trúc đơn giản của bảng input có thể xây dựng được các chiến thuật tinh vi. Không cần sử dụng phép toán ghép chéo thường được yêu cầukhi áp dụng giải thuật Gene. Thông qua máy hữu hạn có thể tìm hiểu về tính thông minh trong quá trình tiến hoá của máy, tính thông minh ở đây được hiểu theo nghĩa khả năng dự đoán và sự phản ứng đối với môi trường.
Bài toán người tù sẽ sử dụng mô hình chiến thuật thi đấu dưới dạng máy hữu hạn trạng thái.