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ố (nN, 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ố (nN, 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Đ
MĐ
(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á: 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: AR+ 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: n0nk 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: NR+ /*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 nN ta có h0(n) h(n) tồn >0 cho aA c(a) thủ tục TKCT* dừng cho
đường p: n0n*Đ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đ(nN)
{ 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 ab ab
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 ab ab a ab ab
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 GTmKL1 KLn
Phương pháp:
{ For i=1 to m { Trans(GTi); PGTi;}
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 pP
for each qP and qp if p=q or q=p then return (true)}
Procedure hopgiai(P); {for each pP
(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 GTmKL1 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: x1x2 .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 AB
2 Đưa dấu phủ định vào chừng có thể, nhờ phép biến đổi: · (AB) AB (AB) AB
· A A x A x A
· x A xA
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(BC) (AB) (AC)
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 xy { P(x) {{ P(y) P(f(x,y))} {Q(x, g(x)) P(g(x))}}}
6 xy{{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ó: Po=(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
lê 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
lê 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 và 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 và
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 ?