Xột bài toỏn tối ưu tổ hợp tổng quỏt sau:
Min{f(x): x D},
trong đú
D = {x= (x1, x2,..., xn) A1 A2 A3 ... An }, A1, A2,..., An là cỏc tập hữu hạn.
Ta gọi bộ n thành phần x= (x1, x2,..., xn) thuộc D là phương ỏn đầy đủ hay lời giải đầy đủ của bài toỏn, bộ k<n thành phần (x1, x2,..., xk) với
là phương ỏn bộ phận hay lời giải bộ phận. Ta sẽ xõy dựng cỏc phương ỏn đầy đủ từ cỏc phương ỏn bộ phận, tức là sẽ phỏt triển dần cỏc phương ỏn bộ phận.
Ký hiệu là tập hợp tất cả cỏc phương ỏn đầy đủ cú thể phỏt
triển từ phương ỏn bộ phận . Để giảm thời gian tớnh toỏn chỳng ta
sẽ khụng phỏt triển tất cả cỏc phương ỏn bộ phận mà chỉ phỏt triển những
phương ỏn tiềm năng, tức là những phương ỏn mà
cú khả năng chứa lời giải tối ưu, và sẽ khụng phỏt triển cỏc phương ỏn bộ
phận mà chắc chắn khụng chứa lời giải tối ưu. Vấn
đề đặt ra là phải cú dấu hiệu để phỏt hiện là khụng tiềm năng.
Ta gọi cận dưới của phương ỏn bộ phận là số thỏa
món điều kiện
, (1)
Giả sử là phương ỏn tốt nhất trong số cỏc phương ỏn đầy đủ đó duyệt và . Ta gọi là giỏ trị kỷ lục hiện thời. Thế thỡ, nếu
từ (1) ta suy ra
Vỡ thế, tập khụng thể chứa lời giải tối ưu, và phương ỏn bộ phận
khụng cần phỏt triển tiếp.
Như vậy, để thực hiện tốt ý tưởng trờn cần:
Xỏc định được hàm cận dưới một cỏch dễ dàng hơn việc
giải bài toỏn tối ưu ở vế phải của (1). Xỏc định và cập nhật được giỏ trị kỷ lục.
Chỳ ý. Khi bài toỏn tối ưu đặt ra là Max{f(x): x D} thỡ thay cho hàm cận dưới ta phải xột hàm cận trờn thỏa món
. (2)
Gọi là giỏ trị kỷ lục hiện thời tức là giỏ trị lớn nhất của hàm mục tiờu trong
số cỏc phương ỏn đó duyệt. Khi đú nếu từ (2) suy ra
Vỡ thế, tập khụng thể chứa lời giải tối ưu, và phương ỏn bộ phận
khụng cần phỏt triển tiếp.
Nhận xột 1. Nếu minh họa bài toỏn xõy dựng lời giải (hay cấu
hỡnh/phương ỏn) tối ưu như xõy dựng cõy tỡm kiếm thỡ đối với mỗi nỳt (hay mỗi nhỏnh) của cõy cần xỏc định cận dưới đối với bài toỏn cực tiểu húa hoặc
cận trờn đối với bài toỏn cực đại húa và chỉ cần phỏt triển cỏc nhỏnh tiềm năng chứa lời giải tối ưu.
Khụng gian tỡm kiếm của phương phỏp nhỏnh cận cú thể được minh họa như sau
Nhận xột 2. Mỗi lời giải bộ phận cú thể xem như một bài toỏn con về chi phớ để hoàn thiện lời giải này. Trong ngữ cảnh bài toỏn cực tiểu húa để loại bỏ bài toỏn con ta cần phải được tin rằng chi phớ của nú lớn hơn chi phớ của một lời giải đầy đủ đó duyệt. Thuật toỏn nhỏnh cận trong trường hợp này cú thể được mụ tả như sau:
Start with some problem P0
Let , the set of active subproblems
bestsofar = (giỏ trị kỷ lục) Repeat while S is nonempty:
choose a subproblem (partial solution) and remove it from
S;
expand it into smaller subproblems
For each :
If is a complete solution: update bestsofar else if lowerbound( ) < bestsofar: add Pi to S return bestsofar
tức là
Bắt đầu bởi bài toỏn P0
Đặt , tập cỏc bài toỏn được kớch hoạt
(giỏ trị kỷ lục)
Lặp cho đến khi :
chọn bài toỏn con và loại nú ra khỏi ;
phõn hoạch nú thành cỏc bài toỏn con
đối với mỗi bài toỏn :
nếu là lời giải đầy đủ: cập nhật giỏ trị kỷ lục
nếu cận dưới của : bổ sung Pi vào S