Tải bản đầy đủ (.pdf) (19 trang)

Báo Cáo Môn Học Tối Ưu Lập Kế Hoạch Đề Tài Tsp With Time Windows.pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.61 MB, 19 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

──────── * ───────

<b>BÁO CÁO MÔN HỌC </b>

HỌC PHẦN: TỐI ƯU LẬP KẾ HOẠCH

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>Mc lc </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

1

<b>Lời m u ở đầ</b>

Bài toán người bán hàng du lịch với c a s ử ổ thời gian (TSPTW) là bài toán tìm đường đi có chi phí t i thiố ểu đi qua từng thành ph trong t p h p các thành ph , m i thành ph ố ậ ợ ố ỗ ố đi qua chính xác một l n, vầ ới điều ki n m i thành ph phệ ỗ ố ải được thăm trong một kho ng ảthời gian nhất định. TSPTW đã nhận được sự chú ý đáng kể, trong nhiều năm, vì nó là c t lõi c a nhi u ng d ng l p lố ủ ề ứ ụ ậ ịch và định tuy n quan trế ọng trong đời th c. ự Ở đây, chúng em ẽ s trình bày m s ột ố phương pháp giải được áp d ng trong môn ụ <b>Tối ưu lập kế hoạch </b>như: Vét cạn (Brute Force), Quy ho ch ràng bu c (CP), Quy ho ch nguyên tuy n ạ ộ ạ ếtính (IP), Tham lam (Greedy), Heuristic. Trong đó ỗi phương pháp sẽ đưa ra cách mơ mhình khác nhau d dàng tri n khai trên các ph n mđể ễ ể ầ ềm giải quyết bài toán tối ưu như Ortools. Sau đó sẽ đưa ra kết quả thực nghiệm và đánh giá từng phương pháp .

Trong quá trình làm mini-project, chúng em xin chân thành cảm ơn thầy Bùi Qu c Trung ốđã đánh giá và hướng dẫn, có những nhận xét b ổ ích để chúng em có th hồn thi n. ể ệ

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

2 CÔNG VI C C<b>ỆỦA TỪNG THÀNH VIÊN </b>

<b>Nhận xét: Các thành viên trong nhóm đều tham gia đầy đủ và đóng góp xây dự</b>ng các phương pháp để hoàn thành bài tập lớn

Sinh viên <sub>Công vi c th c hi n </sub><b><sub>ệ</sub><sub>ự</sub><sub>ệ</sub></b>

Lê Đức Qn Nhóm trưởng, mơ hình và code phương pháp CP Nguyễn Quốc Việt Mơ hình và code phương pháp nhánh cận, ILP

Phạm Việt Hồng Mơ hình và code phương pháp Greedy, Heuristic

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

3

I. <b>Giớ</b>i thi u bài toán <b>ệ</b>

