1. Trang chủ
  2. » Công Nghệ Thông Tin

thuyết trình báo cáo môn tri tuê nhân tạo áp dụng thuật toán tìm kiếm min max và alphabeta cắt tỉa xây dựng trò chơi cờ ca rô trên android

15 2,3K 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 734,02 KB

Nội dung

Ngày nay, các hệ thống nhân tạo được dùng thường xuyên trong kinh tế, y dược, các ngành kỹ thuật và quân sự, cũng như trong các phần mềm máy tính thông dụng trong gia đình và trò chơi đi

Trang 1

Trường Đại Học Bách Khoa Hà Nội

Bộ Môn Hệ Thống Thông Tin

Báo Cáo Trí Tuệ Nhân Tạo

Đề Tài: Game Cờ Caro Trên Android

Nhóm sinh viên: SHSV:

Đặng Tiến Đạt 20090656

Trần Đình Quang 20093577

Lê Huy Hoàng 20091144

Nguyễn Thanh Sơn 20092261

Trần Mạnh Hùng 20091336

Giảng viên hướng dẫn: TS Phạm Văn Hải

Hà Nội 4-8-2013

Trang 2

Mục lục

LỜI NÓI ĐẦU 3

I Giới thiệu bài toán 5

II Phân công công việc 5

III Công nghệ sử dụng 5

IV Chiến lược tìm kiếm 5

V Kỹ thuật lượng giá 11

VI Các khó khăn gặp phải 13

VII Hướng cải tiến và phát triển 14

1 Cải tiến không gian trạng thái 14

2 Dùng tri thức bổ sung bên ngoài 14

VIII Tài liệu tham khảo 15

Trang 3

LỜI NÓI ĐẦU

Trí tuệ nhân tạo là trí tuệ được biểu diễn bởi bất cứ một hệ thống nhân tạo nào Thuật ngữ

này thường dùng để nói đến các máy tính có mục đích không nhất định và ngành khoa nghiên cứu về các lý thuyết và ứng dụng của trí tuệ nhân tạo

Tuy rằng trí thông minh nhân tạo có nghĩa rộng như là trí thông minh trong khoa học viễn tưởng, nó là một trong những ngành trọng yếu của tin học Trí thông minh nhân tạo liên quan đến cách cư xử, sự học hỏi và khả năng thích ứng thông minh của máy móc Các ví

dụ ứng dụng bao gồm các tác vụ điều khiển, lập kế hoạch và lập lịch (scheduling), khả

năng trả lời các câu hỏi về chẩn đoán bệnh, trả lời khách hàng về các sản phẩm của một công ty, nhận dạng chữ viết tay, nhận dạng tiếng nói và khuôn mặt Bởi vậy, trí thông minh nhân tạo đã trở thành một môn học, với mục đích chính là cung cấp lời giải cho các vấn đề của cuộc sống thực tế Ngày nay, các hệ thống nhân tạo được dùng thường xuyên trong kinh tế, y dược, các ngành kỹ thuật và quân sự, cũng như trong các phần mềm máy tính thông dụng trong gia đình và trò chơi điện tử

Để áp dụng những kiến thức về AI được học trên lớp cũng như tìm hiểu qua internet, nhóm chúng em đi đến quyết định chung là xây dựng trò chơi cờ ca rô trên nền tảng Android

Trong quá trình làm bài tập lớn, chúng em xin chân thành cảm ơn thầy Phạm Văn Hải đã tận tình hướng dẫn, cảm ơn các bạn đã đóng góp những ý kiến bổ ích để trò chơi được tốt hơn Do chưa có nhiều kinh nghiệm cũng như kiến thức về AI còn hạn hẹp nên trò chơi chưa được tối ưu lắm Mong thầy và các bạn góp ý để game được tốt hơn

Chúng em xin chân thành cảm ơn!

Trang 4

NỘI DUNG TRÌNH BÀY

1 Giới thiệu bài toán

2 Phân công công việc

3 Công nghệ sử dụng

4 Chiến lược tìm kiếm

5 Kỹ thuật lượng giá

6 Các khó khăn gặp phải

7 Hướng cải tiến và phát triển

8 Tài liệu tham khảo

Trang 5

I Giới thiệu bài toán

Trò chơi cờ caro được thực hiện bởi hai đối thử trên bàn cờ hình

