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

NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế

146 654 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

Định dạng
Số trang 146
Dung lượng 5,09 MB

Nội dung

Luận văn, khóa luận, chuyên đề, tiểu luận, quản trị, khoa học, tự nhiên, kinh tế

Trang 1

KHOA CNTT –

ĐH KHTN

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HỒ CHÍ MINH

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN CÔNG NGHỆ PHẦN MỀM

TẠ TRƯỜNG ĐỨC ANH - NGUYỄN NHẬT QUỲNH

NGHIÊN CỨU MỘT SỐ VẤN ĐỀ CỦA LÝ THUYẾT ĐỒ THỊ ỨNG DỤNG TRONG GIẢI QUYẾT MỘT SỐ BÀI TOÁN THỰC TẾ

LUẬN VĂN CỬ NHÂN TIN HỌC

TP.HỒ CHÍ MINH, 2004

Trang 2

NGHIÊN CỨU MỘT SỐ VẤN ĐỀ CỦA LÝ THUYẾT ĐỒ THỊ ỨNG DỤNG TRONG GIẢI QUYẾT MỘT SỐ BÀI TOÁN THỰC TẾ

LUẬN VĂN CỬ NHÂN TIN HỌC

GIÁO VIÊN HƯỚNG DẪN T.S DƯƠNG ANH ĐỨC

NIÊN KHÓA 2000 - 2004

Trang 3

KHOA CNTT –

ĐH KHTN

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Trang 4

KHOA CNTT –

ĐH KHTN

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Trang 5

Chúng con xin gửi tất cả lòng biết ơn, sự kính trọng đến ông bà, cha mẹ, cùng toàn thể gia đình, những người đã nuôi dạy, đã cho chúng con niềm tin và nghị lực để vượt qua mọi khó khăn

Chúng em xin trân trọng cám ơn quý Thầy cô trong Khoa Công nghệ thông tin trường Đại học Khoa học Tự nhiên Tp.Hồ Chí Minh đã tận tình giảng dạy, truyền đạt những kiến thức quý báu và tạo điều kiện cho chúng em được thực hiện luận văn này

Xin chân thành cám ơn sự giúp đỡ, động viên và chỉ bảo rất nhiệt tình của các anh chị đi trước và tất cả bạn bè Các anh chị, các bạn luôn có mặt trong những thời điểm khó khăn nhất, tiếp thêm động lực và ý chí, giúp chúng tôi hoàn thành được luận văn

Mặc dù đã cố gắng nỗ lực hết sức mình, song chắc chắn luận văn không khỏi còn nhiều thiếu sót Chúng em rất mong nhận được sự thông cảm và chỉ bảo tận tình của quý Thầy cô và các bạn

Nhóm sinh viên thực hiện

Tạ Trường Đức Anh Nguyễn Nhật Quynh

Trang 6

KHOA CNTT –

ĐH KHTN

CHƯƠNG 1 : MỞ ĐẦU 1

1.1 Ý nghĩa và mục tiêu của đề tài 1

1.2 Nội dung của luận văn 2

CHƯƠNG 2 : TỔNG QUAN VỀ BÀI TOÁN LUỒNG TRÊN MẠNG 3

2.1 Một số khái niệm 3

2.1.1 Đồ thị 3

2.1.2 Các phép biến đổi đồ thị 3

2.2 Các bài toán luồng trên mạng 4

2.3 Một số ứng dụng cho bài toán luồng trên mạng 4

2.3.1 Đường đi ngắn nhất 4

2.3.2 Luồng cực đại 4

2.3.3 Luồng có chi phí cực tiểu 6

2.3.4 Phân công và xếp cặp 7

2.4 Tóm tắt chương 2 7

CHƯƠNG 3 : LUỒNG CỰC ĐẠI 8

3.1 Định nghĩa và ký hiệu 8

3.2 Luồng và lát cắt 8

3.2.1 Mạng thặng dư 9

3.2.2 Lát cắt s-t 9

3.2.3 Độ thông qua thặng dư của một lát cắt s-t 10

3.2.4 Luồng qua một lát cắt s-t 10

3.3 Thuật toán đường tăng trưởng 11

3.4 Thuật toán gán nhãn và định lý lát cắt tối thiểu 12

3.4.1 Độ phức tạp của thuật toán gán nhãn 14

3.4.2 Hạn chế của thuật toán gán nhãn 14

3.5 Luồng có chặn dưới 15

3.5.1 Xác định luồng cực đại 16

3.5.2 Xây dựng luồng khả thi 16

3.5.3 Mô tả đặc điểm của luồng khả thi trên mạng lưu thông 17

3.6 Cải tiến thuật toán đường tăng trưởng 19

3.6.1 Các nhãn khoảng cách 20

3.6.2 Thuật toán tỉ lệ với độ thông qua 21

3.6.3 Thuật toán đường đi tăng trưởng ngắn nhất 23

3.6.4 Thuật toán đẩy luồng 25

3.7 Tóm tắt chương 3 27

CHƯƠNG 4 : LUỒNG VỚI CHI PHÍ CỰC TIỂU 28

4.1 Giới thiệu 28

4.1.1 Các giả thiết 28

4.1.2 Đồ thị thặng dư 29

4.2 Các điều kiện tối ưu cho bài toán 29

4.2.1 Các điều kiện tối ưu về chu trình âm 29

4.2.2 Các điều kiện tối ưu về chi phí rút gọn 29

Trang 7

KHOA CNTT –

ĐH KHTN

4.4 Thuật toán khử chu trình âm và tính chất nguyên 33

4.5 Thuật toán đường đi ngắn nhất liên tiếp 35

4.6 Thuật toán Primal-dual 39

4.7 Các thuật toán cải tiến 42

4.7.1 Cải tiến thuật toán đường đi ngắn nhất liên tiếp 43

4.7.2 Một số cách cải tiến khác 43

4.8 Tóm tắt chương 4 46

CHƯƠNG 5 : SỰ PHÂN CÔNG VÀ XẾP CẶP 48

5.1 Giới thiệu 48

5.1.1 Các cạnh bắt cặp và các nút bắt cặp 48

5.1.2 Đường đi xen kẽ và chu trình xen kẽ 48

5.1.3 Đường tăng trưởng 49

5.1.4 Sự khác biệt đối xứng 50

5.2 Bài toán bắt cặp lớn nhất trên đồ thị phân đôi 50

5.2.1 Chuyển về bài toán luồng cực đại trong mạng đơn giản 50

5.2.2 Thuật toán bắt cặp lớn nhất trên đồ thị phân đôi 51

5.3 Bài toán bắt cặp có trọng số trên đồ thị phân đôi 55

5.3.1 Thuật toán đường đi ngắn nhất liên tiếp 55

5.3.2 Thuật toán Hungary 55

5.3.3 Thuật toán tỉ lệ theo chi phí 56

5.4 Bài toán bắt cặp trên đồ thị tổng quát 56

5.4.1 Các khó khăn gặp phải trong thuật toán bắt cặp trên mạng phân đôi 57

5.4.2 Hoa và nụ 58

5.4.3 Sự thu nhỏ nụ 59

5.4.4 Thuật toán bắt cặp trên đồ thị không phân đôi 60

5.5 Tóm tắt chương 5 64

CHƯƠNG 6 : LUỒNG TỔNG QUÁT 65

6.1 Giới thiệu 65

6.2 Các cấu trúc rừng tăng trưởng 66

6.2.1 Luồng trên đường đi 66

6.2.2 Luồng trên chu trình 68

6.2.3 Cây tăng trưởng và rừng tăng trưởng 69

6.2.4 Các cấu trúc rừng tăng trưởng và các điều kiện tối ưu 71

6.3 Xác định các khả năng và luồng cho một cấu trúc rừng tăng trưởng 73

6.3.1 Xác định khả năng của đỉnh cho một cấu trúc rừng tăng trưởng 73

6.3.2 Xác định luồng cho một cấu trúc rừng tăng trưởng 75

6.4 Tóm tắt chương 6 80

CHƯƠNG 7 : XÂY DỰNG ỨNG DỤNG DISTRIBUTION 81

7.1 Yêu cầu thực tế và lý do xây dựng ứng dụng 81

7.2 Mục tiêu của ứng dụng 81

7.3 Tiếp cận bài toán 82

7.3.1 Phát biểu bài toán 82

7.3.2 Mô hình toán học 82

7.3.3 Nhận xét 83

7.3.4 Hướng tiếp cận của luận văn 83

Trang 8

KHOA CNTT –

ĐH KHTN

7.5.1 Thiết kế dữ liệu 97

7.5.2 Thiết kế xử lý 102

7.5.3 Thiết kế giao diện 105

7.6 Biểu đồ tương tác 111

7.6.1 Xem thông tin các đại lý 111

7.6.2 Thay đổi nhu cầu của các đại lý 113

7.6.3 Xem thông tin các phương tiện 115

7.6.4 Thay đổi thông tin về các phương tiện 117

