Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 117 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
117
Dung lượng
4,17 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA TRIỆU THỊ LAN HƯƠNG XÂY DỰNG BÀI TỐN ĐIỀU ĐỘ ĐƠN HÀNG TẠI CƠNG TY CỔ PHẦN THỂ THAO NGÔI SAO GERU Chuyên ngành: KỸ THUẬT HỆ THỐNG CƠNG NGHIỆP LUẬN VĂN THẠC SĨ TP Hồ Chí Minh, tháng 12 năm 2009 i CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH Cán hướng dẫn khoa học : ………………………………………………………………………………… ………………………………………………………………………………… (Ghi rõ họ, tên, học hàm, học vị chữ ký) Cán chấm nhận xét : ………………………………………………………………………………… ………………………………………………………………………………… (Ghi rõ họ, tên, học hàm, học vị chữ ký) Cán chấm nhận xét : ………………………………………………………………………………… ………………………………………………………………………………… (Ghi rõ họ, tên, học hàm, học vị chữ ký) Luận văn thạc sĩ bảo vệ HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ TS Nguyễn Tuấn Anh – Chủ tịch HĐ ThS Nguyễn Văn Chung – Thư ký HĐ TS Nguyễn Văn Hợp - Ủy viên HĐ TS Đỗ Thành Lưu - Ủy viên HĐ P.GS, TS Phạm Ngọc Tuấn - Ủy viên HĐ TRƯỜNG ĐẠI HỌC BÁCH KHOA TP HCM, ngày 27 tháng 12 năm 2009 ii ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA - Độc lập – Tự – Hạnh phúc -oOo TP.Hồ Chí Minh, ngày 30 tháng 11 năm 2009 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: TRIỆU THI LAN HƯƠNG Giới tính: Nam Ngày, tháng, năm sinh: 17 – 01 – 1975 Nơi sinh: Cao Bằng Chuyên ngành: KỸ THUẬT HỆ THỐNG CÔNG NGHIỆP / Nữ √ Khoá (Năm trúng tuyển): K2007 1- TÊN ĐỀ TÀI: XÂY DỰNG BÀI TOÁN ĐIỀU ĐỘ ĐƠN HÀNG TẠI CÔNG TY CỔ PHẦN THỂ THAO NGÔI SAO GERU 2- NHIỆM VỤ LUẬN VĂN: Tìm hiểu hệ thống sản xuất, thu thập phân tích số liệu Cơng ty Cổ phần Thể thao Ngơi Geru - Tìm hiểu tốn điều độ đa mục tiêu Tìm hiểu lý thuyết giải thuật di truyền, kỹ thuật điều độ, phương pháp định đa tiêu chuẩn AHP - Áp dụng giải thuật di truyền cho mô hình điều độ đơn hàng cơng ty - Xây dựng chương trình điều độ giải thuật di truyền - Phân tích kết quả, kết luận kiến nghị 3- NGÀY GIAO NHIỆM VỤ: 02/07/2009 4- NGÀY HOÀN THÀNH NHIỆM VỤ: 30/11/2009 5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS NGUYỄN VĂN CHUNG 6- Nội dung đề cương Luận văn thạc sĩ Hội Đồng Chuyên Ngành thông qua CÁN BỘ HƯỚNG DẪN (Họ tên chữ ký) CHỦ NHIỆM BỘ MÔN QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) ThS Nguyễn Văn Chung ThS Nguyễn Như Phong iii LỜI CẢM ƠN Qua năm học đại học Trường ĐH Bách Khoa TP HCM tiếp tục hai năm học cao học, với giảng thiết thực tích lũy cho tơi kiến thức, kỹ năng, kinh nghiệm, … tạo cho thêm tự tin chun mơn để hịa nhập với công việc sống Tôi xin gửi lời cảm ơn chân thành đến Quý Thầy, Cô Trường ĐH Bách Khoa TP HCM tận tình truyền dạy cho tơi kiến thức vô quý báu suốt hai năm học cao học này, đặc biệt thầy Nguyễn Văn Chung, người động viên, bảo tận tình, đưa góp ý sâu sắc giúp cho tơi hồn thành luận văn cao học Đồng thời, tơi xin chân thành cảm ơn Ban lãnh đạo Công ty Cổ phần Thể thao Ngôi Sao GERU tạo điều kiện để tiếp cận với thực tế công việc cung cấp thông tin Công ty nghiên cứu thực luận văn Cuối cùng, xin ghi nhớ yêu thương, quan tâm từ gia đình, người bạn lớp cao học giúp đỡ, hỗ trợ mặt tinh thần mặt kỹ thuật để tơi hồn thành luận văn TP Hồ Chí Minh, ngày 30/11/2009 Triệu Thị Lan Hương iv TÓM TẮT LUẬN VĂN THẠC SĨ Điều độ đóng vai trị quan trọng vận hành sản xuất, để đạt hiệu quản lý, vận hành sản xuất quy tắc kinh nghiệm, cịn cần có hỗ trợ kết hợp công cụ Trong luận văn nghiên cứu giải thuật di truyền cho toán điều độ đa mục tiêu với mơ hình flowshop, áp dụng thực tế Công ty Cổ phần Thể thao Ngôi Geru, cụ thể xây dựng mô hình điều độ đơn hàng có tính đến lực sản xuất phân tích thứ bậc ưu tiên đơn hàng đưa vào sản xuất hỗ trợ hiệu cho toán điều độ v MỤC LỤC Đề mục Trang Trang bìa i Công trình hồn thành .ii Nhiệm vụ luận văn thạc sĩ iii Lời cảm ơn iv Tóm tắt luận văn thạc sĩ .v Mục lục .vi Danh sách hình vẽ ix Danh sách bảng biểu x Danh mục từ viết tắt ………………………………………………………… xi Chương MỞ ĐẦU … 1.1 Đặt vấn đề lý hình thành đề tài 1.2 Mục tiêu ……………………………… 1.3 Nội dung luận văn 1.4 Phạm vi giới hạn nghiên cứu 1.5 Ý nghĩa ……… .3 1.6 Nhiệm vụ luận văn……… 1.7 Tổng quát cấu trúc luận văn Chương CƠ SỞ LÝ THUYẾT .4 2.1 Cơ sở lý thuyết…………………… .4 2.1.1 Vai trò điều độ .4 2.1.2 Chức điều độ 2.1.2.1 Điều độ sản xuất ……………………………………….4 2.1.2.2 Điều độ dịch vụ……………………………………… 2.1.3 Các loại mơ hình điều độ …………………………………………….6 2.1.4 Các ký hiệu toán điều độ …………………………… 2.1.5 Một số thuộc tính ràng buộc quy trình ……………… 2.1.6 Các mục tiêu …………………………………………………………7 2.1.7 Một số phương pháp giải toán điều độ ………………………… 2.1.7.1 Các luật phân việc …………………………………….8 vi 2.1.7.2 2.2 2.3 2.4 2.5 Các giải thuật …………………………………………………9 Bài toán tối ưu ……………… ……… .13 2.2.1 Thiết lập toán ………………………………………………… 13 2.2.2 Các phương pháp tối ưu đa mục tiêu ……………………………….15 2.2.2.1 Cách tiếp cận hàm mục tiêu …………………………….15 2.2.2.2 Hàm mục tiêu toàn cục …………………………………… 15 2.2.2.3 Phương pháp quy hoạch thỏa hiệp ………………………… 16 2.2.2.4 Quy hoạch Denovo ………………………………………….17 2.2.2.5 Quy hoạch mục tiêu …………………………………………17 Năng lực sản xuất ………………………………………………………….18 2.3.1 Đo lường công việc …………………………………………………19 2.3.2 Các phương pháp quan sát ………………………………………….19 Phân tích thứ bậc mờ … .19 2.4.1 Giới thiệu chung phương pháp AHP …………………………….19 2.4.2 Nguyên tắc việc xây dựng mơ hình thứ bậc ………….20 2.4.3 Phân tích thứ bậc mờ FAHP ……………………………………… 24 2.4.3.1 Các khái niệm …………… ……………………… 24 2.4.3.2 Các phép toán tập mờ………………………………… 26 2.4.3.3 Giải mờ……………… ……………………………………28 2.4.3.4 Biến ngơn ngữ ……………………………………………….29 2.4.3.5 Mơ hình tính tốn Chang – 1992 ……………………… 29 Các nghiên cứu có liên quan 32 Chương KHẢO SÁT THỰC TẾ TẠI CÔNG TY GERU 35 3.1 Công ty Geru ……………………………………………………………….35 3.1.1 Giới thiệu chung …………………………………………………….35 3.1.2 Sự hình thành phát triển …………………………………………35 3.1.3 Quy trình cơng nghệ sản xuất bóng ……………………………… 38 3.1.4 Đánh giá trạng việc điều độ đơn hàng cơng ty …………… 42 3.2 Bài tốn thực tế ……………………………………………………………….44 Chương XÂY DỰNG VÀ ỨNG DỤNG MƠ HÌNH GIẢI THUẬT DI TRUYỀN CHO BÀI TỐN ĐIỀU ĐỘ ĐƠN HÀNG TẠI CÔNG TY GERU 47 vii 4.1 Mơ hình tốn 47 4.2 Tính tốn thời gian gia cơng đơn hàng ……………………… ………49 4.3 Phân tích thứ bậc FAHP ……………………………………………………50 4.4 Thiết kế thực nghiệm điều độ đơn hàng ứng dụng giải thuật di truyền ……53 4.4.1 Phương pháp mã hóa 53 4.4.2 Cách thức lai ghép…… 53 4.4.3 Cách thức đột biến .53 4.4.4 Hàm giá trị phù hợp …………………………….…………… 53 4.4.5 Cách thức chọn lọc cá thể ………………………………………… 54 4.4.6 Xác định tham số giải thuật ……………………………… 54 4.4.7 Điều kiện dừng …………………………………………………… 54 4.4.8 Chương trình điều độ đơn hàng ………………………………….…54 4.4.8.1 Thiết kế thực nghiệm tim thơng số phù hợp cho chương trình …………………………………………………………………54 4.4.8.2 Cấu trúc phần mềm dùng giải thuật di truyền …………….… 57 4.4.8.3 Đánh giá hiệu chương trình ………………………… 59 Chương KẾT LUẬN VÀ KIẾN NGHỊ 61 5.1 Kết luận 61 5.2 Kiến nghị .61 Tài liệu tham khảo 62 Phụ lục A Kết chi tiết điều độ đơn hàng Phụ lục B Mẫu câu hỏi khảo sát đánh giá độ ưu tiên đơn hàng theo FAHP Phụ lục C Tính tốn lực hệ thống sản xuất Phụ lục D Mã code chương trình viii DANH SÁCH HÌNH VẼ Hình 2.1 Đồ thị dịng thơng tin hệ thống sản xuất Hình 2.2 Đồ thị dịng thông tin hệ thống dịch vụ Hình 2.3 Minh họa giải thuật chia nhánh chặn Hình 2.4 Minh họa giải thuật tìm kiếm Beam 10 Hình 2.5 Sơ đồ bước giải thuât di truyền .13 Hình 2.6 Minh họa cho khái niệm hiệu 15 Hình 2.7 Các bước thực chọn lựa độ ưu tiên đơn hàng theo phương pháp AHP 23 Hình 2.8 Hàm liên thuộc tập kinh điển 24 Hình 2.9 Hàm liên thuộc tập mờ 25 Hình 2.10 Hàm liên có mức chuyển đổi tuyến tính ……………………… 25 Hình 2.11 Miền xác định miền tin cậy tập mờ …………………… 26 Hình 2.12 Phép hợp hai tập mờ ……………………………………… 27 Hình 2.12 Phép giao hai tập mờ ……………………………………… 27 Hình 2.12 Phép bù tập mờ ……………….……………………… 27 Hình 2.13 Sự giao M1 M2 31 Hình 3.1 Sơ tồ tổ chức công ty Geru 34 Hình 3.2 Quy trình cơng nghệ sản xuất bóng 36 Hình 3.3 Tổng hợp quy trình san xuất 40 Hình 3.4 Biểu đồ thống kê tỷ lệ giao hàng thời gian .42 Hình 4.1 Cấu trúc phân tích thứ bậc AHP 49 Hình 4.2 Phương pháp lai ghép .50 Hình 4.3 Phương pháp đột biến 50 Hình 4.4 Giao diện chương trình điều độ ………………………………… 55 Hình 4.5 Minh họa nhập liệu đầu vào ………………………………… 55 Hình 4.6 Minh họa xuất liệu đầu …………………………………… 56 ix DANH SÁCH BẢNG BIỂU Bảng 2.1 Bảng ma trận (payoff) 16 Bảng 2.2 Thành lập biểu thức mục tiêu 17 Bảng 2.3 Các số ngẫu nhiên AHP 22 Bảng 3.1 Các loại sản phẩm 35 Bảng 3.2 Quy định chuẩn loại bóng 35 Bang 3.3 Tổng hợp đơn hàng trễ năm 2008 41 Bảng 4.1 Bảng chi tiết thời gian gia công đơn hàng ……………………….46 Bàng 4.2 Giá trị thang đo áp dụng TFN 49 Bảng 4.3 Độ ưu tiên sản xuất đơn hàng 50 Bảng 4.4 Bảng thông số đầu vào cho thiết kế thực nghiệm GA 52 Bảng 4.5 Số liệu đầu vào cho thiết kế thực nghiệm 54 Bảng 4.6 Kết toán di truyền 54 Bảng 4.7 Chi tiết điều độ lần chạy thứ 10, hệ 1, popsize 100 55 Bảng 4.8 Bảng so sánh thuật toán GA với thuật toán Lekin 58 x 25 ReDim array_ini_individual(popsize, no_station, no_order) As Long ReDim array_individual(popsize, no_station, no_order) As Long ReDim new_population(popsize, no_station, no_order) As Long ReDim array_t_start(popsize, no_station, no_order) As Single ReDim array_t_process(popsize, no_station, no_order) As Single ReDim array_t_finish(popsize, no_station, no_order) As Single ReDim array_T_delay(popsize, no_order) As Single ReDim array_n_delay(popsize) As Long 'so don hang tre ReDim array_total_delay(popsize) As Single 'tong tre co so ReDim array_Cmax(popsize) As Single 'thoi gian hoan cac DH ReDim array_Fitness_1(popsize) As Single 'do phu hop HMT1 ReDim array_Fitness_2(popsize) As Single 'do phu hop HMT2 ReDim array_Fitness_3(popsize) As Single 'do phu hop HMT3 ReDim array_Fitness_total(popsize) As Single 'do phu hop tong the ReDim array_Fitness_total_accu(popsize) As Single 'tich luy phu hop tong the ' -'CODING hoan vi voi ten (by cardinal number) cua don hang gia cong For gen_loop = To no_generation If gen_loop = Then 'ca the khoi tao For k = To no_station For j = To no_order ini_individual(k, j) = bangExcel.application.cells(11 + no_station + k, + j) Next Next 'khoi tao dam dong ban dau Randomize Dim l As Long For i = To popsize 'gan ca the khoi tao vao dam dong khoi tao If i = Then For k = To no_station For j = To no_order array_ini_individual(i, k, j) = ini_individual(k, j) Next Next ElseIf i >= Then For k = To no_station For j = To no_order temp = Int(no_order * Rnd) + If j = Then array_ini_individual(i, k, j) = temp ElseIf j >= Then l = 'ktra DH sau khong trung DH truoc Do While l = Then 'neu vong lap thu tro diFor k = To no_station For i = To popsize For k = To no_station For j = To no_order array_individual(i, k, j) = new_population(i, k, j) Next Next Next End If 'xac dinh array_weight() 'xac dinh array_t_release() 'xac dinh array_t_duedate() 'xac dinh array_t_process() Dim index As Long For i = To popsize For k = To no_station For j = To no_order index = array_individual(i, k, j) array_weight(i, k, j) = list_weight(index) array_t_release(i, k, j) = list_t_release(index) array_t_duedate(i, k, j) = list_t_duedate(index) array_t_process(i, k, j) = list_t_process(k, index) Next Next Next 'xac dinh array_t_start()& array_t_finish() For i = To popsize For k = To no_station For j = To no_order If k = And j = Then 'DH dau tien tram array_t_start(i, k, j) = array_t_release(i, k, j) ElseIf k = And j > Then If array_t_release(i, k, j) And j = Then 'DH dau tien tu tram tro di l=1 Do While l Then array_T_delay(i, j) = array_t_finish(i, no_station, j) array_t_duedate(i, no_station, j) array_n_delay(i) = temp + temp = array_n_delay(i) Else array_T_delay(i, j) = End If Next Next 'fitness tuong ung HMT1 temp = sum_F1 = For i = To popsize sum_F1 = temp + array_n_delay(i) temp = sum_F1 Next If sum_F1 Then For i = To popsize array_Fitness_1(i) = / (1 + array_n_delay(i) / sum_F1) Next ElseIf sum_F1 = Then For i = To popsize array_Fitness_1(i) = / popsize Next End If 'xac dinh opt_F1 opt_F1 = For i = To popsize If array_Fitness_1(i) > opt_F1 Then opt_F1 = array_Fitness_1(i) End If Next 'HMT2 = MIN tong tre co so (xet tung ca the) For i = To popsize temp = For j = To no_order array_total_delay(i) = temp + (array_weight(i, no_station, j) * array_T_delay(i, j)) temp = array_total_delay(i) Next Next 'fitness tuong ung HMT2 temp = sum_F2 = For i = To popsize sum_F2 = temp + array_total_delay(i) temp = sum_F2 Next If sum_F2 Then For i = To popsize array_Fitness_2(i) = / (1 + array_total_delay(i) / sum_F2) Next ElseIf sum_F2 = Then For i = To popsize 28 array_Fitness_2(i) = / popsize Next End If 'xac dinh opt_F2 opt_F2 = For i = To popsize If array_Fitness_2(i) > opt_F2 Then opt_F2 = array_Fitness_2(i) End If Next array_Fitness_total(i) = / (1 + ((opt_F1 - array_Fitness_1(i)) / opt_F1) ^ + ((opt_F2 - array_Fitness_2(i)) / opt_F2) ^ + ((opt_F3 array_Fitness_3(i)) / opt_F3) ^ 2) Next ' -XUAT RA CA THE CO FITNESS TOT NHAT -If gen_loop = no_generation Then 'ket thuc vong lap 'chon ca the co fitness tot nhat 'HMT3 = MIN thoi gian gia cong don hang (Cmax) For i = To popsize array_Cmax(i) = array_t_finish(i, no_station, no_order) Next 'fitness tuong ung HMT3 temp = sum_F3 = For i = To popsize sum_F3 = temp + array_Cmax(i) temp = sum_F3 Next If sum_F3 Then For i = To popsize array_Fitness_3(i) = / (1 + array_Cmax(i) / sum_F3) Next ElseIf sum_F3 = Then For i = To popsize array_Fitness_3(i) = / popsize Next End If opt_F3 = For i = To popsize If array_Fitness_3(i) > opt_F3 Then opt_F3 = array_Fitness_3(i) End If Next 'fitness tuong ung HMT toan cuc For i = To popsize max_1 = 0: max_2 = 0: max_3 = 0: max_4 = 0: max_5 = For i = To popsize If array_Fitness_total(i) >= max_1 Then max_1 = array_Fitness_total(i) object_1 = i End If Next For i = To popsize If array_Fitness_total(i) >= max_2 And i object_1 Then max_2 = array_Fitness_total(i) object_2 = i End If Next For i = To popsize If array_Fitness_total(i) >= max_3 And i object_1 And i object_2 Then max_3 = array_Fitness_total(i) object_3 = i End If Next For i = To popsize If array_Fitness_total(i) >= max_4 And i object_1 And i object_2 And i object_3 Then max_4 = array_Fitness_total(i) object_4 = i End If Next For i = To popsize 29 If array_Fitness_total(i) >= max_5 And i object_1 And i object_2 And i object_3 And i object_4 Then max_5 = array_Fitness_total(i) object_5 = i End If Next ReDim best_individual(5) As Long best_individual(1) = object_1 best_individual(2) = object_2 best_individual(3) = object_3 best_individual(4) = object_4 best_individual(5) = object_5 For i = To 'i = so ca the tot nhat duoc giu lai qua moi the he bangExcel.application.cells(13 + * no_station + (no_station * + 2) * (i - 1) + 1, + no_order + 1) = array_n_delay(best_individual(i)) bangExcel.application.cells(13 + * no_station + (no_station * + 2) * (i - 1) + 1, + no_order + 2) = array_total_delay(best_individual(i)) bangExcel.application.cells(13 + * no_station + (no_station * + 2) * (i - 1) + 1, + no_order + 3) = array_Cmax(best_individual(i)) bangExcel.application.cells(13 + * no_station + (no_station * + 2) * (i - 1) + 1, + no_order + 4) = array_Fitness_total(best_individual(i)) For k = To no_station For j = To no_order bangExcel.application.cells(13 + * (k 1) + * no_station + (no_station * + 2) * (i - 1), + j) = array_individual(best_individual(i), k, j) bangExcel.application.cells(14 + * (k 1) + * no_station + (no_station * + 2) * (i - 1), + j) = array_t_start(best_individual(i), k, j) bangExcel.application.cells(15 + * (k 1) + * no_station + (no_station * + 2) * (i - 1), + j) = array_t_process(best_individual(i), k, j) bangExcel.application.cells(16 + * (k 1) + * no_station + (no_station * + 2) * (i - 1), + j) = array_t_finish(best_individual(i), k, j) Next Next For j = To no_order bangExcel.application.cells(17 + * (no_station - 1) + * no_station + (no_station * + 2) * (i - 1), + j) = array_T_delay(best_individual(i), j) Next Next Dim announcement As String announcement = CStr(MsgBox("KET THUC GA", vbOKOnly, "FINISH PROBLEM")) 'xuat ket qua giao dien nguoi dung - Interface 'do phu hop tong the Text2.Enabled = True Text2.BackColor = &HFFFF00 Text2.Text = array_Fitness_total(object_1) 'cuc tieu so don hang tre Text9.Enabled = True Text9.BackColor = &HFFFF00 Text9.Text = array_n_delay(object_1) 'cuc tieu tong thoi gian tre co so Text10.Enabled = True Text10.BackColor = &HFFFF00 Text10.Text = array_total_delay(object_1) 30 'cuc tieu thoi gian hoan Cmax Text11.Enabled = True Text11.BackColor = &HFFFF00 Text11.Text = array_Cmax(object_1) 'ca the tot nhat Text12.Enabled = True Text12.BackColor = &HFFFF00 Dim final_indi As String final_indi = "" For k = To no_station final_indi = final_indi + "Traïm " & Str(k) & " = " For j = To no_order If j = Then l=1 Do While l