vuông kích thước n*n (n tùy ý) Hai ký hiệu X và O sẽ đại diện

cho hai quân cờ người chơi có nhiệm vụ thay phiên nhau điền ký hiệu của mình vào các ô trên bàn cờ Người thắng sẽ là người đầu tiên tạo được 5 quân của mình thành một chuỗi liên tiếp trên một

hàng ngang, dọc, chéo

II Phân công công việc

 Đạt + Hoàng: nghiên cứu thuật toán và tìm kiếm hàm lượng giá

 Quang + Sơn : Code

 Hùng : Cài đặt, kiểm thử cộng viết báo cáo

III Công nghệ sử dụng

Tool: eclipse

 Các thuật toán tìm kiếm với chi thức bổ xung: Minimax và Alphabeta

cắt tỉa

Ngôn ngữ sử dụng : Javas

 Nền tảng phát triển: Hệ điều hành Android

IV Chiến lược tìm kiếm

 Phân tích

Đến lượt đi của mình, mỗi người chơi cố gắng tạo ra các nước đi uy

hiếp đối phương là cao nhất và đưa tướng của đối phương về trạng thái chiếu hết (checkmate)

Ở chế độ chơi người với máy tính : Nguời lập trình phải xây dựng hàm

để tìm kiếm cho máy tính các nước đi tối ưu nhất Mỗi nước đi mà máy tính lựa chọn sẽ một trong số các khả năng mà máy tính có thể đi, ta gọi

Trang 6

đây là các trạng thái nước đi của máy tính Việc xét hết các trạng thái nước đi của bàn cờ là một việc không mấy dễ dàng Việc duyệt hết các khả năng này có thể làm cho không gian trạng thái sẽ rất lớn ảnh hưởng tới khả năng xử lý của CPU và do đó thời gian cho máy chọn một phương án tối ưu sẽ rất lâu

Vấn đề này yêu cầu sử dụng giải thuật heuristic cho máy để tăng khả năng tối ưu, giảm thời gian “suy nghĩ” cho những phương án lựa chọn của máy Người lập trình áp dụng thủ tục cắt tỉa alpha - beta

(alpha-beta prunning) để cài đặt cho chương trình

 Cây trò chơi

Trong quá trình chơi, trạng thái của bàn cờ được thay đổi liên tục bởi một nước đi của 1 trong 2 đối thủ Ta có thể biểu diễn các trạng thái này dưới dạng một cây tìm kiếm(gọi là cây trò chơi), mỗi nút tương ứng với một trạng thái bất kỳ, các nhánh nối giữa các nút cho ta biết từ trạng thái này sang trạng thái kia thông qua một nước đi nào đó

 Thuật toán MiniMax

Minimax(còn gọi là minmax) là một phương pháp trong có mục

đích là tối thiểu hóa (minimize) tổn thất vốn được dự tính có thể là "tối đa" (maximize) Có thể hiểu ngược lại là, nó nhằm tối đa hóa lợi ích vốn được dự tính là tối thiểu (maximin) Nó bắt nguồn từ trò chơi có tổng bằng không Nó cũng được mở rộng cho nhiều trò chơi phức tạp hơn và giúp đưa ra các quyết định chung khi có sự hiện diện của sự không chắc

chắn Minimax thường dùng để giải quyết những trò chơi có tính chất

đối kháng

Giả sử hai đối thủ trong trò chơi có tên là MAX và MIN

Max: biểu diễn cho mục đích của đối thủ này là làm lớn tối đa lợi

thế của mình

Min: biểu diễn cho mục đích của đối thủ này là làm nhỏ tối đa lợi

thế của đối phương

Trên cây tìm kiếm sẽ phân lớp thành các lớp Max và Min

Trang 7

Minimax sẽ truyền các giá trị này lên cao dần trên đồ thị, qua các nút cha mẹ kế tiếp theo các luật sau:

 Nếu trạng thái cha mẹ là Max, gán cho nó giá trị lớn nhất có trong các trạng thái con của nó

 Nếu trạng thái bố, mẹ là Min, gán cho nó giá trị nhỏ nhất có trong các trạng thái con của nó

Hình 1: Cây nhị phân tìm kiếm Max-Min

 Các nút lá được gán các giá trị heuristic

 Còn giá trị tại các nút trong là các giá trị nhận được dựa trên giải thuật Minimax

