Giải các bài toán sử dụng Trí tuệ nhân tạo. B¸o c¸o Bµi tËp lín m«n häc TrÝ tuÖ nh©n t¹o §å ¸n TrÝ tuÖ nh©n t¹o GV NguyÔn Xu©n Hoµi Môc lôc 1Lêi nãi ®Çu 2I Néi dung b¸o c¸o 2Bµi tËp lín 1 Gi¶i quyÕt bµi to¸n 4Bµi tËp lín 2 Trß ch¬i Line 7II H¹n.
Trang 1Môc lôc
Lêi nãi ®Çu 1
I Néi dung b¸o c¸o 2
Bµi tËp lín 1: Gi¶i quyÕt bµi to¸n: 2
Bµi tËp lín 2: Trß ch¬i Line 4
II H¹n chÕ cña ch¬ng tr×nh 7
1 Ch¬ng tr×nh ph¶n øng hãa häc 7
2 Trß ch¬i Line 8
III Híng ph¸t triÓn cña ch¬ng tr×nh 8
1 Ch¬ng tr×nh ph¶n øng hãa häc 8
2 Trß ch¬i Line 8
IV KÕt LuËn 8
Lêi nãi ®Çu
Trang 2Qua các kiến thức tiếp thu đợc ở trên lớp qua các bài giảng của giáo viên, bài tập lớn, nhỏ và các chuyên đề đợc giáo viên giao ,kết hợp với sự tham khảo tài liệu theo định hớng của giáo viên về môn học Trí tuệ nhân tạo chúng em đã nắm đợc những kiến thức, kỹ thuật cơ bản nhất của các thuật toán trong môn học Những kiến thức này thực sự quan trọng là nền móng cho việc lập trình các chơng trình thông minh(intelligent), mang tính trí tuệ
và là kiến thức để học tập những môn học tiếp theo ứng dụng kiến thức đã học vào để lập trình các chơng trình thông minh và các chơng trình trò chơi mang tính thông minh Tuy nhiên do tìm hiểu nghiên cứu cha sâu, áp dụng kiến thức vào các bài toán thực tế còn ít, một số kỹ thuật còn cha biết tới do vậy việc xử lý có điểm thuật toán còn cha tối u Chúng em rất mong đợc nhận đợc sự góp ý của thầy và các bạn trong lớp về chơng trình để chơng trình có thể đợc hoàn thiện hơn, và cũng rất mong đợc sự gúp đỡ của thầy để chúng em có thể nắm vững hơn về môn học này cũng nh các kiến thức khác Cuối cùng chúng em xin cám ơn thầy đã dành nhiều thời gian để giúp
đỡ chỉ dạy tận tình trong quá trình học tập của chúng em
I. Nội dung báo cáo:
Bài tập lớn 1: Giải quyết bài toán:
Cho hỗn hợp một số chất hoá học (vô cơ), yêu cầu viết các phản ứng hoá học có thể xảy ra và tìm xem một hợp chất nào đó có trong sản phẩm tạo thành hay không?
*Xây dựng chơng trình:
+ Mục tiêu: Chơng trình phải nhận biết đợc các chất khác nhau và
phảI viết đợc phơng trình các chất có thể tác dụng đợc với nhau nếu thoả mãn.Các điều kiện phản ứng phảI đúng nh thực tế
+Kết quả: Đợc xem là rất tốt
+ Trí tuệ nhân tạo đợc sử dụng trong chơng trình
Lập luận tiến dựa trên các quy luật sau:
Su dung cac Quy Luat :
Trang 3Kim Loai + O2 -> Oxit KimLoai Phi Kim + O2 -> Oxit Phi Kim
Kim Loai + Phi Kim -> Muoi
Phi Kim + H2 -> Axit
Phi Kim + H2O -> Axit (Nhom 7)
Kim Loai + Axit -> Muoi + H2
Oxit Axit + H20 -> Axit
Oxit Bazo + H20 -> Bazo
Oxit Axit + Kiem -> Muoi + H20
Oxit Bazo + Axit -> Muoi + H2O
Phan ung Trung Hoa
Bazo + Muoi -> Muoi(moi) + Bazo(moi)
Muoi + Muoi -> Muoi(moi) + Muoi(moi)
Muoi + Axit -> Muoi(moi) + Axit(moi)
Kim Loai+ Muoi -> Muoi(moi) + KimLoai(moi)
Sản phẩm đợc tạo ra của phản ứng trớc sẽ nếu nh cha có sẵn sẽ đợc thêm vào các chất tham gia phản ứng của các phản ứng sau theo thứ tự các quy luật trên
+Sự phức tạp chơng trình: Là phải kiểm soát đợc các điều kiện của
phản ứng có thể xảy ra
Chính vì vậy việc tổ chức dữ liệu là hết sức quan trọng
Public Type kimloai
ten As String
nhom As Byte
End Type
Public Type goc_axit
hoatri As Byte
ten As String
End Type
Public Type phikim
ten As String
nhom As Byte
End Type
Public Type oxit_axit
ten As String
End Type
Public Type oxit_bazo
kl As kimloai
ten As String
End Type
Public Type axit
Trang 4gocaxit As goc_axit
End Type
Public Type bazo
kl As kimloai
ten As String
End Type
Public Type muoi
ten As String
kl As kimloai
gocaxit As goc_axit
End Type
Kết quả chạy ch ơng trình:
Bài tập lớn 2: Trò chơi Line
Chắc hẳn trò chơi Line rất quen thuộc với các bạn, trò chơi gồm một bảng chứa các viên bi, có 10 loại bi đợc đặt bằng 10 màu khác nhau Ngời chơi sẽ
di chuyển vị trí của các viên bi để chúng thành một hàng ngang (từ trái qua phải), hàng đứng (từ trên xuống dới) hay đờng chéo 5 viên bi liên tiếp thì sẽ ghi điểm và 5 viên bi này sẽ bị xóa khỏi bảng Trò chơi kết thúc khi bảng đầy các viên bi
Trang 5Sẽ không thể di chuyển đợc các viên bi trên bảng nếu nó không có đờng
đi nào đến điểm đích Bị chặn nếu xung quanh điểm đích các viên bi là sáng màu thì sẽ không di chuyển qua đợc, chỉ khi trên đờng đi là trống hoặc là có các viên bi còn mờ cha sáng màu thì mới có thể di chuyển qua đợc
Để làm trò chơi Line, đầu tiên bạn phải xác định đợc đờng đi ngắn nhất của các viên bi(khi các bạn chọn một viên và chọn một ô trống nào đó trong bảng) Do số ô trên bàn là không lớn nên dùng giảI thuật tìm kiếm theo bề rộng BFS để tìm đờng đi của các viên bi trên bảng Thực chất đó là tìm đờng
đi ngắn nhất có thể để di chuyển các viên bi đến đúng đích cần đi Để áp dụng thuật toán BFS chúng ta xem bảng nh một đồ thị với mỗi ô trên bảng
nh một đỉnh của đồ thị
Giả sử, các bạn tìm đờng đi từ ô (i,j) đến ô (i’,j ’), chúng ta sử dụng 2 hàng
đợi để lu trạng thái Đầu tiên chúng ta bỏ phần tử đầu tiên (i,j) vào hành đợi Sau đó lặp vòng lặp để tìm đờng đi đến đích cần đi
Khi (hàng đợi []cha rỗng) AND Not Found
{
Lấy từng phần tử trong hàng đợi [0]
{
Kiểm tra 4 ô xung quanh (trên, dới, phải, trái) của phần tử này {
Nếu là ô còn trống và cha đợc đánh dấu đã đI qua {
- Lu ô này vào trong hành đợi []
- Đánh dấu ô đã đợc xét
- Nếu ô này là ô đích cần đến thì dừng: Found = True }
} }
}
Nếu hàng đợi rỗng mà cha tìm đợc ô đích (Found = False) tức là không có
đờng đI đến ô đích hay nói cách khác ô đích đã bị khoá 4 đầu
*Chạy chơng trình:
* Trạng thái ban đầu.
Trang 6Trong trò chơi có các cấp độ chơi khác nhau Có 3 cấp độ đó là:
Nornal, hard, very hard Mức Normal thì số nút thêm vào là 3 nút sau mỗi khi ngờc chơI Click 1 ô Mức hard thì số nút thêm vào là 5 Mức very hard thì số nút thêm vào là 3, nhng cứ sau 5 giây thì lại thêm vào 3 nút nữa dù ngừơi chơi cha di chuyển để tăng cấp độ khó của trò chơi
Bên cạnh đó trò chơi còn có phàn help(giúp đỡ) để giúp đỡ ngời chơi
khi mà họ cha tìm ra nớc đi ăn điểm, và có nguy cơ game over Khi chọn
help me thì nó sẽ xóa đi 5 nút hiện trên bàn cờ tạo ra các khoảng trống để
bạn tiếp tục trò chơi
- Trạng thái đang chơi: Khi chơi mỗi khi ngời chơi di chuyển đợc năm viên
bi thẳng hàng thì sẽ đợc tình điểm Mỗi hàng sẽ đợc 250 điểm nếu thỏa mãn Mỗi viên bi sẽ tính là 50 điểm
Trang 7- Trạng thái kết thúc là lúc mà bạn thua không còn nớc để đi, khi đó bàn cờ
đầy các viên bi
II Hạn chế của ch ơng trình.
1 Chơng trình phản ứng hóa học.
Có thể thiếu một vài phản ứng riêng lẻ do cha có điều kiện kiểm soát hết, hoặc có một loại phản úng nào đó mà điệu kiện còn cha chặt
2 Trò chơi Line.
Trong trò chơi Line, về mặt thuật toán chúng tôi chỉ mới sử dụng thuật toán tìm kiếm đờng đi ngắn nhất BFS để tìm đờng đi ngắn nhất trên đồ thị,
nó đem lại hiệu quả khá cao trong việc giải quyết vấn đề tìm đờng đi
III H ớng phát triển của ch ơng trình.
1 Chơng trình phản ứng hóa học
Trang 8Sẽ hoàn thiện hơn các điều kiện phản ứng.Quan trọng nhất là đã giảI quyết đợc vấn đề cốt lõi của bài toán rất hiệu quả, bây giờ chỉ còn những trờng hợp đơn lẻ đặc thù nhất mà thôi
2 Trò chơi Line.
Việc tìm đờng đI ngắn nhất có thể cải tiến bằng thuật toán Tìm Kiếm Tốt Nhất Đầu Tiên với hàm đánh giá:
h(n) = Số ô ít nhất cần đi qua từ Ô(i1,j1) Ô(i2,j2)
Tuy nhiên vì số ô trên bàn cờ là không lớn do vậy giải thuật BFS đơn giản mà hiệu quả
IV Kết Luận
Việc áp dụng kiến thức sau khi học môn Trí Tuệ Nhân Tạo vào bài toán thực tế có thể cha lớn, xong những kết quả đạt đợc rất thú vị và hy vọng đợc các bạn hởng ứng Nhóm rất mong đợc sự đánh giá của Thầy và các các bạn
để chơng trình hoàn thiện hơn nữa
Một lần nữa chúng em xin chân thành cảm ơn thầy giáo Nguyễn Xuân Hoài
đã tận tình quan tâm giúp đỡ nhóm hoàn thành đồ án
Nhóm lập trình:
Nguyễn Văn Hoạt
Lê Danh Tài
Nguyễn Vĩnh Long
Lớp Tin học K38