1. Trang chủ
  2. » Công Nghệ Thông Tin

Biểu diễn bài toán, tìm lời giải

35 251 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 283,48 KB

Nội dung

Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải

Trang 1

Ch ươ ng 2: Bi ể u di ễ n bài

toán & tìm l ờ i gi ả i

Trang 2

N ộ i dung

 Bài toán

 Biểu diễn bài toán

 Tìm kiếm

 Các chiến lược ñiều khiển

 Các ñặc trưng của bài toán

 Vấn ñề trong thiết kế CT tìm kiếm

Trang 4

Bài toán

 Giải bài toán bằng cách tìm kiếm, gồm:

 Cấu trúc bài toán: tìm ñường ñi trên ñồ thị

 Biểu diễn bài toán bằng không gian trạng thái

 Giải bài toán = Tìm ra một trạng thái/con ñường trong không gian trạng thái (trạng thái ñầu -> trạng thái ñích)

 Trạng thái

 Biểu diễn một bước nào ñó của bài toán

 Trong trò chơi, như tic-tac-toe, mỗi bàn cờ có thể là trạng thái

X

Trang 5

Bài toán (tt)

 Chuyển trạng thái, luật chuyển

 Biểu diễn cho sự có thể của việc chuyển từ trạng thái nào ñó ñến trạng thái khác

 Ví dụ: trong trò chơi, ñó là luật chơi của game

Trang 6

Bài toán (tt)

 Trạng thái ñầu

 Trạng thái xuất phát của bài toán

 Một bài toán có thể có nhiều trạng thái khởi

ñầu

 Ví dụ: game tic-tac-toe, trạng thái rỗng

X

X O

 Trạng ñích

 Trạng thái mà bài toán ñã ñược giải

 Một bài toán có thể có nhiều trạng thái ñích

 Ví dụ: game tic-tac-toe, trạng thái ñích là:

Trang 8

Bài toán (tt)

 Các vấn ựề khó khăn trong tìm kiếm với các bài toán TTNT

 đặc tả vấn ựề phức tạp

 Không gian tìm kiếm lớn

 đặc tắnh ựối tượng tìm kiếm thay ựổi

 đáp ứng thời gian thực

 Khó khăn về kỹ thuật

 Bộ nhớ và tốc ựộ truy xuất

Trang 9

Bài toán (tt)

State Space

 Không gian tìm kiếm thường là

một graph

 Mục tiêu tìm kiếm là một path

 Phải lưu trữ toàn bộ không gian

trong quá trình tìm kiếm

 Không gian tìm kiếm biến ñộng

liên tục trong quá trình tìm kiếm

 Không gian tìm kiếm là cố

ñịnh trong quá trình tìm

kiếm

 Thuộc tính của một record/nút là cố ñịnh

Trang 10

Bài toán: Tic tac toe

ðồ thị có hướng không

lặp lại (directed acyclic

graph - DAG)

Trang 11

Bài toán: 8 puzzle

Có khả năng xảy ra vòng lặp không?

Trang 12

Chi ế n l ượ c ñ i ề u khi ể n

 Sự cần thiết của chiến lược ñiều khiển

 ðể giải ñược và giải nhanh bài toán

 Các yêu cầu của 1 chiến lược tốt

 Tạo ra sự thay ñổi

 Có tính hệ thống

 Chọn luật radom -> tốt hơn so với trường hợp ñầu, nhưng quá trình giải có thể dài hơn

 -> Cần xây dựng khả năng duyệt một cách có hệ thống

 Hai cách duyệt có hệ thống: Breadth-First_Search –

BrFS và Depth-First-Search (DFS) ñược trình bày sau

Trang 13

 Tạo biến Open.

 ðưa TT bắt ñầu vào Open.

 Lặp: (ñến khi gặp TT ñích) OR (Open trống):

 E = RemoveFirst(Open)

 Với mỗi luật so trùng ñược với E:

 Áp dụng luật ñể sinh TT mới.

 Nếu TT mới là TT ñích thì thoát, trả về TT này.

 Ngược lại: ðưa TT mới vào CUỐI của Open.

Trang 14

remove X which is the leftmost of Open;