Trang 8

Giải thuật

function MINIMAX-DECISION(state) returns an action

vMAX-VALUE(state)

return the action in SUCCESSORS(state) with value v

function MAX-VALUE(state) returns a ultility state

if TERMINAL-TEST(state) then return UTILITY(state)

v -∞

for a,s in SUCCESSORS(state)do

vMAX(v,MIN-VALUE(s))

return v

function MIN-VALUE(state) returns a ultility state

if TERMINAL-TEST(state) then return UTILITY(state)

v -∞

for a,s in SUCCESSORS(state)do

vMIN(v,MAX-VALUE(s))

return v

Ta thấy để gán giá trị cho một nút nào đó ta phải xét hết tất cả các nút con của nó rồi truy hồi dần về nút gốc Vấn đề gặp phải ở đây là một sự bùng nổ hàm mũ số lượng các nút phải xét Để giải quyết vấn đề này ta dùng phương pháp cắt tỉa Alphabeta

4.4 Phương pháp cắt tỉa Alphabeta

 Ý tưởng: Nếu một nhánh tìm kiếm nào đó không cải thiện đối với giá trị(hàm lượng giá) mà chúng ta xét ở phần sau, thì không cần xét đến nhánh tìm kiếm đó nữa

 Việc cắt tỉa các nhánh tìm kiếm “tồi” không ảnh hưởng đến kết quả cuối cùng

Trang 9

GIẢI THUẬT

function ALPHA-BETA-SEARCH(state) returns an action

v MAX-VALUE(state,- ,+ )

return the action in SUCCESSORS(state) with value v

function MAX-VALUE(state) returns a ultility state

if TERMINAL-TEST(state) then return UTILITY(state)

v -∞

for a,s in SUCCESSORS(state)do

vMAX(v,MIN-VALUE(s,α,β))

if(v≥β) then return v

αMAX(α,v)

return v

function MIN-VALUE(state) returns a ultility state

if TERMINAL-TEST(state) then return UTILITY(state)

v +∞

for a,s in SUCCESSORS(state)do

vMIN(v,MAX-VALUE(s,α,β))

if(v≤ α) then return v

ß MIN(β,v)

return v

Trang 10

Cắt tỉa α

Max S=α

Min A=α Z

α - cut

=z

z ≤α

Cắt tỉa β

Min S=β

Max A=β Z

ß - cut

=z

z ≥ β

Z ≤ α

Z ≥ β

Trang 11

Ví dụ minh họa

Hình 2: định trị cây trò chơi bằng phương pháp cắt tỉa α- β

V Kỹ thuật lượng giá

Hàm lượng giá cực kỳ quan trọng trong phương pháp cắt tỉa α- β Một hàm lượng giá tốt sẽ rút bớt cho ta rất nhiều những trạng thái phải xét Trong bài toán cờ caro, hai yếu tố có vai trò quyết định cho trận đấu là tổng số nước có thể thắng của quân X và tổng số nước có thể thắng của quân O tại một trạng thái bất kỳ Vì vậy ta sẽ sử dụng hàm lượng giá sau

Xét tại trạng thái n thì:

Eval(n)=Eval1(n)+Eval2(n)

Trong đó:

 Eval1(n) là hàm tấn công

 Eval2(n) là hàm phòng thủ

Trang 12

Cụ thể tính giá trị tính nhu sau:

 Eval1(n)=X(n)-O(n) với X(n) là tổng bình phương số quân X

liên tiếp trên các đường ngang, dọc, chéo và O(n) là tổng bình phương số quân O liên tiếp trên các đường ngang, dọc, chéo

Ví dụ trên một hàng ngang có 1 2 3 quân X liên tiếp thì

Eval1+=1*1+2*2+3*3

Trường hợp riêng:

 nếu số quân X liên tiếp bằng 4 thì cộng thêm 50 vào giá trị hàm

Eval1(n) và cộng thêm 100 nếu số quân X liên tiếp bằng 5 để thấy rõ sự cấp thiết của nước đi này

 nếu số quân O liên tiếp bằng 4 trên một phương nào đó thì trừ đi

