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

báo cáo đồ án trí tuệ nhân tạo : Không gian trạng thái được mô tả là trò chơi Lines, kích thước là tùy ý

5 1,1K 13

Đ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 5
Dung lượng 178,21 KB

Nội dung

I. Yêu cầu bài tập Không gian trạng thái được mô tả là trò chơi Lines, kích thước là tùy ý(Các cạnh lớn hơn hoặc bằng 7). Các quân trong trò chơi có 4 màu. 5 quân cùng mầu trên đường thẳng sẽ ăn được. Hãy xây dựng chương trình cho phép tạo không gian bài toán trên. Việc di chuyển các quân theo giải thuật tìm kiếm theo chiều sâu(Depth first search). Chương trình cho phép mô tả các bước đã chọn và đường đi của quân trong trò chơi. Cho phép tính điểm với người chơi. II. Môi trường phát triển - .Net Framework - Ngôn ngữ lập trình: C# III. Các chức năng của chương trình

Trang 1

Artificial Intelligence Giáo viên hướng dẫn: Thầy Ngô Hữu Phúc

I Yêu cầu bài tập

Không gian trạng thái được mô tả là trò chơi Lines, kích thước là tùy ý(Các cạnh lớn hơn hoặc bằng 7) Các quân trong trò chơi có 4 màu 5 quân cùng mầu trên đường thẳng sẽ ăn được Hãy xây dựng chương trình cho phép tạo không gian bài toán trên Việc di chuyển các quân theo giải thuật tìm kiếm theo chiều sâu(Depth first search) Chương trình cho phép mô tả các bước đã chọn và đường đi của quân trong trò chơi Cho phép tính điểm với người chơi

II Môi trường phát triển

- Net Framework

- Ngôn ngữ lập trình: C#

III Các chức năng của chương trình

1 Cho phép khởi tạo trò chơi mới với 6 quân ngẫu nhiên trên bảng

2 Cho phép người chơi lựa chọn cấp độ chơi

3 Chức năng cho phép người chơi quay lại bước đi trước

4 Chức năng tính toán điểm

5 Chức năng Save/Load

IV Thuật toán tìm kiếm theo chiều sâu(Depth first search)

Ý tưởng chính của thuật toán có thể trình bày như sau Ta sẽ bắt đầu tìm kiếm từ một đỉnh v0 nào đó của đồ thị Sau đó chọn u là một đỉnh tuỳ ý kề với v0 và lặp lại quá trình đối với u

Ở bước tổng quát, giả sử ta đang xét đỉnh v Nếu như trong số các đỉnh kề với v tìm được đỉnh w

là chưa được xét thì ta sẽ xét đỉnh này (nó sẽ trở thành đã xét) và bắt đầu từ nó ta sẽ bắt đầu quá trình tìm kiếm còn nếu như không còn đỉnh nào kề với v là chưa xét thì ta nói rằng đỉnh này đã duyệt xong và quay trở lại tiếp tục tìm kiếm từ đỉnh mà trước đó ta đến được đỉnh v (nếu v=v0, thì kết thúc tìm kiếm) Có thể nói nôm na là tìm kiếm theo chiều sâu bắt đầu từ đỉnh v được thực hiện trên cơ sở tìm kiếm theo chiều sâu từ tất cả các đỉnh chưa xét kề với v Quá trình này có thể

mô tả bởi thủ tục đệ qui sau đây:

Procedure DFS(v);

(*tim kiem theo chieu sau bat dau tu dinh v; cac bien Chuaxet, Ke la bien toan cuc*)

Begin

Trang 2

For uÎ Ke(v) do

If Chuaxet[u] then DFS(u);

End; (*dinh v da duyet xong*)

Khi đó, tìm kiếm theo chiều sâu trên đồ thị được thực hiện nhờ thuật toán sau:

Begin

(*Initialization*) for vÎ V do Chuaxet[v]:=true;

for vÎ V do

if Chuaxet[v] then DFS(v);

End.

Rõ ràng lệnh gọi DFS(v) sẽ cho phép đến thăm tất cả các đỉnh thuộc cùng thành phần liên thông với đỉnh v, bởi vì sau khi thăm đỉnh là lệnh gọi đến thủ tục DFS đối với tất cả các đỉnh kề với nó Mặt khác, do mỗi khi thăm đỉnh v xong, bi?n Chuaxet[v] được đặt lại giá trị false nên mỗi đỉnh

sẽ được thăm đúng một lần Thuật toán lần lượt sẽ tiến hành tìm kiếm từ các đỉnh chưa được thăm, vì vậy, nó sẽ xét qua tất cả các đỉnh của đồ thị (không nhất thiết phải là liên thông)

Để đánh giá độ phức tạp tính toán của thủ tục, trước hết nhận thấy rằng số phép toán cần thực hiện trong hai chu trình của thuật toán (hai vòng for ở chương trình chính) là cỡ n Thủ tục DFS phải thực hiện không quá n lần Tổng số phép toán cần phaỉ thực hiện trong các thủ tục này là O(n+m), do trong các thủ tục này ta phải xét qua tất cả các cạnh và các đỉnh của đồ thị Vậy độ phức tạp tính toán của thuật toán là O(n+m)

Trang 3

Ví dụ Xét đồ thị cho trong hình 1 gồm 13 đỉnh, các đỉnh được đánh số từ 1 đến 13 như sau:

Hình 1

Khi đó các đỉnh của đồ thị được đánh số lại theo thứ tự chúng được thăm theo thủ tục tìm kiếm theo chiều sâu mô tả ở trên như hình 2 Giả thiết rằng các đỉnh trong danh sách kề của đỉnh

v (Ke(v)) được sắp xếp theo thứ tự tăng dần của chỉ số

Trang 4

mô tả lại cho đồ thị có hướng Trong trường hợp đồ thị có hướng, thủ tcụ DFS(v) sẽ cho phép thăm tất cả các đỉnh u nào mà từ v có đường đi đến u Độ phức tạp tính toán của htuật toán là O(n+m)

V Mô tả chương trình

Trang 5

VI Tài liệu tham khảo

- CÁC GIẢI PHÁP LẬP TRÌNH C# - Nguyễn Ngọc Bình Phương – Thái Thanh Phong

- Toán rời rạc – Nguyễn Đức Nghĩa – Đại học BKHN

- Lý thuyết đồ thị và ứng dụng - Đặng Huy Ruận, Nxb KHKT

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w