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

Một số thuật toán giải bài toán phủ tập hợp và ứng dụng

77 133 0

Đ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 77
Dung lượng 2,67 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Với độ phức tạp tính toán cao của các bài toán tối ưu tổ hợp cũng như đòi hỏi về mặt thời gian, việc giải các bài toán này với tính chất tuần tự của các giải thuật sẽgặp phải những vấn đ

Trang 1

ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

VÀ TRUYỀN THÔNG

HOÀNG XUÂN THÁI

MỘT SỐ THUẬT TOÁN GIẢI BÀI TOÁN

PHỦ TẬP HỢP VÀ ỨNG DỤNG

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Thái Nguyên - Năm 2014

Số hóa bởi Trung tâm Học liệu http://w w w.lr c -t n u.edu vn/

Trang 2

http://w w w.lr c -t n u.edu vn/

Số hóa bởi Trung tâm Học liệu

ĐẠI HOẠC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

VÀ TRUYỀN THÔNG

HOÀNG XUÂN THÁI

MỘT SỐ THUẬT TOÁN GIẢI BÀI TOÁN

PHỦ TẬP HỢP VÀ ỨNG DỤNG

Chuyên ngành: KHOA HỌC MÁY TÍNH

Mã số : 60.48.01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

NGƯỜ HƯỚNG DẪN KHOA HỌC

GS TS ĐẶNG QUANG Á

Thái Nguyên - Năm 2014

I

Trang 3

http://w w w.lr c -t n u.edu vn/

Số hóa bởi Trung tâm Học liệu 2 MỤC LỤC Trang LỜI CẢM ƠN 4

LỜI CAM ĐOAN 5

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT 6

DANH MỤC BẢNG 7

DANH MỤC HÌNH 8

MỞ ĐẦU 9

Chương 1 TỔNG QUAN 11

1.1 KIẾN THỨC CƠ SỞ VỀ LÝ THUYẾT BÀI TOÁN NP-HARD 11

1.1.1 Định nghĩa về lớp bài toán P và NP 11

1.1.2 Các ví dụ về bài toán NP 14

1.2 LÝ THUYẾT QUY HOẠCH TOÁN HỌC 15

1.2.1 Khái niệm chung 16

1.2.2 Quy hoạch tuyến tính 19

1.2.3 Quy hoạch rời rạc 22

1.3 TỔNG KẾT CHƯƠNG 25

Chương 2 BÀI TOÁN PHỦ TẬP HỢP 26

2.1 GIỚI THIỆU BÀI TOÁN PHỦ TẬP HỢP 26

2.1.1 Một số ví dụ về bài toán phủ tập hợp 26

2.1.2 Bài toán phủ tập hợp 28

2.2 MỘT SỐ KẾT QUẢ LÝ THUYẾT VỀ BÀI TOÁN PHỦ TẬP HỢP 29

2.2.1 Hướng tiếp cận giải bài toán SCP 29

Trang 4

http://w w w.lr c -t n u.edu vn/

Số hóa bởi Trung tâm Học liệu 3 2.2.2 Một số phương pháp tìm giải pháp gần tối ưu cho bài toán SCP 31

2.3 THUẬT TOÁN HEURISTIC GIẢI BÀI TOÁN PHỦ TẬP HỢP 35

2.3.1 Thuật toán Heuristic 35

2.3.2 Ứng dụng thuật toán Heuristics giải bài toán SCP 36

2.3.3 Tính hiệu quả của thuật toán Heuristic 45

2.4 THUẬT TOÁN CHÍNH XÁC 50

2.4.1 Ví dụ về thuật toán nhánh cận 50

2.4.2 Thuật toán chính xác giải bài toán SCP 54

2.5 TỔNG KẾT CHƯƠNG 57

Chương 3 CÀI ĐẶT CHƯƠNG TRÌNH VÀ ỨNG DỤNG 58

3.1 BÀI TOÁN PHÂN LỊCH TRỰC BÁC SĨ 58

3.1.1 Phát biểu bài toán 58

3.1.2 Cài đặt thuật toán tham lam 59

3.1.3 Cài đặt thuật toán Nhánh cận 60

3.2 XÂY DỰNG CHƯƠNG TRÌNH PHÂN LỊCH TRỰC BÁC SĨ 64

3.2.1 Công cụ lựa chọn 64

3.2.2 Modul chương trình 64

3.2.3 Giao diện chương trình 66

3.3 THỬ NGHIỆM VÀ ĐÁNH GIÁ 70

3.4 TỔNG KẾT CHƯƠNG 70

KẾT LUẬN VÀ KIẾN NGHỊ 72

DANH MỤC TÀI LIỆU THAM KHẢO 74

Trang 5

Đặc biệt, em xin gửi lời tri ân sâu sắc đến GS TS Đặng Quang Á – người đã dành nhiều thời gian, công sức và tận tình hướng dẫn khoa học cho em trong suốt quá trình hình thành và hoàn chỉnh luận văn.

Xin chân thành cảm ơn Quý Thầy, Cô đã giảng dạy, truyền đạt cho em những tri thức quý báu, thiết thực trong suốt khóa học.

Cuối cùng xin bày tỏ lòng biết ơn đối với gia đình, người thân, bạn bè, đồng nghiệp đã giúp đỡ, động viên, đóng góp ý kiến quý báu cho em trong việc hoàn thành luận văn này.

Thái Nguyên, ngày tháng năm 2014

Tác giả

Hoàng Xuân Thái

Trang 6

http://w w w.lr c -t n u.edu vn/

Số hóa bởi Trung tâm Học liệu

5

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn trực tiếp của GS.TS Đặng Quang Á.

Mọi trích dẫn sử dụng trong báo cáo này đều được ghi rõ nguồn tài liệu tham khảo theo đúng qui định.

Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm.

Thái Nguyên, ngày tháng năm 2014

Tác giả

Hoàng Xuân Thái

Trang 7

Từ viết tắt Tên đầy đủ Diễn giải

GA Genetic Algorithm Giải thuật di truyền

LP Linear Programming Quy hoạch tuyến tính

Nondeterministic Polynomial

NP Time Thuật toán bất định trong thời gianđa thức

SA Simulated Annealing Giải thuật luyện thép

SCP Set Covering Problem Bài toán phủ tập hợp

Tiếng Việt

Trang 8

DANH MỤC BẢNG

TrangBảng 3.1 Danh sách các bác sĩ và các dịch vụ mà bác sĩ đó có thể thực hiện trongtrường hợp tổng quát 58Bảng 3.2 Thời gian trung bình (miligiây) 70

Trang 9

DANH MỤC HÌNH

Trang Hình 1.1 Mô hình phân lớp các bài toán P, NP, CO-NP, NP-Complete, NP-hard 15

Hình 1.2 Đồ thị hàm f(x) 17

Hình 2.1 Thuật toán Meta-RaPS tìm giải pháp cơ sở 38

Hình 2.2 Thủ tục cập nhật 38

Hình 2.3 Thủ tục tìm giải pháp láng giềng 39

Hình 2.4 Thuật toán Meta-RaPS giải bài toán SCP 40

Hình 2.5 Ví dụ bài toán SCP 42

Hình 2.6 Kết quả sau khi thực hiện thuật toán tham lam 43

Hình ví dụ thuật toán tham lam 44

Hình 2.7 Kết quả cây phân nhánh 52

Hình 2.8 Ma trận chi phí của bài toán người du lịch 54

Hình 2.9 Cây phân nhánh giải bài toán người du lịch 54

Hình 3.1 Giao diện chính của chương trình 67

Hình 3.2 Giao diện nạp dữ liệu 68

Hình 3.3 Giao diện phân lịch bằng thuật toán tham lam 68

Hình 3.4 Giao diện phân lịch bằng thuật toán tham lam 69

Hình 3.5 Giao diện lưu kết quả phân lịch 69

Hình 3.6 Đồ thị biểu diễn thời gian thực hiện trung bình 70

