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

ứng dụng giải thuật di truyền giải quyết bài toán tối ưu hóa xếp dỡ hàng hóa

26 577 1

Đ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 26
Dung lượng 1,57 MB

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

Nội dung

Sau khi tìm hiểu kiến thức tổng quan và thực tế tồn tại nhiều bài toán chưa có phương pháp giải chấp nhận được hay lời giải tối ưu, các nhà nghiên cứu đã đề xuất một phương pháp tính toá

Trang 1

ĐẠI HỌC ĐÀ NẴNG

TRƯƠNG VĂN HIỀN

ỨNG DỤNG GIẢI THUẬT

DI TRUYỀN GIẢI QUYẾT BÀI TOÁN TỐI

ƯU HÓA XẾP DỠ HÀNG HÓA

Chuyên nghành : Khoa học máy tính

Mã số : 60.48.01

TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT

Đà Nẵng - Năm 2013

Trang 2

Công trình được hoàn thành tại

ĐẠI HỌC ĐÀ NẴNG

Người hướng dẫn khoa học: PGS TSKH Trần Quốc Chiến

Phản biện 1: PGS.TS Lê Văn Sơn

Phản biện 2: TS Nguyễn Quang Thanh

Luận văn được bảo vệ tại Hội đồng chấm Luận văn tốt nghiệp thạc sỹ kỹ thuật họp tại Đại học Đà Nẵng vào ngày 16 tháng 11 năm 2013

* Có thể tìm hiểu luận văn tại:

- Trung tâm Thông tin - Học liệu, Đại học Đà Nẵng

Trang 3

MỞ ĐẦU

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

Trong cuộc sống, việc đạt lợi nhuận cao hay thấp trong kinh doanh buôn bán, cung cấp dịch vụ phụ thuộc rất nhiều yếu tố..Trong

đó, có một yếu tố quan trọng đầu tiên, đóng góp một phần rất lớn đó

là xác định được dự án xếp dỡ hàng hóa từ trong kho chuyển đến các phương tiện vận chuyển Có rất nhiều tiêu chí đặt ra khi chọn các phương án: thuận tiện về giao thông, ít tốn thời gian, để làm sao chi phí bốc xếp là thấp nhất từ đó thu được lợi nhuận cao nhất Sau khi tìm hiểu kiến thức tổng quan và thực tế tồn tại nhiều bài toán chưa có phương pháp giải chấp nhận được hay lời giải tối

ưu, các nhà nghiên cứu đã đề xuất một phương pháp tính toán dựa trên quan sát về quá tình tiến hoá trong tự nhiên.Phương pháp tính toán đó được gọi là tính toán tiến hóa (Evolutionary Computation) Tính toán tiến hóa có nhiều nhánh nhỏ khác nhau, trong đó có thể kể tới giải thuật di truyền (Genetic Algorithms)

Giải thuật di truyền đã thu hút được nhiều chú ý trong những năm gần đây Lớp giải thuật này đã được chứng minh là có nhiều ưu điểm nỗi trội so với các loại thuật toán khác đặc biệt khi áp dụng chúng vào lớp bài toán tối ưu - một lớp bài toán khó và có nhiều ứng dụng trong đời sống thực tiễn

Chính những ưu điểm nổi bật của Giải thuật di truyền và nhu cầu thực tế kinh doanh buôn bán lập dự án xếp dỡ hàng hóa, em

nghiên cứu về giải thuật này và thực hiện đề tài: “Ứng dụng giải

thuật di truyền giải quyết bài toán tối ưu xếp dỡ hàng hóa”

Trang 4

2 Mục tiêu và nhiệm vụ nghiên cứu

Mục tiêu của đề tài là tìm hiểu giải thuật di truyền, xây dựng thuật toán di truyền giải quyết bài toán tối ưu xếp dỡ hàng hóa

Đề tài tập trung vào các nhiệm vụ cụ thể sau:

- Trình bày khái quát thuật toán di truyền giải quyết bài toán lập dự án bốc xếp hàng hóa để cung cấp cho khách hàng

- Triển khai thực nghiệm áp dụng thuật toán

3 Đối tượng, phạm vi và phương pháp nghiên cứu

Đối tượng nghiên cứu của đề tài

Nghiên cứu xây dựng giải thuật di truyền, bài toán vận tải cân bằng thu phát và hướng tiếp cận bài toán

Phạm vi nghiên cứu của đề tài

Đề tài tập trung nghiên cứu thuật toán di truyền giải quyết bài toán tối ưu xếp dỡ hàng hóa

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

Nghiên cứu lý thuyết: Tìm hiểu, nghiên cứu lý thuyết về thuật toán di truyền, các đặc điểm, đặc trưng của giải thuật và ứng dụng của giải thuật di truyền trong việc tìm ra lời giải tối ưu cho bài toán Nghiên cứu thực tiễn: nghiên cứu đánh giá thực nghiệm, xây dựng chương trình thực nghiệm thuật toán di truyền

5 Bố cục luận văn

Nội dung luận văn bao gồm các chương được tổ chức như sau: Chương 1: Cơ sở lý thuyết Giới thiệu lý thuyết về giải thuật di truyền Đây là kĩ thuật chính để giải quyết bài toán tối ưu chọn các địa điểm để xếp dỡ hàng hóa phục vụ khách hàng

Chương 2: Giải thuật di truyền giải quyết bài toán tối ưu xếp

dỡ hàng hóa Chương này phát biểu mô hình bài toán và hướng tiếp cận giải quyết bài toán Xây dựng giải thuật di truyền giải quyết bài toán

Trang 5

Chương 3: Xây dựng và cài đặt chương trình Chương này mô

tả chức năng của hệ thống chương trình và sử dụng ngôn ngữ lập trình cài đặt thuật toán giải bài toán tối ưu xếp dỡ hàng hóa Thể hiện

kết quả thực nghiệm

Trang 6

CHƯƠNG 1

CƠ SỞ LÝ THUYẾT

1.1 TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN

1.1.1 Lịch sử phát triển

1.1.2 Ưu và nhược điểm giải thuật di truyền

1.1.3 Sơ đồ tổng thể của giải thuật di truyền

Quá trình hoạt động của giải thuật di truyền có thể được biểu diễn bởi lưu đồ dưới đây:

Trang 7

1.1.4 Các cách biểu diễn trong giải thuật di truyền

- Biểu diễn bằng chuỗi nhị phân

- Biểu diễn bằng số nguyên

- Biểu diễn bằng chữ cái

1.1.7 Lập trình song song và thuật toán song song

1.1.8 Thuật toán di truyền tuần tự cho bài toán tối ưu hóa hàm nhiều biến

1.1.9 Song song hóa giải thuật di truyền trong bài toán tối

ưu hóa hàm nhiều biến

1.1.10 Đánh giá chương trình song song với chương trình tuần tự

1.2 TỔNG QUAN VỀ BÀI TOÁN TỐI ƯU

1.2.1 Bài toán tối ưu tổng quát và phân loại

a) 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

Trang 8

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 quan trọng Phương án tối ưu là phương án 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

b) 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òn được gọi là các bài toán quy hoạch toán học, được chia ra thành các lớp sau:

– Bài toán quy hoạch tuyến tính

– 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, bao gồm cả bài toán quy hoạch lồi và bài toán quy hoạch toàn phương

– 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,

– 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ạch toán học) Trong luận văn này, chúng ta nghiên cứu các phương pháp giải dạng đặc biệt của bài toán quy hoạch tuyến tính, đó là bài toán vận tải cân bằng thu phát

1.2.2 Ứng dụng bài toán tối ưu giải quyết các vấn đề thực tế 1.2.3 Bài toán vận tải

a) Giới thiệu bài toán vận tải

Bài toán vận tải được áp dụng rất rộng rãi trong lĩnh vực lập

