You are on page 1of 4

Một quan hệ R có thể được biểu diễn như một bài toán tìm kiếm, và một máy Turing

tính R còn được gọi để giải quyết nó. Mọi bài toán tìm kiếm đều tương ứng với bài
toán quyết định, cụ thể là:

L(R) = { x | ∃yR(x,y)}.

Tìm kiếm nghĩa là tìm một hay nhiều mẩu thông tin đã được lưu trữ. Thông
thường, thông tin được chia thành các mẩu tin (record), mỗi mẩu tin đều có một
KHÓA (key) dùng cho việc tìm kiếm. Ta sẽ luôn có một khoá cho trước giống như
khoá của các mẩu tin mà ta cần tìm. Mỗi mẩu tin được tìm thấy sẽ chứa toàn bộ
thông tin để cung cấp cho một quá trình xử lý nào đó. Việc tìm kiếm được áp dụng
rất đa dạng và rộng rãi.

Ví dụ: Một Ngân hàng nắm giữ tất cả thông tin của rất nhiều tài khoản khách
hàng và cần tìm kiếm để kiểm tra các biến động. Một hãng Bảo hiểm hay một hệ
thống trợ giúp bán vé xe, vé máy bay….Việc tìm kiếm thông tin để đáp ứng việc sắp
đặt ghế và các yêu cầu tương tự như vậy là thực sự cần thiết.

Một phát biểu Bài toán tìm kiếm thường được sử dụng nhất là: “Cho một bảng
gồm n bản ghi R1, R2, …., Rn. Mỗi bản ghi Ri (1 ≤ i ≤ n) tương ứng với 1 khóa ki. Hãy
tìm bản ghi có giá trị khóa tương ứng bằng X cho trước. X được gọi là khóa tìm kiếm
hay đối trị tìm kiếm. Công việc tìm kiếm sẽ hoàn thành khi có một trong hai tình
huống sau đây xảy ra.

1. Tìm được bản ghi có giá trị khóa tương ứng bằng X, lúc đó ta nói: phép tìm kiếm
được thỏa (Successful).

2. Không tìm được bản ghi nào có khóa bằng X cả: phép tìm kiếm không thỏa.
(unsuccessful).

Thuật ngữ thường được dùng trong việc mô tả cấu trúc dữ liệu của việc tìm kiếm là
TỪ ĐIỂN và BẢNG KÝ HIỆU. Một ví dụ điển hình như ta muốn xây dựng hệ thống
tra từ điển Tiếng Anh chẳng hạn. Ở đây, “khoá” là từ và “mẩu tin” là diễn giải cho từ
đó, mỗi mẩu tin chứa định nghĩa, cách phát âm và các thông tin khác. BẢNG KÝ

7
HIỆU chính là từ điển cho chương trình và các mẩu tin chứa thông tin mô tả đối
tượng được đặt tên.

Một cách tổng quát, bài toán tìm kiếm có thể được phát biểu dựa vào không gian
trạng thái với bộ 4 (S, To, Op, TG) hoặc bộ 5: (S, T0, Op, TG,, Pcost).

Trong đó: S là tập các trạng thái, T0 là trạng thái ban đầu, Op là tập các toán tử hay
tập các phép chuyển trạng thái mà có thể chuyển một trạng thái này sang trạng thái
khác, TG là trạng thái đích. Pcost là chi phí đường đi. Mục đích của bài toán là tìm ra
cách chuyển từ trạng thái ban đầu sang trạng thái đích, nếu theo bộ 5 có thêm Pcost
thì bài toán cần tìm nghiệm tốt nhất nghĩa là tìm cách chuyển từ trạng thái ban đầu
đến trạng thái đích với chi phí nhỏ nhất (hoặc lớn nhất).

Phát biểu chi tiết hơn của cách biểu diễn này chúng ta sẽ xét trong mục không gian
tìm kiếm dưới đây.

1.1.2 Không gian tìm kiếm


1.1.2.1 Không gian tìm kiếm

Khi muốn giải quyết một vấn đề nào đó bằng tìm kiếm, trước hết ta phải xác
định không gian tìm kiếm. Không gian tìm kiếm bao gồm tất cả các đối tượng mà ta
cần quan tâm để tìm ra trong đó đối tượng yêu cầu. Đó có thể là không gian liên tục,
chẳng hạn không gian các véctơ thực n chiều; hoặc cũng có thể là không gian các đối
tượng rời rạc như tập các nút của đồ thị hay tập các lời giải của bài toán [7].

Một cách chung nhất, nhiều bài toán phức tạp đều có dạng "tìm đường đi
trong đồ thị" hay nói một cách hình thức hơn là "xuất phát từ một đỉnh của một đồ
thị, tìm đường đi hiệu quả nhất đến một đỉnh nào đó". Một phát biểu khác thường
gặp của dạng bài toán này là :

