Báo cáo đồ án trí tuệ nhân tạo: Xây dựng chương trình giải quyết bài toán chơi cờ vua theo phương pháp Minimax

10 3.4K 34
Báo cáo đồ án trí tuệ nhân tạo: Xây dựng chương trình giải quyết bài toán chơi cờ vua theo phương pháp Minimax

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

Thông tin tài liệu

I.Lời nói đầu Ngày này, việc nguyên cứu Trí tuệ nhân tạo và đưa nó vào các ứng dụng thực tế đang ngày càng nhiều, và ngày càng chứng tỏ được thế mạnh của mình trong các công việc đòi hỏi khả năng suy nghĩ và tính toán giống như con người. Trong đó, vấn đề Tìm kiếm có đối thủ đang được áp dụng rất rộng rãi trong các trò chơi đối kháng, tất nhiên, tuân theo những tiêu chuẩn nhất định. Bản đồ án này được xây dựng, cũng nằm một trong số đó. Áp dụng lí thuyết Trí tuệ nhân tạo, kết hợp với các hàm đánh giá, từ đó xây dựng một chương trình cờ vua mang tính chất minh họa thuật toán hơn là xây dựng một chương trình có tính ứng dụng cao trong thực tế. Sau đây là cơ sở lý thuyết về không gian trạng thái cờ vua theo phương pháp Minimax. II.Cơ sở lí thuyết Vấn đề chơi cờ có thể xem xét như vấn đề tìm kiếm trong không gian trạng thái. Mỗi trạng thái là một tình thế (cách bố trí các quân cờ trên bàn cờ). -Trạng thái ban đầu là sự sắp xếp các quân cờ của hai bên lúc bắt đầu chơi. -Các toán tử là các nước đi hợp lệ. -Các trạng thái kết thúc là các tình thế mà cuộc chơi dừng, thường được xác định bởi một điều kiện dừng nào đó. -Một hàm kết cuộc ứng mỗi trạng thái kết thúc với một giá trị nào đó. Chiến lược tìm kiếm Minimax là chiến lược tìm kiếm theo độ sâu. Quá trình chơi cờ là quá trình trắng và đen thay phiên nhau đưa ra quyết định, thực hiện một trong số các nước đi hợp lệ. Trên cây trò chơi, quá trình đó sẽ tạo ra đường đi từ gốc đến lá. Giả sử tới một thời điểm nào đó, đường đi đã dẫn tới đỉnh u. Nếu u là đỉnh trắng (đen) thì trắng (đen) cần chọn đi tới một trong các đỉnh đen (trắng) v là con của u. Tại đỉnh đen (trắng) v mà trắng (đen) vừa chọn, đen (trắng) sẽ phải chọn đi tới một trong các đỉnh trắng (đen) w là con của v. Quá trình trên sẽ dừng lại khi đạt tới một đỉnh là lá của cây. Giả sử trắng cần tìm nước đi tại đỉnh u. Nước đi tối ưu cho trắng là nước đi dần tới đỉnh con của v là đỉnh tốt nhất(cho trắng) trong số các đỉnh con của u. Ta cần giả thiết rằng, đến lượt đối thủ chọn nước đi từ v, đen cũng sẽ chọn nước đi tốt nhất cho a ta. Như vậy, để chọn nước đi tối ưu cho trắng tại đỉnh u, ta cần phải xác định giá trị các đỉnh của trò chơi gốc u. Giá trị của các đỉnh lá là giá trị của hàm kết cuộc. Đỉnh có giá trị càng lớn càng tốt cho trắng, đỉnh có giá trị càng nhỏ càng tốt cho đen, Để xác định giá trị các đỉnh của cây trò chơi gốc u, ta đi từ mức thấp nhất lên gốc u. Giả sử v là đỉnh trong của cây và giá trị các đỉnh con của nó đã được xác định. Khi đó nếu v là đỉnh trắng thì giá trị của nó được xác định là giá trị lớn nhất trong các giá trị của các đỉnh con. Còn nếu v là đỉnh đen thì giá trị nhỏ nhất trong các giá trị của các đỉnh con.

HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN Đồ án Nhập môn trí tuệ nhân tạo Đề tài: Không gian trạng thái là trò chơi cờ vua. Xây dựng chương trình giải quyết bài toán theo phương pháp Minimax Thầy giáo hướng dẫn: Ngô Hữu Phúc Học viên: Nguyễn Trần Quyết Lớp: Tin học 5A Hà Nội, 3 - 2010 1 I. Lời nói đầu Ngày này, việc nguyên cứu Trí tuệ nhân tạo và đưa nó vào các ứng dụng thực tế đang ngày càng nhiều, và ngày càng chứng tỏ được thế mạnh của mình trong các công việc đòi hỏi khả năng suy nghĩ và tính toán giống như con người. Trong đó, vấn đề Tìm kiếm đối thủ đang được áp dụng rất rộng rãi trong các trò chơi đối kháng, tất nhiên, tuân theo những tiêu chuẩn nhất định. Bản đồ án này được xây dựng, cũng nằm một trong số đó. Áp dụng lí thuyết Trí tuệ nhân tạo, kết hợp với các hàm đánh giá, từ đó xây dựng một chương trình cờ vua mang tính chất minh họa thuật toán hơn là xây dựng một chương trình có tính ứng dụng cao trong thực tế. Sau đây là sở lý thuyết về không gian trạng thái cờ vua theo phương pháp Minimax. II. sở lí thuyết Vấn đề chơi cờ thể xem xét như vấn đề tìm kiếm trong không gian trạng thái. Mỗi trạng thái là một tình thế (cách bố trí các quân cờ trên bàn cờ). - Trạng thái ban đầu là sự sắp xếp các quân cờ của hai bên lúc bắt đầu chơi. - Các toán tử là các nước đi hợp lệ. - Các trạng thái kết thúc là các tình thế mà cuộc chơi dừng, thường được xác định bởi một điều kiện dừng nào đó. - Một hàm kết cuộc ứng mỗi trạng thái kết thúc với một giá trị nào đó. Chiến lược tìm kiếm Minimax là chiến lược tìm kiếm theo độ sâu. Quá trình chơi cờ là quá trình trắng và đen thay phiên nhau đưa ra quyết định, thực hiện một trong số các nước đi hợp lệ. Trên cây trò chơi, quá trình đó sẽ tạo ra đường đi từ gốc đến lá. Giả sử tới một thời điểm nào đó, đường đi đã dẫn tới đỉnh u. Nếu u là đỉnh trắng (đen) thì trắng (đen) cần chọn đi tới một trong các đỉnh đen (trắng) v là con của u. Tại đỉnh đen (trắng) v mà trắng (đen) vừa chọn, đen (trắng) sẽ phải 2 chọn đi tới một trong các đỉnh trắng (đen) w là con của v. Quá trình trên sẽ dừng lại khi đạt tới một đỉnh là lá của cây. Giả sử trắng cần tìm nước đi tại đỉnh u. Nước đi tối ưu cho trắng là nước đi dần tới đỉnh con của v là đỉnh tốt nhất(cho trắng) trong số các đỉnh con của u. Ta cần giả thiết rằng, đến lượt đối thủ chọn nước đi từ v, đen cũng sẽ chọn nước đi tốt nhất cho a ta. Như vậy, để chọn nước đi tối ưu cho trắng tại đỉnh u, ta cần phải xác định giá trị các đỉnh của trò chơi gốc u. Giá trị của các đỉnh lá là giá trị của hàm kết cuộc. Đỉnh giá trị càng lớn càng tốt cho trắng, đỉnh giá trị càng nhỏ càng tốt cho đen, Để xác định giá trị các đỉnh của cây trò chơi gốc u, ta đi từ mức thấp nhất lên gốc u. Giả sử v là đỉnh trong của cây và giá trị các đỉnh con của nó đã được xác định. Khi đó nếu v là đỉnh trắng thì giá trị của nó được xác định là giá trị lớn nhất trong các giá trị của các đỉnh con. Còn nếu v là đỉnh đen thì giá trị nhỏ nhất trong các giá trị của các đỉnh con. Để cài đặt kĩ thuật Minimax, việc gán giá trị cho các đỉnh được thực hiện bởi các hàm đệ quy Maxval và Minval. Hàm MaxVal xác định giá trị cho các đỉnh trắng, hàm MinVal xác định giá trị cho các đỉnh đen. function MaxVal(u); 3 begin if u lµ ®Ønh kÕt thóc then MaxVal(u) ← f(u) else MaxVal(u) ← max{MinVal(v) | v lµ ®Ønh con cña u} end; function MinVal(u); begin if u lµ ®Ønh kÕt thóc then MinVal(u) ← f(u) else MinVal(u) ← min{MaxVal(v) | v lµ ®Ønh con cña u} end; Trong các hàm đệ quy trên, f(u) là giá trị của hàm kết cuộc tại đỉnh kết thúc u. Sau đây là thủ tục chọn nước đi cho trắng tại đỉnh u. Trong thủ tục Minimax(u,v) v là biến lưu lại trạng thái mà trắng đã chọn đi tới từ u procedure Minimax(u, v); begin val ← - ∞ ; for mçi w lµ ®Ønh con cña u do if val <= MinVal(w) then {val ← MinVal(w); v ← w} end; 4 III. Trò chơi Cờ Vua Chương trình được xây dựng dựa trên sở lí thuyết vừa nêu trên. Với độ sâu được xét tới là 2. Giao diện chương trình: Màn hình đăng nhập người chơi Màn hình đăng nhập người chơi yêu cầu người chơi nhập tên trước khi bắt đầu trò chơi. 5 Màn hình chơi chính Màn hình chơi chính giúp cho người chơi thể chơi trực tiếp với máy tính. Chương trình cho phép người chơi thể bắt đầu một ván cờ mới, hay hoãn lại các nước đi. 6 Màn hình hiển thị chi tiết nước cờ Màn hình chi tiết hiển thị chi tiết các nước cờ đã chơi, tên người chơi cũng như thời gian chơi. Một chương trình chơi cờ được đánh giá dựa trên tiêu chí mức độ thông minh của các nước đi. Điều này phụ thuộc phần lớn vào hàm đánh giá được cài đặt trong trò chơi. Từ đó thể thấy mức độ quan trọng của hàm đánh giá trong bất cứ một chương trình chơi cờ nào. Không nằm ngoài ý kiến đó, chương trình cũng xây dựng hàm đánh giá riêng, với mục đích phản ảnh rõ nhất cục diện bàn cờ cũng như đưa ra được lựa chọn tốt nhất ứng với trạng thái cụ thể. Hàm đánh giá của chương trình được xây dựng dựa trên các yếu tố về các giai đoạn của ván cờ, giá trị các quân cờ và vị trí của chúng (vị trí trung tâm). Cụ thể: 7 Hàm tính giá trị của từng quân cờ: For i = 0 To 7 For j = 0 To 7 If mangdanhgia.Vitri(i, j) > 0 Then tgiatri(mangdanhgia.Vitri, i, j, mangdanhgia.Vitri(i, j)) End If Next Next Vị trí trung tâm: For i = 0 To 7 For j = 0 To 7 If 3 <= i And i <= 4 And 3 <= j And j <= 4 And mangdanhgia.Vitri(i, j) > 0 Then eval += 200 ElseIf 2 <= i And i <= 5 And 2 <= j And j <= 5 And mangdanhgia.Vitri(i, j) > 0 Then eval += 100 End If Hàm MinVal: tính giá trị nhỏ nhất Public Sub Minval(ByVal u As Trangthai, ByVal a As Integer, ByVal b As Integer) Dim i, j As Integer If u.cls = 2 Then Heristis(u) min = u.Eval Else For i = 0 To 7 For j = 0 To 7 If u.Vitri(i, j) > 0 Then Duyet(u, i, j, u.Vitri(i, j)) End If Next Next For i = 1 To chiso If Mangduyet(i).Father = u.Name Then Maxval(Mangduyet(i), a, b) End If Next min = b End If End Sub Hàm MaxVal: tính giá trị lớn nhất Public Sub Maxval(ByVal u As Trangthai, ByVal a As Integer, ByVal b As Integer) Dim i, j As Integer 8 If u.cls = 2 Then Heristis(u) max = u.Eval Else For i = 0 To 7 For j = 0 To 7 If u.Vitri(i, j) > 0 Then Duyet(u, i, j, u.Vitri(i, j)) End If Next Next For i = 1 To chiso If Mangduyet(i).Father = u.Name Then Minval(Mangduyet(i), a, b) End If Next max = a End If End Sub Hàm Minimax: Áp dụng giải thuật Minimax vào chương trình Public Sub Minimax(ByVal u As Trangthai, ByVal v As Trangthai) Dim a, b, i, j As Integer a = -100 b = 100 For i = 0 To 7 For j = 0 To 7 If u.Vitri(i, j) > 0 Then Duyet(u, i, j, u.Vitri(i, j)) End If Next Next For i = 1 To chiso If Mangduyet(i).Father = u.Name Then Minval(Mangduyet(i), a, b) If a <= min Then a = min ketqua = Mangduyet(i) End If End If Next End Sub IV. Những mặt hạn chế của đề tài: Về mặt lý thuyết, chiến lược Minimax cho phép ta tìm được nước đi tối ưu cho trắng. Song nó không thực tế, chúng ta sẽ không đủ 9 thời gian để tính được nước đi tối ưu. Bởi vì thuật toán Minimax đòi hỏi chúng ta phải xem xét toàn bộ các đỉnh của cây trò chơi. Trong các trò chơi hay, cây trò chơi là cực lớn. Chẳng hạn đối với cờ vua, chỉ tính đến độ sâu 40, thì cây trò chơi đã khoảng 10 120 đỉnh! Chất lượng của chương trình phụ thuộc vào hàm đánh giá, để xây dựng được hàm đánh giá thông minh thì ta cần phải xét toàn bộ các yếu tố cần thiết. Ở đây hàm đánh giá của chương trình còn chưa chặt chẽ nên cần phải phân tích rõ hơn về hàm đánh giá để máy thể đánh thông minh hơn. V. Kết luận: Khuôn khổ của đồ án này chỉ giới hạn trong việc xây dựng không gian trạng thái trò chơi Cờ Vua, chưa thể thành một trò chơi để người đấu trí với máy được. Nếu muốn áp dụng thực tế và phát triển đồ án hơn thì sẽ cần nhiều thời gian và quá trình nghiên cứu tìm tòi hơn. Sau khi kết thúc môn học này, em mong thầy thể giúp đỡ em để em hoàn thành chương trình một cách hoàn thiện hơn. 10 . chơi đối kháng, tất nhiên, tuân theo những tiêu chuẩn nhất định. Bản đồ án này được xây dựng, cũng nằm một trong số đó. Áp dụng lí thuyết Trí tuệ nhân tạo, kết hợp với các hàm đánh giá, từ. THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN Đồ án Nhập môn trí tuệ nhân tạo Đề tài: Không gian trạng thái là trò chơi cờ vua. Xây dựng chương trình giải quyết bài toán theo phương pháp Minimax Thầy giáo. nguyên cứu Trí tuệ nhân tạo và đưa nó vào các ứng dụng thực tế đang ngày càng nhiều, và ngày càng chứng tỏ được thế mạnh của mình trong các công việc đòi hỏi khả năng suy nghĩ và tính toán giống

Ngày đăng: 25/03/2014, 22:17

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan