Tải bản đầy đủ - 0 (trang)
Chương III: Kết hợp thuật toán tìm kiếm lân cận biến đổi (VNS) và tìm kiếm Tabu (TS) giải bài toán điều phối xe điện với thời gian cửa sổ và đa trạm sạc

Chương III: Kết hợp thuật toán tìm kiếm lân cận biến đổi (VNS) và tìm kiếm Tabu (TS) giải bài toán điều phối xe điện với thời gian cửa sổ và đa trạm sạc

Tải bản đầy đủ - 0trang

GVHD: ThS.Bùi Thị Thủy



SVTH: Qch Thị Bích Mai - K65B



Hình 7: Tổng quan thuật toán VNS/TS cho E - VRPTW



28



GVHD: ThS.Bùi Thị Thủy



SVTH: Quách Thị Bích Mai - K65B



Trên đây là thuật toán lai giữa VNS và TB. Về cơ bản, thuật toán gồm các thành phần

sau đây:





Sau một bước tiền xử lý loại bỏ vòng cung khơng khả thi, chúng tôi tạo ra một







giải pháp ban đầu với một số lượng xe nhất định như mô tả trong mục

Các giải pháp khả thi được cho phép trong quá trình tìm kiếm và được đánh giá



dựa trên hàm chi phí xử phạt

 Chúng tôi thực hiện giai đoạn khả thi trong đó số lượng phương tiện được tăng

lên sau khi khơng tìm thấy giải pháp khả thi nào cho một số lần lặp lại nhất

định. Sau khi tìm thấy giải pháp khả thi, một lần lặp khác khác được thực hiện

để cải thiện khoảng cách di chuyển.

 Việc tìm kiếm được hướng dẫn bởi một thành phần VNS. Nó sử dụng vùng lân

cận VNS hiện tại để tạo ra nhiễu loạn ngẫu nhiên, tạo ra ngẫu nhiên, đóng vai

trò là giải pháp ban đầu cho các lần lặp Tabu của giai đoạn TS

 Các tiêu chí chấp nhận của VNS dựa trên Mô phỏng luyện kim Simulated

Annealing (SA)

2. Xác định tập khởi tạo



Chúng tôi áp dụng một bước tiền xử lý để loại bảo các cung không khả thi, tạo ra

một giải pháp ban đầu S với một số lượng xe nhất định.

Cung (v,w) kết nối các đỉnh v và w có thể được gỡ bỏ từ tập của các vòng cung có

thể nếu một trong những bất đẳng thức sau giữ:

(13)

(14)

(15)

(16)

Phương trình (13) - (15) các phạm vi về thời gian cửa sổ. Phương trình (16) vấn đề cụ

thể đề cập đến vi phạm dung lượng pin

Nếu mức tiêu thụ điện tích của việc di chuyển một vòng cung và đi đến và từ vòng

cung đó đến bất kỳ trạm hoặc kho nào cao hơn dung lượng pin, thì vòng cung này có

thể được dán nhãn là khơng khả thi.

Các nghiên cứu số cho thấy bước tiền xử lý này có thể giảm mạnh số lượng cung khả

thi trên các trường hợp thử nghiệm E - VRPTW.



29



GVHD: ThS.Bùi Thị Thủy









SVTH: Quách Thị Bích Mai - K65B



Chọn ngẫu nhiên 1 điểm ( 1 khách )

Lặp đi lặp lại các điểm lân cận để đưa vào tuyến đường

Mục đích giảm thiểu quãng đường cho đến khi xảy ra VI PHẠM về dung lượng



pin

 VI PHẠM xảy ra : khích hoạt 1 tuyến mới ( add thêm xe )

 Khách hàng được phép thêm vào nếu : ei ≤ eu ≤ ej

3. Hàm tổng hợp chi phí



Hàm chi phí tổng qt:

,



(17)



Trong đó:















biểu thị tổng quãng đường đã đi

vi phạm tổng dung lượng

vi phạm thời gian cửa sổ

vi phạm dung lượng pin

mơ hình phạt đa dạng hóa

là các yếu tố trọng số vi phạm



Các yếu tố hình phạt được cập nhật động giữa giới hạn dưới và giới hạn trên. Để cân

bằng giữa đa dạng hóa và tăng cường, chúng được tăng theo hệ số sau khi ràng buộc

tương ứng đã bị vi phạm cho một số lần lặp nhất định và chia cho nếu thỏa mãn ràng

buộc tương ứng.

Sau đây, chúng tôi mơ tả tính tốn hiệu quả của các vi phạm ràng buộc. Đặt dãy

chứa tất cả các đỉnh của tuyến . Sau đó vi phạm cơng suất của tuyến đường có thể