7.6.5 Tìm phương pháp vận chuyển tối ưu 119

7.6.6 Tìm đường đi ngắn nhất từ nhà cung cấp đến các đại lý 121

7.6.7 Xuất lịch giao hàng 122

7.7 Cài đặt 123

7.8 Hướng dẫn sử dụng 124

7.8.1 Di chuyển bản đồ đến vị trí khác : 124

7.8.2 Phóng to, thu nhỏ bản đồ : 124

7.8.3 Để tìm đường đi ngắn nhất từ nhà cung cấp đến các đại lý: 125

Để tìm đường đi ngắn nhất từ nhà cung cấp đến 1 đại lý nào đó: 125

7.8.4 Để tính toán các đường đi có chi phí thấp nhất thỏa mãn nhu cầu của các đại lý: 126 7.8.5 Xem thông tin và cập nhật nhu cầu của tất cả các đại lý 127

7.8.6 Xem, cập nhật thông tin hoặc thêm các phương tiện chuyên chở mới: 129

7.8.7 Xem lịch giao hàng trong ngày của các phương tiện 130

7.9 Tổng kết 132

7.9.1 Kết luận 132

7.9.2 Hướng phát triển 132

Trang 9

KHOA CNTT –

ĐH KHTN

DANH SÁCH CÁC ĐỊNH LÝ, TÍNH CHẤT, MỆNH ĐỀ

Tính chất 3.1 .11

Tính chất 3.2 11

Định lý 3.3: định lý Ford – Fullkerson về lát cắt nhỏ nhất 14

Định lý 3.4: định lý về đường tăng trưởng 14

Định lý 3.5: định lý về tính nguyên 14

Định lý 3.6: Định lý lát cắt nhỏ nhất mở rộng 16

Định lý 3.7: điều kiện tồn tại luồng khả thi trên mạng lưu thông 19

Định lý 3.8 19

Tính chất 3.9 21

Tính chất 3.10 21

Định lý 4.1: Các điều kiện tối ưu về chu trình âm 29

Tính chất 4.2 30

Định lý 4.3: Các điều kiện tối ưu với chi phí rút gọn 30

Định lý 4.4 :Các điều kiện tối ưu bổ sung 31

Định lý 4.5: Tính chất nguyên 35

Bổ đề 4.6 36

Bổ đề 4.7 36

Định lý 5.1: định lý về đường tăng trưởng 49

Tính chất 5.2 50

Tính chất 5.3 58

Tính chầt 5.4 59

Bổ đề 5.5 64

Tính chất 6.1 67

Tính chất 6.2 68

Tính chất 6.3 69

Tính chất 6.4 69

Định lý 6.5: Các điều kiện tối ưu về luồng tổng quát 71

Tính chất 6.6: Các điều kiện tối ưu về cấu trúc rừng tăng trưởng 72

Trang 10

KHOA CNTT –

ĐH KHTN

Hình 2-1 6

Hình 3-1 Mô tả mạng thặng dư 9

Hình 3-2 Ví dụ về một lát cắt s – t 10

Hình 3-3 Ví dụ về một mạng tăng trưởng 11

Hình 3-4: Bài toán luồng cực đại không có luồng tương thích 15

Hình 3-5 Minh họa đồ thị thặng dư 22

Hình 4-1 Minh họa thuật toán Khử chu trình âm 34

Hình 4-2 Minh họa thuật toán đường đi ngắn nhất liên tiếp 39

Hình 4-3 Minh họa thuật toán Primal - dual 42

Hình 5-1 Minh họa sự bắt cặp gồm 2 phần tử 48

Hình 5-2 Minh họa sự bắt cặp gồm 3 phần tử 49

Hình 5-3: Chuyển đổi bài toán bắt cặp các thành phần thành bài toán luồng cực đại 51

Hình 5-4 Phát triển 1 cây xen kẽ 52

Hình 5-5 Hai vì dụ về hoa 58

Hình 5-6 Sự thu gọn hoa 59

Hình 5-7 Xác định 1 luồng tăng trưởng trong mạng thu gọn 63

Hình 5-8 Xác định 1 đường tăng trưởng trong mạng ban đầu 64

Hình 6-1: Luồng trên đường đi trong 1 đồ thị tổng quát 67

Hình 6-2 Ví dụ về cây tăng trưởng và luồng tăng trưởng 70

Hình 6-3 Minh họa tính toán các khả năng của đỉnh 75

Hình 6-4 Tính luồng trên các cung thuộc cây 76

Hình 6-5 Minh họa quá trình tính luồng cho 1 cây tăng trưởng 78

Hình 7-1 Mô hình bài toán phân phối hàng 85

Hình 7-2 Biểu đồ Use Case 90

Hình 7-3 Sơ đồ các lớp dữ liệu 97

Hình 7-4 Mô tả dữ liệu tính toán 102

Hình 7-5 Sơ đồ lớp sử lý 102

Hình 7-6 Sơ đồ các màn hình 105

Hình 7-7 Thực đơn của ứng dụng 105

Hình 7-8 Thanh công cụ của ứng dụng 106

Hình 7-9 Màn hình chính 108

Hình 7-10 Màn hình thay đổi nhu cầu của một đại lý 108

Hình 7-11 Màn hình thay đổi nhu cầu của tất cả các đại lý 109

Hình 7-12 Màn hình xem thông tin, cập nhật thêm mới phương tiện 110

Hình 7-13 Màn hình xem lịch giao hàng tối ưu về chi phí 110

Hình 7-14 Sequence Diagram: Xem thông tin các đại lý 111

Hình 7-15 Collaboration Diagram: Xem thông tin các đại lý 112

Hình 7-16 Sequence Diagram: Thay đổi nhu cầu của các đại lý 113

Hình 7-17 Collaboration Diagram: Thay đổi nhu cầu của các đại lý 114

Hình 7-18 Sequence Diagram: Xem thông tin các phương tiện 115

Hình 7-19 Collaboration Diagram: Xem thông tin các phương tiện 116

Hình 7-20 Sequence Diagram: Thay đổi thông tin về các phương tiện 117

Hình 7-21 Collaboration Diagram: Thay đổi thông tin về các phương tiện 118

Hình 7-22 Sequence Diagram: Tìm phương pháp vận chuyển tối ưu 119

Hình 7-23 Collaboration Diagram: Tìm phương pháp vận chuyển tối ưu 120 Hình 7-24 Sequence Diagram: Tìm đường đi ngắn nhất từ nhà cung cấp đến các đại lý121

Trang 11

KHOA CNTT –

ĐH KHTN

Hình 7-26 Sequence Diagram: Xuất lịch giao hàng 122

Hình 7-27 Collaboration Diagram: Xuất lịch giao hàng 123

Hình 7-28 Màn hình chính 124

Hình 7-29 Đường đi ngắn nhất từ nhà cung cấp đến các đại lý 125

Hình 7-30 Đường đi ngắn nhất từ nhà cung cấp đến một đại lý 126

Hình 7-31 Đường đi có chi phí thấp nhất 127

Hình 7-32 Màn hình cập nhật thông tin các đại lý 128

Hình 7-33 Màn hình cập nhật nhu cầu cho 1 đại lý 129

Hình 7-34 Màn hình thêm mới, cập nhật thông tin cho các phương tiện 130

Hình 7-35 Màn hình hiển thị lịch giao hàng 131

Hình 7-36 Lịch giao hàng dưới dạng văn bản 131

Trang 12

KHOA CNTT –

ĐH KHTN

Tiếng Anh Tiếng Việt

Admissible path Đường đi có thể chấp nhận

Advance Tiến tới Alternating Xen kẽ Alternating tree Cây xen kẽ Assigment Sự phân công Augmented forest structures Các cấu trúc rừng tăng trưởng Augmenting path algorithm Thuật toán đường tăng trưởng

Bucket Ngăn Capacity Độ thông qua Composite cost Chi phí kết hợp

Cut Lát cắt Cycle-canceling Khử chu trình Decomposition Sự phân rã Distance label Nhãn khoảng cách Feasible flow Luồng khả thi Feasible solution Lời giải khả thi Flower and blossom Hoa và nụ Flows with lower bound Luồng có chặn dưới

Generalized flow Luồng tổng quát Label-correcting algorithm Thuật toán hiệu chỉnh nhãn Label-setting algorithm Thuật toán gán nhãn

Matching Sự bắt cặp Network flows Luồng trên mạng Nonsaturating Chưa bão hòa

NP-complete NP-đầy đủ

ε -optimal flows Luồng tối ưu ε

Priority list Danh sách ưu tiên

Trang 13

KHOA CNTT –

ĐH KHTN

Pseudoflow Luồng giả Reduced cost Chi phí rút gọn Residual capacity Độ thông qua thặng dư Residual network Mạng thặng dư

Retreat Quay lui Saturating Bão hòa

∆-scaling phase Pha tỉ lệ ∆

Symmetric difference Sự khác biệt đối xứng