kế hoạch phân bổ sản phẩm hàng hoá (dịch vụ) từ một số địa điểm cung / cấp phát tới một số địa điểm cầu / tiêu thụ Thông thường, tại mỗi địa điểm cung (nơi đi) chỉ có một số lượng giới hạn hàng, còn mỗi địa điểm cầu (nơi đến) cần một số lượng nhất định hàng để đáp

Trang 9

ứng nhu cầu tiêu thụ Với các cung đường vận chuyển hàng đa dạng, với cước phí vận tải khác nhau, mục tiêu đặt ra là xác định phương

án vận tải tối ưu Nói cách khác, vấn đề đặt ra là cần xác định nên vận chuyển từ mỗi địa điểm cung tới mỗi địa điểm cầu bao nhiêu đơn

vị hàng nhằm thoả mãn nhu cầu của từng địa điểm tiêu thụ đồng thời đạt tổng chi phí vận tải là nhỏ nhất

*Khái niệm bảng vận tải:

Bảng vận tải có m hàng, n cột gồm m n ô, m là số điểm

cung, n là số điểm cầu với cước phí cij được ghi trong ô (i, j) cho

cung đường (i, j)

*Các phương pháp tạo phương án xuất phát:

+Phương pháp "góc tây bắc"

+Phương pháp cước phí tối thiểu

b) Các tính chất của bài toán vận tải

Tính chất 1: Bài toán vận tải cân bằng thu phát luôn có

phương án tối ưu

Để nghiên cứu tính chất 2 của bài toán vận tải, trước hết chúng

ta xem xét các định nghĩa sau đây

Định nghĩa 1 Một tập hợp các ô trong bảng vận tải được nói

là tạo nên một chu trình khép kín nếu có thể tìm được một đường đi khép kín xuất phát từ một ô nào đó thuộc tập hợp trên lại trở về ô xuất phát sau khi lần lượt đi qua các ô khác trong tập hợp (mỗi ô đi qua đúng một lần) dọc theo các hàng hay các cột của bảng vận tải, bước này theo hàng thì bước sau phải theo cột hoặc ngược lại Như vậy, số ô tối thiểu trong một chu trình khép kín là 4

Định nghĩa 2 Một tập hợp một số ô của bảng vận tải được nói

là không tạo nên được một chu trình khép kín nào là một tập hợp các

ô có tính chất: không một tập con nào của nó có thể tạo nên một chu trình khép kín

Trang 10

Tính chất 2: Với một phương án bất kỳ, số ô chọn của phương

án không vượt quá tổng số điểm cung và cầu

Tính chất 3: Một phương án cực biên của bài toán vận tải (m

hàng và n cột) là một phương án ứng với m + n– 1 ô sử dụng không tạo nên một chu trình khép kín nào

Tính chất 4: Nếu lượng cung và lượng cầu là số nguyên thì

bài toán có lời giải nguyên

CHƯƠNG 2 GIẢI THUẬT DI TRUYỀN GIẢI QUYẾT BÀI TOÁN TỐI ƯU

XẾP DỠ HÀNG HÓA

2.1 PHÁT BIỂU BÀI TOÁN TỐI ƯU XẾP DỠ HÀNG HÓA

2.1.1 Giới thiệu

2.1.2 Mô hình bài toán

Có m kho hàng, kho i có ai đơn vị hàng

