SlideShare a Scribd company logo
1 of 100
TRÍ TUỆ NHÂN TẠO
 Trần Thị Hương
 Khoa Kỹ Thuật – Công Nghệ
 Trường Đại Học Hà Tĩnh
 Email: huong.tranthi@htu.vn




                               1
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 ĐỀ




                                   2
TÀI LIỆU THAM KHẢO
1. Trí tuệ nhân tạo – Các phương pháp Giải quyết vấn
   đề và kỹ thuật xử lý tri thức (1999)
   Nguyễn Thanh Thuỷ
2. Trí tuệ nhân tạo – Đinh Mạnh Tường




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

   Số đơn vị học trình: 3
   Lý thuyết: 30 tiết
   Thực hành, bài tập: 15tiết




                                 4
CHƯƠNG 1: TỔNG QUAN
 VỀ KHOA HỌC TTNT




                      5
Trí Tuệ Nhân Tạo là gì?
   Là một nhánh của khoa học máy tính liên quan
    đến sự tự động hóa hành vi thông minh.
        Trí tuệ là gì?
   Các câu hỏi chưa có câu trả lời:
       Liệu trí tuệ có phải là một khả năng duy nhất hay chỉ
        là một tên gọi cho một tập hợp các hành vi phân biệt
        và độc lập nhau?
       Thế nào là khả năng sáng tạo?
       Thế nào là trực giác?
       Điều gì diễn ra trong quá trình học?
                                               6
Trí Tuệ Nhân Tạo là gì?
   Intelligence? Trí năng, trí tuệ, trí thông minh
   Thế nào là Artificial intelligence? Chúng ta sẽ
    phân tích 4 loại quan niệm về intelligence sau :




                                         7
Trí Tuệ Nhân Tạo là gì?
“Nỗ lực tạo ra các máy tính        “Việc nghiên cứu các năng lực trí
biết tư duy … máy tính có ý        tuệ sử dụng các mô hình tính toán
thức (The exciting new effort to   (The study of mental faculties
make computers thinks …            through the use of computational
machine with minds, in the full    models)”
and literal sense)”                (Charniak et al. 1985)
(Haugeland 1985)
“Nghệ thuật sáng tạo ra các        “Nghiên cứu tìm cách giải thích và
máy thực hiện các chức năng        mô phỏng các hành vi thông minh
đòi hỏi sự thông minh như khi      bằng các quá trình tính toán (A field
thực hiện bởi con người (The       of study that seeks to explain and
art of creating machines that      emulate intelligent behavior in terms
perform functions that require     of computational processes)”
intelligence when performed        (Schalkol, 1990)
by people)” (Kurzweil, 1990)                          8
Trí tuệ nhân tạo: Hệ thống tư duy như con người

“Nỗ lực tạo ra các máy tính        Hệ thống tư duy như con
biết tư duy … máy tính có ý        người
thức (The exciting new effort to
                                   ( Systems that think
make computers thinks …
machine with minds, in the full    like humans )
and literal sense)”
(Haugeland 1985)
                                   Ví dụ: Newell&Simson
Con người tư duy như thế           (1961) phát triển GPS
nào? Chưa có câu trả lời           (General Problem
chính xác trong rất nhiều          Solving) bắt chước cách
tình huống.                        giải quyết các bài toán
                                   trong toán học của con
                                   người.
                                                9
Trí tuệ nhân tạo: hệ thống ứng xử như con người

 Hệ thống ứng xử (hành động)         Turing (1950) đề xuất
 như con người (Hệ thống mà          bộ test (Turing test):
 hành vi, ứng xử của nó như          hội thoại giữa hệ
 con người)                          thống và người phỏng
                                     vấn. Nếu người phỏng
 Systems that act like               vấn không biết được
 humans                              hệ thống là người hay
“Nghệ thuật sáng tạo ra các          là máy thì hệ thống
máy thực hiện các chức năng          đó được cho là thông
đòi hỏi sự thông minh như khi        minh.
thực hiện bởi con người (The
art of creating machines that    - Con người lúc nào cũng
perform functions that require   ứng xử “đúng”?
intelligence when performed      - Hành vi như thế nào được
by people)” (Kurzweil, 1990)     coi là giống con người?
Trí tuệ nhân tạo: hệ thống tư duy hợp lý
Hệ thống tư duy hợp      “Việc nghiên cứu các năng lực trí
lý                       tuệ sử dụng các mô hình tính toán
                         (The study of mental faculties
System that think        through the use of computational
rationally               models)”
Aristotle hình thức      (Charniak et al. 1985)
hóa “tư duy đúng”
                         1. Không biểu diễn được tri
(Luật của tư duy            thức không chắc chắn
đúng). Hệ tam đoạn       2. Nhiều bài toán không dễ giải
luận là khuôn mẫu để        quyết do thiếu tài nguyên
thu được kết luận           (không gian nhớ và thời
đúng khi cho giả thiết      gian)
đúng. VD: Socrat là      3. Nhiều hành động coi là
người; tất cả mọi           thông minh nhưng ko liên
người đều chết; do đó       quan đến tư duy (chẳng hạn:
Socrat phải chết.           co tay lại khi chạm vật nóng)
Trí tuệ nhân tạo: hệ thống ứng xử hợp lý

  Hệ thống ứng xử hợp lý (Hệ thống
  mà hành động/ứng xử hợp lý)

  Systems that act rationally


  Ưu điểm:                     “Nghiên cứu tìm cách giải thích và
     -Tổng quát hơn            mô phỏng các hành vi thông minh
     -Tính hợp lý có thể       bằng các quá trình tính toán (A field
     dễ dàng được định         of study that seeks to explain and
     nghĩa (rationality is     emulate intelligent behavior in terms
     well defined)             of    computational      processes)”
                               (Schalkol, 1990)
                        CS 460, Lecture 1
Artificial Intelligence: Hành động hợp lý
   Intelligence? Trí năng, trí tuệ, trí thông minh
   Môn học này, chúng ta thống nhất quan niệm trí thông
    minh là hành động hợp lý, hành động tốt nhất hoặc hợp
    lý nhất mà cho kết quả tối ưu của một hàm nào đó.
   Quan niệm như trên phù hợp với: khi nói đến tính thông
    minh, chúng ta thường gắn với một hành động, hành vi,
    ứng xử nào đó. Vi vậy Intelligence có thể coi đồng
    nghĩa với rational action, hay intelligent/rational
    agent
Turing Test



              Interrogator

   Ưu điểm của Turing Test
       Khái niệm khách quan về trí tuệ
       Tránh đi những thảo luận về quá trình bên trong
        và ý thức
       Loại trừ định kiến thiên vị của người thẩm vấn
Các ý kiến phản đối Turing Test
   Thiên vị các nhiệm vụ giải quyết vấn đề bằng
    ký hiệu
   Trói buộc sự thông minh máy tính theo kiểu
    con người, trong khi con người có:
       Bộ nhớ giới hạn
       Có khuynh hướng nhầm lẫn


Tuy nhiên, trắc nghiệm Turing đã cung cấp một
  cơ sở cho nhiều sơ đồ đánh giá dùng thực sự
  cho các chương trình TTNT hiện đại.
Các Ứng Dụng của TTNT
 1.   Trò chơi và các bài toán đố
 2.   Suy luận và chứng minh định lý tự động
 3.   Các hệ chuyên gia (các hệ tri thức)
 4.   Xử lý ngôn ngữ tự nhiên
 5.   Lập kế hoạch và người máy
 6.   Máy học
 7.   Mạng Neuron và giải thuật di truyền
 8.   …
Trí Tuệ Nhân Tạo - Đặc Điểm
    Sử dụng máy tính vào suy luận trên các ký hiệu,
     nhận dạng qua mẫu, học, và các suy luận khác…
    Tập trung vào các vấn đề “khó” không thích hợp
     với các lời giải mang tính thuật toán.
    Quan tâm đến các kỹ thuật giải quyết vấn đề sử
     dụng các thông tin không chính xác, không đầy đủ,
     mơ hồ…
    Cho lời giải ‘đủ tốt’ chứ không phải là lời giải
     chính xác hay tối ưu.
    Sử dụng heuristics – “bí quyết”
    Sử dụng tri thức chuyên môn
    …
Những vấn đề chưa được giải quyết
   Chương trình chưa tự sinh ra được heuristic
   Chưa có khả năng xử lý song song của con
    người
   Chưa có khả năng diễn giải một vấn đề theo
    nhiều phương pháp khác nhau như con người.
   Chưa có khả năng xử lý thông tin trong môi
    trường liên tục như con người.
   Chưa có khả năng học như con người.
   Chưa có khả năng tự thích nghi với môi
    trường.
Các phương pháp và kỹ thuật

   Các phương pháp biểu diễn tri thức và kỹ
    thuật xử lý tri thức
   Các phương pháp giải quyết vấn đề
   Các phương pháp Heuristic
   Các phương pháp học
   Các ngôn ngữ TTNT



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

   Các phương pháp biểu diễn tri thức và kỹ
    thuật xử lý tri thức
   Các phương pháp giải quyết vấn đề
   Các phương pháp Heuristic
   Các phương pháp học
   Các ngôn ngữ TTNT



                                               20
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

                        Tâ
                           m
                               lý                            c
       Nghiên cứu tâm               họ
                                         c               t họ Các lý thuyết của lập
       trí con người                                Triế
                                                               luận và học

                                             TTNT

               Ngôn ngữ học
                                                        Toán học
Nghiên cứu ý nghĩa và                                            Các lý thuyết xác suất logic,
cấu trúc của ngôn ngữ                                            tạo quyết định và tính toán
                                         Khoa học
                                         máy tính

                                Làm cho TTNT trở
                                thành hiện thực
                                                                                                 21
LỊCH SỬ PHÁT TRIỂN CỦA KHOA HỌC TTNT




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




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




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




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




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




     Đi bộ



                  Quay

Honda Humanoid Robot
& Asimo                   Lên xuống
                          cầu thang
                                      27
CÁC THÀNH TỰU CỦA KHOA HỌC TTNT




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




                                  29
CÁC XU HƯỚNG MỚI TRONG TTNT




                              30
CÁC XU HƯỚNG MỚI TRONG TTNT




                              31
CÁC XU HƯỚNG MỚI TRONG TTNT




                              32
CÁC XU HƯỚNG MỚI TRONG TTNT




                              33
CÁC XU HƯỚNG MỚI TRONG TTNT




                              34