IF (X=goal) THEN return (Success) ELSE BEGIN

generate children of X; Put X to Close;

remove children of X which is in Open or Close;

Put remain children on RIGHT end of Open;

END;

END;

Trang 15

Breadth-First-Search (tt)

[ ] [A]

[A B]

[A B C ] [A B C D ] [A B C D E ]

[A ] [B C D ] [C D E F ] [D E F G ] [E F G ] [F G H I ]

A B C D E

0 1 2 3 4 5

Close Open

X Lần lặp

A

Trang 16

 Nếu TT ñầu là ñích -> dừng, trả về success

 Ngược lại: Lặp ñến khi gặp succes hay gặp error

 Phát sinh TT con của TT bắt ñầu, gọi là E Nếu không

có con nào thì báo error

 Gọi DFS với E như TT bắt ñầu

 Nếu success ñược trả về thì trả về success Ngược lại: tiếp tục lặp

Trang 17

remove X which is the leftmost of Open;

If (X=goal) the return (Success) else begin

generate children of X; Put X to Close;

remove children of X which is in Open or Close;

Put remain children on LEFT end of Open;

End;

End;

Trang 18

Depth-First-Search (tt)

[ ] [A]

[A B]

[A B E ] [A B E H ] [A B E H I ] [A B E H I F ] [A B E H I F J ]

[A]

[B C D ] [E F C D ] [H I F C D ] [I F C D ] [F C D ] [J C D ] [C D ]

A B E H I F J

0 1 2 3 4 5 6 7

Close Open

X Lần lặp

A

Trang 19

Breath First vs Depth First

 Breath First: open ñược tổ chức dạng FIFO (Queue)

 Depth First: open ñược tổ chức dạng LIFO (Stack)

 ðặc tính

 Breath First search hiệu quả khi lời giải nằm gần gốc của cây tìm kiếm, tìm nhiều lời giải, luôn tìm ra nghiệm có số cung nhỏ nhất

 Depth First search hiệu quả khi lời giaỉ nằm sâu trong cây tìm kiếm và có một phương án chọn hướng ñi chính xác

 Kết quả

 Breath First search chắc chắn tìm ra kết quả nếu có

Trang 20

Depth first search có gi ớ i h ạ n

 Depth first search có khả năng lặp vô tận do các trạng thái con sinh ra liên tục ðộ sâu tăng vô tận

 Khắc phục bằng cách giới hạn ñộ sâu của giải thuật

 Sâu bao nhiêu thì vừa?

 Chiến lược giới hạn:

 Cố ñịnh một ñộ sâu MAX, như các danh thủ chơi cờ tính trước ñược số nước nhất ñịnh

 Theo cấu hình resource của máy tính

 Meta knowledge trong việc ñịnh giới hạn ñộ sâu

Trang 21

BT: Traveling Salesman Problem (TSP)

 Mô tả: người bàn hàng có N thành phố phải ñi

qua, chỉ ñi qua 01 lần/Tp Mỗi cặp TP có con

ñường nối Tìm con ñường ngắn nhất ñi vòng qua

các thành phố và trở lại Tp ban ñầu.

Trang 22

Heuristic search (informed search)

 Là kỹ thuật cải tiến hiệu quả quá trình tìm kiếm

 General-purpose:

 Người láng giềng gần nhất:

 Bằng cách chọn cách tốt nhất tại mỗi bước.

 TSP: Tại mổi thành phố, chọn TP kế tiếp gần nhất -> time là N2 ( cũ là N!)

 Special-purpose: hai cách tham gia vào tìm kiếm:

 Chính trong các luật

 Hàm heuristic: ñáng giá ưu thế của từng TT cụ thể và

Trang 23

Heuristic search

 Ví dụ

 Chess: Ưu thế trên ñối thủ

 TSP: Tổng khoảng cách hiện tại

 8 puzzle: Tổng khoảng cách các miếng sai vị trí

Trang 24

Các ựặ c tr ư ng c ủ a bài toán

 Một số khắa cạnh cần phân tắch khi chọn kỹ thuật giải BT:

 Khả năng phân rã bài toán

 Khả năng lờ ựi và quay lui

 Khả năng dự ựoán toàn cục

 đắch là trạng thái hay con ựường

 Lượng tri thức cần ựể giải bài toán

 Có cần sự can thiệp của con người trong quá trình giải

