Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 31

Bài 1

Câu 1 Nêu các bước cơ bản của vận trù học.


Bước 1. Xác định bài toán
Bước 2. Quan sát hệ thống
Bước 3. Xây dựng mô hình toán học
Bước 4. Lựa chọn giải pháp phù hợp
Bước 5. Biểu diễn kết quả và kết luận
Bước 6. Triển khai và đánh giá

Câu 2 Trình bày mô hình của bài toán lập kế hoạch sản xuất với tài
nguyên hạn chế.
Bài toán lập kế hoạch sản xuất với tài nguyên hạn chế là một vấn đề quan trọng trong quản lý sản
xuất và quản lý chuỗi cung ứng. Mục tiêu của bài toán này là tối ưu hóa việc sử dụng tài nguyên có
hạn, như máy móc, lao động, nguyên vật liệu, và thời gian, để đảm bảo sản xuất được các mặt hàng
đúng số lượng, đúng chất lượng, và đúng thời gian, đồng thời giảm thiểu chi phí và lãng phí.
Dưới đây là mô hình cơ bản của bài toán lập kế hoạch sản xuất với tài nguyên hạn chế:
Dữ liệu đầu vào: Danh sách các sản phẩm cần sản xuất. Yêu cầu sản xuất của từng sản phẩm (số
lượng, thời gian cần thiết). Khả năng sản xuất của các tài nguyên (máy móc, lao động, v.v.). Chi phí
sản xuất (bao gồm chi phí nguyên vật liệu, chi phí lao động, v.v.). Thời hạn cần phải hoàn thành sản
phẩm.
Mục tiêu: Tối ưu hóa lợi nhuận hoặc giảm thiểu chi phí sản xuất.
Ràng buộc:
Ràng buộc về tài nguyên: Số lượng và khả năng sử dụng các tài nguyên có hạn.
Ràng buộc về thời gian: Thời hạn cần phải hoàn thành sản phẩm.
Ràng buộc về yêu cầu sản xuất: Số lượng và chất lượng sản phẩm cần sản xuất.
Ràng buộc về mặt chất lượng: Các yêu cầu về chất lượng sản phẩm phải được đáp ứng.
Biến quyết định: Số lượng sản phẩm được sản xuất trong mỗi chu kỳ sản xuất. Lịch trình sản xuất
cho mỗi sản phẩm.
Mô hình toán học: Mô hình tối ưu hóa có thể sử dụng các kỹ thuật như lập trình tuyến tính (Linear
Programming - LP), lập trình nguyên (Integer Programming - IP), hoặc lập trình tuyến tính-nguyên
(Mixed Integer Linear Programming - MILP). Hàm mục tiêu của bài toán là tối thiểu hóa tổng chi phí
sản xuất, trong khi đảm bảo rằng tất cả các ràng buộc về tài nguyên và thời gian đều được tuân thủ.
Một số biến quyết định có thể bao gồm số lượng sản phẩm cụ thể được sản xuất trong mỗi chu kỳ,
thời điểm bắt đầu và kết thúc sản xuất cho mỗi sản phẩm, v.v.
Giải pháp: Sử dụng các thuật toán tối ưu hóa để tìm ra giải pháp tối ưu hoặc gần tối ưu nhất cho bài
toán, đáp ứng các yêu cầu về sản xuất và tài nguyên hạn chế.

Câu 3 Trình bày mô hình của bài toán vận tải.


Có n kho A1 , ... An với lượng hàng tương ứng ở kho Ai là ai được cung cấp cho m điểm tiêu
thụ B1 , ... Bm, nhu cầu ở Bj tương ứng là bj . cji là cước phí vận chuyển một đơn vị hàng
hoá từ kho Ai tới Bj.
Tìm phương án vận chuyển có chi phí nhỏ nhất.
Câu 4 Nêu các hàm mục tiêu và các ràng buộc cho bài toán vận tải.
Ràng buộc về cung cấp: Số lượng hàng hóa được vận chuyển từ mỗi điểm xuất phát không được
vượt quá khả năng cung cấp.
Ví dụ: Một nhà máy chỉ có thể sản xuất một số lượng hữu hạn sản phẩm trong một khoảng thời gian
cụ thể.
Ràng buộc về cầu: Số lượng hàng hóa nhận được tại mỗi điểm đích phải đáp ứng được nhu cầu.
Ví dụ: Một trung tâm phân phối phải đảm bảo rằng các cửa hàng nhận đủ hàng hóa để đáp ứng nhu
cầu của khách hàng.
Ràng buộc về điều kiện vận chuyển: Số lượng hàng hóa được vận chuyển theo các phương tiện (xe
tải, container, v.v.) có dung tích và khả năng chịu tải tối đa nhất định.
Ví dụ: Một xe tải chỉ có thể chở được một số lượng hàng hóa giới hạn, và không thể vận chuyển quá
số lượng này.
Ràng buộc về thời gian: Thời gian giao hàng hoặc thời gian vận chuyển có thể được ràng buộc.
Ví dụ: Có thể có yêu cầu về thời gian giao hàng cụ thể, và các vận chuyển phải được lên kế hoạch sao
cho hàng hóa đến đúng thời gian.
Ràng buộc về loại hàng: Có thể có ràng buộc về loại hàng hóa cụ thể hoặc các yêu cầu đặc biệt khác.
Ví dụ: Một số loại hàng hóa có thể yêu cầu điều kiện vận chuyển đặc biệt như hàng hóa đông lạnh.