(

ij m

i n

j

ijx c x

f

(1) Kho chứa bốc hết hàng:

n

j ij

a

Trang 11

Đầu vào:

m là số lượng kho chứa hàng hóa ( các nguồn)

n là số lượng xe chở hàng hóa (các đích)

số lượng hàng hóa cung cấp của mỗi nguồn

số lượng hàng hóa thu của mỗi đích

cost() : ma trận chi phí bốc xếp 1 đơn vị hàng hóa

Đầu ra:

Ma trận chứa các lời giải tốt nhất của tất cả các thế hệ

Tổng chi phí thấp nhất

2.2 PHƯƠNG PHÁP THẾ VỊ GIẢI BÀI TOÁN

Thuật toán thế vị được trình bày như sau :

Bước 1 : lập bảng vận tải

(1) Kiểm tra điều kiện cân bằng thu phát

(2) Xác định phương án cực biên ban đầu (bằng phương pháp chi phí bé nhất)

(3) Kiểm tra phương án cực biên có suy biến hay không + Nếu suy biến : thêm vào ô (i, j) bất kỳ với xij=0, không tạo thành chu trình

+ Nếu không suy biến : thì chuyển sang bước 2

Bước 2 : Kiểm tra tính tối ưu của bài toán

(1) Tính vj = ui + cij

ui = vj – cij ,trong đó ô (i, j) là ô chọn

Chọn ui = 0 tại dòng bất kỳ

(2) Đặt ij = vj – ui – cij

Nếu ij ≤ 0 : ta có phương án tối ưu

Nếu ij> 0 : chuyển sang bước 3

Bước 3 : Xác định vòng điều chỉnh

(1) chọn ô vào : Max ij( ij>0)

(2) chọn ô ra :

Trang 12

+ xác định vào điều chỉnh

+ ô vào sẽ được đánh dấu (+) Xen kẽ dấu (-) và dấu (+) trên vòng điều chỉnh

+ lượng điều chỉnh q= min {xij/ (i, j) có dấu (-)}

Bước 4 : Xác định phương án cực biên mới

xij + q dấu (+)

x’ij = xij – q dấu (-)

xij không dấu quay về bước 2

Sau một số bước lặp hữu hạn, bài toán có phương án tối ưu

2.3 GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN TỐI ƯU XẾP

DỠ

2.3.1 Biểu diễn lời giải bài toán

Có lẽ biểu diễn lời giải tự nhiên nhất cho bài toán bốc dỡ hàng hóa (m nguồn và n đích) là cấu trúc hai chiều, sử dụng ma trận V= (vij) ( 1 ≤ i ≤ m, 1≤ j ≤ n)

Rõ ràng với mỗi lời giải khi biểu diễn bằng ma trận (mảng 2

chiều) lời giải V= (vij) có thể thỏa mãn ràng buộc của bài toán

Trang 13

vij ≥ 0 i= 1, 2, …, m ; j= 1, 2, …, n

Thêm vào đó các thông số về số lƣợng hàng của các nguồn sour(i) và các đích dest(j), còn bảng chi phí bốc dỡ một đơn vị hàng hóa sẽ đƣợc biểu diễn bằng ma trận hai chiều cost(i, j) Với cách biểu diễn bằng ma trận thì các ràng buộc đƣợc diễn tả dễ dàng và tự nhiên hơn

m

i

n

j ij

2.3.4 Thủ tục khởi tạo

Để mô tả cách tạo một lời giải thỏa tất cả ràng buộc, ta xây

dựng một giải thuật có tên là khoi_tao Có thể lời giải thu đƣợc sẽ là

tối ƣu nhƣng vấn đề đó ta chƣa đề cập ở đây

Procedurekhoi_tao ( )

Input: mảng sour(m), dest(n)

Output : mảng (v ij ) sao cho v ij ≥ 0 với i,j thỏa mãn ràng buộc

Trang 14

sour(i) ← sour(i) – val

dest( j) ← dest(j) – val

Until ( tất cả các điểm trong L đều được thăm )

Ta sẽ áp dụng thủ tục khoi_tao để gán các giá trị mới cho ma

trận W sao cho tất cả các ràng buộc sour W(i) và dest W(j) đƣợc thỏa mãn Sau đó, ta thay phần tử thích hợp của ma trận V bằng các phần

tử mới của ma trận W Bằng cách này ta đã tạo ra đƣợc đột biến mà tất cả các ràng buộc toàn cục (sour(i) và dest(j) đƣợc bảo toàn)

b) Lai tạo

Giả sử rằng sau khi thực hiện lựa chọn hai lần để chọn ra hai

