Bai giang Tri Tue Nhan Tao

236 10 1
Bai giang Tri Tue Nhan Tao

Đ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

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 21 CÁC TIỀN ĐỀ CƠ BẢN CỦA TTNT.. TTNT kế thừa nhiều ý tưởng, quan điểm và các kỹ thuật từ các ngành khoa học khác.[r]

(1)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo

TRÍ TUỆ NHÂN TẠO

Nguyễn Ngọc Hiếu

Khoa Công nghệ Thông tin Trường Đại học Vinh

(2)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo

NỘI DUNG

 TỔNG QUAN VỀ KHOA HỌC TTNT

 CÁC PHƯƠNG PHÁP BIỂU DIỄN VÀ GIẢI QUYẾT VẤN ĐỀ

(3)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo

TÀI LIỆU THAM KHẢO

1 Trí tuệ nhân tạo – Các phương pháp Giải vấn đề kỹ thuật xử lý tri thức (1999)

Nguyễn Thanh Thuỷ

2 Lập trình lơgic Prolog (2004)

Phan Huy Khánh

3 Artificial Intelligence: A Modern Approach (2nd edition, 2002)

(4)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo

ĐÁNH GIÁ

 Tham dự giảng: 10%  Thi kỳ: 20%

(5)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo

KHỐI LƯỢNG & CẤU TRÚC HỌC PHẦN

 Số đơn vị học trình: 3  Lý thuyết: 35 tiết

(6)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo

(7)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo

NỘI DUNG

CÁC KHÁI NIỆM CƠ BẢN

 CÁC TIỀN ĐỀ CƠ BẢN CỦA TTNT

 LỊCH SỬ PHÁT TRIỂN CỦA KHOA HỌC TTNT  CÁC THÀNH TỰU CỦA KHOA HỌC TTNT

(8)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo CÁC KHÁI NIỆM CƠ BẢN:

TTNT gì?

 Trí tuệ nhân tạo khoa học liên quan đến việc làm

(9)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo

 Intelligence: trí thơng minh

“ability to learn, understand and think” (Oxford dictionary)

 Artificial Intelligence (AI): trí thơng minh nhân tạo

“attempts to understand intelligent entities” “strives to build intelligent entities”

(Stuart Russell & Peter Norvig)

CÁC KHÁI NIỆM CƠ BẢN:

(10)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 10 CÁC KHÁI NIỆM CƠ BẢN:

(11)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 11 CÁC KHÁI NIỆM CƠ BẢN:

(12)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 12

Thinking humanly

(Suy nghĩ người)

Thinking rationally (Suy nghĩ hợp lý) Acting humanly

(Hành động người) (Hành động hợp lý)Acting rationally

CÁC KHÁI NIỆM CƠ BẢN:

(13)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 13 CÁC KHÁI NIỆM CƠ BẢN:

Hành động người:Phép thử Turing  Alan Turing (1912-1954)

 “Computing Machinery and Intelligence” (1950)

Phép thử

Người kiểm tra

Người

(14)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 14

 Chỉ lĩnh vực cần nghiên cứu AI:

 Xử lý ngôn ngữ tự nhiên: để giao tiếp

 Biểu diễn tri thức: để lưu trữ phục hồi

thông tin cung cấp trước/trong trình thẩm vấn

 Suy diễn tự động: để sử dụng thông tin

được lưu trữ trả lời câu hỏi đưa kết luận

 Học máy: thích nghi với tình mới, phát

hiện suy mẫu

(15)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 15 CÁC KHÁI NIỆM CƠ BẢN:

Suy nghĩ người: Mơ hình nhận thức

 Con người suy nghĩ ntn ?

 Nhờ tâm lý học, khoa học nhận thức

 Người thuộc trường phái này, yêu cầu:

 Chương trình giải đúng

 Còn so sánh bước giải với giải

người

 VD: General Problem Solver (GPS), Newell &

(16)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 16 CÁC KHÁI NIỆM CƠ BẢN:

Suy nghĩ có lý: Luật suy nghĩ

 Aristole: ~420 BC.

 Tiến trình suy nghĩ gì?

 Mở nhánh: trình suy luận

 VD: “Socrates is a man, all men are mortal; therefore

Socrates is mortal”

 Theo sau Aristole -> 20th:

 Logic hình thức (formal logic) đời.

 Hình thức hố mặt ký hiệu q trình suy diễn với

(17)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 17 CÁC KHÁI NIỆM CƠ BẢN:

Hành động có lý

 Hành động có lý ~ hành động để đạt mục tiêu

 Ưu thế:

 Tổng quát luật suy nghĩ: Xử lý thông tin không

(18)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 18 CÁC KHÁI NIỆM CƠ BẢN:

Các phương pháp kỹ thuật

 Các phương pháp biểu diễn tri thức kỹ thuật xử lý tri thức

 Các phương pháp giải vấn đề  Các phương pháp Heuristic

(19)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 19 CÁC KHÁI NIỆM CƠ BẢN:

Các thành phần hệ thống

 Hai thành phần bản:

 Các phương pháp biểu diễn vấn đề, phương pháp

biểu diễn tri thức

 Các phương pháp tìm kiếm khơng gian tốn,

(20)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 20

NỘI DUNG

 CÁC KHÁI NIỆM CƠ BẢN

CÁC TIỀN ĐỀ CƠ BẢN CỦA TTNT

 LỊCH SỬ PHÁT TRIỂN CỦA KHOA HỌC TTNT  CÁC THÀNH TỰU CỦA KHOA HỌC TTNT

(21)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 21 CÁC TIỀN ĐỀ CƠ BẢN CỦA TTNT

TTNT kế thừa nhiều ý tưởng, quan điểm kỹ thuật từ ngành khoa học khác

TTNT kế thừa nhiều ý tưởng, quan điểm kỹ thuật từ ngành khoa học khác

TTNT

TTNT

Tâm

lý học

Ngôn ngữ học

Khoa học máy tính

Triết học

Tốn học

Các lý thuyết lập luận học

Các lý thuyết xác suất logic, tạo định tính tốn

Làm cho TTNT trở thành thực Nghiên cứu ý nghĩa

(22)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 22

NỘI DUNG

 CÁC KHÁI NIỆM CƠ BẢN

 CÁC TIỀN ĐỀ CƠ BẢN CỦA TTNT

LỊCH SỬ PHÁT TRIỂN CỦA KHOA HỌC TTNT

(23)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 23 LỊCH SỬ PHÁT TRIỂN CỦA

KHOA HỌC TTNT

 Bắt đầu AI (1943 - 1956):

 1943: McCulloch & Pitts: Mơ hình chuyển mạch logic.

 1950: Bài báo “Computing Machinery and Intelligence”

của Turing

(24)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 24

 “birth day”: Hội nghị Dartmouth College mùa hè 1956,

Minsky McCarthy tổ chức, McCarthy đề xuất tên gọi “artificial intelligence” Có Simon Newell người tham dự

John McCarthy Marvin Minsky

(25)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 25

 Trơng mong (1952 - 1969):

 Một số chương trình TTNT thành cơng:

 Samuel’s checkers

 Newell & Simon’s Logic Theorist

 Gelernter’s Geometry Theorem Prover.

 Thuật giải Robinson cho lập luận logic.

(26)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 26

 Thực tế (1966 − 1974):

 Phát khó khăn độ phức tạp tính toán.  Quyến sách Minsky & Papert năm 1969.

 Hệ thống dựa tri thức (1969 − 1979):

 1969: DENDRAL by Buchanan et al.

Đưa cấu trúc phân tử từ thông tin quang phổ kế

 1976: MYCIN by Shortliffle.

Chuẩn đoán nhiểm trùng máu

 1979: PROSPECTOR by Duda et al.

Chuẩn đốn vị trí khoan dầu

(27)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 27

 TTNT trở thành ngành công nghiệp (1980 - 1988):

 Bùng nổ hệ chuyên gia.

 1981: Đề án máy tính hệ thứ năm Nhật

Bản

 Sự trở lại mạng nơron lý thuyết TTNT (1986 - nay)

(28)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 28 LỊCH SỬ PHÁT TRIỂN CỦA

(29)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 29

NỘI DUNG

 CÁC KHÁI NIỆM CƠ BẢN

 CÁC TIỀN ĐỀ CƠ BẢN CỦA TTNT

 LỊCH SỬ PHÁT TRIỂN CỦA KHOA HỌC TTNT

CÁC THÀNH TỰU CỦA KHOA HỌC TTNT

(30)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 30 CÁC THÀNH TỰU CỦA

(31)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 31 CÁC THÀNH TỰU CỦA

(32)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 32 CÁC THÀNH TỰU CỦA

(33)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 33

SONY AIBO

(34)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 34

Đi

Quay

Lên xuống cầu thang

Honda Humanoid Robot & Asimo

(35)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 35 CÁC THÀNH TỰU CỦA

(36)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 36 CÁC THÀNH TỰU CỦA

(37)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 37

NỘI DUNG

 CÁC KHÁI NIỆM CƠ BẢN

 CÁC TIỀN ĐỀ CƠ BẢN CỦA TTNT

 LỊCH SỬ PHÁT TRIỂN CỦA KHOA HỌC TTNT  CÁC THÀNH TỰU CỦA KHOA HỌC TTNT

(38)(39)(40)(41)(42)(43)(44)(45)(46)(47)(48)(49)(50)(51)(52)(53)(54)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 54

Một số chủ đề nghiên cứu

 Giải thuật di truyền ứng dụng

 Mạng Nơron nhân tạo ứng dụng

 Công nghệ tác tử ứng dụng

 KDD ứng dụng

 Phân lớp - học có thầy

 Lý thuyết tập thô  Cây định 

 Phân cụm - học khơng có thầy  Luật kết hợp