Câu 5 Nêu các loại bài toán tối ưu.


Tối ưu liên tục
Tối ưu tổ hợp (rời rạc)

Hỗn hợp giữa các biến liên tục và rời rạc nhưng ta không xét trong môn học này.
!

Bài 2
Câu 1 Nêu sự khác nhau giữa bài toán P và NP.
P là lớp các bài toán giải được bằng thuật toán đơn định trong thời gian đa thức.
NP là lớp tất cả các bài toán giải được bằng thuật toán không đơn định trong thời gian đa thức. Theo
cách khác, NP là lớp các bài toán có thể kiểm định (verifiable) được một xác thực (certificate) trong
thời gian đa thức.
Câu 2 Ví dụ các bài toán cho lớp bài toán NP-Đầy đủ và NP-Khó.
Lớp NP-Đầy đủ:

Bài toán xếp ba lô: Cho một tập hợp các vật phẩm có trọng lượng và giá trị khác
nhau, cùng với sức chứa tối đa của ba lô, tìm cách chọn các vật phẩm để 放入 ba lô
sao cho tổng giá trị cao nhất mà không vượt quá sức chứa.

Bài toán người bán hàng: Cho một tập hợp các thành phố và chi phí di chuyển
giữa các thành phố, tìm cách lập kế hoạch di chuyển qua tất cả các thành phố chỉ
một lần với chi phí di chuyển tối thiểu.

Cây Steiner nhỏ nhất: Cho một tập hợp các điểm trên mặt phẳng, tìm cây con có
tổng trọng lượng cạnh nhỏ nhất bao gồm tất cả các điểm.

Chu trình Hamilton: Cho một đồ thị, tìm chu trình đi qua tất cả các đỉnh của đồ thị
chỉ một lần.

Bài toán tập đỉnh độc lập: Cho một đồ thị, tìm tập hợp các đỉnh con không có cạnh
nào nối với nhau.
Clique: Cho một đồ thị, tìm tập hợp các đỉnh con mà bất kỳ hai đỉnh nào trong tập
hợp đó đều có cạnh nối với nhau.

Bài toán thỏa mãn công thức logic: Cho một công thức logic, tìm cách gán giá trị
cho các biến số để công thức trở thành đúng.

Bài toán đồ thị con đẳng cấu: Cho hai đồ thị, kiểm tra xem có tồn tại một đồ thị
con của đồ thị thứ nhất đẳng cấu với đồ thị thứ hai hay không.

Lớp NP-Khó:

Bài toán tô màu đồ thị: Cho một đồ thị, tìm cách tô màu cho các đỉnh của đồ thị
sao cho không có hai đỉnh kề nhau có cùng màu, với số lượng màu sử dụng ít nhất.

Bài toán tìm chu trình Euler: Cho một đồ thị, tìm chu trình đi qua tất cả các cạnh
của đồ thị chỉ một lần.

Bài toán sắp xếp: Cho một tập hợp các số, tìm cách sắp xếp các số theo thứ tự
tăng dần hoặc giảm dần.

Lưu ý:

Lớp NP-Đầy đủ là tập hợp con của lớp NP-Khó.

Hiện nay, vẫn chưa biết liệu P có bằng NP hay không. Nếu P ≠ NP, thì tất cả các bài
toán NP-Đầy đủ và NP-Khó đều không thể giải được trong thời gian đa thức.

Câu 3 Sự khác nhau giữa giải thuật xấp xỉ và giải thuật heuristics?
Giải thuật xấp xỉ:

Là giải thuật tìm kiếm giải pháp gần đúng cho các bài toán NP-khó hoặc NP-đầy đủ.

Mục tiêu là tìm giải pháp có độ chính xác cao nhất có thể trong thời gian hợp lý.

Có thể đảm bảo chất lượng giải pháp (tỷ lệ xấp xỉ) so với giải pháp tối ưu.

Ví dụ: thuật toán A* (tìm đường đi ngắn nhất), thuật toán Johnson (lập lịch công
việc).

Giải thuật heuristics:

Là giải thuật sử dụng kinh nghiệm hoặc kiến thức chuyên môn để tìm kiếm giải pháp
cho bài toán.
Không đảm bảo chất lượng giải pháp, nhưng thường cho kết quả tốt trong thực tế.

Tốc độ thực thi thường nhanh hơn giải thuật xấp xỉ.

Ví dụ: thuật toán tham lam (sắp xếp, chọn balô), thuật toán di truyền (tối ưu hóa).

Câu 4 Phân tích độ phức tạp của thuật toán và kiểm định thuật toán cho
bài toán người giao hàng.
Cho một tập hợp các điểm giao hàng và một điểm xuất phát, tìm tuyến đường đi
qua tất cả các điểm giao hàng chỉ một lần với tổng chi phí di chuyển tối thiểu.

Phân tích độ phức tạp:

Độ phức tạp thời gian:

Thuật toán brute-force: O(n!), với n là số điểm giao hàng.

Thuật toán tham lam: O(n^2 log n).

Thuật toán di truyền: O(n^k), với k là số thế hệ.

Độ phức tạp không gian:

Thuật toán brute-force: O(n).