ma trận V1= (vij) và V2 = (uij) làm cha mẹ để thực hiện lai tạo Ta có giải thuật đƣợc dùng để sinh hai con V3 và V4 :

- Tạo hai ma trận tạm :

Trang 15

+ D : lưu các giá trị trung bình được làm tròn (dưới) từ cả cha lẫn mẹ :

2.3.6 Sơ đồ thuật toán

Bước 1: Khởi tạo

1 Đọc (sinh) dữ liệu

2 Khởi tạo quần thể

3 Sắp xếp quần thể theo thứ tự tăng dần của chi phí

4 Giữ lại cá thể tốt nhất

5 Ghi nhận cá thể tốt nhất Cbest

Bước 2: Vòng lặp chính

1 Sinh thêm cá thể qua các bước lai ghép và đột biến Nếu các

cá thể này tốt hơn cá thể tốt nhất trong quần thể cũ thì nó sẽ có mặt trong quần thể mới

2 Chuyển cá thể tốt nhất ở quần thể cũ sang quần thể mới

3 Sắp xếp quần thể theo thứ tự tăng dần của chi phí

Trang 16

4 Nếu cá thể tốt nhất ở quần thể mới tốt hơn CBest thì: đặt

CBest - cá thể tốt nhất này và Counter= 0; nếu không tăng biến Counter lên l

Bước 3: Kiểm tra điều kiện kết thúc

1 Nếu Counter= Max (chạy quá số lần lặp cho phép, dừng)

2 Hiển thị kết quả

Như vậy, thuật toán sẽ kết thúc nếu sau Max bước lặp vẫn

không tạo ra được nhiễm sắc thể mới tốt hơn nhiễm sắc thể tốt nhất hiện có

Trang 17

CHƯƠNG 3 XÂY DỰNG VÀ CÀI ĐẶT CHƯƠNG TRÌNH

3.1 THIẾT KẾ MÔ HÌNH CƠ SỞ DỮ LIỆU

- Thực thể PHƯƠNG ÁN XẾP DỠ: lưu trữ kết quả sau khi xử

lý, thể hiện phương án xếp dỡ tối ưu, thông tin chi tiết về số lượng gạo bốc ở mỗi kho lên mỗi xe để tổng chi phí bốc xếp là thấp nhất

* Xây dựng lược đồ cơ sở dữ liệu

- KHO (MaKho, TenKho, SoLuong)

- XE (MaXe, TenXe, SoLuong)

- CHI PHÍ (MaKho, MaXe, ChiPhi, MoTa)

- PHƯƠNG ÁN XẾP DỠ (MaKho, MaXe, Soluong)

3.1.2 Mô tả cơ sở dữ liệu

Bảng kho:

STT Khóa Tên trường Kiểu dữ liệu Null Mô tả

1 PK MaKho vachar(5) Not

null Khóa chính

chứa trong kho

Trang 18

Bảng xe:

STT Khóa Tên

trường

Kiểu dữ liệu Null Mô tả

1 PK MaXe vachar(5) Not

null

Khóa chính

3 SoLuong int(4)

Số lượng gạo xếp

dỡ lên xe

Bảng chi phí:

STT Khóa Tên trường Kiểu dữ liệu Null Mô tả

1 PK MaKho vachar(5) Not

null

Khóa chính

2 PK MaXe varchar(5)

Khóa chính, tên

xe

Chi phí bốc một tấn gạo từ một kho lên một xe

Mô tả tuyến bốc xếp từ kho đến xe

Trang 19

3.2 CẤU TRÚC DỮ LIỆU CỦA BÀI TOÁN

Bài toán được nêu ra để tìm phương án xếp dỡ tối ưu Dữ liệu của bài toán được biểu diễn dưới dạng sau đây:

Dùng cấu trúc mảng một chiều biểu diễn số lượng gạo cung cấp của các kho và số lượng gạo bốc lên các xe

Dữ liệu ra của bài toán:

int Result[ ][ ]; //ma trận chứa các lời giải của thế hệ

