You are on page 1of 3

Insertion Heuristics

1.Trình bày ý tưởng thuật giải. Cho ví dụ.


Ý tưởng của thuật giải chèn heuristics là xây dựng một chuỗi con ban đầu của một tập
hợp con các thành phố, sau đó từng bước chèn các thành phố còn lại vào chuỗi con đó
bằng cách chọn các thành phố và vị trí chèn sao cho tối ưu theo một tiêu chí nhất định.
Ví dụ:
Giả sử chúng ta có một tập hợp các thành phố sau đây và khoảng cách giữa chúng:
A, B, C, D, E, F
Khoảng cách: AB=2, AC=5, AD=4, AE=7, AF=6, BC=3, BD=6, BE=8, BF=3, CD=3,
CE=5, CF=4, DE=3, DF=7, EF=2
Chúng ta sẽ áp dụng thuật giải Nearest Insertion để xây dựng đường đi ngắn nhất giữa
các thành phố.
Bước 1: Chọn cạnh ngắn nhất và tạo thành chuỗi con ban đầu. Chọn AB: Chuỗi con
ban đầu: A-B
Bước 2: Chọn thành phố không thuộc chuỗi con và có khoảng cách gần nhất với thành
phố trong chuỗi con. Chọn C: Chuỗi con: A-C-B
Bước 3: Tìm cạnh trong chuỗi con sao cho chi phí của việc chèn thành phố C giữa các
thành phố của cạnh là nhỏ nhất. Có 3 cạnh để kiểm tra: AC, BC, AB. Ta tính chi phí
chèn C vào các vị trí:
AC: chi phí = 5 + 3 - 2 = 6
BC: chi phí = 3 + 4 - 3 = 4
AB: chi phí = 2 + 5 - 7 = 0
Chọn AB vì nó có chi phí chèn nhỏ nhất.
Chuỗi con: A-C-B
Bước 4: Chọn thành phố không thuộc chuỗi con và có khoảng cách gần nhất với thành
phố trong chuỗi con. Chọn D: Chuỗi con: A-C-D-B
Bước 5: Tìm cạnh trong chuỗi con sao cho chi phí của việc chèn thành phố D giữa các
thành phố của cạnh là nhỏ nhất. Có 6 cạnh để kiểm tra. Ta tính chi phí chèn D vào các
vị trí:
AD: chi phí = 4 + 3 - 7 = 0
AC: chi phí = 5 + 3 - 4 = 4
CD: chi phí = 3 + 6 - 3 = 6
CB: chi phí = 3 + 6 - 4 = 5
DB: chi phí = 6 + 3 - 6 = 3
BD: chi phí = 6 + 3 - 8 = 1
Chọn BD vì nó có chi phí chèn nhỏ nhất.
Chuỗi con: A-C-D-B
Bước 6: Chọn thành phố không thuộc chuỗi con và có khoảng cách gần nhất với thành
phố trong chuỗi con. Chọn E: Chuỗi con: A-C-D-E-B
Bước 7: Tìm cạnh trong chuỗi con sao cho chi phí của việc chèn thành phố E giữa các
thành phố của cạnh là nhỏ nhất. Có 8 cạnh để kiểm tra. Ta tính chi phí chèn E vào các
vị trí:
AE: chi phí = 7 + 2 - 6 = 3
AC: chi phí = 5 + 5 - 4 = 6
CE: chi phí = 5 + 3 - 5 = 3
CD: chi phí = 3 + 3 - 6 = 0
DE: chi phí = 3 + 3 - 7 = -1
Chọn DE vì nó có chi phí chèn nhỏ nhất.
Chuỗi con: A-C-D-E-B
Bước 8: Chọn thành phố không thuộc chuỗi con và có khoảng cách gần nhất với thành
phố trong chuỗi con. Chọn F: Chuỗi con: A-C-D-E-F-B
Bước 9: Tìm cạnh trong chuỗi con sao cho chi phí của việc chèn thành phố F giữa các
thành phố của cạnh là nhỏ nhất. Ta tính chi phí chèn F vào các vị trí:
AF: chi phí = 6 + 2 - 6 = 2
AE: chi phí = 7 + 2 - 3 = 6
EF: chi phí = 2 + 2 - 3 = 1
DE: chi phí = 3 + 2 - 7 = -2
DF: chi phí = 7 + 2 - 4 = 5
CF: chi phí = 4 + 2 - 5 = 1
BF: chi phí = 3 + 2 - 3 = 2
Chọn DE vì nó có chi phí chèn nhỏ nhất.
Chuỗi con: A-C-D-E-F-B
Kết quả cuối cùng là chuỗi con A-C-D-E-F-B, tạo thành đường đi ngắn nhất giữa các
thành phố.

You might also like