được tính như sau:



Trong đó đề cập đến các thiết lập của khách hàng trong tuyến đường . Tổng hình phạt

cơng suất của giải pháp được tính bằng cách thêm các vi phạm riêng lẻ của tất cả các

tuyến đường :

Bằng cách lưu các yêu cầu về công suất tiến và lùi cho từng đỉnh (ví dụ Kindervater

and Savelsbergh 1997, Ibaraki et al. 2005), chúng tơi có thể tính tốn sự thay đổi vi

phạm cơng suất trong thời gian không đổi O(1) cho tất cả các nhà khai thác lân cận của

phương pháp Tabu.

30



GVHD: ThS.Bùi Thị Thủy



SVTH: Quách Thị Bích Mai - K65B



Để tính tốn vi phạm dung lượng pin, chúng tôi xác định hai biến sau: chứa lượng pin

cần thiết để di chuyển từ lần truy cập cuối cùng đến trạm sạc hoặc kho đến đỉnh và là

mức sạc pin cần thiết từ đến trạm sạc tiếp theo hoặc kho:



Vi phạm dung lượng pin của tuyến đường k sau đó có thể được tính bằng cách cộng

các vi phạm cá nhân tại mỗi lần truy cập vào trạm sạc và khi trở về kho:



Sử dụng các biến được trình bày, những thay đổi về vi phạm dung lượng pin có thể

được tính bằng O(1) cho tất cả các toán tử lân cận.

Các căn cứ cách tiếp cận về khái niệm thời gian đi lại, nghĩa là tính tốn độ vi phạm tại

một khách hàng mà sau một khách hàng có vi phạm thời gian cửa sổ được thực hiện

như thể một chuyến du lịch ngược thời gian để thời gian đến tính khả thi mới nhất tại

trước (vi phạm) khách hàng đã xảy ra. Bằng cách chỉ đưa ra một hình phạt trên đỉnh

đầu tiên nơi cửa sổ thời gian bị vi phạm thay vì tuyên truyền vi phạm dọc theo toàn bộ

tuyến đường, cách tiếp cận sẽ tránh việc xử phạt các chuỗi khách hàng tốt chỉ vì chúng

xảy ra sau khi một vi phạm thời gian cửa sổ. Một ưu điểm quan trọng khác của phương

pháp này là các vi phạm thời gian cửa sổ tiềm năng đối với việc di chuyển giữa các

tuyến có thể được tính bằng O(1) cho hầu hết các cấu trúc lân cận cổ điển.

Chính xác hơn, bằng cách lưu trữ các hình phạt thời gian cửa sổ tiến và lùi, có thể tính

tốn trong thời gian khơng đổi các hình phạt của thời gian cửa sổ của tuyến đường

được xây dựng từ hai tuyến đường và hoặc của một tuyến đường được xây dựng bằng

cách chèn một đỉnh v giữa hai tuyến đường và. Điều này không phải lúc nào cũng có

thể xảy ra nếu các trạm sạc xuất hiện như thời gian sạc tại trạm phụ thuộc vào mức sạc

pin,mà tự nó phụ thuộc vào quãng đường đi đến trạm sạc. Nếu tuyến đường chưa một

trạm sạc , tức là , các biến slack phải được tính tốn lại bằng cách đi qua tuyến đường

cho và tuyến đường cho . Lưu ý rằng một trạm sạc trong tuyến đường đầu tiên hoặc

đỉnh để chèn v là trạm nạp lại khơng cần phải tính tốn lại.



31



GVHD: ThS.Bùi Thị Thủy

4.



SVTH: Qch Thị Bích Mai - K65B



Thành phần VNS



Trong heuristic lai VNS / TS của chúng tôi, thành phần VNS được sử dụng chủ yếu để

đa dạng hóa việc tìm kiếm theo cách có cấu trúc. Để giải thích chức năng của VNS,

trước tiên chúng tôi phác thảo ngắn gọn một quy trình VNS tiêu chuẩn. Sau đó, chúng

tơi liệt kê các đặc điểm cụ thể của việc thực hiện của chúng tơi.

Một thuật tốn VNS chung hoạt động như sau: Cho một tập hợp các cấu trúc lân

cận được xác định trước và giải pháp tốt nhất hiện tại S, VNS tạo ngẫu nhiên một giải

pháp lân cận S’ bằng cấu trúc lân cận . Tiếp theo, một tìm kiếm cục bộ tham lam được

áp dụng trên S’ để xác định mức tối thiểu cục bộ S’’. Nếu S’’ cải thiện giải pháp tốt

nhất hiện tại S, thuật toán VNS chấp nhận giải pháp S’’ và khởi động lại với vùng lân