Trang 10

MỞ ĐẦU

1 Lý do chọn đề tài

Bài toán tối ưu tổ hợp là dạng bài toán có độ phức tạp tính toán cao thuộc lớp

NP khó Đã có nhiều giải thuật được đưa ra để giải quyết bài toán trên như họ giảithuật kiến (Ant Algorithm), giải thuật luyện thép SA (Simulated Annealing), giảithuật di truyền GA (Genetic Algorithm) và giải thuật Meta-Heuristic Những giảithuật này đã giải quyết các bài toán với hiệu quả cao và cho kết quả lời giải gần tốiưu

Với độ phức tạp tính toán cao của các bài toán tối ưu tổ hợp cũng như đòi hỏi

về mặt thời gian, việc giải các bài toán này với tính chất tuần tự của các giải thuật sẽgặp phải những vấn đề về thời gian thực hiện chương trình, tốc độ xử lý, khả nănglưu trữ của bộ nhớ, xử lý dữ liệu với quy mô lớn, … Kích thước bài toán tăng lên vàkhông gian tìm kiếm càng lớn yêu cầu cần phải có các giải thuật để tăng tốc độ vàhiệu quả của giải thuật

Bài toán phủ tập hợp (set covering problem) là một bài toán tối ưu tổ hợp cơbản Dạng bài toán này có rất nhiều trong thực tế như: lập lịch biểu, lập kế hoạchsản xuất, định tuyến, phân bổ đầu tư, …Đã có nhiều nghiên cứu về phương pháphiệu quả để giải quyết bài toán này bao gồm các giải thuật heuristic, thuật toán sửdụng ý tưởng tham lam (Greedy Method) và các thuật toán sử dụng các phươngpháp của quy hoạch nguyên

Vì vậy, việc tìm hiểu bài toán dạng phủ tập hợp, các thuật toán giải quyết bàitoán để từ đó ứng dụng vào trong thực tế là một việc làm có ý nghĩa khoa học vàthực tiễn Đây chính là mục đích của luận văn này

2 Đối tượng nghiên cứu

Đối tượng nghiên cứu của luận văn này là bài toán phủ tập hợp và các vấn đềliên quan, các thuật toán để giải quyết pài toán phủ tập hợp

Trang 11

3 Phạm vi nghiên cứu

Luận văn tập trung nghiên cứu các kiến thức có liên quan, các cơ sở lý thuyếtnhư: Lý thuyết các bài toán NP-hard, quy hoạch tuyến tính, quy hoạch nguyên, cácphương pháp giải chúng và áp dụng vào bài toán phủ tập hợp

4 Nhiệm vụ nghiên cứu

- Tìm hiểu và hệ thống các kiến thức cơ sở về lý thuyết các bài toán NP-hard

- Tìm hiểu về quy hoạch toán học, bài toán phủ tập hợp và ứng dụng

- Tìm hiểu một vài thuật toán chính xác giải bài toán phủ tập hợp

- Cài đặt và thử nghiệm một vài thuật toán

5 Những nội dung nghiên cứu chính

Bố cục của luận văn gồm phần mở đầu trình bày lý do chọn đề tài, đối tượng vànhiệm vụ nghiên cứu của đề tài Chương một, tập trung trình bày những kiến thứctổng quan về lý thuyết NP-hard và quy hoạch toán học Chương hai, giới thiệu bàitoán phủ tập hợp, một số kết quả lý thuyết về bài toán phủ tập hợp, trình bày thuậttoán Heuristic và thuật toán chính xác giải bài toán phủ tập hợp Chương 3, ứngdụng những kiến thức về bài toán phủ tập hợp và những thuật toán đã trình bày,trong chương này chúng tôi trình bày phần cài đặt chương trình ứng dụng

Với những kết quả đạt được, phần cuối của luận văn nêu ra những phép đotính hiệu quả của nghiên cứu, đánh giá thuật toán và nêu vài đề xuất nhằm tối ưuthuật toán, đánh giá các kết quả đạt được, những hạn chế và đề xuất hướng nghiêncứu tiếp theo của đề tài

6 Phương pháp nghiên cứu

- Phương pháp đọc tài liệu

- Phương pháp quan sát

- Phương pháp phân tích – tổng hợp lý thuyết

- Phương pháp thực nghiệm

Trang 12

Chương 1 TỔNG QUAN

1.1 KIẾN THỨC CƠ SỞ VỀ LÝ THUYẾT BÀI TOÁN NP-HARD

1.1.1 Định nghĩa về lớp bài toán P và NP

1.1.1.1 Khái niệm các loại thời gian tính

Thời gian tính tốt nhất: là thời gian tính tối thiểu cần thiết để thực hiện thuậttoán với mọi bộ dữ liệu đầu vào kích thước n

Thời gian tính tồi nhất: là thời gian tính tối đa cần thiết để thực hiện thuật toánvới mọi bộ dữ liệu đầu vào có kích thước n

Thời gian tính trung bình: là thời gian tính cần thiết để thực hiện thuật toán trênmột tập hữu hạn các bộ dữ liệu đầu vào có kích thước n Thời gian tính trung bìnhđược tính theo công thức sau:

Thời gian tính trung bình=(Tổng thời gian tính tất cả các bộ dữ liệu có thể)/ Số

bộ dữ liệu

Định nghĩa 1.1 [1] Bài toán quyết định là bài toán mà đầu ra chỉ có thể là „yes‟

hoặc „no‟ (đúng/sai, 0/1)

Đối với một bài toán quyết định, có những bộ dữ liệu vào cho ra câu trả lời (đầura) là „yes‟, chúng ta gọi đây là bộ dữ liệu „yes‟, nhưng cũng có những bộ dữ liệuvào cho ra câu trả lời là „no‟, chúng ta gọi những bộ dữ liệu này là bộ dữ liệu „no‟

- Bài toán kiểm tra tính hợp số: “Có phải số n là hợp số?”, để xác nhận câu trảlời „yes‟ cho đầu vào n, chúng ta có thể đưa ra một ước số b (1<b<n) của n

Để kiểm tra xem b có phải là ước số của n chúng ta có thể thực hiện phép chi

Trang 13

n cho b sau thời gian đa thức Trong ví dụ này, b là bằng chứng ngắn gọn (vìb<n) và dễ dàng kiểm tra (có thuật toán đa thức để kiểm tra b đúng là ước sốcủa n không).

- Đối với bài toán Hamilton, để xác nhận câu trả lời „yes‟ cho đồ thị đã cho G,chúng ta có thể đưa ra một chu trình Hamilton của đồ thị:

v1, v2, v3, …, vn, v1Việc kiểm tra dãy đỉnh nói trên có là chu trình Hamilton của đồ thị đã cho haykhông có thể thực hiện sau thời gian đa thức Khi đó chúng ta nói dãy đỉnh nói trên

là bằng chứng ngắn gọn dễ kiểm tra để xác nhận câu trả lời „yes‟ của bài toánHamilton

- Đối với bài toán về tính chấp nhận được của biểu thức Bun, để xác nhận câutrả lời „yes‟ đối với một biểu thức đã cho, chúng ta chỉ cần đưa ra một bộ giátrị các biến số mà tại đó biểu thức nhận giá trị true Việc tính giá trị của biểuthức tại một bộ giá trị có thể thực hiện sau thời gian đa thức

Một các tương tự, có thể đưa ra khái niệm bằng chứng ngắn gọn dễ kiểm tra đểxác định câu trả lời „no‟ Đối với mỗi bài toán, việc đưa ra bằng chứng ngắn gọn dễkiểm tra để xác nhận câu trả lời „no‟ là dễ dàng hơn so với việc đưa ra bằng chứngngắn gọn xác định câu trả lời là „yes‟

1.1.1.3 Khái niệm quy dẫn

Định nghĩa 1.2 [1] Giả sử chúng ta có hai bài toán quyết định A và B Chúng

