GIỚI THIỆU AGENT LẬP KẾ HOẠCH ĐƠN GIẢ N

Một phần của tài liệu Nghiên cứu planning để giải bài toán xác định lộ trình (Trang 69)

3. Lp kế hoch trong phép tính tình hung

4. Ngôn ng STRIPS: Ngôn ng trình bày cơ bn tronglp kế hoch lp kế hoch

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ánMộ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.

functionAGENT LẬP KẾ HOẠCH ĐƠN GIẢN (tri thức)returnshà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)

ifp=NoPlanthen

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)

ifp=NoPlanorprỗngthenhà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)) tt+1 returnhành động

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ự

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.

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

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),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)hayGoToSleep.

Ý tưởng then chốt thứ hai của lập kế hoạch là bộ lập kế hoạch tự do thêm hành động vào kế hoạch ở bất kỳ chỗ nào mà nó cần, chứ không phải xây dựng lại chuỗi hành động từ trạng thái ban đầu. Ví dụ, agent quyết định là phảiBuy(Milk), ngay cả trước khi quyết định mua nó ởđâu,

hoạch và trật tự thực thi là không cần thiết. Bằng cách ra những quyết

định rõ ràng và quan trọng trước, planner có thể giảm bớt hệ số rẽ nhánh cho những lựa chọn sau này và làm giảm việc quay lui khi ra những quyết

định tuỳ tiện. Chú ý rằng việc biểu diễn trạng thái như tập hợp các câu logic đóng vai trò cực kỳ quyết định trong việc tạo ra sự tự do này. Ví dụ, khi thêm hành độngBuy(Milk) vào kế hoạch, agent có thể biểu diễn trạng thái mà tại đó hành động được thực hiện nhưAt(Supermaket). Nó cũng có thể biểu toàn bộ các loại trạng thái khác (trạng thái có hoặc không có chuối, có hoặc không có máy khoan v.v…). Các thuật toán tìm kiếm yêu cầu các mô tả trạng thái hoàn chỉnh thì không có tính chất này.

Ý tưởng thứ ba cũng là ý tưởng cuối cùng là hầu hết cácđối tượng trong thế giới thựcđều độc lập với nhau. Điều này làm cho một mục tiêu kết hợp như “lấy một lít sữa và một buồng chuối và một máy khoan không dây đa tốc” và giải quyết nó bằng chiến thuật chia để trị. Ta có thể

dùng một kế hoạch con đi chợ để thu được hai vật liên kết đầu tiên, và dùng một kế hoạch con khác (ví dụ: hoặc đến cửa hàng đồ điện hoặc mượn của người hàng xóm) để thu được vật thứ ba. Kế hoạch con đi chợ

có thểđược chia thêm nữa thành kế hoạch con mua sữa và kế hoạch con mua chuối. Sau đó chúng ta có thể ghép tất cả các kế hoạch con lại với nhau để giải quyết toàn bộ bài toán. Ta thực hiện việc này vì có rất ít sự

tương tác giữa hai kế hoạch này: đi chợ không can thiệp gì đến việc mượn đồ của hàng xóm và việc mua sữa không ảnh hưởng gì đến việc mua chuối (trừ khi agent thiếu một số tài nguyên như: thời gian hay tiền).

Các thuật toán chia để trịrất hiệu quả bởi vì việc giải các bài toán con nhỏ gọn hầu như luôn luôn dễ hơn việc giải quyết những bài toán lớn. Tuy nhiên, thuật toán này cũng thất bại khi chi phí của giải pháp kết hợp những bài toán con nhỏ quá cao. Nhiều vấn đề khó khăn xuất hiện ởđây. Ví dụ, trạng thái đích nằm trong bài toán xếp hình 8 mảnh là mục tiêu kết

hợp: mảnh 1 ở vị trí A và 2 ở vị trí B và…tiếp tục cho đến miếng 8. Chúng ta có thể xem việc này như bài toán lập kế hoạch và kế hoạch cho mỗi mục tiêu con thì độc lập, nhưng vấn đề ởđây là rất khó để ghép các kế hoạch con lại với nhau. Thật dễ để có 1 tại vị trí A, nhưng có 2 tại vị