Bài toán: M t nhân viên giao hàng l y hàng ộ ấ ở kho (điểm 0) và cần đi giao hàng cho 𝑁khách hàng 1,2, … , 𝑁. Khách hàng n𝑖 ằm ở điểm 𝑖 và có yêu c u giao hàng trong kho ng thầ ả ời gian từ 𝑒(𝑖) đến 𝑙(𝑖) và giao hàng hết 𝑑(𝑖) đơn vị thời gian ( ). Bi t r ng , ) là th i gian di 𝑠 ế ằ 𝑡(𝑖 𝑗 ờchuy n tể ừ điểm 𝑖 đến điểm 𝑗. Nhân viên giao hàng xu t phát t kho t i thấ ừ ạ ời điểm𝑡<sub>0</sub>, hãy tính tốn l trình giao hàng cho nhân viên giao hàng sao cho t ng th i gian di chuy n là ng n nh ộ ổ ờ ể ắ ất.

<b>II. Các phương pháp giải </b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

4 1.1.4 Ràng buộc và hàm mục tiêu

1.2 X lý bài toán ử1.2.1 Kh i t o các biở ạ ến

1.2.2 Gi i thu t nhánh c n ả ậ ậ

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

5 1.2.3 Hàm c t t a ắ ỉ

1.3 K t qu ế ả thực nghi m và th i gian ch y ệ ờ ạ

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

6 2. Quy ho ch ràng bu c (Constraint Programming) <b>ạộ</b>

Mơ hình bài toán theo Quy ho ch Ràng bu<b>ạộc:</b>

Gọi 𝑉 = 0,1,2,...,𝑛,𝑛 + 1 là tập các node, trong đó 1, . . . , 𝑛 là các thành ph s ố ẽ thăm, và node và 0 𝑛+1 là điểm bắt đầu và kết thúc. M i node liên k t v i 1 c a s ỗ ế ớ ử ổ thời gian 𝑇𝑊<sub>𝑖</sub>=[𝑎<small>𝑖</small>,𝑏<small>𝑖</small>] là khung th i gian giao hàng c a thành phờ ủ ố 𝑖 . Mỗi node cũng có 1 khoảng th i gian ờ𝑑𝑢𝑟<sub>𝑖</sub>, đại di n cho th i gian giao hàng t i thành phệ ờ ạ ố 𝑖. V i m i c p thành phớ ỗ ặ ố 𝑖 và , có th𝑗 ời gian di chuyển là 𝑡<sub>𝑖,𝑗</sub>

<b>• Định nghĩa 3 biến cho mỗi node </b>𝒊∈𝑽:

o 𝑁𝑒𝑥𝑡<small>𝑖</small> là thành ph số ẽ thăm tiếp theo của node 𝑖o 𝐶𝑜𝑠𝑡<small>𝑖</small> là chi phí từ 𝑖 đến 𝑁𝑒𝑥𝑡<sub>𝑖</sub>

o 𝑆𝑡𝑎𝑟𝑡<small>𝑖</small> là thời điểm giao hàng c a node ủ 𝑖o 𝑊𝑎𝑖𝑡<small>𝑖</small> là thời gian để giao hàng t i node ạ 𝑖

<b>• Miền giá tr : ị</b>

o 𝐷(𝑁𝑒𝑥𝑡<small>𝑖</small>) = {1,…, 𝑛 +1} o 𝐷(𝐶𝑜𝑠𝑡<small>𝑖</small>) = {0,…, max}o 𝐷(𝑆𝑡𝑎𝑟𝑡<small>𝑖</small>) =[𝑎<sub>𝑖</sub>,𝑏<small>𝑖</small>] o 𝐷(𝑊𝑎𝑖𝑡<sub>𝑖</sub>) = {0,…, 𝑚𝑎𝑥}

o 𝑆𝑡𝑎𝑟𝑡<sub>0</sub>= 0, 𝐶𝑜𝑠𝑡<small>𝑛+1</small>= 0, 𝑁𝑒𝑥𝑡<small>𝑛+1</small>=0 • Ràng bu<b>ộc:</b>

<b>o Các đỉnh chỉ thăm 1 lầ</b>n:

𝑎𝑙𝑙𝑑𝑖𝑓𝑓𝑒𝑟𝑒𝑛𝑡([𝑁𝑒𝑥𝑡<small>0</small>,𝑁𝑒𝑥𝑡 ,…,𝑁𝑒𝑥𝑡<small>1𝑛+1</small>])o Khơng t n t i chu trình con: <b>ồạ</b>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

7 𝑓 =min {𝑆𝑡𝑎𝑟𝑡<sub>𝑛+1</sub>}

Sử d ng công c ụ ụ OR-Tools để gi i quy t bài toán ả ế

➢ OR-Tools là m t b ph n m m ngu n m tộ ộ ầ ề ồ ở ối ưu hoá, được điều chỉnh để ả gi i quyết các vấn đề khó khăn nhất trên th ế giới trong việc định tuy n xe, ế luồng, l p trình sậ ố ngun và tuyến tính cũng như lập trình ràng buộc.

➢ Sau khi mơ hình hóa vấn đề ử ụ, s d ng trình giải CP-SAT Solver để ả gi i Chi tiết cài đặt phương pháp ở trong file ./Code/CP.ipynb

Kết qu ả cài đặt được thống kế ở mục III

3. Integer Linear Programing 3.1 Mơ hình hóa bài tốn 3.1.1 T p các bi n ậ ế

3.1.2 Miền giá tr ị

3.1.3 Ràng bu c ộ

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

8 3.1.4 Hàm m c tiêu ụ

3.2 Giải quy t bài toán ế3.2.1 Kh i t o các biở ạ ến

3.2.2 Khai báo ràng bu c ộ

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

9 3.2.3 Khai báo hàm m c tiêu ụ

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

10 3.3 K t qu ế ả thực nghi m và th i gian ch y ệ ờ ạ

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

11 4. Thu t toán tham lam (Greedy) <b>ậ</b>

- Mục tiêu của các chiến lược greedy là tổng thời gian di chuyển trên toàn bộ tuyến đường là nhỏ nhất

4.1 Các chiến lược tham lam 4.1.1 Chiến lược Nearest node first:

- Mô tả: Node có thời gian di chuyển gần nhất với node hiện tại sẽ được chọn làm node để đi tới tiếp theo

- Mã giả:

4.1.2 Chiến lược Nearest start-time first:

- Mơ tả: Node có thời gian bắt đầu giao gần nhất với thời gian hiện tại sẽ được chọn làm node để đi tới tiếp theo

- Mã giả:

4.1.2 Chiến lược Nearest end-time first:

- Mô tả: Node có thời gian kết thúc giao gần nhất với thời gian hiện tại sẽ được chọn làm node để đi tới tiếp theo

- Mã giả:

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

12 4.2 K t qu : ế ả

- K t qu ế ả thực nghi m và th i gian ch y trên b d liệ ờ ạ ộ ữ ệu được cung c p ấ

<b>5. Thuật toán Heuristic</b>

5.1 Nguyên tắc cơ bản thuật toán 2-OPT:

• Thay thế hai cạnh khơng liền kề trong lời giải hiện tại bằng hai cạnh khác và kiểm tra điều kiện, tạo thành một lời giải mới có chi phí thấp hơn.

• Điều này được thực hiện liên tục cho đến khi khơng cịn cải thiện nữa.

• Về lý thuyết số lượng chu trình mới tối đa có thể sinh ra là n(n 3) (O(n^2)) từ một nút khởi đầu

-Hàm mục tiêu: tổng thời gian di chuyển nhỏ nhất

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

13 5.2 Các hàm quan trọng

- Hàm khởi tạo trạng thái ban đầu

+ Thực hiện vét cạn khơng gian đường đi đã shuffle để tạo tính ngẫu nhiên + Khi có đường đi thoả mãn điều kiện ràng buộc lấy đường đi đó làm giá trị khởi tạo

- Mã giả thuật toán Local search

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

14 - Mã giả thuật toán Iterated local search

- Mã giả thuật toán Simulated annealing:

5.3 Thử nghiệm trên bộ dữ liệu tự tạo - V i b d u t t o ớ ộ ữ liệ ự ạ

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

15 • Với các khởi tạo khác nhau, kết quả cuối có thể là local optimum hoặc global

optimum

• Tăng số lượng vòng lặp làm tăng khả năng hội tụ của thuật toán

- V i b d ớ ộ ữ liệu được cung c p: ấ

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

16

<b>III. Kế</b>t qu th c nghi m và nh n xét <b>ả ựệậ</b>

Kiểm tra các phương pháp giải bằng bộ dữ liệu được cung cấp bởi lớp học, các test case có kho ng giá tr tả ị ừ [𝟓,𝟏𝟎𝟎𝟎], phù hợp để ể ki m tra tính hi u qu c a tệ ả ủ ừng phương pháp. Bảng sau đây là kết quả thu được sau khi ch y t ng thu t toán, k t qu ạ ừ ậ ế ả được ểbi u di n b i lễ ở ời giải thu được, thời gian chạy chương trình (đơn vị giây)

n <sup>Kết qu </sup><sub>g c </sub><sub>ố</sub> <sup>ả</sup> <sup>Brute Force </sup> <sup>CP </sup> <sup>ILP </sup>

Metaheuristic Iterated local

search <sup>Simulated </sup>annealing Result Time Result Time Result Time Result Time Result Time 5 465 465 0.001 465 0.01 465 0.01 465 0.0003 465 0.0002 10 779 779 0.003 779 0.04 779 0.02 779 0.006 779 0.006 100 57815 - - 57815 3.71 57815 0.61 - - - - 200 101539 - - 101539 10.63 101539 2.35 - - - - 300 164756 - - 164756 28.45 164756 5.39 - - - - 500 267189 - - 267189 86.78 267189 15.79 - - - - 600 335883 - - 335883 105.06 335883 21.18 - - - - 700 368821 - - 368821 144.68 368821 31.41 - - - - 900 468147 - - 468147 233.16 468147 50.66 - - - - 1000 526522 - - 526522 297.76 526522 66.32 - - - -

- Các thu t toán tham lam ậ

n <sup> K t qu g c </sup><sup>ế</sup> <sup>ả ố</sup> <sup>Neerest node first </sup> <sup>Nearest start-time first </sup> <sup>Nearest end-time first </sup>Result Time Result Time Result Time 5 465 - - 465 Không đáng kể 465 Không đáng kể 10 779 - - 779 Không đáng kể 779 Không đáng kể 100 57815 - - 57815 Không đáng kể 57815 Không đáng kể 200 101539 - - 101539 Không đáng kể 101539 Không đáng kể 300 164756 - - 164756 Không đáng kể 164756 Không đáng kể 500 267189 - - 267189 Không đáng kể 267189 Không đáng kể 600 335883 - - 335883 Không đáng kể 335883 Không đáng kể 700 368821 - - 368821 Không đáng kể 368821 Không đáng kể 900 468147 - - 468147 Không đáng kể 468147 Không đáng kể 1000 526522 - - 526522 Không đáng kể 526522 Không đáng kể

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

• ILP : ch y r t nhanh, tuy nhiên phạ ấ ần định nghĩa mơ hình hóa bài tốn khá là khó. Đối v i nh ng b test có nhi u l i gi i thớ ữ ộ ề ờ ả ỏa mãn điều ki n, ILP tính tốn r t ch m ệ ấ ậ• Greedy: Các thuật tốn greedy thường đơn giản có thời gian tính tốn thấp không đáng kể. Tuy nhiên chỉ cho đáp án khi giả định ban đầu là đúng. Cần tiếp tục tìm phương án cải tiến và đưa ra chiến lược bao quát hơn

• Heuristic: Thời gian ch y là trong kho ng ch p nhạ ả ấ ận được khi th trên b d ử ộ ữ liệu bé hơn 20. Cần cải thiện phương thức khởi tạo thay vì vét cạn và tăng cường thêm các thu t toán metaheuristic khác: Guided local search, Tabu search, Variable ậneighborhood search

</div>

×