Trang 14

KHOA CNTT –

ĐH KHTN

CHƯƠNG 1 : MỞ ĐẦU

1.1 Ý nghĩa và mục tiêu của đề tài

Lý thuyết đồ thị là ngành khoa học xuất hiện từ lâu nhưng lại có nhiều ứng dụng hiện đại Những ý tưởng cơ bản của nó được đưa ra từ thế kỷ 18 bởi nhà toán học Thụy Sĩ Leonhard Euler Ông đã dùng đồ thị để giải quyết bài toán cây cầu Konigsberg nổi tiếng Từ đó lý thuyết đồ thị ngày càng khẳng định được vị trí quan trọng của mình trong việc áp dụng để giải các bài toán thực tế nhờ vào việc tìm ra ngày càng nhiều của các định lý, công thức và thuật toán

Một bộ phận quan trọng của lý thuyết đồ thị là dạng bài toán luồng trên mạng, xuất hiện từ những nghiên cứu của Gustav Kirchhoff, và được những nhà nghiên cứu tiên phong như Lester Ford và Ray Fulkerson phát triển thành một lĩnh vực khoa học độc lập Bài toán này có nhiều biến thể như: bài toán luồng có chi phí cực tiểu, bài toán đường đi ngắn nhất, bài toán luồng cực đại, bài toán vận chuyển, bài toán luồng tổng quát, bài toán luồng nhiều mặt hàng…

Với sự xuất hiện ngày càng nhiều của các hệ thống mạng như: hệ thống mạng điện, mạng sản xuất và phân phối hàng hóa, mạng giao thông …, và phổ biến nhất hiện nay là mạng internet đã làm nảy sinh ra nhu cầu vận chuyển các chất liệu trên các mạng này sao cho đạt hiệu quả cao nhất; chất liệu ở đây có thể là dòng điện, dữ liệu, hàng hóa…; hiệu quả ở đây có thể xét theo tiêu chuẩn về thời gian, độ dài quãng đường, chi phí tiền bạc, mức độ an toàn…, bài toán luồng trên mạng ngày càng khẳng định được tính quan trọng của nó trong các ngành khoa học hiện đại Sự phát triển mạnh mẽ của ngành công nghệ thông tin cùng với khả năng tính toán rất nhanh của máy tính đã giúp việc giải quyết các bài toán luồng trên mạng hiệu quả hơn và đem lại nhiều ứng dụng thực tiễn hơn

Với sự hướng dẫn của Tiến sĩ Dương Anh Đức, chúng em đã tập trung thực

hiện đề tài “NGHIÊN CỨU MỘT SỐ VẤN ĐỀ CỦA LÝ THUYẾT ĐỒ THỊ ỨNG DỤNG TRONG VIỆC GIẢI QUYẾT BÀI TOÁN THỰC TẾ” nhằm tìm

hiểu, thử nghiệm và ứng dụng các thuật toán của bài toán luồng trên mạng, nhất là

Trang 15

KHOA CNTT –

ĐH KHTN

CHƯƠNG 1: MỞ ĐẦU

mạng, trong đó bao gồm việc xây dựng ứng dụng Distribution phục vụ cho việc

lập kế hoạch giao hàng của nhà phân phối đến các đại lý với chi phí tối thiểu

1.2 Nội dung của luận văn

Luận văn gồm 7 chương:

Chương 1: Mở đầu giới thiệu tổng quan về đề tài

Chương 2: Tổng quan về lý thuyết đồ thị giới thiệu một số khái niệm,

phép biến đổi được sử dụng trong bài toán luồng trên mạng và một số lớp bài toán luồng trên mạng cùng ứng dụng của chúng

Chương 3: Bài toán luồng cực đại mô tả bài toán luồng cực đại, giới thiệu

khái niệm lát cắt cùng với thuật toán tổng quát, và đưa ra một số thuật toán cải tiến

để giải bài toán này

Chương 4: Bài toán luồng có chi phí cực tiểu định nghĩa bài toán luồng

có chi phí cực tiểu, các điều kiện tối ưu của bài toán, các thuật giải tổng quát và một số cải tiến nhằm tối ưu hóa thời gian chạy của thuật toán

Chương 5: Bài toán phân công và bắt cặp giới thiệu 3 dạng tiêu biểu là

bài toán bắt cặp lớn nhất trên đồ thị phân đôi, bài toán bắt cặp có trọng số trên đồ thị phân đôi, bài toán bắt cặp trên đồ thị tổng quát Chương này cũng đưa ra một ví

dụ và các thuật toán để giải các bài toán này

Chương 6: Luồng tổng quát tập trung vào các cấu trúc cây tăng trưởng và

rừng tăng trưởng, cách xác định khả năng và luồng cho một cấu trúc rừng tăng trưởng

Chương 7: Xây dựng ứng dụng Distribution trình bày về thuật toán cơ bản để xây dựng nên chương trình, cơ sở dữ liệu, hướng dẫn sử dụng chương trình

Trang 16

đồ thị này Đó là các phép biến đổi:

™ Loại bỏ chặn dưới khác 0 của cạnh

™ Loại bỏ chặn trên của cạnh

™ Đảo cạnh

™ Tách nút

Trang 17

KHOA CNTT –

ĐH KHTN

CHƯƠNG 2: TỔNG QUAN VỀ LÝ THUYẾT ĐỒ THỊ

2.2 Các bài toán luồng trên mạng

Các bài toán thuộc lớp bài toán luồng trên mạng:

™ Bài toán luồng có chi phí cực tiểu (minimum cost flow problem)

™ Bài toán đường đi ngắn nhất (shortest path problem)

™ Bài toán luồng cực đại (maximum flow problem)

™ Bài toán phân công (assignment problem)

™ Bài toán vận tải (transportation problem)

™ Bài toán lưu thông (circulation problem)

™ Bài toán luồng đa hàng hóa (multicommodity flow problem)

™ Bài toán cây khung tối tiểu (minimum spanning tree problem)

™ Bài toán cặp ghép (matching problem)

2.3 Một số ứng dụng cho bài toán luồng trên mạng

Bài toán luồng trên mạng có rất nhiều ứng dụng trong thực tế Có những bài toán

ta dễ dàng nhận thấy sự hiện diện của mạng, nhưng cũng có những bài toán mạng

bị che khuất bởi phát biểu của nó Để áp dụng được các thuật toán luồng trên mạng

ta phải thiết lập được mô hình mạng cho các bài toán này Sau đây là một số ứng dụng thực tế, được trình bày theo các lớp bài toán luồng trên mạng

2.3.1 Đường đi ngắn nhất

™ Bài toán chở hàng trên tàu

™ Lập lịch cho tổng đài viên

™ Xếp sách trong thư viện

™ Bài toán đổi tiền (có thể ứng dụng với máy bán hàng tự động)

2.3.2 Luồng cực đại

2.3.2.1 Ứng dụng 1 : Luồng khả thi

Bài toán luồng khả thi là bài toán xác định một luồng trên mạng thỏa mãn các ràng buộc sau :

Trang 18

KHOA CNTT –

ĐH KHTN

A j i u

Ta có thể giải bài toán luồng khả thi bằng cách tìm luồng cực đại trên một mạng G’ như sau: ta thêm vào hai nút mới, một nút nguồn s và một nút đích t Với mỗi nút có b(i) > 0, ta thêm vào cung (s,i) với độ thông qua là b(i), và với mỗi nút b(i) có b(i) < 0, ta thêm vào cung (i,t) với độ thông qua là –b(i) Sau đó giải bài

toán luồng cực đại truyền từ s đến t trên mạng này Nếu tất cả các cung (s,i) và (j,t)

đều bão hoà (nghĩa là xsi = usi và xjt = ujt ) thì bài toán có luồng khả thi, ngược lại là không có luồng khả thi

Bài toán luồng khả thi có một số ứng dụng thực tế, chẳng hạn: ứng dụng về phân phối hàng hoá Trên một mạng lưới các hải cảng một số cảng có hàng hoá khác mà những cảng khác cần Ta biết lượng hàng có tại các cảng, biết nhu cầu về các loại hàng hoá này cũng như biết khả năng vận chuyển tối đa trên mỗi tuyến đường Ta cần biết liệu có thể đáp ứng được mọi nhu cầu dựa trên các nguồn cung cấp trong mạng hay không

Ứng dụng 2 : Bài toán bầu chọn đại biểu 2.3.2.2

Một thị trấn có r cư dân : R1 , R2 , …, Rr; q câu lạc bộ : C1 , C2 ,…, Cq; và p

đảng phái chính trị : P1 , P2 , …, Pp

Mỗi người dân tham gia ít nhất 1 CLB và theo duy nhất một đảng Mỗi CLB phải chọn 1 trong số các thành viên của nó làm đại diện cho hội đồng thị trấn sao cho số thành viên hội đồng của một đảng Pk không quá uk người

Bài toán đặt ra nhằm trả lời: có thể tìm đựơc một hội đồng đáp ứng được yêu cầu trên hay không?