ta nói A có thể quy dẫn về B nếu như sau một thời gian tính đa thức nếu tồn tại một thuật toán thời gian đa thức R cho phép biến đổi bộ dữ liệu x của A thành bộ dữ liệu vào R(x) của B sao cho x là bộ dữ liệu yes của A khi và chỉ khi R(x) là dữ liệu vào yes của B.

Nếu A quy dẫn về được B sau thời gian đa thức và B có thể giải được sau thờigian đa thức thì A cũng có thể giải được sau thời gian đa thức

1.1.1.4 Lớp bài toán P.

Định nghĩa 1.3 [1] Chúng ta gọi P là lớp các bài toán có thể giải được trong

thời gian đa thức, NP là lớp các bài toán quyết định mà để xác định câu trả lời

Trang 14

“yes” của nó chúng ta có thể đưa ra các bằng chứng ngắn gọn dễ kiểm tra, co-NP

là lớp các bài toán quyết định mà để xác định câu trả lời “no” của nó chúng ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra.

Ví dụ 1.1 Bài toán cây khung nhỏ nhất giải được nhờ thuật toán Prim với thời

gian O(n2) thuộc lớp bài toán P

1.1.1.5 Lớp bài toán NP

Định nghĩa 1.4 [1] Ta gọi NP là lớp các bài toán quyết định mà để xác nhận

câu trả lời “yes” của nó ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra.

Ví dụ 1.2 Bài toán kiểm tra tính hợp số: “Có phải n là hợp số không?”, để xác

nhận câu trả lời “yes” cho đầu vào n ta có thể đưa ra một ước số b (1<b<n) của n.

Để kiểm tra xem b có phải là ước số của n hay không ta có thể thực hiện phép chia

n cho b sau thời gian đa thức Trong ví dụ này dễ thấy b là bằng chứng ngắn gọn (b<n) và dễ kiểm tra (có thuật toán thời gian tính đa thức để kiểm tra xem b có là ước số của n).

1.1.1.6 Lớp bài toán Co-NP

Định nghĩa 1.5 [1] Ta gọi Co-NP là lớp các bài toán quyết định mà để xác

nhận câu trả lời “no” của nó ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra.

Ví dụ 1.3 Bài toán kiểm tra tính nguyên tố: “Có phải n là số nguyên tố

không?”, để đưa ra bằng chứng ngắn gọn dễ kiểm tra xác nhận câu trả lời “no” cho đầu vào n ta có thể đưa ra một ước số b của n.

1.1.1.7 Lớp bài toán NP-đầy đủ (NP-Complete)

Định nghĩa 1.6 [1] Một bài toán quyết định A được gọi là NP-đầy đủ

(NP-Complete) nếu như:

- A là một bài toán NP

- Mọi bài toán trong NP đều có thể quy dẫn về A

Bổ đề Giả sử bài toán A là NP-đầy đủ, bài toán B thuộc NP, và bài toán A quy dẫn được về bài toán B Khi đó bài toán B cũng là NP-đầy đủ.

Trang 15

1.1.1.8 Lớp bài toán NP-khó (NP-Hard)

Một cách ngắn gọn có thể hiểu bài toán NP-Hard là bài toán mà không có thuật

toán thời gian tính đa thức để giải nó trừ khi P=NP, mà chỉ có các thuật toán giải

trong thời gian hàm mũ

Định nghĩa 1.7 [1] Một bài toán A được gọi là NP-khó (NP-Hard ) nếu như sự

tồn tại thuật toán đa thức để giải nó kéo theo sự tồn tại thuật toán đa thức để giải

mọi bài toán trong NP.

1.1.2 Các ví dụ về bài toán NP

Bài toán bè cực đại (MaxClique): Cho đồ thị vô hướng G=(V, E) V là tập các

đỉnh, E là tập các cạnh tương ứng các đỉnh trong V Cần tìm bè lớn nhất của G Bè

là tập các đỉnh trong đồ thị mà đôi một có cạnh nối với nhau (là một đồ thị con đầy

đủ trong đồ thị G).

Bài toán tập độc lập (Independsent set): Cho đồ thị vô hướng G=(V, E) và số

nguyên K, hỏi c ó thể tìm được tập độc lập S với |S| ≥ K Tập độc lập là tập các đỉnh trong

đồ thị mà chúng đôi một không có cạnh nối với nhau

Bài toán phủ đỉnh (Vertex cover ): Ta gọi một phủ của đồ thị vô hướng G = (V, E) là

một tập con các đỉnh của đồ thị S V sao cho mỗi cạnh của đồ thị có ít nhất một đầu mút trong S Bài toán đặt ra là: Cho đồ thị vô hướng G = (V, E) và số nguyên k Hỏi G

có phủ đỉnh với kích thước k hay không?

Một cách không hình thức, có thể nói rằng nếu ta có thể giải được một cách hiệu quả

một bài toán NP-khó cụ thể, thì ta cũng có thể giải hiệu quả bất kỳ bài toán NP bằng cách

sử dụng thuật toán giải bài toán NP-khó như một chương trình con.

Từ định nghĩa bài toán khó có thể suy ra rằng mỗi bài toán đầy đủ đều là

NP-khó Tuy nhiên một bài toán NP-khó không nhất thiết phải là NP-đầy đủ.

Cũng từ bổ đề nêu trên, ta có thể suy ra rằng để chứng minh một bài toán A nào đó là

NP-khó, ta chỉ cần chỉ ra phép qui dẫn một bài toán đã biết là NP-khó về nó.

Từ phần trình bày trên, ta thấy có rất nhiều bài toán ứng dụng quan trọng thuộc vào

lớp NP-khó, và vì thế khó hy vọng xây dựng được thuật toán đúng hiệu quả để giải chúng.

Trang 16

Do đó, một trong những hướng phát triển thuật toán giải các bài toán như vậy là xây dựngcác thuật toán gần đúng.

Hình 1.1 Mô hình phân lớp các bài toán P, NP, CO-NP, Complete và

NP-hard 1.2 LÝ THUYẾT QUY HOẠCH TOÁN HỌC

Tối ưu hóa, được khởi nguồn như một ngành của Toán học, có rất nhiều ứngdụng hiệu quả và rộng rãi trong quy hoạch tài nguyên, thiết kế chế tạo máy, điềukhiển tự động, quản trị kinh doanh, kiến trúc đô thị, công nghệ thông tin, trong việctạo nên các hệ hỗ trợ ra quyết định trong quản lý và phát triển các hệ thống lớn.Chính vì vậy, các lĩnh vực của Tối ưu hóa ngày càng trở nên đa dạng, mang nhiềutên gọi khác nhau như Quy hoạch toán học, Điều khiển tối ưu, Vận trù học, lýthuyết trò chơi …

Có thể tạm định nghĩa quy hoạch tuyến tính là lĩnh vực toán học nghiên cứu các

bài toán tối ưu mà hàm mục tiêu (vấn đề được quan tâm) và các ràng buộc (điều

kiện của bài toán) đều là hàm và các phương trình hoặc bất phương trình tuyến tính

Trang 17

- Tính toán thử và điều chỉnh mô hình nếu cần.

- Áp dụng giải các bài toán thực tế

1.2.1 Khái niệm chung

1.2.1.1 Bài toán tối ưu tổng quát

Tối ưu hóa là một trong những lĩnh vực kinh điển của toán học có ảnh hưởngđến hầu hết các lĩnh vực khoa học – công nghệ và kinh tế - xã hội Trong thực tế,việc tìm giải pháp tối ưu cho một vấn đề nào đó chiếm một vai trò hết sức quantrọng Phương pháp tối ưu là phương pháp hợp lý nhất, tốt nhất, tiết kiệm chi phí,tài nguyên, nguồn lực mà lại cho hiệu quả cao

Ví dụ 1.4 Tìm x sao cho f ( x)