(55)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 55

(56)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 56

NỘI DUNG

BIỂU DIỄN VÀ GIẢI QUYẾT VẤN ĐỀ

TRONG KHOA HỌC TTNT

(57)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 57 BIỂU DIỄN VÀ GIẢI QUYẾT VẤN ĐỀ TRONG KHOA HỌC TTNT

 Giải vấn đề khoa học TTNT  Giải vấn đề người

 Phân loại vấn đề & Các đặc trưng vấn đề  Các thành phần hệ thống giải

(58)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 58

Giải vấn đề khoa học TTNT

 Hoạt động trí tuệ: vận dụng kỹ thuật giải vấn đề

 Giải vấn đề: tìm kiếm khơng gian lời giải phận có

 Phương pháp biểu diễn vấn đề => Phương pháp giải vấn đề

 VD: Biểu diễn logic vị từ => Phương pháp hợp giải

 VD: Biểu diễn mạng ngữ nghĩa => Các thủ tục tìm

(59)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 59

 Giải vấn đề: duyệt-tìm kiếm khơng gian lời giải => bùng nổ tổ hợp => thủ tục tìm kiếm Heuristic

 Phân chia hệ thống TTNT:

 Các hệ tìm kiếm thơng tin, hệ hỏi đáp thơng minh

 Các hệ suy diễn – tính tốn: dựa vào mơ hình tốn

học tri thức chuyên gia

 Các hệ chuyên gia

(60)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 60

Phát biểu toán-Xác định ph ơng pháp bd toán

Sản sinh không gian toán

Bài toán giải nhờ thuật toán đa thức

Xỏc nh lời giải nhờ ngơn ngữ lập

tr×nh

Xác định tri thức đặc biệt để rút gọn khụng gian TK

Xây dựng ph ơng pháp biĨu diƠn tri thøc vµ suy diƠn

Lùa chän ngôn ngữ, công cụ phù hợp

Cỏc h gii vấn đề dựa vào tri thức Bài toán (Vấn )

Đ S Công nghệ lập trình truyền thống C«ng nghƯ xư lý tri thøc

Sơ đồ: Những khía cạnh khác TTNT

(61)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 61

Giải vấn đề người

 Cách giải vấn đề người mơ hình thực tiễn quan trọng để chun gia TTNT tìm cách mơ lại máy tính q trình giải tốn

Khoa học nhận thức: Nghiên cứu trình tổ chức,

lưu trữ, truy nhập, xử lý thu nạp tri thức não người

Tâm lý học nhận thức và khoa học điều khiển: Tạo

(62)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 62

 Q trình xử lý thơng tin người

Giải vấn đề người

Hệ thống thụ cảm

Cơ quan thụ cảm

Bộ nhớ đệm

HÖ thèng nhËn thøc

Bé nhớ dài hạn Bộ nhớ làm việc

Bộ xử lý nhËn thøc

Hệ thống hành động

Cơ quan hành động Bộ nhớ đệm Kích thích Trả lời

(63)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 63

 Giải vấn đề người trường hợp riêng q trình xử lý thơng tin não Đó việc tìm cách từ tình ban đầu đến đích Giải vấn đề hoạt động đặc biệt hệ thần kinh cần tới q trình suy nghĩ, tìm kiếm khơng gian lời giải phận để đến lời giải cuối

 Tuy nhiên, cần lưu ý hoạt động xử lý thông tin giải vấn đề

(64)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 64

Các chiến lược giải vấn đề:

 Ước lượng mức độ phức tạp vấn đề đặt ra:

 Nếu đơn giản, giải vấn đề nhờ vào thuật toán

tiền định với thao tác sở

 Nếu phức tạp, quan não tìm cách hiểu chi tiết nội

dung vấn đề để mã hố, tìm phương pháp phù hợp

 Nới lỏng vài ràng buộc toán.

(65)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 65

Các chiến lược giải vấn đề:

 Phương pháp thử - sai: Xuất phát từ tình ban đầu,

người ta đưa tình mới, sau so sánh với ràng buộc để tìm lời giải hợp lý

 Phương pháp chia toán thành toán con: Từ

toán phức tạp, người chia thành toán nhỏ, phức tạp gặp toán sơ cấp, giải

 Tổng qt hố tốn : Chuyển thơng tin bên ngồi

thành kí hiệu làm cho tốn dễ giải Q trình tạo mơ hình trí tuệ tốn, mơ hình thường gọi khơng gian tốn

(66)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 66

Khơng gian tốn bao gồm:

 Các dạng mẫu ký hiệu, dạng biểu diễn trạng thái hay tình toán

 Các mối liên kết dạng mẫu ký hiệu, mối liên kết tương ứng với phép biến đổi từ dạng sang dạng khác

(67)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 67

Phân loại vấn đề & Các đặc trưng bản vấn đề

Bài toán 1: Bài tốn trị chơi n2-1 số (nN, n>2)

1

5

9 10 11 12

(68)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 68

Bài toán 2: Bài toán Tháp Hà nội

Phân loại vấn đề & Các đặc trưng bản vấn đề

3

1

3

1

(69)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 69

Phân loại vấn đề:

Vấn đề (bài toán) phát biểu chỉnh (well-formed problems):

Là tốn biết hình trạng đầu, hình trạng đích định vấn đề coi giải xong Các toán - vấn đề phát biểu chỉnh

Vấn đề (bài tốn) phát biểu khơng chỉnh (ill-formed

problems): Là vấn đề phát biểu chưa đầy đủ, thiếu kiện Các toán chẩn đoán điều trị bệnh, toán xác định chất lượng sản phẩm toán phát biểu không chỉnh

(70)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 70

 Các đặc trưng vấn đề

 Bài tốn phân tích thành tốn dễ giải khơng?  Các bước giải tốn bỏ qua hay huỷ bỏ hay khơng?  Khơng gian tốn đốn trước hay khơng?

 Có tiêu chuẩn để xác định lời giải tốt tốn

khơng?

 Có cần tri thức để giải tốn hay điều khiển q trình tìm

kiếm không?

 Cơ sở tri thức để giải tốn có qn với nội dung

khơng?

 Có cần tương tác người máy q trình giải khơng?

(71)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 71

Các thành phần hệ thống giải vấn đề

 Giải vấn đề: Biểu diễn tốn tìm kiếm lời giải khơng gian tốn

 Hệ thống giải vấn đề:

Gi¶i thuËt tìm kiếm

Chiến l ợc điều khiển

Kỹ thuËt Heuristic

Kü thuËt suy diÔn

Hệ thống gii quyt

Bài toán

Dữ liệu + Tri thức

Cơ sở liệu

(72)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 72

NỘI DUNG

 BIỂU DIỄN VÀ GIẢI QUYẾT VẤN ĐỀ TRONG KHOA HỌC TTNT

CÁC PHƯƠNG PHÁP BIỂU DIỄN VẤN ĐỀ

(73)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 73 CÁC PHƯƠNG PHÁP BIỂU DIỄN

VẤN ĐỀ

 Phương pháp biểu diễn nhờ không gian trạng thái  Phương pháp qui toán toán con

 Phương pháp biểu diễn vấn đề nhờ logic hình thức  Lựa chọn phương pháp biểu diễn thích hợp

 Biểu diễn vấn đề máy tính

(74)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 74

Phương pháp biểu diễn nhờ KGTT

Trạng thái (State) là hình trạng toán

Toán tử (Operator) phép biến đổi từ trạng

thái sang trạng thái khác

 Hình trạng đầu, hình trạng cuối toán gọi trạng thái đầu, trạng thái cuối

 Tập tất trạng thái sinh xuất phát từ trạng thái đầu áp dụng toán tử gọi

(75)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 75

 Một cách biểu diễn trực quan không gian

trạng thái toán tử sử dụng đồ thị, đó, đỉnh đồ thị t ơng ứng với trạng thái cung t ơng ứng với toán tử

 VD: Bài tốn trị chơi n2-1 số (nN, n>2)

 n =

5

9 10 11 12

13 14 15  

(76)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 76

(77)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 77

 Mỗi trạng thái xếp số từ đến 15

cho khơng có hai có giá trị

 Hình trạng đầu cuối tương ứng với trạng thái đầu cuối

 Không gian trạng thái đạt từ trạng thái đầu bao gồm tất

hình trạng sinh nhờ áp dụng phép dịch chuyển chấp nhận ô trống

 Đối với toán số trạng thái chấp nhận xấp xỉ (1/2) 16 ! 

10.5.1012

 Các tốn tử phép biến đổi từ trạng thái sang trạng

thái khác bao gồm: dịch ô trống sang phải, sang trái, lên trên, xuống Đối với số trạng thái có số tốn tử khơng áp dụng

 Lời giải tốn nhận nhờ sử dụng trình tìm

kiếm sau: áp dụng toán tử vào trạng thái đầu để nhận trạng thái mới, sau áp dụng toán tử vào trạng thái đạt đến trạng thái đích

(78)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 78

Phương pháp qui toán toán con

 Tách toán thành toán cho lời giải tập toán cho phép xác định lời giải toán ban đầu

 Cách tiếp cận dẫn đến phương pháp biểu diễn vấn đề đồ thị Và /Hoặc

A

Hoặc B C

E F

G

(79)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 79

Phương pháp qui toán toán con

VD: Bài toán Tháp Hà nội (n=3)

3

1

3

1

A B C A B C

Hµ Néi (3, A, B, C)