Giả sử r = 7 , q = 4 , p = 3

Ta biểu diễn bài toán trên như sau :

Trang 19

KHOA CNTT –

ĐH KHTN

CHƯƠNG 2: TỔNG QUAN VỀ LÝ THUYẾT ĐỒ THỊ

Hình 2-1

Ri biểu diễn cho cư dân i

Cj biểu diễn cho câu lạc bộ j

Pk biểu diễn cho tổ chức chính trị k Cạnh (Ci, Rj) cho biết cư dân Rj là thành viên của câu lạc bộ Cj Cạnh (Rj, Pk) cho biết cư dân Rj tham gia đảng Pk

Cạnh (Pk, t) có trọng lượng là uk đơn vị Các cạnh còn lại có trọng lượng 1 đơn vị Bài toán trên giải bằng cách giải bài toán luồng cực đại từ đỉnh s đến đỉnh t Nếu luồng cực đại có giá trị bằng q thì ta có lời giải tối ưu

2.3.3 Luồng có chi phí cực tiểu

Ứng dụng của bài toán luồng có chi phí cực tiểu là bài toán giao hàng từ một nhà phân phối đến các đại lý sẽ được mô tả chi tiết trong phần chương trình ứng dụng

Trang 20

Một công ty cần thuê n nhân viên cho n chỗ làm dựa trên các cuộc kiểm tra

về khả năng , điểm tốt nghiệp và thư giới thiệu Dùng chỉ số uij biểu diễn sự phân công nhân viên i vào công việc j Giá trị của uij là sự đánh giá cho sự phân công này Mục tiêu của chúng ta là xác định một cách phân công sao cho tổng chỉ số uij

là lớn nhất

Một huấn luyện viên bơi lội phải lựa chọn từ 8 vận động viên xuất sắc nhất một đội bơi tiếp sức gồm 4 người Mỗi người sẽ bơi một kiểu (bơi sấp, bơi ngửa, bơi bướm, bơi tự do) Huấn luyện viên biết rõ thời gian cho mỗi vận động viên thực hiện kiểu bơi của mình Vấn đề đặt ra là phải tìm ra một đội với các vận động viên và thứ tự bơi phù hợp sao cho tổng thời gian tiếp sức giữa hai kiểu bơi là ít nhất Nhận thấy bài toán phân công này có |N1|>|N2| Tuy nhiên, chúng ta có thể thêm vào một số các nút giả nhằm làm cho |N1| = |N2|

Trang 21

KHOA CNTT –

ĐH KHTN

CHƯƠNG 3: LUỒNG CỰC ĐẠI

CHƯƠNG 3 : LUỒNG CỰC ĐẠI

3.1 Định nghĩa và ký hiệu

Cho đồ thị G = (N,A) có độ thông qua của mỗi cạnh uij ≥ 0

Đặt U = max {uij: (i j) ∈ A}

A(i) là tập các cạnh kề với nút i

G có chứa 2 nút đặc biệt: nút nguồn s và nút đích t

Vấn đề đặt ra là xác định luồng cực đại từ nút nguồn s đến nút đích t thỏa

độ thông qua của các cạnh và ràng buộc cân bằng khối lượng của từng nút

Ta có thể phát biểu bài toán như sau:

Cực đại giá trị v thỏa mãn:

, (

ji A

j i j

ij x x

0≤xij≤uij ∀(i,j)∈ A (3.2) Chúng ta gọi vectơ x = {xij} thỏa mãn (3.1) và (3.2) là một luồng và giá trị tương ứng của v là giá trị luồng Không mất tính tổng quát, chúng ta sẽ chỉ xem

xét bài toán luồng cực đại thỏa mãn các điều kiện sau (vì mọi bài toán luồng cực đại đều có thể được biến đổi để thỏa các điều kiện này):

1) Đồ thị liên thông

2) Trọng lượng cạnh là số nguyên không âm

3) Đồ thị không chứa đường đi có hướng từ đỉnh s đến đỉnh t gồm toàn các cung có độ thông qua không xác định

4) Nếu (i,j)∈A thì (j,i)∈A

5) Đồ thị không chứa cạnh song song

3.2 Luồng và lát cắt

Trước khi nêu ra các thuật toán giải quyết các bài toán luồng trên mạng, ta đưa ra một số khái niệm:

Trang 22

6) uij - xij là khả năng thông qua còn chưa dùng của cung (i,j)

7) giá trị luồng hiện hành xij trên cung (i,j) và ta có thể loại bỏ để tăng luồng từ nút i đến nút j

Như vậy, rij = uij - xij + xji Ta gọi mạng G(x) chứa các cung với độ thông qua thặng dư không âm rij (ứng với luồng x) là mạng thặng dư

Trang 23

KHOA CNTT –

ĐH KHTN

CHƯƠNG 3: LUỒNG CỰC ĐẠI

Ta gọi cung (i,j) với i∈S và j ∈ S là cung tới;cung (i,j) với j∈S và iS

cung lùi của lát cắt [S, S]

ij

Như vậy độ thông qua của một lát cắt s-t là chặn trên của giá trị luồng tối đa

ta có thể gửi từ các nút trong S đến các nút trong S

Lát cắt tối thiểu là lát cắt s-t có độ thông qua nhỏ nhất

3.2.3 Độ thông qua thặng dư của một lát cắt s-t

Độ thông qua thặng dư của một lát cắt s-t [S, S] là tổng các độ thông qua thặng dư của các cung tới trong lát cắt

∈ ( , ) )