Thuật toán tham lam: O(n).


Thuật toán di truyền: O(n^2).

Kiểm định thuật toán:

Kiểm định chính xác:

So sánh kết quả của thuật toán với giải pháp tối ưu (nếu có).

Sử dụng các bộ dữ liệu thử nghiệm với kích thước khác nhau.

Kiểm định hiệu quả:

So sánh thời gian thực thi của thuật toán với các thuật toán khác.

Sử dụng các bộ dữ liệu thử nghiệm với độ phức tạp khác nhau.

Một số thuật toán thường dùng cho bài toán người giao hàng:

Thuật toán brute-force: Tìm kiếm tất cả các kết hợp đi qua tất cả các điểm giao
hàng và chọn kết hợp có chi phí di chuyển tối thiểu.

Thuật toán tham lam: Lựa chọn điểm giao hàng tiếp theo gần nhất với điểm giao
hàng hiện tại.

Thuật toán di truyền: Sử dụng các phép lai, đột biến và chọn lọc để tìm kiếm giải
pháp tối ưu.

Câu 5 Phân tích độ phức tạp của thuật toán và kiểm định thuật toán
cho bài toán tô màu đồ thị.
Cho một đồ thị, tìm cách tô màu cho các đỉnh của đồ thị sao cho không có hai đỉnh
kề nhau có cùng màu, với số lượng màu sử dụng ít nhất.

Phân tích độ phức tạp:

Độ phức tạp thời gian:

Thuật toán tô màu đơn giản (dùng thuật toán tham lam): O(n^2), với n là số
đỉnh của đồ thị.

Thuật toán tô màu tối ưu (dùng lập trình tuyến tính): O(n^3).

Độ phức tạp không gian:


Thuật toán tô màu đơn giản: O(n).

Thuật toán tô màu tối ưu: O(n^2).

Kiểm định thuật toán:

Kiểm định chính xác:

So sánh kết quả của thuật toán với số lượng màu tối thiểu (nếu có).

Sử dụng các bộ dữ liệu thử nghiệm với kích thước khác nhau.

Kiểm định hiệu quả:

So sánh thời gian thực thi của thuật toán với các thuật toán khác.

Sử dụng các bộ dữ liệu thử nghiệm với độ phức tạp khác nhau.

Một số thuật toán thường dùng cho bài toán tô màu đồ thị:

Thuật toán tô màu đơn giản: Sử dụng thuật toán tham lam để tô màu cho các đỉnh
của đồ thị.

Thuật toán tô màu tối ưu: Sử dụng lập trình tuyến tính để tìm số lượng màu tối
thiểu và cách tô màu cho các đỉnh của đồ thị.

Câu 6 Nêu ví dụ của một thuật toán xấp xỉ và chứng minh sự xấp xỉ đó.
Bài toán: Bài toán người bán hàng (Traveling Salesman Problem - TSP)

Mục tiêu: Tìm tuyến đường đi qua tất cả các thành phố chỉ một lần với tổng chi phí
di chuyển tối thiểu.

Thuật toán xấp xỉ: Thuật toán tham lam (Greedy Algorithm)

Cách thức hoạt động:

Bắt đầu từ một thành phố bất kỳ.

Chọn thành phố lân cận chưa được thăm có chi phí di chuyển thấp nhất để di
chuyển đến.

Lặp lại bước 2 cho đến khi tất cả các thành phố được thăm.

Quay trở lại thành phố bắt đầu.


Chứng minh sự xấp xỉ:

Tỷ lệ xấp xỉ: 2

Chứng minh:

Giả sử A là giải pháp tối ưu cho bài toán TSP và B là giải pháp do thuật toán tham
lam tìm được.

Chi phí di chuyển của A:

Tổng chi phí di chuyển của A là: A = d(1, 2) + d(2, 3) + ... + d(n, 1)

Chi phí di chuyển của B:

Do thuật toán tham lam luôn chọn thành phố lân cận chưa được thăm có chi
phí di chuyển thấp nhất, ta có:

d(1, 2) <= d(1, i) cho tất cả các i khác 2

d(2, 3) <= d(2, i) cho tất cả các i khác 3

...

d(n, 1) <= d(n, i) cho tất cả các i khác 1

Cộng tất cả các bất đẳng thức trên, ta có:

A + d(1, 2) + d(2, 3) + ... + d(n, 1) <= B + d(1, 2) + d(2, 3) + ... + d(n, 1)

Suy ra: B <= 2A

Tỷ lệ xấp xỉ:

Tỷ lệ xấp xỉ của thuật toán tham lam là:

R = B / A <= 2

Kết luận:

Thuật toán tham lam là một thuật toán xấp xỉ cho bài toán TSP với tỷ lệ xấp xỉ là 2.

Câu 7 Nêu lược đồ phương pháp heuristics cấu trúc.


Phương pháp heuristics cấu trúc là một phương pháp giải quyết bài toán tối ưu
hóa bằng cách xây dựng dần dần một giải pháp từ các thành phần cơ bản. Phương
pháp này thường được áp dụng cho các bài toán NP-khó hoặc NP-đầy đủ, khi mà
việc tìm kiếm giải pháp tối ưu bằng các phương pháp thông thường là rất khó khăn
hoặc không khả thi.

Lược đồ cơ bản của phương pháp heuristics cấu trúc:

Khởi tạo: Tạo một giải pháp ban đầu. Giải pháp ban đầu này có thể được tạo ngẫu
nhiên hoặc dựa trên một số kiến thức heuristic.

Cải thiện: Lặp lại các bước sau cho đến khi tìm được giải pháp tối ưu hoặc đạt
được một tiêu chí dừng nào đó:

Chọn cấu trúc: Chọn một cấu trúc để cải thiện giải pháp hiện tại. Cấu trúc
này có thể là một phần của giải pháp hoặc một cấu trúc mới hoàn toàn.

Hệ thống biến đổi: Áp dụng một hệ thống biến đổi để tạo ra các giải pháp
mới từ cấu trúc đã chọn. Hệ thống biến đổi có thể bao gồm các phép toán
như thêm, bớt, thay đổi vị trí, v.v.

Đánh giá: Đánh giá các giải pháp mới được tạo ra và chọn giải pháp tốt nhất
để tiếp tục cải thiện.

Kết thúc: Dừng quá trình khi đạt được giải pháp tối ưu hoặc một tiêu chí dừng nào
đó.

Câu 8 Nêu thuật toán láng giềng gần nhất.


Câu 9 Nêu một quy tắc heuristics cho bài toán tô màu đồ thị. Ví dụ
phương pháp trên một đồ thị bất kỳ.

Quy tắc 1: Tô màu cho các đỉnh có bậc cao nhất trước

Đỉnh có bậc cao nhất là đỉnh có nhiều cạnh nối với các đỉnh khác nhất. Việc tô màu cho
các đỉnh này trước sẽ giúp giảm số lượng lựa chọn màu cho các đỉnh còn lại, từ đó
giúp giảm số lượng màu cần dùng để tô màu cho toàn bộ đồ thị.

Ví dụ:

Cho đồ thị sau:

1 -- 2 -- 3
| \ / |
4 -- 5

Đỉnh 2 có bậc cao nhất (3) nên được tô màu trước. Ta có thể chọn màu đỏ cho đỉnh 2.

Sau đó, ta tiếp tục tô màu cho các đỉnh còn lại, tuân theo quy tắc không tô màu trùng
với các đỉnh kề nhau.

Kết quả ta có thể tô màu cho đồ thị như sau:

1 -- 2 -- 3
| \ / |
4 -- 5
\ /
6
Quy tắc 2: Tô màu cho các đỉnh có chung nhiều cạnh kề nhau trước

Đỉnh có chung nhiều cạnh kề nhau với các đỉnh khác là những đỉnh có khả năng cao bị
tô màu trùng nhau. Việc tô màu cho các đỉnh này trước sẽ giúp giảm khả năng tô màu
trùng nhau, từ đó giúp giảm số lượng màu cần dùng.

Ví dụ:

Cho đồ thị sau:

1 -- 2 -- 3
| \ / |
4 -- 5

Đỉnh 2 và 3 có chung 2 cạnh kề nhau. Do đó, ta nên tô màu cho 2 đỉnh này trước.

Ta có thể chọn màu đỏ cho đỉnh 2 và màu xanh cho đỉnh 3.

Sau đó, ta tiếp tục tô màu cho các đỉnh còn lại, tuân theo quy tắc không tô màu trùng
với các đỉnh kề nhau.

Kết quả ta có thể tô màu cho đồ thị như sau:

1 -- 2 -- 3
| \ / |
4 -- 5
\ /
6

Câu 10 Nêu tính chất của phương pháp heuristics cấu trúc.
Phương pháp heuristics cấu trúc (MHCS) là một phương pháp giải quyết bài toán tối ưu
hóa bằng cách xây dựng dần dần một giải pháp từ các thành phần cơ bản. Phương
pháp này có một số tính chất sau:

Tính linh hoạt: MHCS có thể áp dụng cho nhiều loại bài toán tối ưu hóa khác nhau,
bao gồm cả các bài toán NP-khó hoặc NP-đầy đủ.

Tính hiệu quả: MHCS có thể tìm được giải pháp gần tối ưu trong thời gian hợp lý cho
nhiều bài toán.

Tính đơn giản: MHCS tương đối dễ hiểu và dễ triển khai so với các phương pháp giải
quyết bài toán tối ưu hóa khác.

Tính trực quan: MHCS cho phép trực quan hóa quá trình tìm kiếm giải pháp, giúp
người dùng dễ dàng hiểu được cách thức hoạt động của phương pháp.
Tính mở rộng: MHCS có thể được mở rộng để áp dụng cho các bài toán có kích thước
lớn.

Câu 11 Nêu tư tưởng phương pháp tìm kiếm địa phương.


Câu 12 Nêu lược đồ GRASP.

GRASP là một thuật toán metaheuristic được sử dụng để giải quyết các bài toán tối
ưu hóa NP-khó. Thuật toán này kết hợp giữa phương pháp tham lam (greedy) và
phương pháp tìm kiếm ngẫu nhiên (random search) để tìm kiếm giải pháp tối ưu.

Lược đồ cơ bản:

Khởi tạo: Tạo một giải pháp ban đầu ngẫu nhiên.

Cải thiện: Lặp lại các bước sau cho đến khi đạt được một tiêu chí dừng:

Xây dựng: Xây dựng một tập hợp các giải pháp lân cận của giải pháp hiện
tại.