(80)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 80

 n = 3

 n = 4

(81)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 81

 Thơng thường, để giải vấn đề người ta cần phân tích logic để thu gọn q trình tìm kiếm đơi nhờ phân tích logic chứng tỏ tốn khơng thể giải

 VD: Bài tốn trị chơi n2-1 số

Phương pháp biểu diễn vấn đề nhờ logic hình thức

15 14 13 12

11 10 9 8

(82)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 82  Các dạng logic hình thức sử dụng để biểu diễn

toán gồm:

 Logic mệnh đề  Logic vị từ

 Phương pháp biểu diễn tốn nhờ logic hình thức cho

phép:

 Kiểm tra điều kiện kết thúc tìm kiếm khơng gian

trạng thái

 Kiểm tra tính áp dụng tốn tử  Chứng minh khơng tồn lời giải

 Mục đích giải vấn đề dựa logic hình thức

chứng minh phát biểu sở tiền đề luật suy diễn có

(83)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 83

 Trong nhiều trường hợp, việc giải toán

dựa thuật ngữ dùng để phát biểu khó khăn Người ta thường lựa chọn dạng biểu diễn phù hợp liệu toán, làm cho toán trở nên dễ giải

(84)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 84

 Việc lựa chọn phương pháp biểu diễn thích hợp nhằm:

 Tránh giải trực tiếp toán đặt ban đầu khó khăn liên

quan tới kích cỡ, trọng số, tầm quan trọng chi phí xử lý liệu toán

 Bỏ bớt thông tin thừa không quan trọng toán  Tận dụng phương pháp giải có tốn nhận

được sau phát biểu lại

 Cách phát biểu cho phép thể vài tương quan

nào yếu tố tốn nhằm thu gọn q trình giải

 Sau giải xong toán theo cách biểu diễn mới,

cần phải diễn giải lời giải nhận cho sát với toán thực tế chứng minh cách diễn giải thực giải toán đặt

(85)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 85

Để giải vấn đề máy tính, trước hết ta phải tìm cách biểu diễn lại vấn đề cho máy tính “hiểu” Điều có nghĩa ta phải đưa liệu tốn dạng xử lý máy tính

 Cách biểu diễn dùng bảng: Sử dụng bảng để biểu diễn

hình trạng tốn

Biểu diễn vấn đề máy tính

1

5

9 10 11 12

(86)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 86

 Cách biểu diễn dùng xâu ký hiệu

Biểu diễn vấn đề máy tính

TgT

ToĐ VĐ

(87)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 87

 Cách biểu diễn dùng cấu trúc danh sách

Biểu diễn vấn đề máy tính

a ac b

2

2

/

* a

- b

(88)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 88

Có hai cách tiếp cận giải vấn đề:

 Tổng quát hoá để đưa mơ hình tốn

 Cụ thể hoá sở sử dụng tri thức đặc tả Trên

thực tế, có tốn khơng thể giải nhờ sử dụng mơ hình, lời giải nhận cịn xa với lời giải thực tế Trong trường hợp đó, người ta áp dụng cách tiếp cận sử dụng tri thức đặc tả Các phương pháp biểu diễn tri thức bao gồm: Frame, logic hình thức, mạng ngữ nghĩa hệ sản xuất

(89)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 89

NỘI DUNG

 BIỂU DIỄN VÀ GIẢI QUYẾT VẤN ĐỀ TRONG KHOA HỌC TTNT

 CÁC PHƯƠNG PHÁP BIỂU DIỄN VẤN ĐỀ

(90)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 90 CÁC PHƯƠNG PHÁP GIẢI QUYẾT

VẤN ĐỀ

 Biểu diễn vấn đề không gian trạng thái chiến lược tìm kiếm đồ thị

 Qui toán toán chiến lược tìm kiếm đồ thị Và/Hoặc

 Biểu diễn vấn đề nhờ logic hình thức phương pháp suy diễn logic

(91)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 91

Biểu diễn vấn đề KGTT

và chiến lược tìm kiếm đồ thị

 Các mô tả trạng thái toán tử

 Biểu diễn vấn đề dạng đồ thị

(92)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 92 Các mơ tả trạng thái tốn tử

 Khi giải tốn khơng gian trạng thái, cần phải xác định dạng mô tả trạng thái toán

 VD: Bài toán n2 - số (n = 4)

 Mỗi trạng thái bảng có kích thước x 4

 Toán tử: phép biến đổi từ trạng thái sang trạng thái

(93)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 93

 VD: Biến đổi biểu thức đại số:

(A x B + C x D)/(B * C) thành A/C + D/B

 Mỗi trạng thái biểu thức đại số.

 Toán tử: Biến đổi từ biểu thức sang biểu thức

khác

 Dùng cấu trúc nhị phân.

 Dùng ký pháp nghịch đảo Ba lan (Hậu tố, tiền tố)

 Các tốn tử khơng gian trạng thái phép biến đổi đưa trạng thái trạng thái khác

(94)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 94

 Có hai cách biểu diễn tốn tử:

 Cách 1: Sử dụng kí hiệu hàm, có nghĩa xem tốn tử

các hàm xác định tập trạng thái nhận giá trị tập

 VD: Với tốn trị chơi 15 số, ta có loại tốn tử mơ tả

được dạng kí hiệu hàm sau

dl: Dịch ô trống lên trên; dx: Dịch ô trống xuống dưới; df: Dịch ô trống sang phải; dt: Dịch ô trống sang trái;

dl(A) = B, Giả sử A = (aij) B = (bij) ô trống A vị trí (i0, j0)) Khi ứng với phép dịch trống lên ta viết B = dl(A) = (bij) với aij (i, j) nÕu i0 =

bij = nÕu (i, j)  (i0, j0) vµ (i, j)  (i0-1, j0), i0>1 ai0j0 nÕu (i, j) = (i0-1, j0) vµ i0>1

ai0-1j0 nÕu (i, j) = (i0, j0) vµ i0>1

(95)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 95

 Cách 2: Sử dụng quy tắc sản xuất (Production Rules)

si  sj Nghĩa là, xuất trạng thái si thì

dẫn tới trạng thái sj

 VD: Với tốn trị chơi 15 số, ta có sản xuất sau:

11 15 11 15

1 12 12

7 8

13 10 14 13 10 14

(96)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 96

 Các thủ tục tìm kiếm khơng gian trạng thái thường bao gồm trình xây dựng trạng thái xuất phát từ trạng thái cũ kiểm tra xem trạng thái có thoả mãn điều kiện áp dụng cho trạng thái đích khơng

(97)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 97

 Kết luận: Để biểu diễn tốn khơng gian trạng thái cần phải xác định:

 Dạng mô tả trạng thái.

 Tập toán tử tác động chúng lên mô tả

trạng thái

 Các trạng thái đầu, trạng thái đích

(98)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 98

Một cách hình thức ta phát biểu tốn sau:

Bài toán P1: Cho trạng thái đầu s0, tập trạng thái ĐICH

Hãy tìm dãy trạng thái s0, s1, s2, , sn cho sn  ĐICH,

thoả mãn số điều kiện với i (i=0, ,n-1), từ trạng thái si áp dụng tốn tử biến đổi để nhận trạng thái si+1

(i oi  O cho oi(si) = si+1

hoặc

i pi  P cho si  si+1 )

(99)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 99

Hay dạng khác:

Bài toán P2: Cho trạng thái đầu s0, tập trạng thái đích ĐICH

- Tìm dãy tốn tử o1, , on cho

on(on-1( .(o1(s0) .)) = sn  ĐICH

- Tìm dãy sản xuất p1, p2, , pn cho

n p

p

p s s s

s n        

 1 2

0  ĐICH

(100)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 100 Biểu diễn vấn đề dạng đồ thị

 Đồ thò: là một cấu trúc G = (N,A) bao gồm:

 Tập các nút N

 Tập các cung A nối các cặp nút, có thể có nhiều cung

trên cặp nút

A B D C E B C A D E

Nút: {A,B,C,D,E}

Cung: {(a,d), (a,b), (a,c), (b,c), (c,d), (c,e), (d,e)},e),

(101)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 101

Đồ thị có hướng: là đồ thị với các cung có định

hướng, nghĩa cặp nút có quan hệ thứ tự trước sau

theo từng cung Cung (Ni,Nj) có hướng từ Ni đến Nj, Khi Ni nút cha Nj nút

Nút : là nút khơng có nút con

Đường đi: là chuoãi có thứ tự các nút mà nút kế tiếp tồn cung

Đồ thò có gốc: Trên đồ thị tồn tại nút X sao cho tất đường đi qua nút X gốc

(102)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 102 Biểu diễn vấn đề dạng đồ thị

Không gian trạng thái là một hệ thống gồm thành phần

[N,A,S,DICH] Trong đó:

 N là tập nút của đ ồ thò Moãi nút là một trạng thái của quá trình giải

quyết vấn đề

 A: Tập các cung nối giưõa các nút N Moãi cung là một bước (toán

tử) giải vấn đ ề Cung có hướng

 S: Tập các trạng thái bắt đầu S khác roãng

 DICH: Tập các trạng thái đích DICH khác roãng

Lời giải: Là một đường đi đi từ một nút bắt đầu Si đến một nút

kết thúc DICHj

 Mục tiêu của các giải thuật tìm kiếm là tìm ra một lời giải và/hay

(103)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 103 Các phương pháp tìm kiếm KGTT

 Tìm kiếm theo chiều rộng (Breath – first search)  Tìm kiếm theo chiều sâu (Depth –first search )  Tìm kiếm sâu dần (Depthwise search)

 Tìm kiếm cực tiểu hoá giá thành (Cost minimization search)

 Tìm kiếm cực tiểu hố giá thành với tri thức bổ sung