, (i j S ij S

3.2.4 Luồng qua một lát cắt s-t

Ta có một số tính chất quan trọng sau:

Trang 24

S S j

i ij

,) , ( ) , (

=

Như vậy nếu ta phát hiện ra một luồng x mà giá trị của nó bằng khả năng

thông qua của một lát cắt [S, S ] nào đó thì x chính là luồng cực đại và lát cắt [S, S] chính là lát cắt tối thiểu

Tính chất 3.2

Với mọi luồng có giá trị x trong mạng, lượng luồng có thể gửi thêm từ s đền

t luôn nhỏ hơn độ thông qua thặng dư của một lát cắt s-t bất kỳ

3.3 Thuật toán đường tăng trưởng

Đây chính là thuật toán cơ bản nhất để giải bài toán luồng cực đại

Ta gọi một đường đi từ nút nguồn s đến nút đích t là một đường tăng trưởng Gọi độ thông qua thặng dư của một đường tăng trưởng là độ thông qua thặng dư nhỏ nhất của các cung trong con đường này

3 2

Hình 3-3 Ví dụ về một mạng tăng trưởng

Ví dụ trong mạng tăng trưởng trên chứa duy nhất một đường tăng trưởng: 1-3-2-4 và độ thông qua thặng dư của nó là min{1,2,1} = 1 Như vậy độ thông qua thặng dư của một đường tăng trưởng luôn luôn dương

Vì vậy, nếu mạng thặng dư chứa một đường tăng trưởng thì ta có thể tăng giá trị luồng gửi từ s đến t trong mạng Thuật toán đường tăng trưởng dựa trên cơ

sở nhận xét vừa nêu Thuật toán hoạt động theo quy trình lặp đi lặp lại việc tìm

Trang 25

KHOA CNTT –

ĐH KHTN

CHƯƠNG 3: LUỒNG CỰC ĐẠI

Thuật toán đường tăng trưởng begin

end;

end;

3.4 Thuật toán gán nhãn và định lý lát cắt tối thiểu

Trong mục này, chúng ta sẽ khảo sát thuật toán đường tăng trưởng một cách chi tiết hơn Trong mục trước, khi khảo sát thuật toán này, chúng ta đã bỏ qua một

số chi tiết quan trọng, chẳng hạn như: làm sao để tìm ra 1 đường tăng trưởng hay khẳng định luồng tăng trưởng không tồn tại trong mạng? Liệu thuật toán có dừng sau 1 số lần lặp hữu hạn hay không và dừng ở đâu, liệu thuật toán có thật sự tìm ra được luồng cực đại như mong muốn hay không? Chúng ta sẽ xem xét các vấn đề trên với 1 phiên bản cài đặt của thuật toán tăng trưởng được biết dưới tên gọi: thuật toán gán nhãn

Thuật toán gán nhãn sử dụng một kỹ thuật tìm kiếm (theo chiều rộng hay chiều sâu) để tìm một đường đi từ nút nguồn s đến nút đích t trong mạng G(x) Thuật toán sẽ lần đến tất cả các nút có thể đến từ nút nguồn theo một đường đi có hướng Tại mỗi bước, thuật toán phân hoạch tập các nút của mạng thành hai nhóm: nhóm các nút được gán nhãn và nhóm các nút không được gán nhãn Các nút được gán nhãn là các nút mà tại thời điểm đang xét, thuật toán phát hiện ra ít nhất một đường đi nối từ nút nguồn đến nút này Những nút còn lại là những nút không được gán nhãn Thuật toán lặp đi lặp lại quá trình chọn một nút có nhãn và quét theo danh sách các nút kề với nó để gán nhãn cho các nút chưa được gán nhãn Quá trình được tiếp tục cho đến khi nút t được gán nhãn Khi đó, ta tìm được một

Trang 26

KHOA CNTT –

ĐH KHTN

đa có thể có dọc theo con đường này ta sẽ tăng được giá trị x trong mạng ban đầu Với mạng G(x) mới, ta tiếp tục quá trình gán nhãn và tăng luồng cho đến khi không thể gán nhãn cho nút t Thuật toán dừng tại đây Dưới đây là thuật toán gán nhãn:

Thuật toán gán nhãn begin

repeat

Đặt mọi nút ở trạng thái không gán nhãn;

Với mọi nút j∈N, đặt prev(j) = 0;

dùng giá trị nhãn prev() để tìm đường tăng trưởng P từ s đến t ;

δ:= min {rij: (i,j) ∈ P} ; Tăng δđơn vị luồng dọc theo P và cập nhật độ thông qua thặng dư trong mạng thặng dư ;

Trang 27

Định lý 3.4: định lý về đường tăng trưởng

Một luồng x* là luồng cực đại khi và chỉ khi mạng thặng dư G(x*) không chứa đường tăng trưởng

Định lý 3.5: định lý về tính nguyên

Nếu khả năng thông qua của tất cả các cung trên mạng đều là số nguyên thì luồng cực đại có giá trị nguyên

3.4.1 Độ phức tạp của thuật toán gán nhãn

Ta sẽ khảo sát độ phức tạp của thuật toán trong trường hợp xấu nhất Nhắc lại, sau mỗi lần lặp, ngoại trừ lần sau cùng, thuật toán thực hiện một lần tăng luồng Mỗi lần tăng luồng tốn chi phí 0(m) Vấn đề còn lại là xác định tối đa có bao nhiêu lần tăng luồng Nếu tất cả các cung đều có độ thông qua nguyên ≤U, độ thông qua của lát cắt (s,N-{s} ) không vượt quá nU Như vậy, giá trị luồng cực đại không quá nU Từ đây suy ra độ phức tạp của thuật toán là 0(nmU)

3.4.2 Hạn chế của thuật toán gán nhãn

Thuật toán gán nhãn có thể là thuật toán đơn giản nhất dùng để giải bài toán luồng cực đại trên mạng Trong thực nghiệm, thuật toán họat động đủ tốt Tuy nhiên trường hợp xấu nhất của thuật toán sẽ không thỏa mãn yêu cầu về tốc độ khi

U quá lớn Ví dụ, nếu U=2n, chi phí thuật toán sẽ là hàm mũ của số nút trên mạng Hơn nữa, thuật toán sẽ thực hiện rất nhiều vòng lặp

Hạn chế thứ hai của thuật toán là nếu độ thông qua của các cung là số vô tỷ, thuật toán có thể không dừng Vì vậy, để đảm bảo tính hiệu quả của thuật toán, ta cần chọn đường tăng trưởng một cách cẩn thận

Hạn chế thứ ba là sự lãng phí Trong mỗi bước lặp, ta thực hiện quá trình

Trang 28

Cực đại hóa v thỏa ràng buộc:

, (

ji A

j i j

ij x x

Trong mục trước, ta đã khảo sát trường hợp đặc biệt của bài toán này khi tất

cả lij = 0 Trong khi bài toán luồng trên mạng có chặn dưới bằng không luôn có lời giải thì bài toán luồng trên mạng lớn hơn không có thể không có lời giải thích hợp

Ví dụ:

Hình 3-4: Bài toán luồng cực đại không có luồng tương thích

Bài toán trên không có lời giải vì cung (1,2) phải mang tối thiểu đơn vị luồng trong khi cung (2,3) chỉ mang được tối đa 4 đơn vị luồng Như vậy, ta không thể thỏa mãn cân bằng vật chất tại nút 2

Như vậy, mọi bài toán tìm luồng cực đại có chặn dưới phải giải quyết hai vấn đề:

™ Xác định xem bài toán có tồn tại luồng khả thi không

™ Nếu có thì thiết lập luồng cực đại

Trang 29

KHOA CNTT –

ĐH KHTN

CHƯƠNG 3: LUỒNG CỰC ĐẠI

Chính vì vậy không có gì ngạc nhiên khi hầu hết các thuật toán bao gồm hai giai đoạn Giai đoạn thứ nhất kiểm tra sự tồn tại của luồng khả thi và trong giai đoạn hai, nếu tồn tại sẽ biến đổi luồng khả thi thành luồng cực đại Phần tiếp theo

sẽ cho chúng ta thấy rằng mỗi giai đoạn của thuật toán sẽ tương đương với một lần giải bài toán luồng cực đại không có chặn dưới Nghĩa là để giải bài toán luồng trên mạng có chặn dưới, ta cần giải hai bài toán luồng trên mạng không có chặn dưới Để thuận tiện, chúng ta sẽ khảo sát giai đoạn hai trước

3.5.1 Xác định luồng cực đại

Giả sử ta có một luồng khả thi x trên mạng.Ta có thể hiệu chỉnh một thuật toán tìm luồng cực đại trên mạng không có chặn dưới bất kỳ để tìm luồng cực đại trên mạng của bài toán ta đang xét Ta chỉ cần thực hiện các hiệu chỉnh sau: định nghĩa độ thông qua thặng dư của cung (i,j) là rij = (uij - xij) + (xji - lji) hạng thức đầu tiên trong biểu thức thể hiện khả năng thông qua tối đa của luồng chạy từ i đến j thông qua cung (i,j) và hạng thức thứ hai thể hiện khả năng tăng tối đa của luồng chạy từ i đến j thông qua việc giảm luồng trên cung (j,i) Lưu ý x là luồng khả thi nên rij 0 Do thuật toán tìm luồng cực đại trình bày trong phần trước chỉ làm việc trên mạng thặng dư nên ta có thể dùng nó để thiết lập luồng cực đại trên mạng Thuật toán này dừng khi ta nhận được giá trị luồng thặng dư tối ưu Từ giá trị luồng thặng dư này,ta có thể tính ra luồng cực đại

Định lý 3.6: Định lý lát cắt nhỏ nhất mở rộng

Nếu khả năng thông qua của một lát cắt s-t [S,S] trên mạng có cả chặn trện

và chặn dưới định nghĩa như sau: ∑ ∑

ij S

S j

x

v thì luồng cực đại gửi từ s

đến t sẽ có giá trị bằng khả năng thông qua cuả lát cắt nhỏ nhất

3.5.2 Xây dựng luồng khả thi

Bây giờ việc còn lại là xác định một luồng khả thi trên mạng Trước tiên, chúng ta sẽ chuyển đổi bài toán luồng cực đại sang bài toán lưu thông bằng cách thêm vào mạng cung (t,s) với khả năng thông qua vô hạn ∞ Cung này sẽ chuyển

Trang 30

KHOA CNTT –

ĐH KHTN

thông, luồng đi ra từ một nút bất kỳ (kể cả nút s và t) bằng đúng luồng vào nó Dễ dàng thấy rằng, bài toán luồng cực đại có luồng khả thi khi và chỉ khi bài toán lưu thông tương ứng có luồng khả thi Bây giờ, ta sẽ tìm điều kiện cần và đủ để bài toán lưu thông trên mạng có chặn trên và chặn dưới có luồng khả thi

Bài toán xác định luồng khả thi của bài toán lưu thông là bài toán tìm một luồng x thỏa mãn các ràng buộc sau:

0

A j

)('

A j

0

A j

b )( ij xuất hiện hai lần trong biểu thức này, một lần với dấu cộng, một lần với dấu trừ Như vậy, bài toán lưu thông tương đương với việc tìm luồng x’ thỏa mãn ràng buộc (3.11)

Lưu ý rằng, bài toán này chính là bài toán luồng khả thi chúng ta đã khảo sát ở phần trước Như đã biết, để giải bài toán luồng khả thi ta cần giải bài toán luồng cực đại trên mạng không có chặn dưới Qua đó hoặc ta xác định được một lời giải thỏa (3.11) hoặc khẳng định được rằng bài toán không có lời giải phù hợp

Nếu x’ij là luồng khả thi của (3.11) thì xij là luồng khả thi của (3.10)

3.5.3 Mô tả đặc điểm của luồng khả thi trên mạng lưu thông

Ta sẽ khảo sát sự tồn tại luồng khả thi của bài toán lưu thông

Gọi S là một tập hợp nút bất kỳ trên mạng Ta có:

Trang 31

KHOA CNTT –

ĐH KHTN

CHƯƠNG 3: LUỒNG CỰC ĐẠI

Do lij ≤xij ≤uij nên từ (3.13) suy ra:

} ) ( {j j A {j( i) A}

ji

Biểu thức (3.14) chính là điều kiện cần để tồn tại luồng khả thi Nó có nghĩa

là lượng luồng tối đa có thể gửi ra từ tập S phải lớn hơn lượng luồng tối thiểu có thể nhận bởi tập S

Ta sẽ chứng minh (3.14) là điều kiện đủ Bắt đầu từ một luồng x thỏa các ràng buộc của bài toán ngoại trừ một số vi phạm về chặn dưới Ta sẽ từng bước biến đổi x thành luồng khả thi hoặc phát hiện ra rằng một nút nào đó trong S vi phạm (3.14)

Ứng với luồng x, ta gọi một cung (i,j) là không tương thích nếu xij <lij và tương thích nếu ngược lại

Chọn một cung (p,q) không tương thích và biến nó thành tương thích bằng cách tăng luồng trên nó Do điều kiện cân bằng vật chất tại các nút, để tăng luồng trên cung (p,q), ta phải tăng luồng dọc theo một hay nhiều chu trình chứa (p,q) Ta định nghĩa mạng thặng dư như trước đây, ngoại trừ khả năng thông qua thặng dư rijđược đặt bằng uij - xij Mọi chu trình tăng trưởng chứa cung(p,q) như một cung tới phải chứa một đường đi có hướng trong G(x) cộng với cung (p,q) Ta có thể dùng thuật toán gán nhãn để tìm một đường đi từ p đến q

Ta áp dụng thủ tục này trên mỗi cung không tương thích một lần Sau mỗi bước, tính không tương thích của các cung sẽ giảm dần Lặp lại quá trình này, hoặc

ta sẽ nhận được một luồng khả thi, hoặc thuật toán gán nhãn không tìm ra đường đi

từ p đến q đối với một cung không tương thích (p,q) nào đó.Trong trường hợp này, bài toán của chúng ta sẽ không tìm ra được lời giải Thật vậy, gọi S là tập nút đã được gán nhãn trong lần áp dụng cuối cùng của thuật toán gán nhãn Rõ ràng, q∈S

và p∈S = N-S Do thuật toán gán nhãn không thể gán nhãn cho các nút thuộc S

nên mọi cung (i,j)hướng từ S đến S có khả năng thông qua bằng 0 Do đó xij = uij(i,j)∈(S,

∀ S) và xij u≤ ij (i,j)∀ ∈(S,S) Ta cũng có (p,q)∈(S,S) và xpq ≤ upq.Thay các giá trị này vào (3.13) ta có: ∑ ∑

>

} ) , ( : {j i j A {j: ( ,i) A}

ji

Trang 32

KHOA CNTT –

ĐH KHTN

Kết quả này mâu thuẫn với điều kiện (3.14) Như vậy (3.14) là điều kiện đủ cho sự tồn tại của luồng khả thi Từ đây, ta có định lý:

Định lý 3.7: điều kiện tồn tại luồng khả thi trên mạng lưu thông

Trên mạng lưu thông có chặn dưới dương tồn tại luồng khả thi khi và chỉ khi tập đỉnh S thỏa mãn điều kiện:

≤} ) , ( : {j i j A {j: ( ,i) A}

b )(

3.6 Cải tiến thuật toán đường tăng trưởng

Trong phần này, chúng ta sẽ xem xét một số phương pháp nhằm cải thiện tốc độ thực thi của thuật toán đường tăng trưởng Những thuật toán đã cải tiến này

có độ phức tạp đa thức

Chúng ta có thể giảm số lần tăng luồng (augmentation) hoặc khử chúng bằng cách nào? Trong phần này chúng ta sẽ xét 3 phương pháp cơ bản sau:

1) Tăng một lượng luồng “lớn”

2) Sử dụng các chiến lược kết hợp để giới hạn các loại đường đi tăng trưởng (augmenting path) mà chúng ta có thể sử dụng ở mỗi bước