50 vào giá trị hàm Eval 1(n) và trừ đi 100 nếu số quân O liên tiếp bằng 5

 Eval2(n) =X’(n)-O’(n) với X’(n) là tổng bình phương số quân O

liên tiếp mà X chặn được và O’(n) là tổng bình phương số quân

X liên tiếp mà O chặn được trên các đường ngang, dọc, chéo

Trường hợp riêng:

 Nếu X chặn được 4 quân O liên tiếp trên một phương nào đó thì

cộng thêm 100 vào giá trị hàm Eval(n)

 Nếu O chặn được 4 quân X liên tiếp trên một phương nào đó thì

trừ đi 100 vào giá trị hàm Eval(n)

Trang 13

Ví dụ cụ thể

Giả sử tại độ sâu k của cây trò chơi ta có trang thái sau:

o x x

x x o

o o o x

Eval1=(1+1+4+1+1+4+1+1+1+1+4+1+4+1+1+1)-

(1+1+9+1+1+1+1+1+1+1+1+1+1+1+1+1+4)=0

Eval2=(1+1+9+1+1+1+1+1+1+1+1+1+4)-

(1+4+1+1+4+1+1+4+1+4+1+1)=0

Vậy Eval=0+0=0

VI Các khó khăn gặp phải

 Việc xây dựng chương trình gặp một số khó khăn như việc tìm

hàm đánh giá, việc xử lý từ thuật toán chụng cho trò chơi đối

kháng thành code riêng của cờ ca rô

 Tố ưu thuật toán và giảm thời gian tính toán của máy, tăng

cường xét các độ sâu cao hơn

Trang 14

VII Hướng cải tiến và phát triển

1 Cải tiến không gian trạng thái

Do không gian trạng thái bàn cờ rất lớn, vì vậy ta phải xét rất nhiều nút con từ một nút cha Nhưng ta có thể cải tiến bằng cách chỉ xét những ô trống xung quanh những ô đã đánh, bởi vì những ô trống gần khu vực đánh là những ô có tầm quan trọng cao hơn những ô ở

xa khu vực đánh Những ô càng xa thì tầm quan trọng càng giảm Như vậy số nút phải xét sẽ giảm đi thay vào đó ta sẽ tăng độ sâu cho cây tìm kiếm => như vậy máy sẽ thông minh hơn

2 Dùng tri thức bổ sung bên ngoài

 Ta sẽ sử dụng 1 openingbook để lưu trữ những thế cờ mà máy chắc thắng để cho máy luôn có xu hướng đưa đối thủ vào 1 trong số thế

đó

 Ta sẽ tao cho máy lưu lại những ván mà máy thua để lần sau máy không bị tái phạm nữa

Trang 15

15

VIII Tài liệu tham khảo

Slide trí tuệ nhân tạo của thầy Phạm Văn Hải

Slide trí tuệ nhân tạo của thầy Nguyễn Nhật Quang

Giáo trình trí tuệ nhân tạo của thầy Đinh Mạnh Tường

Trò chơi đối kháng và phương pháp tìm kiếm của thầy Phạm Hồng Nguyên

http://www.java2s.com/Tutorial/Java/0280 SWT/Catalog028

0 SWT.htm

-Kéo thả giao diện với Eclipse:

http://www.ptpsoft.com.vn/?page=hotnews&id=694&catid=96

IX Hướng dẫn cài đặt

1 Trên smartphone Android

Trong thư mục gửi code bọn em có build file demo-co-ca-ro.apk Thầy chỉ cần copy file này vào thư mục download của smartphone Android rùi tiến hành cài đặt là chạy bình thường

2 Trên PC

Muốn chạy chương trình trên PC trước hết phải cài phần mềm bluestacks Đây là phần mềm giả lập Android trên PC

Link dowload bulestacks

http://www.bluestacks.com/

Sau khi tiến hành tải và cài đặt thì chạy file demo-ca-ca-ro.apk trên PC bình thường

Ngày đăng: 23/10/2014, 23:46

HÌNH ẢNH LIÊN QUAN

Hình 1: Cây nhị phân tìm kiếm Max-Min - thuyết trình báo cáo môn tri tuê nhân tạo áp dụng thuật toán tìm kiếm min max và alphabeta cắt tỉa xây dựng trò chơi cờ ca rô trên android
Hình 1 Cây nhị phân tìm kiếm Max-Min (Trang 7)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w