cận và giải pháp khởi động mới S’’. Ngược lại, nếu S’’ kém hơn giải pháp tốt nhất

đương nhiệm, S’’ bị từ chối. Trong trường hợp này, VNS thực hiện di chuyển nhiễu

ngẫu nhiên theo cấu trúc vùng lân cận xa hơn tiếp theo , bắt đầu lại với S.

Trong mỗi lần lặp lại, VNS của chúng tôi thực hiện di chuyển nhiễu ngẫu nhiên

theo cấu trúc vùng lân cận được xác định trước .. Các cấu trúc lân cận của chúng ta

đều được xác định bằng phương tiện của tốn tử trao đổi tuần hồn.

Trong giai đoạn tìm kiếm cục bộ, chúng tôi cải thiện giải pháp được tạo ngẫu nhiên

S’ bằng phương pháp heuristic TS. Việc tìm kiếm dừng lại sau khi lặp lại . Di chuyển

nhiễu loạn được thêm vào danh sách Tabu chung để ngăn chặn sự đảo ngược của nó.

Sau đó, chúng tơi so sánh giải pháp tốt nhất được tìm thấy trong tìm kiếm địa phương

S’’ với giải pháp ban đầu S. Thay vì chỉ chấp nhận các giải pháp cải tiến, chúng tôi sử

dụng một tiêu chí chấp nhận được lấy cảm hứng từ SA metaheuristic.

Các giải pháp cải tiến luôn được chấp nhận, trong khi chúng tôi chấp nhận các giải

pháp xấu đi theo xác suất. Đặt f(.) biểu thị giá trị hàm mục tiêu, xác suất chấp nhận

giải pháp S’’ được tính bằng . Biến số là một hệ thống tham số, được gọi là nhiệt độ.

Khi bắt đầu tìm kiếm, nhiệt độ thường được khởi tạo ở giá trị cao , do đó các giải pháp

xấu thường được chấp nhận, giúp đa dạng hóa việc tìm kiếm. Bằng cách liên tục giảm

nhiệt độ trong q trình tìm kiếm, chỉ có các giải pháp cải tiến mới được chấp nhận.

Hàm này sử dụng tìm kiếm cục bộ và VNS cho 1 khách hàng và chèn thêm lân cận.



32



GVHD: ThS.Bùi Thị Thủy







SVTH: Quách Thị Bích Mai - K65B



Nếu VNS mới được cải thiện thì cập nhật lộ trình

Nếu khơng được cải thiện thì thực hiện chọn điều tốt nhất trong cái xấu nhất)



5. Thành phần của TS



Giai đoạn TS bắt đầu từ giải pháp S’ được tạo ra bởi sự dịch chuyển nhiễu của

thành phần VNS. Trong mỗi lần lặp, vùng lân cận hỗn hợp N(S) của TS được tạo bằng

cách áp dụng các toán tử lân cận sau trên mỗi cung trong danh sách các cung máy

phát: 2-opt*, relocate, exchange, toán tử đặc trưng cho vấn đề được gọi là stationInRe.

Mỗi di chuyển được đánh giá và di chuyển non - tabu tốt nhất được thực hiện. Một

động thái này là vượt trội nếu nó có thể giảm số lượng xe được sử dụng hoặc nếu nó

có giá trị hàm chi phí thấp hơn được tính theo Cơng thức (17).





Tốn tử 2-opt*:

- Tránh sự đảo ngược của các hướng tuyến bằng cách loại bỏ một cung từ mỗi

tuyến và kết nối lại phần đầu tiên của tuyến đầu tiên với phần thứ hai của

-



tuyến thứ hai và ngược lại.

Áp dụng 2-opt * cho các di chuyển giữa các tuyến và xác định toán tử để di

chuyển các trạm sạc, tức là, chúng tôi cho phép loại bỏ và chèn các cung







bao gồm các trạm sạc

Toán tử relocate (di chuyển):

- Loại bỏ một đỉnh khỏi một tuyến đường và chèn nó vào một tuyến đường

-



khác hoặc một vị trí khác trong cùng một tuyến đường.

Xác định cho trạm sạc lại và được áp dụng như nhà điều hành khai thác



tuyến đường trong nội bộ và liên tuyến

 Toán tử exchange (trao đổi):

- Hốn đổi vị trí của hai đỉnh

 Tốn tử stationInRe: thực hiện chèn và xóa các trạm sạc.

- Tốn tử được xác định cho tất cả các cung máy phát (v,w), trong đó v hoặc w

là trạm sạc. Đặt biểu thị tiền thân của w. Nếu cung (v,w) không phải là một