3) Nới lỏng các ràng buộc cân bằng khối lượng ở các bước trung gian của thuật toán, và vì thế sẽ không đòi hỏi rằng mỗi lần thay đổi luồng phải là một lần tăng luồng bắt đầu ở đỉnh nguồn và kết thúc

ở đỉnh đích

Bây giờ chúng ta hãy lần lượt xem xét các phương pháp này Chúng ta đã thấy ở phần trên, thuật toán đường đi tăng trưởng tổng quát có thể chậm vì chúng thực hiện một số lớn các lần tăng luồng, mỗi lần với một lượng luồng nhỏ Quan sát này cho ta một chiến lược tự nhiên để cải tiến thuật toán đường đi tăng trưởng: tăng luồng dọc theo một đường đi có độ thông qua thặng dư lớn thì số lần tăng

Trang 33

KHOA CNTT –

ĐH KHTN

CHƯƠNG 3: LUỒNG CỰC ĐẠI

luồng sẽ giảm bớt Chúng ta sẽ xây dựng một thuật toán dựa trên chiến lược này,

đó là thuật toán tỉ lệ với độ thông qua, sẽ được khảo sát ở phần sau

Một chiến lược khác có thể thực thi và cải tiến thuật toán đường đi tăng trưởng là phát triển các phương pháp độc lập với dữ liệu độ thông qua của cung Một trong những hướng tiếp cận này là bằng cách nào đó giới hạn các lựa chọn đường đi tăng trưởng Chúng ta có thể tăng luồng theo một “đường đi ngắn nhất”

từ nguồn đến đích, với định nghĩa đường đi ngắn nhất là một đường đi có hướng trong đồ thị thặng dư có ít cung nhất

Chiến lược thứ 3 là tìm “đường đi ngắn nhất” như trong thuật toán đường đi tăng trưởng ngắn nhất, nhưng không gửi luồng theo các đường đi từ nguồn tới đích Thay cho điều đó, chúng gửi các luồng trên các cung riêng lẻ Chúng ta sẽ minh họa chiến lược này bằng thuật toán đẩy luồng được trình bày ở phần sau

Khái niệm về các nhãn khoảng cách là một phần quan trọng để thực thi các thuật toán đường đi tăng trưởng ngắn nhất và đẩy luồng Vì vậy trước khi mô tả các thuật toán cải tiến, chúng ta bắt đầu với định nghĩa về nhãn khoảng cách

3.6.1 Các nhãn khoảng cách

Một hàm khoảng cách d: N → Z+ {0} đối với độ thông qua thặng dư r∪ ij

là một hàm từ tập các đỉnh vào tập các số nguyên không âm Chúng ta nói một hàm khoảng cách là hợp lệ (valid) đối với một luồng x nếu nó thỏa mãn hai điều kiện sau:

d(i) d(j) + 1 với mọi cung (i, j) trong đồ thị thặng dư G(x) (3.16) ≤

Chúng ta nói d(i) là nhãn khoảng cách của đỉnh i và điều kiện (3.15) và (3.16) là các điều kiện hợp lệ Các tính chất sau cho thấy tại sao các nhãn khoảng cách có thể được sử dụng trong việc thiết kế các thuật toán luồng trên đồ thị

Trang 34

3.6.2 Thuật toán tỉ lệ với độ thông qua

Thuật toán này dựa vào ý tưởng tăng một lượng luồng lớn nhằm giảm số lần tăng luồng Tuy nhiên ở đây, chúng ta chỉ tăng luồng theo một đường đi có độ thông qua thặng dư đủ lớn thay vì một đường đi có độ thông qua tăng trưởng lớn nhất bởi vì chúng ta có thể dễ dàng có được đường đi này khá dễ dàng – trong thời gian O(m) Để định nghĩa thuật toán tỉ lệ với độ thông qua, ta giới thiệu một tham

số ∆, và với một luồng cho trước x, đồ thị thặng dư ∆ được định nghĩa là một đồ thị chứa các cung có độ thông qua thặng dư ít nhất là ∆ Gọi G(x, ∆) là đồ thị thặng

dư ∆ Chú ý rằng G(x,1) = G(x) và G(x, ∆) là đồ thị con của G(x) Hình 3.7 minh họa cho định nghĩa này Hình 3.7(a) cho thấy đồ thị thặng dư G(x) và hình 3.7(b) cho thấy đồ thị thặng dư ∆ G(x, ∆) với ∆ = 8

Trang 35

15 7

12

(a)Đồ thị thặng dư G(x); (b) Đồ thị thặng dư G(x, ) với = 8 ∆ ∆

Hình 3-5 Minh họa đồ thị thặng dư

Thuật toán Đo độ thông qua begin

x := 0;

∆ := 2[log U] ;

while ∆ 1 do begin

while G(x, ∆) chứa một đường đi từ đỉnh s đến đỉnh t do begin

xác định một đường đi P trong G(x, ∆);

Trang 36

KHOA CNTT –

ĐH KHTN

3.6.3 Thuật toán đường đi tăng trưởng ngắn nhất

