1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

9 3,5K 34

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 240,5 KB

Nội dung

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.

Trang 1

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

Trang 2

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

Trang 3

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

Để 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);

Trang 4

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;

III Trũ chơi Cờ Vua

Chương trỡnh được xõy dựng dựa trờn cơ 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:

Trang 5

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

Màn hình chơi chính

Trang 6

Màn hình chơi chính giúp cho người chơi có thể chơi trực tiếp với máy tính Chương trình cho phép người chơi có thể bắt đầu một ván cờ mới, hay hoãn lại các nước đi

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ừ đó có 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ể

Trang 7

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ể:

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

Trang 8

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

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

Trang 9

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 đủ 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 đã có khoảng 10120 đỉ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 có 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 có thể giúp đỡ em để em hoàn thành chương trình một cách hoàn thiện hơn

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

w