AI VỚI PYTHON

Khái nim tìm kiếm heuristic trong AI

Heuristic là một quy tắc ngón tay cái dẫn chúng ta đến giải pháp có thể xảy ra. Hầu hết các vấn đề trong trí tuệ nhân tạo đều có tính chất cấp số nhân và có nhiều giải pháp khả thi. Bạn không biết chính xác giải pháp nào là đúng và việc kiểm tra tất cả các giải pháp sẽ rất tốn kém.

Do đó, việc sử dụng heuristic thu hẹp việc tìm kiếm giải pháp và loại bỏ các tùy chọn sai. Phương pháp sử dụng heuristic để dẫn tìm kiếm trong không gian tìm kiếm được gọi là Heuristic Search. Các kỹ thuật heuristic rất hữu ích vì tìm kiếm có thể được tăng cường khi bạn sử dụng chúng.

S khác bit gia tìm kiếm không chính xác và tìm kiếm đầy đủ thông tin

Có hai loại chiến lược kiểm soát hoặc kỹ thuật tìm kiếm: không được thông báo và được thông báo. Chúng được giải thích chi tiết như được đưa ra ở đây –

Tìm kiếm không chính xác

Nó còn được gọi là chiến lược tìm kiếm mù hoặc kiểm soát mù. Nó được đặt tên như vậy vì chỉ có thông tin về định nghĩa vấn đề và không có thông tin bổ sung nào khác về các trạng thái. Loại kỹ thuật tìm kiếm này sẽ tìm kiếm toàn bộ không gian trạng thái để tìm lời giải. Tìm kiếm theo chiều rộng (BFS) và Tìm kiếm theo chiều sâu (DFS) là những ví dụ về tìm kiếm không chính xác.

tìm kiếm thông báo

Nó còn được gọi là chiến lược tìm kiếm heuristic hoặc chiến lược điều khiển heuristic. Nó được đặt tên như vậy vì có thêm một số thông tin về các tiểu bang. Thông tin bổ sung này rất hữu ích để tính toán sở thích giữa các nút con để khám phá và mở rộng. Sẽ có một hàm heuristic được liên kết với mỗi nút. Tìm kiếm đầu tiên tốt nhất (BFS), A*, Giá trị trung bình và Phân tích là những ví dụ về tìm kiếm có hiểu biết.

Các vn đề v s hài lòng v ràng buc (CSP)

Hạn chế có nghĩa là hạn chế hoặc giới hạn. Trong AI, các vấn đề thỏa mãn ràng buộc là các vấn đề phải được giải quyết dưới một số ràng buộc. Trọng tâm phải là không vi phạm ràng buộc trong khi giải quyết các vấn đề như vậy. Cuối cùng, khi chúng tôi đạt được giải pháp cuối cùng, CSP phải tuân theo hạn chế.

Vấn đề trong thế giới thực được giải quyết bằng sự thỏa mãn ràng buộc

AI VỚI PYTHON

Các phần trước xử lý việc tạo ra các vấn đề thỏa mãn ràng buộc. Bây giờ, chúng ta hãy áp dụng điều này cho các vấn đề trong thế giới thực. Một số ví dụ về các vấn đề trong thế giới thực được giải quyết bằng sự thỏa mãn ràng buộc như sau –

Gii quan h đại s

Với sự trợ giúp của bài toán thỏa mãn ràng buộc, chúng ta có thể giải quyết các quan hệ đại số. Trong ví dụ này, chúng ta sẽ cố gắng giải một quan hệ đại số đơn giản a*2 = b . Nó sẽ trả về giá trị của a và b trong phạm vi mà chúng ta sẽ xác định.

Sau khi hoàn thành chương trình Python này, bạn sẽ có thể hiểu những kiến ​​thức cơ bản về giải quyết các vấn đề với sự thỏa mãn ràng buộc.

Lưu ý rằng trước khi viết chương trình, chúng ta cần cài đặt gói Python có tên là python-constraint. Bạn có thể cài đặt nó với sự trợ giúp của lệnh sau –

pip install python-constraint

Các bước sau đây cho bạn thấy một chương trình Python để giải quan hệ đại số bằng cách sử dụng sự thỏa mãn ràng buộc –

Nhập gói ràng buộc bằng lệnh sau –

from constraint import *

Bây giờ, hãy tạo một đối tượng của mô-đun có tên là problem() như hình bên dưới –

problem = Problem()

Bây giờ, xác định các biến. Lưu ý rằng ở đây chúng tôi có hai biến a và b và chúng tôi đang xác định 10 là phạm vi của chúng, có nghĩa là chúng tôi đã nhận được giải pháp trong 10 số đầu tiên.

problem.addVariable('a', range(10))
problem.addVariable('b', range(10))

Tiếp theo, xác định ràng buộc cụ thể mà chúng tôi muốn áp dụng cho vấn đề này. Quan sát rằng ở đây chúng tôi đang sử dụng ràng buộc a*2 = b .

problem.addConstraint(lambda a, b: a * 2 == b)

Bây giờ, hãy tạo đối tượng của mô-đun getSolution() bằng lệnh sau –

solutions = problem.getSolutions()

Cuối cùng, in đầu ra bằng lệnh sau –

print (solutions)

Bạn có thể quan sát đầu ra của chương trình trên như sau –

[{'a': 4, 'b': 8}, {'a': 3, 'b': 6}, {'a': 2, 'b': 4}, {'a': 1, 'b': 2}, {'a': 0, 'b': 0}]

Hình vuông ma thut

Hình vuông kỳ diệu là sự sắp xếp các số riêng biệt, thường là số nguyên, trong một lưới ô vuông, trong đó các số trong mỗi hàng và trong mỗi cột và các số trong đường chéo, tất cả cộng lại thành một số được gọi là “hằng số kỳ diệu” .

Sau đây là cách thực thi từng bước mã Python đơn giản để tạo hình vuông ma thuật – Định nghĩa một hàm có tên magic_square , như hình dưới đây

def magic_square(matrix_ms):
   iSize = len(matrix_ms[0])
   sum_list = []

Đoạn mã sau hiển thị mã cho chiều dọc của hình vuông

for col in range(iSize):
   sum_list.append(sum(row[col] for row in matrix_ms))

Đoạn mã sau hiển thị mã cho chiều ngang của hình vuông –

sum_list.extend([sum (lines) for lines in matrix_ms])

Đoạn mã sau hiển thị mã cho chiều ngang của hình vuông

dlResult = 0
for i in range(0,iSize):
   dlResult +=matrix_ms[i][i]
sum_list.append(dlResult)
drResult = 0
for i in range(iSize-1,-1,-1):
   drResult +=matrix_ms[i][i]
sum_list.append(drResult)

if len(set(sum_list))>1:
   return False
return True

Bây giờ, đưa ra giá trị của ma trận và kiểm tra đầu ra –

print(magic_square([[1,2,3], [4,5,6], [7,8,9]]))

Bạn có thể quan sát thấy rằng đầu ra sẽ là Sai vì tổng không bằng một số.

print(magic_square([[3,9,2], [3,5,7], [9,1,6]]))

Bạn có thể quan sát thấy rằng đầu ra sẽ là True vì tổng là cùng một số, ở đây là 15

Xem thêm : AI với Python – Chơi game

Trả lời