Trang 25

Các ñặ c tr ư ng c ủ a bài toán (tt)

 Khả năng phân rã bài toán

Trang 26

Các ñặ c tr ư ng c ủ a bài toán (tt)

 Các bước giải có thể lờ ñi hay quay lui

 Có thể lờ ñi : như BT chứng minh ñịnh lý

 Vì: ñịnh lý vẫn ñúng sau một vài bước áp dụng các luật

 Có thể quay lui: như BT 8-puzzle

 Vì: có thể di chuyển theo hướng ngược lại ñể về TT

trước

 Không thể quay lui: như BT chơi cờ

 Vì: game over!

Trang 27

 Không thể quay lui:

 Dùng các chiến lược phức tạp hơn vì mổi khi ra quyết ñịnh thì

ñó là quyết ñịnh cuối cùng.

Trang 28

Các đặ c tr ư ng c ủ a bài tốn (tt)

 Khả năng dự đốn của bài tốn:

 Cĩ thể dự đốn được: như BT 8 puzzle

-> cĩ thể đề ra 1 chuổi nước đi và tự tin vào kết qua sẽ xãy ra

-> Cĩ thể quay lui được

 Khơng thể dự đốn được: như các game cĩ đối kháng

 Cần theo đuổi nhiều kế hoạch

 Cĩ chiến lược/đánh giá để chọn kế hoạch tốt

Trang 29

Các ñặ c tr ư ng c ủ a bài toán (tt)

 Lời giải là tuyệt ñối hay tương ñối

 Tuyệt ñối (best-path) : như bài toán TSP

 Tính toán khó hơn (tổng quát)

 Cần GT tìm toàn diện hơn

 Tương ñối (any-path): như bài toán suy luận ñời

thường (xem sau)

 Có thể dùng heuristic ñể giải trong thời gian hợp lý

Trang 30

Các ñặ c tr ư ng c ủ a bài toán (tt)

 Lời giải là trạng thái hay con ñường

 Trạng thái: như bài toán tìm ra cách hiểu phù hợp cho

câu Ví dụ:

 “The bank president ate a dish of pasta salad with the fork.”

 Từng từ như: bank, president, … có thể ñược hiểu theo

Trang 31

Các ñặ c tr ư ng c ủ a bài toán (tt)

 Vai trò của tri thức là gì?

 Cần ít tri thức:

 Như bài toán: “chơi cờ”

 Tri thức = luật ñể di chuyển hợp lệ, cơ chế ñiều khiển, chiến lược ñiều khiển ñể tăng tốc tìm kiếm

 Cần nhiều tri thức

 Như bài toán: Hiểu câu chuyện trên tạp chí

 Tri thức: nhiều, cả những cái ñã ghi tường minh và cả

Trang 32

V ấ n ñề trong thi ế t k ế CT tìm ki ế m

 Sự tìm kiếm

 Tìm kiếm ~ duyệt cây, từ TT bắt ñầu -> TT ñích

 Cả cây tìm kiếm thường không ñược xây dựng sẵn

 Cấu trúc ñồ thị thường thay thế cho cây trong biểu diễn KGTT

 Các vấn ñề

 Xác ñịnh hướng tìm (forward hay backward reasoning)

 Cách lựa chọn luật ñể áp dụng (matching)

 Cách biểu diễn NODE của quá trình tìm

 Các NODE trong ñồ thị có thể ñược phát sinh nhiều

lần, và có thể ñã ñược xem xét trước ñó trong quá trình

Trang 33

V ấ n ñề trong thi ế t k ế CT …

 Giải thuật kiểm tra NODE lặp lại (DFS):

 Xem xét tập NODE ñã tạo ra, ñể xem NODE mới ñã có chưa

 Nếu chưa thì thêm NODE mới vào ñồ thị

Trang 34

BÀI TP 1

Trang 35

BÀI TP 2

Ngày đăng: 08/12/2016, 15:15

TỪ KHÓA LIÊN QUAN

w