1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Khoa học máy tính: Giải thuật mô phỏng luyện thép cải tiến với quy hoạch động cho bài toán người bán hàng với ràng buộc sức chứa

79 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giải thuật mô phỏng luyện thép cải tiến với quy hoạch động cho bài toán người bán hàng với ràng buộc sức chứa
Tác giả Nguyen Quoc Huy Hoang, Le Nguyen Khanh Nam
Người hướng dẫn TS. Luong Ngoc Hoang
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Khoa học máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố TP. HCM
Định dạng
Số trang 79
Dung lượng 39,83 MB

Cấu trúc

  • 1.2 Bài toán Traveling ThiefProblem| (20)
  • 1.3 Úng dư x... Í.cế” (0)
  • Le 14 (0)
    • 2.1.3 Bitflipp ..... 2.0... ee eee 14 (31)
    • 2.2 Thuật toán cho bài toán con ISP[ (33)
    • 2.21 Phương pháp chính xác (35)
      • 2.2.2 Lin-Kernighan Heuristic|l (35)

Nội dung

Từ đó chúng em sẽ phát triển một thuật toán mới dé giải quyết TTP và đánh giá hiệu suất của thuật toán này so với các thuật toán state-of-the-art SOTA hiện nay.. + Tìm hiểu các thuật toá

Bài toán Traveling ThiefProblem|

Trong phan này, chúng em sẽ giới thiệu tổng quan hoàn cảnh, lý do ra đời của bài toán Traveling Thief Problem, từ đó đưa ra khái niệm tổng quát và ví dụ cụ thể của bài toán.

12.1 Tổng quan Để có thể mô hình hóa tốt hơn các bài toán tối ưu đa tổ hợp ở ngoài thực tế, bài toán "Traveling Thief Problem" (TTP) được dé xuất vào năm 2013 bởi Bonyadi,

Michalewicz và Barone IHỆ Bài toán là tổ hợp của 2 bài toán NP-hard nổi tiếng:

Traveling Saleman Problem (TSP) và Knapsack Problem (KP) Trong TTP, một tên trộm xuất phát từ thành phố đầu tiên, sau đó phải ghé thăm mỗi thành phố đúng một lần và quay lại thành phố mà hắn xuất phát Ở mỗi thành phố hắn có thể mang theo các vật phẩm được phân phối tại thành phố đó Những vật phẩm này có lợi nhuận và trọng lượng cụ thể Tên trộm thuê một cái túi

Chương 1 Giới thiệu 4 dùng để chứa đồ có một sức chứa nhất định (trọng lượng tối đa mà cái túi có thể chứa) Bài toán TTP chứa hai bài toán con là TSP và KP phụ thuộc lẫn nhau vì trọng lượng của các vật phẩm làm chậm tên trộm dẫn đến tên trộm sẽ di chuyển trong thời gian dài hơn, dẫn đến chỉ phí gia tăng do tên trộm phải thuê chiếc cái túi Tốc độ của tên trộm tỉ lệ nghịch với trọng lượng của cái túi mà tên trộm mang theo Mục tiêu của bài toán là tối đa hóa lợi nhuận của tên trộm có được từ tổng giá trị các vật phẩm hắn lấy đi trừ đi tiền thuê cái cái túi Sự kết hợp của 2 bài con KP và TSP với một sự phụ thuộc lẫn nhau là một van dé thú vị Việc lay các vật phẩm sao cho tối ưu sẽ phụ thuộc vào tuyến đường tên trộm đi và di chuyển sao cho tối ưu sẽ phụ thuộc vào các vật phẩm trong cái túi Do đó việc tìm lời giải cho bài toán TTP sao cho cân bằng giữa 2 bài toán TSP và KP là rất khó.

Traveling Thief Problem (TTP) được tạo ra bởi vì Bonyadi, Michalewicz và

Barone cho thấy rằng nghiên cứu và so sánh các phương pháp metaheuristics đang quá tập trung vào một số bài toán NP-hard cụ thể[4| Do đó có một khoảng cách ngày càng lớn giữa các vấn đề thực tế và các vấn đề lý thuyết. Khoảng cách ngày càng tăng do thực tế trở nên phức tạp hơn trong khi các bài toán lý thuyết vẫn giữ nguyên trong 50 năm Bài toán TTP sinh ra để thu hẹp khoảng cách này bằng cách trở thành một bài toán có hai đặc điểm quan trọng của các van dé thực tế: Nó chứa hai bài toán con và có sự phụ thuộc giữa chúng.

Trong phần này, chúng em sẽ đưa một định nghĩa cho Traveling Thief Prob- lem (TTP), như được dé xuất từ [4] Cho một tập hợp n thành phố là N =

1,2, , với thành phố 1 được chỉ định là thành phố xuất phát và một tập hợp m vật phẩm là M = 1,2, , phân phối trong các thành phố trừ thành phố đầu tiên, gán một tập con của các vật phẩm M; = 1,2, ,m; cho thành phố i. Mỗi vật phẩm k được phân bổ cho thành phố i được biểu thị là l„ ~ (pix, Wik), với hai thuộc tính: lợi nhuận p; và trọng lượng w;, Khoảng cách dj ; giữa các

Chương 1 Giới thiệu 5 thành phố i và j (i,j € N) được xác định Từ thành phố xuất phát, kẻ trộm phải thăm các thành phố còn lại mỗi thành phố đúng một lần và trở lại thành phố xuất phát Khi đi qua mỗi thành phó, kẻ trộm có thể lay các vật phẩm được phân bổ cho thành phố đó, đảm bảo rằng tổng trọng lượng của các vật phẩm tên trộm lay không vượt quá sức chứa của cái túi C Kẻ trộm di chuyển với tốc độ tỉ lệ nghịch với trọng lượng cái túi mà hắn ta mang, đạt tốc độ tối da Umax khi khụng mang theo gi cả và tốc độ tối thiểu ứmĂn khi trọng lượng cái túi bằng C Đối với mỗi đơn vị thời gian di chuyển, kẻ trộm phải trả một khoản phí thuê cái túi là R cho đến khi chu trình được hoàn thành Dựa trên các điều kiện đã nêu, kẻ trộm phải cố gắng tìm ra một chu trình và kế hoạch lay các vật phẩm phù hợp để tối ưu hóa cả lợi nhuận và chi phí.

Một biểu diễn của một giải pháp cho TTP có thể được thể hiện như sau: s Chu trình IT = (#, „),x¡ € N là một vector giữ hoán vị của tập hợp các thành phố N. © Kế hoạch lấy đồ P = (2, , Ynm;), Yik 0,1 là một vector nhị phân, với

Vik = 1 quyết định rang vật phẩm k được chon trong thành phố i, và 0 trong trường hợp ngược lại.

Mục tiêu là tìm ra một chu trình IT và một kế hoạch chon vật phẩm P dẫn đến lợi nhuận tối đa, có thể tính bằng hàm mục tiêu sau: n ` = Axixis4 Ax nx,

Z(ILP) = V0 YO picyik -—R | YO = (1.1) j—2 k=1 ¡=1 Umax — max — Uy, trong đó v = TH là một giá trị hằng số được xác định bởi các tham số được đặt trước, Wy, = ;=2 al 1 Pjk¥jk là trọng lượng hiện tại của cái túi tại thành phố x; Lợi nhuận tổng cộng được định nghĩa bằng tổng lợi nhuận của các vật phẩm được chọn trừ đi tổng chỉ phí thuê cái túi, bằng tổng thời gian kẻ trộm ghé thăm tất cả các thành phố trên chu trình IT nhân với phí thuê R.

Gia sử chúng ta có một ví dụ của bài toán TTP theo định nghĩa trên như sau, được thể hiện trên hình[1.1| © Hang số: 0 = 4,1m = 6,C =5,0max = 1, 0„¡„ = 0.1, = 0.01. e Ma trận kẻ: Biểu diễn khoảng cách giữa các thành phố

4 10 6 — ° Vật phẩm: Các cặp (pix, wx) biểu diễn cho vật phẩm lạ: lạị = (4,1), la = (1,3) , lại = (4,6) , lạ = (3,1), lạ = (7,3), lạ = (5,2).

Giả sử ta có được một lời giải cho bài toán TTP theo hình [1.1| là tập hợp của: ¢ Chu trình II = (1,2,4,3) © Kế hoạch lay đồ P = (1,0,0,1,1,0)

Gọi tx, là thời gian tên trộm di chuyển từ thành phố x sang thành phố y Ta có thể tính được giá trị của hàm mục tiêu Z từ lời giải (II, P) trên từ công thức Tên trộm bắt đầu chu trình từ thành phố 1 đến thành phố

2 với khoảng cách dj là 5 theo ma trận kể Trọng lượng chiếc túi từ thành phố 1 (W)) là 0 do tên trộm chưa lay món dé nào, do đó vận tốc tên trộm là

Ve = Umax = 1 và ta có f¿ = 5 Tại thành phố 2, tên trộm lay di Ip, dẫn đến W> = 1 và vận tốc tên trộm giảm còn v, = 0.82 Tên trộm di từ thành phố

2 sang thành phố 4 có đạ„ = 10 với vận tốc này và mat í„ = 12.20 đơn vị thời gian Tại thành phố 4, tên trộm lấy đi lạ, khối lượng cái túi hiện tại là

W, = 4 dẫn đến v, = 0.28 Tên trộm di chuyển từ thành phố 4 sang 3 với

There are N cities, each city except city 1 has k items

LO @ mi —— l;2(weight: 3, profit: 1) aN + ie ay ee

HINH 1.1: Ví dụ bài toán TTP d43 = 6 mất thời gian t43 = 21.43 Cuối cùng, tại thành phố 3 tên trộm lay đi laạ dẫn đến W3 = 5 bằng với tải trọng của cái túi C = 5 và sẽ phải di chuyển với tốc độ ứ,„;„ = 0.1 Tờn trộm quay về thành phố 1 với quóng đường dại = 9 và mất t3; = 90 Tổng kết lại thì tổng thời gian di chuyển của tên trộm là T = ty, + to4 + t43 + t3,1 = 128.62, do đó tổng chỉ phí hắn phải bỏ ra là R x T = 0.01 x 128.62 = 1.29 Tên trộm đã lay đi 3 món đồ In, 132, lạị với tổng giá trị là 14 Vậy ta sẽ có giá trị của hàm mục tiêu Z = 14 — 1.29 = 12.71.

Bitflipp 2.0 ee eee 14

Thuật toán Bitflip là một thuật toán local search, thường được sử dụng để tối ưu kết quả của các bài toán mà kết quả mục tiêu ở dang nhị phân Trong TTP thì BitFlip không được sử dụng để tối ưu chu trình (tour) như hai thuật toán local search đã được nêu ra ở phần trước, mà nó dùng để tối ưu hóa kế hoạch chọn vật phẩm (packing plan) Bởi vì kế hoạch chọn vật phẩm (packing plan) của TTP là một dãy nhị phân, với 1 là vật phẩm đó được chon, 0 là vật phẩm đó không được chọn (như đã nêu ở chương 1).

Chương 2 Hướng giải pháp hiện nay 15

HINH 2.2: Insertion (Hình bên trái là chu trình ban đầu, hình bên phải là chu trình sau khi chọn đỉnh ở vị trí thứ 5 và chèn đỉnh đó vào vị trí giữa vị trí thứ 2 và thứ 3 (tương đương chèn vào vị trí thứ 3 và các đỉnh phía sau có vị trí tăng lên một))

HÌNH 2.3: Bitflip operator (Hai hình phía trên là kế hoạch chon vật phẩm ban đầu, hai hình phía dưới lần lượt là kế hoạch chọn vật phẩm sau khi thực hiện bitflip operator vào vật phẩm có vị trí thứ 3, và thứ 5). Ý tưởng của thuật toán BitFlip là từ một giải pháp đã có (kết quả của giải pháp này có dạng là một dãy nhị phân), chọn một số trong dãy nhị phân, sau đó lật số đó lại, nghĩa là số đó là 0 thì sẽ trở thành 1, số đó là 1 thì sẽ trở thành 0

- thao tác lật bit này được gọi là bitflip operator (Hình [2.3) Sau khi thực hiện thao tác đó xong thì ta sẽ có một giải pháp lân cận (neighboring solution) Sau đó tiến hành đánh giá, so sánh và lựa chọn giải pháp tương tự như ý tưởng của hai thuật toán local search trước đó đã trình bày.

Dễ thấy một dãy nhị phân có m phần tử thì sẽ có m vị trí có thể chọn để thực hiện toán tử bitflip (bitflip operator) - tương ứng có O(m) giải pháp lân cận (neighboring solution).

Chương 2 Hướng giải pháp hiện nay 16

Khi sử dụng thuật toán BitFlip cho việc tối ưu kết quả của bài toán cái túi

(Knapsack problem) sẽ có nhiều kiểu cài đặt Trong bài báo [9] cua Faulkner va các cộng sự cũng da dé cập đến thuật toán Bitflip, trong bài báo đó thuật toán BitFlip của tác giả hoạt động như sau: Duyệt qua tất cả các giải pháp lân cận của giải pháp hiện tại (nếu vật phẩm chưa được chọn thì chuyển thành được chọn và ngược lại) Với mỗi giải pháp lân cận có được thì tiến hành đánh giá và so sánh với giải pháp hiện tại, nếu giải pháp lân cận tốt hơn giải pháp hiện tại thì tiến hành thay thế giải pháp hiện tại bằng giải pháp lân cận tốt hơn đó Cuối cùng trả về giải pháp tốt nhất có được Phương pháp của chúng em trình bày để giải quyết TTP (được trình bày ở chương 3) cũng có sử dụng

BitFlip, cách cài đặt của chúng em cũng gần giống với cách dat đặt BitFlip

[9] vừa được trình bày ở trên Nhưng khác ở chỗ, thay vì sau khi tìm được kết quả tốt nhất từ tất cả các giải pháp lân cận thì kết thúc luôn, chúng em sẽ dùng giải pháp tốt nhất vừa thu được và lặp lại thuật toán đến khi không thể tìm thấy giải pháp lân cận tốt hơn bằng một vòng lặp while (Thuật toán (2).

Thuật toán cho bài toán con ISP[

Bài toán người du lich (Traveling Saleman Problem - TSP) là một trong những bài toán được nghiên cứu mạnh mẽ nhất trong tối ưu hóa [2] Bai toán này nổi tiếng bởi vì nó dé hiểu nhưng lại khó giải quyết và nó cũng có nhiều ứng dụng như là về vận chuyển (logistic), lập lịch công việc, định hình kính viễn vọng (aiming telescopes) và nhiều ứng dụng khác Ứl- Bài toán người du lịch được định nghĩa ngắn gọn là tìm chu trình Hamilton ngắn nhất trong đồ thị. Nghĩa là tìm một hoán vị của các đỉnh trong đồ thị sao cho tổng chỉ phí của tất cả các cạnh nằm giữa hai đỉnh liên tiếp là nhỏ nhất Không gian tìm kiếm của bài toán người du lịch rất lớn, lên tới (n — 1)! (với là số lượng đỉnh trong đồ thị) Bởi vì không gian tìm kiếm lớn như vậy, nên các thuật toán tìm kiếm tuyến tính sẽ không khả thi.

Chương 2 Hướng giải pháp hiện nay 17

1: Z* + Z(ILP) > Z* là kết quả tốt nhất tìm được 2: P* + P > P* là kế hoạch chon vật phẩm tốt nhất tìm được

4: while improved do > Lap lai cho dén khi không còn cai thiện nữa

7: if l„ ¢ P then > Thuc hién bitflip operator

12: Z + Z(II,P) > Tính giá trị kết qua 13: ifZ > Z* then > Nếu giải pháp lân cận tốt hơn thì thay thé

18: if I, £ P then > Thuc hién lai bitflip operator

Chương 2 Hướng giải pháp hiện nay 18

Phương pháp chính xác

Một cách đơn giản nhất để tìm ra giải pháp tốt nhất cho bài toán người du lịch (TSP) đó chính là đánh giá tất cả các chu trình có thể xảy ra - tương đương với tat cả hoỏn vị cú thể xảy ra Trong TSP cú ứ đỉnh, vỡ thộ sẽ cú O(n!) hoỏn vị, nhưng vì trong TSP sẽ xuất phát tại một đỉnh và quay trở lại lại đỉnh đó nên chỉ cần hoán vị n — 1 đỉnh là được, nên phương pháp này có độ phức tạp là O((n — 1)!) Phương pháp này tuy rat đơn giản nhưng độ phức tap của phương pháp này lại cực kỳ lớn, vì vậy phương pháp này thường chỉ dùng trong trường hợp số đỉnh trong đồ thị rất nhỏ dé tạo ra các kiểm tra cho các phương pháp khác (chúng em thường dùng phương pháp này với giá trị n từ

12 trở xuống vì chọn lớn hơn thì độ phức tạp sẽ rất cao và mắt rất nhiều thời gian).

Một cải tién đáng kể hon so với phương pháp đơn giản ở trên đó là thuật toán Held-Karp (14), thuật toán này đã giải quyết TSP bằng phương pháp quy hoạch động với thời gian cải thiện xuống còn O(n?2") (với n là số đỉnh trong đồ thị) Dù có cải thiện hơn nhưng độ phức tạp này vẫn còn rất lớn, vẫn phải mắt rất nhiều thời gian để giải quyết.

Phương pháp tốt nhất để giải quyết TSP một cách chính xác hiện nay là lập trình tuyến (linear programming) tính kết hợp với kỹ thuật cắt nhánh

(branch-and-cut) Phiên bản thực thi hiệu quả nhất của kỹ thuật này được tích hợp trong phần mềm Concorde [13], một công cụ miễn phí Concorde chứa khoảng 130.000 dong code và là nền tang cho các nghiên cứu của Applegate và đồng nghiệp (2).

Thuật toán Lin-Kernighan (LK) là một phương pháp heuristic mạnh mẽ để giải bài toán người du lịch (TSP) Được phát triển bởi Shen Lin và BrianKernighan vào những năm 1970 Thuật toán LK là một phương pháp tìm kiếm tổng quát hóa của tìm kiếm 2-opt và là nền tảng cho nhiều metaheuristic giải

Chương 2 Hướng giải pháp hiện nay 19 quyết bài toán người du lịch LK cải tiến liên tục các tuyến đường bằng cách thăm dò một loạt các hoán đổi cạnh, với mục tiêu là mỗi đoạn đường có khả năng được làm tốt hơn Khi một chuỗi hoán đổi cạnh thực sự mang lại cải thiện, nó sẽ được áp dụng Nếu không có chuỗi hoán đổi nào được tìm thấy, thuật toán sẽ kết luận rằng đã đạt đến một điểm tối ưu cục bộ và dừng lại. Để tìm ra một giải pháp tốt hơn, có thể chạy Lin-Kernighan (LK) nhiều lần (Multiple LK Searches) hoặc làm xáo trộn giải pháp và áp dụng tìm kiếm cục bộ một lần nữa (Iterated Local Search) Heuristic Chained Lin-Kernighan thực hiện theo cách này, giúp giải pháp thoát khỏi điểm tối ưu cục bộ bằng một động thái không theo quy luật gọi là "double bridge" Double bridge là một toán tử xóa bốn cạnh trong một chu trình, sau đó kết nối lại 4 chu trình con mà giữ nguyên hướng của bốn chu trình con đó (Hình b.4), tạo ra một thay đổi mà Lin-Kernighan không thể đảo ngược bằng cách thay đổi bốn cạnh một cách không tuần tự, tạo ra một sự thay đổi lớn trong lộ trình, giúp đẩy giải pháp hiện tại ra khỏi cực tiểu cục bộ nếu giải pháp đó đã "mắc kẹt" và không tìm thấy cách cải thiện nào nữa Đến nay, Heuristic Chained Lin-Kernighan van là một trong những phương pháp hiệu quả nhất khi xử ly các bộ dữ liệu cực lớn (ví dụ n > 25,000,000) [7].

Một trong những biến thể mạnh mẽ của Lin-Kernighan (LK) là triển khai của Helsgaun, được biết tới tên là Lin-Kernighan-Helsgaun (LKH) [15] LKH là một heuristic rất hiệu quả để giải quyết bài toán người du lịch (TSP) và các van dé tối ưu hóa tuyến đường khác LKH mang lại những cải tiến tốc độ cũng như thay đổi đáng kể cấu trúc của thuật toán gốc Điểm khác biệt chính là việc sử dụng hoán đổi 5-opt, một cách tiếp cận mở rộng hơn so với2-opt, xem xét đến 10 cạnh cùng một lúc Ngoài ra, LKH chỉ tập trung vào những cạnh có tiềm năng cao, được gọi là các cạnh "hứa hẹn", những cạnh này có nhiều khả năng là một phần của giải pháp tối ưu Sự lựa chọn các cạnh hứa hẹn dựa trên a-measure, là một chỉ số đo khoảng cách của các cạnh so với Cây bao trùm tối thiểu thêm một cạnh (minimal 1-tree) Cay bao trùm tối thiểu thêm một cạnh đã được chứng minh qua thực nghiệm giữa 70-80% các

Chương 2 Hướng giải pháp hiện nay 20

OP ONT TY ®-—@ © © L:IL: II: [2 IL: IEs J[z I:] YEW)

HINH 2.4: Double bridge (Hinh bén trai la chu trinh ban dau Hinh bên phải là chu trình mới sau khi thực hiện double bridge với 4 cạnh được chọn để loại bỏ là (1, 2), (3, 4), (5, 6), (7, 8)) cạnh của một chuyền di tối ưu (15) LKH đã giữ ky luc cho nhiều trường hợp

(instances) của TSP và đã tìm ra tối ưu toàn cục cho pla85900 (một trường hợp thử nghiệm của TSP với đồ thị có 85900 đỉnh) trước cả Applegate và cộng sự nhưng trong thời gian đáng kể ít hơn BỊ:

Trong hướng giải pháp của chúng em (được trình bày tại chương 3), chúng em đã sử dụng thuật toán Heuristic Chained Lin-Kernighan để khởi tạo một chu trình (tour) ban đầu.

2.3 Thuật toán cho bài toán con KP

Cũng giống như bài toán người du lịch (TSP) da dé cập ở trên, bài toán cái túi (Knapsack problem - KP) cũng là một bài toán nổi tiếng trong lĩnh vực tối ưu hóa Bài toán cái túi thường xuyên được xuất hiện như một bài toán con trong các phương pháp giải quyết vấn dé thực tế [27] Trong bài toán cái túi sẽ có các vật phẩm và một cái túi Mỗi vật phẩm có sẽ hai thuộc tính là giá trị và trọng lượng còn cái túi sẽ có một sức chứa có giới hạn (trọng lượng lớn nhất mà cái túi có thể chứa được) Yêu cầu là tìm ra cách chọn các vật phẩm để cho

Chương 2 Hướng giải pháp hiện nay 21 vào túi sao cho đạt giá trị lớn nhất nhưng không vượt quá sức chứa của cái túi.

Trong bài toán cái túi có vật phẩm, mỗi vật phẩm sẽ chắc chắn là một trong hai trạng thái được chọn hoặc không chọn Một cách đơn giản để tìm ra giải pháp tốt nhất đó là thử qua tất cả các trường hợp mà mỗi vật phẩm ở một trong hai trạng thái Với trạng thái được chọn ta đặt là 1, không chọn ta đặt là 0 thì tất cả trường hợp sẽ tương đương với tất cả trường hợp của một dãy nhị phân có m phần tử Dễ dàng tính được sO truong hop ma mot day nhi phân có m phan tử là O(2”“), nên độ phức tap của phương pháp này cũng sẽ là O(2'”) Độ phức tạp của phương pháp nay rất lớn, thường được sử dụng trong trường hợp số lượng vật phẩm nhỏ với mục đích là để tạo các kiểm tra để đánh giá các phương pháp khác (chúng em thường dùng phương pháp này với giá trị m từ 20 trở xuống bởi vì độ phức tạp của phương pháp này lớn).

Các phương pháp cải tiễn hơn để giải quyết bài toán cái túi thường dựa trên hai phương pháp đó là phương pháp cắt nhánh giới hạn (branch-and- bound) và quy hoạch động (dynamic programming) [20] Hầu hết trong số này sử dụng giải pháp số nguyên của Dantzig làm giải pháp khởi tạo hoặc sử dụng một cận trên của giải pháp liên tục vừa được nhắc đến Các cận chặt hơn được tìm thấy bằng cách tính toán độ lớn cực đại (maximum cardinality).

Có thé đạt được tăng tốc thêm bằng cách nhân các hệ sé.

Một giải pháp giải quyết bài toán con cái túi (KP) hiệu quả đó là Insertion heuristic được giới thiệu bởi Mei (21) Giải pháp nay được dùng để khởi tao kế hoạch chọn vật phẩm khi đã có được chu trình đi Khác với phương pháp chính xác đã dé cập trước đó, đây là một toán heuristic Tuy không phải lúc

Chương 2 Hướng giải pháp hiện nay 22 nào thuật toán này cũng tìm được kết quả kết quả tốt nhất, nhưng trong một khoảng thời gian ngắn thì thuật toán này lại có hiệu quả tốt.

Khi đã có được một chu trình thì thuật toán này sẽ thực hiện theo hai bước chính sau Đầu tiên tiền hành sắp xếp các vật phẩm theo thứ tự giảm dan của mức độ ưu tiên, mức độ ưu tiên được tính bằng một hàm có chức năng đánh giá lợi nhuận của việc chèn một vật phẩm vào một chu trình, hàm này được tính dựa trên lợi nhuận của vật phẩm trừ đi tích của tiền thuê cái túi nhân với thời gian ước tính khi chèn vật phẩm đó vào chu trình, sau đó chia cho cân nặng của vật phẩm đó Được sắp xếp giảm dan là vì dựa vào hàm tính mức độ ưu tiên, ta có thể thấy giá trị lợi nhuận càng lớn so với cân nặng thì mức độ ưu tiên càng cao, do đó khi sắp xếp giảm dan ta có thể chọn được những vật phẩm có mức độ ưu tiên lớn hơn trước Sau khi sắp xếp thì xét mỗi vật phẩm trong danh sách đã sắp xếp Nếu mức độ ưu tiên của vật phẩm là dương và tổng trọng lượng của các vật phẩm đã chèn cho tới hiện tại cộng với trọng lượng của vật phẩm hiện tại nhỏ hơn hoặc bằng sức chứa của cái túi, thì chèn vật phẩm vào và cập nhật tổng trọng lượng hiện tại Ngược lại, thì lợi nhuận xap xỉ kỳ vọng sẽ được đánh giá (công thức tính xấp xi kỳ vọng được tính bằng công thức 27 trong [21}), nêu dương thì chèn vật phẩm vào và cập nhật tổng trọng lượng hiện tại Sau khi duyệt qua hết vật phẩm thì chúng ta sẽ có được một danh sách các vật phẩm được chèn vào, đó chính là kết quả của kế hoạch chèn vật phẩm, kết quả này thường dùng để làm kết quả khởi tạo của kế hoạch chon vật phẩm trong TTP.

Ngày đăng: 02/10/2024, 03:01

HÌNH ẢNH LIÊN QUAN

HÌNH 2.1: 2-opt (Hình bên trái là chu trình ban đầu, hình bên phải - Khóa luận tốt nghiệp Khoa học máy tính: Giải thuật mô phỏng luyện thép cải tiến với quy hoạch động cho bài toán người bán hàng với ràng buộc sức chứa
HÌNH 2.1 2-opt (Hình bên trái là chu trình ban đầu, hình bên phải (Trang 30)
HÌNH 2.5: Lưu đồ CS2SA - Khóa luận tốt nghiệp Khoa học máy tính: Giải thuật mô phỏng luyện thép cải tiến với quy hoạch động cho bài toán người bán hàng với ràng buộc sức chứa
HÌNH 2.5 Lưu đồ CS2SA (Trang 44)
HÌNH 3.1: Đường màu đen nét liền và đường màu xanh lá cây biểu diễn chu trình sau khi chèn thành phố được chọn vào vị trí - Khóa luận tốt nghiệp Khoa học máy tính: Giải thuật mô phỏng luyện thép cải tiến với quy hoạch động cho bài toán người bán hàng với ràng buộc sức chứa
HÌNH 3.1 Đường màu đen nét liền và đường màu xanh lá cây biểu diễn chu trình sau khi chèn thành phố được chọn vào vị trí (Trang 57)
HÌNH 3.2: Lưu đồ thuật toán SAVI - Khóa luận tốt nghiệp Khoa học máy tính: Giải thuật mô phỏng luyện thép cải tiến với quy hoạch động cho bài toán người bán hàng với ràng buộc sức chứa
HÌNH 3.2 Lưu đồ thuật toán SAVI (Trang 61)
HÌNH 4.1: Độ hội tu của 4 thuật toán trên một số trường hợp (in- - Khóa luận tốt nghiệp Khoa học máy tính: Giải thuật mô phỏng luyện thép cải tiến với quy hoạch động cho bài toán người bán hàng với ràng buộc sức chứa
HÌNH 4.1 Độ hội tu của 4 thuật toán trên một số trường hợp (in- (Trang 69)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w