Bài toán tối ưu trên có dạng cực đại hóa được giải như sau: Cho

thời điểm tới hạn vừa tìm được và tại các giá trị x = -2.2 và x = 1.8 (các điểm đầumút của đoạn [-2.2, 1.8]), ta có f(-2.2) = -3.048, f(-1)=3, f(1.8)= 1.432 Vậy giá trị xcần tìm là x= -1 Kết quả của bài toán được minh họa trên hình I.1

Trang 18

với x Như vậy, cần tìm điểm x sao cho hàm mụctiêu f(x) đạt được giá trị lớn nhất đối với bài toán Max – cực đại hóa (giá trị bé nhấtđối với bài toán Min – cực tiểu hóa).

Điểm x được gọi là phương án khả thi (hay phương ánchấp nhận được hoặc phương án, nếu nói vắn tắt) của bài toán tối ưu: Max (Min)f(x), với x Miền D được gọi là miền ràng buộc Các tọa độ thành phầncủa điểm x được gọi là các biến quyết định, còn x cũng được gọi là vectơ quyếtđịnh

Xét bài toán cực đại hóa: Max f(x), với x Điểm x

x*

được gọi là điểm tối ưu (hay phương án tối ưu) toàn cục nếu và

Trang 19

D D

f ( x), x N

D R n

R n D

f ( x), x D

R n

D D

và tồn tại một lân cận N đủ nhỏ của điểm x sao cho f ( x) .

Dễ thấy, mọi phương án tối ưu toàn cục cũng là phương án tối ưu địa phương,trong khi đó một phương án tối ưu địa phương không nhất thiết là phương án tối ưutoàn cục Trên hình …, điểm x=1 chỉ là phương án tối ưu địa phương khi xét bàitoán cực tiểu hóa

Ví dụ 1.5 Xét bài toán tối ưu sau: Max f(x)= 8x1 với điều kiện ràng buộc

x

Bài toán tối ưu trên đây còn được gọi là bài toán quy hoạch tuyến tính Người ta

đã chứng minh được rằng mọi phương án tối ưu địa phương của bài toán quy hoạchtuyến tính cũng đồng thời là phương án tối ưu toàn cục

1.2.1.2 Phân loại các bài toán tối ưu

Các bài toán tối ưu, cũng được gọi là các bài toán quy hoạch toán học, được chiathành các lớp sau [2]:

- Bài toán quy hoạch tuyến tính (BTQHTT)

- Bài toán tối ưu phi tuyến hay còn gọi là bài toán quy hoạch phi tuyến(BTQHPT), bao gồm cả bài toán quy hoạch lồi (BTQHL) và bài toán quyhoạch toàn phương (BTQHTP)

- Bài toán tối ưu rời rạc, bài toán tối ưu nguyên và hỗn hợp nguyên

- Bài toán quy hoạch động

Trang 20

- Bài toán quy hoạch đa mục tiêu.

- Bài toán quy hoạch ngẫu nhiên/ mờ …

Các phương pháp toán học giải các lớp bài toán tối ưu tổng quát như nêu trênđây được gọi là các phương pháp tối ưu toán học (hay các phương pháp quy hoạchtoán học)

1.2.2 Quy hoạch tuyến tính

1.2.2.1 Phát biểu bài toán

Bài toán quy hoạch tuyến tính trong [2] là bài toán có dạng

Miền xác định: tập hợp các véc tơ x thỏa mãn (2) và (4)

Phương án bài toán: véc tơ x thỏa mãn (2) và (4)

Nếu ( x1 , , x n

) là phương án của bài toán, x0

j

thì X , x n ) gọi là

phương án mở rộng của bài toán (1) – (4)

Phương án X* đạt cực đại (1) gọi là phương án tối ưu Phương án mở rộng X *

gọi là phương án tối ưu mở rộng nếu X* là phương án tối ưu

Ký hiệu:

Trang 21

L – miền xác định của bài toán (1) – (4)

(L, C) – kí hiệu bài toán qui hoạch tuyến tính (1) – (4)

X(L, C) – phương án tối ưu của bài toán (1) – (4)

X (L, C) – phương án tối ưu mở rộng của bài toán (1) – (4)

L C là tập hợp các phương án tối ưu của bài toán (L, C)

Bài toán quy hoạch tuyến tính gọi là giải được nếu tồn tại phương án tối ưu

1.2.2.2 Dạng chính tắc của bài toán qui hoạch tuyến tính

Gọi A j là vectơ điều kiện thứ j của bài toán (5) – (7)

B là vectơ ràng buộc của bài toán (5) – (7)

Phương án X của bài toán (5) – (7) gọi là tựa nếu các véc tơ điều kiện ứng với

các thành phần dương của nó là độc lập tuyến tính

Trang 22

Cơ sở của phương án tựa X là tập hợp A j x j Các thành phần của phương

án tựa ứng với các vectơ cơ sở gọi là các thành phần cơ sở (các biến tương ứng gọi

là biến cơ sở), các thành phần còn lại gọi là các thành phần phi cơ sở (các biếntương ứng gọi là biến cơ sở)

Nếu X phương án tựa của bài toán quy hoạch tuyến tính,

( A j1 , , A jk )là cơ sở của phương án tựa, B thì hàm mụctiêu

Bảng đơn hình T i gọi là bảng đơn hình đầy đủ

Phương án tựa bài toán (5) – (7) gọi là không suy biến nếu số ràng buộc của hệ

(6) – (7) mà phương án thỏa mãn với dấu bằng bằng đúng n (các ràng buộc này là

độc lập tuyến tính) Phương án tựa là suy biến nếu số ràng buộc mà phương án tựa

thỏa mãn chặt là lớn hơn n.

Phương án tựa X của bài toán (5) – (7) là không suy biến nếu các thành phần cơ

sở của nó là dương Cơ sở của phương án tựa không suy biến xác định duy nhất.Ứng với phương án tựa suy biến có nhiều cơ sở

Tiêu chuẩn tối ưu: để cho phương án mở rộng

kiện cần và đủ là tồn tại cơ sở B sao cho

Trang 23

phương án tựa của bài toán quy hoạch tuyến tính.

Nếu x 0 j thì bảng đơn hình T là chuẩn (đối ngẫu chấp nhận được),

vectơ X gọi là giả phương án, X gọi là giả phương án mở rộng

1.2.3 Quy hoạch rời rạc

1.2.3.1 Định nghĩa [2]

Trong các bài toán quy hoạch tuyến tính, các biến số có thể nhận những giá trịthực không âm Tuy nhiên, trong thực tiễn thường gặp các bài toán mà các biến sốchỉ có thể nhận một số hữu hạn hay đếm được giá trị, thường là các giá trị nguyên.Chẳng hạn sẽ là vô nghĩa khi đưa ra câu trả lời: cần sản xuất nửa cái bàn hay cầnthuê 2,7 cái ô tô để vận chuyển hàng hóa … Trong một số bài toán, chẳng hạn bàitoán vận tải với các lượng hàng cung và cầu là các số nguyên, song nhiều bài toánkhác thì không phải như vậy vì thế trong chương này sẽ đề cập đến nội dung vàphương pháp giải các bài toán tối ưu trên lưới các điểm nguyên hay trên các tập rờirạc, gọi tắt là bài toán quy hoạch rời rạc hay bài toán quy hoạch nguyên Bài toánquy hoạch rời rạc có dạng sau:

Tìm cực đại của hàm

có dạng:

f (x, y) phụ thuộc hai nhóm biến x và y với các ràng buộc

Trang 24

có bài toán quy hoạch nguyên tuyến tính, còn nếu D là tập các véc tơ p thành phần 0

hay 1 thì ta có bài toán quy hoạch nguyên 0 – 1

Nếu q = 0, nghĩa là chỉ có các biến rời rạc x1 , x2 , ,

x p thì ta có bài toán được gọi

là bài toán quy hoạch nguyên hoàn toàn Còn nếu q>0 thì bài toán được gọi là bài toán nguyên bộ phận.