trí B thì giống như đẩy 1 ra khỏi vị trí của nó. May mắn thay, thế giới thực là một nơi thuận lợi và rộng lớn nơi mà những kế hoạch con có thể

xem nhưđộc lập nhau. Nếu không có trường hợp này, thì với kích thước tuyệt đối của thế giới thực sẽ làm cho việc giải quyết thành công bài toán không thể xảy ra.

3 LẬP KẾ HOẠCH SỬ DỤNG PHÉP TÍNH TÌNH HUỐNGTrước khi đi vào chi tiết kĩ thuật lập kế hoạch, chúng ta trình bày vấn đề Trước khi đi vào chi tiết kĩ thuật lập kế hoạch, chúng ta trình bày vấn đề

cần lập kế hoạch như một bài toán suy luận logic, dùng phép tính tình huống. Một bài toán lập kế hoạch được trình bày trong phép tính tình huống bởi các chuỗi logic mô tả ba phần chính của bài toán:

Trạng thái ban đầu: Một câu logic tuỳ ý về hoàn cảnh S0. Ví dụ

cho bài toán đi siêu thị, có thể là:

At(Home,S0)∧ ¬Have(Milk,S0)∧ ¬Have(Bananas,S0)∧ ¬Have(Drill,S0)

Trạng thái đích: Truy vấn logic yêu cầu cho ngữ cảnh thích hợp. Với bài toán đi siêu thị, truy vấn sẽ là:

s At(Home,s)∧Have(Milk,s)∧Have(Bananas,s)∧

Have(Drill,s)

Các toán tử:Một tập hợp mô tả các hành động. Ví dụ, hành động mua sữa:

a,s Have(Milk,Result(a,s)) ⇔ [(a= Buy(Milk)∧

Have(Milk,s)∧a

Drop(Milk))]

Result(a,s) chỉ kết quả của việc thực hiện hành động a trong ngữ cảnh s. Bên cạnh đó, có thể dùng Result’(l,s) chỉ kết quả của việc thực thi các chuỗi hành động l bắt đầu ở ngữ cảnh s. Result’ định nghĩa rằng chuỗi hành động rỗng không có ảnh hưởng trong ngữ cảnh và kết quả của những hành động không rỗng tương ứng với việc thực hiện hành động

đầu tiên, và sau đó thực hiện những hành động còn lại trong ngữ cảnh:

s Result’([],s) =s

a,p,s Result’([a|p],s) =Result’(p,Result(a,s))

Giả sử trong bài toán shopping, nếu ta muốn kế hoạch pkhi được áp dụng với trạng thái bắt đầu S0 sẽ mang lại ngữ cảnh thoả mãn câu truy vấn

đích. Điều này áp dụng như sau:

At(Home,Result’(p,S0))∧ Have(Milk,Result’(p,S0))

Have(Bananas,Result’(p,S0))∧

Have(Drill,Result’(p,S0)) Khi đó, giải pháp của p sẽ là:

p = [Go(SuperMarket),Buy(Milk),Buy(Banana),

Go(HardwareStore),Buy(Drill),Go(Home)]

Để thực thi kế hoạch, có hai vấn đề cần giải quyết:

1. Giới hạn ngôn ngữ định nghĩa bài toán. Với ngôn ngữ giới hạn số

giải pháp cần duyệt qua cũng ít hơn.

2. Sử dụng thuật toán có mục tiêu cụ thể gọi là bộ lập kế hoạch (planner) thay vì những lí thuyết chung chung để tìm kiếm giải pháp.

Hai luôn luôn đi cùng nhau: khi một ngôn ngữ mô tả bài toán mới được

định nghĩa, cần có một thuật toán lập kế hoạch mới để xử lí ngôn ngữ. 4 NGÔN NGỮ STRIPS: NGÔN NGỮ TRÌNH BÀY CƠ