Thuật toán đường đi tăng trưởng ngắn nhất luôn tăng luồng theo đường đi ngắn nhất từ nguồn đến đích trong đồ thị thặng dư Một phương pháp tự nhiên cho bài toán này là tìm đường đi ngắn nhất trên đồ thị thặng dư bằng thuật toán tìm kiếm theo chiều rộng Tuy nhiên, phương pháp này tốn quá nhiều thời gian Ta có thể cải tiến nó bằng cách khai thác tính chất khoảng cách nhỏ nhất từ đỉnh i bất kỳ đến đỉnh đích t là không giảm trong tất cả các lần tăng luồng Thuật toán đường đi tăng trưởng ngắn nhất thực thi bằng cách tăng luồng theo các đường đi có thể chấp nhận Nó tạo ra một đường đi có thể chấp nhận bằng cách thêm từng cung tại mỗi thời điểm Thuật toán chứa một đường đi có thể chấp nhận bộ phận (nghĩa là đường đi từ đỉnh s đến đỉnh i chỉ chứa các cung có thể chấp nhận) và thực hiện hoạt động tiến tới hoặc quay lui từ đỉnh cuối cùng trên đường đi này, ta gọi điểm này là điểm hiện hành Nếu điểm hiện hành i có (gắn với) cung có thể chấp nhận (i, j), chúng ta thực thi một hành động tiến tới và thêm cung (i, j) vào đường đi có thể chấp nhận bộ phận; ngược lại, chúng ta sẽ thực thi một hành động quay lui và quay lại cung trước đó Ta lặp lại các hành động này đến khi đường đi có thể chấp nhận bộ phận gặp đỉnh đích và khi đó chúng ta sẽ thực hiện quá trình tăng luồng Chúng ta lặp lại quá trình này đến khi luồng đạt giá trị cực đại

Thuật toán đường đi tăng trưởng ngắn nhất;

if i có một cung có thể chấp nhận then

begin

advance(i);

if i = t then augment và đặt i = s

Trang 37

KHOA CNTT –

ĐH KHTN

CHƯƠNG 3: LUỒNG CỰC ĐẠI

else retreat(i) end;

dùng chỉ số chỉ đỉnh trước pred(i) để xác định đường đi tăng trưởng P từ nguồn đến đích

δ:= min{rij : (i, j) ∈ P};

tăngδ đơn vị luồng theo đường đi P;

end;

Thuật toán đường đi tăng trưởng ngắn nhất chạy trong thời gian O(n2m)

Sự cải tiến trong thực tế

Thuật toán đường đi tăng trưởng ngắn nhất kết thúc khi d(s) n Thực tế cho thấy thuật toán này tốn quá nhiều thời gian để gán lại nhãn cho các đỉnh và phần lớn thời gian cho việc này được thực hiện sau khi đã xác định được giá trị

Trang 38

KHOA CNTT –

ĐH KHTN

trị luồng cực đại Chúng ta sẽ đưa ra một kỹ thuật có khả năng phát hiện lát cắt nhỏ nhất và vì thế xác định được sự hiện diện của luồng cực đại trước khi nhãn của đỉnh s thỏa điều kiện d(s) ≥ n

Để thực thi phương pháp này, chúng ta dùng một mảng numb có n phần tử, với chỉ số từ 0 đến n – 1 Giá trị numb(k) là số lượng đỉnh có nhãn khoảng cách bằng k Thuật toán khởi tạo mảng này bằng cách tính các nhãn khoảng cách bằng thuật toán tìm kiếm theo chiều rộng Các giá trị dương trong mảng numb liên tiếp nhau (nghĩa là numb(0), numb(1), numb(2), …, numb(l) là các số dương đến chỉ số

l và tất cả các mục còn lại sẽ là 0) Do đó khi thuật toán tăng nhãn khoảng cách của một đỉnh từ k1 đến k2, nó trừ 1 từ numb(k1) và cộng 1 vào numb(k2), và kiểm tra xem numb(k1) có bằng 0 hay không Nếu numb(k1) = 0, thuật toán kết thúc

3.6.4 Thuật toán đẩy luồng

Thuật toán này tổng quát hơn, mạnh hơn, và linh động hơn các thuật toán đường đi tăng trưởng Như đã thấy ở phần trên, các thuật toán đường đi tăng trưởng tăng luồng theo các đường đi, hoạt động cơ bản này có thể được tách ra thành những hoạt động cơ bản hơn là gửi luồng theo các cung riêng lẻ Theo cách

đó, gửi một luồngδđơn vị theo một đường đi gồm k cung được tách ra thành k hoạt động cơ bản là gửiδ đơn vị luồng theo từng cung trên đường đi Chúng ta gọi mỗi thao tác cơ bản này là một lần đẩy

Thuật toán đẩy luồng đẩy luồng theo các cung riêng lẻ thay vì trên một đường đi tăng trưởng do đó nó không thỏa các ràng buộc khối lượng ở các bước trung gian Thực tế, các thuật toán này cho phép luồng đi vào một đỉnh vượt quá luồng đi ra đỉnh đó Như vậy , ta có hàm x: A → R thỏa ràng buộc giới hạn và:

x

