MỤC LỤC
PHẦN I:CƠSỞLÝ THUYẾT TRONG LẬP KẾHOẠCH. 11
Lịch sửlập kếhoạch . 12
CHƯƠNG 1:CÁC KHÁI NIỆM CƠBẢN. 16
1CÁC THUẬT NGỮCHUNG TRONG LẬP KẾHOẠCH. 16
2BẢN CHẤT CỦA VẦN ĐỀLẬP KẾHOẠCH. 18
3MỘT SỐ ỨNG DỤNG CỦA LẬP KẾHOẠCH TRONG THỰC TẾ. 19
3.1. Robot sắp xếp các khối . 19
3.2. Robot mua hàng hoá . 20
CHƯƠNG 2:CÁC ĐỐI TƯỢNG TRONG LẬP KẾHOẠCH. 22
1 AGENT . 22
1.1. Khái niệm. 22
1.2. Hành động của agent. 23
1.3. Agent program . 26
1.4. Các yếu tố đểxây dựng agent program. 28
1.5. Cấu trúc agent . 29
1.6. Các loại agent. 30
1.6.1. Agent phản xạ đơn giản . 30
1.6.2. Agent lưu vết môi trường. 32
1.6.3. Agent dựa trên mục tiêu. 34
1.6.4. Agent dựa trên tính hiệu quả. 35
2MÔI TRƯỜNG . 37
2.1. Khái niệm. 37
2.2. Các loại môi trường và thuộc tính của nó . 38
2.2.1. Môi trường tiếp cận được và không tiếp cận được . 38
Nghiên cứu planning đểgiải bài toán xác định lộtrình
7
2.2.2. Môi trường xác định và không xác định . 38
2.2.3. Môi trường episodic và nonepisodic. 38
2.2.4. Môi trường tĩnh và động . 39
2.2.5. Môi trường rời rạc và liên tục . 39
CHƯƠNG 3:CÁC LÝ THUYẾT LIÊN QUAN ĐẾN LẬP KẾHOẠCH. 42
1GIẢI TOÁN BẰNG PHƯƠNG PHÁP TÌM KIẾM. 42
1.1. Agent giải quyết bài toán . 42
1.1.1. Mô tả. 42
1.1.2. Ví dụ. 43
1.1.3. Chương trình agent giải quyết bài toán đơn giản. 43
1.2. Thiết lập bài toán. 44
1.2.1. Các kiểu bài toán . 45
1.2.1.1. Bài toán trạng thái đơn . 45
1.2.1.2. Bài toán đa trạng thái . 46
1.2.1.3. Bài toán ngẫu nhiên. 46
1.2.1.4. Bài toán khảo sát . 47
1.2.2. Định nghĩa bài toán và giải pháp . 47
1.2.3. Đo mức độthực thi của việc giải toán . 48
1.2.3.1. Các phương pháp đo độthực thi . 48
1.2.3.2. Ví dụ. 49
1.2.4. Chọn trạng thái và hành động . 49
1.3. Tìm kiếm giải pháp . 51
1.3.1. Tạo các chuỗi hành động . 51
1.3.2. Cấu trúc dữliệu của cây tìm kiếm . 54
2GIỚI THIỆU NGÔN NGỮMÔ TẢBÀI TOÁN. 56
2.1. Sựtrình bày, suy luận và logic. 57
Nghiên cứu planning đểgiải bài toán xác định lộtrình
8
2.1.1. Sựtrình bày ngôn ngữ. 57
2.1.2. Suy luận. 59
2.2. Logic mệnh đề. 60
2.2.1. Cú pháp . 60
2.2.2. Ngữnghĩa. 61
2.3. Logic trật tự đầu tiên . 61
2.3.1. Cú pháp và ngữnghĩa . 62
2.3.2. Các ví dụ. 63
2.3.3. Lượng từ. 64
2.3.4. Những ký hiệu đặt biệt trong tập hợp, danh sách và sốhọc . 65
2.3.5. Phép tính tình huống . 66
CHƯƠNG 4:CÁC VẤN ĐỀTRONG LẬP KẾHOẠCH . 69
1GIỚI THIỆU AGENT LẬP KẾHOẠCH ĐƠN GIẢN. 69
2TỪGIẢI QUYẾT BÀI TOÁN ĐẾN LẬP KẾHOẠCH. 70
3LẬP KẾHOẠCH SỬDỤNG PHÉP TÍNH TÌNH HUỐNG . 75
4 NGÔN NGỮSTRIPS: NGÔN NGỮTRÌNH BÀY CƠBẢN TRONG
LẬP KẾHOẠCH. 77
4.1. Mô tảtrạng thái và mục tiêu . 77
4.2. Mô tảhành động . 78
4.3. Không gian ngữcảnh và không gian kếhoạch . 80
4.4. Trình bày kếhoạch. 81
4.5. Giải pháp . 85
CHƯƠNG 5:THUẬT TOÁN PARTIAL-ORDER-PLANNING (POP) . 88
1MÔ TẢ. 88
1.1. Ý tưởng thuật toán. 88
1.2. Chi tiết thuật toán . 89
Nghiên cứu planning đểgiải bài toán xác định lộtrình
9
2VÍ DỤ. 90
2.1. Mô tảbài toán . 90
2.2. Áp dụng thuật toán POP cho bài toán . 91
CHƯƠNG 6:MÔ HÌNH LẬP KẾHOẠCH PHÂN RÃ PHÂN CẤP . 100
1 PHÂN RÃ PHÂN CẤP TOÁN TỬ. 100
1.1. Đặt vấn đề. 100
1.2. Phân rã phân cấp là gì? . 100
1.3. Ví dụ. 101
1.4. Các vấn đềcần quan tâm đối với lập kếhoạch phân rã phân cấp. 102
1.4.1. Mởrộng ngôn ngữSTRIPS . 102
1.4.2. Thuật toán HD-POP . 103
2 PHÂN TÍCH MÔ HÌNH PHÂN RÃ PHÂN CẤP. 106
2.1. Giải pháp thuận và giải pháp nghịch. 107
2.2. Ví dụ. 110
2.3. Sựphân rã và dùng chung . 112
PHẦN 2:ỨNG DỤNG LẬP KẾHOẠCH TRONG BÀI TOÁN TÌMĐƯỜNG
ĐI. 115
1GIỚI THIỆU BÀI TOÁN . 115
2ÝTƯỞNG. 115
3CÀI ĐẶT AGENT . 116
4CÁC CHIẾN LƯỢC . 116
5KẾT QUẢTHỰC NGHIỆM . 119
5.1. Chiến lược 2 và bộlập kếhoạch truy hồi . 125
5.2. Chiến lược 3 và bộlập kếhoạch truy hồi . 131
6 SO SÁNH LẬP TRÌNH KẾHOẠCH VÀ LẬP TRÌNH THEO LÝ
THUYẾT ĐỒTHỊ. 136
6.1. Thuật toán DijkstraMoore. 136
Nghiên cứu planning đểgiải bài toán xác định lộtrình
10
6.2. Đối với lập trình kếhoạch. 136
PHẦN 3:TỔNG KẾT . 139
1NHỮNG GÌĐÃ LÀMĐƯỢC. 139
2NHỮNG GÌ CHƯA LÀM ĐƯỢC. 139
3HƯỚNG PHÁT TRIỂN. 140
TÀI LIỆU THAM KHẢO. 141
143 trang |
Chia sẻ: oanh_nt | Lượt xem: 1717 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu planning để giải bài toán xác định lộ trình, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
n lược) trả về một giải pháp hay thất
bại
khởi tạo cây tìm kiếm sử dụng trạng thái ban đầu của bài toán
loop do
if không có trạng thái nào để mở rộng then return thất bại
chọn một nút lá để mở rộng theo chiến lược
if nút đó là trạng thái mục tiêu then return giải pháp tương ứng
else mở rộng nút và thêm nút kết quả vào cây tìm kiếm
end
Nghiên cứu planning để giải bài toán xác định lộ trình
54
Phân biệt giữa không gian trạng thái và cây tìm kiếm.
• Trong không gian trạng thái số trạng thái là hữu hạn.
• Trong cây tìm kiếm số nút là vô hạn.
Trong bài toán tìm đường đi, chỉ có 20 trạng thái trong không gian trạng
thái, nhưng có vô số đường đi trong không gian trạng thái này. Vì vậy, có
vô số nút trong cây tìm kiếm. Ví dụ Arad-Sibiu-Arad-Sibiu… Một thuật
toán tìm kiếm hiệu quả sẽ tránh được sự lẩn quẩn như vậy.
1.3.2. Cấu trúc dữ liệu của cây tìm kiếm
Có nhiều cách biễu diễn nút, nhưng ở đây, giả sử nút là một cấu trúc dữ
liệu có 5 thành phần:
• Trạng thái của nút trong không gian trạng thái;
• Nút cha của nó trong cây tìm kiếm;
• Toán tử được áp dụng để tạo ra nút;
• Chiều sâu của nút – số nút trên đường đi từ nút gốc đến nút này;
• Chi phí đường đi từ trạng thái ban đầu đến nút này.
Kiểu dữ liệu nút:
Nút và trạng thái
• Nút là cấu trúc dữ liệu tính toán dùng để biểu diễn cây tìm kiếm
trong những bài toán cụ thể, được tạo ra bởi một thuật toán cụ thể.
• Trạng thái thể hiện dạng (hoặc tập các dạng) của môi trường.
datatype nút
components: TRẠNG THÁI, NÚT CHA, TOÁN TỬ, CHIỀU SÂU,
CHI PHÍ ĐƯỜNG ĐI
Nghiên cứu planning để giải bài toán xác định lộ trình
55
Vì vậy, nút có chiều sâu và có nút cha, trong khi trạng thái không có. Ta
có thể có hai nút khác nhau nhưng có cùng một trạng thái, nếu trạng thái
đó được tạo ra bởi hai chuỗi hành động khác nhau.
Phương pháp tìm kiếm là một hàm, hàm này sẽ chọn nút kế tiếp
được mở rộng trong tập các nút chờ được mở rộng. Hàm tìm kiếm phải
xem qua tất cả các nút trong tập này để chọn nút thích hợp nhất. Giả sử
rằng tất cả các nút được đặt trong một hàng đợi. Các thao tác trên hàng
đợi như sau:
• TẠO HÀNG ĐỢI(các thành phần) tạo một hàng đợi với các thành
phần được cho.
• RỖNG?(Hàng đợi) trả về true nếu không có thành phần nào trong
hàng đợi.
• LẤY PHẦN TỬ ĐẦU(Hàng đợi) trả về và xoá thành phần ở trước
hàng đợi.
• CHÈN(Các thành phần,Hàng đợi) chèn một tập các thành phần
vào hàng đợi.
Với những định nghĩa này, thuật toán tìm kiếm tổng quát được cải tiến
như sau:
function TÌM KIẾM(bài toán,CHÈN) trả về một giải pháp hay thất bại
tập các nút – TẠO HÀNG ĐỢI(TẠO NÚT(TRẠNG THÁI BAN ĐẦU [bài
toán]))
loop do
if tập các nút là rỗng then return thất bại
nút – LẤY PHẨN TỬ ĐẦU(tập các nút)
if KIỂM TRA MỤC TIÊU[bài toán] được áp dụng với TRẠNG THÁI(nút)
thành công then
return nút
tập các nút – CHÈN(tập các nút,MỞ RỘNG(nút,TẬP TOÁN TỬ[bài
toán]))
end
Nghiên cứu planning để giải bài toán xác định lộ trình
56
2 GIỚI THIỆU NGÔN NGỮ MÔ TẢ BÀI TOÁN
Ngôn ngữ mô tả bài toán chủ yếu được dùng để trình bày tri thức. Mục
tiêu của trình bày tri thức là mô tả tri thức ở dạng dễ xử lí trên máy tính,
giúp agent hoạt động tốt hơn.
Phần này mô tả bản chất của ngôn ngữ trình bày và bản chất của
các ngôn ngữ logic cụ thể, giải thích chi tiết mối quan hệ giữa ngôn ngữ
và cơ cấu suy luận đi chung với ngôn ngữ.
Ngôn ngữ trình bày tri thức được định nghĩa ở hai khía cạnh:
• Cú pháp ngôn ngữ mô tả hình dạng để tạo thành câu. Cú pháp
thường được mô tả theo cách các câu được trình bày trên giấy,
nhưng sự trình bày thật sự ở bên trong máy tính: mỗi câu được trình
bày bởi một cấu hình vật lí, một mẫu vật lí điện tử trong bộ nhớ
máy tính.
• Ngữ nghĩa xác định những sự kiện trong môi trường mà câu đề cập
đến. Không có ngữ nghĩa, mỗi câu chỉ là sự sắp xếp điện tử hay là
một tập hợp các dấu hiệu trên giấy. Với ngữ nghĩa, mỗi câu là một
xác nhận về môi trường. Và với ngữ nghĩa, ta nói rằng khi một hình
dạng cụ thể tồn tại trong agent, thì agent sẽ tin câu tương ứng.
Ví dụ, cú pháp ngôn ngữ của công thức toán nói rằng nếu x và y là các
biểu thức số, thì x ≥ y là một câu về số. Ý nghĩa ngôn ngữ nói rằng x ≥ y
là sai khi y là số lớn hơn x và đúng khi ngược lại.
Cú pháp và ngữ nghĩa sẽ được định nghĩa chính xác hơn với ngôn
ngữ logic. Từ cú pháp và ngữ nghĩa này, ta có thể kế thừa cơ cấu suy luận
đối với agent sử dụng ngôn ngữ này.
Ngữ nghĩa của ngôn ngữ xác định sự kiện mà câu đề cập đến. Sự
phân biệt giữa sự kiện và sự trình bày của nó là rất quan trọng. Sự kiện là
Nghiên cứu planning để giải bài toán xác định lộ trình
57
một phần của môi trường, trong khi sự trình bày của nó phải được mã hoá
theo những cách mà nó có thể lưu trữ vật lí trong agent. Ta không thể đặt
môi trường trong máy tính (cũng không thể đặt trong con người), vì vậy
tất cả các cơ cấu suy luận phải thao tác trên sự trình bày sự kiện hơn là
trên bản thân sự kiện. Vì câu là một dạng vật lý của các thành phần trong
agent, việc suy luận là một quá trình tạo thành các dạng vật lý mới từ các
dạng cũ. Suy luận hợp lý sẽ chắc rằng những dạng mới trình bày những
sự kiện theo sau những sự kiện được trình bày bởi dạng cũ.
Hình 3.4 thể hiện mối quan hệ giữa ngữ nghĩa và câu:
2.1. Sự trình bày, suy luận và logic
2.1.1. Sự trình bày ngôn ngữ
Phần này nói về bản chất của ngôn ngữ trình bày tri thức với mục tiêu
thiết kế cú pháp và ngữ nghĩa tương ứng. Bắt đầu với hai lớp ngôn ngữ
quen thuộc, ngôn ngữ lập trình và ngôn ngữ tự nhiên để xem chúng trình
bày những gì và vấn đề là ở đâu.
Ngôn ngữ lập trình được dùng tốt trong việc mô tả thuật toán và
tạo ra cấu trúc dữ liệu. Tuy nhiên, các ngôn ngữ lập trình không thể trình
bày tất cả các câu trong ngôn ngữ tự nhiên. Vấn đề của ngôn ngữ lập trình
Sự trình bày
Môi trường
Các câu
N
gữ
nghĩa
Các sự kiện
Câu
Sự kiện
N
gữ
nghĩa
Tạo ra
Dẫn tới
Hình 3.4. Ngữ nghĩa của ngôn ngữ cung cấp mối liên hệ giữa câu và sự kiện. Thuộc tính
của một sự kiện theo sau một sự kiện khác được ánh xạ bởi thuộc tính của một câu được tạo
ra bởi những câu khác. Suy luận logic tạo ra những câu mới kế thừa từ những câu cũ.
Nghiên cứu planning để giải bài toán xác định lộ trình
58
là nó được thiết kế để mô tả hoàn chỉnh trạng thái của máy tính và cách
mà các trạng thái thay đổi trong khi thực thi chương trình. Nhưng chúng
ta muốn ngôn ngữ trình bày tri thức hỗ trợ trong những trường hợp mà
chúng ta không có thông tin hoàn chỉnh – nghĩa là không biết chắc thông
tin như thế nào nhưng chỉ biết một vài khả năng của chúng. Vì vậy ngôn
ngữ lập trình không đủ khả năng mô tả.
Ngôn ngữ tự nhiên mô tả cụ thể hơn. Chẳng hạn, báo cáo này được
viết bằng ngôn ngự tự nhiên. Ngôn ngữ tự nhiên đáp ứng được nhu cầu
truyền thông hơn là ngôn ngữ đặc tả. Vì ngữ nghĩa của câu không chỉ phụ
thuộc và bản thân câu đó mà còn phụ thuộc và ngữ cảnh khi câu được
nói. Nhưng khi một câu được đưa vào cơ sở tri thức nó đã được tách rời
khỏi ngữ cảnh. Ngôn ngữ tự nhiên có thể bị nhập nhằng, nhưng ngôn ngữ
lập trình thì không.
Một ngôn ngữ trình bày tri thức tốt cần kết hợp được các ưu điểm
của ngôn ngữ tự nhiên và ngôn ngữ hình thức. Nó phải là ngôn ngữ mô tả
và súc tích để diễn tả mọi thứ một cách cô đọng. Nó không được nhập
nhằng và phải độc lập ngữ cảnh. Để những gì nói ra hôm nay vẫn có giá
trị trong tương lai. Và nó cũng hiệu quả khi một hàm suy luận tạo ra
những suy luận mới từ những câu trong ngôn ngữ của chúng ta.
Nhiều ngôn ngữ trình bày đã được thiết kế để thu được các nguyên
tắt này. Logic trật tự đầu tiên cũng là một ngôn ngữ như vậy vì nó tạo ra
hầu hết các lược đồ trình bày trong AI.
Ngữ nghĩa
Trong logic, nghĩa của câu là những gì nó nói về môi trường, môi trường
như thế này, không như thế kia. Ngữ nghĩa của câu phụ thuộc vào người
viết ra nó. Để câu có nghĩa, người viết phải cung cấp lời giải thích cho nó
Nghiên cứu planning để giải bài toán xác định lộ trình
59
về sự kiện tương ứng. Một câu bản thân nó không có nghĩa nếu không
được hiểu bởi người khác.
Hai bên truyền thông có thể quy ước với nhau về cách mã hoá và
giải mã một câu. Do đó, về nguyên tắc, mỗi câu có thể được giải thích tuỳ
ý. Nhưng trong thực thế, tất cả các ngôn ngữ trình bày đều sử dụng mối
quan hệ có hệ thống giữa câu và sự kiện.
Như vậy, ngữ nghĩa đưa ra sự giải thích cho một câu. Một câu có
thể đúng hay sai. Một câu là đúng với sự giải thích đó nếu trạng thái vấn
đề nó trình bày có trường hợp đó, vì sự đúng hay sai phụ thuộc vào sự
giải thích của câu và trạng thái thật sự của môi trường.
2.1.2. Suy luận
Thuật ngữ “suy luận” thường dùng để chỉ bất kỳ quá trình nào tìm thấy
kết quả. Ở đây, ta quan tâm đến suy luận hợp lý được gọi là suy luận
logic hay suy diễn. Suy luận logic là quá trình thiết lập quan hệ kế thừa
giữa các câu. Có nhiều cách thiết kế các hệ thống suy luận logic bắt đầu
với ý tưởng câu hiển nhiên đúng.
• Câu có giá trị và câu phù hợp
Một câu có giá trị còn gọi là câu hiển nhiên đúng nếu và chỉ nếu nó đúng
trong mọi sự giải thích trong tất cả các trượng hợp bất chấp ý nghĩa của
nó và bất chấp trạng thái vấn đề trong môi trường được mô tả.
Ví dụ:
“Có người trong xe hay không có người trong xe.”
Đây là câu có giá trị, nó đúng trong bất kỳ trường hợp nào.
Câu phù hợp nếu và chỉ nếu nó tồn tại sự giải thích được trong môi
trường nào đó mà sự giải thích đó là đúng. Câu không phù hợp còn gọi là
câu mâu thuẫn.
Nghiên cứu planning để giải bài toán xác định lộ trình
60
Tóm lại ta có thể nói rằng logic bao gồm:
1. Hệ thống mô tả trạng thái vấn đề, gồm:
a. Cú pháp ngôn ngữ, mô tả cách tạo thành câu và
b. Ngữ nghĩa ngôn ngữ đưa ra những ràng buộc hệ thống về
cách mà câu liên hệ đến những trạng thái của vấn đề.
2. Thuyết chứng minh – tập luật để suy diễn các phần kế thừa của tập
các câu.
2.2. Logic mệnh đề
2.2.1. Cú pháp
Các ký hiệu của logic mệnh đề là những hằng logic True và False, các ký
hiệu mệnh đề như P và Q, các liên từ logic: ∧, ∨, ⇔, ⇒, ¬, (). Các câu
được tạo thành bằng cách đặt các ký hiệu này lại với nhau theo các luật
sau:
• Mỗi hằng logic True và False là câu.
• Ký hiệu mệnh đề P hay Q đều là câu.
• Dấu ngoặc bao quanh một câu cũng tạo ra một câu, ví dụ (P ∧ Q).
• Một câu có thể được tạo ra bằng cách liên kết những câu đơn giản
hơn bởi các liên từ logic:
∧ : và (liên từ kết hợp)
∨ : hoặc (liên từ phân biệt)
⇒ : suy ra
⇔ : tương đương
¬ : phủ định
Với độ ưu tiên từ cao đến thấp: ¬, ∧, ∨, ⇒, ⇔
Nghiên cứu planning để giải bài toán xác định lộ trình
61
Ví dụ câu:
¬P ∨ Q ∧ R ⇒ S
tương đương với câu:
((¬P) ∨ (Q ∧ R)) ⇒ S
2.2.2. Ngữ nghĩa
Ngữ nghĩa của logic mệnh đề được định nghĩa bằng cách xác định sự giải
thích những ký hiệu mệnh đề, các hằng và ý nghĩa của các liên từ logic.
Ký hiệu mệnh đề tuỳ thuộc vào người viết. Ví dụ: P có thể là sự kiện Hà
Nội là thủ đô của Việt Nam, nhưng cũng có thể là Bông hoa màu xanh.
Câu chỉ chứa một ký hiệu mệnh đề là câu phù hợp nhưng không có giá
trị: nó chỉ đúng khi đưa ra sự kiện trong một trường hợp cụ thể.
Ta sử dụng bảng sự thật để thể hiện giá trị của các mệnh đề và liên
từ:
P Q ¬P P ∧ Q P ∨ Q P ⇒ Q P ⇔ Q
False False True False False True True
False True True False True True False
True False False False True False False
True True False True True True True
2.3. Logic trật tự đầu tiên
Logic mệnh đề là một trong những ngôn ngữ đơn giản nhất. Nhưng nó
quá hạn chế, chỉ thao tác trên sự kiện. Điều này gây khó khăn trong việc
trình bày cả những vấn đề đơn giản.
Nghiên cứu planning để giải bài toán xác định lộ trình
62
Logic trật tự đầu tiên là ngôn ngữ mạnh hơn logic mệnh đề. Nó
xem môi trường bao gồm các đối tượng và các thuộc tính phân biệt giữa
các đối tượng với nhau.
Giữa các đối tượng này có các quan hệ khác nhau. Một số quan hệ
là chức năng, đây là những quan hệ chỉ có một giá trị đầu vào. Ví dụ về
những đối tượng, những thuộc tính, những quan hệ và chức năng:
• Các đối tượng: con người, nhà, số, học thuyết, TP Hồ Chí Minh,
màu sắc, chiến tranh, tiền …
• Các quan hệ: anh em của, lớn hơn, bên trong, thành phần của, có
màu, xuất hiện sau khi, của…
• Các thuộc tính: đỏ, tròn, ảo, giỏi…
• Các chức năng: cha của, bạn tốt nhất, một lần nữa…
Ví dụ:
Một cộng hai bằng ba
Các đối tượng: một, hai, ba; Quan hệ: bằng; Chức năng: cộng
Đặc tính của logic trật tự đầu tiên là cho phép người dùng tự do mô tả
những cái mình muốn theo cách tương ứng với môi trường.
2.3.1. Cú pháp và ngữ nghĩa
Mỗi mô tả của logic mệnh đề là một câu, nó trình bày sự kiện. Logic trật
tự đầu tiên có câu, ngoài ra còn có term, để trình bày đối tượng. Các ký
hiệu hằng, biến và ký hiệu chức năng được dùng để xây dựng term, các
lượng từ và vị từ dùng để xây dựng câu.
• Các ký hiệu hằng: A, B, C, John…
Nghiên cứu planning để giải bài toán xác định lộ trình
63
Đối tượng trong môi trường được chỉ đến bởi ký hiệu hằng. Mỗi hằng xác
định chính xác tên đối tượng, nhưng không phải tất cả các đối tượng đều
cần có tên và một đối tượng có thể có nhiều tên.
• Các ký hiệu vị từ: Tròn, anh em…
Mỗi mối quan hệ cụ thể được xác định bởi một vị từ. Ví dụ, ký hiệu
Brother chỉ mối quan hệ anh em, quan hệ này chứa một cặp đối tượng.
Trong ngữ cảnh tương ứng, quan hệ này được định nghĩa bởi một tập các
đối tượng được sắp xếp cố định. Các đối tượng được viết trong dấu
ngoặc. Ví dụ, có ba đối tượng John, Richard, Robin là ba anh em theo thứ
tự. Quan hệ được định nghĩa như sau:
{(John, Richard),(Richard, Robin)}
• Các ký hiệu chức năng: Cha của, chân trái của…
Không giống những ký hiệu vị từ, ký hiệu chức năng được dùng để chỉ
đến những đối tượng cụ thể mà không dùng tên của chúng.
Term làm một mô tả logic chỉ đến một đối tượng. Vì vậy, các ký hiệu
hằng là các term. Đôi khi, term thuận tiện hơn trong việc mô tả đối tượng.
Ví dụ, muốn nói đến cái áo của John, ký hiệu hằng là John’s shirt. Thay
vì vậy ta có thể dùng ShirtOf(John). Một term phức tạp được tạo nên bởi
một ký hiệu chức năng, theo sau bởi dãy các term trong dấu ngoặc đơn
như là các tham số cho ký hiệu chức năng
2.3.2. Các ví dụ
¾ Câu đơn giản
Ta có các term chỉ các đối tượng, và ký hiệu vị từ chỉ các quan hệ, ta có
thể đặt chúng lại với nhau tạo thành câu đơn giản chỉ các sự kiện. Câu
đơn giản được tạo nên từ một ký hiệu vị từ theo sau bởi danh sách các
term trong dấu ngoặc. Ví dụ:
Nghiên cứu planning để giải bài toán xác định lộ trình
64
Brother(Richard, John)
Câu đơn giản có những tham số là các term phức tạp:
Married(FatherOf(Richard), MotherOf(John))
¾ Câu phức tạp
Ta có thể dùng các liên từ logic để xây dựng câu phức tạp. Ví dụ:
• Brother(Richard, John) ∧ Borther(John, Richard) chỉ đúng khi John
là anh em của Richard và Richard là anh em của John.
• Older(John, 30) ∨ Younger(John, 30) sai khi John 30 tuổi.
• Older(John, 30) ⇒ ¬Younger(John, 30) : nếu John lớn hơn 30 tuổi
thì anh ấy không thể nhỏ hơn 30.
¬Brother(Robin, John): đúng khi Robin không phải là anh em của John.
2.3.3. Lượng từ
Logic trật tự đầu tiên chứa hai lượng từ chuẩn đó là với mọi và tồn tại.
1) Lượng từ với mọi (∀): được dùng để mô tả toàn bộ tập hợp đối
tượng mà không phải liệt kê từng phần tử.
Ví dụ: Câu “All cats are mamals” được mô tả như sau:
∀x Cat(x) ⇒ Mamal(x)
2) Lượng từ tồn tại (∃): dùng để chỉ một đối tượng cụ thể nhưng
không cần nêu tên.
Ví dụ: Lan là chị em của một sinh viên nào đó, ta nói:
∃x Sister(x, Lan) ∧ Student(x)
Mối liên hệ giữa ∀ và ∃
Hai lượng từ này có mối quan hệ mật thiết vơi nhau thông qua liên từ phủ
định. Cụ thể như sau:
Nghiên cứu planning để giải bài toán xác định lộ trình
65
∀x ¬P ≡ ¬∃x P ¬P ∧ ¬Q ≡ ¬(P ∨ Q)
¬∀x P ≡ ∃x ¬P ¬(P ∧ Q) ≡ ¬P ∨ ¬Q
∀x P ≡ ¬∃x ¬P P ∧ Q ≡ ¬(¬P ∨ ¬Q)
∃x P ≡ ¬∀x ¬P P ∨ Q ≡ ¬(¬P ∧ ¬Q)
Các ký hiệu khác:
• Ký hiệu bằng (=)
Ký hiệu bằng trong câu thể hiện hai ký hiệu hằng khác nhau chỉ cùng một
đối tượng. Ví dụ: Father(John) = Henry
• Lượng từ tồn tại duy nhất (∃!): dùng để chỉ đây là đối tượng duy
nhất thoả điều kiện này. Ví dụ: ∃! x King(x)
Ký hiệu này có thể được thay thế bởi toán tử duy nhất i. Vídụ nói: Con
mèo duy nhất của Henry chết. Được viết:
Dead(i x CatOf(x, Henry))
tương tự với:
∃! x CatOf(x, Henry) ∧ ∀s CatOf(s, Henry) ⇒ Dead(s)
2.3.4. Những ký hiệu đặt biệt trong tập hợp, danh
sách và số học
Các ký hiệu sau đây sử dụng tương tự ký hiệu Prolog:
∅ = Tập rỗng
{x} = Liền sau(x, Tập rỗng)
{x,y} = Liền sau(x, Liền sau(y, Tập rỗng))
{x,y|s} = Liền sau(x, Liền sau(y,s))
r ∪ s = Hợp(r,s)
Nghiên cứu planning để giải bài toán xác định lộ trình
66
r ∩ s = Giao(r,s)
x ∈ s = Thành viên(x,s)
r ⊆ s = Tập con(r,s)
[] = Danh sách rỗng
[x] = Liên tiếp (x, Danh sách rỗng)
[x,y] = Liên tiếp(x, Liên tiếp(y, Danh sách rỗng))
[x,y|l] = Liên tiếp(x, Liên tiếp(y,l))
2.3.5. Phép tính tình huống
Phép tính tình huống là tên để chỉ một phương pháp cụ thể mô tả sự thay
đổi trong logic trật tự đầu tiên. Nó quan niệm rằng, môi trường bao gồm
một chuỗi ngữ cảnh, mỗi ngữ cảnh là một ảnh chụp nhanh của trạng thái
môi trường. Các ngữ cảnh được tạo ra từ những ngữ cảnh trước bởi các
hành động.
Mỗi quan hệ hay thuộc tính có thể thay đổi theo thời gian được
quản lí bởi tham số ngữ cảnh thêm vào tương ứng với vị từ. Ta quy ước
tham số ngữ cảnh phải ở cuối cùng và hằng ngữ cảnh có dạng Si.
Ví dụ: thay vì nói At(Agent, location). Ta nói.
At(Agent, [1,1], S0) ∧ At(Agent, [1,2], S1)
để mô tả agent ở hai ngữ cảnh liên tiếp.
Đối với các quan hệ và thuộc tính không thay đổi theo thời gian
không cần tham số ngữ cảnh. Ví dụ: cột đèn giao trong trên đường ở vị trí
cố định ta chỉ cần nói: TrafficLight([2,2]).
Bên cạnh đó ta có thể mô tả ngữ cảnh là kết quả của những hành
động từ ngữ cảnh trước. Sử dụng hàm Result(action, situation). Ví dụ:
Result(Forward, S0) = S1
Nghiên cứu planning để giải bài toán xác định lộ trình
67
Result(Turn(Right), S1) = S2
Result(Forward, S2) = S3
Nghiên cứu planning để giải bài toán xác định lộ trình
68
CHƯƠNG 4:
CÁC VẤN ĐỀ TRONG LẬP KẾ
HOẠCH
1. Giới thiệu agent lập kế hoạch đơn giản
2. Từ giải quyết bài toán đến lập kế hoạch
3. Lập kế hoạch trong phép tính tình huống
4. Ngôn ngữ STRIPS: Ngôn ngữ trình bày cơ bản trong
lập kế hoạch
5. Giải pháp
Nghiên cứu planning để giải bài toán xác định lộ trình
69
CHƯƠNG 4:
CÁC VẤN ĐỀ TRONG LẬP KẾ
HOẠCH
1 GIỚI THIỆU AGENT LẬP KẾ HOẠCH ĐƠN GIẢN
Khi trạng thái môi trường là tiếp cận được, agent có thể sử dụng các tri
thức do môi trường cung cấp để xây dựng một mô hình chính xác và hoàn
chỉnh về trạng thái môi trường hiện hành. Với mục tiêu đã đưa ra, agent
sẽ gọi một thuật toán lập kế hoạch thích hợp để tạo ra kế hoạch hành
động. Sau đó agent thực thi các bước của kế hoạch, mỗi hành động thực
hiện ở một thời điểm.
Chương trình của agent lập kế hoạch đơn giản như sau:
Thuật toán Một agent lập kế hoạch đơn giản. Agent trước tiên tạo ra một mục tiêu, sau
đó xây dựng một kế hoạch để đạt được mục tiêu đó từ trạng thái hiện hành. Khi đã có kế
hoạch, agent tiếp tục thực hiện kế hoạch cho tới khi kế hoạch hoàn tất, sau đó lại bắt đầu
với mục tiêu mới.
function AGENT LẬP KẾ HOẠCH ĐƠN GIẢN (tri thức) returns hành động
static: KB, cơ sở tri thức(bao gồm sự mô tả hành động)
p, kế hoạch, khởi tạo là NoPlan
t, số đếm, khởi tạo là 0, chỉ thời gian
local variables: G, mục tiêu
trạng thái hiện hành: mô tả trạng thái hiện hành
CẬP NHẬT TRI THỨC(KB, MÔ TẢ TRI THỨC(tri thức,t))
trạng thái hiện hành – MÔ TẢ TRẠNG THÁI(KB,t)
if p = NoPlan then
G – LÂY MỤC TIÊU(KB, MỤC TIÊU YÊU CẦU(t))
p – BỘ LẬP KẾ HOẠCH(trạng thái hiện hành, G, KB)
if p = NoPlan or p rỗng then hành động - NoOp
else
hành động – FIRST(p)
p – REST(p)
CẬP NHẬT TRI THỨC(KB, MÔ TẢ HÀNH ĐỘNG(hành động,t))
t – t +1
return hành động
Nghiên cứu planning để giải bài toán xác định lộ trình
70
Thuật toán lập kế hoạch trong hàm BỘ LẬP KẾ HOẠCH sẽ được mô tả
sau. Hàm MÔ TẢ TRẠNG THÁI có đầu vào là tri thức và trả về sự mô tả
trạng thái ban đầu theo dạng mà bộ lập kế hoạch yêu cầu, và hàm MỤC
TIÊU YÊU CẦU, hàm này được dùng để hỏi cơ sở tri thức xem mục tiêu
kế tiếp là gì.
Agent phải xét trường hợp mục tiêu bất khả thi, với trường hợp này
agent phải bỏ qua mục tiêu này và tìm những mục tiêu khác, và trường
hợp kế hoạch rỗng. Agent tương tác với môi trường rất hạn chế – agent
sử dụng tri thức của mình để định nghĩa trạng thái ban đầu và mục tiêu
ban đầu, sau đó agent thực hiện theo các bước trong kế hoạch đã được
xây dựng.
2 TỪ GIẢI QUYẾT BÀI TOÁN ĐẾN LẬP KẾ HOẠCH
Lập kế hoạch và giải quyết bài toán là những hướng tiếp cận khác nhau
để giải quyết vấn đề. Cả hai khác nhau về cách biểu diễn mục tiêu, trạng
thái, hành động và khác biệt trong việc trình bày và xây dựng những
chuỗi hành động.
Phần này, đề cập đến những vấn đề khó khăn do cách tiếp cận giải
quyết bài toán dựa trên tìm kiếm và đưa những phương pháp được các hệ
thống lập kế hoạch sử dụng để giải quyết những khó khăn này.
Các thành phần cơ bản của bộ giải quyết bài toán dựa trên tìm
kiếm:
• Trình bày hành động: Các hành động được mô tả bởi những
chương trình tạo ra sự mô tả trạng thái kế thừa.
• Trình bày trạng thái: Trong giải quyết bài toán, sự mô tả hoàn
chỉnh trạng thái ban đầu được cho sẵn và các hành động được trình
bày bởi những chương trình tạo ra sự mô tả trạng thái hoàn chỉnh.
Vì vậy, tất cả những sự trình bày trạng thái đều hoàn chỉnh. Sự
Nghiên cứu planning để giải bài toán xác định lộ trình
71
trình bày trạng thái chỉ được dùng để phát sinh kế thừa, lượng giá
hàm heuristic và kiểm tra mục tiêu.
• Trình bày mục tiêu: mục tiêu của agent giải quyết bài toán có
dạng của hàm kiểm tra mục tiêu và hàm heuristic.
• Trình bày kế hoạch: trong giải quyết bài toán, giải pháp là một
chuỗi các hành động, như “Đi từ Arad đến Sibiu đến Fagaras đến
Bucharest.” Trong suốt quá trình xây dựng giải pháp, thuật toán
tìm kiếm chỉ quan tâm đến các chuỗi hành động liên tục bắt đầu từ
trạng thái ban đầu.
Ví dụ: “Lấy một lít sữa, một nải chuối và một cái máy khoan không dây
đa tốc.”.
• Trạng thái ban đầu: agent ở nhà nhưng không có thứ nào trong các
thứ yêu cầu
• Tập các toán tử: tất cả những gì mà agent có thể làm. Chúng ta có
thể bổ sung thêm một hàm heuristic để lựa chọn các trạng thái.
Nghiên cứu planning để giải bài toán xác định lộ trình
72
Hình 4.1 biểu diễn một phần rất nhỏ hai bước đầu tiên trong không gian
tìm kiếm của bài toán này và chỉ ra con đường để đi tới đích.
Hệ số rẽ nhánh trên thực tế có thể là hàng ngàn hay hàng triệu, phụ thuộc
vào cách xác định hành động và chiều dài của giải pháp có thể là hàng tá
bước. Có quá nhiều hành động, quá nhiều trạng thái phải xem xét. Nhưng
hàm lượng giá heuristic chỉ có thể chọn một số trạng thái để quyết định
cái nào gần mục tiêu nhất; nó không thể bỏ bớt các hành động cần xem
xét.
Thậm chí nếu hàm lượng giá chọn: agent đi siêu thị, agent phải dự
đoán những hành động tiếp theo. Agent sẽ dự đoán bằng cách xem xét
các hành động – mua cam, mua cá ngừ, mua ngũ cốc, mua sữa – và hàm
lượng giá sẽ sắp xếp các dự đoán này – bad, bad, bad, good. Như vậy,
agent biết rằng mua sữa là công việc tốt, nhưng không biết được bước kế
Bắt
đầu
Hoàn
tất
…
Đến cửa hàng vật
Nói chuyện với két
Đến trường
Đến siêu thị
Đi ngủ
Đọc sách
Ngồi ghế
v. v. … …
Mua con
chó
Đọc sách
Ăn cơm
Mua sữa
Mua ngũ
cốc
Mua cá ngừ
Vào lớp
Hình 4.1. Giải quyết bài toán shopping bằng cách tìm kiếm tiến qua không gian ngữ cảnh trong môi trường.
Nghiên cứu planning để giải bài toán xác định lộ trình
73
tiếp sẽ phải làm gì, nên phải bắt đầu lại từ đầu quá trình dự đoán trên để
quyết định bước kế tiếp.
Thực chất là agent giải quyết bài toán chỉ quan tâm đến chuỗi hành
động bắt đầu từ trạng thái ban đầu cùng với những khó khăn của nó. Điều
này buộc agent phải quyết định cái gì cần làm trước tiên ở trạng thái ban
đầu, ở đây, với sự lựa chọn hợp lí, có thể đi đến bất cứ nơi nào trong các
nơi còn lại. Cho đến khi agent biết được bằng cách nào để có được các đồ
dùng khác nhau( bằng cách mua, mượn, thuê, trồng, sản xuất, trộm cắp)
thì nó thực sự không thể quyết định được phải đi đâu. Do đó agent cần
phương pháp xây dựng tri thức của nó tinh xảo hơn, để có thể làm việc
với bất kì phần nào của bài toán có thể giải được với các thông tin hiện
có.
Ý tưởng then chốt đầu tiên đằng sau lập kế hoạch là “cởi trói” cách
biểu diễn trạng thái, mục tiêu và hành động. Các thuật toán lập kế hoạch
được mô tả bằng một ngôn ngữ hình thức, thường là logic trật tự đầu tiên
hay ly thuyết tập con . Trạng thái và mục tiêu được biểu diễn bằng tập các
câu, còn hành động được biểu diễn bằng các mệnh đề logic điều kiện cho
trước và hệ quả. Điều này cho phép bộ lập kế hoạch xác định được những
liên kết trực tiếp giữa trạng thái và hành động. Ví dụ, nếu agent biết rằng
mục tiêu là một phép liên kết chứa Have(Milk), mà Buy(x) thu được
Have(x), thì agent biết rằng nó nên xét đến đến một kế hoạch có chứa
Buy(Milk). Nó không cần quan tâm đến những hành động không phù hợp
như Buy(WhippingCream) hay GoToSleep.
Ý tưởng then chốt thứ hai của lập kế hoạch là bộ lập kế hoạch tự do
Các file đính kèm theo tài liệu này:
- Nghiên cứu planning để giải bài toán xác định lộ trình.pdf