Cho trước hai trạng thái T0 và TG hãy xây dựng chuỗi trạng thái T0, T1, T2, ..., Tn-1, Tn
= TG sao cho :

∑1 Pcost(Ti −1 , Ti )
n
thỏa mãn một điều kiện cho trước (thường là nhỏ nhất).

8
Trong đó, Ti thuộc tập hợp S (gọi là không gian trạng thái – state space) bao
gồm tất cả các trạng thái có thể có của bài toán và Pcost(Ti-1,Ti) là chi phí để biến đổi
từ trạng thái Ti-1 sang trạng thái Ti. Tuy nhiên, từ một trạng thái Ti-1 ta có nhiều cách
để biến đổi sang trạng thái Ti. Khi nói đến một biến đổi cụ thể từ Ti-1 sang Ti ta sẽ
dùng thuật ngữ hướng đi (với ngụ ý nói về sự lựa chọn).

TG

T0

Hình 1.1: Mô hình chung của các vấn đề-bài toán phải giải quyết bằng phương pháp
tìm kiếm lời giải. Không gian tìm kiếm là một tập hợp trạng thái - tập các nút của đồ
thị. Chi phí cần thiết để chuyển từ trạng thái này sang trạng thái khác được biểu diễn
dưới dạng các con số nằm trên cung nối giữa hai nút tượng trưng cho hai trạng thái.

1.1.2.2 Biểu diễn vấn đề trong không gian trạng thái

Ta sẽ xét việc biểu diễn một vấn đề trong không gian trạng thái sao cho việc
giải quyết vấn đề được quy về việc tìm kiếm trong không gian trạng thái. Một phạm
vi rộng lớn các vấn đề, đặc biệt các câu đố, các trò chơi, có thể mô tả bằng cách sử
dụng khái niệm trạng thái và phép chuyển trạng thái hay là phép chuyển (phép biến
đổi trạng thái).

Ví dụ: Trong trò chơi cờ vua, mỗi cách bố trí các quân trên bàn cờ là một
trạng thái. Trạng thái ban đầu là sự sắp xếp các quân lúc đầu cuộc chơi. Mỗi nước đi
hợp lệ là một phép chuyển trạng thái, nó biến đổi một trạng thái trên bàn cờ thành
một trạng thái khác.

9
Như vậy muốn biểu diễn một vấn đề trong không gian trạng thái, ta cần xác
định các yếu tố sau:
- Trạng thái ban đầu
- Tập hợp các phép chuyển trạng thái. Trong đó mỗi toán tử hay phép chuyển mô tả
một hành động hoặc một phép biến đổi có thể đưa một trạng thái tới một trạng thái
khác.
Tập hợp tất cả các trạng thái có thể đạt tới từ trạng thái ban đầu bằng cách áp
dụng một dãy phép chuyển trạng thái, lập thành không gian trạng thái của bài toán.
Ta sẽ ký hiệu không gian trạng thái là S, trạng thái ban đầu là T0 (T0 ∈ S). Mỗi
phép chuyển R có thể xem như một ánh xạ R: S → S. Nói chung R là một ánh xạ
không xác định khắp nơi trên S.

- Một tập hợp TG các trạng thái kết thúc (trạng thái đích). TG là tập con của không
gian S. Trong nhiều vấn đề (chẳng hạn các loại cờ) có thể có nhiều trạng thái đích và
ta không thể xác định trước được các trạng thái đích. Nói chung trong phần lớn các
vấn đề hay, ta chỉ có thể mô tả các trạng thái thỏa mãn một số điều kiện nào đó.

Khi biểu diễn một vấn đề thông qua các trạng thái và các phép chuyển, thì
việc tìm nghiệm của bài toán được quy về việc tìm đường đi từ trạng thái ban đầu tới
trạng thái đích. (Một đường đi trong không gian trạng thái là một dãy phép chuyển
dẫn một trạng thái tới một trạng thái khác).

Chúng ta có thể biểu diễn không gian trạng thái bằng đồ thị định hướng, trong
đó mỗi đỉnh đồ thị tương ứng với một trạng thái. Nếu có phép chuyển R biến đổi
trạng thái u thành trạng thái v, thì có cung gán nhãn R đi từ đỉnh u tới đỉnh v. Khi đó
một đường đi trong không gian trạng thái sẽ là một đường đi trong đồ thị.

Sau đây chúng ta sẽ xem xét một ví dụ về không gian trạng thái được xây dựng cho
bài toán 8 số.
Ví dụ : Bài toán 8 số. Cho bảng 3x3 ô và tám quân mang số hiệu từ 1 đến 8, còn lại
một ô trống. Mỗi quân ở cạnh ô trống có thể được chuyển dịch tới ô trống đó. Yêu
cầu của bài toán là tìm ra một dãy các chuyển dịch để biến đổi trạng thái ban đầu của

10

You might also like