∈ } ) ( {j i A

ji - ∑ x

∈ } ) (

ji - ∑ x

∈ } ) , ( : {j j A

ij

e(i) 0 với mọi i ≥ ∈ N – {s,t} Hơn nữa, không có cung nào xuất phát từ

Trang 39

KHOA CNTT –

ĐH KHTN

CHƯƠNG 3: LUỒNG CỰC ĐẠI

Chúng ta gọi một đỉnh có giá trị vượt quá âm là một đỉnh linh động và qui ước rằng đỉnh nguồn và đích không bao giờ là đỉnh linh động Thao tác cơ bản của thuật toán này là chọn một đỉnh linh động và cố gắng để xóa bỏ sự vượt quá của nó bằng cách đẩy luồng đến đỉnh kề với nó Nhưng luồng nên được gửi đến đỉnh nào?

Vì chúng ta muốn gửi luồng đến đỉnh đích nên chúng ta đẩy luồng đến các đỉnh gần đích hơn Cũng như thuật toán đường đi tăng trưởng ngắn nhất, chúng ta đo mức độ gần đích bằng các nhãn khoảng cách vì thế gửi luồng đến gần đích hơn tương đương với đẩy luồng qua các cung có thể chấp nhận Vì vậy chúng ta chỉ gửi luồng qua các cung có thể chấp nhận Nếu đỉnh linh động đang xét không có cung

có thể chấp nhận thì chúng ta tăng nhãn khoảng cách của nó để chúng ta có thể tạo

ra ít nhất một cung có thể chấp nhận Thuật toán kết thúc khi đồ thị không chứa đỉnh linh động nào nữa Dưới đây là các hàm và thuật toán đẩy luồng

if đồ thị chứa một cung có thể chấp nhận (i, j) then

push δ := min{e(i), rij} đơn vị luồng từ đỉnh i đến đỉnh j

else thay d(i) bằng min{d(j) + 1 : (i, j)∈ A(i) và rij > 0};

end;

Trang 40

Thuật toán đẩy luồng chạy trong thời gian O(n2m)

và thuật toán đẩy luồng Trong chương này, chúng em cũng đề cập đến một vấn đề thường gặp phải trong thực tế đó là trường hợp luồng có chặn dưới Để giải bài toán này, chúng ta cần giải hai bài toán con là tìm luồng khả thi trong mạng, sau đó

Ngày đăng: 04/08/2013, 15:58

HÌNH ẢNH LIÊN QUAN

Hình 3-1 Mô tả mạng thặng dư - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 3 1 Mô tả mạng thặng dư (Trang 22)
Hình 3-5 Minh họa đồ thị thặng dư - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 3 5 Minh họa đồ thị thặng dư (Trang 35)
Hình 4-1 Minh họa thuật toán Khử chu trình âm - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 4 1 Minh họa thuật toán Khử chu trình âm (Trang 47)
Hình 4-1 Minh họa thuật toán Khử  chu trình âm - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 4 1 Minh họa thuật toán Khử chu trình âm (Trang 47)
Hình 4-2 Minh họa thuật toán đường đi ngắn nhất liên tiếp - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 4 2 Minh họa thuật toán đường đi ngắn nhất liên tiếp (Trang 52)
Hình 4-2 Minh họa thuật toán đường đi ngắn nhất liên tiếp  4.6.  Thuật toán Primal-dual - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 4 2 Minh họa thuật toán đường đi ngắn nhất liên tiếp 4.6. Thuật toán Primal-dual (Trang 52)
Hình 4-3 Minh họa thuật toán Primal-dual - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 4 3 Minh họa thuật toán Primal-dual (Trang 55)
Hình 4-3 Minh họa thuật toán Primal - dual  4.7.  Các thuật toán cải tiến - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 4 3 Minh họa thuật toán Primal - dual 4.7. Các thuật toán cải tiến (Trang 55)
Hình 5-3: Chuyển đổi bài toán bắt cặp các thành phần thành bài toán luồng - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 5 3: Chuyển đổi bài toán bắt cặp các thành phần thành bài toán luồng (Trang 64)
Hình 5-5 Hai vì dụ về hoa - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 5 5 Hai vì dụ về hoa (Trang 71)
Hình 5-7 Xác định 1 luồng tăng trưởng trong mạng thu gọn - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 5 7 Xác định 1 luồng tăng trưởng trong mạng thu gọn (Trang 76)
Hình 5-8 Xác định 1 đường tăng trưởng trong mạng ban đầu - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 5 8 Xác định 1 đường tăng trưởng trong mạng ban đầu (Trang 77)
Hình 5-8 Xác định 1 đường tăng trưởng trong mạng ban đầu  Bổ đề 5.5 - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 5 8 Xác định 1 đường tăng trưởng trong mạng ban đầu Bổ đề 5.5 (Trang 77)
Hình 6-3 Minh họa tính toán các khả năng của đỉnh - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 6 3 Minh họa tính toán các khả năng của đỉnh (Trang 88)
Hình 6-3 Minh họa tính toán các khả năng của đỉnh - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 6 3 Minh họa tính toán các khả năng của đỉnh (Trang 88)
7.3.4.2. Mô hình bài toán - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
7.3.4.2. Mô hình bài toán (Trang 98)
7.4.2. Mô hình Use Case - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
7.4.2. Mô hình Use Case (Trang 103)
Hình 7-2 Biểu đồ Use Case  7.4.2.2.  Đặc tả Use Case - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 2 Biểu đồ Use Case 7.4.2.2. Đặc tả Use Case (Trang 103)
Hình 7-3 Sơ đồ các lớp dữ liệu - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 3 Sơ đồ các lớp dữ liệu (Trang 110)
Hình 7-3 Sơ đồ các lớp dữ liệu  7.5.1.2.  Mô tả các lớp dữ liệu - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 3 Sơ đồ các lớp dữ liệu 7.5.1.2. Mô tả các lớp dữ liệu (Trang 110)
Hình 7-4 Mô tả dữ liệu tính toán - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 4 Mô tả dữ liệu tính toán (Trang 115)
Hình 7-6 Sơ đồ các màn hình - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 6 Sơ đồ các màn hình (Trang 118)
Hình 7-8 Thanh công cụ của ứng dụng - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 8 Thanh công cụ của ứng dụng (Trang 119)
7.5.3.2.3. Màn hình chính - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
7.5.3.2.3. Màn hình chính (Trang 121)
Hình 7-9 Màn hình chính - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 9 Màn hình chính (Trang 121)
Hình 7-11 Màn hình thay đổi nhu cầu của tất cả các đại lý - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 11 Màn hình thay đổi nhu cầu của tất cả các đại lý (Trang 122)
Hình 7-12 Màn hình xem thông tin, cập nhật thêm mới phương tiện - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 12 Màn hình xem thông tin, cập nhật thêm mới phương tiện (Trang 123)
7.5.3.3.3. Màn hình xem thông tin, thêm mới và cập nhật thông tin của các phương tiện  - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
7.5.3.3.3. Màn hình xem thông tin, thêm mới và cập nhật thông tin của các phương tiện (Trang 123)
Hình 7-12 Màn hình xem thông tin, cập nhật thêm mới phương tiện - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 12 Màn hình xem thông tin, cập nhật thêm mới phương tiện (Trang 123)
Hình 7-14 Sequence Diagram: Xem thông tin các đại lý - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 14 Sequence Diagram: Xem thông tin các đại lý (Trang 124)
Hình 7-15 Collaboration Diagram: Xem thông tin các đại lý - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 15 Collaboration Diagram: Xem thông tin các đại lý (Trang 125)
Hình 7-15 Collaboration Diagram: Xem thông tin các đại lý - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 15 Collaboration Diagram: Xem thông tin các đại lý (Trang 125)
Hình 7-16 Sequence Diagram: Thay đổi nhu cầu của các đại lý - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 16 Sequence Diagram: Thay đổi nhu cầu của các đại lý (Trang 126)
Hình 7-16 Sequence Diagram: Thay đổi nhu cầu của các đại lý - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 16 Sequence Diagram: Thay đổi nhu cầu của các đại lý (Trang 126)
Hình 7-17 Collaboration Diagram: Thay đổi nhu cầu của các đại lý - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 17 Collaboration Diagram: Thay đổi nhu cầu của các đại lý (Trang 127)
Hình 7-18 Sequence Diagram: Xem thông tin các phương tiện - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 18 Sequence Diagram: Xem thông tin các phương tiện (Trang 128)
Hình 7-18 Sequence Diagram: Xem thông tin các phương tiện - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 18 Sequence Diagram: Xem thông tin các phương tiện (Trang 128)
Hình 7-19 Collaboration Diagram: Xem thông tin các phương tiện - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 19 Collaboration Diagram: Xem thông tin các phương tiện (Trang 129)
Hình 7-20 Sequence Diagram: Thay đổi thông tin về các phương tiện - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 20 Sequence Diagram: Thay đổi thông tin về các phương tiện (Trang 130)
Hình 7-20 Sequence Diagram: Thay đổi thông tin về các phương tiện - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 20 Sequence Diagram: Thay đổi thông tin về các phương tiện (Trang 130)
Hình 7-21 Collaboration Diagram: Thay đổi thông tin về các phương tiện - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 21 Collaboration Diagram: Thay đổi thông tin về các phương tiện (Trang 131)
Hình 7-21 Collaboration Diagram: Thay đổi thông tin về các phương tiện - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 21 Collaboration Diagram: Thay đổi thông tin về các phương tiện (Trang 131)
Hình 7-22 Sequence Diagram: Tìm phương pháp vận chuyển tối ưu - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 22 Sequence Diagram: Tìm phương pháp vận chuyển tối ưu (Trang 132)
Hình 7-24 Sequence Diagram: Tìm đường đi ngắn nhất từ nhà cung cấp đến - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 24 Sequence Diagram: Tìm đường đi ngắn nhất từ nhà cung cấp đến (Trang 134)
Hình 7-25 Collaboration Diagram: Tìm đường đi ngắn nhất từ nhà cung cấp - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 25 Collaboration Diagram: Tìm đường đi ngắn nhất từ nhà cung cấp (Trang 134)
Hình 7-25 Collaboration Diagram: Tìm đường đi ngắn nhất từ nhà cung cấp  đến các đại lý - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 25 Collaboration Diagram: Tìm đường đi ngắn nhất từ nhà cung cấp đến các đại lý (Trang 134)
Hình 7-26 Sequence Diagram: Xuất lịch giao hàng - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 26 Sequence Diagram: Xuất lịch giao hàng (Trang 135)
Hình 7-27 Collaboration Diagram: Xuất lịch giao hàng - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 27 Collaboration Diagram: Xuất lịch giao hàng (Trang 136)
Hình 7-27 Collaboration Diagram: Xuất lịch giao hàng  7.7.  Cài đặt - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 27 Collaboration Diagram: Xuất lịch giao hàng 7.7. Cài đặt (Trang 136)
Khởi động chương trình, màn hình chính được trình bày như sau: - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
h ởi động chương trình, màn hình chính được trình bày như sau: (Trang 137)
Hình 7-28 Màn hình  chính - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 28 Màn hình chính (Trang 137)
Hình 7-29 Đường đi ngắn nhất từ nhà cung cấp đến các đại lý - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 29 Đường đi ngắn nhất từ nhà cung cấp đến các đại lý (Trang 138)
Hình 7-30 Đường đi ngắn nhất từ nhà cung cấp đến một đại lý - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 30 Đường đi ngắn nhất từ nhà cung cấp đến một đại lý (Trang 139)
Hình 7-31 Đường đi có chi phí thấp nhất - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 31 Đường đi có chi phí thấp nhất (Trang 140)
Hình 7-32 Màn hình cập nhật thông tin các đại lý - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 32 Màn hình cập nhật thông tin các đại lý (Trang 141)
Hình 7-33 Màn hình cập nhật nhu cầu cho 1 đại lý - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 33 Màn hình cập nhật nhu cầu cho 1 đại lý (Trang 142)
Hình 7-34 Màn hình thêm mới, cập nhật thông tin cho các phương tiện - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 34 Màn hình thêm mới, cập nhật thông tin cho các phương tiện (Trang 143)
Hình 7-34 Màn hình thêm mới, cập nhật thông tin cho các phương tiện - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 34 Màn hình thêm mới, cập nhật thông tin cho các phương tiện (Trang 143)
Kết xuất lịch giao hàng dưới dạng văn bản Đóng màn hình - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
t xuất lịch giao hàng dưới dạng văn bản Đóng màn hình (Trang 144)
Hình 7-35 Màn hình hiển thị lịch giao hàng - NGHIÊN cứu một số vấn đề của LÝTHUYẾT đồ THỊ ỨNG DỤNG TRONG GIẢIQUYẾT một số bài TOÁN THỰC tế
Hình 7 35 Màn hình hiển thị lịch giao hàng (Trang 144)

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