1.2.3.2 Các bài toán thực tế dẫn tới quy hoạch rời rạc

Bài toán vận tải

Có m kho hàng (điểm phát) chứa một loại hàng hóa, lượng hàng ở kho i là a i

n nơi tiêu thụ (điểm thu), nhu cầu ở nơi thu là b j , cijlà chi phí vận chuyển một đơn

vị hàng từ điểm phát i đến điểm thu j Xác định các lượng hàng vận chuyển xij từ

các điểm phát i tới các điểm thu j sao cho tổng chi phí là nhỏ nhất và nhu cầu các

điểm thu được thỏa mãn

Dạng toán học của bài toán là:

(13)

i

Nếu các ai và bj là nguyên thì đa diện lồi xác định bởi các ràng buộc của bàitoán có mọi đỉnh đều là nguyên Do đó ta có thể dùng phương pháp đơn hình để giảibài toán quy hoạch tuyến tính này, lời giải cuối cùng nhận được sẽ là một phương

Trang 25

Bài toán phân việc

Có n đơn vị sản xuất cần sản xuất n loại sản phẩm, cij là chi phí cho đơn vị i sản xuất sản phẩm j Hãy phân công mỗi đơn vị sản xuất một sản phẩm để tổng chi phí

Bài toán cái túi

Có một cái túi chứa được nhiều nhất một trọng lượng là b, có n đồ vật cần mang, đồ vật j nặng aj, giá trị của nó là cj Bài toán đặt ra là cho những đồ vật nào

vào túi để tổng giá trị của nó lớn nhất Ký hiệu x j là số đồ vật j được đưa vào túi.

Dạng toán học của bài toán là:

j

j

x j

Bài toán xếp hàng lên tàu

Một tàu chở hàng có trọng tải T và thể tích K, tàu chở n loại hàng, hàng loại j có

số lượng là s j , có trọng lượng là aj, thể tích bj và giá trị sử dụng là c j Bài toán đặt ra

Trang 26

Ở đây, không giảm tính tổng quát của bài toán ta có thể giả sử các hệ số T, K,

a j , b j , c j (với mọi j) đều là các số dương.

1.3 TỔNG KẾT CHƯƠNG

Mục đích của bài toán tối ưu tổ hợp là tìm lời giải tốt nhất trong các lời giải cóthể và không gian tìm kiếm lời giải của bài toán là rời rạc Nhiều bài toán tối ưu tổhợp có độ phức tạp tính toán cao và được phân lọai thuộc lớp NP khó Qua việc tìmhiểu các dạng bài toán NP và phương pháp quy hoạch toán học chúng ta thấy rằngviệc tìm ra lời giải tối ưu cho các bài toán này cho các hệ thống song song lớn nhấtcũng không thể hoàn thành được trong giới hạn thời gian cho phép vì vậy các kỹthuật heuristic cho việc giải các bài toán tổ hợp theo hướng xấp xỉ đã được pháttriển để tìm ra các lời giải gần tối ưu (hay xấp xỉ ) trong giới hạn thời gian cho phép.Trong phần tiếp theo chúng ta sẽ nghiên cứu sâu hơn về bài toán phủ tập hợp vớicác bài toán liên quan để từ đó nghiên cứu các thuật toán giải quyết bài toán phủ tậphợp

Trang 27

Chương 2 BÀI TOÁN PHỦ TẬP HỢP

Bài toán phủ tập hợp (Set Covering Problem – SCP) là một mô hình toán họccho nhiều ứng dụng quan trọng như lập lịch biểu, quy hoạch dịch vụ, phân tích dữliệu logic, đơn giản hóa biểu thức Boolean SCP là bài toán NP đầy đủ nên việc xâydựng thuật toán tìm nghiệm tối ưu hay nghiệm xấp xỉ là rất khó khăn Tuy nhiêncấu trúc các thể hiện của bài toán trong thế giới thục cung cấp thêm những thông tinngữ cảnh cho phép giải quyết bài toán SCP kích thước khá lớn với nghiệm đạt đượcsai khác so với nghiệm tối ưu chỉ khoảng 1% trong khoảng thời gian tính toán chấpnhận được Các phương pháp giải bài toán SCP trong thực tế dựa trên nhiều cáchtiếp cận khác nhau và có thể phân loại thành các lớp như lớp thuật toán dựa trên lýthuyết quy hoạch tuyến tính, lớp các thuật toán heuristics và lớp các thuật toánnhánh-cận

2.1 GIỚI THIỆU BÀI TOÁN PHỦ TẬP HỢP

2.1.1 Một số ví dụ về bài toán phủ tập hợp

Bài toán phủ tập hợp (Set Covering Problem – SCP) là mô hình của nhiều ứngdụng quan trọng Để hiểu rõ hơn về mô hình toán học của bài toán phủ tập hợp tổngquát chúng ta sẽ xét một số ví dụ sau đây:

Ví dụ 2.1 Bài toán phân lịch bác sĩ.

Một bệnh viện ER cần phải giữ cho các bác sĩ luôn sẵn sàng phục vụ yêu cầucấp cứu, do đó mỗi bác sĩ đủ tiêu chuẩn sẵn sàng thực hiện tất cả các thủ tục y tế cóthể theo yêu cầu ( Có một danh sách chính thức của các thủ tục đó) Với mỗi bác sĩ

có trách nhiệm sẵn sàng phục vụ các yêu cầu cấp cứu, chúng ta có thể biết đượcmức lương bổ sung mà họ được nhận và những thủ tục y tế mà họ có thể thực hiện.Mục tiêu để lựa chọn các bác sĩ sao cho mỗi thủ tục y tế được bao phủ với chi phítối thiểu

Trang 28

k , T , j k

Ta có thể phát biểu lại bài toán trên như sau: Với m thủ tục y tế và n bác sĩ sẵn

có, dữ liệu được biểu diễn như là: A , trong đó aij nếu bác sĩ j có thể thực hiện thủ tục y tế i và aij ngược lại Hơn nữa, ta gọi c j , j là mức lương bổ

sung cần trả cho bác sĩ j cho trách nhiệm thực hiện yêu cầu cấp cứu.

Các biến: x j nếu bác sĩ j là đang phục vụ, và 0 ngược lại

Trong ví dụ trên, M là toàn bộ tập các thủ tục y tế, Mj là tập hợp các thủ tục y tế

mà bác sĩ j có thể thực hiện, và c j là mức lương bổ sung của bác sĩ j.

T là tập các bác sĩ phục vụ cho yêu cầu cấp cứu, nhớ rằng nó phải là một tập phủ của M Trong bài toán trên chúng ta đi tìm trọng số nhỏ nhất của tập phủ:

min

T

Trong đó A là một ma trận liên thuộc, e là một vectơ của 1

Ví dụ 2.2 Bài toán đóng gói được phát biểu như sau:

Giả sử chúng ta cho tập M, M j là n tập con của M, và trọng số

của các tập con là c j , j

Một tập T sao choM j với mọi j, k .

Trang 29

Giả sử A là ma trận nhị phân m C là vector thực n chiều với

các thành phần không âm Ta ký hiệu tập M Chúng ta

coi ma trận A bao gồm các hàng và các cột và c j là giá trị của cột j Người ta

nói rằng cột j phủ hàng i nếu aij Một nghiệm chấp nhận được củaSCP là tập con bất kỳ các cột S, S , sao cho mỗi hàng i được phủ ít nhấtbởi một cột j Bài toán SCP chính là việc tìm kiếm nghiệm chấp nhận được có

giá tối thiểu với mô hình toán học như sau:

(14)Trên tập các ràng buộc:

(15)

x j (16)Với x j nếu j và x j nếu ngược lại Với mỗi dòng i ta gọi

Trang 30

bỏ cột j khi tồn tại một cột k mà I jc j , hoặc cột j được loại bỏ khi