CÁC XU HƯỚNG MỚI TRONG TTNT




                              35
CÁC XU HƯỚNG MỚI TRONG TTNT




                              36
Chương 2.
CÁC CHIẾN LƯỢC TÌM
     KIẾM MÙ
I. Biểu diễn vấn đề trong KG trạng thái.

   Vấn đề là gì?
   Một bài toán nào đó cần giải quyết, chẳng hạn
    như một trò chơi, c.minh một định lý,…
   Một lớp rộng các bài toán có thể giải quyết
    bằng cách biểu diễn bởi các trạng thái và các
    tóan tử (phép biến đổi trạng thái).
Ví dụ (trò chơi 8 số)
Các thành phần của KGTT
   Sự sắp xếp các số tại mỗi thời điểm là một
    TT.
   Hình bên trái là trạng thái ban đầu.
   Hình bên phải là trạng thái kết thúc hay trạng
    thái đích (goal).
   Trạng thái đích của một bài toán có thể nhiều
    hơn một.
   Toán tử là một phép biển đổi hợp lệ chuyển từ
    trạng thái này sang trạng thái khác.
   Bằng các tóan tử, từ trạng thái ban đầu, tiếp
    tục phát triển, cuối cùng thu được một không
    gian trạng thái (KGTT).
Định nghĩa
   KGTT là một bộ bốn (X, u0, F, G), trong đó:
    X là tập các trạng thái
    u0 là trạng thái bắt đầu
    F là tập các toán tử, gồm các phép biến đổi.
    G là tập trạng thái đích.
Biểu diễn KGTT
   Không gian trạng thái có thể biểu diễn bằng
    đồ thị có hướng: mỗi đỉnh là một trạng thái,
    mỗi cung là một toán tử.
   Nghiệm của bài toán nếu như ta tìm được
    đường đi từ trạng thái bắt đầu đến một trong
    các trạng thái đích.
Biểu diễn bằng cây
   Trong đồ thị của KGTT có thể xuất hiện chu
    trình gây khó khăn cho việc tìm kiếm, hạn chế
    các toán tử trong F có thể đưa đồ thị trở thành
    cây, một cấu trúc dễ tìm kiếm hơn.
   VD. KGTT của trò chơi caro là cây.
Chiến lược tìm kiếm?
   Khi tìm kiếm lời giải, từ một trạng thái nào đó chưa
    phải là trạng thái đích, ta dựa theo toán tử sinh ra tập
    các trạng thái mới: mở rộng.
   Để được lời giải, ta phải liên tục chọn trạng thái mới,
    mở rộng, kiểm tra cho đến khi tìm được trạng thái
    đích hoặc không mở rộng được KGTT.
   Tập các trạng thái được mở rộng sẽ có nhiều phần
    tử, việc chọn trạng thái nào để tiếp tục mở rộng được
    gọi là chiến lược tìm kiếm.
Đánh giá một chiến lược?
+ Tính đầy đủ: chiến lược phải đảm bảo tìm
   được lời giải nếu có.
+ Độ phức tạp thời gian: mất thời gian bao lâu để
   tìm được lời giải.
+ Độ phức tạp không gian: tốn bao nhiêu đơn vị
   bộ nhớ để tìm được lời giải.
+ Tính tối ưu: tốt hơn so với một số chiến lược
   khác hay không.
Thông tin mỗi nút?
+ Nội dung trạng thái mà nút hiện hành đang
   biểu diễn.
+ Nút cha đã sinh ra nó.
+ Toán tử đã được sử dụng để sinh ra nút hiện
   hành.
+ Độ sâu của nút.
+ Giá trị đường đi từ nút gốc đến nút hiện hành.
Tìm kiếm mù?
   Trạng thái được chọn để phát triển chỉ đơn
    thuần dựa theo cấu trúc của KGTT mà không
    có thông tin hướng dẫn nào khác.
   Nói chung tìm kiếm mù sẽ không hiệu quả.
   Đây là cơ sở để chúng ta cải tiến và thu được
    những chiến lược hiệu quả hơn.
1. Tìm kiếm theo chiều rộng (BFS)
   Trạng thái được ưu tiên phát triển là trạng thái
    được sinh ra trước.
   Dùng danh sách open chứa các trạng thái sinh
    ra đang chờ phát triển
   Danh sách closed chứa các trạng thái đã được
    khảo sát.
Ví dụ
Thuật toán BFS
 procedure bfs;
 begin
     open:=[start]; closed:=[];
     while open<>[] do
         begin
                   loại tt ngoài cùng bên trái của open, gọi nó là u
                   if (u là một đích) then thông báo kết quả, thoát
                   else begin
                             Đưa u vào closed
                             Phát sinh các con v của u
                             Loại các con đã có trong open+closed
                             Đưa các con còn lại vào bên phải open (1)
                             end
         end
     Thông báo thất bại
 End
1.   Open = [A]; closed = []
2.   Open = [B,C,D];
        closed = [A]
2.   Open = [C,D,E,F];
        closed = [B,A]
3.   Open = [D,E,F,G,H];
     closed = [C,B,A]
4.   Open = [E,F,G,H,I,J];
     closed = [D,C,B,A]
5.   Open = [F,G,H,I,J,K,L];
     closed = [E,D,C,B,A]
6.   Open = [G,H,I,J,K,L,M];
     (vì L đã có trong open);
     closed = [F,E,D,C,B,A]
     …
Nhận xét
   Các trạng thái con phát sinh nhờ các toán tử hợp lệ.
   Danh sách open bổ sung phần tử bên phải, lấy phần
    tử bên trái.
   Thuật tóan khảo sát tất cả các nút ở độ sâu d sau đó
    mới đến mức d+1 nên chắc chắn tìm được nghiệm.
   Nếu vô nghiệm và KGTT hữu hạn thì thuật toán sẽ
    dừng và thông báo vô nghiệm.
Đánh giá
   Giả sử mỗi trạng thái trung bình sinh ra b
    trạng thái con (kề), b - gọi là nhân tố nhánh.
   Giả sử đường đi nghiệm có độ dài d. Tình
    trạng xấu nhất phải khảo sát là ?
   Độ phức tạp thời gian là O(b^d), độ phức tạp
    không gian cũng là O(b^d).
55
2. Tìm kiếm theo chiều sâu
(DFS)
   Mở rộng nút có độ sâu hơn trước các nút khác
    đang chờ xử lý.
   Khi nào không mở rộng được nữa thì mới
    quay lại nút ở độ sâu thấp hơn.
   Do đó, các nút mới được sinh ra chờ xử lý
    phải được bỏ bên trái của hàng đợi open (tại
    câu lệnh 1).


                                                   56
Thuật toán DFS
 procedure bfs;
 begin
     open:=[start]; closed:=[];
     while open<>[] do
         begin
                   loại tt u ngoài cùng bên trái của open
                   if (u là một đích) then thông báo kết quả, thoát
                   else begin
                              Đưa u vào closed
                              Phát sinh các con v của u
                              Loại các con đã có trong open+closed
                              Đưa các con còn lại vào bên trái open (1)
                              end
         end
     Thông báo thất bại
 End
                                                                          57
Tìm kiếm Sâu
1.   Open = [A]; closed = []
2.   Open = [B,C,D]; closed = [A]
3.   Open = [E,F,C,D];closed =
     [B,A]
4.   Open = [K,L,F,C,D];
        closed = [E,B,A]
5.   Open = [S,L,F,C,D];
     closed = [K,E,B,A]
6.   Open = [L,F,C,D];
     closed = [S,K,E,B,A]
7.   Open = [T,F,C,D];
     closed = [L,S,K,E,B,A]
8.   Open = [F,C,D];
        closed = [T,L,S,K,E,B,A]
9.   …
                                    58
Nhận xét
   Khảo sát nút ở độ sâu d thì DFS lưu trữ b*d nút, khi
    đó BFS phải lưu trữ b^d nút.
   Ở độ sâu d=12, DFS chỉ sử dụng 12KB trong khi
    BFS dùng đến 111TB.
   Độ phức tạp thời gian của DFS vẫn là O(b^d) vì
    trong trường hợp xấu nhất các nút được khảo sát vẫn
    như BFS.
   Cơ hội để tìm thấy đích nhanh hơn nếu nó nằm ở
    phần KGTT bên trái.

                                                           59
Hạn chế
   Bỏ qua cơ hội tìm thấy ngay trạng thái đích khi trạng
    thái này nằm gần gốc.
   Nếu KGTT vô hạn có thể không tìm được trạng thái
    đích.
   Nghiệm nói chung không phải là đường đi ngắn
    nhất.
   DFS là chiến lược không đầy đủ, không tối ưu.
    Không nên sử dụng khi KGTT có độ sâu lớn hoặc
    vô hạn.

                                                            60
Tìm kiếm sâu bằng cách đào sâu nhiều lần
    Độ sâu giới hạn (depth bound): giải thuật TK
     sâu sẽ quay lui khi trạng thái đang xét đạt đến độ sâu
     giới hạn đã định.
    TK Sâu bằng cách đào sâu nhiều lần: TK sâu
     với độ sâu giới hạn là 1, nếu thất bại, nó sẽ lặp lại
     GT TK sâu với độ sâu là 2,… GT tiếp tục cho đến
     khi tìm được mục tiêu, mỗi lần lặp lại tăng độ sâu
     lên 1.
    GT này có độ phức tạp về thời gian cùng bậc
     với TK Rộng và TK Sâu.
                                                              61
Thuật toán
procedure DFS(d);
begin
   open:=[start]; closed:=[]; depth(start):=0;
   while open<>[] do
       begin
              loại u ngoài cùng bên trái open
              if (u là một đích) then thbáo kết quả, thoát
              else




                                                             62
begin
   Đưa u vào closed
   If depth(u)<d then begin
       Phát sinh các con v của u
       Loại các con vừa phát sinh đã có trong open+ closed
       Gán độ sâu cho các v bằng depth(u)+1
       Đưa các con v còn lại vào bên trái open
   End;
 End;
End; {while}
Thông báo thất bại
End.

                                                             63
Tìm kiếm sâu dần l =0




                        64
Tìm kiếm sâu dần l =1




                        65
Tìm kiếm sâu dần l =2




                        66
Tìm kiếm sâu dần l =3




                        67
