Sự tối ưu đó được thể hiện ởchỗ thế hệ sau bao giờ cũng phát triển tốt hơn thế hệ trước.Tiến hóa tự nhiên được duy trì nhờ hai quá trình cơ bản: sinhsản và chọn lọc tự nhiên, xuyên suốt
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN HỌC TRÍ TUỆ NHÂN TẠO
Đ TI:
Áp dụng thuật toán giải di truyền vào game xếp hình Tetris
Sinh viên thực hiện : HONG HẢI NAM
HONG NGHĨA QUÂN Giảng viên hướng dẫn : Vũ Văn Định
Hà Nội, tháng năm
Trang 2PHIẾU CHẤM ĐIỂM
STT Họ và tên sinh viên Nội dung thực hiện Điểm Chữ
ký
1 Hoàng Hải Nam
2 Hoàng Nghĩa Quân
Giảng viên chấm 1:
Giảng viên chấm 2:
2
Trang 3Mục lục
MỞ ĐẦU 4
CHƯƠNG 1: GIỚI THIỆU NHU CẦU CỦA BÀI TOÁN, PHÂN TÍCH CHI TIẾT BÀI TOÁN 5
1.1 Giới thiệu về nhu cầu của bài toán: 6
1.2 Phân tích chi tiết bài toán: 6
CHƯƠNG 2: GIỚI THIỆU CHIẾN LƯỢC, PHƯƠNG PHÁP, THUẬT TOÁN ĐỂ GIẢI QUYẾT BÀI TOÁN 7
2.1 Thuật giải di truyền 7
2.2 Các toán tử di truyền 9
2.2.1 Lai ghép: 9
2.2.2 Đột biến: 9
2.3 Đấu tranh sinh tồn 9
2.4 Mô tả bài toán thực tế: 10
CHƯƠNG 3: CÁC CHI TIẾT CỦA PHƯƠNG PHÁP DÙNG ĐỂ GIẢI QUYẾT BÀI TOÁN 11
3 Phương pháp 11
3.1 Định hình trò chơi 11
3.2 Bốn đặc trưng đánh giá 11
3.3 Tối ưu bộ tham số bằng Giải thuật di truyền 13
CHƯƠNG 4: CÀI ĐẶT VÀ THỰC NGHIỆM 16
4.1.1 Khai báo hàm: 16
4.1.2 Phương thức _best 16
4.1.2.1 Khởi tạo 17
4.1.2.2 Vòng lặp xoay 17
4.1.2.3 Cách tính điểm 17
4.2 Giao diện chương trình 19
KẾT LUẬN 20
TÀI LIỆU THAM KHẢO 21
Trang 4MỞ ĐẦU
Tetris đã được sử dụng hơn hai mươi năm như một lĩnh vực để nghiêncứu việc ra quyết định tuần tự trong điều kiện không chắc chắn Do độ lớn củakhông gian quyết định khiến nó trở thành một vấn đề phức tạp nhưng có thể giảiquyết được Ngoài ra, Tetris cũng thể hiện tính thú vị là giới hạn thời gian đưa
ra quyết định trước khi một mảnh Tetro-mino rơi xuống bề mặt của bàn cờ Nóthường được coi là một lĩnh vực khá khó khăn Cho đến nay, các thuật toánkhác nhau đã mang lại các chiến lược chơi tốt Nhưng chúng chưa đạt đến mứchiệu suất đạt được của những người chơi chuyên nghiệp chơi mà không bị áplực về thời gian Các nghiên cứu sâu hơn về trò chơi có khả năng đóng góp vàocác chủ đề quan trọng trong trí tuệ nhân tạo và máy học Bao gồm khám phátính năng, học tự động các cấu trúc phân cấp hành động và học tăng cường Trong bài viết này, trước tiên, chúng tôi mô tả sơ lược về Tetris, các côngtrình liên quan về những thuật toán đã ứng dụng trong trò chơi cổ điển này.Ngoài ra, những nỗ lực của chúng tôi là làm cho sản phẩm trở nên đa dạng bằngcách mở rộng nhiều tính năng thử nghiệm nổi bật hơn Cốt lõi của trò chơi Terismới của chúng tôi là khả năng sáng tạo hiệu ứng và hàm heuristic cải tiến củathuật toán A.I
Chúng tôi đã thảo luận về những hướng đi và thách thức hiện tại Qua đó
đã học được rất nhiều từ các nghiên cứu/báo cáo tiền nhiệm có liên quan, hầuhết chúng đều được coi là hoàn hảo Chúng tôi lấy cảm hứng từ rất nhiều thứ,đặc biệt là Genetic algorithm (giải thuật di truyền) Vấn đề lớn nhất của chúngtôi là xây dựng một tác tử thú vị mới và mở rộng công việc hiện có về các vấn
đề của Tetris Nhằm tiếp cận với các trò chơi khác hoặc thậm chí là thế giớithực
4
Trang 5CHƯƠNG 1: GIỚI THIỆU NHU CẦU CỦA BÀI TOÁN,
PHÂN TÍCH CHI TIẾT BÀI TOÁN
Giải thuật di truyền cũng như tiến hóa dựa trên khái niệmcho rằng quá trình tiến hóa tự nhiên là hoàn hảo nhất, hợp lýnhất và tự nó đã mang tính tối ưu Sự tối ưu đó được thể hiện ởchỗ thế hệ sau bao giờ cũng phát triển tốt hơn thế hệ trước.Tiến hóa tự nhiên được duy trì nhờ hai quá trình cơ bản: sinhsản và chọn lọc tự nhiên, xuyên suốt quá trình tiến hóa tựnhiên, các thế hệ mới luôn được sinh ra để bổ sung thay thế thế
hệ cũ, cá thể nào thích ứng với môi trường sẽ tồn tại, ngược lại
Thuật giải di truyền cung cấp một phương pháp học đượcthúc đẩy bởi sự tương tự với sự tiến hóa sinh học Thay vì tìmkiếm các giả thuyết từ tổng quát đến cụ thể hoặc từ đơn giảnđến phức tạp, GAs tạo ra các giả thuyết kế tiếp bằng cách lặpviệc đột biến và việc tái hợp các phần của giả thuyết được biếthiện tại là tốt nhất Ở mỗi bước, một tập các giả thuyết đượcgọi là quần thể hiện tại được cập nhật bằng cách thay thế vàiphần nhỏ quần thể bởi cá thể con của các giả thuyết tốt nhất ởthời điểm hiện tại Sự phổ biến của GAs được thúc đẩy bởi cácyếu tố sau:
• Tiến hóa là một phương pháp mạnh, thành công cho sựthích nghi bên trong các hệ thống sinh học
• GA có thể tìm kiếm trên các không gian giả thuyết có cácphần tương tác phức tạp, ở đó ảnh hưởng của mỗi phần lêntoàn thể độ thích nghi giả thuyết khó có thể mô hình
• Thuật giải GA có thể được thực hiện song song và có thểtận dụng thành tựu của phần cứng máy tính mạnh
Trang 61.1 Giới thiệu về nhu cầu của bài toán:
Bài toán này xuất phát từ một game xếp hình Tetris Tronggame Tetris, bạn được cho một loạt các khối hình có dạng cácviên gạch khác nhau, và mục tiêu của bạn là xếp chúng lại mộtcách gọn gàng để loại bỏ các hàng đầy và không để bất kỳ khốinào vượt quá màn hình Vấn đề ở đây là làm thế nào để tìm ramột cách tối ưu để xếp các khối này
1.2 Phân tích chi tiết bài toán:
a Môi trường game Tetris: Game Tetris có một môi trườngđộng với một bảng chơi (thường có kích thước cố định) và cáckhối gạch xuất hiện từ trên xuống Khối gạch có hình dạng vàmàu sắc khác nhau và có thể xoay Mục tiêu là xếp chúng lại đểtạo ra các hàng đầy để chúng biến mất
b Chế độ chơi: Trong game Tetris, người chơi phải đưa raquyết định nhanh chóng về cách xoay và di chuyển các khối đểxếp chúng một cách hiệu quả Thời gian giới hạn đòi hỏi việcđưa ra quyết định nhanh và chính xác
c Mục tiêu tối ưu: Mục tiêu của bài toán là xếp các khốisao cho số hàng đầy là lớn nhất và số lỗ trống trên màn hình là
ít nhất Từ đó, mục tiêu tối ưu hóa có thể là tối đa hóa điểm sốhoặc số hàng đầy, hoặc tối thiểu hóa số lỗ trống
7
Trang 7CHƯƠNG 2: GIỚI THIỆU CHIẾN LƯỢC, PHƯƠNG PHÁP, THUẬT TOÁN ĐỂ GIẢI QUYẾT BÀI TOÁN
2.1 Thuật giải di truyền
Bài toán dành cho GAs là tìm kiếm trên không gian các giảthuyết ứng cử để xác định giả thuyết tốt nhất Trong GAs “giảthuyết tốt nhất” được định nghĩa như là một giả thuyết tối ưuhóa một đại lượng số được định nghĩa trước cho bài toán sắptới, được gọi là độ thích nghi của giả thuyết Ví dụ, nếu tác vụhọc hỏi là bài toán xấp xỉ một hàm chưa biết cho tập mẫu huấnluyện gồm dữ liệu đầu vào và dữ liệu đầu ra, thì độ thích nghi
có thể được định nghĩa như là độ chính xác của giả thuyết trên
dữ liệu huấn luyện này Nếu tác vụ là học chiến lược chơi cờ, độthích nghi có thể là số ván thắng của chiến lược này khi đấu vớicác chiến lược khác trong quần thể hiện tại
Mặc dù các thuật giải di truyền được thực hiện thay đổi theobài toán cụ thể, nhưng chúng chia sẻ chung cấu trúc tiêu biểusau: Thuật giải hoạt động bằng cách cập nhật liên tục tập giảthuyết – được gọi là quần thể Ở mỗi lần lặp, tất cả các cá thểtrong quần thể được ước lượng tương ứng với hàm thích nghi.Rồi quần thể mới được tạo ra bằng cách lựa chọn có xác suấtcác cá thể thích nghi tốt nhất từ quần thể hiện tại Một số trongnhững cá thể được chọn được đưa nguyên vẹn vào quần thể kếtiếp Những cá thể khác được dùng làm cơ sở để tạo ra các cáthể con bằng cách áp dụng các tác động di truyền: lai ghép vàđột biến
// Số cá thể trong quần thể giả thuyết p:
// Phân số cá thể trong quần thể được áp dụng toán tử lair:
ghép ở mỗi
Trang 8// m: Tỉ lệ cá thể bị đột biến
Khởi tạo quần thể: P ( Tạo ngẫu nhiên p cá thể giả thuyết
Ước lượng: Ứng với mỗi h trong P, tính Fitness(h)
while [max Fitness(h)] < Fitness_threshold do
Tạo thế hệ mới, Ps
1 Chọn cá thể: chọn theo xác suất (1 – r)p cá thểtrong quần thể thêm vào Xác suất P P s Pr(h i ) củagiả thuyết thuộc được tính bởi công thức: h i P
2 Lai
ghép: chọn lọc theo xác cặp giả thuyết từquần thể , theo P Pr(h i ) đã tính ở bước trên Ứng vớimỗi cặp <h1, h2>, tạo ra hai con bằng cách áp dụngtoán tử lai ghép Thêm tất các các con vào P s
3 Đột biến: Chọn m% cá thể của P s với xác suấtcho mỗi cá thể là như nhau Ứng với mỗi cá thể biếnđổi một bit được chọn ngẫu nhiên trong cách thể hiệncủa nó
4 Cấp nhật P: P s
5 Ước lượng: Ứng với mỗi h trong P, tính Fitness(h)
Trả về giả thuyết P có độ thích nghi cao nhất }
9
Trang 9Lưu đồ giải thuật cơ bản
Trang 102.2 Các toán tử di truyền
2.2.1 Lai ghép:
Phép lai là quá trình hình thành NST mới trên cơ sở NSTcha mẹ, bằng cách ghép một hay nhiều đoạn gen của hai (haynhiều) NST cha mẹ khác nhau
Các cặp cha mẹ được lựa chọn ngẫu nhiên và xác suất xảy
ra lai ghép với mỗi cặp được quy định từ trước
Có nhiều cách lại ghép khác nhau:
Lai ghép một điểm cắt, nhiều điểm cắt
Lai ghép nhiều đoạn
2.2.2 Đột biến:
Đột biến là tình trạng NST con không có một (hoặc một số)tính trạng có trong mã di truyền của cha mẹ
Các cặp cha mẹ được lựa chọn ngẫu nhiên và xác suất xảy
ra đột biến với mỗi cặp được quy định từ trước, thường là rấtnhỏ
Các phép đột biến thường được sử dụng:
• Đảo bit
• Hoán vị: Đổi vị trí của các gen với nhau Đổi giá trị: Thayđổi giá trị tại một điểm gen
• Đảo đoạn: Đảo thứ tự của một đoạn NST bất kì
2.3 Đấu tranh sinh tồn
Chọn nh ng NST t qu n th k t qu theo m t quy t c n o ữ ừ ầ ể ế ả ộ ắ à đóthay th cho cha mế ẹ để sinh ra th h m i M t s ph ng th cế ệ ớ ộ ố ươ ứ
đấu tranh sinh t n cơ b n: ồ ả
• Trá đổo i ho n to n cha m b ng con à à ẹ ằ
• Trá đổo i ng u nhi n: Ch n ng u nhi n k cha m v thay thếẫ ê ọ ẫ ê ẹ àbằng k con mới
11
Trang 11Chọn những cá thể ưu tú nhất trong quần thể.
Trang 122.4 Mô tả bài toán thực tế:
Môi trường: Bài toán xảy ra trong môi trường trò chơiTetris, trong đó một bảng chơi có kích thước cố định(thường là 10x20 hoặc tương tự) được hiển thị trước ngườichơi Một loạt các khối gạch (gọi là tetrominoes) có hìnhdạng và màu sắc khác nhau xuất hiện từ trên xuống mànhình
Khối gạch: Mỗi khối gạch có một hình dạng cụ thể và cóthể được xoay theo các góc khác nhau Người chơi có thể
di chuyển và xoay khối gạch trước khi họ đặt nó xuống
Mục tiêu: Mục tiêu chính của bài toán là xếp các khối gạchvào bảng chơi sao cho:
Loại bỏ càng nhiều hàng đầy càng tốt để kiếm điểm
Tránh để lại lỗ trống không cần thiết trên bảng chơi,
vì lỗ trống này có thể gây khó khăn trong việc xếpcác khối gạch sau này
Thuật toán di truyền: Để giải quyết bài toán này, mộtthuật toán di truyền có thể được áp dụng Cá thể trongthuật toán di truyền biểu diễn cách xếp các khối gạch trênmàn hình, và qua các thế hệ, thuật toán tối ưu hóa cáchxếp để đạt được điểm số cao nhất hoặc giảm thiểu số lỗtrống
Đánh giá: Đánh giá hiệu suất của mỗi cá thể dựa trên sốhàng đầy và số lỗ trống sau khi xếp các khối Mục tiêu làtối ưu hóa giá trị của hàm mục tiêu
Tinh chỉnh: Tham số của thuật toán di truyền, chẳng hạnnhư tỷ lệ lai ghép, tỷ lệ đột biến, và kích thước thế hệ, cóthể được tinh chỉnh để cải thiện hiệu suất
Kết quả: Khi thuật toán hoàn thành, nó sẽ cung cấp mộtcách xếp các khối gạch trên màn hình Tetris mà đáp ứngđược mục tiêu tối ưu hóa, cho thấy cách xếp hình để đạtđược điểm số cao hoặc giảm thiểu lỗ trống
Bài toán này là một ví dụ về cách áp dụng trí tuệ nhân tạovào việc tối ưu hóa trong trò chơi thực tế, trong đó có áp lựcthời gian và sự lựa chọn nhanh chóng để đưa ra quyết địnhđúng đắn đối với mục tiêu tối ưu hóa đã cho
13
Trang 13CHƯƠNG 3: CÁC CHI TIẾT CỦA PHƯƠNG PHÁP
DÙNG ĐỂ GIẢI QUYẾT BÀI TOÁN
Bàn cờ Tetris có kích thước hàng và cột lần lượt là 10 và
22, thêm vào đó là có 2 hàng bị ẩn ở trên
Tất cả các Tetrominoes (các mảnh Tetris) sẽ bắt đầu ởgiữa 2 hàng trên cùng
Có tất cả bảy loại Tetromino: 'I', 'O', 'J', 'L', 'S', 'Z', 'T'
Tác tử sẽ biết trước Tetrimino rơi xuống tiếp theo ahead)
(look-3.2 Bốn đặc trưng đánh giá
Cũng giống như những người chơi đã chơi cho đến nay.Mục tiêu của chúng tôi là xóa càng nhiều đường càng tốt, nóicách khác là hoãn trạng thái kết thúc nhất có thể Để đạt đượcmục tiêu này, tác tử của chúng tôi sẽ quyết định nước đi tốtnhất cho một Tetromino nhất định bằng cách suy tính tất cảcác động tác có thể (xoay và vị trí) Nó tính điểm số (điểm đánhgiá) cho mỗi nước đi có thể (look-ahead) và chọn một nước cóđiểm tốt nhất làm nước đi tiếp theo
Điểm số cho mỗi bước di chuyển được tính bằng cáchđánh giá trạng thái bàn cờ mà bước di chuyển sẽ dẫn đến Kếtquả này dựa trên bốn đặc trưng: tổng chiều cao của trạng thái,
số đường đã xóa, hố và độ gập ghềnh Mỗi đặc trưng này tác tử
sẽ cân nhắc, hoặc là cố gắng giảm thiểu, hoặc là tối đa hóa
Trang 143.2.1 Tổng chiều cao của trạng thái
Đặc trưng này cho chúng ta biết lưới "cao" như thế nào
Để tính toán chiều cao tổng hợp, chúng tôi lấy tổng chiều caocủa mỗi cột (khoảng cách từ ô cao nhất trong mỗi cột đến cuốibàn cờ)
Tất nhiên chúng tôi muốn giảm thiểu giá trị này, vì chiềucao tổng hợp thấp hơn có nghĩa là chúng tôi có thểthả nhiềuTetromino hơn vào bàn cờ trước khi chạm vào đỉnh của nó Ứngdụng thuật giải di truyền vào game xếp hình Tetris
Hình 1: Tổng chiều cao của trạng thái này là 48
nhiều khối gạch hơn
Hình 2: Số hàng đã xóa là 2
16
Trang 153.2.3 Số hố
Như đã đề cập ở trên, một hố được định nghĩa là mộtkhoảng trống sao cho có ít nhất một ô trong cùng một cột phíatrên nó Hố thì khó xóa hơn, do chúng ta phải xóa tất cả cácđường phía trên trước khi chúng tôi có thể chạm tới hố và lấp
đầy nó Do đó, chúng tôi sẽ phải giảm thiểu số các hố này
Hình 3: Số hố hiện tại là 2
3.2.4 Độ gập ghềnh
Từ Hình 3, xét trường hợp sau, các Tetromino xếp trên bàn
cờ của chúng ta và chừa ra một cái giếng sâu (được đánh số 0).Điều này thật khó chịu, bởi vì: Những giếng này có thể được lấpđầy một cách dễ dàng, và thật khủng khiếp khi giếng bị chặnbởi những khối gạch Và sau đó, rất khó để có thể lấp đầy Đểkhái quát hóa ý tưởng về giếng, chúng tôi định nghĩa một đặctrưng được đặt tên là độ gập ghềnh Ứng dụng thuật giải ditruyền vào game xếp hình Tetris Độ gập ghềnh cho chúng tabiết sự thay đổi chiều cao của từng cột trong bàn cờ Nó đượctính bằng cách tính tổng các giá trị tuyệt đối của hiệu chiều caohai cột liền kề
Từ các chỉ số chiều cao của các cột trên bàn cờ của Hình
3, dưới đây là cách tính độ gập ghềnh:|4-4| + |4-0| + + |4-5|+ |5-4| =14
Mục tiêu của chúng tôi là giảm thiểu sự xuất hiện và độsâu của những cái giếng này Vì vậy, đây là giá trịcần đượcgiảm thiểu
3.2.5 Kết hợp các đặc trưng đánh giá
Bây giờ chúng tôi sẽ tính điểm của một trạng thái bàn cờ,bằng cách lấy sự kết hợp tuyến tính của bốn đặctrưng đã đềcập ở trên Hàm đánh giá của tác tử có công thức như sau:
Trang 16hàm đánh giá = a*(tổng chiều cao của trạng thái) + b*(sốhàng đã xóa) + c*(số hố) + d*(độ gập ghềnh)
Trong đó a, b, c, d là các tham số ràng buộc Như đã phântích chức năng và nhiệm vụ của bốn đặc trưng, để tối đa hóakhả năng của hàm đánh giá này, chúng tôi đặt a, c, d âm và bdương.Để có được hàm đánh giá tối ưu một cách thuyết phục,chúng tôi tạo ra bốn tham số trên bằng cách sử dụng Giải thuật
di truyền, chúng tôi sẽ hiển thị kết quả của các tham số nàysau.Bằng cách sử dụng bộ thông số này, AI có thể chọn nước đitốt nhất có thể bằng cách giải trừ tất cả các nước đi có thể có(bao gồm cả phần look-ahead) và chọn nước đi có điểm đánhgiá cao
3.3 Tối ưu bộ tham số bằng Giải thuật di truyền
Mỗi bộ tham số (a, b, c, d) có thể được biểu diễn dưới dạngvectơ trong không gian ℝ4 = ( , , , )𝑝 𝑎 𝑏 𝑐 𝑑
Một Giải thuật di truyền chuẩn cho các gen có giá trị thực
sẽ liên quan đến việc tìm kiếm trong toàn bộ không gian ℝ4 để
có một tập hợp các tham số tối ưu Tuy nhiên, trong bài viếtnày, chúng ta chỉ cần xem xét các điểm trên unit 3-sphere (hay
là hình cầu đơn vị trong không gian 4 chiều) Điều này là dohàm đánh giá được định nghĩa là một hàm tuyến tính và kếtquả so sánh là bất biến theo tỷ lệ
Hình 4: minh họa hình cầu trong không gian 4 chiều.Ứng dụng thuật giải di truyền vào game xếp hình Tetris
18