Hiện nay, một biến thể của VRP, VRP với hạn chế thời gian VRPTW, đợc nghiên cứu và ứng dụng khá nhiều trong thực tế, nh các ứng dụng dọn dẹp đờng phố, định hớng lộ trình xe bus, chuy
Giới thiệu
Bài toán lộ trình vận chuyển (VRP) là một bài toán tối ưu hóa tổ hợp nhằm xác định các lộ trình tối ưu cho phương tiện vận tải, bắt đầu và kết thúc tại
Hệ thống lộ trình vận chuyển hàng hóa thường được mô phỏng bằng đồ thị, trong đó mỗi cung đường biểu thị một đoạn đường và mỗi đỉnh tương ứng với vị trí kho hoặc khách hàng Các cung có thể có hướng hoặc không, tùy thuộc vào khả năng di chuyển một chiều hoặc hai chiều Mỗi cung đường được gán một chi phí, thường dựa trên chiều dài hoặc thời gian di chuyển, phụ thuộc vào phương tiện vận chuyển hoặc thời gian qua cung đó.
Các đặc trng về khách hàng:
- Vị trí khách hàng hoặc kho chứa đợc biểu diễn bởi các đỉnh của đồ thị.
- Số lợng hàng hóa (theo yêu cầu), có thể khác nhau về chủng loại, đợc giao hoặc nhận tại mỗi vị trí khách hàng
- Khung thời gian, là khoảng thời gian có thể phục vụ một khách hàng
Thời gian yêu cầu là khoảng thời gian cần thiết để thực hiện việc giao hoặc nhận hàng hóa tại địa điểm của từng khách hàng, tương ứng với thời gian dỡ hàng hoặc bốc hàng.
Số lượng xe có sẵn để phục vụ khách hàng có thể bị hạn chế, dẫn đến việc không thể đáp ứng hoàn toàn yêu cầu của từng khách hàng Trong những trường hợp này, số lượng xe giao hoặc nhận tại mỗi vị trí có thể giảm, hoặc một số khách hàng có thể không được phục vụ Để giải quyết vấn đề này, có thể áp dụng các mức ưu tiên hoặc các mức phạt khác nhau cho từng khách hàng.
Các đặc trng của xe:
- Trọng tải của xe, đợc biểu diễn bởi khối lợng lớn nhất mà xe có thể tải.
- Khả năng chia nhỏ xe thành các ngăn hàng, mỗi phần đợc đặc trng bởi trọng tải và loại hàng hóa mà nó có thể chở
- Các thiết bị sẵn có cho các thao tác bốc và dỡ hàng.
- Tập con các cung của đồ thị đờng mà xe có thể đi qua.
- Chi phí liên quan đến việc sử dụng xe (trên một đơn vị khoảng cách, trên một đơn vị thời gian, )
Các đặc trưng của người lái xe thường gắn liền với các điều kiện được quy định trong hợp đồng và quy định của công ty, bao gồm thời gian làm việc trong ngày, số lượng và khoảng thời gian nghỉ giữa các dịch vụ, thời gian tối đa cho một lần lái, cũng như thời gian làm thêm giờ.
Lộ trình vận chuyển cần đáp ứng các điều kiện ràng buộc cụ thể, bao gồm chất lượng dịch vụ, đặc điểm khách hàng và loại xe sử dụng Các ràng buộc này có thể liên quan đến trọng tải tối đa của xe, yêu cầu giao nhận hàng hóa, khung thời gian phục vụ khách hàng và thứ tự phục vụ Để tính toán tổng chi phí lộ trình và kiểm tra các điều kiện, đồ thị ban đầu được chuyển đổi thành đồ thị đầy đủ, trong đó các đỉnh tương ứng với vị trí khách hàng và kho chứa Chi phí giữa hai đỉnh i và j được xác định dựa trên đường đi ngắn nhất trong đồ thị, với tổng thời gian đi được tính từ các cung thuộc đường đi đó Việc xem xét đồ thị đầy đủ có thể có hướng hoặc không, tùy thuộc vào tính chất tuyến tính của ma trận chi phí hoặc thời gian.
Một số mục tiêu trong bài toán VRP:
Chi phí vận chuyển tối thiểu phụ thuộc vào khoảng cách của lộ trình và thời gian vận chuyển, cùng với các chi phí cố định liên quan đến phương tiện sử dụng và người lái.
- Cực tiểu hóa số lợng xe (hoặc số lợng lái xe) đợc yêu cầu để phục vụ tất cả các khách hàng
- Cân bằng thời gian đi và trọng tảicủaxe giữa các lộ trình.
- Cực tiểu hóa các hình phạt liên quan đến các phần dịch vụ của khách hàng
Các biến thể của VRP
VRP với hạn chế về trọng tải (CVRP)
Trong Bài toán phân phối hàng hóa với xe tải (CVRP), tất cả các yêu cầu giao hàng của khách hàng là cố định, đã được xác định trước và không thể chia nhỏ Một nhóm phương tiện đồng nhất được bố trí tại một kho trung tâm, với giới hạn về trọng tải Mục tiêu chính của CVRP là tối thiểu hóa tổng chi phí phục vụ tất cả khách hàng Bài toán này được mô tả thông qua lý thuyết đồ thị.
Cho G V A=( , ) là một đồ thị đầy đủ
- V={0, , }: là tập các đỉnhn o Các đỉnh i=1, 2, n: là các đỉnh khách hàng o Đỉnh i=0: là đỉnh kho
- c ij : Chi phí đi từ đỉnh iđến đỉnh j, đợc gán cho cung ( , ) Thờng không i j sử dụng cung tròn (i,i c) ( ii =+∞ với mọi i∈V)
Trong bài viết này, d i được xác định bởi yêu cầu phân phối không âm của khách hàng i, với yêu cầu kho d 0=0 Đối với một tập hợp các đỉnh S⊆V, tổng yêu cầu của các khách hàng trong tập S được biểu diễn bởi d S =∑ i ∈ S d i.
- K: số xe đợc sử dụng Trong đó Kmin là số lợng xe nhỏ nhất cần thiết để phục vụ tất cả khách hàng
- C: trọng tải của xe (d i ≤ C với =1, , ) i n
Nếu G là đồ thị có hướng, ma trận chi phí c sẽ không đối xứng, và bài toán tương ứng được gọi là CVRP bất đối xứng (ACVRP) Trong trường hợp này, A là tập hợp các cạnh của đồ thị có hướng G, được xác định bởi các đỉnh đầu mút của nó.
Nếu c_ij = c_ji với mọi (i, j) ∈ A, bài toán tương ứng được gọi là CVRP đối xứng (SCVRP) Trong trường hợp này, tập các cung A được thay thế bởi tập các cạnh không có hướng E Đối với mỗi cạnh e ∈ E, a_e và β(e) chỉ các đỉnh đầu mút của cạnh đó Đồng thời, với mỗi tập đỉnh S, δ(S) chỉ tập cạnh mà chỉ có một đỉnh đầu mút nằm trong S, và E(S) là tập các cạnh e ∈ E.
∈ có cả hai đỉnh đầu mút nằm trong S
- Cho một đỉnh i, o ∆ + (i) để chỉ tập các đỉnh j có cung (i, j)∈A o ∆ - (i) để chỉ tập các đỉnh j có cung ( j , i ) ∈ A,
Khi chi phí đường đi ngắn nhất giữa các điểm đầu mút của một cung trong đồ thị bằng với chi phí đi giữa hai điểm đó, ma trận chi phí sẽ thỏa mãn bất đẳng thức tam giác.
(1.1) c ik + c kj ≥ c ij với mọi i,j,k∈V
Khi các đỉnh được gán với các điểm trong hệ tọa độ phẳng, chi phí \(c_{ij}\) cho mỗi cung \((i, j) \in A\) được xác định bởi khoảng cách Euclid giữa hai điểm tương ứng với các đỉnh \(i\) và \(j\) Trong trường hợp này, ma trận chi phí có tính đối xứng và tuân thủ bất đẳng thức tam giác.
Giá trị của K min được xác định thông qua giải pháp của bài toán đóng thùng (Bin Packing Problem - BPP), trong đó mục tiêu là tìm ra số lượng tối thiểu các thùng hàng cần thiết để chứa tất cả n món hàng Mỗi thùng có khả năng chứa một khối lượng tối đa là C, và mỗi món hàng có khối lượng d_i, với i = 1, 2, , n, trong đó d_i không âm.
Cho một tập S⊆V\{0}, r S( ) là số xe tối thiểu để phục vụ các khách hàng trong tập
S, tức là ( ) là giá trị lời giải tối u của bài toán BPP kết hợp với một tập r S S sản phẩm( (r V\{0})=K min ) Thờng r S( ) đợc thay thế bởi cận dới của bài toán BPP
Mục tiêu của bài toán CVRP là tìm kiếm một tập lộ tK rình có chi phí tối thiểu sao cho:
(i) Mỗi lộ trình phải thăm đỉnh kho.
(ii) Mỗi khách hàng phải đợc thăm bởi chính xác một lộ trình
(iii) Tổng yêu cầu của các đỉnh đợc thăm bởi một lộ trình không vợt quá C, trọng tải của xe
Bài toán CVRP, được biết đến là một bài toán NP khó, là một mở rộng của bài toán người du lịch (TSP) Mục tiêu của CVRP là xác định chi phí tối thiểu cho một lộ trình đơn nhằm thăm tất cả các đỉnh trong tập hợp G.
Biến thể đầu tiên của CVRP là VRP với hạn chế về khoảng cách (DVRP), trong đó điều kiện ràng buộc về trọng tải được thay thế bằng điều kiện ràng buộc về chiều dài hoặc thời gian tối đa Cụ thể, với cung (i, j)∈A hoặc cạnh e∈E có t ij hoặc t e không âm, chiều dài của cung (i j) được xác định, và tổng chiều dài các cung trên một lộ trình không được vượt quá chiều dài cực đại đã được đặt ra trước đó.
Khi chiều dài của cung được coi là thời gian di chuyển, ta có thể xác định thời gian phục vụ si cho mỗi khách hàng i, tức là khoảng thời gian cần dừng lại tại khách hàng đó.
Trong bài toán tối ưu hóa, ma trận chi phí thường trùng với ma trận thời gian, tức là c_ij = t_ij cho mọi (i, j) ∈ A hoặc c_e = t_e cho mọi e ∈ E Mục tiêu chính của bài toán là tối thiểu hóa tổng chiều dài hoặc thời gian của các lộ trình, đồng thời tính đến thời gian phục vụ và thời gian di chuyển trên mỗi lộ trình Khi bài toán có giới hạn về trọng tải của xe và khoảng cách tối đa của lộ trình, nó được gọi là bài toán CVRP với hạn chế về thời gian và khoảng cách, hay còn gọi là DCVRP (Distance Constrained CVRP).
VRP với hạn chế về thời gian (VRPTW)
VRP với hạn chế về thời gian (VRPTW) là một biến thể của bài toán CVRP, trong đó mỗi khách hàng được gán với một khoảng thời gian cụ thể [i a i , b i ], gọi là khung thời gian Khách hàng i sẽ được phục vụ trong khoảng thời gian này với thời gian phục vụ s i Nếu phương tiện đến trước thời gian a i, nó sẽ phải chờ đến thời điểm đó mới có thể bắt đầu phục vụ Thời gian di chuyển trên cung (i, j) ∈ A (hoặc t e với e ∈ E) được tính bằng thời gian di chuyển từ i đến j cộng với thời gian phục vụ khách hàng i.
Ma trận chi phí thường trùng với ma trận thời gian đi, trong đó thời gian đi được xác định với giả định rằng tất cả các phương tiện rời khỏi kho vào thời điểm 0 Bên cạnh đó, các điều kiện khung thời gian tạo ra một sự định hướng ẩn cho mỗi lộ trình, ngay cả khi ma trận chi phí là đối xứng Do đó, bài toán VRPTW thường được mô hình hóa như một bài toán bất đối xứng.
VRPTW yêu cầu tìm kiếm một tập lộ trình có tổng chi phí tối thiểu sao cho:K
(i) Mỗi lộ trình phải thăm đỉnh kho.
(ii) Mỗi đỉnh khách hàng phải đợc thăm bởi chính xác bởi một lộ tr×nh
(iii) Tổng yêu cầu của các đỉnh đợc thăm bởi một lộ trình không vợt quá trọng tải của xe C
(iv) Với mỗi khách hàng , dịch vụ đợc bắt đầu trong khung thời gian i
[a i , b i ] và đợc phục vụ với thời gian s i VRPTW là NP-khó, đợc khái quát hóa từ CVRP khi a i = 0 b i = ∞, với }
V i∈ Hơn nữa TSP với hạn chế về thời gian (TSPTW) là trờng hợp đặc biệt của VRPTW khi K=1 và C d V≥ ( ).
VRP nhập xuất hàng kết hợp (VRPB)
VRP nhập xuất hàng kết hợp là một biến thể của CVRP, trong đó tập khách hàng V\{0} được phân chia thành hai nhóm: L và B Nhóm L bao gồm những khách hàng yêu cầu nhập hàng, trong khi nhóm B chứa các khách hàng yêu cầu xuất hàng Các khách hàng được đánh số sao cho L={1, ,n} và B={n+1, ,n+m}.
Trong bài toán VRPB, có một ràng buộc ưu tiên giữa các khách hàng yêu cầu nhập hàng và xuất hàng, trong đó khách hàng nhập hàng luôn được phục vụ trước Mỗi khách hàng sẽ được kết hợp với một yêu cầu không âm d_i, trong khi kho chứa sẽ được kết hợp với một yêu cầu ảo d_0=0 Mục tiêu của bài toán VRPB là tìm kiếm một tập lộ trình với chi phí tối thiểu, đồng thời đảm bảo các yêu cầu này được đáp ứng.
(i) Mỗi lộ trình phải thăm đỉnh kho.
(ii) Mỗi đỉnh khách hàng đợc thăm bởi chính xác bởi một lộ trình
Tổng hợp các yêu cầu nhập hàng và xuất hàng của khách hàng được thực hiện thông qua một lộ trình không vượt quá C, đảm bảo trọng tải của xe phù hợp.
(iv) Trong một lộ trình tất cả các khách hàng yêu cầu nhập hàng phải đứng trớc khách hàng yêu cầu xuất hàng, nếu có
K L và K B đại diện cho số lượng xe tối thiểu cần thiết để phục vụ tất cả khách hàng với yêu cầu nhập và xuất tương ứng Giá trị này có thể được xác định thông qua việc giải bài toán đóng thùng (BPP) kết hợp với hai tập con khách hàng Để đảm bảo tính khả thi, cần giả định rằng K không nhỏ hơn số lượng xe tối thiểu cần thiết, tức là K phải lớn hơn hoặc bằng max{K L , K B }.
VRPB là NP-khó, đợc khái quát từ bài toán CVRP khi B=ỉ.
VRP nhập xuất hàng đồng thời (VRPPD)
Trong bài toán VRP với nhập xuất hàng đồng thời (VRPPD), mỗi khách hàng i được kết hợp với hai yêu cầu: d_i cho việc xuất hàng và p_i cho việc nhập hàng Đôi khi, chỉ có một yêu cầu d_i = d_i - p_i được sử dụng, phản ánh sự khác biệt giữa yêu cầu xuất và nhập hàng của khách hàng i, với khả năng giá trị này có thể âm.
Giả sử tại mỗi vị trí của khách hàng, việc nhập hàng được thực hiện trước khi xuất hàng trên mỗi lộ trình Trọng tải hiện tại của một chiếc xe trước khi đến vị trí tiếp theo được xác định bằng trọng tải ban đầu trừ đi tổng trọng lượng hàng nhập đã thực hiện và cộng với tổng trọng lượng hàng xuất đã hoàn thành.
VRPPD yêu cầu tìm kiếm một tập lộ trình có chi phí K vận tải là cực tiểu sao cho: (i) Mối lộ trình phải thăm đỉnh kho.
Mỗi đỉnh khách hàng cần được thăm theo một lộ trình xác định Đồng thời, trọng tải hiện tại của xe trên lộ trình đó phải không âm và không được vượt quá trọng tải tối đa C của xe.
(iv) Với mỗi một khách hàng , thì yêu cầu nhập hàng sẽ đợc thực hiện trớc i yêu cầu xuất hàng
VRPPD là bài toán NP-khó, được khái quát hóa từ CVRP khi p i = 0 cho mỗi V i ∈ Ngoài ra, TSP nhập xuất hàng kết hợp là một trường hợp đặc biệt của VRPPD.
The VRP with Pickup and Deliveries and Time Windows (VRPPDTW) involves managing the simultaneous transportation of goods while adhering to specific time constraints This complex logistics problem requires optimizing routes to ensure timely pickups and deliveries, making it essential for efficient supply chain management.
Bài toán VRP với hạn chế về thời gian (VRPTW)
Mô hình toán học của bài toán VRPTW
Bài toán VRPTW đợc trình bày theo lý thuyết đồ thị nh sau:
Cho G V A=( , ) là một đồ thị đầy đủ
- V={0, , }: là tập các đỉnhn o Các đỉnh i=1, 2, n: là các đỉnh khách hàng o Đỉnh i=0: là đỉnh kho
- c ij : Chi phí đi từ đỉnh iđến đỉnh j, đợc gán cho cung ( , ) Thờng không i j đợc sử dụng cung tròn (i i, ) (c ii =+∞ với mọi i∈V)
Trong bài viết này, chúng ta xem xét yêu cầu phân phối không âm của khách hàng i, với yêu cầu tại kho d0 được mặc định là 0 Đối với một tập hợp các đỉnh S thuộc V, tổng yêu cầu của các khách hàng trong tập S được tính bằng công thức dS = ∑ i ∈ S di.
- K: số xe đợc sử dụng Trong đó K min là số lợng xe nhỏ nhất cần thiết để phục vụ tất cả khách hàng
- C: trọng tải của xe (d i ≤C với =1, , ) i n
- [a i ,b i ]: là khung thời gian phục vụ khách hàng i a, i là thời gian đến sớm nhất và b i là thời gian đến muộn nhất tại khách hàng i Tại nút kho [a 0,b 0]
Trong mỗi lộ trình bắt đầu và kết thúc tại kho chứa, Evà L đại diện cho thời gian khởi hành sớm nhất và thời gian kết thúc muộn nhất có thể.
- Số lộ trình trong hệ thống bằng số phơng tiện đợc sử dụng trong bài toán.
- Bài toán chỉ tồn tại lời giải khả khi và chỉ khi a 0 =E ≤min i ∈ V \{ 0 } b i −t 0 i và i i i V i n L a s t b + 1 = ≥min ∈ \{ 0 } + + 0
- Cung (i, j)∈A có thể bị loại bỏ nếu a i +s i +t ij >b j (do hạn chế về thời gian), hoặc nếu d i +d j > C(do hạn chế về trọng tải)
Mô hình toán học cho VRPTW đợc phát biểu nh sau:
N i j i ijk i k i j j i ijk i ik ijk i jk ij i ik ijk n i k n i j i i j jik ijk j jk
Biến luồng x ijk được định nghĩa với (i, j)∈A, k∈K, bằng 1 nếu cung (i,j) được sử dụng bởi xe, trong khi các biến thời gian gik và w ik với i∈V, k∈K chỉ rõ thời gian bắt đầu dịch vụ tại nút i khi được phục vụ bởi xe k Hàm mục tiêu (1.1) nhằm xác định tổng chi phí của lời giải.
Với tập khách hàng = \N V{0}, biểu thức (1.2) gán mỗi khách hàng cho một lộ trình cụ thể Các biểu thức (1.3), (1.5) mô tả đặc trưng của lộ trình mà xe k di chuyển Đồng thời, các biểu thức (1.6), (1.8) và (1.9) đảm bảo tính khả thi của lộ trình, phù hợp với các giới hạn về thời gian và trọng tải của phương tiện Lưu ý rằng trong (1.7), với k đã cho, w ik =0 khi khách hàng i không được xe k thăm Cuối cùng, biểu thức này hoàn thiện mô hình lộ trình.
(1.11) áp dụng các điều kiện nhị phân trên các biến luồng.
Các VRPTW mở rộng
Phần này trình bày một số mở rộng của VRPTW:
VRPTW với điều kiện đội xe không đồng nhất, đa kho chứa
Mô hình VRPTW (1.1)-(1.11) có thể được mở rộng để áp dụng cho nhiều kho chứa, đội xe với trọng tải khác nhau, và các điều kiện ban đầu đặc biệt cho từng xe Mỗi xe k∈K được xác định bởi đồ thị G k =(V k , A k ) cùng với các tham số c ij và t ij Ngoài ra, trong một số trường hợp, yêu cầu d i của khách hàng và khung thời gian [a i, b i ] có thể phụ thuộc vào loại xe sẽ được phục vụ.
VRPTW, hay bài toán định tuyến phương tiện với khung thời gian, có thể mở rộng từ một khung thời gian đơn cho mỗi khách hàng sang nhiều khung thời gian để đáp ứng nhu cầu về các dịch vụ tùy chọn Sự mở rộng này dẫn đến việc điều chỉnh hàm mục tiêu nhằm tính toán thời gian giữa các lần phục vụ Đặc biệt, mô hình đa khung thời gian thường được nghiên cứu trong bối cảnh VRP nhiều giai đoạn, trong đó mỗi khách hàng cần được thăm một số lần nhất định trong kế hoạch Bài toán này đã được các nhà nghiên cứu như Solomon và Desrosiers khám phá.
VRPTW cã khung thêi gian mÒm
Các ràng buộc khung thời gian mềm cho phép xe phục vụ khách hàng trước hoặc sau thời gian quy định, dẫn đến việc phát sinh chi phí bổ sung Công thức (1.1)-(1.11) có thể được điều chỉnh cho khung thời gian mềm theo hai kịch bản Kịch bản đầu tiên cho phép vi phạm chỉ ở giới hạn cuối, với thời gian bị giới hạn bởi b' i, i∈N Trong trường hợp này, khung thời gian cứng được mở rộng thành [a i , b i +b' i ] với i∈N, cùng với các hàm phạt không giảm dựa trên thời gian bắt đầu dịch vụ của xe k.
( i i i ik ik i i i ik ik i g w if w b b b b a w w if c trong đó g i (.) là một hàm số dơng không giảm
Trong trường hợp có vi phạm thời điểm bắt đầu, khoảng thời gian sẽ bị giới hạn bởi a i, với i thuộc tập số tự nhiên N Tương tự, khung thời gian sẽ được mở rộng từ [a i - a' i, b i + b' i] Các hàm phạt sẽ được định nghĩa cùng với N i thuộc tập hợp các số tự nhiên.
( i i i ik ik i i i ik i i i ik ik i i ik i b b b w if w g b a w if a a a w if w a w c λ
Trong đó λ i là một hằng số dơng và g i (.) là một hàm số dơng không giảm
VRPTW với các điều kiện liên quan đến ngời điều khiển
Khi giải quyết bài toán VRPTW, cần xem xét các yếu tố lịch trình cho đội lái để tạo ra các lộ trình xe hiệu quả mà không làm tăng chi phí cho lái xe.
Mỗi người lái xe được giao một lộ trình vận chuyển, với ba khía cạnh lập lịch chính: đảm bảo tối thiểu số giờ trên mỗi lộ trình, tối đa số giờ làm việc và tối thiểu các khoảng thời gian nghỉ trong các lộ trình dài Theo Desaulnier, hai yêu cầu đầu tiên có thể được mô hình hóa bằng các biến tài nguyên tương tự như biến thời gian và biến trọng tải Yêu cầu cuối cùng được giải quyết qua hệ thống nhiều giai đoạn, trong đó mỗi giai đoạn chứa bản sao các nút khách hàng, với các đường dẫn giữa các nút thuộc cùng một giai đoạn tương ứng với lộ trình không có khoảng thời gian nghỉ Thời gian tối đa cho các lộ trình này được điều khiển bởi các biến tài nguyên, trong khi các khoảng thời gian nghỉ tối thiểu được xác định từ các nút của giai đoạn này đến giai đoạn tiếp theo Người điều khiển cũng có thể được tích hợp vào các mô hình VRPTW mở rộng khác.
CáC PHƯƠNG PHáP GIảI BàI TOáN VRP
Các thuật toán giải đúng
Thuật toán nhánh và cận
Thuật toán tối ưu hóa nhánh và cận cho bài toán VRPTW được giới thiệu lần đầu vào năm 1987 bởi Kolen, Rinnooy Kan và Trienekens Thuật toán này áp dụng phương pháp quy hoạch động và nới lỏng không gian lời giải để tính cận dưới cho bài toán Đầu tiên, giải bài toán nới lỏng tuyến tính của bài toán ban đầu; nếu tìm được lời giải tối ưu x là số nguyên, thì đã xác định được lời giải tối ưu cho bài toán.
Để giải bài toán ban đầu, nếu không thể, chúng ta chọn một biến x e với giá trị phân số và tạo ra hai bài toán quy hoạch tuyến tính mới Bài toán đầu tiên thêm một cận trên cho xe bằng xe, trong khi bài toán thứ hai khởi tạo một cận dưới cho xe bằng xe Các cận này được xác định bởi giá trị lời giải tối ưu của bài toán quy hoạch tuyến tính kết hợp với các nút của cây tìm kiếm Tuy nhiên, hiệu quả của thuật toán nhánh và cận trong việc giải bài toán VRPTW không cao, với trường hợp lớn nhất chỉ giải quyết được 15 khách hàng.
Ví dụ: Tìm giá trị cực đại của hàm sau: z=5x 1 + 4x 2
Để giải bài toán với các điều kiện x1 + x2 ≤ 5 và 10x1 + 6x2 ≤ 45, với x1, x2 là số nguyên, ta áp dụng phương pháp nhánh và cận Bước đầu tiên là nới lỏng bài toán để tìm giá trị cực đại mà không bị ràng buộc bởi các số nguyên Kết quả của bài toán LP0 cho thấy giải pháp tối ưu là x1 = 3.75, x2 = 1.25, với giá trị z = 7.75.
Rõ ràng, x1 và x2 không phải là số nguyên, dẫn đến quá trình rẽ nhánh trong giải bài toán Cụ thể, không gian lời giải LP1 được xác định bằng cách thêm điều kiện (x1 ≤ 3) vào không gian lời giải LP0, trong khi không gian lời giải LP2 được hình thành từ không gian lời giải LP0 với điều kiện (x1 ≥ 4).
Hình 2.1: Minh họa quá trình rẽ nhánh của thuật toán nhánh và cận
Thuật toán nhánh và cắt
Thuật toán nhánh và cắt là một phương pháp phức tạp hơn so với thuật toán nhánh và cận, vì nó điều chỉnh không gian lời giải thông qua việc thêm các điều kiện ràng buộc có cấu trúc gọi là mặt cắt Trong bối cảnh bài toán quy hoạch số nguyên (IP) và bài toán nới lỏng tuyến tính (LP(∞)), thuật toán này nhằm tối thiểu hóa hàm mục tiêu bằng cách áp dụng các mặt cắt để cải thiện giải pháp.
Với h ≥ 0, bài toán quy hoạch tuyến tính LP(h) bao gồm một tập hợp các điều kiện ràng buộc hợp lý trong LP(∞) Khi giải bài toán LP(h), ta thu được lời giải tối ưu x h Nếu lời giải này khả thi cho bài toán quy hoạch với các giá trị x 1 = 3.75, x 2 = 1.25, và z x 1 = 3, x 2 = 2, thì kết quả sẽ được xác nhận.
Nếu \( x \) là một nghiệm tối ưu cho bài toán quy hoạch tuyến tính nguyên IP với các ràng buộc \( 1 \leq 3 \) và \( 1 \geq 4 \), thì nó là một lời giải tối ưu Nếu không, chúng ta áp dụng thuật toán phân tách để xác định ít nhất một ràng buộc LP(∞) bị vi phạm bởi \( x \) Nếu có một hoặc nhiều ràng buộc bị vi phạm, ta tạo ra LP(h+1) từ LP(h) bằng cách thêm các ràng buộc này vào Ngược lại, nếu tất cả các ràng buộc đều được thỏa mãn, thì ta giữ nguyên Cần lưu ý rằng với mỗi \( h \geq 0 \), giá trị tối ưu \( Z_{LP(h)} \) thỏa mãn \( Z_{LP(h)} \leq Z_{LP(h+1)} \leq Z_{LP(∞)} \).
Các thuật toán xấp xỉ
Có thể đ ợc phân thành hai lớp chính:
- Heuristic cổ điển, đợc phát triển phần lớn vào giữa những năm 1960 và 1990
- Metaheuristics, đã xuất hiện trong những năm gần đây đợc xây dựng và cải tiến từ lớp heuristic cổ điển
Các phương pháp khảo sát hạn chế không gian tìm kiếm, mang lại giải pháp chất lượng cao trong thời gian tính toán hợp lý Chúng có khả năng mở rộng để xử lý các điều kiện ràng buộc thực tế, do đó được áp dụng rộng rãi trong các sản phẩm thương mại Trong metaheuristics, khảo sát được thực hiện trong những khu vực hứa hẹn nhất của không gian giải pháp, cho kết quả tốt hơn nhiều so với phương pháp heuristic cổ điển, mặc dù chi phí tính toán có thể tăng lên.
Các thuật toán heuristic cổ điển
Heuristic kiÕn thiÕt
Thuật toán Clarke và Wright
Thuật toán Clarke và Wright là một trong những heuristic phổ biến nhất cho bài toán phân phối xe (VRP) Nó có thể áp dụng cho các bài toán với số lượng xe không cố định và hoạt động hiệu quả trong cả trường hợp có hướng và không có hướng Tuy nhiên, theo báo cáo của Vigo, thuật toán hoạt động kém hơn trong các trường hợp có hướng, mặc dù số lượng lộ trình có khả năng hòa trộn bị chia đôi Hai lộ trình khả thi (0, , 0) và (0, i j, , 0) có thể được kết hợp thành một lộ trình đơn (0, , i j, , 0), giúp tiết kiệm chi phí với s ij = c i0 + c j0 - c ij.
Bớc 1 (Tính khoản chi phí tiết kiệm đợc)
Tính khoản chi phí tiết kiệm đợc s ij =c i0+c j0-c ij với i, j= 1, ., nvà i j≠ Tạo lộ trình xe (0, , 0) với n i i = 1, ., n
Sắp xếp các khoản tiết kiệm theo hớng không tăng
Bớc 2 (Trộn các lộ trình khả thi nhất)
Bắt đầu từ đỉnh của danh sách tiết kiệm, thực hiện nh sau:
Với mỗi khoản tiết kiệm s ij , xác định hai lộ trình
• một lộ trình chứa cung hoặc cạnh (0,j) và
• một lộ trình khác có chứa cung hoặc cạnh (i,0), có thể đợc hòa trộn khả thi bằng cách xóa các cạnh (0, ) và ( 0) và đa vào j i, cạnh ( ).i j,
Bớc 2 (Mở rộng lộ trình)
Xét lần lợt mỗi lộ trình ( 0, i, j, 0),
Xác định các khoản tiết kiệm s ki hoặc s jl có thể sử dụng để kết hợp lộ trình hiện tại với một lộ trình khác chứa cung hoặc cạnh (k, 0) hoặc chứa cung hoặc cạnh (0, l).
• Nếu có, thực hiện sự hòa trộn và lặp lại thao tác này với lộ trình hiện tại
• Ngợc lại, nếu không tồn tại một sự hòa trộn khả thi nào thì xét lộ trình tiếp theo và lặp lại các thao tác nh trên
Dừng lại khi không tồn tại một sự hòa trộn nào khả thi
Heuristic chèn liên tục của Mole và Jameson
Thuật toán Mole và Jameson sử dụng hai tham số λ và μđể mở rộng một lộ tr×nh theo cÊu tróc sau:
Thuật toán có thể đợc mô tả nh sau:
Bước 1 là khởi tạo lộ trình Nếu tất cả các đỉnh đều thuộc một lộ trình, quá trình sẽ dừng lại Ngược lại, cần xây dựng một lộ trình mới với định dạng (0, k, 0), trong đó k là một đỉnh bất kỳ chưa được định hướng.
Bước 2, với mỗi đỉnh k chưa được định hướng, tính chi phí chèn khả thi α * (i k, k, j k) = min{α(r, k, s)} với mọi đỉnh liền kề r trong lộ trình hiện tại
Bớc 3 (tối u hóa lộ trình) ối u hóa lộ trình hiện tại bằng thủ tục 3 opt và quay T - lại bớc 2
Các quy tắc chèn đỉnh được xác định bởi hai tham số λ và μ Khi λ=1 và μ=0, thuật toán sẽ chèn đỉnh có khoảng cách chèn tối thiểu Nếu cả λ và μ đều bằng 0, đỉnh được chèn sẽ là đỉnh láng giềng có tổng khoảng cách nhỏ nhất Ngược lại, khi μ=∞ và λ>0, thuật toán sẽ chèn đỉnh xa nhất với kho.
Heuristic chèn liên tục của Christofides, Mingozzi, và Toth
Christofides, Mingozzi, và Toth [11] đã phát triển một heuristic chèn hai giai đoạn (two phase insection) phức tạp hơn sử dụng hai tham số điều khiển - μ và λ
Giai đoạn 1 Xây dựng lộ trình liên tục
Bớc 1 (khởi tạo lộ trình) Khởi tạo lộ trình, k = 1
Bước 2: Tính toán chi phí chèn cho lộ trình k bằng cách chọn một đỉnh i k bất kỳ chưa được định hướng Đối với mỗi đỉnh chưa được định hướng, chi phí chèn được tính theo công thức i δ i = c 0 i + λc ii k.
Bước 3: Chèn đỉnh Với δ i * = min i ∈ S k { }δ i, trong đó S k là tập các đỉnh chưa được định hướng có thể chèn vào lộ trình Chèn đỉnh k h i* vào lộ trình Tối ưu hóa lộ trình k bằng thuật toán 3-opt Lặp lại bước 3 cho đến khi không thể gán một đỉnh vào lộ trình k.
Bớc 4 Nếu tất cả các đỉnh đã đợc chèn vào trong các lộ trình, thì dừng lại Ngợc lại k:=k+1 và quay lại bớc 2
Giai đoạn 2 Xây dựng lộ trình song song
Bớc 5 (khởi tạo lộ trình) Khởi tạo k lộ trình R t = (0, i t , 0) ( t=1, .,k), trong đó k là số lợng các lộ trình đã thu đợc ở cuối giai đoạn 1 Cho J R={ 1 , ., R k }
Bước 6 (tính chi phí kết hợp) yêu cầu tính toán chi phí cho mỗi đỉnh khi kết hợp với một lộ trình khả thi R t ∈ J Cụ thể, cần tính ε ti = c 0 i + c ii t và εt * i = min R t ∈ J {εti } Sau đó, kết hợp đỉnh i với lộ trình R t* và lặp lại bước 6 cho đến khi tất cả các đỉnh đã được kết hợp với các lộ trình tương ứng.
Bớc 7 (tính chi phí chèn) Sử dụng một lộ trình bất kỳ R t ∈J và tập J:=J\ R{ t } Với mọi đỉnh i đợc kết hợp với lộ trình R t , tính i ti t i ti
Bớc 8 (chèn đỉnh) Chèn vào lộ trình R t đỉnh i* thỏa mãn i * max i S { i } t τ τ = ∈ trong đó
Tập hợp S t bao gồm các đỉnh chưa được định hướng, kết hợp với lộ trình R t, cho phép chèn các đỉnh khả thi vào lộ trình này Để tối ưu hóa lộ trình R t, thuật toán 3-opt được sử dụng Quá trình này sẽ lặp lại cho đến khi không còn đỉnh nào có thể chèn vào lộ trình R t.
Bước 9 (kiểm tra sự kết thúc): Nếu J khác rỗng, quay lại bước 6 Ngược lại, nếu tất cả các đỉnh đã được định hướng, thì dừng lại Nếu vẫn còn các đỉnh chưa được định hướng, hãy tạo một lộ trình mới bắt đầu từ bước 1 của giai đoạn 1.
Heuristic hai giai đoạn
Thuật toán sweep được áp dụng cho bài toán phân phối xe (VRP) trong không gian hai chiều Để hình thành các nhóm khách hàng khả thi, một tia tâm được quay tròn tại kho Mỗi nhóm khách hàng sẽ được xây dựng lộ trình xe cộ thông qua việc giải bài toán TSP Một số trường hợp còn xem xét giai đoạn tối ưu hóa vị trí, cho phép các nhóm khách hàng liền kề trao đổi các đỉnh với nhau nhằm tối ưu hóa lộ trình Phương pháp thực hiện đơn giản: mỗi đỉnh i được biểu diễn bằng tọa độ cực (θ i ,ρ i ), trong đó θ i là góc và ρ i là chiều dài của tia Gán giá trị ban đầu θ i * =0 cho một đỉnh i * bất kỳ, sau đó tính toán các góc của các đỉnh còn lại và sắp xếp chúng theo thứ tự tăng dần của θ i.
Bớc 1 (khởi tạo lộ trình) Chọn một xe cha đợc sử dụng k
Bước 2 (xây dựng lộ trình) bắt đầu từ đỉnh chờ được định hướng có góc nhỏ nhất Gán các đỉnh cho xe sao cho trọng tải hoặc chiều dài tối đa của lộ trình không vượt quá giới hạn Trong DVRP bị ràng buộc chặt, 3 opt có thể được áp dụng sau mỗi bước chèn Nếu vẫn còn các đỉnh chờ được định hướng, quay lại bước 1 để tiếp tục.
Bớc 3 (tối u hóa lộ trình) Mỗi lộ trình xe cộ đợc tối u bằng cách giải bài toán
TSP tơng ứng (chính xác hoặc xấp xỉ)
Thuật toán Fisher và Jaikumar
Trong thuật toán của Fisher và Jaikumar, thay vì áp dụng phương pháp hình học để phân nhóm khách hàng, tác giả đã giải quyết Bài toán phân công mở rộng (GAP - Generalized Assignment Problem) Bài toán này được mô tả như sau:
Bớc 1 (chọn hạt giống) Chọn các đỉnh hạt giống j k trong Vđể khởi tạo một nhóm khách hàng k
Bớc 2 (gán các đỉnh khách hàng cho mỗi đỉnh hạt giống) Tính chi phí d ik để gán khách hàng i cho nhóm k: d ik =min{c 0 i +c ij k +c j k 0 ,c 0 j k +c j k i +c i 0 }−(c 0 j k +c j k 0 )
Bớc 3 (giải bài toán GAP Giải bài toán GAP với chi phí d) ij , trọng số khách hàng q i , và trọng tải của xe là Q
Bớc 4 (giải bài toán TSP) Giải bài toán TSP với mỗi một nhóm khách hàng tơng ứng với một lời giải GAP.
Heuristic cải tiến
Các thuật toán heuristic được cải tiến thông qua việc trao đổi các chuỗi đỉnh hoặc cạnh liên tục giữa các lộ trình xe cộ, nhằm nâng cao chất lượng giải pháp.
Cải tiến của Thompson and Psaraftis
Năm 1993, Thompson và Psaraftis đã phát triển một phương pháp mới dựa trên khái niệm b-chu trình và k-di chuyển, trong đó nghiên cứu một hoán vị vòng tròn của b lộ trình và k khách hàng được chuyển từ lộ trình này sang lộ trình khác.
Hình 2.2: Minh họa thủ tục cải tiến của Thompson and Psaraftis
3-chu tr×nh, 2 di chuyÓn -
Di chuyển các nút khách hàng trắng là một thao tác quan trọng, bao gồm việc chuyển khách hàng a và c từ lộ trình 1, khách hàng f và j từ lộ trình 2, cũng như khách hàng o và p từ lộ trình 4 vào các lộ trình tương ứng 2, 4 và 1.
Cải tiến của Van Breedam
Vào năm 1994, Van Breedam đã phân lớp các thao tác cải tiến nh sau:
- Lai chuỗi (SC) Hai chuỗi đỉnh đợc trao đổi bằng cách bắt chéo hai cạnh thuộc hai lộ trình khác nhau
Hình 2.3 Minh họa thủ tục lai chuỗi của Van Breedam
- Trao đổi chuổi (SE) thực hiện trao đổi hai chuỗi k đỉnh giữa các lộ trình với nhau
Hình 2.4 Minh họa thủ tục trao đổi của Van Breedam
- Định vị lại chuỗi (SR) Một chuỗi k đỉnh đợc di chuyển từ lộ trình này sang lộ trình khác, thờng k = 1 hoặc 2;
Hình 2.5 Minh họa thủ tục định vị lại chuỗi Van Breedam
Trộn chuỗi (SM) là một phương pháp quan trọng trong việc lựa chọn sự chuyển tốt nhất giữa SE và SR Để đánh giá hiệu quả của các di chuyển này, Van Breedam đã đề xuất hai chiến lược cải tiến cục bộ, giúp tối ưu hóa quá trình lựa chọn và nâng cao hiệu suất.
- Chiến lợc cải tiến đầu tiên (FI): thực hiện di chuyển đầu tiên mà cải thiện đợc hàm mục tiêu
- Chiến lợc cải tiến tốt nhất (BI): Tính toán tất cả các di chuyển có thể và thực hiện di chuyển tốt nhất
Cải tiến của Kinderwater and Savelsbergh
Trong heuristic của Kinderwater và Savelsbergh (1997) các thao tác cải tiến đợc thực hiện bằng cách trao đổi khách hàng giữa các lộ trình đợc thực hiện nh sau:
- Định vị lại khách hàng: Một khách hàng xác định tại một lộ trình sẽ đợc chuyển tới một lộ trình khác
Hình 2.6: Minh thủ tục định vị lại khách hàng của Kinderwater và Savelsbergh
- Lai ghép: hai lộ trình đợc trộn lẫn cho nhau tại một điểm
Hình 2.7: Minh họa thủ tục lai ghép của Kinderwater và Savelsbergh
- Hoán đổi khách hàng: hai khách hàng thuộc hai lộ trình khác nhau sẽ đợc hoán đổi cho nhau giữa hai lộ trình
Hình 2.8: Minh họa thủ tục hoán đổi khách hàng của Kinderwater và
Savelsbergh depot is a key location for efficient operations, focusing on the management and distribution of resources The depot plays a vital role in ensuring smooth processes and timely deliveries Its strategic significance is highlighted by its commitment to maintaining high standards in service and logistics.
Thuật toán metaheristic
Thuật toán mô phỏng luyện kim (Simulated Annealing)
Trong mỗi bước lặp t của thuật toán mô phỏng luyện kim, một lời giải được suy ra ngẫu nhiên từ miền các lời giải láng giềng N x( t ) của x t Nếu f(x) được tối ưu hóa, quá trình này sẽ giúp tìm ra giải pháp tốt hơn trong không gian tìm kiếm.
≤ f(x t ), thì x t+1 bằng x, ngợc lại
Trong đó: p t là một hàm giảm đối với tvà f(x)-f(x t ) Đợc định nghĩa nh sau:
Trong bài viết này, chúng ta sẽ tìm hiểu về quy trình làm mát trong tối ưu hóa, trong đó nhiệt độ tại bước lặp t được ký hiệu là θ t Các quy tắc định nghĩa θ t được gọi là chương trình làm mát, với θ t được khởi tạo từ một giá trị ban đầu θ 1 > 0 và giảm dần theo hệ số α (0 < α < 1) sau mỗi bước lặp Điều này giúp giảm xác suất chấp nhận các giải pháp kém theo thời gian Ba tiêu chuẩn dừng thường được áp dụng là: giá trị f * của x * hiện tại giảm ít hơn 1% so với k 1 chu trình liên tiếp; số lượng các di chuyển được chấp nhận ít hơn 2% với k 2 chu trình liên tiếp; và hoàn thành k 3 chu trình của T bước lặp.
Thuật toán Simulated Annealing (SA) cho bài toán Tối ưu hóa Lộ trình Xe (VRP) lần đầu tiên được thực hiện bởi Robuste, Daganzo và Souleyrette, cũng như bởi Alfa, Heragu và Chen Trong nghiên cứu đầu tiên, các tác giả đã định nghĩa cấu trúc miền láng giềng bằng cách kết hợp nhiều cơ chế, bao gồm việc đảo một phần của lộ trình, di chuyển một số đỉnh trên cùng một lộ trình, và trao đổi các đỉnh giữa hai lộ trình khác nhau Thuật toán này đã được kiểm tra trên bốn trường hợp với kích thước n = 80.
Trong nghiên cứu này, Alfa, Heragu và Chen áp dụng phương pháp heuristic hai giai đoạn route first, cluster second (Beasley) để khởi tạo lời giải ban đầu cho ba trường hợp khác nhau với kích thước n = 30, 50 và 75 Họ cũng sử dụng thao tác tối ưu hóa opt (Lin) trong quá trình tìm kiếm để cải thiện kết quả.
Osman đã phát triển một thuật toán mô phỏng luyện kim (SA) phức tạp và hiệu quả hơn, sử dụng giải pháp ban đầu tốt hơn và điều chỉnh tham số trong giai đoạn thử nghiệm Thuật toán này khảo sát miền giải pháp láng giềng phong phú hơn, với chương trình làm mát phức tạp hơn Cấu trúc miền láng giềng áp dụng cơ chế sinh λ-interchange, trong đó hai lộ trình p và q được chọn cùng với các tập con khách hàng S p và S q, thỏa mãn |S p | ≤ λ và |S q | ≤ λ Thao tác trao đổi khách hàng giữa S p và S q được thực hiện khi khả thi, với S p và S q có thể là rỗng, chỉ đơn giản di chuyển khách hàng giữa các lộ trình Thủ tục thường được thực hiện với λ = 1 hoặc λ = 2, và quá trình tìm kiếm dừng lại ngay khi một di chuyển cải tiến được xác định, trong trường hợp xấu nhất là toàn bộ miền lân cận cần được khám phá.
Thuật toán này đợc thực thi trên các VRP đối xứng với số lợng xe không cố định, các thao tác đợc thực hiện nh sau:
Giai đoạn 1 Thuật toán giảm
Bớc 1: (khởi tạo lời giải) lời giải ban đầu đợc sinh bởi thuật toán Clarke và Wright
Bước 2: Tìm kiếm không gian lời giải bằng cách sử dụng lược đồ interchange Thực hiện ngay một cải tiến khi nó được xác định Dừng lại khi đã khám phá toàn bộ miền láng giềng mà không có sự cải tiến nào.
Giai đoạn thứ 2 Thuật toán tìm kiếm mô phỏng luyện kim.
Bước 1 (khởi tạo lời giải) bắt đầu bằng việc sử dụng lời giải thu được ở giai đoạn 1 hoặc một lời giải được sinh ra từ thuật toán Clarke và Wright Tiến hành tìm kiếm miền láng giềng đầy đủ với cơ chế sinh λ-interchange mà không thực hiện di chuyển nào Tính toán ∆max và ∆min, là các giá trị tuyệt đối của biến đổi nhỏ nhất và lớn nhất trong hàm mục tiêu, đồng thời xác định số lượng các trao đổi khả thi Khởi tạo các tham số β, θ 1= ∆max, δ := 0, k:= 1, k 3:= 3, t:= 1, và t * := 1, là bước lặp trong lời giải tốt nhất đã xác định trong chu trình hiện tại Lời giải hiện tại được ký hiệu là x 1 và x * := x 1.
Bước 2 (Lời giải tiếp theo) bắt đầu bằng việc khảo sát miền láng giềng của x t thông qua cơ chế λ-interchange Nếu tìm thấy một lời giải mới với f(x) < f(x t), thì cập nhật x t+1 thành x Trong trường hợp f(x) < f(x *), thì gán x * = x và θ * = θ k Nếu quá trình khảo sát toàn bộ không tìm ra lời giải tốt hơn x t, thì x được coi là lời giải tốt nhất trong vùng lân cận của x t.
1 trong đó p t là hàm giảm đã đợc định nghĩa trong (2.1) Nếu x t+1:=x t thì δ:=1.
Bước 3 liên quan đến việc cập nhật nhiệt độ Quy tắc tăng được áp dụng khi δ=1, dẫn đến tập θ t+1 = max{θ t /2, θ *}, sau đó δ được đặt thành 0 và k k được tăng lên 1 Ngược lại, quy tắc giảm được áp dụng khi δ=0, với công thức θ t + 1 = θ t /[(nβ+n t)∆ max ∆ min] Tiếp tục với t: t + 1 Nếu k k đạt đến 3, quá trình sẽ dừng lại, nếu không sẽ quay lại bước 2.
Chương trình làm mát do Osman thực hiện khác biệt so với phương pháp trong SA, với việc nhiệt độ không giảm liên tục và không có hàm bướt cố định Nhiệt độ chỉ giảm khi lời giải hiện tại được điều chỉnh Khi x t+1 bằng x t, nhiệt độ hiện tại sẽ được chia đôi hoặc thay thế bằng một mức đã xác định, trong khi phạm vi của chương trình làm mát không rõ ràng.
Thuật toán tìm kiếm Tabu
Thuật toán tìm kiếm tabu được phát triển đầu tiên bởi Willard, Pureza và Franca Mặc dù ban đầu không mang lại kết quả ấn tượng, nhưng các triển khai sau này của Osman, Taillard, Gendreau, Hertz, Laporte, Xu và Kelly, Rego và Roucairol, Rego, cùng với Barbarosoglu và Ozgur đã đạt được nhiều thành công Đặc biệt, Rochat và Taillard đã giới thiệu khái niệm bộ nhớ thích nghi, giúp cải thiện hiệu quả của bất kỳ thuật toán tìm kiếm tabu nào Dựa trên những nguyên lý này, Toth và Vigo đã phát triển một thuật toán tìm kiếm tabu với tính khả dụng rộng rãi.
Trong thuật toán tìm kiếm tabu đầu tiên của Willard cho bài toán VRP, giải pháp ban đầu được chuyển đổi thành một hành trình lớn thông qua các bản sao của kho Các miền lời giải láng giềng được xác định từ lời giải hiện tại bằng cách áp dụng phương pháp biến đổi 2-opt hoặc 3-opt Lời giải tiếp theo được xác định bằng cách di chuyển nontabu tốt nhất Pureza và Franga định nghĩa lời giải láng giềng bằng cách di chuyển một đỉnh sang lộ trình khác hoặc trao đổi các đỉnh giữa hai lộ trình, đảm bảo tính khả thi Trong thuật toán của Willard, nontabu khả thi tốt nhất được chọn tại mỗi bước lặp.
Thuật toán tìm kiếm Tabu của Osman
Theo Osman, miền các lời giải láng giềng được xác định thông qua cơ chế sinh λ-interchange, với λ=2 tương ứng với một tổ hợp các thao tác di chuyển 2-opt Các thao tác này bao gồm việc gán lại các đỉnh cho các lộ trình khác và trao đổi các đỉnh giữa hai lộ trình Quá trình di chuyển này được thực hiện dựa trên hai chiến lược.
- BA(best admissible): khảo sát toàn bộ miền láng giềng và di chuyển nontabu khả thi tốt nhất đ ợc chọn.
FBA (first best admissible) là phương pháp chọn lựa di chuyển cải tiến đầu tiên có thể chấp nhận được nếu tồn tại; nếu không, sẽ thực hiện di chuyển tốt nhất có thể chấp nhận.
Các nghiên cứu thực nghiệm cho thấy việc thực hiện tìm kiếm với hai tabu này mang lại kết quả tối ưu, tuy nhiên vẫn có khả năng cải tiến trong nhiều trường hợp khác nhau.
Thuật toán Taburoute của Gendreau, Hertz và Laporte có cấu trúc phức tạp và nhiều đặc tính đổi mới so với các thuật toán trước đây Cấu trúc miền các lời giải được xác định bởi những lời giải có thể đạt được bằng cách loại bỏ một đỉnh từ lộ trình hiện tại và chèn nó vào lộ trình khác trong số p láng giềng gần nhất, thông qua thủ tục GENI Điều này có thể dẫn đến việc loại bỏ lộ trình cũ hoặc tạo ra lộ trình mới Một đặc trưng quan trọng khác của Taburoute là khả năng khảo sát các lời giải không khả thi dựa trên trọng tải và chiều dài tối đa Hàm mục tiêu bao gồm hai thuật ngữ phạt liên quan đến trọng tải và tổng khoảng cách, với tham số tự điều chỉnh sau mỗi 10 bước lặp Phương pháp này kết hợp giữa lời giải khả thi và không khả thi, giảm thiểu khả năng bị đánh lừa bởi giá trị cực tiểu cục bộ Trong quá trình tìm kiếm, Taburoute tối ưu lại lộ trình với đỉnh mới được chèn vào, sử dụng vị trí tối ưu của TSP do Gendreau, Hertz và Laporte phát triển.
Trong Taburoute, thay vì áp dụng danh sách tabu, phương pháp này sử dụng các thẻ tabu ngẫu nhiên Khi một đỉnh được chuyển từ lộ trình r sang lộ trình s tại bước lặp t, các đỉnh này sẽ bị cấm chèn lại vào lộ trình r cho đến bước lặp t + θ, với θ là một số nguyên ngẫu nhiên trong khoảng [5, 10] Đặc trưng nổi bật của Taburoute là chiến lược đa dạng hóa, trong đó các đỉnh phạt được di chuyển thường xuyên để tăng khả năng xem xét Hàm mục tiêu được cải thiện bằng cách bổ sung một thuật ngữ tương ứng với tần số di chuyển tuyệt đối của đỉnh hiện tại Cuối cùng, Taburoute áp dụng khởi đầu lỗi (false start), trong đó một số lời giải ban đầu được tạo ra trong không gian tìm kiếm giới hạn, và lời giải tốt nhất được chọn làm điểm khởi đầu cho quá trình tìm kiếm.
Bây giờ chúng ta sẽ tìm hiểu một trình bày ngắn gọn về Taburoute Trongđó,
W là tập đỉnh ứng cử viên được chèn vào lộ trình khác tại mỗi bước lặp Trong đó, n là số lượng khách hàng, m là số xe đặt tại kho, và q ≤ |W| là số đỉnh ứng cử viên được xem xét cho việc chèn lại K là số bước lặp liên tiếp mà không cải thiện chất lượng giải pháp.
Bớc 1 (khởi tạo lời giải) Khởi tạo
Để giải bài toán, chúng tôi đã sử dụng phương pháp tìm kiếm tabu với các tham số W = 0, q = 5m và k = 50 Giá trị q này đảm bảo rằng xác suất chọn một đỉnh từ mỗi lộ trình đạt ít nhất 90%.
Bước 2 (cải tiến lời giải): Bắt đầu từ lời giải tốt nhất đạt được ở bước 1, thực hiện tìm kiếm tabu với W V v= \{ 0 }, q 5m= và k 50n Bước 3 (tăng cường): Dựa trên lời giải tốt nhất từ bước 2, tiến hành tìm kiếm tabu với kP, trong đó W là tập | V | / 2 đỉnh thường xuyên được di chuyển nhất trong bước 1 và bước 2, và q W=| |.
Các nghiên cứu thực nghiệm cho thấy Taburoute tạo ra kết quả chất lượng cao và thường cung cấp các giải pháp được công nhận là tối ưu.
Thuật toán tìm kiếm tabu của Tailard có những đặc điểm nổi bật như khoảng cách tabu ngẫu nhiên và đa dạng, với miền lời giải láng giềng được xác định bởi cơ chế phát sinh λ-interchange Thay vì thực hiện các bước chèn phức tạp với GENI, thuật toán này sử dụng các bước chèn chuẩn, giúp thực hiện nhanh hơn và duy trì tính khả thi Ngoài ra, các lộ trình độc lập được tối ưu hóa thông qua thuật toán tối ưu của Volgenant và Jonker.
Một đặc trưng mới của thuật toán Taillard là khả năng phân tách bài toán chính thành các bài toán con Trong bối cảnh hai chiều, các bài toán con này được hình thành bằng cách phân vùng các đỉnh quanh kho, với các sector có tâm tại vị trí kho Mỗi bài toán con có thể được giải quyết độc lập, điều này đặc biệt hiệu quả khi kho nằm tại tâm và các đỉnh được phân bố đều trên mặt phẳng Phương pháp phân tách này rất phù hợp với kỹ thuật song song, cho phép các bài toán con được giải quyết phân tán giữa các bộ xử lý khác nhau.
Thuật toán của Xu và Kelly
Xu và Kelly đã phát triển một cấu trúc miền các lời giải láng giềng phức tạp hơn, kết hợp với hai thuật toán tìm kiếm tabu trước đó Họ thực hiện việc trao đổi các đỉnh giữa hai lộ trình, nhằm định vị lại toàn cục một số đỉnh vào các lộ trình khác Chiến lược này nhằm tối ưu hóa việc phân bổ các đỉnh vào lộ trình, với các phương pháp xấp xỉ được áp dụng để tính toán chi phí loại bỏ, chi phí chèn và trọng tải của xe Tối ưu hóa lộ trình được thực hiện thông qua các phương pháp trao đổi 3-opt (Lin) và tìm kiếm tabu cải tiến Thuật toán này được điều khiển bởi một số tham số, được điều chỉnh động trong quá trình tìm kiếm Một số lời giải tốt nhất được lưu lại và sử dụng để khởi động lại quá trình tìm kiếm với các giá trị tham số mới Mặc dù thuật toán đã cung cấp nhiều lời giải tốt nhất trong các trường hợp chuẩn, nhưng nó không hiệu quả bằng một số tìm kiếm tabu khác, có xu hướng yêu cầu tính toán lớn và việc điều chỉnh tham số có thể gặp khó khăn.
Thuật toán di truyền (GA)
Thuật toán di truyền (GA) là một phương pháp tìm kiếm toàn cục ngẫu nhiên, được phát triển để giải quyết các bài toán bằng cách mô phỏng các quá trình tiến hóa tự nhiên Kỹ thuật này lần đầu tiên được giới thiệu bởi Holland cách đây 10 năm.
Một phần lời giải mới thuần túy là phương pháp giải bài toán sử dụng thông tin heuristic về miền lời giải Cụ thể, một thuật toán di truyền (GA) tiến hóa các chuỗi bit, hay nhiễm sắc thể, với mỗi lời giải được mã hóa bởi một nhiễm sắc thể cho trường hợp cụ thể Lời giải được cải tiến thông qua các thao tác tiến hóa, bắt chước hiện tượng tự nhiên như lai ghép và đột biến.
2.4.3.1 Thuật toán di truyền đơn giản
Bắt đầu từ một quần thể nhiễm sắc thể ngẫu nhiên X 1 ={x 1 1 , ,x 1 n }, một thuật toán di truyền (GA) đơn giản được thực hiện qua các bước lặp t=1, 2, , T Trong mỗi bước lặp, áp dụng các bước từ 1 đến 3, với điều kiện k k ≤ N/2.
Bớc 1 (sinh sản) Chọn hai nhiễm sắc thể bố - mẹ từ X t
Bớc 2 (lai) Hai con đợc sinh ra từ hai nhiểm sắc thể bố mẹ bởi thao tác lai- ghép
Bớc 3 (đột biến) áp dụng một biến đổi ngẫu nhiên cho con cái (với một ác suất x nhá)
Bớc 4 (chọn lọc và thay thế) X t+1 đợc tạo ra từ X t bằng cách loại bỏ 2klời giải xấu nhất trong X t và thay thế chúng bởi 2kcon mới.
2.4.3.2 ứng dụng thuật toán di truyền cho các bài toán sắp xếp chuỗi
Phương pháp tiếp cận cổ điển không phù hợp cho các bài toán sắp xếp, đặc biệt là trong bài toán TSP hoặc VRP Một chuỗi bit biểu diễn lời giải không tự nhiên và thường được thay thế bằng chuỗi các số nguyên, trong đó mỗi số nguyên đại diện cho một đỉnh cụ thể Vị trí của mỗi số nguyên trong chuỗi thể hiện thứ tự trên lộ trình, với đỉnh cuối được nối với đỉnh đầu Các thao tác lai và đột biến được thực hiện dựa trên thứ tự để tạo ra các chuỗi con mới Ví dụ, thao tác lai một điểm trên hai lộ trình bố mẹ 0, 1, 2, 3, 4, 5 và 0, 4, 3, 2, 5, 1 được minh họa, trong đó đỉnh 0 đại diện cho kho chứa; các chuỗi con từ Parent2 được bôi đậm, và hai con được tạo ra bằng cách trao đổi các chuỗi con sau một điểm cắt ngẫu nhiên.
Lai theo thứ tự (XO) là một thao tác quan trọng trong quá trình lai ghép, được minh họa trong Hình 2.11 (Oliver, Smith, và Holland) Phương pháp này bắt đầu bằng việc chọn hai điểm cắt ngẫu nhiên trên chuỗi của Parent1, từ đó xác định chuỗi con cho con cái Ví dụ, nếu các điểm cắt được chọn là vị trí thứ 3 và thứ 5, các vị trí còn lại sẽ được lấp kín bằng các đỉnh từ Parent2 theo thứ tự, nhằm tránh trùng lặp Con cái thứ hai có thể được tạo ra bằng cách đảo ngược vai trò của hai chuỗi cha mẹ Thao tác XO giúp con cái kế thừa thứ tự các đỉnh từ chuỗi cha mẹ, trong khi cũng có những phương pháp lai khác tập trung vào việc duy trì vị trí của các đỉnh hoặc các cạnh theo giải pháp của cha mẹ (Golberg và Lingle; Whitley, Starkweather, và Fuquay).
Hình 2.11 Lai ghép theo thứ tự và - -
Phép đột biến RAR (remove and reinsert) là một thao tác trong đó một hoặc hai đỉnh được di chuyển đến các vị trí khác trên chuỗi Hình 2.12 minh họa quá trình này, trong đó đỉnh 2 được chọn ngẫu nhiên và di chuyển từ vị trí thứ 3 đến vị trí thứ 5, đồng thời một số đỉnh tương ứng cũng cần phải được dịch chuyển.
Thao tác đột biến là bước thứ hai trong quá trình biến đổi lời giải với xác suất nhỏ, nhưng không mang lại kết quả cạnh tranh Để tối ưu hóa thuật toán di truyền, thường kết hợp với phương pháp tìm kiếm cục bộ hoặc giảm cục bộ Phương pháp tìm kiếm cục bộ có thể được coi là một thao tác đột biến hiệu quả, được áp dụng cho mỗi con cái với xác suất nhỏ Hơn nữa, cách tiếp cận này cũng có thể được xem như một phương pháp tìm kiếm cục bộ với nhiều điểm bắt đầu, được hình thành từ mẫu không gian tìm kiếm do thuật toán di truyền cung cấp.
2.4.3.3 ứng dụng thuật toán di truyền cho bài toán VRP
Trong giải thuật di truyền, bài toán VRP được giải quyết thông qua nhiều lộ trình, tương ứng với một mạng lưới mở rộng chứa nhiều bản sao của kho Mỗi bản sao kho hoạt động như một thiết bị chia tách giữa hai lộ trình, tối ưu hóa quá trình phân phối.
Dữ liệu Offspring1: 0 2 5 3 4 1 trong hình 2.1 tương ứng với một giải pháp cho bài toán VRP với ba lộ trình Lộ trình đầu tiên bao gồm các đỉnh 1 và 2, lộ trình thứ hai chứa đỉnh 3 và 4, trong khi lộ trình cuối cùng chỉ có đỉnh 5.
Hình 2.13: Biểu diễn lời giải VRP
Thao tác lai ghép theo thứ tự, được biết đến qua phương pháp PMX (Goldberg và Lingle), cùng với thao tác đột biến RAR đã được điều chỉnh cho phù hợp với biểu diễn của lời giải rộng Van Dreedam đã áp dụng một thao tác giảm cục bộ dựa trên bốn kiểu trao đổi khác nhau, chỉ thực hiện trên lời giải tốt nhất trong quần thể hiện tại Qua 15 bài toán kiểm tra với 100 đỉnh, trong đó có sáu trường hợp đầu tiên cho CVRP, tác giả đã chứng minh rằng thao tác giảm cục bộ có tác động tích cực đến hiệu năng của giải pháp.
GA, toán tử đột biến, đã được thay thế bằng phương pháp tìm kiếm cục bộ 2-opt (Croes, Lin), với xác suất đột biến là 0.15 Thuật toán này đã được kiểm tra trên các bài toán thử nghiệm của Christofides, Mingozzi và Toth Kết quả cho thấy GA tỏ ra tốt hơn so với heuristic của Clarke và Wright, nhưng kém hơn so với các heuristic xây dựng đơn giản kết hợp với các thủ tục cải tiến.
GA có chi phí tính toán cao hơn so với các phương pháp cạnh tranh Thuật toán di truyền cho VRP vẫn chưa được phát triển một cách đầy đủ Phần lớn nghiên cứu về thuật toán di truyền chủ yếu tập trung vào bài toán du lịch salesman (TSP) hoặc các biến thể của VRP với các hạn chế về thời gian.
Thuật toán bầy kiến (AS)
Thuật toán bầy kiến được phát triển từ hành vi tìm kiếm thức ăn của bầy kiến trong tự nhiên Khi tìm kiếm thức ăn, kiến đánh dấu đường đi bằng pheromone, một chất hóa học hấp dẫn các con kiến khác Số lượng pheromone được đặt lên mỗi đường dẫn phụ thuộc vào độ dài của đường và chất lượng nguồn thức ăn Theo thời gian, những đường dẫn đến nguồn thức ăn hấp dẫn hơn, gần tổ và dồi dào hơn, sẽ được lui tới nhiều hơn và được đánh dấu bằng lượng pheromone lớn hơn Quá trình này tạo ra một phương thức hiệu quả để các bầy kiến thu thập thức ăn.
Colorni, Dorigo và Maniezzo đã phát triển một lớp metaheuristic mới để giải quyết các bài toán tổ hợp, dựa trên sự tương ứng giữa bầy kiến nhân tạo và bầy kiến thực tế trong việc khám phá môi trường Giá trị hàm mục tiêu được kết hợp với chất lượng nguồn thức ăn và được ghi nhớ thông qua vệt pheromone Để minh họa, chúng ta sẽ xem xét một AS đơn giản cho bài toán TSP, bài toán đầu tiên của các tác giả Mỗi cặp (v i , v j ) được kết hợp với hai giá trị: n ij (số nghịch đảo chiều dài cạnh) và vệt pheromone Γ ij, được cập nhật động Trong mỗi bước lặp, những con kiến nhân tạo bắt đầu từ một đỉnh của đồ thị và xây dựng hành trình mới bằng cách sử dụng heuristic láng giềng gần nhất Các thành phố gần được chọn dựa trên các cạnh có giá trị pheromone cao Cuối mỗi bước lặp, giá trị pheromone được cập nhật, trong đó một phần nhỏ pheromone cũ sẽ bị bay hơi.
Trong quá trình lặp này, pheromone mới sẽ được thêm vào các cạnh của hành trình đã được xây dựng Nếu cạnh (v_i, v_j) được sử dụng bởi kiến k và chiều dài của hành trình do kiến này tạo ra là L_k, thì lượng pheromone trên cạnh đó sẽ được tăng lên theo công thức ∆_k ij = 1/L_k Giá trị pheromone cho cạnh (G v_i, v_j) sẽ được cập nhật tương ứng.
Quá trình xây dựng N lộ trình và cập nhật vệt được thực hiện qua một số lần lặp cố định, trong đó ρ đại diện cho số lượng các con kiến Quy tắc tham số bay hơi (1-ρ) được áp dụng để tránh thu thập những lời giải chất lượng kém trong các bước lặp đầu tiên, đồng thời đảm bảo điều kiện tìm kiếm không quá mạnh ở các giai đoạn sau của thuật toán.
Hiện nay, việc ứng dụng thuật toán bầy kiến vào bài toán VRP vẫn còn hạn chế Kawamura đã giới thiệu một biến thể lai phức tạp của AS, kết hợp các thủ tục cải tiến 2 opt và quy tắc chấp nhận theo xác suất của quá trình mô phỏng luyện kim, cho giải pháp tối ưu cho 30 và 60 khách hàng Bullnheimer, Hartl, và Strauss đã phát triển một hệ thống bầy kiến lai, trong đó mỗi lộ trình được cải tiến bằng heuristic 2 opt trước khi cập nhật vệt, đồng thời sử dụng trọng tải và khoảng cách tiết kiệm trong việc chọn đỉnh tiếp theo Trong nghiên cứu thứ hai, họ cải tiến thuật toán bằng cách loại bỏ thuật ngữ trọng tải trong quy tắc chọn đỉnh, chỉ xem xét N/4 hàng xóm gần nhất khi chọn khách hàng, và chỉ sử dụng năm lời giải tốt nhất trong mỗi bước lặp để cập nhật vệt, với pheromone được đặt có trọng số tương ứng với vị trí của lời giải.
Những thay đổi này đã đem lại thời thời gian chạy ngắn hơn và lời giải đợc cải thiện.
Mạng nơron
Mạng nơron là mô hình tính toán bao gồm các đơn vị liên kết với nhau qua trọng số, tương tự như các nơron trong não người Tín hiệu được truyền từ đơn vị này sang đơn vị khác qua các kết nối, với trọng số điều chỉnh sự tương tác Mạng nơron nhân tạo có khả năng học hỏi từ trải nghiệm và rút ra các khái niệm tổng quát từ ví dụ cụ thể thông qua việc điều chỉnh trọng số Ban đầu, các mô hình này được phát triển cho các nhiệm vụ trí tuệ con người khi tính toán truyền thống không đủ khả năng, giúp hiểu và xử lý ngôn ngữ Gần đây, mạng nơron cũng được áp dụng cho các bài toán tổ hợp, với những người tiên phong như Hopfield và Tank.
Giải bài toán TSP đã được nghiên cứu qua các mô hình như mạng Hopfield-Tank, mạng đàn hồi (EN) của Durbin và Willshaw, cùng sơ đồ tự tổ chức (SOM) của Kohonen Mặc dù các mô hình EN và SOM khác biệt so với mạng nơron cổ điển, nhưng chúng đã chứng minh hiệu quả vượt trội hơn so với mô hình Hopfield-Tank trong việc giải quyết TSP Tuy nhiên, cả hai phương pháp này vẫn chưa thể cạnh tranh với các thuật toán metaheuristic khác.
Mạng đàn hồi (EN) và sơ đồ tự quản lý (SOM) sử dụng các khung biến đổi mẫu để tự điều chỉnh đến vòng tròn đỉnh nhằm giải quyết bài toán TSP Trong đó, các hình tròn trắng đại diện cho các đỉnh và hình tròn đen là các đơn vị của mô hình, được liên kết để hình thành một vòng Bắt đầu từ hình dạng ngẫu nhiên, vị trí của mỗi đơn vị trên vòng sẽ được điều chỉnh cho đến khi ít nhất một đơn vị gần với một đỉnh Mỗi đỉnh cuối cùng sẽ được gán cho đơn vị gần nhất, qua đó xác định thứ tự của các đỉnh trên hành trình TSP Mặc dù EN và SOM thực hiện quá trình tương tự, chúng sử dụng các cơ chế khác nhau để điều khiển sự di chuyển của các đơn vị hướng đến các đỉnh.
Các khung biến đổi mẫu có thể áp dụng cho các bài toán hình học như TSP, nhưng không được thiết kế để điều khiển các giới hạn bổ sung, trọng tải và thời gian cực đại của lộ trình, điều này thường gây gián đoạn cho các bài toán hình học tự nhiên Gần đây, một số nghiên cứu đã phát triển cho VRP, chủ yếu dựa vào các biến thể của SOM VRP có thể được khái quát từ các mô hình của TSP bằng cách sử dụng nhiều khung biến đổi mẫu, mỗi khung cho một lộ trình Các mô hình này thường áp dụng với số lượng vòng tăng dần cho đến khi tìm ra một lời giải khả thi Tuy nhiên, sự cạnh tranh giữa các vòng khi có các đỉnh dùng chung đã xuất hiện, và Ghaziri đã đề xuất một thủ tục cho CVRP nhằm giải quyết vấn đề này.
Bớc 1: (khoanh tròn vùng cạnh tranh và di trú) Lặp lại cho đến khi mỗi đỉnh đều có một đơn vị đủ gần
1.1 Xét đỉnh tiếp theo (khi đỉnh trớc đó đã đợc khoanh tròn) và xem nó nh đỉnh hiện tại
1.2 Gán một xác suất chọn cho mỗi vòng
1.3 Chọn một vòng theo xác suất phân phối đã đợc định nghĩa trong b ớc 1.2
1.4 Thử gán đỉnh hiện tại với một đơn vị gần nhất trên vòng đ ợc chọn và di chuyển đơn vị này (cũng nh một số hàng xóm của nó trên vòng) hớng về đỉnh hiện tại
Bớc 2 (gán đỉnh) Gán cố định mỗi đỉnh cho một đơn vị gần nhất để sinh ra một lời giải
Xác suất được điều chỉnh tự động cho mỗi vòng bắt đầu từ khoảng cách giữa đỉnh hiện tại và đơn vị gần nhất Khi các vòng không thể điều chỉnh theo đỉnh hiện tại mà không vi phạm ràng buộc về trọng tải, khả năng được chọn của chúng sẽ giảm Chỉ những vòng khả thi với xác suất đáng kể mới được lựa chọn Ghaziri đã mở rộng mô hình này để tập trung vào VRP với giới hạn thời gian cực đại, thay đổi xác suất phân phối trên các vòng Kết quả từ các thử nghiệm của Christofides, Mingozzi và Toth cho thấy mô hình tạo ra các giải pháp chất lượng tốt, nhưng không cạnh tranh được với các metaheuristic khác như tìm kiếm tabu.
Hình 2.14: Quá trình mở rộng của một khung biến đổi mẫu trong (a), (b), (c) và thu đợc lời giải cuối cùng (d) trong thuật toánmạng nơron
Tổng quan về thuật toán di truyền
Các tham số của thuật toán di truyền
Kích thước quần thể là tham số quan trọng cho biết số lượng cá thể trong một thế hệ Khi kích thước quần thể quá lớn, sự tiến hóa có thể bị phân ly, dẫn đến việc các cá thể ưu việt không truyền đạt được đặc tính nổi trội của chúng Ngược lại, nếu kích thước quần thể quá nhỏ, quá trình tiến hóa sẽ diễn ra nhanh chóng và có thể dẫn đến kết quả không mong muốn.
Số thế hệ, hay còn gọi là số bước lặp của thuật toán, là một tham số quan trọng ảnh hưởng đến hiệu quả của thuật toán di truyền Nếu số thế hệ quá nhỏ, thuật toán có thể chưa tìm ra lời giải tối ưu.
Xác suất lai ghép là chỉ số phản ánh tần suất thực hiện quá trình lai ghép trong quần thể Nếu không có lai ghép, cá thể con sẽ là bản sao của thế hệ "bố-mẹ" Ngược lại, khi xác suất lai ghép đạt 100%, tất cả các cá thể trong quần thể hiện tại đều sẽ được lai ghép.
Xác suất đột biến : là tham số cho biết tần suất đột biến của nhiễm sắc thể con cái
Nếu không có đột biến, thế hệ con được tạo ra ngay sau giai đoạn lai ghép sẽ không bị biến đổi Ngược lại, một hoặc một số phần trong nhiễm sắc thể có thể bị biến đổi Toán tử di truyền này giúp ngăn chặn thuật toán di truyền tối ưu hóa cục bộ Tuy nhiên, nếu xác suất đột biến quá cao, quần thể sẽ bị phân li ngược lại, còn nếu xác suất đột biến quá nhỏ, quá trình đột biến có thể sẽ không xảy ra.
Các toán tử di truyền
Trong thuật toán di truyền, mỗi giải pháp được biểu diễn dưới dạng nhiễm sắc thể, với cách mã hóa khác nhau tùy thuộc vào đặc thù của từng bài toán Các phương pháp mã hóa phổ biến bao gồm mã hóa nhị phân, mã hóa hoán vị, mã hóa giá trị và mã hóa theo cấu trúc cây nhị phân.
Quá trình chọn lọc cá thể trong quần thể hiện tại nhằm thực hiện lai ghép và đột biến dựa trên giá trị thích nghi của các nhiễm sắc thể Những nhiễm sắc thể có giá trị thích nghi cao hơn sẽ có khả năng được chọn nhiều hơn Hai phương pháp chọn lọc phổ biến hiện nay là chọn lọc theo bánh xe roulette và chọn lọc cạnh tranh.
Lai ghép là quá trình tạo ra nhiễm sắc thể mới từ nhiễm sắc thể bố - mẹ bằng cách kết hợp các đoạn gen của chúng Quá trình này diễn ra bằng cách phát sinh ngẫu nhiên một số r trong khoảng [0, 1] cho mỗi nhiễm sắc thể trong quần thể hiện tại Nếu giá trị r nhỏ hơn xác suất lai p c, nhiễm sắc thể đó sẽ được chọn để thực hiện thao tác lai ghép.
Ví dụ: Lai ghép một điểm cắt:
Đột biến là hiện tượng biến đổi gen của nhiễm sắc thể, giúp mở rộng không gian lời giải cho bài toán Sau khi xảy ra đột biến, nhiễm sắc thể con sẽ mang một số tính trạng mới không có trong mã di truyền của nhiễm sắc thể bố mẹ Xác suất xảy ra đột biến (p m) thường nhỏ hơn nhiều so với xác suất lai (p c) Quá trình đột biến diễn ra như sau: với mỗi nhiễm sắc thể mới sinh ra sau quá trình lai ghép, một số ngẫu nhiên r trong khoảng [0,1] được phát sinh; nếu r nhỏ hơn p m, nhiễm sắc thể đó sẽ được chọn để thực hiện thao tác đột biến.
Ví dụ: Đột biến một nhiễm sắc thể đợc mã hóa bởi một chuỗi bit nhị phân
Mô hình thuật toán di truyền
Từ các khái niệm đã đa ở trên, thuật toán di truyền có thể đợc trình bày tổng quát lại nh sau:
Khởi tạo quần thể ban đầu P(t);
While(điều kiện cha thoả) do
Tính giá trị thích nghi cho các cá thể thuộc P t( ) ChọnP' t( ) từ ( )P t
Lai ghép các cá thể trong P' t( ) sinh ra O 1( )t §ét biÕn O 1(t) sinh ra O 2( )t
Thay thế các cá thể xấu trong P t( ) bởi O 2
Hình 3.1 Sơ đồ tổng quát của thuật toán di truyền
Các mô hình song song hoá giải thuật di truyền
Mô hình Master-slave
Mô hình Master-Slave được nghiên cứu lần đầu bởi Bethke vào năm 1976 và Grefenstette vào năm 1981 Trong mô hình đồng bộ này, nhiệm vụ tính toán giá trị thích nghi cho N cá thể trong quần thể hiện tại được thực hiện song song giữa một số bộ xử lý khách Các toán tử di truyền như lai và đột biến đối với quần thể hiện tại được thực hiện và lưu trữ trong bộ xử lý chủ.
Hình 3.2: Mô hình Master-slave
Mô hình này tương tự như thuật toán GA truyền thống, thích hợp cho các bài toán với hàm thích nghi phức tạp và mang lại hiệu suất tốt hơn Tuy nhiên, nếu một số bộ xử lý khách hoàn thành đánh giá nhanh hơn các bộ xử lý khác, mô hình sẽ phải chờ đợi lâu hơn để tất cả hoàn tất trước khi tiếp tục tính toán Hơn nữa, quá trình xử lý cũng phụ thuộc nhiều vào bộ xử lý chủ Do đó, Grefenstette đã giới thiệu mô hình Master-slave bán đồng bộ để cải thiện hiệu suất.
Bộ xử lý chủ Các bộ xử lý khách
Khi một bộ xử lý khách hoàn tất đánh giá một cá thể, nó sẽ ngay lập tức tiếp tục với cá thể tiếp theo mà không cần chờ đợi các bộ xử lý khác, giúp tăng tốc độ thực hiện so với mô hình trước Tuy nhiên, mô hình này vẫn phụ thuộc vào bộ xử lý chủ Để cải thiện, Grefenstette đã phát triển mô hình Master-slave không đồng bộ, trong đó quần thể được lưu trữ trong bộ nhớ chung, cho phép k bộ xử lý khách truy cập Các toán tử di truyền được thực hiện song song và độc lập trên mỗi bộ xử lý Mô hình này sử dụng cơ chế chọn lọc cạnh tranh, trong đó cá thể tốt nhất được chọn từ một nhóm cá thể ngẫu nhiên, thường là từ hai cá thể, để phục vụ cho quá trình lai ghép tiếp theo.
Bớc 1: Khởi tạo quần thể ban đầu và tính giá trị giá trị thích nghi cho các cá thể trong quÇn thÓ ban ®Çu
Bớc 2: (thực hiện song song trên n bộ xử lý): Với mỗi bộ xử lý i
- Chọn hai cá thể bố mẹ parent1 và parent2 (theo cơ chế chọn lọc cạnh tranh)
- Thực hiện các toán tử di truyền (laighép và đột biến) đối với hai cá thể này
Bớc 3: Thay thế các cá thể xấu trong quần thể hiện tại bởi cá thể con mới đợc sinh ra
Bớc 4: Nế cha gặp điều kiện dừng thì quay lại bớc 2 ngợc lại thì dừng lại.u
Mô hình Island
Trong tự nhiên, con người là một quần thể lớn, trong khi tự nhiên bao gồm nhiều quần thể khác nhau phát triển độc lập Một số cá thể có khả năng di trú giữa các miền, cho phép các quần thể con trao đổi vật chất di truyền Mô hình này cũng được áp dụng trong thuật toán di truyền trên kiến trúc máy tính song song với bộ nhớ phân tán, nơi mỗi quần thể con được lưu trữ trên một bộ xử lý và các toán tử di truyền thực hiện song song Mô hình này, được gọi là mô hình Island, được giới thiệu bởi Pettey, Leuze và Grefenstette, trong đó mỗi Island tương ứng với một quần thể con trên mỗi bộ xử lý.
Mô hình Island cho phép di trú giữa các quần thể con trên mỗi bộ xử lý, giúp khai thác sự đa dạng gen Khi một cá thể di trú tới có hiệu suất tốt hơn cá thể kém nhất trong quần thể, nó sẽ được đưa vào quần thể đó Những đặc trưng chính của mô hình Island bao gồm khả năng trao đổi gen giữa các quần thể và cải thiện hiệu suất tổng thể của hệ thống.
Chọn cá thể di trú là bước quan trọng trong quá trình di trú, nơi chúng ta xác định cá thể tốt nhất để thực hiện di trú Mỗi cá thể chỉ được di trú một lần từ cùng một bộ xử lý, và thuật toán cho phép di trú cho các cá thể con trong khi hạn chế sự di trú trực tiếp của các cá thể bố mẹ.
- Số lợng di trú: là số các cá thể đợc thực hiện di trú trong mô hình, đợc xác định khi có sự di trú xảy ra
Here is the rewritten paragraph:Truyền thông là phương pháp kết nối giữa các quần thể con, cho phép chúng trao đổi thông tin và thực hiện các chức năng cần thiết Ví dụ, trong mô hình Island, mỗi Island được liên kết tới hai láng giềng, như hình 3.3 minh họa Theo đó, P0 chỉ có thể gửi các cá thể của nó tới P1 và P2 và nhận các cá thể được di trú tới từ P4 và P5, nhờ đó đảm bảo sự kết nối và trao đổi thông tin hiệu quả giữa các quần thể con.
Tỷ lệ di trú là yếu tố quan trọng quyết định số lượng cá thể được di trú, ảnh hưởng lớn đến chất lượng của thuật toán Di trú với số lượng lớn có thể làm mất đi sự khác biệt cục bộ giữa các quần thể con, từ đó phá hủy tính đa dạng toàn cầu Ngược lại, nếu di trú không đủ thường xuyên, điều này có thể dẫn đến sự hội tụ non của các quần thể con.
Quy tắc thay thế các cá thể di trú quy định rằng nếu các cá thể di trú có khả năng tốt hơn các cá thể xấu nhất hiện có tại đảo, chúng sẽ được thay thế cho những cá thể này.
Thuật toán di truyền song song theo mô hình Insland trên N bộ xử lý đợc thực hiện nh sau:
Bước đầu tiên là tạo ra một quần thể ứng viên ngẫu nhiên với các lời giải ban đầu, sau đó phân tách quần thể này thành N quần thể con khác nhau, mỗi quần thể sẽ được xử lý trên một bộ xử lý riêng biệt.
Bớc 2 (thực hiện song song trên N bộ xử lý) ặp lại L cho đến khi gặp điều kiện kết thóc
Với mỗi bộ xử lý i
- Thực hiện các toán tử di truyền (chọn lọc, lai ghép, đột biến, ) trên quần thể con Pop i =(i 1, ,N)
Quá trình di trú bao gồm việc gửi một cá thể con tốt nhất đến láng giềng, nhận một cá thể con tốt nhất từ láng giềng và thay thế cá thể này bằng một cá thể trong quần thể hiện tại, có thể là cá thể kém nhất hoặc được chọn ngẫu nhiên.
Mô hình Cellular
Trong mô hình này, các bộ xử lý được sắp xếp theo sơ đồ lưới, với các cạnh cuộn tròn để các đỉnh trên một cạnh liền kề với các đỉnh trên các cạnh đối diện Mỗi bộ xử lý, được coi như một ô, gán với một cá thể và chỉ truyền thông với các láng giềng trực tiếp Quá trình truyền thông diễn ra trong giai đoạn chọn ô lọc, và trong thao tác lai ghép, một cá thể chỉ có thể chọn một trong các cá thể láng giềng trực tiếp theo các hướng đông, tây, nam, bắc.
Mô hình này cho phép chọn lựa cá thể tốt nhất hoặc thực hiện chọn ngẫu nhiên từ các láng giềng, với mỗi con cái sinh ra có khả năng thay thế cá thể hiện tại trong ô phụ thuộc vào sơ đồ thay thế được áp dụng Điều này dẫn đến việc phân tán hoàn toàn mà không cần sự can thiệp của một điều khiển trung tâm nào.
Hình 3.4 minh họa mô hình Cellular, trong đó màu sắc của các ô thể hiện sự tương đồng về vật chất di truyền, tạo nên các đảo (Island) bị cô lập bởi khoảng cách Các mũi tên chỉ ra rằng lưới được cuộn tròn thành hình trụ Bên phải hình là cấu trúc vùng lân cận của một ô.
Mặc dù mô hình này không sử dụng các Island, nhưng nó vẫn có thể đạt được hiệu quả tương tự Giả sử lưới có kích thước 64x64 và quá trình lai ghép bị giới hạn bởi các bộ xử lý liền kề Nếu một vùng lân cận có 30 cách di chuyển tới một vùng lân cận khác, thì hai vùng lân cận này có thể được xem như hai quần thể con trong mô hình Island (Wright, 1932; Muhlenbein, 1991; Gorges-Schleuter, 1991).
Thuật toán di truyền song song theo mô hình Cellular đợc thực hiện nh sau:
Bước đầu tiên là tạo ra một quần thể các lời giải ứng viên ban đầu, trong đó mỗi cá thể được gán vào một ô trong hệ thống lưới Sau đó, cần tính toán giá trị thích nghi của từng cá thể trong từng ô để đánh giá hiệu quả của chúng.
Bớc 2 (thực hiện song song trên n bộ xử lý) lặp lại cho đến khi gặp điều kiện kết : thóc
Với mỗi ô (bộ xử lý) p i thực hiện các bớc sau:
- Chọn một cá thể từ láng giềngp j của p i (thờng là láng giềng tốt nhất)
- Thực hiện các toán tử di truyền (lai ghép, đột biến) đối với p i và p j
Lu ý: Trong mô hình này thì kích thớc của quần thể phụ thuộc vào số lợng của bộ xử lý đợc sử dụng
Thuật toán di truyền song song CHO BàI
Giới thiệu
VRPTW là bài toán tối ưu hoá tổ hợp quan trọng, phát triển từ bài toán VRP Việc áp dụng giải thuật di truyền để giải quyết VRPTW đã thu hút nhiều sự chú ý trong những năm gần đây Trong bài toán này, một nhóm phương tiện với trọng tải hạn chế được sử dụng để phục vụ khách hàng tại các vị trí khác nhau trong khung thời gian xác định, với mục tiêu giảm thiểu tổng khoảng cách di chuyển mà không vi phạm các ràng buộc về trọng tải và thời gian Sự phát triển của môi trường tính toán song song đã dẫn đến nghiên cứu về thuật toán di truyền song song cho VRPTW, nhằm nâng cao hiệu quả và giảm thời gian thực hiện (Berger và Barkaoui 2001; Alvarenga và Mateus 2007) Chương này sẽ khám phá một thuật toán di truyền song song kết hợp với phương pháp heuristic (PFIH) để giải quyết bài toán VRPTW.
Mã hóa lời giải
Mỗi lời giải cho bài toán VRPTW được biểu diễn bằng một chuỗi số nguyên, trong đó có n lộ trình tương ứng với một đường dẫn mở rộng chứa nhiều bản sao của kho Mỗi bản sao kho hoạt động như một thiết bị chia tách giữa hai lộ trình Mỗi số nguyên trong chuỗi đại diện cho một khách hàng, với 0 tương ứng với kho chứa, và vị trí của số nguyên trong chuỗi xác định thứ tự khách hàng trên lộ trình Ví dụ, chuỗi số nguyên trong hình 4.1 thể hiện một lời giải VRP với ba lộ trình.
Lộ trình đầu tiên chứa đỉnh 1 và 2, lộ trình thứ hai chứa đỉnh 3 và 4, và lộ trình cuối cùng chỉ chứa đỉnh 5
Hình 4.1: Biểu diễn lời giải của bài toán VRPTW
Khởi tạo quần thể ban đầu
Trong bài viết này, chúng ta sẽ khám phá thủ tục heuristic để khởi tạo quần thể ban đầu cho thuật toán di truyền (GA), được giới thiệu bởi Solomon (1987) và gọi là Push Forward Insertion Heuristic (PFIH) Phương pháp này, được trình bày chi tiết bởi Thamgian (1999), là một cách hiệu quả để chèn khách hàng vào các lộ trình mới, giúp nhanh chóng tạo ra một quần thể ban đầu đa dạng cho GA.
Trong lộ trình R p ={C 1, ,C m }, C 1 là khách hàng đầu tiên và C m là khách hàng cuối cùng, với thời gian đến sớm nhất e 1 và muộn nhất l m Để kiểm tra khả năng chèn khách hàng vào lộ trình, cần xem xét việc chèn khách hàng C i giữa các cạnh hiện tại và chọn cạnh có chi phí chèn thấp nhất Quá trình này bao gồm việc cộng yêu cầu của khách hàng i vào tổng trọng tải trước đó và điều chỉnh tổng thời gian đi, bao gồm thời gian chờ và phục vụ Sự thay đổi thời gian đến của khách hàng C 1 có thể ảnh hưởng đến tất cả khách hàng sau đó, vì vậy cần liên tục kiểm tra các giá trị bị đẩy lên của các khách hàng C j sau C i Giá trị này bằng 0 nếu thời gian của khách hàng trước đó không ảnh hưởng đến thời gian đến t j khi chèn C i Việc kiểm tra tính khả thi này được thực hiện cho đến khi giá trị thời gian bị đẩy lên của một khách hàng đạt 0 hoặc thời gian đến của khách hàng đó.
Trong quá trình lập lộ trình, thuật toán kiểm tra tính khả thi của tất cả khách hàng trên lộ trình nhằm đảm bảo không vượt quá khung thời gian phục vụ Trong phương pháp PFIH, lộ trình mới được hình thành bằng cách chọn một khách hàng và chèn thêm các khách hàng chưa được định hướng vào lộ trình hiện tại cho đến khi khả năng của xe bị vượt quá hoặc không thể chèn thêm khách hàng nào theo tiêu chí thời gian Đặc biệt, trong PFIH cơ bản, khách hàng đầu tiên trong mỗi lộ trình được xác định dựa trên một công thức cụ thể.
- p i là góc cực của khách hàng i
- t 0i là khoảng thời gian đi từ khách hàng itới kho
- α=0.7,β=0.1,γ=0.2 theo kinh nghiệm của Solomon
Trong FPIH mở rộng, khách hàng đầu tiên trong mỗi lộ trình được chọn ngẫu nhiên để tạo ra tính đa dạng cho quần thể ban đầu trong GA Với mỗi khách hàng j chưa được định hướng và mỗi cạnh {k j*,*} của lộ trình hiện tại, xác định khách hàng j* và cạnh có chi phí chèn nhỏ nhất, sau đó chèn khách hàng j* vào giữa cạnh {k j*,*} Quá trình này lặp lại cho đến khi không còn khách hàng nào có thể chèn vào lộ trình hiện tại, lúc đó sẽ tạo ra một lộ trình mới và tiếp tục cho đến khi tất cả khách hàng đều được định hướng Giả sử không giới hạn về số lượng xe, số xe thực tế sẽ được xác định bởi heuristic này Thuật toán PFIH thường cung cấp giải pháp khả thi tốt về số lượng xe sử dụng, với số lượng xe ban đầu là giới hạn trên cho số xe sẽ được dùng trong các giải pháp, đảm bảo tính khả thi của lời giải.
Thuật toán Push Forward Insert Heuristic
Bớc 1: Khởi tạo một lộ trình rỗng bắt đầu từ kho, r = 1
Nếu tất cả khách hàng đã được định hướng, hãy chuyển ngay đến bước 8 Nếu không, cần thực hiện các bước 3, 4, 5 và 6 để định hướng những khách hàng còn lại trong lộ trình.
Bớc 3: Chọn ngẫu nhiên một khách hàng j*
Bớc 4: Bổ sung j*vào lộ trình hiện tại và cập nhật lại trọng tải của lộ trình r
Bước 5: Đối với tất cả khách hàng chưa được định hướng và mọi cạnh {k, l} trong lộ trình hiện tại, cần tính toán chi phí chèn cho mỗi khách hàng chưa được định hướng vào giữa k và l.
Bớc 6: Chọn khách hàng cha đợc định hớng j* và cạnh { ,k* l*} có chi phí chèn nhá nhÊt
• Nếu chèn khách hàng j* vào giữa k* và l* là khả thi thì khách hàng j* đợc chèn giữa k* và l*, cập nhật lại trọng tải của lộ trình r và nhảy sang bớc 5
• Ngợc lại thì nhảy sang bớc 7
Bớc 7: Bắt đầu một lộ trình mới bắt đầu từ kho r:=r+1
Bớc 8: Tất cả các khách hàng đã đợc định hớng Đa ra kết quả.
Chọn lọc
Hàm thích nghi (fitness)
Hàm thích nghi là công cụ quan trọng để đánh giá chất lượng giải pháp trong quần thể hiện tại, với những cá thể có giá trị hàm thích nghi cao hơn sẽ có khả năng được chọn nhiều hơn trong quá trình lai ghép Hàm này thường được xây dựng dựa trên các mục tiêu của bài toán và có thể tính toán nhanh chóng, điều này rất cần thiết do đặc trưng lặp đi lặp lại của thuật toán di truyền Tốc độ thực hiện ảnh hưởng lớn đến khả năng sinh ra kết quả tốt, và đây là một trong những hạn chế chính của GA trong ứng dụng thực tế Các phương pháp chọn lọc dựa trên giá trị thích nghi của cá thể trong quá trình tiến hóa nhằm tạo ra thế hệ mới tốt hơn Do đó, việc xác định hàm thích nghi không chỉ ảnh hưởng đến chất lượng giải pháp mà còn đến hiệu năng của GA, đồng thời giúp tránh hiện tượng hội tụ cục bộ.
Một hàm thích nghi cho bài toán VRPTW có thể đợc xác định dựa trên tổng chi phí và số lộ trình trong lời giải nh sau: m i m i i i i d r d r eval f eval
- r i là số các lộ trình trong cá thể i
- r m là giới hạn dới cho số lợng xe cần thiết để phục vụ tất cả khách hàng (bằng trọng tải của xe trên tổng số khách hàng)
- d i là tổng khoảng cách của các lộ trình trong cá thể i
- d m là tổng khoảng cách phải đi của một lời giải trong quần thể ban đầu có giá trị cực đại
Các lời giải có ít lộ trình hơn và tổng khoảng cách đi ngắn hơn thì có giá trị thích nghi tốt hơn.
Chọn lọc theo bánh xe roulette
Phương pháp chọn lọc được sử dụng trong thuật toán di truyền nhằm chọn các lời giải cho quá trình lai ghép Xác suất được chọn của mỗi nhiễm sắc thể tương ứng với giá trị thích nghi của nó Nếu cá thể trong quần thể có giá trị thích nghi là \(i\), xác suất được chọn của nó sẽ tỷ lệ thuận với giá trị này.
Trong quần thể, N đại diện cho số lượng cá thể Để hình dung quá trình chọn lọc, chúng ta có thể so sánh nó với việc quay bánh xe roulette, nơi mỗi nhiễm sắc thể ứng viên được biểu diễn như một phần của bánh xe, kích thước của mỗi phần phản ánh xác suất được chọn Việc chọn N nhiễm sắc thể từ quần thể diễn ra bằng cách quay bánh xe N lần, với mỗi lần thu được một nhiễm sắc thể Điều này có nghĩa là những cá thể có giá trị thích nghi cao hơn sẽ có khả năng được chọn nhiều hơn so với những cá thể yếu.
Hình 4.2: Minh họa quá trình chọn lọc theo bánh xe roullete
Do đó, quá trình chọn lọc theo bánh xe roulette có thể đợc thực hiện nh sau
Để tính giá trị thích nghi \(f_i\) của mỗi nhiễm sắc thể trong quần thể hiện tại, cần xác định kích thước quần thể \(N\), tức là số lượng nhiễm sắc thể trong quần thể.
- Tìm tổng giá trị thích nghicủaquần thể;
- Tính xác suất chọn p i cho mỗi nhiễm sắc thể (i=1, ,popsize);
- Tính vị trí xác suất q i của mỗi nhiễm sắc thể (i=1, ,popsize)
Tiến trình chọn lọc được thực hiện thông qua việc quay bánh xe roulette N lần, trong đó mỗi lần sẽ chọn một nhiễm sắc thể từ quần thể hiện tại để đưa vào quần thể mới.
- Phát sinh ngẫu nhiên một số r (quay bánh xe roulette) trong khoảng [0,1]
- Nếu r< q 1 thì chọn nhiễm sắc thể đầu tiên; ngợc lại thì chọn nhiễm sắc thể thứ i sao cho q i-1< r