Tìm kiếm sâu dần
   Số lượng nodes được sinh trong giới hạn độ sâu d với độ
    phân nhánh b:
               NDLS = b0 + b1 + b2 + … + bd-2 + bd-1 + bd

   Số lượng nodes được sinh trong tìm kiếm sâu dần với độ sâu
    d độ phân nhánh b:

        NIDS = (d+1)b0 + d b1 + (d-1)b2 + … + 3bd-2 +2bd-1 + 1bd

   Ví dụ b = 10, d = 5,.
       NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111.
       NIDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456.

   Tỷ lệ (123,456 - 111,111)/111,111 = 11%
                                                                    68
Qui bài toán về các bài toán con và các
    chiến lược tìm kiếm trên đồ thị Và/Hoặc
   Qui bài toán về các bài toán con
   Thể hiện dưới dạng đồ thị VÀ/HOẶC
   Các phương pháp tìm kiếm trong đồ thị
    VÀ/HOẶC




                                              69
Qui bài toán về các bài toán con
   Ý tưởng cơ bản là xuất phát từ bài toán đặt ra,
    tách bài toán này thành các bài toán con cho
    đến khi bài toán ban đầu trở thành các bài
    toán sơ cấp.
   Bài toán sơ cấp được hiểu là bài toán mà lời
    giải của chúng có thể nhận được ngay.
    VD: Với bài toán n2 – 1 số, bài toán sơ cấp
    chính là bài toán chuyển ô trống 1 lần để nhận
    được trạng đích.

                                                      70
Thể hiện dưới dạng đồ thị VÀ/HOẶC
   Đồ thị (định hướng) VÀ/HOẶC là cặp G =
    (N,A), sao cho ∀n ∈ N, tất cả các đỉnh m∈
    B(n) cùng thuộc vào một trong hai kiểu: đỉnh
    VÀ, đỉnh HOẶC.
    Khi các đỉnh con m của n là đỉnh VÀ thì cung
    (n,m) (m∈ B(n)) được nối bởi ngoặc lớn.
   VD:


                                                   71
Thể hiện dưới dạng đồ thị VÀ/HOẶC
  Quy bµi to¸n vÒ c¸c bµi to¸n con                § å thÞv µ /h o Æc

Bµi to¸ n                                §Ø
                                          nh
To¸ n tö quy bµi to¸ n vÒbµi to¸ n con   Cung
Bµi to¸ n ban ® u
               Ç                         § Ø ® u (® nh gèc)
                                           nh Ç Ø
C¸ c bµi to¸ n s¬ cÊp                    § Ø cuèi, ® nh kÕ thóc
                                           nh       Ø     t
C¸ c bµi to¸ n con phô thuéc             § Ø vµ
                                           nh
C¸ c bµi to¸ n con ® lË
                    éc p                 § Ø hoÆ
                                           nh  c
Gi¶i bµi to¸ n ban ® u.
                    Ç                    T× ® thÞcon lêi gi¶i.
                                          m å




                                                                       72
Thể hiện dưới dạng đồ thị VÀ/HOẶC
   Đỉnh giải được:
       Các đỉnh kết thúc (cuối) là đỉnh giải được.
       Nếu đỉnh n có các đỉnh con là đỉnh VÀ thì nó là đỉnh giải được
        khi và chỉ khi tất cả các đỉnh con của nó giải được.
       Nếu đỉnh n có các đỉnh con là đỉnh HOẶC thì nó là đỉnh giải
        được khi và chỉ khi tồn tại 1 đỉnh con của nó giải được.
   Đỉnh không giải được:
       Nếu đỉnh n không là đỉnh kết thúc và không có các đỉnh con thì
        nó là đỉnh không giải được.
       Nếu đỉnh n không là đỉnh kết thúc và có các đỉnh con là đỉnh VÀ
        thì nó là đỉnh không giải được khi và chỉ khi tồn tại một đỉnh con
        không giải được.
       Nếu đỉnh n không là đỉnh kết thúc mà có các đỉnh con là đỉnh
        HOẶC thì nó là đỉnh không giải được khi và chỉ khi tất cả các
                                                                        73
Thể hiện dưới dạng đồ thị VÀ/HOẶC
   Đồ thị lời giải: Là đồ thị con của đồ thị
    VÀ/HOẶC chỉ chứa các đỉnh giải được và
    đỉnh đầu.
   Nhận xét:
       Nếu trên đồ thị VÀ/HOẶC không có đỉnh VÀ
        nào thì đồ thị VÀ/HOẶC trở thành đồ thị thông
        thường và khi đó đồ thị con lời giải sẽ suy biến
        thành đường đi từ đỉnh đầu tới một đỉnh kết thúc
        nào đó.



                                                           74
Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC




                                            75
Các phương pháp tìm kiếm trong đồ thị
VÀ/HOẶC
  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 do
                          {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đ”}}

                                                               76
Các phương pháp tìm kiếm trong đồ thị
VÀ/HOẶC

     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




                 Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo   77
Các phương pháp tìm kiếm trong đồ thị
VÀ/HOẶC: Thủ tục TKRM
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” nếu n0 kgđ, “thành công” nếu n0 gđ và đưa ra cây lời giải.
Phương pháp: /* sử dụng hai danh sách FIFO: MO, ĐONG */
{MO ={n0};
While MO ≠ ∅ do
    {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) do
                     {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 các đỉnh có tổ tiên là đỉ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 các đỉnh có tổ tiên là đỉnh không giải được;}}}
                                                                                              78
Các phương pháp tìm kiếm trong đồ thị
VÀ/HOẶC                   Thủ tục TKRM
  VD:Áp dụng thuật toán TKRM đối với cây
    sau
    Tập T = {t1,t2,t3,t4}
 Thứ tự duyệt:
 abcdefgijk

                                 g
 Cây lời giải:




                                              t4
 các cung tô đậm                                       D




                                         k
                                                                E
                             c



                                     f



                                             t3
                                              C




                                                           t2
                                                       F
                                         e




                                                   B
                             a




                                                                t1
 Nhận xét: Nếu cây lời giải tồn tại thì thủ tục TKRM sẽ dừng và
                                                   j
    cho kết quả là cây lời giải có độ cao nhỏ nhất
                                     b




                                                                    A
                                              d



                                                       i

                                                                        79
Các phương pháp tìm kiếm trong đồ 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” nếu n0 kgđ, “thành công” nếu n0 gđ và đưa ra cây lời giải.
  Phương pháp: /* sử dụng hai danh sách FIFO: DONG, LIFO: MO */
  {MO ={n0};
  While MO ≠ ∅ do
      {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) do
                       {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 các đỉnh có tổ tiên là đỉ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 các đỉnh có tổ tiên là đỉnh không giải được;}}}
                                                                                                80
Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC
                   Thủ tục TKSM
      VD: Áp dụng thuật toán TKSM đối với cây sau




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




                                                                     b
                                                   f
                                     t1
 Thứ tự duyệt:




                                                                             a
 abdAfceg                                      C                         E




                                          t2
 Cây lời giải:




                                                            t3
                              A




                                                                     e
                                                                         D




                                                                 g




                                                                             c
 các cung tô đậm


                                                       t4
 Nếu một đỉnh kết thúc nào đó có độ sâu vượt quá giới hạn độ sâu D thì nó sẽ
 bị bỏ qua trong quá trình tìm kiếm. Do vậy, trên thực tế có thể tồn tại cây 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 trạng
 này, người ta có thể cải biên thủ tục tìm kiếm theo chiều sâu thành thủ tục tìm
 kiếm sâu dần, trong đó các nút được duyệt từng mức một.

                                                                                   81
Chương 3.
CÁC CHIẾN LƯỢC TÌM
   KINH NGHIỆM



                     82
Nguyên nhân
   Các chiến lược tìm kiếm mù kém hiệu quả và
    không thể áp dụng được trong nhiều trường
    hợp.
   Sử dụng thông tin của trạng thái kết hợp với
    nhận xét dựa theo kinh nghiệm để cải tiến là
    quan điểm chung của các chiến lược tìm kiếm
    kinh nghiệm.


                                                   83
1. Hàm đánh giá




                  84
Khái niệm về hàm đánh giá
   Hàm đánh giá là một hàm ước lượng khả
    năng về đích của mỗi trạng thái.
   Chỉ là ước lượng vì nói chung chúng ta không
    thể tính toán chính xác khả năng này, nếu tính
    được nghĩa là đã tìm được lời giải!
   Tuy nhiên, nhờ kinh nghiệm trong nhiều bài
    toán cụ thể, có thể ước lượng được g.trị này.


                                                     85
Ví dụ
   Nếu đếm các số sai vị trí của một trạng thái so
    với trạng thái đích thì B là 3 và C là 1.
   Như vậy, số này càng nhỏ thì trạng thái đó
    càng có khả năng về đích
   Có thể dùng số này làm giá trị cho hàm đánh
    giá.



                                                      86
Hình thức hóa

   Trong đó X là KGTTcủa bài toán.
   Dễ thấy, nếu u là trạng thái đích thì h(u)=0. Mỗi
    u ta có một giá trị ước lượng là h(u)
   h(B)=3; h(C)=1
   Hàm đánh giá còn được gọi là hàm heuristic. Giá
    trị hàm càng nhỏ thì khả năng về đích của trạng
    thái càng lớn.


                                                        87
Tính h(D), h(E)




                  88
Nhiều cách XD hàm h
   h(D)=h(E)=2
   Về mặt đường đi qua các ô ngang dọc để di chuyển
    về đúng vị trí thì (D) phải di chuyển đọan đường xa
    hơn (E) nên có thể là (D) không tốt bằng (E).
   Theo nhận xét này, ta có thể xây dựng hàm h bằng
    tổng khoảng cách phải di chuyển của các ô sai vị trí.
   Ví dụ: h1(D)=3+3 = 6, h1(E)=2+2=4
   Một ví dụ khác là lấy độ dài đường chim bay !


                                                            89
Các bước xây dựng chiến lược tìm kiếm

+ Biểu diễn bài toán bằng một KGTT thích hợp
+ Xây dựng hàm đánh giá
+ Thiết kế chiến lược chọn trạng thái




                                               90
II. Các chiến lược tìm kiếm kinh
nghiệm.




                                   91