Những quy tắc này phải được áp dụng một cách cẩn thận, như việc thực hiện đơngiản một kiểm tra một cột hoặc một hàng là dư thừa có thể rất tốn thời gian trongtrường hợp bài toán có quy mô lớn, mặt khác điều đó có thể làm giảm đáng kể kíchthước trong các bài toán về thời gian

2.2 MỘT SỐ KẾT QUẢ LÝ THUYẾT VỀ BÀI TOÁN PHỦ TẬP HỢP

2.2.1 Hướng tiếp cận giải bài toán SCP

Như chúng ta đã biết các phương pháp giải bài toán SCP trong thực tế dựa trênnhiều cách tiếp cận khác nhau, trong số đó phương pháp hiệu quả nhất là dùng giảithuật heuristic và giải thuật chính xác dựa trên phương pháp giải quyết bài toán quyhoạch tuyến tính (LP) nới lỏng của bài toán SCP được định nghĩa giống như ở côngthức (14) và (15) trong đó:

0 (17)Tuy nhiên, để đưa ra lời giải chính xác cho bài toán nới lỏng này mà dựa trênnhững quy tắc chung của bài toán LP thông thường là rất tốn thời gian, có rất nhiềuthuật toán giải quyết bài toán SCP bằng cách sử dụng hàm Lagrangian nới lỏng kết

hợp với dưới hàm gradient tối ưu nhằm xác định giải pháp gần tối ưu nhất u là đối

ngẫu của bài toán LP nới lỏng được cho bởi:

Trang 31

công thức (15), bài toán con Lagrangian có dạng:

L(u)

Trong đó:

x j (20)Với c j (u) là giá trị của hàm Lagrangian liên quan đến cột j .Mặt khác, từ công thức (19) – (20) ta có x j (u) , nếu c j (u) , nếu

c j (u) thì c j (u) Chúng ta thấy rằng u, x(u) có thể được xác

định với độ phức tạp O(q) Bài toán Lagrangian đối ngẫu liên quan với công thức

(19) – (20) bao gồm việc tìm kiếm một vectơ phân tử Lagrangian u*

để làmcực đại hóa cận dưới L(u) Từ (19) – (20) ta tính được phần nguyên, bất kỳ giải

pháp tối ưu u * là đối ngẫu của phương pháp LP nới lỏng của bài toán SCP cũng làgiải pháp tối ưu cho bài toán đối ngẫu Lagrangian [11] Giải pháp khả thi cho bàitoán đối ngẫu chỉ chọn các nhân tử Lagranian là không âm, tuy nhiên không phải tất

cả vector nhân tử tương ứng thỏa mãn yêu cầu đó Mặt khác, với mỗi vector nhân tử

có khả năng được dùng để tính cận dưới bằng cách gán cho nó những giá trịLagrangian âm, cái mà vi phạm ràng buộc đối ngẫu tương ứng Hơn nữa, ta có mộtvectơ nhân tử dễ dàng sửa đổi để có một giải pháp đối ngẫu khả thi mà không làmgiảm (hoặc làm tăng) ràng buộc cận dưới Việc này được thực hiện bằng cách chọn

tham lam một cột j sao cho c j (u) , phù hợp với việc làm giảm giá trị của u i với

i cho đến khi c j (u) và lặp lại bước tham lam đó cho đến khi không còn cộtnào có giá trị lagrangian âm Chi tiết hơn chúng ta có thể tham khảo ví dụ của Balas

và Carrera [3] Vì vậy, chúng ta sẽ xác định vectơ nhân tử Lagrangian gần tối ưu

Trang 32

Phương pháp tiếp cận này tạo ra một dãy u 0 , u1 , của vectơ nhân tử

Lagrangian không âm, với u0 được xác định một cách tùy ý Khi đó ta định nghĩa u k

, k là khả

năng lựa chọn được cho bởi công thức sau:

k với i (22)Trong đó UB là một cận trên trên v(SCP) và là một tham số điều khiểntheo phương dưới gradient s(u k ) Với phương pháp Held-Karp cổ điển tham số

sẽ giảm một nửa trong trường hợp p liên tiếp lặp lại mà không làm tăng cận dưới.

2.2.2 Một số phương pháp tìm giải pháp gần tối ưu cho bài toán SCP

Một kỹ thuật thường được sử dụng để làm giảm kích thước của bài toán SCP làdựa trên việc quan sát giá trị hàm Lagrangian c j (u)cho một cận dưới để tăng cận

dưới L(u) nếu như x i được cố định là 1 Rõ ràng là, có thể cố định x i là 0 khi mà

L(u)

L(u)

Tương tự, chúng ta thấy rằng có thể cố định x i là 1 khi và chỉ khi(chúng ta có thể gọi giá trị Lagrangian đó là đối số) Kỹ thuật nàyđược gọi là cố định giá trị hàm Lagrangian

Sau đây là phần mô tả thủ tục tối ưu dưới gradient chuẩn có thể được cải tiến trong nhiều cách phổ biến, để đạt được sự hội tụ nhanh hơn cho một vectơ nhân tử

Trang 33

gần tối ưu Tiếp theo chúng ta sẽ minh họa một vài biến trong tài liệu.

Balas và Carrera [3], thay vì mở rộng ràng buộc trong công thức (15) tương ứng

với tất cả các dòng trong M, trong đó việc mở rộng các dòng trong tập con M sao

cho J i với mọi i, h , và mở rộng hàm Lagrangian bằng cách chỉlấy các dòng thuộc M \ M Với ý tưởng này chúng ta dễ dàng để giải quyết bài toán

mở rộng với độ phức tạp tính toán là O(q) , và cận dưới tốt nhất có thể đạt được

thông qua bài toán nới lỏng này vẫn tương ứng với giá trị theo phương pháp LP nớilỏng Hơn nữa, trong [3] thủ tục quy hoạch dưới gradient được đề xuất, trong đó

mỗi bước lặp vectơ nhân tử Lagrangian u được đưa vào trong phần giải pháp LP đối

ngẫu khả thi Bằng cách sử dụng giá trị hàm Lagrangian cố định, giá trị của một vàibiến có thể được cố định trong các thủ tục tối ưu hóa dưới gradient

Khi những trường hợp không gian giải quyết bài toán là rất lớn, thời gian đểmáy tính giải quyết bài toán tối ưu hóa dưới gradient cũng rất lớn Để giải quyếtkhó khăn này, Caprara, Fischetti và Toth [9] đã đưa ra bài toán lõi bao gồm một tậpcác cột thích hợp, được lựa chọn từ những giá trị hàm Lagrangian thấp nhất, và sửdụng một lược đồ biến định lượng để lặp lại việc cập nhật bài toán lõi trong mộtmạch giống như việc giải quyết bài toán quy hoạch tuyến tính quy mô lớn Việc sửdụng định lượng trong phương pháp dưới gradient tối ưu sẽ làm giảm thời gian tínhtoán rất lớn và đây là ý tưởng chính cho việc thành công của thuật toán heuristicđược đưa ra trong [9] Trong [9] các tác giả Moreover, Caprara, Fischetti và Toth đãcải cải tiến tiêu chuẩn xác định các kích thước và hướng đi trong mỗi bước củaphương pháp tối ưu hóa dưới gradient

Một cách tiếp cận đối ngẫu gốc dưới gradient được đề xuất bởi Ceria, Nobili vàSassano [10] Đặc biệt, người ta có thể xác định lại vấn đề bài toán LP đối ngẫu (18)bằng cách áp dụng cận trên ci cho mỗi biến đối ngẫu u i , i .Nếu ràng buộc , j được mở rộng trong hàm Lagrangian dựa trên

Trang 34

R m

i N

min j x j

N i I j v i x j i M v i 0,1 j N

j J i

c j (u) u i

j

vectơ nhân tử x, thì chúng ta sẽ có được bài toán Lagrange đối ngẫu tương đương