int Best [ ][ ]; //ma trận chứa lời giải tốt nhất

Ngoài ra chương trình còn sử dụng các biến sau:

int m, n, pop_size, gen_mun;

//n: số kho cung cấp gạo

//m: số xe chở gạo

//pop_size: kích thước quần thể

Trang 20

//gen_num: số thế hệ hay số lần lặp

float Pc, Pm;

// Pc: xác suất lai

// Pm: xác xuất đột biến

3.3 THIẾT KẾ GIAO DIỆN CỦA CHƯƠNG TRÌNH

Chương trình gồm các form sau:

* Form nhập dữ liệu kho

* Form nhập dữ liệu xe

* Form nhập chi phí bốc xếp một tấn gạo của các kho hàng lên các xe

* Form nhập thông số của giải thuật di truyền

* Form hiển thị kết quả

3.4 KẾT QUẢ THỰC NGHIỆM CỦA CHƯƠNG TRÌNH

Hệ thống chương trình được cài đặt bằng ngôn ngữ Visual Basic, chạy trên môi trường Windows Seven trên máy Dual Core 2.0 Ghz

Dữ liệu vào của bài toán xếp dỡ thể hiện ở bảng sau:

Trang 21

Hình 3.1: Giao diện nhập thông tin kho chứa

Hình 3.2: Giao diện nhập thông tin xe vận chuyển

Ngày đăng: 30/10/2014, 16:04

HÌNH ẢNH LIÊN QUAN

1.1.3  Sơ đồ tổng thể của giải thuật di truyền - ứng dụng giải thuật di truyền giải quyết bài toán tối ưu hóa xếp dỡ hàng hóa
1.1.3 Sơ đồ tổng thể của giải thuật di truyền (Trang 6)
Bảng kho: - ứng dụng giải thuật di truyền giải quyết bài toán tối ưu hóa xếp dỡ hàng hóa
Bảng kho (Trang 17)
Bảng chi phí: - ứng dụng giải thuật di truyền giải quyết bài toán tối ưu hóa xếp dỡ hàng hóa
Bảng chi phí: (Trang 18)
Bảng xe: - ứng dụng giải thuật di truyền giải quyết bài toán tối ưu hóa xếp dỡ hàng hóa
Bảng xe (Trang 18)
Bảng phương án xếp dỡ: - ứng dụng giải thuật di truyền giải quyết bài toán tối ưu hóa xếp dỡ hàng hóa
Bảng ph ương án xếp dỡ: (Trang 19)
Hình 3.2: Giao diện nhập thông tin xe vận chuyển - ứng dụng giải thuật di truyền giải quyết bài toán tối ưu hóa xếp dỡ hàng hóa
Hình 3.2 Giao diện nhập thông tin xe vận chuyển (Trang 21)
Hình 3.1: Giao diện nhập thông tin kho chứa - ứng dụng giải thuật di truyền giải quyết bài toán tối ưu hóa xếp dỡ hàng hóa
Hình 3.1 Giao diện nhập thông tin kho chứa (Trang 21)
Hình 3.4: Thông số giải thuật di truyền - ứng dụng giải thuật di truyền giải quyết bài toán tối ưu hóa xếp dỡ hàng hóa
Hình 3.4 Thông số giải thuật di truyền (Trang 22)
Bảng phân phối số lƣợng xếp dỡ - ứng dụng giải thuật di truyền giải quyết bài toán tối ưu hóa xếp dỡ hàng hóa
Bảng ph ân phối số lƣợng xếp dỡ (Trang 23)
Hình 3.6: Lời giải của từng thế hệ  Hơn nữa, chương trình có thể thực hiện lại thuật toán trên với - ứng dụng giải thuật di truyền giải quyết bài toán tối ưu hóa xếp dỡ hàng hóa
Hình 3.6 Lời giải của từng thế hệ Hơn nữa, chương trình có thể thực hiện lại thuật toán trên với (Trang 24)

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

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

w