a) Tìm kiếm leo đồi – Hill Climbing
            Search (Pearl, 1984)
   Chọn một trạng thái tốt hơn trạng thái đang khảo sát
    để phát triển. Nếu không có thuật tóan phải dừng.
   Nếu chỉ chọn một trạng thái tốt hơn: leo đồi đơn
    giản, trạng thái tốt nhất: leo đồi dốc đứng.
   Sử dụng hàm h để biết trạng thái nào tốt hơn.
   Khác với tìm kiếm sâu, leo đồi không lưu tất cả các
    con mà chỉ lưu đúng một t.thái được chọn nếu có.



                                                           92
Thuật toán HCS
 procedure hcs(start);
 begin
    open:=[start]; closed:=[];
    while open<>[] do
       begin
       loại tt ngoài cùng bên trái của open, gọi nó là u
       if (u là một đích) then thông báo kết quả, thoát
       else begin
        Đưa u vào closed
        Phát sinh các con v của u
        Loại các con đã có trong open+closed
        Sap xep danh sach cac dinh con cua u theo thu tu
    tang dan, goi la L1.
        Day L1 vao ben trai danh sach open.
       end                                                 93
B1: open =[A], close=[]
B2: close=[A], open=[C]
B3: close=[A,C], open=[G];
B4: Thông báo thành công




                             94
Yêu cầu: áp dụng thuật toán leo đồi mô tả không gian
trạng thái qua các bước. Vẽ đồ thị đường đi
Nhanh, có thể thất bại
   Hiệu quả khi có một hàm đánh giá tốt. Bế tắc
    nếu
       Gặp điểm cực đại địa phương.
       Khu vực bình nguyên.
   Giải pháp xáo trộn ngẫu nhiên.
   Không có giải pháp tổng quát. Cải tiến?



                                                   96
Tìm kiếm ưu tiên tốt nhất – Best
        First Search (Best-FS)
   Chọn trạng thái tốt nhất trong open để phát triển, kể
    cả trạng thái này không tốt bằng trạng thái đã sinh ra
    nó.
   Lưu trữ tất cả các trạng thái anh em nên khi đi vào
    ngõ cụt, chiến lược này có thể lui ra được mà không
    bị bế tắc.
   Best-FS kết hợp tìm kiếm sâu và rộng.
   Best-FS “cẩn thận” hơn ghi nhớ lại các một số trạng
    thái không tốt hơn trước đó để còn có thể quay lại.

                                                             97
Ví dụ




        98
99
Thuật toán Best_FS
procedure Best_FS;
begin
    open:={u0}; closed:={ };
    while open<>{ } do
        begin
                loại trạng thái ngoài cùng bên trái của open, gọi nó là u
                if (u là một đích) then thông báo thắng lợi, thoát
                else begin
                          Đưa u vào closed
                          Phát sinh các con v của u
                          Loại các con v đã có mặt trong open + closed
                          Đưa các con còn lại vào open
                Sắp xếp open sao cho phần tử tốt nhất nằm bên trái
                end
        end
    Thông báo thất bại
end
                                                                            100

More Related Content

What's hot

Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtHưởng Nguyễn
 
Hệ phương trình vi phân tuyến tính
Hệ phương trình vi phân tuyến tínhHệ phương trình vi phân tuyến tính
Hệ phương trình vi phân tuyến tínhThế Giới Tinh Hoa
 
Danh Sach Lien Ket
Danh Sach Lien KetDanh Sach Lien Ket
Danh Sach Lien KetTony Nhân
 
Giáo trình xử lý ảnh
Giáo trình xử lý ảnhGiáo trình xử lý ảnh
Giáo trình xử lý ảnhTùng Trần
 
Tom tat cong thuc xstk
Tom tat cong thuc xstkTom tat cong thuc xstk
Tom tat cong thuc xstkBích Anna
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiTrung Thanh Nguyen
 