BẢN TRONG LẬP KẾ HOẠCH

Tiếp cận cổ điển mà hầu hết các bộ lập kế hoạch ngày nay dùng để mô tả

các trạng thái và các toán tử trong ngôn ngữ giới hạn được gọi là ngôn ngữ STRIPS. Ngôn ngữ STRIPS biểu diễn hiệu quả các thuật toán lập kế

hoạch, sử dụng sức diễn cảm của sự trình bày phép tính tình huống. 4.1. Mô tả trạng thái và mục tiêu

Trong ngôn ngữ STRIPS, các trạng thái được trình bày bởi sự liên kết các hàm tự do viết theo nghĩađen, các vị từ áp dụng các ký hiệu hằng, có thể

phủ định. Ví dụ, trạng thái ban đầu trong bài toán sữa và chuối có thể được mô tả như sau:

At(Home)∧ ¬Have(Milk)∧¬Have(Bananas)∧¬Have(Drill)

∧…

Sự mô tả trạng thái không cần phải hoàn chỉnh. Sự mô tả trạng thái không hoàn chỉnh có thể thu được do agent ở trong môi trường không tiếp cận

được. Nhưng với một tập trạng thái hoàn chỉnh agent có thể thu được một kế hoạch thành công.

Các mục tiêu cũng được mô tả bởi sự liên kết các từ. Ví dụ, mục tiêu của việc đi siêu thị có thể trình bày như sau:

At(Home)∧Have(Milk)∧Have(Bananas)∧Have(Drill) Mục tiêu cũng có thể chứa biến. Ví dụ, mục tiêu là ở cửa hàng bán sữa

được biểu diễn như sau:

Với những mục tiêu được cho để chứng minh định lí, các biến được giả

sử rằng giá trịđã tồn tại. Tuy nhiên, phải phân biệt rõ giữa mục tiêu đưa ra cho bộ lập kế hoạch và truy vấn đưa ra cho hệ chứng minh định lí. Mục tiêu đòi hỏi một dãy các hành động sau khi thực hiện tạo ra đúng mục tiêu, truy vấn hỏi xem chuỗi truy vấn là đúng hay không cho trước chân trị của các câu được đặt trong cơ sở tri thức.

Mặc dù sự trình bày trạng thái ban đầu và mục tiêu được dùng làm

đầu vào của hệ lập kế hoạch, nhưng thông thường quá trình lập kế hoạch tự nó chỉ giữ lại các biểu diễn trạng thái không tường minh . Bởi vì hầu hết các hành động chỉ thay đổi một phần nhỏ của sự trình bày trạng thái, nên sẽ hiệu quả hơn khi lưu vết những thay đổi.

4.2. Mô tả hành động

Toán tử STRIPS bao gồm ba thành phần:

Mô tả hành động là những gì mà agent thực sự trả về môi trường

để thực hiện điều gìđó. Bên trong bộ lập kế hoạch sự mô tả này chỉ

là tên của một hành động.

Điều kiện tiên quyết là kết hợp các thành phần (những từ ngữ

khẳng định) nói lên cái gì là đúng trước khi toán tửđược áp dụng.

Kết quả của toán tử là kết hợp các từ ngữ (khẳng định và phủ định) mô tả cách ngữ cảnh thay đổi khi toán tửđược áp dụng.

Đây là một ví dụ về cú pháp chúng ta sẽ dùng để tạo một toán tử STRIPS cho việc đi từ nơi này đến nơi khác:

Op(ACTION:Go(there),PRECOND:At(here)∧ Path(here,there), EFFECT:At(there)∧ ¬At(here))

Hình 4.2 mô tả toán tử. Ở đây có những biến ngữ cảnh không tường minh. Mọi thứ trong điều kiên tiên quyết đều được ngầm chỉ đến ngữ

Một phần của tài liệu Nghiên cứu planning để giải bài toán xác định lộ trình (Trang 69)