Khi nhắc đến Trí tuệ nhân tạo (AI), chúng ta thường nghĩ ngay đến ChatGPT, Generative AI hay các AI Agent có khả năng thực hiện những nhiệm vụ phức tạp. Tuy nhiên, rất lâu trước khi những công nghệ này xuất hiện, các nhà nghiên cứu AI đã phải đối mặt với một câu hỏi khó hơn nhiều:
"Làm
thế nào để một cỗ máy có thể suy nghĩ trước khi hành động?"
Muốn
trả lời câu hỏi đó, AI phải học cách giải quyết rất nhiều bài toán khác nhau.
Nó cần biết có bao nhiêu con đường dẫn đến mục tiêu, cần tận dụng các quy tắc của
bài toán để loại bỏ những lựa chọn chắc chắn sai và cần biết cách xây dựng một
kế hoạch hành động phù hợp với thế giới mà nó đang tồn tại.
Chính
từ những câu hỏi tưởng chừng rất đơn giản đó, ba ý tưởng lớn của AI đã lần lượt
ra đời: Search, Constraint Satisfaction Problems (CSP) và Planning.
Search
cho AI khả năng khám phá những khả năng khác nhau trước khi hành động. CSP giúp
AI suy luận từ các ràng buộc của bài toán để loại bỏ sớm những lựa chọn chắc chắn
sai. Planning giúp AI hiểu được cấu trúc của thế giới và xây dựng những kế hoạch
hành động để đạt được mục tiêu của mình.
1. Search - Vì sao AI cần phải "suy nghĩ trước khi hành động"?
Khi
nghe đến từ Search (Tìm kiếm), nhiều người thường nghĩ đến việc tìm kiếm
thông tin như Google Search. Tuy nhiên, trong AI, Search lại mang một ý
nghĩa hoàn toàn khác.
Search
là quá trình một AI Agent "suy nghĩ trước khi hành động". Thay
vì lập tức đưa ra quyết định, agent sẽ thử hình dung trong "đầu" mình
nhiều chuỗi hành động khác nhau để dự đoán xem chúng sẽ dẫn đến kết quả gì. Sau
đó, nó lựa chọn con đường có khả năng đưa mình đến mục tiêu một cách tốt nhất.
Nói
một cách đơn giản, Search giống như việc bạn tự hỏi: "Nếu mình làm A thì
chuyện gì sẽ xảy ra? Nếu làm B thì sao? Còn nếu làm C thì kết quả có tốt hơn
không?"
Vậy Search ra đời để giải quyết vấn đề gì?
Search
xuất hiện khi agent đứng trước một tình huống mà hành động đúng đắn không hiển
nhiên ngay lập tức. Nó biết mục tiêu mình cần đạt được nhưng lại chưa biết phải
đi theo con đường nào để đến đó.
Ví
dụ, hãy tưởng tượng bạn đang ở thành phố Arad (Romania) và ngày mai phải có mặt
tại Bucharest để bắt chuyến bay. Từ Arad có nhiều con đường khác nhau, nhưng bạn
không biết con đường nào sẽ đưa mình đến đích nhanh nhất hoặc thậm chí có dẫn đến
Bucharest hay không.
Trong
tình huống này, bạn sẽ không muốn nhắm mắt chọn ngẫu nhiên một con đường rồi hy
vọng mình gặp may. Thay vào đó, bạn sẽ mở bản đồ ra và tự hỏi:
- Nếu đi đường thứ nhất, mình sẽ đến
đâu?
- Nếu đi đường thứ hai thì mất bao lâu?
- Có cần đi qua những thành phố trung
gian nào không?
- Con đường nào là hợp lý nhất để đến
Bucharest?
Quá
trình xem xét trước các khả năng đó chính là Search.
Hiểu bản chất của Search
Ý
tưởng quan trọng nhất của Search trong AI là: trước khi hành động ngoài đời thực,
agent sẽ tạo ra một "mô hình thu nhỏ" của bài toán trong đầu để
thử nghiệm các khả năng khác nhau.
Hãy
hình dung bạn đang đứng trước một mê cung và cần tìm đường ra. Bạn sẽ không nhắm
mắt bước đại một hướng. Thay vào đó, bạn sẽ cố hình dung:
- Mình đang đứng ở đâu?
- Có thể đi sang những hướng nào?
- Nếu đi sang trái thì sẽ đến đâu?
- Nếu đi tiếp thì có đến được đích hay
không?
AI
Agent cũng làm điều tương tự.
Nó
sẽ biến bài toán thành một "bản đồ các trạng thái". Bạn có thể
hiểu đơn giản rằng:
- Mỗi trạng thái (state) là một
tình huống mà agent có thể gặp phải.
- Mỗi hành động (action) là một
lựa chọn giúp agent chuyển từ tình huống này sang tình huống khác.
- Mục tiêu của agent là tìm ra một chuỗi
các hành động phù hợp để đi từ trạng thái hiện tại đến trạng thái mong muốn.
Ví
dụ, nếu bạn đang ở thành phố Arad và muốn đến Bucharest, thì:
- Arad là một trạng thái.
- Việc đi đến Sibiu hoặc Timisoara là
các hành động.
- Bucharest là trạng thái mục tiêu.
- Chuỗi các thành phố mà bạn phải đi
qua chính là lời giải của bài toán.
Quá trình giải quyết một bài toán thường gồm 4 bước:
1.
Xác định mục tiêu (Goal)
Agent cần biết mình muốn đạt được điều gì. Ví dụ: đi từ Arad đến Bucharest.
2.
Mô hình hóa bài toán (Problem
Formulation)
Agent xác định:
o Mình
đang ở trạng thái nào.
o Có
thể thực hiện những hành động nào.
o Trạng
thái mục tiêu là gì.
3.
Tìm kiếm lời giải (Search)
Agent sẽ "thử nghiệm trong đầu" nhiều chuỗi hành động khác nhau để
tìm ra con đường dẫn đến mục tiêu.
4.
Thực thi lời giải (Execution)
Sau khi tìm được lời giải, agent sẽ bắt đầu thực hiện các hành động ngoài đời
thực.
Điều đặc biệt của Search
Trong
một số môi trường rất "lý tưởng", mọi thứ đều diễn ra đúng như những
gì agent biết trước:
- Agent có đầy đủ thông tin về môi trường.
- Mỗi hành động luôn tạo ra kết quả như
mong đợi.
- Môi trường không tự thay đổi một cách
bất ngờ.
Khi
đó, nếu agent đã tìm được lời giải, nó có thể thực hiện tuần tự các bước đã
tính toán mà không cần phải liên tục quan sát lại môi trường.
Bạn
có thể hình dung giống như việc sử dụng Google Maps để tìm đường đi giữa 2 địa
điểm. Nếu bạn biết chắc:
- Không có đường bị chặn.
- Không có tai nạn giao thông.
- Không có sự cố bất ngờ xảy ra.
Trong
AI, điều này được gọi là "open-loop execution" (thực thi theo
kế hoạch đã lập sẵn). Agent gần như có thể "nhắm mắt" thực hiện các
hành động của mình, bởi vì nó biết rằng nếu làm đúng kế hoạch thì chắc chắn sẽ
đi đến mục tiêu.
Search hoạt động như thế nào?
Để
tìm ra lời giải cho một bài toán, trước hết AI Agent cần biết 5 thông tin cơ bản:
1.
Agent đang ở đâu?
(Trạng thái ban đầu - Initial State)
2.
Agent muốn đi đến đâu?
(Trạng thái mục tiêu - Goal State)
3.
Agent có thể làm những gì?
(Các hành động - Actions)
4.
Sau mỗi hành động thì điều gì sẽ xảy
ra?
(Mô hình chuyển trạng thái - Transition Model)
5.
Mỗi hành động phải trả giá bao nhiêu?
(Chi phí - Cost)
Bạn
có thể hình dung việc này giống như sử dụng Google Maps để đi đến một địa điểm
nào đó.
- Bạn đang ở Paris (trạng thái ban đầu).
- Bạn muốn đến Lyon (trạng thái mục
tiêu).
- Bạn có thể đi bằng ô tô, xe máy hoặc
đi theo nhiều tuyến đường khác nhau (các hành động).
- Nếu rẽ trái ở ngã tư A, bạn sẽ đến địa
điểm B; nếu đi thẳng, bạn sẽ đến địa điểm C (mô hình chuyển trạng thái).
- Mỗi tuyến đường sẽ có chi phí khác
nhau, chẳng hạn như quãng đường phải đi, thời gian di chuyển hoặc phí cầu
đường (chi phí).
Ví
dụ nổi tiếng trong các giáo trình AI là bài toán tìm đường trên bản đồ Romania:
- Mỗi thành phố được xem là một trạng
thái (state).
- Mỗi con đường nối hai thành phố được
xem là một hành động (action).
- Khoảng cách giữa hai thành phố được
xem là chi phí (cost).
Nếu
agent tìm được một chuỗi hành động giúp đi từ thành phố xuất phát đến thành phố
đích thì đó được gọi là lời giải (solution).
Ví
dụ: Arad → Sibiu → Fagaras → Bucharest. Đây là một lời giải hợp lệ vì agent đã
đi được từ điểm xuất phát đến mục tiêu.
Agent tìm kiếm bằng cách nào?
Có
hai cách tiếp cận phổ biến:
1.
Tìm kiếm mù (Uninformed Search)
Agent
chỉ biết:
- Mình đang ở đâu.
- Có thể đi sang đâu tiếp theo.
Nhưng
nó hoàn toàn không biết hướng nào đang tiến gần đến mục tiêu hơn.
Bạn
có thể hình dung giống như việc đi trong một mê cung mà không có bất kỳ gợi
ý nào. Agent sẽ phải lần lượt thử các khả năng khác nhau cho đến khi tìm được
đường ra.
Ưu
điểm: Đơn giản và luôn có thể tìm được lời giải nếu bài toán thỏa mãn các điều
kiện nhất định.
2. Tìm kiếm có thông tin (Informed Search)
Khác
với tìm kiếm mù, agent có thêm một "manh mối" giúp nó đoán xem hướng
đi nào có vẻ đang tiến gần đến mục tiêu hơn. Nói cách khác, agent không còn phải
"đi mò" nữa mà đã có một sự ước lượng để đưa ra quyết định thông minh
hơn. Nhờ đó:
- Tốc độ tìm kiếm thường nhanh hơn rất
nhiều.
- Agent không cần phải thử tất cả các
khả năng có thể xảy ra.
Ví
dụ:
- GPS ưu tiên đề xuất những tuyến đường
ngắn hơn.
- AI chơi cờ ưu tiên những nước đi có vẻ
mang lại lợi thế hơn.
- Robot tự hành ưu tiên những hướng di
chuyển an toàn và hiệu quả hơn.
Sự
"ước lượng thông minh" này được gọi là Heuristic. Sức mạnh của
nhiều thuật toán Search hiện đại không nằm ở việc kiểm tra tất cả mọi khả năng,
mà nằm ở khả năng không phải kiểm tra tất cả mọi khả năng.
Nói
cách khác: AI càng thông minh thì càng biết bỏ qua những hướng đi không cần
thiết.
Điều gì xảy ra khi bài toán trở nên phức tạp hơn?
Cho
đến nay, chúng ta đang giả sử rằng:
- Agent biết đầy đủ mọi thông tin về
môi trường.
- Mỗi hành động luôn tạo ra kết quả như
mong đợi.
Nhưng
thực tế không phải lúc nào cũng như vậy. Ví dụ:
- Robot hút bụi có thể gặp phải một chướng
ngại vật bất ngờ.
- Xe tự lái không thể biết chính xác
chiếc xe phía trước sẽ chuyển làn vào lúc nào.
- GPS có thể đề xuất một tuyến đường
nhưng sau đó lại xảy ra ùn tắc giao thông.
Trong
những trường hợp như vậy, agent không thể lập kế hoạch một lần rồi "nhắm mắt"
thực hiện đến hết được. Nó cần phải:
- Liên tục quan sát môi trường.
- Điều chỉnh kế hoạch khi có tình huống
mới xuất hiện.
- Thậm chí có thể thay đổi hoàn toàn
quyết định ban đầu.
AI
đã phát triển nhiều phương pháp tìm kiếm nâng cao để xử lý những bài toán này.
Chẳng hạn:
- Local Search (Tìm kiếm cục bộ):
agent chỉ tập trung cải thiện trạng thái hiện tại từng chút một thay vì
ghi nhớ toàn bộ đường đi.
- Contingency Planning (Lập kế hoạch có
nhánh rẽ): agent chuẩn bị sẵn nhiều phương án
khác nhau để lựa chọn tùy thuộc vào những gì nó quan sát được trong quá
trình thực hiện.
Tầm quan trọng của Search
Search
là một trong những nền tảng quan trọng nhất của trí tuệ nhân tạo. Rất nhiều
lĩnh vực khác của AI được xây dựng dựa trên những ý tưởng ban đầu của Search. Ví
dụ:
- Nếu bài toán được biểu diễn dưới dạng
các biến và các ràng buộc cần phải thỏa mãn, chúng ta có Constraint
Satisfaction Problems (Bài toán thỏa mãn ràng buộc).
- Nếu trạng thái và hành động được mô tả
bằng logic để có thể áp dụng cho nhiều loại bài toán khác nhau, chúng ta
có Automated Planning (Lập kế hoạch tự động).
- Nếu môi trường có sự tham gia của đối
thủ, chẳng hạn như cờ vua hoặc cờ vây, chúng ta có Adversarial Search
(Tìm kiếm đối kháng).
Có
thể nói, Search chính là "bộ não lập kế hoạch" của rất nhiều hệ thống
AI hiện đại. Chúng ta bắt gặp nó ở khắp mọi nơi:
- Các ứng dụng chỉ đường như GPS.
- Robot tự hành.
- Xe tự lái.
- AI chơi cờ vua, cờ vây và nhiều trò
chơi khác.
- Các bài toán tối ưu hóa và lập kế hoạch
trong công nghiệp.
- Một phần quan trọng trong việc xây dựng
các AI Agent hiện đại.
2. Constraint Satisfaction - Sức mạnh của việc loại bỏ những khả năng chắc chắn sai
Constraint
Satisfaction Problem (CSP) là bài toán mà ta cần tìm một cách sắp xếp hoặc lựa
chọn các giá trị sao cho mọi quy tắc (ràng buộc) đều được thỏa mãn.
Nói
đơn giản, CSP trả lời câu hỏi: "Làm thế nào để chọn đúng giá trị cho từng
thành phần mà không vi phạm bất kỳ quy tắc nào?"
Một
bài toán CSP luôn có 3 thành phần cơ bản:
- Biến (Variables):
những thứ ta cần quyết định giá trị.
- Miền giá trị (Domains):
những giá trị mà mỗi biến có thể nhận.
- Ràng buộc (Constraints):
các quy tắc mà các biến phải tuân theo.
Ví
dụ kinh điển là bài toán tô màu bản đồ nước Úc:
- Mỗi vùng lãnh thổ là một biến.
- Các màu (đỏ, xanh dương, xanh lá) là miền
giá trị của mỗi biến.
- Quy tắc "hai vùng liền kề không
được cùng màu" chính là ràng buộc.
Vậy CSP ra đời để giải quyết vấn đề gì?
Trong
các bài toán Search thông thường, thuật toán thường chỉ nhìn thấy toàn bộ trạng
thái như một "hộp đen". Nó biết một trạng thái là đúng hay sai nhưng
không biết chính xác phần nào bên trong đang gây ra vấn đề. Vì vậy, thuật toán thường phải thử rất nhiều
khả năng khác nhau rồi mới phát hiện ra rằng lựa chọn của mình là sai.
CSP
tiếp cận theo một cách khác: thay vì xem trạng thái là một khối duy nhất, nó
chia bài toán thành nhiều biến nhỏ cùng với các quy tắc ràng buộc giữa chúng.
Nhờ đó, chỉ cần phát hiện một lựa chọn vi phạm quy tắc, thuật toán có thể loại
bỏ ngay rất nhiều khả năng không hợp lệ mà không cần phải thử hết.
Ví
dụ, nếu ta quyết định "Nam Úc = màu xanh dương", thuật toán biết
ngay lập tức rằng tất cả các vùng tiếp giáp với Nam Úc đều không được dùng màu
xanh dương nữa. Điều này giúp giảm đáng kể số khả năng cần phải xem xét.
Chính
khả năng "loại bỏ sớm các lựa chọn sai" này là ưu điểm lớn nhất của
CSP. Nhiều bài toán tưởng như rất khó nếu giải bằng cách thử lần lượt từng khả
năng sẽ trở nên dễ xử lý hơn khi được biểu diễn dưới dạng CSP.
Có
thể hiểu một cách trực quan như sau:
- Search thông thường:
"Hãy thử mọi khả năng cho đến khi tìm được đáp án đúng."
- CSP:
"Hãy dùng các quy tắc của bài toán để loại bỏ càng nhiều đáp án sai
càng sớm càng tốt."
Hiểu bản chất của CSP
Giải
một bài toán CSP đơn giản là tìm được một cách lựa chọn giá trị cho tất cả các
biến sao cho không vi phạm bất kỳ quy tắc nào. Nói cách khác, ta cần trả lời
câu hỏi: "Chọn giá trị gì cho từng biến để mọi quy tắc đều được thỏa
mãn?"
CSP
không chỉ cho ta biết đáp án đúng hay sai, mà còn cho ta biết chính xác vì sao
nó sai. Khi một lựa chọn vi phạm quy tắc, hệ thống biết ngay
biến nào đang gây ra vấn đề và quy tắc nào đã bị vi phạm.
Đây
chính là điểm khác biệt so với Search thông thường. Search thường chỉ biết rằng
"trạng thái hiện tại không phải đáp án", còn CSP biết rằng "trạng
thái này sai vì biến A không phù hợp với biến B theo ràng buộc C". Nhờ hiểu
được nguyên nhân gây ra lỗi, CSP có thể loại bỏ ngay rất nhiều lựa chọn không hợp
lệ mà không cần phải thử chúng.
CSP hoạt động như thế nào?
CSP
thường kết hợp hai ý tưởng quan trọng:
- Thử và quay lại (Backtracking):
hệ thống sẽ thử gán một giá trị cho biến. Nếu phát hiện lựa chọn đó khiến
bài toán không thể tiếp tục, nó sẽ quay lại và thử một giá trị khác.
- Loại bỏ sớm các lựa chọn sai
(Constraint Propagation): trước khi phải thử
tất cả các khả năng, hệ thống sẽ sử dụng các ràng buộc của bài toán để loại
bỏ những giá trị chắc chắn không thể sử dụng. Điều này giúp giảm rất nhiều
công việc cần phải làm.
Ví
dụ, nếu bài toán yêu cầu hai ô liền kề không được cùng màu và ta đã chọn ô thứ
nhất có màu xanh dương, thì hệ thống sẽ biết ngay ô còn lại không được phép
dùng màu xanh dương nữa. Nhờ vậy, nó không cần mất thời gian thử những trường hợp
chắc chắn sẽ sai.
Có
thể hiểu đơn giản rằng CSP hoạt động theo hai bước:
1.
Dùng các quy tắc để loại bỏ càng nhiều lựa
chọn sai càng tốt.
2.
Nếu vẫn còn nhiều khả năng, hệ thống sẽ thử
từng lựa chọn còn lại và quay lui khi cần thiết.
Vai trò của CSP
CSP
là một mô hình rất quan trọng trong Trí tuệ nhân tạo (AI) và Khoa học máy tính.
Rất nhiều bài toán thực tế có thể được mô tả dưới dạng CSP, chẳng hạn như:
- Xếp thời khóa biểu cho trường học.
- Phân công ca làm việc cho nhân viên.
- Phân bổ tài nguyên trong hệ thống máy
tính.
- Thiết kế và kiểm tra các mạch điện tử.
- Lập kế hoạch và tối ưu hóa các hệ thống
phức tạp.
CSP
cũng là nền tảng của nhiều kỹ thuật suy luận hiện đại. Một "người anh
em" rất nổi tiếng của CSP là bài toán thỏa mãn logic mệnh đề (SAT). Nếu
CSP cho phép một biến có nhiều giá trị khác nhau (ví dụ: đỏ, xanh dương hoặc
xanh lá), thì SAT chỉ cho phép mỗi biến nhận một trong hai giá trị: Đúng (True)
hoặc Sai (False).
Có
thể hình dung mối quan hệ giữa chúng như sau:
- Search:
thử tìm lời giải bằng cách khám phá các khả năng.
- CSP:
bổ sung thêm khả năng biểu diễn các biến và các quy tắc để loại bỏ sớm những
lựa chọn sai.
- SAT/SMT:
phát triển các ý tưởng của CSP theo hướng suy luận logic mạnh mẽ hơn để giải
quyết những bài toán rất lớn trong thực tế.
Sức
mạnh của CSP không nằm ở việc "thử thật nhanh", mà nằm ở việc "suy
luận thật sớm". Càng loại bỏ được nhiều khả năng sai trước khi phải thử,
bài toán càng trở nên dễ giải hơn.
Khi
bài toán yêu cầu tìm lời giải tốt nhất (ví dụ: vừa xếp lịch hợp lệ vừa muốn sử
dụng ít phòng học nhất), ta sẽ cần đến các biến thể của CSP dành cho bài toán tối
ưu hóa.
3. Planning - Khi AI không chỉ tìm đường đi mà còn biết cách xây dựng kế hoạch
Planning
là khả năng giúp AI Agent tự tìm ra một chuỗi các bước cần thực hiện để đạt được
mục tiêu một cách hiệu quả.
Nói
một cách đơn giản, nếu Search trả lời câu hỏi "Có đường nào đi đến mục
tiêu hay không?" thì Planning trả lời câu hỏi "Cần phải làm những
gì, theo thứ tự nào để đạt được mục tiêu đó?". Search tìm đường
đi đến mục tiêu, còn Planning tìm ra cả một kế hoạch để đạt được mục
tiêu đó.
Bản chất của Planning
Planning
ra đời để giải quyết hai vấn đề lớn của các phương pháp trước đây:
- Con người phải viết quá nhiều luật hoặc
chương trình riêng cho mỗi bài toán mới.
- Số lượng trạng thái có thể tăng lên rất
nhanh khi bài toán trở nên phức tạp.
Ví
dụ, trong một thế giới có robot, chúng ta có thể có các hành động như:
- Đi từ vị trí A sang vị trí B.
- Nhặt một chiếc hộp.
- Đặt chiếc hộp xuống bàn.
- Mở hoặc đóng cửa.
Với
Planning, thay vì mô tả từng trạng thái một cách riêng lẻ, nó mô tả:
- Một trạng thái gồm những thông tin
nào.
- Mỗi hành động cần những điều kiện gì
để được thực hiện.
- Sau khi thực hiện, hành động đó sẽ
làm thay đổi chính xác những thông tin nào.
Có
thể hình dung Planning giống như việc tạo ra một "khuôn mẫu" cho các
hành động. Ví dụ, thay vì phải viết riêng:
- Bay từ Paris đến Lyon.
- Bay từ Paris đến London.
- Bay từ New York đến Chicago.
- ...
Khuôn
hành động này cho Agent biết:
- Muốn bay thì máy bay phải đang ở nơi
đi (điều kiện trước khi thực hiện).
- Sau khi bay xong, máy bay sẽ không
còn ở nơi đi nữa mà chuyển sang nơi đến (kết quả của hành động).
Khi
cần giải quyết một bài toán cụ thể, Agent chỉ việc thay các biến bằng giá trị
tương ứng. Ví dụ:
- Bay(FR123, Paris, Lyon)
- Bay(FR123, Paris, London)
- Bay(US456, New York, Chicago)
Planning có thể xây dựng kế hoạch như thế nào?
Hãy
hình dung chúng ta có một công ty vận chuyển hàng hóa bằng máy bay. Mục tiêu là
chuyển kiện hàng C1 từ sân bay SFO đến sân bay JFK. Ban đầu, Agent chỉ cần biết
một số thông tin về thế giới hiện tại, chẳng hạn như:
- Máy bay P1 đang ở sân bay SFO.
- Kiện hàng C1 đang ở sân bay SFO.
- Mục tiêu cần đạt được là: kiện hàng
C1 phải ở sân bay JFK.
Agent
cũng được cung cấp các "khuôn hành động" như:
- Bay(máy_bay, nơi_đi, nơi_đến)
- Chất_hàng(kiện_hàng, máy_bay,
sân_bay)
- Dỡ_hàng(kiện_hàng, máy_bay, sân_bay)
Mỗi
hành động đều cho Agent biết hai điều:
- Điều kiện cần có để thực hiện hành động
(Precondition).
- Những gì sẽ thay đổi sau khi thực hiện
hành động (Effect).
Ví
dụ, đối với hành động: Bay(P1, SFO, JFK)
Sau
khi thực hiện:
- Máy bay P1 không còn ở SFO nữa.
- Máy bay P1 đang ở sân bay JFK.
Tương
tự, hành động: Chất_hàng(C1, P1, SFO)
Điều
kiện cần có:
- Kiện hàng C1 đang ở SFO.
- Máy bay P1 đang ở SFO.
Sau
khi thực hiện:
- Kiện hàng C1 không còn ở SFO nữa.
- Kiện hàng C1 đang ở bên trong máy bay
P1.
Sau
mỗi bước, Agent sẽ tự cập nhật trạng thái của thế giới. Nó biết rằng:
- Sau khi chất hàng, kiện hàng đang ở
trong máy bay.
- Sau khi máy bay bay đến JFK, kiện
hàng cũng đang ở JFK (vì vẫn ở trong máy bay).
- Sau khi dỡ hàng, kiện hàng đã ở đúng
nơi cần đến.
Nói
cách khác, Agent không cần phải được con người lập trình rằng: "Nếu muốn
chuyển hàng từ SFO sang JFK thì hãy làm bước 1, bước 2 và bước 3". Con người
chỉ cần mô tả:
- Trạng thái ban đầu là gì.
- Có những hành động nào.
- Điều kiện và kết quả của từng hành động.
- Mỗi hành động sẽ làm thay đổi trạng
thái như thế nào.
- Mục tiêu cuối cùng là gì.
Về
cơ bản, Planning hoạt động bằng cách trả lời liên tục hai câu hỏi:
- "Tôi đang ở trạng thái
nào?"
- "Tôi cần thực hiện những hành động
nào để đạt được mục tiêu?"
Lập
kế hoạch tiến (Forward Planning): Hệ thống bắt đầu từ trạng
thái hiện tại rồi từng bước lựa chọn các hành động có thể thực hiện cho đến khi
đạt được mục tiêu. Ví dụ, nếu mục tiêu là "mang một cốc nước đến phòng
khách", hệ thống có thể suy nghĩ theo cách: Tôi đang ở phòng ngủ → đi đến
nhà bếp → lấy cốc → rót nước → đi đến phòng khách → hoàn thành mục tiêu. Đây là
cách suy nghĩ rất giống với việc con người tự hỏi: "Từ vị trí hiện tại,
tôi cần làm gì tiếp theo?".
Lập
kế hoạch lùi (Backward Planning): Thay vì bắt đầu từ hiện tại,
hệ thống sẽ bắt đầu từ mục tiêu rồi suy ngược trở lại. Ví dụ: Muốn
có cốc nước ở phòng khách → trước đó tôi phải mang cốc nước đến phòng khách →
muốn làm được điều đó thì tôi phải lấy được cốc nước → muốn lấy được cốc nước
thì tôi phải đi đến nhà bếp. Cách suy luận này rất giống với việc chúng ta thường
tự hỏi: "Muốn đạt được mục tiêu này thì tôi cần những điều kiện
gì?". Sau đó tiếp tục hỏi: "Muốn có những điều kiện đó
thì tôi cần phải làm gì?" cho đến khi quay trở về trạng thái hiện
tại. Nói cách khác, chúng ta bắt đầu từ mục tiêu cuối cùng rồi lần ngược trở về
những việc cần phải làm ở hiện tại.
Kết luận
Nếu
Search trả lời câu hỏi "Tôi có thể đi bằng cách nào?", CSP trả lời
câu hỏi "Những khả năng nào chắc chắn sai?" và Planning trả lời câu hỏi
"Tôi cần phải làm những gì?", thì khi ghép chúng lại với nhau, chúng
ta đã có được ba mảnh ghép quan trọng đầu tiên của một AI Agent có khả năng suy
nghĩ trước khi hành động.
Điều
thú vị là những ý tưởng này không hề trở nên lỗi thời trong kỷ nguyên của
Generative AI. Trái lại, chúng vẫn đang âm thầm hiện diện trong rất nhiều hệ thống
AI hiện đại dưới những hình thức ngày càng mạnh mẽ hơn.
Tuy
nhiên, việc xây dựng được một kế hoạch hành động vẫn chưa phải là điểm kết thúc
của câu chuyện. Một câu hỏi tham vọng hơn nhanh chóng xuất hiện: liệu chúng ta
có thể xây dựng những hệ thống có khả năng tự động lập kế hoạch cho rất nhiều
loại bài toán khác nhau hay không? Và khi thế giới trở nên không chắc chắn với
vô số sự đánh đổi phải đưa ra, AI sẽ quyết định điều gì là tốt nhất?
Recommended Books
- MIT Press. Model Checking, Second Edition (2018)
- Prentice Hall. Artificial Intelligence_ A Modern Approach 4th (2020)
- Prentice Hall. Automated reasoning _ 33 basic research problems (1988)
Comments
Post a Comment