[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử líHong Phuoc Nguyen
 
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng LongBài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng LongHoàng Như Mộc Miên
 
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựXây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựAskSock Ngô Quang Đạo
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Thanh Giảng Lê
 
chuong 1. co so logic
chuong 1. co so logicchuong 1. co so logic
chuong 1. co so logickikihoho
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Nguyễn Công Hoàng
 
Chuong 04 mach logic
Chuong 04 mach logicChuong 04 mach logic
Chuong 04 mach logicAnh Ngoc Phan
 
4.2.1. thiết kế bộ điều khiển trượt cho robot 2 bậc tự do và mô phỏng trên ma...
4.2.1. thiết kế bộ điều khiển trượt cho robot 2 bậc tự do và mô phỏng trên ma...4.2.1. thiết kế bộ điều khiển trượt cho robot 2 bậc tự do và mô phỏng trên ma...
4.2.1. thiết kế bộ điều khiển trượt cho robot 2 bậc tự do và mô phỏng trên ma...TÀI LIỆU NGÀNH MAY
 

What's hot (20)

Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
 
Hệ phương trình vi phân tuyến tính
Hệ phương trình vi phân tuyến tínhHệ phương trình vi phân tuyến tính
Hệ phương trình vi phân tuyến tính
 
Bài giảng Assembly
Bài giảng AssemblyBài giảng Assembly
Bài giảng Assembly
 
Luận văn: Nhận dạng cảm xúc khuôn mặt người, HAY, 9đ
Luận văn: Nhận dạng cảm xúc khuôn mặt người, HAY, 9đLuận văn: Nhận dạng cảm xúc khuôn mặt người, HAY, 9đ
Luận văn: Nhận dạng cảm xúc khuôn mặt người, HAY, 9đ
 
Danh Sach Lien Ket
Danh Sach Lien KetDanh Sach Lien Ket
Danh Sach Lien Ket
 
Chapter1234
Chapter1234Chapter1234
Chapter1234
 
Giáo trình xử lý ảnh
Giáo trình xử lý ảnhGiáo trình xử lý ảnh
Giáo trình xử lý ảnh
 
Tom tat cong thuc xstk
Tom tat cong thuc xstkTom tat cong thuc xstk
Tom tat cong thuc xstk
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
 
[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí
 
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng LongBài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
 
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựXây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
 
Qua trinh qua do
Qua trinh qua doQua trinh qua do
Qua trinh qua do
 
chuong 1. co so logic
chuong 1. co so logicchuong 1. co so logic
chuong 1. co so logic
 
Chương 1 tq kt robot new
Chương 1 tq kt robot newChương 1 tq kt robot new
Chương 1 tq kt robot new
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
 
Tieng Anh chuyen nganh CNTT
Tieng Anh chuyen nganh CNTTTieng Anh chuyen nganh CNTT
Tieng Anh chuyen nganh CNTT
 
Chuong 04 mach logic
Chuong 04 mach logicChuong 04 mach logic
Chuong 04 mach logic
 
4.2.1. thiết kế bộ điều khiển trượt cho robot 2 bậc tự do và mô phỏng trên ma...
4.2.1. thiết kế bộ điều khiển trượt cho robot 2 bậc tự do và mô phỏng trên ma...4.2.1. thiết kế bộ điều khiển trượt cho robot 2 bậc tự do và mô phỏng trên ma...
4.2.1. thiết kế bộ điều khiển trượt cho robot 2 bậc tự do và mô phỏng trên ma...
 

Viewers also liked

Bai toan va thuat toan
Bai toan va thuat toanBai toan va thuat toan
Bai toan va thuat toanHữu Duy Duy
 
Mạng neuron, trí tuệ nhân tạo
Mạng neuron, trí tuệ nhân tạoMạng neuron, trí tuệ nhân tạo
Mạng neuron, trí tuệ nhân tạoKien Nguyen
 
ỨNG DỤNG MẠNG NƠRON TRONG DỰ BÁO TỶ LỆ NGHỈ HỌC
ỨNG DỤNG MẠNG NƠRON TRONG DỰ BÁO TỶ LỆ NGHỈ HỌC ỨNG DỤNG MẠNG NƠRON TRONG DỰ BÁO TỶ LỆ NGHỈ HỌC
ỨNG DỤNG MẠNG NƠRON TRONG DỰ BÁO TỶ LỆ NGHỈ HỌC Trịnh Nguyễn
 
MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON
MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON
MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON Bông Bông
 
neural network
neural networkneural network
neural networkSTUDENT
 
Neural network & its applications
Neural network & its applications Neural network & its applications
Neural network & its applications Ahmed_hashmi
 
Tri tue-nhan-tao-dinh-manh-tuong
Tri tue-nhan-tao-dinh-manh-tuongTri tue-nhan-tao-dinh-manh-tuong
Tri tue-nhan-tao-dinh-manh-tuongQuyên Đinh
 
Deep neural networks
Deep neural networksDeep neural networks
Deep neural networksSi Haem
 
Lý Thuyết Đồ Thị_Lê Minh Hoàng
Lý Thuyết Đồ Thị_Lê Minh HoàngLý Thuyết Đồ Thị_Lê Minh Hoàng
Lý Thuyết Đồ Thị_Lê Minh HoàngTiêu Cơm
 
Neural network
Neural networkNeural network
Neural networkSilicon
 
Artificial neural network
Artificial neural networkArtificial neural network
Artificial neural networkDEEPASHRI HK
 
Tutorial on Deep learning and Applications
Tutorial on Deep learning and ApplicationsTutorial on Deep learning and Applications
Tutorial on Deep learning and ApplicationsNhatHai Phan
 
Lý thuyết tính toán - BKHN - 7
Lý thuyết tính toán - BKHN - 7Lý thuyết tính toán - BKHN - 7
Lý thuyết tính toán - BKHN - 7Minh Lê
 
Food expert system
Food expert systemFood expert system
Food expert systemMinh Lê
 
De cuong he co so tri thuc
De cuong he co so tri thucDe cuong he co so tri thuc
De cuong he co so tri thucVăn Hiệp Vũ
 
[Bao cao]tim hieu ve mo hinh lap trinh
[Bao cao]tim hieu ve mo hinh lap trinh[Bao cao]tim hieu ve mo hinh lap trinh
[Bao cao]tim hieu ve mo hinh lap trinhThùy Linh
 
Lý thuyết tính toán - BKHN - 2
Lý thuyết tính toán - BKHN - 2Lý thuyết tính toán - BKHN - 2
Lý thuyết tính toán - BKHN - 2Minh Lê
 

Viewers also liked (20)

Bai toan va thuat toan
Bai toan va thuat toanBai toan va thuat toan
Bai toan va thuat toan
 
Mạng neuron, trí tuệ nhân tạo
Mạng neuron, trí tuệ nhân tạoMạng neuron, trí tuệ nhân tạo
Mạng neuron, trí tuệ nhân tạo
 
ỨNG DỤNG MẠNG NƠRON TRONG DỰ BÁO TỶ LỆ NGHỈ HỌC
ỨNG DỤNG MẠNG NƠRON TRONG DỰ BÁO TỶ LỆ NGHỈ HỌC ỨNG DỤNG MẠNG NƠRON TRONG DỰ BÁO TỶ LỆ NGHỈ HỌC
ỨNG DỤNG MẠNG NƠRON TRONG DỰ BÁO TỶ LỆ NGHỈ HỌC
 
Machine learning iv (2)
Machine learning iv (2)Machine learning iv (2)
Machine learning iv (2)
 
MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON
MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON
MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON
 
neural network
neural networkneural network
neural network
 
Neural network & its applications
Neural network & its applications Neural network & its applications
Neural network & its applications
 
Tri tue-nhan-tao-dinh-manh-tuong
Tri tue-nhan-tao-dinh-manh-tuongTri tue-nhan-tao-dinh-manh-tuong
Tri tue-nhan-tao-dinh-manh-tuong
 
Deep neural networks
Deep neural networksDeep neural networks
Deep neural networks
 
Lý Thuyết Đồ Thị_Lê Minh Hoàng
Lý Thuyết Đồ Thị_Lê Minh HoàngLý Thuyết Đồ Thị_Lê Minh Hoàng
Lý Thuyết Đồ Thị_Lê Minh Hoàng
 
Neural network
Neural networkNeural network
Neural network
 
Artificial neural network
Artificial neural networkArtificial neural network
Artificial neural network
 
Tutorial on Deep learning and Applications
Tutorial on Deep learning and ApplicationsTutorial on Deep learning and Applications
Tutorial on Deep learning and Applications
 
Lý thuyết tính toán - BKHN - 7
Lý thuyết tính toán - BKHN - 7Lý thuyết tính toán - BKHN - 7
Lý thuyết tính toán - BKHN - 7
 
CERTIFICATE PROLOG
CERTIFICATE PROLOGCERTIFICATE PROLOG
CERTIFICATE PROLOG
 
Food expert system
Food expert systemFood expert system
Food expert system
 
De cuong he co so tri thuc
De cuong he co so tri thucDe cuong he co so tri thuc
De cuong he co so tri thuc
 
bài tập quay lui
bài tập quay luibài tập quay lui
bài tập quay lui
 
[Bao cao]tim hieu ve mo hinh lap trinh
[Bao cao]tim hieu ve mo hinh lap trinh[Bao cao]tim hieu ve mo hinh lap trinh
[Bao cao]tim hieu ve mo hinh lap trinh
 
Lý thuyết tính toán - BKHN - 2
Lý thuyết tính toán - BKHN - 2Lý thuyết tính toán - BKHN - 2
Lý thuyết tính toán - BKHN - 2
 

Similar to Chuong+1 2-3-4

BÀI GIẢNG KỸ NĂNG TƯ DUY SÁNG TẠO
BÀI GIẢNG KỸ NĂNG TƯ DUY SÁNG TẠO BÀI GIẢNG KỸ NĂNG TƯ DUY SÁNG TẠO
BÀI GIẢNG KỸ NĂNG TƯ DUY SÁNG TẠO nataliej4
 
Trí Thông Minh.pdf
Trí Thông Minh.pdfTrí Thông Minh.pdf
Trí Thông Minh.pdfNguynThyVy11
 
Knowledge Based Systems.ppt
Knowledge Based Systems.pptKnowledge Based Systems.ppt
Knowledge Based Systems.pptcongtran88
 
LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...
LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...
LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...TrnNgcSn23
 
Tâm lý học kỹ sư.pdf
Tâm lý học kỹ sư.pdfTâm lý học kỹ sư.pdf
Tâm lý học kỹ sư.pdfMan_Ebook
 
thuyettrinhpowerpoint-1.pptx
thuyettrinhpowerpoint-1.pptxthuyettrinhpowerpoint-1.pptx
thuyettrinhpowerpoint-1.pptxGiaBo802171
 
BÀI TIỂU LUẬN.docx
BÀI TIỂU LUẬN.docxBÀI TIỂU LUẬN.docx
BÀI TIỂU LUẬN.docxPhNguynVit3
 
Iq va phuong phap xac dinh
Iq va phuong phap xac dinhIq va phuong phap xac dinh
Iq va phuong phap xac dinhXuan Le
 
Chuong1 ngung khai niem co ban
Chuong1 ngung khai niem co ban Chuong1 ngung khai niem co ban
Chuong1 ngung khai niem co ban thutran_93
 
Slide bài giảng đại học mở Logic hoc.pdf
Slide bài giảng đại học mở Logic hoc.pdfSlide bài giảng đại học mở Logic hoc.pdf
Slide bài giảng đại học mở Logic hoc.pdfTrnPhng275391
 
Cao học_chương 1.ppt
Cao học_chương 1.pptCao học_chương 1.ppt
Cao học_chương 1.pptThyLinhPhm52
 
Noi dung-tu-nghien-cuu-so-1
Noi dung-tu-nghien-cuu-so-1Noi dung-tu-nghien-cuu-so-1
Noi dung-tu-nghien-cuu-so-1NgoNgocNhan
 
Noi dung-tu-nghien-cuu-so-1
Noi dung-tu-nghien-cuu-so-1Noi dung-tu-nghien-cuu-so-1
Noi dung-tu-nghien-cuu-so-1NgoNgocNhan
 
Noi dung-tu-nghien-cuu-so-1
Noi dung-tu-nghien-cuu-so-1Noi dung-tu-nghien-cuu-so-1
Noi dung-tu-nghien-cuu-so-1NgoNgocNhan
 

Similar to Chuong+1 2-3-4 (20)

BÀI GIẢNG KỸ NĂNG TƯ DUY SÁNG TẠO
BÀI GIẢNG KỸ NĂNG TƯ DUY SÁNG TẠO BÀI GIẢNG KỸ NĂNG TƯ DUY SÁNG TẠO
BÀI GIẢNG KỸ NĂNG TƯ DUY SÁNG TẠO
 
Trí Thông Minh.pdf
Trí Thông Minh.pdfTrí Thông Minh.pdf
Trí Thông Minh.pdf
 
Knowledge Based Systems.ppt
Knowledge Based Systems.pptKnowledge Based Systems.ppt
Knowledge Based Systems.ppt
 
CS4S Số 1(8) 2016
CS4S Số 1(8) 2016CS4S Số 1(8) 2016
CS4S Số 1(8) 2016
 
LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...
LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...
LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...
 
Tâm lý học kỹ sư.pdf
Tâm lý học kỹ sư.pdfTâm lý học kỹ sư.pdf
Tâm lý học kỹ sư.pdf
 
thuyettrinhpowerpoint-1.pptx
thuyettrinhpowerpoint-1.pptxthuyettrinhpowerpoint-1.pptx
thuyettrinhpowerpoint-1.pptx
 
BÀI TIỂU LUẬN.docx
BÀI TIỂU LUẬN.docxBÀI TIỂU LUẬN.docx
BÀI TIỂU LUẬN.docx
 
Iq va phuong phap xac dinh
Iq va phuong phap xac dinhIq va phuong phap xac dinh
Iq va phuong phap xac dinh
 
Chuong1 ngung khai niem co ban
Chuong1 ngung khai niem co ban Chuong1 ngung khai niem co ban
Chuong1 ngung khai niem co ban
 
Ppnckh 08
Ppnckh 08Ppnckh 08
Ppnckh 08
 
Slide bài giảng đại học mở Logic hoc.pdf
Slide bài giảng đại học mở Logic hoc.pdfSlide bài giảng đại học mở Logic hoc.pdf
Slide bài giảng đại học mở Logic hoc.pdf
 
Cao học_chương 1.ppt
Cao học_chương 1.pptCao học_chương 1.ppt
Cao học_chương 1.ppt
 
Cơ Sở Lý Luận Luận Văn Phát Triển Một Số Yếu Tố Của Tư Duy Sáng Tạo Cho H...
Cơ Sở Lý Luận Luận Văn Phát Triển Một Số Yếu Tố Của Tư Duy Sáng Tạo Cho H...Cơ Sở Lý Luận Luận Văn Phát Triển Một Số Yếu Tố Của Tư Duy Sáng Tạo Cho H...
Cơ Sở Lý Luận Luận Văn Phát Triển Một Số Yếu Tố Của Tư Duy Sáng Tạo Cho H...
 
Cơ Sở Lý Luận Luận Văn Phát Triển Một Số Yếu Tố Của Tư Duy Sáng Tạo Cho H...
Cơ Sở Lý Luận Luận Văn Phát Triển Một Số Yếu Tố Của Tư Duy Sáng Tạo Cho H...Cơ Sở Lý Luận Luận Văn Phát Triển Một Số Yếu Tố Của Tư Duy Sáng Tạo Cho H...
Cơ Sở Lý Luận Luận Văn Phát Triển Một Số Yếu Tố Của Tư Duy Sáng Tạo Cho H...
 
Noi dung-tu-nghien-cuu-so-1
Noi dung-tu-nghien-cuu-so-1Noi dung-tu-nghien-cuu-so-1
Noi dung-tu-nghien-cuu-so-1
 
Noi dung-tu-nghien-cuu-so-1
Noi dung-tu-nghien-cuu-so-1Noi dung-tu-nghien-cuu-so-1
Noi dung-tu-nghien-cuu-so-1
 
Noi dung-tu-nghien-cuu-so-1
Noi dung-tu-nghien-cuu-so-1Noi dung-tu-nghien-cuu-so-1
Noi dung-tu-nghien-cuu-so-1
 
Tin
TinTin
Tin
 
Chuong v
Chuong vChuong v
Chuong v
 

Chuong+1 2-3-4

  • 1. TRÍ TUỆ NHÂN TẠO Trần Thị Hương Khoa Kỹ Thuật – Công Nghệ Trường Đại Học Hà Tĩnh Email: huong.tranthi@htu.vn 1
  • 2. 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 ĐỀ 2
  • 3. TÀI LIỆU THAM KHẢO 1. Trí tuệ nhân tạo – Các phương pháp Giải quyết vấn đề và kỹ thuật xử lý tri thức (1999) Nguyễn Thanh Thuỷ 2. Trí tuệ nhân tạo – Đinh Mạnh Tường 3
  • 4. KHỐI LƯỢNG & CẤU TRÚC HỌC PHẦN  Số đơn vị học trình: 3  Lý thuyết: 30 tiết  Thực hành, bài tập: 15tiết 4
  • 5. CHƯƠNG 1: TỔNG QUAN VỀ KHOA HỌC TTNT 5
  • 6. Trí Tuệ Nhân Tạo là gì?  Là một nhánh của khoa học máy tính liên quan đến sự tự động hóa hành vi thông minh. Trí tuệ là gì?  Các câu hỏi chưa có câu trả lời:  Liệu trí tuệ có phải là một khả năng duy nhất hay chỉ là một tên gọi cho một tập hợp các hành vi phân biệt và độc lập nhau?  Thế nào là khả năng sáng tạo?  Thế nào là trực giác?  Điều gì diễn ra trong quá trình học? 6
  • 7. Trí Tuệ Nhân Tạo là gì?  Intelligence? Trí năng, trí tuệ, trí thông minh  Thế nào là Artificial intelligence? Chúng ta sẽ phân tích 4 loại quan niệm về intelligence sau : 7
  • 8. Trí Tuệ Nhân Tạo là gì? “Nỗ lực tạo ra các máy tính “Việc nghiên cứu các năng lực trí biết tư duy … máy tính có ý tuệ sử dụng các mô hình tính toán thức (The exciting new effort to (The study of mental faculties make computers thinks … through the use of computational machine with minds, in the full models)” and literal sense)” (Charniak et al. 1985) (Haugeland 1985) “Nghệ thuật sáng tạo ra các “Nghiên cứu tìm cách giải thích và máy thực hiện các chức năng mô phỏng các hành vi thông minh đòi hỏi sự thông minh như khi bằng các quá trình tính toán (A field thực hiện bởi con người (The of study that seeks to explain and art of creating machines that emulate intelligent behavior in terms perform functions that require of computational processes)” intelligence when performed (Schalkol, 1990) by people)” (Kurzweil, 1990) 8
  • 9. Trí tuệ nhân tạo: Hệ thống tư duy như con người “Nỗ lực tạo ra các máy tính Hệ thống tư duy như con biết tư duy … máy tính có ý người thức (The exciting new effort to ( Systems that think make computers thinks … machine with minds, in the full like humans ) and literal sense)” (Haugeland 1985) Ví dụ: Newell&Simson Con người tư duy như thế (1961) phát triển GPS nào? Chưa có câu trả lời (General Problem chính xác trong rất nhiều Solving) bắt chước cách tình huống. giải quyết các bài toán trong toán học của con người. 9
  • 10. Trí tuệ nhân tạo: hệ thống ứng xử như con người Hệ thống ứng xử (hành động) Turing (1950) đề xuất như con người (Hệ thống mà bộ test (Turing test): hành vi, ứng xử của nó như hội thoại giữa hệ con người) thống và người phỏng vấn. Nếu người phỏng Systems that act like vấn không biết được humans hệ thống là người hay “Nghệ thuật sáng tạo ra các là máy thì hệ thống máy thực hiện các chức năng đó được cho là thông đòi hỏi sự thông minh như khi minh. thực hiện bởi con người (The art of creating machines that - Con người lúc nào cũng perform functions that require ứng xử “đúng”? intelligence when performed - Hành vi như thế nào được by people)” (Kurzweil, 1990) coi là giống con người?
  • 11. Trí tuệ nhân tạo: hệ thống tư duy hợp lý Hệ thống tư duy hợp “Việc nghiên cứu các năng lực trí lý tuệ sử dụng các mô hình tính toán (The study of mental faculties System that think through the use of computational rationally models)” Aristotle hình thức (Charniak et al. 1985) hóa “tư duy đúng” 1. Không biểu diễn được tri (Luật của tư duy thức không chắc chắn đúng). Hệ tam đoạn 2. Nhiều bài toán không dễ giải luận là khuôn mẫu để quyết do thiếu tài nguyên thu được kết luận (không gian nhớ và thời đúng khi cho giả thiết gian) đúng. VD: Socrat là 3. Nhiều hành động coi là người; tất cả mọi thông minh nhưng ko liên người đều chết; do đó quan đến tư duy (chẳng hạn: Socrat phải chết. co tay lại khi chạm vật nóng)
  • 12. Trí tuệ nhân tạo: hệ thống ứng xử hợp lý Hệ thống ứng xử hợp lý (Hệ thống mà hành động/ứng xử hợp lý) Systems that act rationally Ưu điểm: “Nghiên cứu tìm cách giải thích và -Tổng quát hơn mô phỏng các hành vi thông minh -Tính hợp lý có thể bằng các quá trình tính toán (A field dễ dàng được định of study that seeks to explain and nghĩa (rationality is emulate intelligent behavior in terms well defined) of computational processes)” (Schalkol, 1990) CS 460, Lecture 1
  • 13. Artificial Intelligence: Hành động hợp lý  Intelligence? Trí năng, trí tuệ, trí thông minh  Môn học này, chúng ta thống nhất quan niệm trí thông minh là hành động hợp lý, hành động tốt nhất hoặc hợp lý nhất mà cho kết quả tối ưu của một hàm nào đó.  Quan niệm như trên phù hợp với: khi nói đến tính thông minh, chúng ta thường gắn với một hành động, hành vi, ứng xử nào đó. Vi vậy Intelligence có thể coi đồng nghĩa với rational action, hay intelligent/rational agent
  • 14. Turing Test Interrogator  Ưu điểm của Turing Test  Khái niệm khách quan về trí tuệ  Tránh đi những thảo luận về quá trình bên trong và ý thức  Loại trừ định kiến thiên vị của người thẩm vấn
  • 15. Các ý kiến phản đối Turing Test  Thiên vị các nhiệm vụ giải quyết vấn đề bằng ký hiệu  Trói buộc sự thông minh máy tính theo kiểu con người, trong khi con người có:  Bộ nhớ giới hạn  Có khuynh hướng nhầm lẫn Tuy nhiên, trắc nghiệm Turing đã cung cấp một cơ sở cho nhiều sơ đồ đánh giá dùng thực sự cho các chương trình TTNT hiện đại.
  • 16. Các Ứng Dụng của TTNT 1. Trò chơi và các bài toán đố 2. Suy luận và chứng minh định lý tự động 3. Các hệ chuyên gia (các hệ tri thức) 4. Xử lý ngôn ngữ tự nhiên 5. Lập kế hoạch và người máy 6. Máy học 7. Mạng Neuron và giải thuật di truyền 8. …
  • 17. Trí Tuệ Nhân Tạo - Đặc Điểm  Sử dụng máy tính vào suy luận trên các ký hiệu, nhận dạng qua mẫu, học, và các suy luận khác…  Tập trung vào các vấn đề “khó” không thích hợp với các lời giải mang tính thuật toán.  Quan tâm đến các kỹ thuật giải quyết vấn đề sử dụng các thông tin không chính xác, không đầy đủ, mơ hồ…  Cho lời giải ‘đủ tốt’ chứ không phải là lời giải chính xác hay tối ưu.  Sử dụng heuristics – “bí quyết”  Sử dụng tri thức chuyên môn  …
  • 18. Những vấn đề chưa được giải quyết  Chương trình chưa tự sinh ra được heuristic  Chưa có khả năng xử lý song song của con người  Chưa có khả năng diễn giải một vấn đề theo nhiều phương pháp khác nhau như con người.  Chưa có khả năng xử lý thông tin trong môi trường liên tục như con người.  Chưa có khả năng học như con người.  Chưa có khả năng tự thích nghi với môi trường.
  • 19. Các phương pháp và kỹ thuật  Các phương pháp biểu diễn tri thức và kỹ thuật xử lý tri thức  Các phương pháp giải quyết vấn đề  Các phương pháp Heuristic  Các phương pháp học  Các ngôn ngữ TTNT 19
  • 20. Các phương pháp và kỹ thuật  Các phương pháp biểu diễn tri thức và kỹ thuật xử lý tri thức  Các phương pháp giải quyết vấn đề  Các phương pháp Heuristic  Các phương pháp học  Các ngôn ngữ TTNT 20
  • 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 Tâ m lý c Nghiên cứu tâm họ c t họ Các lý thuyết của lập trí con người Triế luận và học TTNT Ngôn ngữ học Toán học Nghiên cứu ý nghĩa và Các lý thuyết xác suất logic, cấu trúc của ngôn ngữ tạo quyết định và tính toán Khoa học máy tính Làm cho TTNT trở thành hiện thực 21
  • 22. LỊCH SỬ PHÁT TRIỂN CỦA KHOA HỌC TTNT 22
  • 23. CÁC THÀNH TỰU CỦA KHOA HỌC TTNT 23
  • 24. CÁC THÀNH TỰU CỦA KHOA HỌC TTNT 24
  • 25. CÁC THÀNH TỰU CỦA KHOA HỌC TTNT 25
  • 26. CÁC THÀNH TỰU CỦA KHOA HỌC TTNT SONY AIBO 26
  • 27. CÁC THÀNH TỰU CỦA KHOA HỌC TTNT Đi bộ Quay Honda Humanoid Robot & Asimo Lên xuống cầu thang 27
  • 28. CÁC THÀNH TỰU CỦA KHOA HỌC TTNT 28
  • 29. CÁC THÀNH TỰU CỦA KHOA HỌC TTNT 29
  • 30. CÁC XU HƯỚNG MỚI TRONG TTNT 30
  • 31. CÁC XU HƯỚNG MỚI TRONG TTNT 31
  • 32. CÁC XU HƯỚNG MỚI TRONG TTNT 32
  • 33. CÁC XU HƯỚNG MỚI TRONG TTNT 33
  • 34. CÁC XU HƯỚNG MỚI TRONG TTNT 34
  • 35. CÁC XU HƯỚNG MỚI TRONG TTNT 35
  • 36. CÁC XU HƯỚNG MỚI TRONG TTNT 36
  • 37. Chương 2. CÁC CHIẾN LƯỢC TÌM KIẾM MÙ
  • 38. I. Biểu diễn vấn đề trong KG trạng thái.  Vấn đề là gì?  Một bài toán nào đó cần giải quyết, chẳng hạn như một trò chơi, c.minh một định lý,…  Một lớp rộng các bài toán có thể giải quyết bằng cách biểu diễn bởi các trạng thái và các tóan tử (phép biến đổi trạng thái).
  • 39. Ví dụ (trò chơi 8 số)
  • 40. Các thành phần của KGTT  Sự sắp xếp các số tại mỗi thời điểm là một TT.  Hình bên trái là trạng thái ban đầu.  Hình bên phải là trạng thái kết thúc hay trạng thái đích (goal).  Trạng thái đích của một bài toán có thể nhiều hơn một.
  • 41. Toán tử là một phép biển đổi hợp lệ chuyển từ trạng thái này sang trạng thái khác.  Bằng các tóan tử, từ trạng thái ban đầu, tiếp tục phát triển, cuối cùng thu được một không gian trạng thái (KGTT).
  • 42. Định nghĩa  KGTT là một bộ bốn (X, u0, F, G), trong đó: X là tập các trạng thái u0 là trạng thái bắt đầu F là tập các toán tử, gồm các phép biến đổi. G là tập trạng thái đích.
  • 43. Biểu diễn KGTT  Không gian trạng thái có thể biểu diễn bằng đồ thị có hướng: mỗi đỉnh là một trạng thái, mỗi cung là một toán tử.  Nghiệm của bài toán nếu như ta tìm được đường đi từ trạng thái bắt đầu đến một trong các trạng thái đích.
  • 44. Biểu diễn bằng cây  Trong đồ thị của KGTT có thể xuất hiện chu trình gây khó khăn cho việc tìm kiếm, hạn chế các toán tử trong F có thể đưa đồ thị trở thành cây, một cấu trúc dễ tìm kiếm hơn.  VD. KGTT của trò chơi caro là cây.
  • 45. Chiến lược tìm kiếm?  Khi tìm kiếm lời giải, từ một trạng thái nào đó chưa phải là trạng thái đích, ta dựa theo toán tử sinh ra tập các trạng thái mới: mở rộng.  Để được lời giải, ta phải liên tục chọn trạng thái mới, mở rộng, kiểm tra cho đến khi tìm được trạng thái đích hoặc không mở rộng được KGTT.  Tập các trạng thái được mở rộng sẽ có nhiều phần tử, việc chọn trạng thái nào để tiếp tục mở rộng được gọi là chiến lược tìm kiếm.
  • 46. Đánh giá một chiến lược? + Tính đầy đủ: chiến lược phải đảm bảo tìm được lời giải nếu có. + Độ phức tạp thời gian: mất thời gian bao lâu để tìm được lời giải. + Độ phức tạp không gian: tốn bao nhiêu đơn vị bộ nhớ để tìm được lời giải. + Tính tối ưu: tốt hơn so với một số chiến lược khác hay không.
  • 47. Thông tin mỗi nút? + Nội dung trạng thái mà nút hiện hành đang biểu diễn. + Nút cha đã sinh ra nó. + Toán tử đã được sử dụng để sinh ra nút hiện hành. + Độ sâu của nút. + Giá trị đường đi từ nút gốc đến nút hiện hành.
  • 48. Tìm kiếm mù?  Trạng thái được chọn để phát triển chỉ đơn thuần dựa theo cấu trúc của KGTT mà không có thông tin hướng dẫn nào khác.  Nói chung tìm kiếm mù sẽ không hiệu quả.  Đây là cơ sở để chúng ta cải tiến và thu được những chiến lược hiệu quả hơn.
  • 49. 1. Tìm kiếm theo chiều rộng (BFS)  Trạng thái được ưu tiên phát triển là trạng thái được sinh ra trước.  Dùng danh sách open chứa các trạng thái sinh ra đang chờ phát triển  Danh sách closed chứa các trạng thái đã được khảo sát.
  • 51. Thuật toán BFS procedure bfs; begin open:=[start]; closed:=[]; while open<>[] do begin loại tt ngoài cùng bên trái của open, gọi nó là u if (u là một đích) then thông báo kết quả, thoát else begin Đưa u vào closed Phát sinh các con v của u Loại các con đã có trong open+closed Đưa các con còn lại vào bên phải open (1) end end Thông báo thất bại End
  • 52. 1. Open = [A]; closed = [] 2. Open = [B,C,D]; closed = [A] 2. Open = [C,D,E,F]; closed = [B,A] 3. Open = [D,E,F,G,H]; closed = [C,B,A] 4. Open = [E,F,G,H,I,J]; closed = [D,C,B,A] 5. Open = [F,G,H,I,J,K,L]; closed = [E,D,C,B,A] 6. Open = [G,H,I,J,K,L,M]; (vì L đã có trong open); closed = [F,E,D,C,B,A] …
  • 53. Nhận xét  Các trạng thái con phát sinh nhờ các toán tử hợp lệ.  Danh sách open bổ sung phần tử bên phải, lấy phần tử bên trái.  Thuật tóan khảo sát tất cả các nút ở độ sâu d sau đó mới đến mức d+1 nên chắc chắn tìm được nghiệm.  Nếu vô nghiệm và KGTT hữu hạn thì thuật toán sẽ dừng và thông báo vô nghiệm.
  • 54. Đánh giá  Giả sử mỗi trạng thái trung bình sinh ra b trạng thái con (kề), b - gọi là nhân tố nhánh.  Giả sử đường đi nghiệm có độ dài d. Tình trạng xấu nhất phải khảo sát là ?  Độ phức tạp thời gian là O(b^d), độ phức tạp không gian cũng là O(b^d).
  • 55. 55
  • 56. 2. Tìm kiếm theo chiều sâu (DFS)  Mở rộng nút có độ sâu hơn trước các nút khác đang chờ xử lý.  Khi nào không mở rộng được nữa thì mới quay lại nút ở độ sâu thấp hơn.  Do đó, các nút mới được sinh ra chờ xử lý phải được bỏ bên trái của hàng đợi open (tại câu lệnh 1). 56
  • 57. Thuật toán DFS procedure bfs; begin open:=[start]; closed:=[]; while open<>[] do begin loại tt u ngoài cùng bên trái của open if (u là một đích) then thông báo kết quả, thoát else begin Đưa u vào closed Phát sinh các con v của u Loại các con đã có trong open+closed Đưa các con còn lại vào bên trái open (1) end end Thông báo thất bại End 57
  • 58. Tìm kiếm Sâu 1. Open = [A]; closed = [] 2. Open = [B,C,D]; closed = [A] 3. Open = [E,F,C,D];closed = [B,A] 4. Open = [K,L,F,C,D]; closed = [E,B,A] 5. Open = [S,L,F,C,D]; closed = [K,E,B,A] 6. Open = [L,F,C,D]; closed = [S,K,E,B,A] 7. Open = [T,F,C,D]; closed = [L,S,K,E,B,A] 8. Open = [F,C,D]; closed = [T,L,S,K,E,B,A] 9. … 58
  • 59. Nhận xét  Khảo sát nút ở độ sâu d thì DFS lưu trữ b*d nút, khi đó BFS phải lưu trữ b^d nút.  Ở độ sâu d=12, DFS chỉ sử dụng 12KB trong khi BFS dùng đến 111TB.  Độ phức tạp thời gian của DFS vẫn là O(b^d) vì trong trường hợp xấu nhất các nút được khảo sát vẫn như BFS.  Cơ hội để tìm thấy đích nhanh hơn nếu nó nằm ở phần KGTT bên trái. 59
  • 60. Hạn chế  Bỏ qua cơ hội tìm thấy ngay trạng thái đích khi trạng thái này nằm gần gốc.  Nếu KGTT vô hạn có thể không tìm được trạng thái đích.  Nghiệm nói chung không phải là đường đi ngắn nhất.  DFS là chiến lược không đầy đủ, không tối ưu. Không nên sử dụng khi KGTT có độ sâu lớn hoặc vô hạn. 60
  • 61. Tìm kiếm sâu bằng cách đào sâu nhiều lần  Độ sâu giới hạn (depth bound): giải thuật TK sâu sẽ quay lui khi trạng thái đang xét đạt đến độ sâu giới hạn đã định.  TK Sâu bằng cách đào sâu nhiều lần: TK sâu với độ sâu giới hạn là 1, nếu thất bại, nó sẽ lặp lại GT TK sâu với độ sâu là 2,… GT tiếp tục cho đến khi tìm được mục tiêu, mỗi lần lặp lại tăng độ sâu lên 1.  GT này có độ phức tạp về thời gian cùng bậc với TK Rộng và TK Sâu. 61
  • 62. Thuật toán procedure DFS(d); begin open:=[start]; closed:=[]; depth(start):=0; while open<>[] do begin loại u ngoài cùng bên trái open if (u là một đích) then thbáo kết quả, thoát else 62
  • 63. begin Đưa u vào closed If depth(u)<d then begin Phát sinh các con v của u Loại các con vừa phát sinh đã có trong open+ closed Gán độ sâu cho các v bằng depth(u)+1 Đưa các con v còn lại vào bên trái open End; End; End; {while} Thông báo thất bại End. 63
  • 64. Tìm kiếm sâu dần l =0 64
  • 65. Tìm kiếm sâu dần l =1 65
  • 66. Tìm kiếm sâu dần l =2 66
  • 67. Tìm kiếm sâu dần l =3 67
  • 68. Tìm kiếm sâu dần  Số lượng nodes được sinh trong giới hạn độ sâu d với độ phân nhánh b: NDLS = b0 + b1 + b2 + … + bd-2 + bd-1 + bd  Số lượng nodes được sinh trong tìm kiếm sâu dần với độ sâu d độ phân nhánh b: NIDS = (d+1)b0 + d b1 + (d-1)b2 + … + 3bd-2 +2bd-1 + 1bd  Ví dụ b = 10, d = 5,.  NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111.  NIDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456.  Tỷ lệ (123,456 - 111,111)/111,111 = 11% 68
  • 69. Qui bài toán về các bài toán con và các chiến lược tìm kiếm trên đồ thị Và/Hoặc  Qui bài toán về các bài toán con  Thể hiện dưới dạng đồ thị VÀ/HOẶC  Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC 69
  • 70. Qui bài toán về các bài toán con  Ý tưởng cơ bản là xuất phát từ bài toán đặt ra, tách bài toán này thành các bài toán con cho đến khi bài toán ban đầu trở thành các bài toán sơ cấp.  Bài toán sơ cấp được hiểu là bài toán mà lời giải của chúng có thể nhận được ngay. VD: Với bài toán n2 – 1 số, bài toán sơ cấp chính là bài toán chuyển ô trống 1 lần để nhận được trạng đích. 70
  • 71. Thể hiện dưới dạng đồ thị VÀ/HOẶC  Đồ thị (định hướng) VÀ/HOẶC là cặp G = (N,A), sao cho ∀n ∈ N, tất cả các đỉnh m∈ B(n) cùng thuộc vào một trong hai kiểu: đỉnh VÀ, đỉnh HOẶC. Khi các đỉnh con m của n là đỉnh VÀ thì cung (n,m) (m∈ B(n)) được nối bởi ngoặc lớn.  VD: 71
  • 72. Thể hiện dưới dạng đồ thị VÀ/HOẶC Quy bµi to¸n vÒ c¸c bµi to¸n con § å thÞv µ /h o Æc Bµi to¸ n §Ø nh To¸ n tö quy bµi to¸ n vÒbµi to¸ n con Cung Bµi to¸ n ban ® u Ç § Ø ® u (® nh gèc) nh Ç Ø C¸ c bµi to¸ n s¬ cÊp § Ø cuèi, ® nh kÕ thóc nh Ø t C¸ c bµi to¸ n con phô thuéc § Ø vµ nh C¸ c bµi to¸ n con ® lË éc p § Ø hoÆ nh c Gi¶i bµi to¸ n ban ® u. Ç T× ® thÞcon lêi gi¶i. m å 72
  • 73. Thể hiện dưới dạng đồ thị VÀ/HOẶC  Đỉnh giải được:  Các đỉnh kết thúc (cuối) là đỉnh giải được.  Nếu đỉnh n có các đỉnh con là đỉnh VÀ thì nó là đỉnh giải được khi và chỉ khi tất cả các đỉnh con của nó giải được.  Nếu đỉnh n có các đỉnh con là đỉnh HOẶC thì nó là đỉnh giải được khi và chỉ khi tồn tại 1 đỉnh con của nó giải được.  Đỉnh không giải được:  Nếu đỉnh n không là đỉnh kết thúc và không có các đỉnh con thì nó là đỉnh không giải được.  Nếu đỉnh n không là đỉnh kết thúc và có các đỉnh con là đỉnh VÀ thì nó là đỉnh không giải được khi và chỉ khi tồn tại một đỉnh con không giải được.  Nếu đỉnh n không là đỉnh kết thúc mà có các đỉnh con là đỉnh HOẶC thì nó là đỉnh không giải được khi và chỉ khi tất cả các 73
  • 74. Thể hiện dưới dạng đồ thị VÀ/HOẶC  Đồ thị lời giải: Là đồ thị con của đồ thị VÀ/HOẶC chỉ chứa các đỉnh giải được và đỉnh đầu.  Nhận xét:  Nếu trên đồ thị VÀ/HOẶC không có đỉnh VÀ nào thì đồ thị VÀ/HOẶC trở thành đồ thị thông thường và khi đó đồ thị con lời giải sẽ suy biến thành đường đi từ đỉnh đầu tới một đỉnh kết thúc nào đó. 74
  • 75. Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC 75
  • 76. Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC 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 do {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đ”}} 76
  • 77. Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC  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 Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 77
  • 78. Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC: Thủ tục TKRM 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” nếu n0 kgđ, “thành công” nếu n0 gđ và đưa ra cây lời giải. Phương pháp: /* sử dụng hai danh sách FIFO: MO, ĐONG */ {MO ={n0}; While MO ≠ ∅ do {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) do {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 các đỉnh có tổ tiên là đỉ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 các đỉnh có tổ tiên là đỉnh không giải được;}}} 78
  • 79. Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC Thủ tục TKRM  VD:Áp dụng thuật toán TKRM đối với cây sau Tập T = {t1,t2,t3,t4} Thứ tự duyệt: abcdefgijk g Cây lời giải: t4 các cung tô đậm D k E c f t3 C t2 F e B a t1 Nhận xét: Nếu cây lời giải tồn tại thì thủ tục TKRM sẽ dừng và j cho kết quả là cây lời giải có độ cao nhỏ nhất b A d i 79
  • 80. Các phương pháp tìm kiếm trong đồ 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” nếu n0 kgđ, “thành công” nếu n0 gđ và đưa ra cây lời giải. Phương pháp: /* sử dụng hai danh sách FIFO: DONG, LIFO: MO */ {MO ={n0}; While MO ≠ ∅ do {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) do {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 các đỉnh có tổ tiên là đỉ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 các đỉnh có tổ tiên là đỉnh không giải được;}}} 80
  • 81. Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC Thủ tục TKSM  VD: Áp dụng thuật toán TKSM đối với cây sau d B Tập T = {t1,t2,t3,t4} b f t1 Thứ tự duyệt: a abdAfceg C E t2 Cây lời giải: t3 A e D g c các cung tô đậm t4 Nếu một đỉnh kết thúc nào đó có độ sâu vượt quá giới hạn độ sâu D thì nó sẽ bị bỏ qua trong quá trình tìm kiếm. Do vậy, trên thực tế có thể tồn tại cây 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 trạng này, người ta có thể cải biên thủ tục tìm kiếm theo chiều sâu thành thủ tục tìm kiếm sâu dần, trong đó các nút được duyệt từng mức một. 81
  • 82. Chương 3. CÁC CHIẾN LƯỢC TÌM KINH NGHIỆM 82
  • 83. Nguyên nhân  Các chiến lược tìm kiếm mù kém hiệu quả và không thể áp dụng được trong nhiều trường hợp.  Sử dụng thông tin của trạng thái kết hợp với nhận xét dựa theo kinh nghiệm để cải tiến là quan điểm chung của các chiến lược tìm kiếm kinh nghiệm. 83
  • 84. 1. Hàm đánh giá 84
  • 85. Khái niệm về hàm đánh giá  Hàm đánh giá là một hàm ước lượng khả năng về đích của mỗi trạng thái.  Chỉ là ước lượng vì nói chung chúng ta không thể tính toán chính xác khả năng này, nếu tính được nghĩa là đã tìm được lời giải!  Tuy nhiên, nhờ kinh nghiệm trong nhiều bài toán cụ thể, có thể ước lượng được g.trị này. 85
  • 86. Ví dụ  Nếu đếm các số sai vị trí của một trạng thái so với trạng thái đích thì B là 3 và C là 1.  Như vậy, số này càng nhỏ thì trạng thái đó càng có khả năng về đích  Có thể dùng số này làm giá trị cho hàm đánh giá. 86
  • 87. Hình thức hóa  Trong đó X là KGTTcủa bài toán.  Dễ thấy, nếu u là trạng thái đích thì h(u)=0. Mỗi u ta có một giá trị ước lượng là h(u)  h(B)=3; h(C)=1  Hàm đánh giá còn được gọi là hàm heuristic. Giá trị hàm càng nhỏ thì khả năng về đích của trạng thái càng lớn. 87
  • 89. Nhiều cách XD hàm h  h(D)=h(E)=2  Về mặt đường đi qua các ô ngang dọc để di chuyển về đúng vị trí thì (D) phải di chuyển đọan đường xa hơn (E) nên có thể là (D) không tốt bằng (E).  Theo nhận xét này, ta có thể xây dựng hàm h bằng tổng khoảng cách phải di chuyển của các ô sai vị trí.  Ví dụ: h1(D)=3+3 = 6, h1(E)=2+2=4  Một ví dụ khác là lấy độ dài đường chim bay ! 89
  • 90. Các bước xây dựng chiến lược tìm kiếm + Biểu diễn bài toán bằng một KGTT thích hợp + Xây dựng hàm đánh giá + Thiết kế chiến lược chọn trạng thái 90
  • 91. II. Các chiến lược tìm kiếm kinh nghiệm. 91
  • 92. a) Tìm kiếm leo đồi – Hill Climbing Search (Pearl, 1984)  Chọn một trạng thái tốt hơn trạng thái đang khảo sát để phát triển. Nếu không có thuật tóan phải dừng.  Nếu chỉ chọn một trạng thái tốt hơn: leo đồi đơn giản, trạng thái tốt nhất: leo đồi dốc đứng.  Sử dụng hàm h để biết trạng thái nào tốt hơn.  Khác với tìm kiếm sâu, leo đồi không lưu tất cả các con mà chỉ lưu đúng một t.thái được chọn nếu có. 92
  • 93. Thuật toán HCS procedure hcs(start); begin open:=[start]; closed:=[]; while open<>[] do begin loại tt ngoài cùng bên trái của open, gọi nó là u if (u là một đích) then thông báo kết quả, thoát else begin Đưa u vào closed Phát sinh các con v của u Loại các con đã có trong open+closed Sap xep danh sach cac dinh con cua u theo thu tu tang dan, goi la L1. Day L1 vao ben trai danh sach open. end 93
  • 94. B1: open =[A], close=[] B2: close=[A], open=[C] B3: close=[A,C], open=[G]; B4: Thông báo thành công 94
  • 95. Yêu cầu: áp dụng thuật toán leo đồi mô tả không gian trạng thái qua các bước. Vẽ đồ thị đường đi
  • 96. Nhanh, có thể thất bại  Hiệu quả khi có một hàm đánh giá tốt. Bế tắc nếu  Gặp điểm cực đại địa phương.  Khu vực bình nguyên.  Giải pháp xáo trộn ngẫu nhiên.  Không có giải pháp tổng quát. Cải tiến? 96
  • 97. Tìm kiếm ưu tiên tốt nhất – Best First Search (Best-FS)  Chọn trạng thái tốt nhất trong open để phát triển, kể cả trạng thái này không tốt bằng trạng thái đã sinh ra nó.  Lưu trữ tất cả các trạng thái anh em nên khi đi vào ngõ cụt, chiến lược này có thể lui ra được mà không bị bế tắc.  Best-FS kết hợp tìm kiếm sâu và rộng.  Best-FS “cẩn thận” hơn ghi nhớ lại các một số trạng thái không tốt hơn trước đó để còn có thể quay lại. 97
  • 98. Ví dụ 98
  • 99. 99
  • 100. Thuật toán Best_FS procedure Best_FS; begin open:={u0}; closed:={ }; while open<>{ } do begin loại trạng thái ngoài cùng bên trái của open, gọi nó là u if (u là một đích) then thông báo thắng lợi, thoát else begin Đưa u vào closed Phát sinh các con v của u Loại các con v đã có mặt trong open + closed Đưa các con còn lại vào open Sắp xếp open sao cho phần tử tốt nhất nằm bên trái end end Thông báo thất bại end 100