với phương pháp LP nới lỏng gốc của bài toán SCP, theo nghĩa là một giải pháp để

có được một vector nhân tử tối ưu

Một thay thế cho hàm Lagrange nới lỏng là sử dụng hàm đại diện nới lỏng đượcLorena và Lopes sử dụng Đối với một vector v của nhân tử đại diện, bài toán

đại diện nới lỏng của SCP có dạng:

mở rộng của bài toán SCP, các kết quả thực nghiệm được của Lorena và Lopes chothấy rằng việc sử dụng hàm đại diện thay vì hàm lagrangrian nới lỏng trong việc tối

ưu hóa dưới gradient cho phép tìm được phân tử gần tối ưu trong một thời gian tínhtoán ngắn hơn

Wedelin [17] đã trình bày một phương pháp thay thế để tối ưu hóa dưới

gradient mà các nhân tử gần như tối ưu Phương pháp này xem xét ứng mỗi dòng i

có thực hiện việc cập nhật vectơ nhân tử u i tương ứng không Với sẽ tínhđược giá trị Lagrangian c' (u) lần đầu tiên và giá trị này sẽ là giá trị

Trang 35

toán dựa trên giá trị u i , các giá trị của các cột còn lại trong J i được tính dựa trên giátrị u i Cách tiếp cận này đảm bảo hoạt động tốt hơn nếu được đưa vào trong thuậttoán Heuristic để giải quyết bài toán SCP.

Hầu hết các phương pháp trên được sử dụng trong các thuật toán Heuristic, mụctiêu chính không phải là tính cận dưới khả hẹp nhất có thể mà là điều khiển việc tìmgiải pháp gần tối ưu cho bài toán SCP Vì vậy, thay vì tìm hiểu việc so sánh cácphương thức theo giá trị cận dưới mà chúng tạo ra, chúng ta sẽ tìm hiểu việc so sánhhiệu quả thực hiện của các thuật toán Heuristic trong phần tiếp theo

Trong nhiều trường hợp, việc xác định cận dưới bằng hàm Lagrangian hoặcphương pháp thay thế nới lỏng là tệ hơn so với giải pháp tối ưu giá trị theo phươngpháp LP nới lỏng Theo chúng tôi, đây không phải là một nhược điểm trong cácthuật toán Heuristic, nơi mà mục tiêu chính là xác định giải pháp tốt cho bài toánSCP mà không cần nhấn mạnh việc chứng minh tối ưu Mặc khác, các thuật toánchính xác có thể thực thi tốt hơn nếu như phương pháp LP nới lỏng được giải quyết

để tối ưu

Caprara, Fischetti và Toth [9] đã đưa ra một cách tiếp cận mới để tính toán cácgiải pháp chính xác theo phương pháp LP nới lỏng Ý tưởng chính của phương phápnày là dựa trên cách tiếp cận SPRINT được mô tả trong [18] bởi Chu, Gelman vàJohnsonm cụ thể là một giải pháp cho một chuỗi các phương pháp LP nới lỏng liênquan đến bài toán lõi cho toàn bộ vấn đề, xác định lại bài toán lõi nếu giải pháp

Trang 36

không phải là tối ưu Cái mới của phương pháp này là việc sử dụng hàm Lagrangiannới lỏng để khởi tạo các biến của bài toán lõi và bài toán đối ngẫu

2.3 THUẬT TOÁN HEURISTIC GIẢI BÀI TOÁN PHỦ TẬP HỢP

2.3.1 Thuật toán Heuristic

Meta – RaPS là một meta-heuristic được phát triển bởi DePuy (2002) Nó pháttriển từ một máy tính heuristic được thiết kế bởi Arcus (1966) để giải quyết bài toáncân bằng dây chuyền lắp ráp – COMSOAL (Computer Method of SequencingOperations for Assembly Lines) Nền tảng của Meta-RaPS là việc sử dụng ngẫunhiên như là một cơ chế nhằm tránh việc tối ưu cục bộ Meta-RaPS là một thủ tụctìm kiếm lặp lại Với mỗi bước lặp, nó xây dựng một giải pháp khả thi thông quaviệc sử dụng một heuristic cơ sở một cách ngẫu nhiên, sau đó áp dụng một cải tiếnheuristic để cải thiện các giải pháp khả thi Giải pháp tốt nhất được trả về sau một

số các bước lặp

Heuristic cơ sở tạo ra một giải pháp khả thi bằng cách thêm vào những phần tử

cơ bản theo từng bước Những phần tử cơ bản trong một giải pháp cho bài toán tổhợp, bài toán du lịch, bài toán phủ tập hợp SCP, được mô tả là một tập

BE={1,2,…,n}, và những phần tử cơ bản khả thi (FE BE) là những phần tử thích

hợp để lựa chọn tại mỗi bước của giải pháp cơ sở Mỗi phần tử cơ bản khả thi được

biểu thị bởi một giá trị tham lam (P i với i ) liên quan đến một vài ràng buộc về

độ ưu tiên Phụ thuộc vào định nghĩa của các ràng buộc về độ ưu tiên, phần tử khảthi nhất có thể giả định là chi phí cao nhất hoặc thấp nhất Thay vì luôn chọn phần

tử khả thi tốt nhất như trong thuật toán heuristics tham lam, thuật toán Meta-RaPS

giới thiệu tính ngẫu nhiên thông qua hai tham số: %priority và %restriction.

%priority được xác định bằng tỉ lệ phần trăm của thời gian mà các phần tử cơ bản

khả thi tốt nhất sẽ được chọn Thời gian còn lại, phần tử được thêm vào giải pháp sẽđược lựa chọn ngẫu nhiên từ danh sách ứng cử, danh sách này bao gồm tất cả cácphần tử được xem xét có thể chấp nhận Một phần tử có thể chấp nhận là một trong

số những phần tử có giá trị tham lam gần bằng với giá trị phần tử khả thi tốt nhất

Trang 37

Tham số thứ hai, %restriction được sử dụng để xác định liệu một phần tử cơ bản

khả thi là chấp nhận được hay không và nó sẽ xuất hiện trên danh sách ứng cử viên(CL) CL được tạo bằng những cách sau đây:

Nếu phần tử khả thi tốt nhất (k) được xác định giống như là một phần tử có giá

%improverment được sử dụng để xác định có bao nhiêu giải pháp khả thi sẽ được

cải tiến Giả sử *

before improvement là giá trị hàm đối tượng tốt nhất được tìm thấy trướckhi áp dụng thủ tục cải tiến, một cấu trúc giải pháp sẽ được cải tiến nếu giá trị hàm

đối tượng của nó là Z thỏa mãn yêu cầu sau:

Z 1 cho bài toán tối thiểu hoặc

Z 1 cho bài toán tối đa

Ý tưởng cơ bản của thuật toán này là kỳ vọng rằng các giải pháp chưa được cảithiện tốt để dẫn đến giải pháp láng giềng tốt hơn

2.3.2 Ứng dụng thuật toán Heuristics giải bài toán SCP

Các bước cần thiết để áp dụng thành công thuật toán Meta-RaPS là thiết kế giảipháp cơ sở Heuristics và cải tiến nó một cách hiệu quả Để giải quyết bài toán SCP,một giải pháp heuristic cơ sở sẽ được sử dụng ở bước đầu và biểu diễn nó như thếnào để phát triển thành một thuật toán hiệu quả phối hợp với thuật toán Meta-RaPS

Trang 38

Nỗ lực đầu tiên của nghiên cứu này là để sửa đổi thuật toán heuristic tham lam

của Chvatal‟s (1979) Thuật toán heuristic tham lam đánh giá lại một cột j bằng một

hàm f (c j , k j

) , trong đó c j là trọng số của cột j, và k jlà số dòng không phủ

hiện thời cái mà có thể được phủ bởi cột j, ta có k j , và luônluôn thêm một giải pháp tập (X) những cột có giá trị c j / k

j