Lựa chọn: Lựa chọn một giải pháp ngẫu nhiên từ tập hợp các giải pháp lân
cận theo một xác suất nhất định.

Cập nhật: Cập nhật giải pháp hiện tại bằng giải pháp được lựa chọn nếu nó
tốt hơn.

Kết thúc: Dừng quá trình khi đạt được một tiêu chí dừng, ví dụ như số lượng lặp tối
đa hoặc thời gian thực thi tối đa.
Bài 3
Câu 1Các bước cơ bản để giải một bài toán bằng phương pháp di
truyền.

Câu 2 Trình bày lược đồ thuật toán di chuyền.


Lược đồ thuật toán di truyền:
Khởi tạo:

Tạo một quần thể P gồm N cá thể ngẫu nhiên.

Mỗi cá thể đại diện cho một giải pháp tiềm năng cho bài toán.

Mã hóa mỗi cá thể thành một chuỗi nhị phân (chromosome).

Đánh giá:

Tính giá trị thích nghi (fitness value) cho mỗi cá thể trong P.

Giá trị thích nghi thể hiện chất lượng của giải pháp, giải pháp tốt hơn có giá trị thích
nghi cao hơn.

Chọn lọc:

Lựa chọn các cá thể "cha mẹ" từ P dựa trên giá trị thích nghi.

Có nhiều phương pháp chọn lọc khác nhau, ví dụ: chọn lọc roulette, chọn lọc xếp
hạng, chọn lọc cạnh tranh.

Lai tạo:

Ghép nối các cá thể "cha mẹ" để tạo ra các cá thể con.

Có nhiều phép lai tạo khác nhau, ví dụ: lai chéo một điểm, lai chéo hai điểm, lai
chéo đa điểm.

Đột biến:

Thay đổi ngẫu nhiên một số bit trong chuỗi nhị phân của các cá thể con với xác suất
thấp.

Giúp đa dạng hóa quần thể và tránh rơi vào trạng thái tối ưu địa phương.

Thay thế:

Tạo ra một quần thể mới Q bằng cách kết hợp các cá thể con và một số cá thể "cha
mẹ".

Có nhiều phương pháp thay thế khác nhau, ví dụ: thay thế thế hệ, thay thế elitist.

Lặp lại:
Lặp lại các bước 2 đến 6 cho đến khi đạt được tiêu chí dừng, ví dụ: số lượng thế hệ
tối đa hoặc thời gian thực thi tối đa.

Giải mã:

Chuyển đổi chuỗi nhị phân của các cá thể trong quần thể cuối cùng thành các giải
pháp của bài toán.

Câu 3 Nêu ý nghĩa của hàm đánh giá (fitness function).


Hàm đánh giá đóng vai trò quan trọng trong thuật toán di truyền (GA). Nó là thước
đo để đánh giá chất lượng của mỗi cá thể trong quần thể. Hàm đánh giá được sử
dụng để:

Chọn lọc: Lựa chọn các cá thể tốt nhất để tạo ra thế hệ tiếp theo.

Cá thể có giá trị đánh giá cao hơn sẽ có khả năng được chọn lọc cao hơn.

Có nhiều phương pháp chọn lọc khác nhau, ví dụ như chọn lọc roulette, chọn lọc
xếp hạng, chọn lọc cạnh tranh.

Dừng: Xác định thời điểm thuật toán GA nên dừng lại.

Khi không còn cải thiện đáng kể về giá trị đánh giá của các thế hệ tiếp theo, thuật
toán GA có thể dừng lại.

So sánh các thuật toán GA khác nhau: So sánh hiệu quả của các thuật toán GA
dựa trên giá trị đánh giá trung bình hoặc giá trị đánh giá tốt nhất của các cá thể
trong quần thể.

Yêu cầu của hàm đánh giá:

Có tính chính xác: Phản ánh chính xác chất lượng của giải pháp.

Có tính hiệu quả: Dễ dàng tính toán.

Có tính phân biệt: Phân biệt được các giải pháp tốt hơn với các giải pháp kém
hơn.

Câu 4 Nêu phương pháp chọn thế hệ mới của giải thuật.
Có nhiều phương pháp chọn thế hệ mới trong tối ưu hóa, mỗi phương pháp có ưu
và nhược điểm riêng. Dưới đây là một số phương pháp phổ biến:

Chọn lọc cạnh tranh (Tournament Selection):

Lựa chọn ngẫu nhiên một nhóm cá thể từ quần thể hiện tại.
So sánh các cá thể trong nhóm và chọn cá thể có giá trị thích nghi cao nhất để đưa
vào thế hệ mới.

Lặp lại quá trình này cho đến khi đủ số lượng cá thể cho thế hệ mới.

Ưu điểm:

Đơn giản và dễ triển khai.

Có khả năng chọn lọc các cá thể có chất lượng cao.

Nhược điểm:

Có thể dẫn đến việc chọn lọc các cá thể tương đồng nhau, làm giảm tính đa dạng
của quần thể.

Chọn lọc xếp hạng (Rank Selection):

Sắp xếp tất cả các cá thể trong quần thể hiện tại theo giá trị thích nghi.

Gán cho mỗi cá thể một thứ hạng dựa trên vị trí của nó trong danh sách xếp hạng.