phần của giải pháp hiện tại, stationInRe thực hiện chèn. Nếu cung đã có sẵn,

một trạm sạc lại sẽ bị gỡ bỏ.



33



GVHD: ThS.Bùi Thị Thủy



SVTH: Quách Thị Bích Mai - K65B



CHƯƠNG IV: CÀI ĐẶT THỰC NGHIỆM

Trong chương này, chúng tôi cài đặt thực nghiệm dựa trên bộ dữ liệu là các đồ thị

tự sinh. Chương trình thực nghiệm được xây dựng trên ngơn ngữ C++, cài đặt các

thuật tốn tìm kiếm Tabu, tìm kiếm lân cận biến đổi và thuật tốn kết hợp hai thuật

tốn này. Các chương trình này có đầu vào là bộ dữ liệu như nhau. Kết quả thực

nghiệm được đánh giá trên giá trị của giải pháp tốt nhất và thời gian chạy chương

trình, từ đó có thể so sánh hiệu quả của các thuật toán trên.

1. Dữ liệu thực nghiệm



Dữ liệu thực nghiệm được sinh ra ngẫu nhiên từ chương trình. Số đỉnh do người

dùng tự định vị trên màn hình.

Các tham số cho đồ thị gồm: số lượng đỉnh (kho, khách hàng, trạm sạc), trọng số

giữa các nút. Ví dụ: tập dữ liệu có cấu trúc như sau:



Hình 8: Ví dụ đồ thị đầu vào của bài tốn



Trong đó, tọa độ (0,0) là kho bắt đầu, cũng là kho kết thúc tuyến đường. Mỗi một

đỉnh tương ứng là một khách hàng/ trạm sạc và có các biến tên đỉnh, tọa độ đỉnh, yêu

cầu phục vụ.

2. Chương trình thực nghiệm



34



GVHD: ThS.Bùi Thị Thủy



SVTH: Quách Thị Bích Mai - K65B



Chúng tơi chọn ngơn ngữ C++ để cài đặt chương trình.

Ngơn ngữ lập trình C++ là một ngơn ngữ lập trình hướng đối tượng(Object

Oriented Programming - OOP) được phát triển bởi Bjarne Stroustrup. Từ ở những năm

của thập niên 1990, các lập trình viên đã coi ngôn ngữ C++ là một ngôn ngữ phổ biến

và được ưa thích nhất trong việc thực hiện các chương trình lập trình.

Trong lập trình, C++ là một ngơn ngữ đã được biên dịch, vậy nên có thể sử dụng

nó trên nhiều nền tảng. Ngơn ngữ C++ có một ưu điểm là rất nhanh. Chính vì ưu điểm

này, mà C++ được coi là lựa chọn tốt nhất trong các ứng dụng mà cần đến tốc độ.

Trong đó, điển hình như các phần mềm về tài chính hoặc là các chương trình được

hoạt động trong thời gian thực.

Ngơn ngữ C++ có tính di động, được thể hiện từ việc trên một đoạn code C++ về lý

thuyết nó có thể chuyển đổi dễ dàng khi chạy ở trong Windows, Linux và Mac OS.

Theo đó, nhờ có tính năng này mà lúc viết một chương trình nào đó, sẽ khơng phải viết

lại nó nữa.

Dựa vào dữ liệu test ở phần 1, chúng tôi cài đặt kết hợp 2 thuật tốn tìm kiếm lân

cận biến đổi - VNS và thuật tốn tìm kiếm Tabu - TS để tìm lời giải cho bài tốn. Thứ

nhất, dùng VNS để thay đổi hệ thống các vùng lân cận trong khi tìm kiếm. Thứ hai, TS

dùng để kiểm sốt việc chọn lân cận cho từng giai đoạn của việc tìm kiếm.

3. Kết quả



Dựa trên dữ liệu test nói trên, chúng tơi thực hiện chạy chương trình trên với các đồ

thị lần lượt có số đỉnh là 51, 76 và 101.

Mỗi lần chạy chương trình thì kết quả chỉ ra chi phí và thời gian thực thi của mỗi

thuật tốn.

Các kết quả được minh họa ở các bảng dưới đây:



Tập dữ liệu



ST

T



Tên



Số đỉnh



1

2



E-n51-k5

E-n76-k14



51

76

35



VNS/Tabu

Thời gian

Chi phí

(giây)

718

0.093

1176

0.359



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Chương III: Kết hợp thuật toán tìm kiếm lân cận biến đổi (VNS) và tìm kiếm Tabu (TS) giải bài toán điều phối xe điện với thời gian cửa sổ và đa trạm sạc

Tải bản đầy đủ ngay(0 tr)

×