(104)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 104 Các phương pháp tìm kiếm KGTT:

Breath First Search (TKR)

Vào: Cây G = (N, A), đỉnh gốc n0, tập ĐICH  N

Ra : Đường p từ đỉnh n0 tới đỉnh n*  ĐICH

Phương pháp:

/* Sử dụng hai danh sách kiểu FIFO MO ĐONG, MO danh sách chứa đỉnh chưa xét ĐONG danh sách chứa đỉnh xét */

{MO  n0 /* Cho đỉnh n0 vào cuối danh sách MO */

While MO  

{n  get(MO) /* Lấy đỉnh n đầu danh sách MO */

ĐONG  ĐONG  {n}

if B(n)   then /* B(n) tập nút nút n

{MO  MO  B(n) /* Cho B(n) vào cuối danh sách MO */

if B(n)  ĐICH   then

{exit(thành công); Xây dựng đường p} }

}

(105)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 105 Các phương pháp tìm kiếm KGTT:

Breath First Search (TKR)

 VD: Áp dụng thuật tốn tìm kiếm theo chiều rộng với

sau, tập ĐICH = {r, p}

(106)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 106 Các phương pháp tìm kiếm KGTT:

Breath First Search (TKR)

(107)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 107 Các phương pháp tìm kiếm KGTT:

Depth First Search (TKS)

Vào: Cây G = (N, A), đỉnh gốc n0, tập ĐICH  N

Ra : Đường p từ đỉnh n0 tới đỉnh n*  ĐICH

Phương pháp:

/* Sử dụng danh sách MO kiểu LIFO danh sách ĐONG kiểu FIFO */ {MO  n0 /* Cho đỉnh n0 vào đầu danh sách MO */

While MO  

{n  get(MO) /* Lấy đỉnh n đầu danh sách MO */

ĐONG  ĐONG  {n}

if B(n)   then

{MO  MO  B(n) /* Cho B(n) vào đầu danh sách MO */

if B(n)  ĐICH   then

{exit(thành công); Xây dựng đường p} }

}

(108)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 108 Các phương pháp tìm kiếm KGTT:

Depth First Search (TKS)

 VD: Áp dụng thuật tốn tìm kiếm theo chiều sâu với sau, tập ĐICH = {o, p}

Thứ tự duyệt: a b d h

Đường đi:

(109)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 109 Các phương pháp tìm kiếm KGTT:

Depth First Search (TKS)

 Nếu G hữu hạn thủ tục tìm kiếm theo chiều sâu dừng cho kết đường từ n0 đến tập ĐICH

(110)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 110 Các phương pháp tìm kiếm KGTT:

Depth First Search (TKS)

 Khắc phục bằng cách giới hạn đ ộ sâu của giải thuật  Chiến lược giới hạn:

 Cố đònh một đ ộ sâu D

 Theo cấu hình tài ngun của máy tính

 Tri thức trong việc đònh giới hạn đ ộ sâu

 Giới hạn đ ộ sâu => co hẹp không gian trạng thái =>

(111)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 111 Các phương pháp tìm kiếm KGTT: Depthwise search (TKSD)

 Tìm kiếm theo chiều sâu lớp đỉnh tuỳ thuộc vào mức sâu k cho ban đầu

 Cách thực hiện: Ta ký hiệu độ sâu DS, ban đầu gán DS = k, duyệt đỉnh phạm vi độ sâu  DS, chưa tìm đường tăng

DS = DS + k tiếp tục duyệt

 Độ sâu d(n) đỉnh n định nghĩa:

 d(n0) =

(112)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 112 Các phương pháp tìm kiếm KGTT: Depthwise search (TKSD)

Vào: Cây G = (N, A), đỉnh gốc n0, tập ĐICH  N, mức sâu k

Ra: Đường p từ đỉnh n0 tới đỉnh n*  ĐICH

Phương pháp: /* Sử dụng ds MO kiểu lai LIFO FIFO, ds DONG kiểu FIFO */ {MO  n0; DS = k;

While MO  

{n  get(MO) /* Lấy đỉnh n đầu danh sách MO */

DONG  ĐONG  {n}

if B(n)   then

{if B(n)  ĐICH   then {exit(thành công); Xây dựng đường p}

case d(n) {

[0 DS - 1]: đặt B(n) vào đầu MO DS: đặt B(n) vào cuối MO

DS + 1: {DS = DS + k;

if k =1 then đặt B(n) vào cuối MO else đặt B(n) vào đầu MO

(113)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 113 Các phương pháp tìm kiếm KGTT: Depthwise search (TKSD)

 VD: Áp dụng thuật toán TKSD với sau:

Tập ĐICH = {r, p}, độ sâu k =

 Thứ tự duyệt:

a b d e c f g h n o k l

(114)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 114 Các phương pháp tìm kiếm KGTT: Depthwise search (TKSD)

 Khi k =1 thủ tục TKSD trở thành thủ tục TKR

 Khi k>=2 thủ tục TKSD tìm theo chiều sâu đỉnh có độ sâu nằm khoảng từ tk + đến (t + 1)k với t lần tăng lên

 Nếu G tồn đường từ đỉnh n0 đến ĐICH thủ tục TKSD dừng cho kết đường có độ dài khác đường ngắn không k - Nếu không tồn đường

(115)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 115 Các phương pháp tìm kiếm KGTT: Cost minimization search (TKCT)

 Giả sử C: AR+ hàm giá (cost) tương ứng cung a 

A với giá chi phí c(a)R+ Với đường p G, p =

n1, , nk ta có:

Xác định p: n0nk  DICH cho: c(p) 

Kí hiệu g(n) giá đường cực tiểu từ n0 đến n Khi đó, tốn phát biểu thành: Tìm đường p0 từ đỉnh gốc n0 đến đỉnh nk DICH cho g(nk)=min{g(n)|

n DICH}

(116)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 116

Vào: Cây G = (N, A), đỉnh gốc n0, tập ĐICH  N, c: A  R+

Ra: Đường p từ đỉnh n0 tới đỉnh n*  ĐICH cho c(p)

Phương pháp: /* Sử dụng danh sách MO DONG */

{MO  n0; g0(n0)=0; /*g0(n): giá đường từ n0 đến n*/

While MO  

{n  get(MO) /* Lấy đỉnh n  MO cho g0(n) */

ĐONG  ĐONG  {n}

if n  ĐICH then exit(thành công)

if B(n)   then

{MO  B(n)  MO

for each m  B(n)

g0(m) = g0(n) + c(n, m)}

} write(không thành công); }

(117)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 117

 VD: Áp dụng thuật toán TKCT sau Tập ĐICH = {n, p}

Thứ tự duyệt:

a c b f l m d g h p Đường đi:

a c f l p Có giá: 10

(118)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 118

 Thủ tục TKR trường hợp riêng thuật toán TKCT c(a) =1 a A

 Thủ tục TKS trường hợp riêng thủ tục TKCT lấy tiêu chuẩn chọn n  MO d(n) max

thay cho điều kiện g0(n)

 Nếu G tồn đường p từ n0 đến ĐICH thủ tục TKCT dừng cho kết đường p cho c(p) Hơn nữa, thủ tục TKCT tối ưu theo nghĩa số đỉnh cho vào tập ĐONG nhỏ

nhất so với thủ tục tìm kiếm dựa vào giá cung

(119)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 119

Các Heuristic áp dụng cho thủ tục TKCT :

 Chỉ xét đỉnh B(n) có triển vọng đạt tới tập ĐICH

 Sắp xếp đỉnh MO trước lần xử lý nhờ hàm đánh giá

(120)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 120

 “Heuristics quy tắc, phương pháp, chiến lược, mẹo

giải hay phương cách nhằm làm giảm khối lượng tìm kiếm lời giải khơng gian tốn cực lớn.”

 Thuật giải Heuristic mở rộng khái niệm thuật

tốn Nó thể cách giải tốn với đặc tính sau:

 Thường tìm lời giải tốt (nhưng khơng lời giải tốt

nhất)

 Giải toán theo thuật giải Heuristic thường dễ dàng nhanh

chóng đưa kết so với giải thuật tối ưu, chi phí thấp

 Thuật giải Heuristic thường thể tự nhiên, gần gũi với cách

suy nghĩ hành động người

(121)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 121

 Có nhiều phương pháp để xây dựng thuật giải Heuristic, người ta thường dựa vào số nguyên lý sau:

Nguyên lý vét cạn thông minh: Trong tốn tìm

kiếm đó, khơng gian tìm kiếm lớn, ta thường tìm cách giới hạn lại khơng gian tìm kiếm thực kiểu dị tìm đặc biệt dựa vào đặc thù tốn để

nhanh chóng tìm mục tiêu

Nguyên lý tham lam (Greedy): Lấy tiêu chuẩn tối ưu

(trên phạm vi tồn cục) tốn để làm tiêu chuẩn chọn lựa hành động cho phạm vi cục bước (hay giai đoạn) trình tìm kiếm lời giải

(122)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 122

Nguyên lý thứ tự: Thực hành động dựa

cấu trúc thứ tự hợp lý không gian khảo sát nhằm nhanh chóng đạt lời giải tốt

Hàm Heuristic: Trong việc xây dựng thuật giải

Heuristic, người ta thường dùng hàm Heuristic Đó hàm đánh giá thô, giá trị hàm phụ thuộc vào

trạng thái toán bước giải Nhờ giá trị này, ta chọn cách hành động tương đối

hợp lý bước thuật giải

(123)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 123

 Thủ tục TKCT thuật giải tìm kiếm đường tối

ưu xét tới thông tin đỉnh, cung giá thành chúng

 Trong nhiều trường hợp việc tìm kiếm đường định hướng rõ thêm sử dụng tri thức thu dựa hiểu biết tình vấn đề bước

(124)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 124

 Các Heuristic việc tìm kiếm cực tiểu hoá giá thành:

 Chọn toán tử xây dựng cung B cho loại bớt đỉnh

khơng liên quan đến tốn có triển vọng nằm đường tối ưu

 Sử dụng thông tin bổ sung nhằm xây dựng tập MO cách lấy

đỉnh tập MO Muốn vậy, ta phải đưa độ đo, tiêu chuẩn để tìm đỉnh có triển vọng, thường gọi hàm đánh giá Một số phương pháp xây dựng hàm đánh giá:

- Dựa vào xác suất đỉnh đường tối ưu

- Dựa vào khoảng cách, sai khác đỉnh với tập đỉnh đích

(125)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 125 Vào: Đồ thị G=(N,A) tuỳ ý, đỉnh gốc n0 tập đỉnh đích ĐICH

Hàm f0: NR+ /*f0 là hàm ước lượng heuristic đó*/

Ra: Đường p từ đỉnh n0 tới đỉnh n*  ĐICH

Phương pháp:

{ MO{n0}; Tính f0(n0) ;

While MO  

{n  get(MO); /* Lấy n MO cho f0 (n) min */

ĐONG  ĐONG  {n};

if n ĐICH then exit(“ thành công”);

if B(n)   then

for each m  B(n)

if m ĐONG  MO then

{ MO MO  {m}; Tính f0(m)}

else if f0

cũ(m) >fmới(m) then MO MO  {m}};

Write(“ không thành công”) }

(126)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 126

 f0=g0+h0 , đó: h0(n) tri thức bổ sung

triển vọng đỉnh n nằm đường tối ưu  f0(n) ước lượng hàm:

f(n)=g(n)+h(n) , đó:

g(n) giá đường tối ưu từ n0 tới n

h(n) giá đường tối ưu từ n tới tập ĐICH  f0(n) xấp xỉ giá đường tối ưu từ n

0 tới tập

ĐICH qua đỉnh n

 Thủ tục TKCT trường hợp riêng thủ tục TKCT* lấy h0=0

(127)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 127

 Kết 1: (Tính đắn)

Nếu đỉnh nN ta có  h0(n)  h(n) tồn >0 cho aA c(a) thủ tục TKCT* dừng cho

đường p: n0n*ĐICH cho g(n*)

 Kết 2: (Tính tối ưu)

Giả sử thủ tục TKCT*

i sử dụng hàm đánh giá f0i(n)=g0(n)

+h0

i(n), i=1,2 giả sử h2 thoả mãn điều kiện h02(m) – h02(n)

 h(m, n), (h(m,n) độ dài đường ngắn từ m đến n)

và n  h01(n)  h02(n)  h(n) số nút đưa vào tập

DONG thuật toán TKCT2* nhỏ số nút

đối với thuật toán TKCT1*

(128)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 128

 VD: Xét toán tháp Hà Nội với n=2, lấy hàm f0=g0+h0, h0(n) thơng tin nói thêm mối

liên hệ n trạng thái đích Chẳng hạn: h0=2 cọc C chưa có đĩa nào,

h0=1 cọc C có đĩa to,

h0=3 cọc C có đĩa nhỏ,

h0=0 cọc C có hai đĩa

(129)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 129 Các phương pháp tìm kiếm KGTT: Heuristic search: TKCT*

g0 =0

g0 =1

g0 =2

g0 =3

h0 = 2, f0=2

h0 = 3,

f0=4 h

0 = 2, f0=3

h0 = f0=3

h0 =

f0=5 h

0 =

f0=4

h0 =

f0=5 h

0 =

f0=3 h

0 =

(130)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 130

Qui toán tốn chiến lược tìm kiếm đồ thị Và/Hoặc

 Qui toán toán con

 Thể dạng đồ thị VÀ/HOẶC

(131)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 131 Qui toán toán con

 Ý tưởng xuất phát từ toán đặt ra, tách toán thành toán toán ban đầu trở thành toán sơ cấp

 Bài toán sơ cấp hiểu toán mà lời giải chúng nhận

VD: Với tốn n2 – số, tốn sơ cấp

(132)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 132 Thể dạng đồ thị VÀ/HOẶC

 Đồ thị (định hướng) VÀ/HOẶC cặp G = (N,A), cho n  N, tất đỉnh m B(n)

thuộc vào hai kiểu: đỉnh VÀ, đỉnh HOẶC

Khi đỉnh m n đỉnh VÀ cung (n,m) (m B(n)) nối ngoặc lớn

(133)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 133

Quy bµi toán toán Đồ thị và/hoặc

Bài toán

Toán tử quy toán toán Bài toán ban đầu

Các toán sơ cấp

Cỏc bi toỏn ph thuc Các toán độc lập Giải toán ban đầu

§Ønh Cung

Đỉnh đầu (đỉnh gốc) Đỉnh cui, nh kt thỳc nh v

Đỉnh

Tìm đồ thị lời giải

(134)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 134

 Đỉnh giải được:

 Các đỉnh kết thúc (cuối) đỉnh giải được.

 Nếu đỉnh n có đỉnh đỉnh VÀ đỉnh giải

và tất đỉnh giải

 Nếu đỉnh n có đỉnh đỉnh HOẶC đỉnh giải

khi tồn đỉnh giải

 Đỉnh khơng giải được:

 Nếu đỉnh n không đỉnh kết thúc khơng có đỉnh

là đỉnh không giải

 Nếu đỉnh n khơng đỉnh kết thúc có đỉnh đỉnh VÀ

thì đỉnh khơng giải tồn đỉnh không giải

 Nếu đỉnh n không đỉnh kết thúc mà có đỉnh đỉnh

HOẶC đỉnh khơng giải tất đỉnh không giải

(135)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 135

 Đồ thị lời giải: Là đồ thị đồ thị VÀ/HOẶC chứa đỉnh giải đỉnh đầu

 Nhận xét:

 Nếu đồ thị VÀ/HOẶC khơng có đỉnh VÀ đồ

thị VÀ/HOẶC trở thành đồ thị thơng thường đồ thị lời giải suy biến thành đường từ đỉnh đầu tới đỉnh kết thúc

 Mục đích q trình tìm kiếm đồ thị VÀ/HOẶC

là ta phải xác định xem đỉnh đầu có giải hay khơng Trong trường hợp giải ta phải đưa lời giải thoả mãn điều kiện

(136)(137)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 137

Thủ tục gđ(nN)

{ if nhan(n)= “kxđ” then if kt(n) then nhan(n)="gđ"

else if n MO ĐONG then nhan(n)=”kxđ”

else if kieu(n) then {bien=True;

While B(n)  and bien

{m  get(B(n));

gđ(m);

bien=(nhan(m)=”gđ”)}

if bien then nhan(n)=”gđ” else nhan(n)=”kxđ”} else {bien=false;

repeat {m get(B(n));

gđ(m);

bien=(nhan(m)=”gđ”)}

until bien or B(n)=

if bien then nhan(n)=”gđ” else nhan(n)=”kxđ”}}

(138)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 138

 Thủ tục tìm kiếm theo chiều rộng TKRM  Thủ tục tìm kiếm theo chiều sâu TKSM

(139)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 139

Vào: Cây VÀ/HOẶC G=(N, A) với đỉnh đầu n0, tập đỉnh kết thúc T={ti} N

Ra: Thông báo “không thành công” n0 kgđ, “thành công” n0 gđ đưa lời giải

Phương pháp: /* sử dụng hai danh sách FIFO: MO, ĐONG */

{MO ={n0};

While MO  

{n get(MO); /*Lấy đỉnh n đầu danh sách MO*/

ĐONG{n}  ĐONG;

bool = false;

if B(n)  and bool = false then

{MO MO B(n); /* đưa B(n) vào cuối danh sách MO */

For each m B(n)

{if kt(m) then {nhan=”gđ”; bool=true}} if bool then

{gđ(n0);

if nhan(n0)=”gđ” then exit(“thành công”)

else loại khỏi MO đỉnh có tổ tiên đỉnh giải được}}

else {nhan(n)=”kgđ”; kgđ(n0);

if nhan(n0) = “kgđ” then exit (“không thành công”)

else loại khỏi MO đỉnh có tổ tiên đỉnh không giải được;}}}

(140)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 140

 VD:Áp dụng thuật toán TKRM sau Tập T = {t1,t2,t3,t4}

Thứ tự duyệt: abcdefgijk

Cây lời giải: cung tô đậm

 Nhận xét: Nếu lời giải tồn thủ tục TKRM dừng cho

kết lời giải có độ cao nhỏ

Các phương pháp tìm kiếm đồ thị VÀ/HOẶC: Thủ tục TKRM

a

b c

d e

f g

i j k

A

t1 t2

B C t3

t4

D E

(141)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 141 Các phương pháp tìm kiếm đồ thị

VÀ/HOẶC: Thủ tục TKSM

Vào: Cây VÀ/HOẶC G=(N, A) với đỉnh đầu n0, tập đỉnh kết thúc T={ti} N Giới hạn sâu D

Ra: Thông báo “không thành công” n0 kgđ, “thành công” n0 gđ đưa lời giải

Phương pháp: /* sử dụng hai danh sách FIFO: DONG, LIFO: MO */

{MO ={n0};

While MO  

{n get(MO); /*Lấy đỉnh n đầu danh sách MO*/

ĐONG{n}  ĐONG;

bool = false;

if d(n)<= D and B(n)  and bool = false then

{MO MO B(n); /* đưa B(n) vào đầu danh sách MO */

For each m B(n)

{if kt(m) then {nhan=”gđ”; bool=true}} if bool then

{gđ(n0);

if nhan(n0)=”gđ” then exit(“thành công”)

else loại khỏi MO đỉnh có tổ tiên đỉnh giải được}}

else {nhan(n)=”kgđ”; kgđ(n0);

if nhan(n0) = “kgđ” then exit (“không thành công”)

(142)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 142

 VD: Áp dụng thuật toán TKSM sau

Tập T = {t1,t2,t3,t4}

Các phương pháp tìm kiếm đồ thị VÀ/HOẶC: Thủ tục TKSM

a

b c

d

e

f g

B t1 t2 t3 t4 A C E D Thứ tự duyệt:

abdAfceg

Cây lời giải: cung tô đậm

 Nếu đỉnh kết thúc có độ sâu vượt giới hạn độ sâu D

bị bỏ qua q trình tìm kiếm Do vậy, thực tế tồn lời giải, song thuật toán lại thơng báo khơng thành cơng Để khắc phục tình

(143)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 143

Biểu diễn vấn đề nhờ logic hình thức phương pháp suy diễn logic

 Logic mệnh đề  Logic vị từ

 Chứng minh định lý nhờ logic hình thức

(144)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 144 Logic mệnh đề

 Mệnh đề p phát biểu nhận giá trị (True, 1)

sai (False, 0)

 VD: Phát biểu "1+1=2" có giá trị

Phát biểu "Mọi loại cá sống bờ" có giá trị sai

 Các biểu thức logic mệnh đề xây dựng sở tên

mệnh đề (thường ký hiệu chữ la tinh a,b,p,q, ) phép toán logic theo quy tắc cú pháp định Các phép toán logic bao gồm:

 Hội: (, and, và).  Tuyển: (, or, hoặc).

 Phủ định: (, not, không).  Kéo theo: ().

(145)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 145 Logic mệnh đề

 Giá trị chân lý biểu thức tính dựa theo bảng chân lý:

 Dễ thấy ab  ab

 Mọi biểu thức logic mệnh đề đưa dạng biểu thức tương

đương chứa phép toán , , 

 Các phép tốn ,  có tính giao hoán, kết hợp, phân phối luỹ đẳng

a b ab ab a ab ab

0 0 1

0 1 1

1 0 0

(146)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 146 Logic mệnh đề

 Các phép biến đổi tương đương:

R1 a  b  b  a; a  b  b  a

R2 a  b  b  a

R3 a  a  a; a  a  a

R4 a  (b  c)  (a  b)  c; a  (b  c)  (a  b)  c

R5 a  b  (a  b); a  b  (a b)

R6 a  b  a  b

R7 a  (b  c)  (a  b)  (a  c); a  (b  c)  (a  b)  (a  c)

R8 a  (a  b)  a; a  (a  b)  a

R9 a  a

R10 (a  b)  a  b; (a  b)  a  b

R11 a  a 

R12 a   0; a   1; a   a; a   a

(147)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 147 Logic vị từ

 Biểu diễn vấn đề mệnh đề gặp phải trở ngại ta

không thể can thiệp vào cấu trúc mệnh đề Hay nói cách khác mệnh đề khơng có cấu trúc Điều làm hạn chế nhiều thao tác suy luận Do đó, ngồi phép  , , , , , người ta

đưa vào khái niệm vị từ lượng từ ( - với mọi,  - tồn tại) để tăng

cường tính cấu trúc mệnh đề

 Vị từ p(x, ,y) phát biểu chứa biến x, ,y cho x, ,y

nhận giá trị cụ thể nhận giá trị hoặc sai

 VD: p(x, y, z) phát biểu x.y = z vị từ biến x, y, z

(148)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 148 Logic vị từ

 Lượng từ : x p(x, y, z, .) có nghĩa tồn giá trị

x0 cho p(x0, y, z, .) với y, z,

 Lượng từ : x p(x, y, z, .) có nghĩa với giá trị

x p(x, y, z, .) với y, z,

 Logic vị từ cho phép diễn đạt hầu hết khái niệm

nguyên lý khoa học bản, toán học vật lý

 Hai phạm vi ứng dụng logic hình thức:

(149)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 149 Chứng minh định lý nhờ logic hình thức: Giải thuật Wong.H (Vương Hạo)

 Bài toán: Cho giả thiết dạng biểu thức mệnh đề (vị từ) GT1, GT2, .,

GTm Hãy rút kết luận KL1, KL2, ., KLn

Giải thuật Wong H (Vương Hạo)

Vào: GT1, GT2, ., GTm; KL1, KL2, ., KLn

Ra: Thông báo “thành công” GT1  GT2   GTm  KL1  KL2   KLn

Phương pháp:

{ for i=1 to m {trans(GTi); VT  GTi  VT}

for i=1 to n {trans(KLi);VP  KLi  VP}

P  {(VT, VP)};

while P  

{(VT, VP)  get(P);

if VT  VP =  then

{chuyen(VT, VP); if VT  VP =  then

if not tach(VT, VP) then exit(“không thành công”) else P  {(VT, VP)};}}

(150)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 150

trans(BT): Đưa biểu thức BT biểu thức tương đương mà chứa phép toán

, ,  dạng chuẩn sau:

, lij = pij lij = pij với pij mệnh đề đơn

VD: (a  b)  (c  d) đưa thành: (a  b)  (c  d)

chuyen(VT, VP): chuyển vế GTi KLj dạng phủ định Thay dấu  bên

trong GTi dấu  KLj dấu phẩy

VD: (a  b)  (c  d) biến đổi thành: c, d  a, b

tach(VT, VP): tách VT, VP thành hai danh sách có dấu  GTi

hoặc dấu  KLj Nếu tách thủ tục tach(VT, VP) nhận giá

trị True ngược lại nhận giá trị False

VD: p  q, p  q tách thành p, p  q q, p  q

 Kết quả: Thuật toán Wong.H dừng sau số bước hữu hạn cho thông báo

“thành công” từ GT1, GT2, ., GTmcó thể suy kết luận KL1, KL2, ., KLn

ij n j k i l i 1     ij n j k i l i 1    

(151)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 151  VD: CMR từ a  b  c, b  c  d, a, b suy d

Dạng chuẩn:VT = a  b  c, b  c  d, a, b; VP = d

(152)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 152 Chứng minh định lý nhờ logic hình thức: Thủ tục Robinson

 Thuật giải hoạt động dựa phương pháp chứng minh phản

(153)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 153 Chứng minh định lý nhờ logic hình thức: Thủ tục Robinson

Thủ tục Resolution1 (Dùng cho logic mệnh đề)

Vào: GT1, , GTm; KL1, , KLn

Ra: Thông báo “thành công” GT1 GTmKL1 KLn

Phương pháp:

{ For i=1 to m { Trans(GTi); PGTi;}

For i=1 to n {Trans(KLi); P KLi;} /* P=MĐ1, ,MĐk , k=m+n*/

If mt(P) then exit(“Thành công”); P1=;

While P  P1 and mt(P) {P1=P; hopgiai(P);}

If mt(P) then exit (“Thành công”) else exit (“Không thành công”)}

Procedure mt(P); {mt=false;

for each pP

for each qP and qp if p=q or q=p then return (true)}

Procedure hopgiai(P); {for each pP

(154)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 154 Chứng minh định lý nhờ logic hình thức: Thủ tục Robinson

 VD: CMR từ a  b  c, b  c  d, a, b suy d

Đưa GTi KLj về dạng chuẩn xây dựng P ta có: P ={a  b  c, b  c  d, a, b, d}

Để đơn giản, ta viết xâu P dạng: a  b  c

2 b  c  d

3 a b d

Quá trình hợp giải sau:  b  c Res(1A,3)

7  a  c Res(1B, 4)

8  c  d Res(2A, 4)

9  b   c Res(2C, 5)

10 c Res(3, 7A)

(155)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 155 Chứng minh định lý nhờ logic hình thức: Thủ tục Robinson

 Kết quả: Thuật giải Resolution1 dừng đưa thông báo “thành

công” GT1 GTmKL1 KLn

 Thuật giải Resolution1 mở rộng để giải toán

chứng minh định lý tự động sử dụng logic vị từ Mấu chốt phương pháp hợp giải hai vị từ:

A= P  Q1 Q2  Qk B=P  R1  R2  Rt thành vị từ

C = Q1 Q2  Qk  R1  R2  Rt

 Do vị từ Pi, Qi Rj phụ thuộc biến nên để tạo cặp

đối ngẫu thực P P ta phải thực phép gán

Cách chọn phép gán:

(156)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 156 Chứng minh định lý nhờ logic hình thức: Thủ tục Robinson

Thủ tục Resolution2 (Dùng cho logic vị từ)

Bước 1: Đưa GTi KLj dạng chuẩn: x1x2 .xk

sao cho biến có mặt Pij thuộc vào tập {x1, x2 , .,xk} Muốn ta thực thao tác sau:

1 Khử bỏ dấu kéo theo tương đương nhờ A  B  AB

2 Đưa dấu phủ định vào chừng có thể, nhờ phép biến đổi: · (AB)  AB (AB)  AB

· A  A x A   x A

·   x A  xA

3 Thay tên biến lượng từ có tên biến riêng

4 Khử bỏ lượng từ tồn tại: x P(x) chuyển thành P(a), x y P(x,y) chuyển thành

P(x,g(x)) Hàm g(x) gọi hàm Scholem

5 Chuyển lượng từ  đầu biểu thức, phần biểu thức gọi ma trận

6 Đưa ma trận dạng chuẩn hội nhờ áp dụng A(BC)  (AB) (AC)

7 Loại bỏ lượng từ 

8 Thay liên kết  dấu phẩy, dòng gọi câu

(157)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 157 Chứng minh định lý nhờ logic hình thức: Thủ tục Robinson

 VD: Xét x {P(x)  {y {P(y)P(f(x,y))}   y {Q(x,y)P(y)}}}.

Áp dụng bước để đưa dạng chuẩn sau:

1 x { P(x) {y { P(y)  P(f(x,y))}   y {Q(x,y)  P(y)}}}

2 x { P(x) {y { P(y)  P(f(x,y))}  y {Q(x,y)  P(y)}}}

3 x { P(x) {y { P(y)  P(f(x,y))}   {Q(x, )  P()}}}

4 x { P(x) {y { P(y)  P(f(x,y))}  {Q(x, g(x))  P(g(x))}}}

5 xy { P(x) {{ P(y)  P(f(x,y))}  {Q(x, g(x))  P(g(x))}}}

6 xy{{P(x)P(y)P(f(x,y))}{P(x)Q(x,g(x))}{P(x)P(g(x))}}

7 {P(x)P(y)P(f(x,y))}{P(x)Q(x,g(x))}{P(x)P(g(x))}

8 Tách câu viết thành dòng

P(x)P(y)P(f(x,y)) P(x)Q(x,g(x))

(158)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 158 Chứng minh định lý nhờ logic hình thức: Thủ tục Robinson

Bước 2. Nếu tìm cặp câu P1, P2 phép gán q cho P1q=P2q

thơng báo “Thành cơng” thuật tốn dừng Ngược lại sang bước

Bước 3: Tìm cặp câu P = P0  P1 Pk Q = Q0  Q1  Q2  Qt phép gán q

cho P0q = Q0q Thực hợp giải câu P với câu Q câu R= P1 Pk  Q1  Q2  Q2  Qt bổ sung câu R vào danh sách câu

Bước 4: Nếu xây dựng thêm hợp giải khơng có cặp câu đối ngẫu tốn sai, ngược lại toán giải xong thông báo “Thành công”

Kết quả: Nếu từ GT1 GT2 GTm  KL1  KL2  KLn thủ tục Resolution2

(159)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 159 Chứng minh định lý nhờ logic hình thức: Thủ tục Robinson

 VD: Biết rằng: Ngón tay phận bàn tay, bàn tay phận cánh tay, cánh tay

bộ phận thể CMR: Ngón tay phận thể Đặt vị từ P(x,y): “ x phận y ” Ta có:

P(nt,bt), P(bt,ct), P(ct,cothe)

P(x,y) có tính bắc cầu: P(x,y)  P(y,z)  P(x,z)   P(x,y)  P(y,z)  P(x,z)

CMR P(nt, cothe)

Mỗi câu cho dòng, dòng dấu  thay dấu phấy:

1 P(x,z),  P(x,y), P(y,z)

2 P(nt,bt) P(bt,ct) P(ct,cothe) P(nt, cothe)

6 P(nt,z), P(bt,z) Res(1B,2) q1 = {nt /x, bt /y}

7 P(nt,ct) Res(3,6B) q2 = {ct /z}

8 P(nt,z), P(ct,z) Res(1B,7) q3 = {nt/x, ct/y}

(160)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 160 Chứng minh định lý nhờ logic hình thức: Thủ tục Robinson

 VD: Nếu xem lừa dối người khác kẻ bịp bợm đồng tình

với kẻ bịp bợm bịp bợm, tập thể có người nhút nhát đồng tình với kẻ lừa dối chắn có kẻ bịp bợm tính tình nhút nhát

(161)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 161 Chứng minh định lý nhờ logic hình thức: Thủ tục Robinson

Khi ta có:

1 LD(x), BB(x)

2 ĐT(x,y), BB(y), BB(x)

3 NN(a) LD(b) ĐT(a,b)

6 BB(x), NN(x)

7 BB(b) Res(1A, 4), q1 ={b/x}

8 BB(b), BB(a)Res(2A, 5), q2 ={a/x, b/y}

9 BB(a) Res(3, 6B), q3 ={a/x}

10 NN(b) Res(6A, 7), q4 ={b/x}

11 BB(b) Res(8B, 9),

(162)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 162 Áp dụng phép tính vị từ

giải vấn đề

 Phần nghiên cứu việc xác định phép gán trị cho biến để từ

GT1 GTm suy KL1 KLn

Có hai cách giải quyết:

 Lưu lại vết phép gán giá trị nhận đưa đến mâu thuẫn.

Ta đưa vào khái niệm hợp phép gán Giả sử ,  hai phép gán trị, hợp

chúng kí hiệu o cho biểu thức P ta có: Po=(P)

 VD: Giả sử Mai Dương thân Đi đâu Mai Dương có Hơn

nữa ta biết Mai thư viện Hỏi Dương đâu? Ta đưa vào vị từ: P(x,y): x vị trí y

Khi đó, ta có:

x P(Mai, x)P(Dương, x)

P(Mai, Thư viện)

(163)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 163 Áp dụng phép tính vị từ

(164)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 164

 Cải biên đồ thị lời giải

Bên cạnh biểu thức phủ định kết luận KLj cần chứng minh ta thêm vào phủ định (tức KLj) giữ nguyên phép hợp giải giống đồ thị hợp giải

(165)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 165

Một số phương pháp giải vấn đề khác

 Phương pháp tạo - kiểm tra  Phương pháp leo đồi

(166)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 166

(167)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 167

NỘI DUNG

 GIỚI THIỆU

 CẤU TRÚC CHƯƠNG TRÌNH  ĐỐI TƯỢNG DỮ LIỆU

 CÁC KIỂU DỮ LIỆU VÀ CÁC PHÉP TOÁN  CÁC BƯỚC XÂY DỰNG CHƯƠNG TRÌNH  CẤU TRÚC DANH SÁCH

(168)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 168

GIỚI THIỆU

 Prolog ngơn ngữ lập trình dùng cho tính tốn ký hiệu

(169)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 169

GIỚI THIỆU

 Cho quan hệ gia đình qua gia phả

 Node : đối tượng  Cung : quan hệ  Đặt tên quan hệ :

chame

 chame(X,Y) có nghĩa X

là cha/mẹ của Y

minh

hoàng

mai

tâm

lan

(170)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 170

GIỚI THIỆU

 Thể Prolog

chame(minh, hoàng) chame(mai, lan)

chame(mai, hoàng) chame(hoàng, lê) chame(hồng, tâm) chame(tâm, hạnh)

 Có mệnh đề (clause)

minh

hoàng

mai

tâm

lan

(171)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 171

GIỚI THIỆU

 Làm với đoạn chương trình ?

 Hỏi câu hỏi.

 Cho phép hỏi quan hệ thiết lập

chương trình

 Loại : Có hay khơng ?

 hồng có phải là cha/mẹ của tâm khơng ?  lan có phải là cha/mẹ của hồng khơng ?

 Loại : Xác định (tìm tất cả)

Ai cha/mẹ hạnh ?  Ai mai ?

(172)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 172

GIỚI THIỆU

 Loại : Có hay khơng ?

 hồng có phải là cha/mẹ của tâm khơng ?

 ?- chame(hồng, tâm).

 lan có phải là cha/mẹ của hồng khơng ?

 ?- chame(lan, hoàng).

 Loại : Xác định.

Ai cha/mẹ hạnh ?

 ?-chame(X, hạnh).

Ai mai ?

 ?-chame(mai, X).

Xác định tất cặp cha/mẹ ?

(173)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 173

 Các đối tượng quan hệ : đối tượng cụ

thể đối tượng chung

hoàng, tâm chame(hoàng, tâm) : đối tượng cụ thể,

gọi atom (nguyên tố)

X chame(X, hạnh) X, Y trong chame(X, Y) :

đối tượng chung, gọi variable (biến)

 Biến bắt đầu chữ IN HOA.

 Nguyên tố bắt đầu chữ thường.

(174)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 174

 Mở rộng câu hỏi:

 Ai ông/bà hạnh ?

 Giải quyết:

 Giả sử X kết cần tìm.

 Khi đó, X cha/mẹ Y Y cha/mẹ hạnh.

 Vậy : cần tìm X, Y thoả :

 chame (X,Y) and chame(Y, hạnh)

 Thể Prolog :

 ?-chame(X, Y), chame(Y, hạnh)

 Tương tự : Ai cháu của mai ?

(175)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 175

 Chương trình bao gồm mệnh đề (clause), kết thúc dấu chấm (.)

 Tham số quan hệ : đối tượng biết (nguyên tố, atom) đối tượng chung (biến,

variable)

 Biến bắt đầu chữ in hoa.

 Các câu hỏi có nhiều mục tiêu (goal)

 Các câu hỏi có dạng (1): có/khơng (thoả hay khơng thoả) ; (2) tìm tất (nếu thoả)

(176)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 176

 Với đoạn chương trình bên

cạnh, trả lời :

 ?-chame(hoàng,X).  ?-chame(X, lan).

 ?-chame(minh, X), chame(X,

tâm)

 ?-chame(minh,X),

chame(X,Y), chame(Y, hạnh)

 Viết dạng Prolog câu hỏi

sau:

 Ai cha/mẹ tâm ?  tâm có khơng ?  hạnh có khơng ?  Ai ông/bà lê ?

 Đoạn chương trình:

(177)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 177

 Bổ sung quan hệ : nam, nu.

 Ví dụ :

 nam(minh).  nam(hồng).  nu(lan).

 nu(mai). 

 Quan hệ nam, nu quan hệ (Chỉ thuộc tính đối tượng)

 Quan hệ chame quan hệ hai (Chỉ mối liên hệ đối tượng)

(178)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 178

 Bổ sung thêm quan hệ con(X,Y) (X Y) (Quan hệ ngược quan hệ chame)

 Ta biết được

Với X, Y

Y X X cha/mẹ Y

 Có thể định nghĩa quan hệ con dựa quan hệ

chame

 con(Y,X) :- chame(X,Y).

 Mệnh đề gọi quy tắc (rule).

(179)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 179

 Quy tắc đúng điều kiện thoả.  1 quy tắc có phần :

 Phần điều kiện (hay thân quy tắc (body))  Phần kết luận (hay đầu quy tắc (head))

 Ví dụ :

 con(Y,X) :- chame(X,Y).

Kết luận Điều kiện

(180)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 180

 Giả sử có câu hỏi : ?-con(tâm, hoàng)

 Prolog giải ?

 1) Tìm kiếm kiện con(tâm, hồng) ?

 (Khơng có)

 2) Áp dụng quy tắc con(X,Y).

 Khởi tạo X = tâm, Y = hoàng.

 Sau khởi tạo, ta có quy tắc đặc biệt :

 con(tâm, hồng):- chame(hoàng, tâm)

 Phần điều kiện trở thành chame(hoàng,tâm).

 Nếu phần điều kiện thoả phần kết luận đúng.

chame(hoàng, tâm) kiện nên kết luận con(tâm,

hồng)

(181)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 181

 Bổ sung quan hệ : cha,

me, chiemgai, ongba  Quan hệ cha

Với X, Y

X cha Y X cha/mẹ Y X thuộc phái nam

 cha(X,Y) :- chame(X,Y), nam(X)

X

Y chame

nam

cha

(182)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 182

 Chương trình Prolog mở rộng cách thêm mệnh đề

mới

 Mệnh đề gồm phần đầu (head) phần thân (body) Dấu ,

phần thân phép

 Phân loại mệnh đề : kiện, quy tắc, câu hỏi  Sự kiện

Quy tắc điều kiện thoả.  Người sử dụng hỏi chương trình qua câu hỏi.

 Sự kiện gồm phần đầu Câu hỏi có phần thân Quy tắc có

phần đầu lẫn phần thân

 Biến thay đối tượng cụ thể Ta nói biến

khởi tạo

(183)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 183

CẤU TRÚC CHƯƠNG TRÌNH

 Chương trình Prolog thường gồm phần :

domains

predicates

clauses

goal

(184)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 184

 domains : phần định nghĩa kiểu liệu

 predicates : phần khai báo quan hệ (vị từ)

 clauses : phần thể mệnh đề (có thể) vị từ  goal : đích cần đạt chương trình

 goal viết chương trình gọi internal goal.

 goal thực lúc thực thi (cửa sổ Run) gọi external goal.

 Các ghi Prolog nằm cặp /* */ sau dấu

%

 Trong SWI-Prolog, người sử dụng không cần khai báo kiểu

dữ liệu, cấu trúc chương trình khơng cần từ khóa

(185)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 185

ĐỐI TƯỢNG DỮ LIỆU

 Gồm loại :

 Nguyên tố (atoms)

 Số (numbers)

 Biến (variables)

 Cấu trúc (structures)

Đối tượng dữ liệu

Đối tượng bản Cấu trúc

Hằng số Biến

(186)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 186

 Là chuỗi ký tự

 Chữ hoa từ A đến Z

 Chữ thường từ a đến z

 Chữ số 0, ,9

 Ký tự đặc biệt : + - * / < > = : & _ ~

 Dựa quy tắc

 Chuỗi chữ cái, chữ số, dấu _ ,bắt đầu bằng chữ

thường (VD : anna, x25, x y, alpha_beta, )

 Chuỗi ký tự đặc biệt (VD : < -> , === > , )

 Chuỗi ký tự nằm cặp dấu ‘ ’ (VD : ‘Hoàng’,

‘Hoa’, )

(187)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 187

 Gồm số nguyên số thực  Ví dụ :

Số nguyên : -3, -100, 1, ,2, Số thực : 1.25, -3.25,

 Số thực sử dụng lập trình Prolog

(188)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 188

 Biến

 Chuỗi chữ cái, chữ số dấu _, bắt đầu bằng

chữ viết HOA dấu _.

 Ví dụ : X, Result, Object2, _23

 Biến vô danh

 Ký hiệu : _

 Nếu biến xuất lần, không cần đặt tên Sử

dụng biến vơ danh

 Ví dụ :

haschild(X) :- parent(X,Y) %Biến Y xuất lần haschild(X) :- parent(X,_) %Thay biến vô danh

(189)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 189

ĐỐI TƯỢNG DỮ LIỆU – Cấu trúc

 Các đối tượng có nhiều thành phần.  Ví dụ :

 Đối tượng date xem cấu trúc với thành

phần : day, month, year

 Thể Prolog:  Ví dụ :

 date(1,may, 2005) date

(190)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 190

 Term (hạng)

 Tất đối tượng liệu Prolog gọi

term

 Ví dụ : thangnam, ngay(1, thangchin,2005) term.

 So khớp (matching)

 Là thao tác quan trọng term.

 Là q trình kiểm tra xem hai term có khớp hay

không

(191)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 191

 Hai term xem khớp (match) nếu:

 Giống hoàn toàn

 Các biến hai term khởi tạo thành đối

tượng cho sau thay chúng đối tượng chúng giống hồn tồn

 Ví dụ

 Cho hai term date(D,M, 2005) date(D1, thangchin,

Y1) coi khớp

 Ta có : D khởi tạo thành D1, M khởi tạo thành thangchin,

còn Y1 khởi tạo thành 2005

(192)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 192

 Xác định hai term có khớp hay khơng?

 Nếu S, T số chúng khớp chúng

một đối tượng

 Nếu S biến T Nếu chúng khớp S

được khởi tạo thành T ngược lại

 Nếu S T cấu trúc Chúng khớp tất

thành phần S T khớp

(193)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 193

KIỂU DỮ LIỆU & PHÉP TOÁN

KIỂU DỮ LIỆU

 char : ký tự cặp dấu ‘’.

 Ví dụ : ‘a’, ‘b’, ‘1’,

 integer : số nguyên (từ -32768 đến 32767)

 Ví dụ : 200, -521, 322,

 real : số thực

 Ví dụ : 25.18, -78.3e+21, 25.5e-20,

 string : chuỗi dài tối đa 64KB, nằm cặp dấu “”.

 Ví dụ : “chào bạn”, “Prolog”

 symbol : chuỗi dài tối đa 80 ký tự, khơng có dấu “”.

(194)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 194

KIỂU DỮ LIỆU & PHÉP TỐN

PHÉP TỐN TRONG SWI-PROLOG  Phép tốn số học : +, -, *, /, mod, //, **

 Biểu thức số học: xây dựng nhờ vị từ is Number is Expr

Number: đối tượng

Expr: biểu thức số học xây dựng từ phép toán số học, số biến

 Phép so sánh số học : >, <, =:=, >=, <=, =\=

(195)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 195

KIỂU DỮ LIỆU & PHÉP TOÁN

Trong SWI-Prolog, có vị từ xác định kiểu liệu:

 var(V) V biến?

 nonvar(X) X biến?

 atom(A) A nguyên tố?

 integer(I) I số nguyên?

 float(R) R số thực(dấu chấm động)?

 number(N) N số (nguyên thực)?

 atomic(A) A nguyên tố số?

(196)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 196

 Tìm USCLN số a,b >0 Sử dụng thuật toán Euclide

 USCLN X X X.

 USCLN X Y USCLN X – Y Y

X>Y

 USCLN X Y USCLN Y-X X X<Y.

(197)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 197

CÁC BƯỚC XÂY DỰNG

(1) Đặc tả toán

=> xác định mục tiêu cần giải P

(2) Biểu diễn toán dạng chuẩn => P i(jqij)

(198)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 198

(1) uscln(X,Y,Z)  Z USCLN X,Y

(2) uscln(X,Y,Z) 

[(X>Y)  (T=X-Y)  uscln(T,Y,Z)]

 [(X<Y)  (T=Y-X)  uscln(X,T,Z)]  [(Y=X)  (Z=X)].

(3) uscln(X,Y,Z)  (X>Y)  (T=X-Y)  uscln(T,Y,Z)

uscln(X,Y,Z)  (X<Y)  uscln(X,T,Z)  (T=Y-X)

uscln(X,Y,Z)  (Y=X)  (Z=X)

(199)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 199

(4) Chuyển sang Prolog

uscln (X,Y,Z):-X>Y, T is X-Y, uscln(T,Y,Z) uscln (X,Y,Z):-X<Y, T is Y-X, uscln(X,T,Z) uscln (X,Y,Z):-X=Y, Z=X

 Rút gọn chỉnh sửa

uscln (X,X,X)

uscln (X,Y,Z):-X>Y, is(T, X-Y), uscln(T,Y,Z) uscln (X,Y,Z):-X<Y, is(T, Y-X), uscln(X,T,Z)

Thỏa mãn ràng buộc?

(200)

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 200

 Tính giai thừa số N ?

Ngày đăng: 30/04/2021, 06:16

Tài liệu cùng người dùng

Tài liệu liên quan