Sử dụng phương pháp roulette hoặc tỷ lệ phần trăm để chọn cá thể dựa trên thứ
hạng.

Ưu điểm:

Đảm bảo tính đa dạng của quần thể.

Cho phép các cá thể có chất lượng cao có nhiều khả năng được chọn lọc hơn.

Nhược điểm:

Phức tạp hơn so với chọn lọc cạnh tranh.

Chọn lọc elitist (Elitist Selection):

Lựa chọn một số cá thể có giá trị thích nghi cao nhất từ thế hệ hiện tại để đưa trực
tiếp vào thế hệ mới.

Sử dụng các phương pháp chọn lọc khác như chọn lọc cạnh tranh hoặc chọn lọc
xếp hạng để chọn các cá thể còn lại.

Ưu điểm:

Đảm bảo rằng các cá thể tốt nhất sẽ được truyền lại cho thế hệ tiếp theo.
Nhược điểm:

Có thể làm giảm áp lực chọn lọc, dẫn đến việc giảm tốc độ hội tụ của thuật toán.

Chọn lọc ngẫu nhiên (Random Selection):

Lựa chọn ngẫu nhiên các cá thể từ thế hệ hiện tại để đưa vào thế hệ mới.

Ưu điểm:

Đơn giản và dễ triển khai.

Nhược điểm:

Không đảm bảo chất lượng của các cá thể được chọn lọc.

Lựa chọn phương pháp phù hợp:

Lựa chọn phương pháp chọn thế hệ mới phù hợp phụ thuộc vào nhiều yếu tố, bao
gồm:

Loại thuật toán tối ưu hóa

Kích thước quần thể

Độ phức tạp của bài toán

Mục tiêu tối ưu hóa

Câu 5 Nêu các điểm mạnh và yếu của giải thuật di truyền.
Điểm mạnh:

Tính linh hoạt: Giải thuật di truyền có thể được áp dụng cho nhiều bài toán tối ưu
hóa khác nhau, bất kể lĩnh vực hay ngành nghề nào.

Khả năng tìm kiếm toàn cục: Giải thuật di truyền có khả năng tìm kiếm giải pháp
tối ưu toàn cục, tránh rơi vào trạng thái tối ưu địa phương.

Khả năng xử lý các bài toán phức tạp: Giải thuật di truyền có thể xử lý các bài
toán tối ưu hóa phức tạp với nhiều biến số và ràng buộc.

Khả năng thích ứng: Giải thuật di truyền có thể được điều chỉnh và cải tiến để phù
hợp với từng bài toán cụ thể.

Điểm yếu:
Hiệu quả phụ thuộc vào cách thiết kế: Hiệu quả của giải thuật di truyền phụ thuộc
vào cách thiết kế các thành phần như mã hóa, hàm đánh giá, phép lai tạo và phép
đột biến.

Thời gian thực thi: Giải thuật di truyền có thể tốn nhiều thời gian thực thi cho các
bài toán phức tạp.

Kích thước quần thể: Kích thước quần thể ảnh hưởng đến hiệu quả và độ phức
tạp của giải thuật di truyền.

Khả năng giải quyết bài toán NP-khó: Giải thuật di truyền không đảm bảo tìm
được giải pháp tối ưu cho các bài toán NP-khó.

Ngoài ra:

Giải thuật di truyền có thể kết hợp với các phương pháp tối ưu hóa khác để nâng
cao hiệu quả.

Việc lựa chọn phương pháp di truyền phù hợp phụ thuộc vào đặc điểm của bài toán
cần giải.

Bài 4
Câu 1 Nêu lược đồ giải thuật đàn kiến(ACO).
1.Khởi tạo:

Tạo một tập hợp các pheromone cho mỗi cạnh trên đồ thị.

Khởi tạo một tập hợp các kiến.

2. Vòng lặp:

Di chuyển:

Mỗi kiến di chuyển từ đỉnh hiện tại đến đỉnh tiếp theo dựa trên lượng
pheromone và heuristic information.

Lượng pheromone trên mỗi cạnh được cập nhật sau mỗi lần di chuyển.

Cập nhật pheromone:

Sau khi tất cả các kiến hoàn thành hành trình, lượng pheromone trên mỗi
cạnh được cập nhật dựa trên chất lượng của các hành trình.

Các cạnh được sử dụng trong các hành trình chất lượng cao sẽ nhận được
nhiều pheromone hơn.

3. Dừng:

Lặp lại vòng lặp 2 cho đến khi đạt được tiêu chí dừng, ví dụ như số lượng vòng lặp
tối đa hoặc thời gian thực thi tối đa.

4. Giải mã:

Chọn hành trình có chất lượng cao nhất là giải pháp của bài toán.

Câu 2 Các công việc chính để áp dụng giải thuật đàn kiến cho bài toán
cụ thể.
Câu 3 Nêu tư tưởng của phương pháp nhánh cận
Phương pháp nhánh cận (Branch and Bound) là một kỹ thuật tối ưu hóa được sử
dụng để tìm kiếm nghiệm tối ưu (hoặc cận tối ưu) cho các bài toán NP-khó. Phương
pháp này dựa trên hai tư tưởng chính:

Phân nhánh:

Chia bài toán thành các bài toán con nhỏ hơn bằng cách tạo ra các nhánh từ một
nút gốc.

Mỗi nhánh đại diện cho một tập hợp các nghiệm tiềm năng của bài toán.