nhỏ nhất Trong thuật

toán Meta-RaPS, chúng ta sẽ chọn f (c j , k j

) như là ràng buộc ưu tiên, vì thế

giá trị tham lam cho mỗi cột j(Pj) là c j / k j Trong suốt thời gian %priority, cột có giá trị P j nhỏ nhất sẽ được lựa chọn, trong khi đó thời gian yêu cầu, một cột từ tập

CL sẽ được lựa chọn ngẫu nhiên Sau khi một giải pháp khả thi được xây dựng, tất

cả các cột dư thừa (cột j là dư thừa nếu X \ j vẫn còn là một tập phủ) sẽ được loại

khỏi giải pháp giống như là cột dư thừa có giá trị lớn nhất sẽ được loại bỏ trước tiên

nhất Hình 2.1 mô tả việc xác định của thuật toán heuristic greedy.

Mỗi cột trong giải pháp có một biến liên quan để biết nó có phải là cột dư thừa hay không Chúng ta định nghĩa , trong đó là số cột được

chọn mà có thể phủ dòng i Do đó, cột j là dư thừa nếu và chỉ nếu Theo điều

kiện đó biến k j và có thể dễ dàng cập nhật trong suốt bước lặp để thêm một cột

cho giải pháp như trong Hình 2.2 Giá trị khởi tạo của k j và giá trịkhởi tạo của Theo cách này, độ phức tạp để thực hiện việc thêm mộtcột và cập nhật giá trị k j và là O(q) , trong đó thời gian cần thiết cho mỗi lầnthực hiện dòng 4 là O(n) Vì vậy, thời gian cần thiết để xây dựng thủ tục này là

O(rn , trong đó r là số lượng các giải pháp được tìm thấy Vì thế số lượngtrung bình của các giải pháp là m , thời gian hoàn thành trung bình trong

trường hợp này là O(q)

Ngày đăng: 12/02/2019, 16:48

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Bùi Minh Trí (1999), “Quy hoạch toán học”, Nxb Khoa học và Kỹ thuật, Hà Nội, Tr. 13-409 Sách, tạp chí
Tiêu đề: Quy hoạch toán học
Tác giả: Bùi Minh Trí
Nhà XB: Nxb Khoa học và Kỹ thuật
Năm: 1999
[2] Nguyễn Hải Thanh (2006), “Tối ưu hóa”, Nxb Bách khoa, Hà Nội, Tr. 7-111 Tài liệu tiếng Anh Sách, tạp chí
Tiêu đề: Tối ưu hóa
Tác giả: Nguyễn Hải Thanh
Nhà XB: Nxb Bách khoa
Năm: 2006
[3] E. Balas and M.C. Carrera, “A Dynamic Subgradient-Based Branch-and-Bound Procedure for Set Covering”, Operatons Research 44 (1996) 875-890 Sách, tạp chí
Tiêu đề: A Dynamic Subgradient-Based Branch-and-BoundProcedure for Set Covering”, "Operatons Research
[4] J.E. Beasley, “An Algorithm for Set Covering Problems”, European Journal of Operational Research 31 (1987) 85-93 Sách, tạp chí
Tiêu đề: An Algorithm for Set Covering Problems”, "European Journal ofOperational Research
[5] J.E. Beasley, “A Lagrangian Heuristic for Set Covering Problems”, Naval Research Logistics 37 (1990) 151-164 Sách, tạp chí
Tiêu đề: A Lagrangian Heuristic for Set Covering Problems”, "NavalResearch Logistics
[6] J.E. Beasley and P.C. Chu, “A Genetic Algorithm for the Set Covering Problem”, European Journal of Operational Research 94 (1996) 392-404 Sách, tạp chí
Tiêu đề: A Genetic Algorithm for the Set CoveringProblem”, "European Journal of Operational Research
[7] J.E. Beasley and K. Jornsten, “Enhancing an Algorithm for Set Covering Problems”, European Journal of Operational Research 58 (1992) 293-300 Sách, tạp chí
Tiêu đề: Enhancing an Algorithm for Set CoveringProblems”, "European Journal of Operational Research
[8] M.J. Brusco, L.W. Jacobs and G.M. Thompson, “A Morphing Procedure to Supplement a Simulated Annealing Heuristic for Cost – and Coverage-Correlated Weighted Set-Covering Problems”, Working Paper, Operations Management and Information Systems Department, Northern Illinois University, 1996 Sách, tạp chí
Tiêu đề: A Morphing Procedure toSupplement a Simulated Annealing Heuristic for Cost – and Coverage-CorrelatedWeighted Set-Covering Problems
[9] A. Caprara, M. Fischetti and P. Toth, “A Heuristic Method for the Set Covering Problem”, Technical Report Or-95-8, DEIS, University of Bologna, 1995, to appear in Operations Research Sách, tạp chí
Tiêu đề: A Heuristic Method for the Set CoveringProblem”, Technical Report Or-95-8, DEIS, University of Bologna, 1995, to appearin
[10] S. Ceria, P. Nobili and A. Sassano, “A Lagrangian-Based heuristic for Large- Scale Set Covering Problems”, Technical Report R.406, IASI-CNR, Rome, 1995, to appear in Mathematical Programming Sách, tạp chí
Tiêu đề: A Lagrangian-Based heuristic for Large-Scale Set Covering Problems”, Technical Report R.406, IASI-CNR, Rome, 1995, toappear in
[11] M.L. Fisher, “An Applications Oriented Guide to Lagrangian Optimization”, Interface 15 (1985) 10-21 Sách, tạp chí
Tiêu đề: An Applications Oriented Guide to Lagrangian Optimization”,"Interface
[12] S. Haddadi, “Simple Lagrangian Heuristic for the Set Covering Problem”, European Journal of Operational Research 97 (1997) 200-204 Sách, tạp chí
Tiêu đề: Simple Lagrangian Heuristic for the Set Covering Problem”,"European Journal of Operational Research
[13] L.W. Jacobs and M.J. Brusco, “A Local Search Heuristis for Large Set- Covering Problems”, Nauval Research Logistics 52 (1995) 1129-1140 Sách, tạp chí
Tiêu đề: A Local Search Heuristis for Large Set-Covering Problems”, "Nauval Research Logistics
[14] L.A.N. Lorena and F.B. Lopes, “A surrogate Heuristic for Set Covering Problems”, European Journal of Operational Research 79 (1994) 138-150 Sách, tạp chí
Tiêu đề: A surrogate Heuristic for Set CoveringProblems”, "European Journal of Operational Research
[15] S. Martello and P. Toth, Knapsack Problems: Algorthms and Computer Implementations, J. Wiley and Sons (1990) Sách, tạp chí
Tiêu đề: Knapsack Problems: Algorthms and ComputerImplementations
[16] P. Nobili and A. Sassano, “A Separation Routine for the Set Covering Polytope”, in E. Balas, G. Cornuejols, and R. Kannan (eds.), Integer Programming and Combinatorial Optimization, Proceedings of the 2 nd IPCO Conference, Carnegie-Mellon University Press (1992) Sách, tạp chí
Tiêu đề: A Separation Routine for the Set CoveringPolytope”, in E. Balas, G. Cornuejols, and R. Kannan (eds.), "Integer Programmingand Combinatorial Optimization
[17] D. Wedelin, “An Algorithm for Large Scale 0-1 Integer Programming with Application to Airline Crew Scheduling”, Annals of Operational Research 57 (1995) 283-301 Sách, tạp chí
Tiêu đề: An Algorithm for Large Scale 0-1 Integer Programming withApplication to Airline Crew Scheduling”, "Annals of Operational Research
[18] H.D. Chu, E.L. Johnson, “Solving Large Scale Crew Scheduling Prob-lems”, European Journal of Operational Research 97 (1997) 260-268 Sách, tạp chí
Tiêu đề: Solving Large Scale Crew Scheduling Prob-lems”,"European Journal of Operational Research

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w