Cận dưới:

Tính toán cận dưới cho giá trị tối ưu của mỗi bài toán con.

Cận dưới là giá trị thấp nhất có thể của nghiệm tối ưu trong bài toán con.

Quá trình:

Bắt đầu từ nút gốc, phương pháp nhánh cận sẽ tạo ra các nhánh con và tính toán
cận dưới cho mỗi nhánh.

Nhánh con có cận dưới cao hơn sẽ được ưu tiên khám phá trước.

Quá trình này được lặp lại cho đến khi tất cả các nhánh con được khám phá hoặc
tìm được nghiệm tối ưu.
Câu 4 Nêu ưu nhược điểm của giải thuật đàn kiến.
Ưu điểm:

Có khả năng tìm kiếm nghiệm tối ưu (hoặc cận tối ưu) cho các bài toán NP-khó.

Có thể được áp dụng cho nhiều bài toán khác nhau.

Có thể kết hợp với các kỹ thuật khác để nâng cao hiệu quả.

Nhược điểm:

Có thể tốn nhiều thời gian và bộ nhớ cho các bài toán phức tạp.

Khó khăn trong việc thiết kế thuật toán hiệu quả để tính toán cận dưới.

Câu 5 Nêu sự khác nhau giữa hệ kiến AS và hệ kiến MMAS.


Hệ kiến AS (Ant System) và Hệ kiến MMAS (Max-Min Ant System) là hai thuật
toán thuộc họ giải thuật đàn kiến (Ant Colony Optimization - ACO) được sử dụng để
giải quyết các bài toán tối ưu hóa combinatorial. Hai hệ kiến này có một số điểm
khác biệt chính như sau:

Cập nhật pheromone:

AS: Lượng pheromone trên mỗi cạnh được cập nhật sau mỗi lần di chuyển của
kiến.

MMAS: Lượng pheromone trên mỗi cạnh chỉ được cập nhật sau khi tất cả các kiến
hoàn thành hành trình.

Lượng pheromone ban đầu:

AS: Lượng pheromone ban đầu trên tất cả các cạnh đều bằng nhau.

MMAS: Lượng pheromone ban đầu trên mỗi cạnh được tính toán dựa trên heuristic
information.

Quá trình bay hơi pheromone:

AS: Lượng pheromone trên mỗi cạnh bay hơi sau mỗi lần di chuyển của kiến.

MMAS: Lượng pheromone trên mỗi cạnh bay hơi sau khi tất cả các kiến hoàn thành
hành trình.

Chọn cạnh tiếp theo:


AS: Kiến chọn cạnh tiếp theo dựa trên lượng pheromone và heuristic information.

MMAS: Kiến chọn cạnh tiếp theo dựa trên tỷ lệ xác suất được tính toán dựa trên
lượng pheromone và heuristic information.

Hiệu quả:

AS: AS có thể tìm kiếm giải pháp tốt cho các bài toán đơn giản.

MMAS: MMAS có thể tìm kiếm giải pháp tốt hơn AS cho các bài toán phức tạp.

Bài 5
Câu 1 Nêu tư tưởng của phương pháp nhánh cận

Câu 2 Nêu hai cơ chế trong phương pháp nhánh cận.

Hai cơ chế trong phương pháp nhánh cận:


Phân nhánh:

Cơ chế phân nhánh chia bài toán thành các bài toán con nhỏ hơn. Việc phân nhánh
có thể được thực hiện theo nhiều cách khác nhau, bao gồm:

Phân nhánh theo biến: Chia bài toán thành các bài toán con dựa trên các giá trị
khác nhau của một biến.

Phân nhánh theo ràng buộc: Chia bài toán thành các bài toán con dựa trên việc
thêm hoặc bớt các ràng buộc.
Phân nhánh theo tập hợp nghiệm: Chia bài toán thành các bài toán con dựa trên
các tập hợp nghiệm tiềm năng khác nhau.

Cận dưới:

Cơ chế cận dưới tính toán giá trị thấp nhất có thể của nghiệm tối ưu trong mỗi bài
toán con. Việc tính toán cận dưới có thể được thực hiện theo nhiều cách khác nhau,
bao gồm:

Lập trình tuyến tính: Sử dụng lập trình tuyến tính để tính toán giá trị tối ưu của một
bài toán con.

Thư giãn ràng buộc: Thư giãn một số ràng buộc của bài toán để tạo ra một bài
toán con đơn giản hơn và tính toán giá trị tối ưu của bài toán con đơn giản này.

Heuristic: Sử dụng các heuristic để ước tính giá trị tối ưu của một bài toán con.

Câu 3 Nêu ý nghĩa và các tìm cận trên/cận dưới cho bài toán cực tiểu
hóa.
-Ý nghĩa:

Cực tiểu hóa: Tìm giá trị nhỏ nhất của một hàm số trong một tập xác định.

Tìm cận trên: Giá trị lớn hơn hoặc bằng giá trị tối thiểu thực sự của hàm số.

Tìm cận dưới: Giá trị nhỏ hơn hoặc bằng giá trị tối thiểu thực sự của hàm số.

-Tìm cận trên:

Dùng giá trị lớn nhất của hàm số trên tập xác định:

Ví dụ: Hàm số f(x)=x2 trên tập [0,1] có giá trị lớn nhất là f(1)=1, do đó 1 là
một tìm cận trên của giá trị tối thiểu.

Dùng bất đẳng thức:

Ví dụ: Hàm số f(x)=x2+2x+1 có thể được viết lại thành (x+1)2≥0, do


đó f(x)≥0 với mọi x. Do đó, 0 là một tìm cận trên của giá trị tối thiểu.

-Tìm cận dưới:

Dùng giá trị nhỏ nhất của hàm số trên tập xác định:
Ví dụ: Hàm số f(x)=x2 trên tập [0,1] có giá trị nhỏ nhất là f(0)=0, do đó 0 là
một tìm cận dưới của giá trị tối thiểu.

Dùng bất đẳng thức:

Ví dụ: Hàm số f(x)=x2−2x+1 có thể được viết lại thành (x−1)2≥0, do


đó f(x)≥1 với mọi x. Do đó, 1 là một tìm cận dưới của giá trị tối thiểu.

Bài 6
Câu 1 Nêu phương pháp đồ thị để giải bài toán tối ưu tuyến tính.
Câu 2 Nêu tính chất hình học của bài toán tuyến tính.
Bài toán tuyến tính (LPP) có một số tính chất hình học quan trọng giúp giải quyết và
hiểu rõ hơn về bài toán. Dưới đây là một số tính chất chính:

Tính tuyến tính:

Mục tiêu và các ràng buộc của bài toán LPP đều là các hàm tuyến tính.

Hàm tuyến tính là hàm có dạng f(x)=ax+b, với a và b là hằng số.


Tập hợp nghiệm khả thi:

Tập hợp nghiệm khả thi của bài toán LPP là một tập hợp lồi.

Tập hợp lồi là tập hợp mà trong đó, với bất kỳ hai điểm bất kỳ thuộc tập hợp, đoạn
thẳng nối hai điểm đó cũng hoàn toàn nằm trong tập hợp.

Biểu diễn bằng hệ bất phương trình:

Bài toán LPP có thể được biểu diễn bằng một hệ bất phương trình tuyến tính.

Hệ bất phương trình tuyến tính là hệ gồm các bất phương trình có dạng ax+by≤c,
với a, b, c là hằng số.

Biểu diễn bằng đồ thị:

Bài toán LPP với hai biến có thể được biểu diễn bằng đồ thị.

Trên đồ thị, các ràng buộc được biểu diễn bởi các đường thẳng hoặc đường cong,
và tập hợp nghiệm khả thi là phần giao nhau của các vùng được giới hạn bởi các
đường thẳng và đường cong này.

Điểm cực trị:

Giá trị tối ưu của bài toán LPP (nếu tồn tại) sẽ đạt được tại một điểm cực trị của tập
hợp nghiệm khả thi.

Điểm cực trị là điểm mà tại đó, một hàm số có đạo hàm bằng 0 hoặc không xác
định.

Phương pháp giải:

Có nhiều phương pháp để giải bài toán LPP, bao gồm:

Phương pháp simplex: Sử dụng các phép biến đổi cơ bản để chuyển đổi bài
toán LPP sang dạng đơn giản và tìm kiếm nghiệm tối ưu.

Phương pháp đồ thị: Sử dụng đồ thị để biểu diễn bài toán và tìm kiếm
nghiệm tối ưu trực quan.

Phương pháp lập trình tuyến tính: Sử dụng các phần mềm chuyên dụng để
giải bài toán LPP.
Câu 3 Nêu phương pháp đơn hình để giải bài toán tối ưu tuyến tính.
Phương pháp đơn hình (Simplex method) là một thuật toán hiệu quả để giải bài toán
tối ưu tuyến tính (LPP) dạng chuẩn tắc. Phương pháp này hoạt động dựa trên việc
di chuyển từ đỉnh này sang đỉnh khác của tập hợp nghiệm khả thi cho đến khi tìm
được đỉnh có giá trị mục tiêu tối ưu.

Bước 1: Chuyển đổi bài toán LPP sang dạng chuẩn tắc:

Biến đổi các ràng buộc bất đẳng thức sang dạng đẳng thức bằng cách thêm biến
slack.

Biến đổi mục tiêu tối thiểu thành mục tiêu tối đa.

Bước 2: Khởi tạo bảng đơn hình:

Tạo bảng đơn hình với các hàng tương ứng với các ràng buộc và các cột tương
ứng với các biến.

Điền vào các giá trị ban đầu của các biến và giá trị mục tiêu.

Bước 3: Lặp lại các bước sau cho đến khi tìm được nghiệm tối ưu:

Chọn biến đi vào: Chọn biến có giá trị âm trong hàng mục tiêu.

Chọn biến đi ra: Chọn biến có tỷ lệ aijbj nhỏ nhất, với bj là giá trị RHS của
cột j và aij là giá trị tại hàng i cột j.

Cập nhật bảng đơn hình: Thực hiện phép biến đổi cơ bản để đưa biến đi vào bằng
1 và biến đi ra bằng 0.

Bước 4: Kiểm tra nghiệm tối ưu:

Nếu tất cả các giá trị trong hàng mục tiêu đều dương hoặc bằng 0, thì nghiệm hiện
tại là nghiệm tối ưu.

Nếu có giá trị âm trong hàng mục tiêu, quay lại bước 3.

You might also like