Nghiên cứu ứng dụng thuật toán ago (ant colony optimization) tối ưu thời gian và chi phí cho dự án xây dựng

137 23 0
Nghiên cứu ứng dụng thuật toán ago (ant colony optimization) tối ưu thời gian và chi phí cho dự án xây dựng

Đ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

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA \\ ^^ DƯƠNG THÀNH NHÂN NGHIÊN CỨU ỨNG DỤNG THUẬT TOÁN ACO (ANT COLONY OPTIMIZATION) TỐI ƯU THỜI GIAN VÀ CHI PHÍ CHO DỰ ÁN XÂY DỰNG CHUYÊN NGÀNH : CÔNG NGHỆ VÀ QUẢN LÝ XÂY DỰNG LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, THÁNG 07 NĂM 2009 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 : TS PHẠM HỒNG LUÂN (Ghi rõ họ, tên, học hàm, học vị chữ ký) Cán chấm nhận xét : PGS TS NGUYỄN THỐNG (Ghi rõ họ, tên, học hàm, học vị chữ ký) Cán chấm nhận xét : TS NGÔ QUANG TƯỜNG (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Ĩ TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 17 tháng 09 năm 2009 ii TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KỸ THUẬT XÂY DỰNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập - Tự Do - Hạnh Phúc -oOo Tp HCM, ngày tháng năm 2009 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên : DƯƠNG THÀNH NHÂN Phái : Nam Ngày sinh : 01 / 07 / 1981 Nơi sinh : Bến Tre Chuyên ngành : Công nghệ Quản lý xây dựng MSHV : 00805176 1- TÊN ĐỀ TÀI : NGHIÊN CỨU ỨNG DỤNG THUẬT TOÁN ACO (ANT COLONY OPTIMIZATION) TỐI ƯU THỜI GIAN VÀ CHI PHÍ CHO DỰ ÁN XÂY DỰNG 2- NHIỆM VỤ LUẬN VĂN : Chương : Giới thiệu - Đặt vấn đề Chương : Tổng quan toán tối ưu thời gian – chi phí TCO (time-cost optimization) kỹ thuật giải toán trước Chương : Phương pháp luận giải vấn đề : Giới thiệu thuật toán ACO (ANT COLONY OPTIMIZATION) phương pháp trọng số thích ứng sửa đổi MAWA Chương : Mơ hình hóa tốn : Ứng dụng thuật toán ACO, kết hợp phương pháp MAWA vào việc mơ hình hóa tốn tối ưu thời gian – chi phí Chương : Giới thiệu chương trình ACO-TCO ví dụ minh họa Chương : Kết luận kiến nghị 3- NGÀY GIAO NHIỆM VỤ : 02 / 02 / 2009 4- NGÀY HOÀN THÀNH NHIỆM VỤ : 03 / 07 / 2009 5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : TS PHẠM HỒNG LUÂN 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 CHỦ NHIỆM BỘ MÔN QUẢN LÝ CHUYÊN NGÀNH TS PHẠM HỒNG LUÂN TS NGÔ QUANG TƯỜNG iii KHOA QL CHUYÊN NGÀNH LỜI CẢM ƠN Để hoàn thành Luận văn thạc sĩ này, nhận nhiều giúp đỡ Q Thầy Cơ, gia đình, bạn bè đồng nghiệp Đặc biệt, Quý Thầy Cô ban giảng dạy ngành Công nghệ Quản lý xây dựng tận tình hướng dẫn giúp đỡ tơi suốt q trình học tập, truyền đạt kiến thức chuyên môn kinh nghiệm q giá giúp tơi hồn thành đề tài tốt nghiệp Với tất lòng biết ơn sâu sắc, em xin chân thành cảm ơn Thầy TS Phạm Hồng Luân tận tình hướng dẫn, đưa hướng nghiên cứu cụ thể, hỗ trợ nhiều kiến thức quý báu giúp em hoàn thành luận văn Cuối cùng, xin cảm ơn Ba Mẹ động viên, quan tâm giúp đỡ suốt thời gian vừa qua ; cảm ơn em Nga, người bạn đời lúc bên cạnh, động viên cổ vũ giúp anh hoàn thành đề tài tốt nghiệp Một lần nữa, xin gửi đến Q Thầy Cơ, Gia đình bạn bè lòng biết ơn sâu sắc Thành phố Hồ Chí Minh, tháng 07 năm 2009 Tác giả DƯƠNG THÀNH NHÂN iv TĨM TẮT Bài tốn tối ưu thời gian - chi phí khía cạnh quan trọng quản lý dự án xây dựng Để cực đại hóa lợi nhuận, nhà lập kế hoạch xây dựng phải cố gắng tìm cách tối ưu đồng thời thời gian chi phí Trong nhiều năm qua, nhiều nghiên cứu thực nhằm nghiên cứu mối quan hệ thời gian - chi phí, kỹ thuật ứng dụng từ phương pháp tìm kiếm, phương pháp toán học thuật giải di truyền Trong luận văn này, thuật toán tối ưu dựa tảng tiến hóa, với tên gọi tối ưu đàn kiến (ACO) ứng dụng để giải toán tối ưu đa mục tiêu thời gian - chi phí Bằng cách kết hợp với phương pháp trọng số thích ứng sửa đổi (MAWA), mơ hình tìm lời giải tối ưu Mơ hình ACO-TCO pháp triển chương trình máy tính Visual Basic Một vài ví dụ phân tích để minh họa khả mơ so sánh với phương pháp trước Kết phương pháp có khả tìm kết tốt mà khơng cần sử dụng q nhiều đến máy điện tốn, từ cung cấp phương tiện hữu hiệu để hỗ trợ nhà lập kế hoạch quản lý việc lựa chọn định thời gian – chi phí cách hiệu _ ABSTRACT Time-cost optimization problem is one of the most important aspects of construction project management In order to maximize the return, construction planners would strive to optimize the project duration and cost concurrently Over the years, many research studies have been conducted to model the time-cost relationships, the modeling techniques range from the heuristic method and mathematical approach to genetic algorithm In this thesis, an evolutionary-based optimization algorithm known as ant colony optimization (ACO) is applied to solve the multiobjective time-cost problem By incorporating with the modified adaptive weight approach (MAWA), the proposed model finds out the optimal solutions The concept of the ACO-TCO model is developed by a computer program in the Visual Basic platforms Some examples are analyzed to illustrate the capabilities of the proposed model and to compare against other previous methods The results indicate that ant colony system approach is able to generate better solutions without utilizing much computational resources which provides a useful means to support construction planners and manager in making better time-cost decisions efficiently v MỤC LỤC Chương : GIỚI THIỆU 1.1 Giới thiệu ……………………………………………………………… 1.2 Đặt vấn đề ……………………………………………………………… 1.3 Mục tiêu nghiên cứu …………………………………………………… 1.4 Phạm vi nghiên cứu …………………………………………………… 1.5 Phương pháp nghiên cứu ……………………………………………… 1.6 Nội dung luận văn ……………………………………………………… Chương : TỔNG QUAN 2.1 Tổng quan quản lý dự án …………………………………………… 2.1.1 Khái niệm chung ………………………………………………… 2.1.2 Mục tiêu quản lý dự án ……………………………………… 2.1.3 Các lĩnh vực kiến thức trình quản lý dự án ………… 10 2.2 Quản lý chi phí dự án ………………………………………………… 12 2.3 Quản lý tiến độ dự án ………………………………………………… 13 2.3.1 Khái niệm tiến độ dự án xây dựng ………………………… 13 2.3.2 Các bước lập tiến độ dự án …………………………………… 14 2.3.3 Các kỹ thuật quản lý tiến độ dự án …………………………… 14 2.4 Bài tốn tối ưu thời gian – chi phí …………………………………… 17 2.4.1 Giới thiệu ……………………………………………………… 17 2.4.2 Mơ hình mối quan hệ thời gian – chi phí ……………………… 18 2.5 Các kỹ thuật giải toán tối ưu thời gian – chi phí …………… 21 2.5.1 Phương pháp tìm kiếm ………………………………………… 21 2.5.2 Phương pháp quy hoạch toán học ……………………………… 21 2.5.3 Các thuật toán tối ưu dựa sở tiến hóa …………… 22 Chương : PHƯƠNG PHÁP LUẬN ĐỂ GIẢI QUYẾT VẤN ĐỀ 25 3.1 Thuật toán đàn kiến ACO …………………………………………… 25 3.1.1 Giới thiệu ……………………………………………………… 25 3.1.1.1 Nguồn cảm hứng thuật toán : Đàn kiến ………… 26 3.1.1.2 Thí nghiệm cầu đôi …………………………… 28 vi 3.1.1.3 Từ kiến sinh học đến kiến nhân tạo ………………… 31 3.1.1.4 Chất dẫn dụ mùi (Pheromones) ……………………… 33 3.1.2 Phương pháp ACO …………………………………………… 37 3.1.2.1 ACO Metaheuristic …………………………………… 37 3.1.2.2 Điểm giống khác kiến thực kiến nhân tạo … 37 3.1.3 Các thuật toán tối ưu đàn kiến (ACO Algorithms) …………… 40 3.1.3.1 Hệ kiến (Ant System) ………………………………… 40 3.1.3.2 Hệ đàn kiến (Ant Colony System) …………………… 45 3.1.3.3 Hệ kiến MAX-MIN …………………………………… 47 3.1.4 Các ứng dụng thuật toán đàn kiến ………………………… 48 3.2 Phương pháp trọng số thích ứng sửa đổi (MAWA) …………………… 51 3.2.1 Phương pháp trọng số thích ứng (AWA) ……………………… 52 3.2.2 Phương pháp trọng số thích ứng sửa đổi (MAWA) …………… 53 3.3 Tính khả thi việc áp dụng ACO để giải vấn đề …………… 56 Chương : MƠ HÌNH HĨA BÀI TỐN 58 4.1 Giới thiệu tốn tối ưu thời gian chi phí TCO ……………………… 58 4.1.1 Phát biểu toán ……………………………………………… 58 4.1.2 Yêu cầu toán …………………………………………… 58 4.1.3 Hàm mục tiêu toán …………………………………… 58 4.2 Mơ hình hóa tốn ………………………………………………… 59 4.2.1 Mơ tả tốn ………………………………………………… 59 4.2.2 Mơ hình ACO cho toán TCO ……………………………… 61 4.2.2.1 Phương pháp trọng số thích ứng sửa đổi ……………… 61 4.2.2.2 Mơ hình ACO-TCO …………………………………… 63 4.3 Kết luận ………………………………………………………………… 70 Chương : GIỚI THIỆU CHƯƠNG TRÌNH VÀ VÍ DỤ MINH HỌA 71 5.1 Giới thiệu chương trình ACO-TCO …………………………………… 71 5.1.1 Giao diện chương trình ACO-TCO ……………………… 71 5.1.2 Trình tự thực tốn chương trình ACO-TCO… 75 5.2 Các ví dụ minh họa …………………………………………………… 76 5.2.1 Ví dụ ………………………………………………………… 76 vii 5.2.2 Ví dụ ………………………………………………………… 80 5.2.3 Ví dụ ………………………………………………………… 85 5.3 Kết luận ………………………………………………………………… 89 Chương : KẾT LUẬN VÀ KIẾN NGHỊ 90 6.1 Kết luận ………………………………………………………………… 90 6.2 Kiến nghị ……………………………………………………………… 91 TÀI LIỆU THAM KHẢO 92 PHỤ LỤC 97 viii DANH SÁCH HÌNH ẢNH Hình 2.1 Mục tiêu thời gian, chi phí & chất lượng dự án …………………… Hình 2.2 Quan hệ tuyến tính thời gian – chi phí …………………………… 19 Hình 2.3 Một số quan hệ khác thời gian – chi phí ………………………… 20 Hình 3.1 Nguồn cảm hứng thuật tốn - Những kiến …………………… 26 Hình 3.2 Kiến vệt mùi ………………………………………………………… 28 Hình 3.3 Thí nghiệm cầu đơi (Double Bridge Experiment) ……………… 29 Hình 3.4 Kiến di chuyển cầu đơi ……………………………………… 29 Hình 3.5 Kiến quay trở tổ …………………………………………………… 30 Hình 3.6 Kiến …………………………………………………………………… 36 Hình 3.7 Marco Dorigo – Cha đẻ Thuật toán kiến ………………………… 40 Hình 3.8 Sơ đồ cấu trúc tổng quát thuật tốn Hệ kiến ……………………… 45 Hình 4.1 Biểu diễn tốn TCO dạng TSP ……………………………… 59 Hình 4.2 Sơ đồ cấu trúc tổng qt mơ hình ACO-TCO …………………… 69 Hình 5.1 Giao diện chương trình ACO-TCO …………………………………… 72 Hình 5.2 Menu dùng để nhập thơng số ACO …………………………… 73 Hình 5.3 Menu xuất kết chương trình ……………………………… 74 Hình 5.4 Dữ liệu dự án nhập vào chương trình (ví dụ 1) ………………… 77 Hình 5.5 Kết tối ưu ví dụ ………………………………………………… 78 Hình 5.6 Chi tiết lời giải sơ đồ mạng ứng với T=62 & C=233000 ……………… 79 Hình 5.7 Dữ liệu dự án nhập vào chương trình (ví dụ 2) ………………… 82 Hình 5.8 Kết tối ưu ví dụ ………………………………………………… 83 Hình 5.9 Chi tiết lời giải sơ đồ mạng ứng với T=100 & C=283370 …………… 84 Hình 5.10 Kết tối ưu ví dụ ………………………………………………… 88 ix DANH SÁCH BẢNG BIỂU Bảng 3.1 Các ứng dụng thuật toán ACO …………………………………… 50 Bảng 5.1 Các số liệu ví dụ ………………………………………………… 76 Bảng 5.2 Lựa chọn thông số cho thuật tốn ACO (ví dụ 1) ………………… 78 Bảng 5.3 So sánh kết ACO GA (ví dụ 1) …………………………… 79 Bảng 5.4 Các số liệu ví dụ ………………………………………………… 80 Bảng 5.5 Lựa chọn thông số cho thuật tốn ACO (ví dụ 2) ………………… 82 Bảng 5.6 So sánh kết ACO GA (ví dụ 2) …………………………… 83 Bảng 5.7 Thông tin dự án ví dụ ……………………………………… 85 Bảng 5.8 Các số liệu ví dụ ………………………………………………… 86 Bảng 5.9 Lựa chọn thơng số cho thuật tốn ACO (ví dụ 3) ………………… 87 x PHỤ LỤC tempValueC = ZMaxC - ZMinC + IN_R For i = To IN_NumberAnts vT = WT * (listT(i) - ZMinT + IN_R) / tempValueT vC = WC * (listC(i) - ZMinC + IN_R) / tempValueC fValue(i) = vT + vC LogWriteLine "f(" & i & ") = " & fValue(i) Next i End Sub Private Sub Step6() Dim i As Integer Dim j1 As Integer Dim j2 As Integer Dim k As Integer LogWriteLine "Step 6: find the pheromone on the edge" For i = To NumberJobs For j1 = To listJob(i).NumberOptions For j2 = To listJob(i + 1).NumberOptions For k = To IN_NumberAnts pheromone(i, j1, j2) = pheromone(i, j1, j2) + PheromoneAntKOnEdgeIJ1J2(k, i, j1, j2) Next k ' LogWriteLine "Pheromone on edge(" & i & "," & j1 & "," & j2 & ") = " & pheromone(i, j1, j2) Next j2 Next j1 Next i End Sub Private Sub Step7() 113 PHỤ LỤC Dim i As Integer Dim j1 As Integer Dim j2 As Integer Dim k As Integer LogWriteLine "Step 7: Update the intensity pheromone on the edge" For i = To NumberJobs For j1 = To listJob(i).NumberOptions For j2 = To listJob(i + 1).NumberOptions intensityPheromone(i, j1, j2) = IN_P * intensityPheromone(i, j1, j2) + pheromone(i, j1, j2) ' LogWriteLine "Intensity Pheromone on edge(" & i & "," & j1 & "," & j2 & ") = " & intensityPheromone(i, j1, j2) Next j2 Next j1 Next i End Sub Private Sub Step8() Dim i As Integer Dim j1 As Integer Dim j2 As Integer Dim k As Integer LogWriteLine "Step 8: Compute the selection probability and visibility for each edge" CalVisibility CalProbability End Sub Private Sub UpdatePathOfAntK(k As Integer) Dim i As Integer Dim j1 As Integer 114 PHỤ LỤC Dim j2 As Integer Dim index As Integer Dim maxValue As Double Dim temp As Double Dim op() As Integer Dim p() As Double Dim pIndex() As Integer Dim sum As Double ReDim op(NumberJobs + 1) ReDim p(MaxOption + 1) ReDim pIndex(MaxOption + 1) Dim q As Double For i = To NumberJobs - j1 = listAnt(k, i) q = Rnd If (q < IN_Q0) Then 'op(i+1) = arg max(Exp(IN_Alpha * Log(intensityPheromone(i, j1, j2))) * Exp(IN_Beta * Log(visibility(i, j1, j2))) ' where j2 run from to listJob(i + 1).NumberOptions op(i + 1) = maxValue = If (intensityPheromone(i, j1, 1) > 0) Then maxValue = Exp(IN_Alpha * Log(intensityPheromone(i, j1, 1))) * _ Exp(IN_Beta * Log(visibility(i, j1, 1))) End If For j2 = To listJob(i + 1).NumberOptions If (intensityPheromone(i, j1, j2) > 0) Then temp = Exp(IN_Alpha * Log(intensityPheromone(i, j1, j2))) * _ Exp(IN_Beta * Log(visibility(i, j1, j2))) Else temp = 115 PHỤ LỤC End If If (maxValue < temp) Then maxValue = temp op(i + 1) = j2 End If Next j2 Else For j2 = To listJob(i + 1).NumberOptions p(j2) = probability(i, j1, j2) pIndex(j2) = j2 Next j2 SortArray p, pIndex, listJob(i + 1).NumberOptions sum = op(i + 1) = pIndex(listJob(i + 1).NumberOptions) For j2 = To listJob(i + 1).NumberOptions sum = sum + p(j2) If (sum > q) Then op(i + 1) = pIndex(j2) Exit For End If Next j2 End If If (op(i + 1) = 0) Then op(i + 1) = End If Next i For i = To NumberJobs listAnt(k, i) = op(i) Next i If (Rnd < ACCESS_BEST_SOLUTION) Then index = Random(1, numberSolution2) 116 PHỤ LỤC For i = To NumberJobs listAnt(k, i) = listSolution2(index).listOption(i) Next i End If End Sub Private Sub SortArray(a() As Double, aIndex() As Integer, n As Integer) Dim i As Integer Dim j As Integer Dim temp As Double Dim tempIndex As Integer For i = To n - For j = i + To n If (a(i) > a(j)) Then temp = a(i) a(i) = a(j) a(j) = temp tempIndex = aIndex(i) aIndex(i) = aIndex(j) aIndex(j) = tempIndex End If Next j Next i End Sub Private Sub CalVisibility() Dim i As Integer Dim j1 As Integer Dim j2 As Integer Dim tempC As Double Dim tempT As Double For i = To NumberJobs 117 PHỤ LỤC tempC = dcMax(i + 1) - dcMin(i + 1) + IN_R tempT = tMax(i + 1) - tMin(i + 1) + IN_R For j1 = To listJob(i).NumberOptions For j2 = To listJob(i + 1).NumberOptions visibility(i, j1, j2) = WC * (dcMax(i + 1) - listJob(i + 1).listOption(j2).Cost + IN_R) / tempC _ + WT * (tMax(i + 1) - listJob(i + 1).listOption(j2).Duration + IN_R) / tempT ' LogWriteLine "visibility of edge(" & i & "," & j1 & "," & j2 & ") = " & visibility(i, j1, j2) Next j2 Next j1 Next i End Sub Private Sub CalProbability() Dim i As Integer Dim j1 As Integer Dim j2 As Integer Dim sum As Double For i = To NumberJobs For j1 = To listJob(i).NumberOptions sum = For j2 = To listJob(i + 1).NumberOptions If (intensityPheromone(i, j1, j2) > 0) Then sum = sum + Exp(IN_Alpha * Log(intensityPheromone(i, j1, j2))) * _ Exp(IN_Beta * Log(visibility(i, j1, j2))) End If Next j2 For j2 = To listJob(i + 1).NumberOptions If (intensityPheromone(i, j1, j2) > 0) Then 118 PHỤ LỤC probability(i, j1, j2) = Exp(IN_Alpha * Log(intensityPheromone(i, j1, j2))) * _ Exp(IN_Beta * Log(visibility(i, j1, j2))) / sum Else probability(i, j1, j2) = End If Next j2 Next j1 Next i End Sub Private Sub Step9() Dim i As Integer Dim j As Integer LogWriteLine "Step 9: Update the new path of ants" Dim q As Double q = Rnd ' If (q > IN_Q0) Then 'For i = To IN_NumberAnts ' For j = To NumberJobs ' listAnt(i, j) = Random(1, listJob(j).NumberOptions) ' Next j 'Next i 'Else For i = To IN_NumberAnts UpdatePathOfAntK (i) Next i 'End If WriteListAntToLog End Sub 119 PHỤ LỤC Private Sub WriteListAntToLog() Dim i As Integer Dim j As Integer Dim str As String For i = To IN_NumberAnts str = "Ant i: " For j = To NumberJobs str = str & " " & listAnt(i, j) Next j LogWriteLine str Next i End Sub Private Sub WriteListSolution() Dim i As Integer Dim j As Integer Dim str As String LogWriteLine "Number Solution: " & numberSolution LogWriteLine FormatColumn("Time", 20) & FormatColumn("Cost", 20) & FormatColumn("Job Option", 20) For i = To numberSolution str = FormatColumn(listSolution(i).Time, 20) & FormatColumn(listSolution(i).Cost, 20) str = str & listSolution(i).listOption(1) For j = To NumberJobs str = str & ", " & listSolution(i).listOption(j) Next j LogWriteLine str Next i End Sub 120 PHỤ LỤC Private Sub WriteStep4() LogWriteLine "ZMinT = " & ZMinT LogWriteLine "ZMaxT = " & ZMaxT LogWriteLine "ZMinC = " & ZMinC LogWriteLine "ZMaxC = " & ZMaxC LogWriteLine "WT = " & WT LogWriteLine "WC = " & WC End Sub Private Sub SortSolution() Dim i As Integer Dim j As Integer Dim temp As Solution NewSolution temp For i = To numberSolution - For j = i + To numberSolution If (listSolution(i).Time > listSolution(j).Time) Then AssignSolution temp, listSolution(i) AssignSolution listSolution(i), listSolution(j) AssignSolution listSolution(j), temp End If Next j Next i End Sub Private Sub NewSolution(aSol As Solution) ReDim aSol.listOption(NumberJobs + 1) End Sub Private Function FindMinDayOptionOfJob(jobIndex As Integer) Dim i As Integer Dim minDay As Integer Dim result As Integer With listJob(jobIndex) 121 PHỤ LỤC minDay = listOption(1).Duration result = For i = To NumberOptions If (minDay > listOption(i).Duration) Then minDay = listOption(i).Duration result = i End If Next i End With FindMinDayOptionOfJob = result End Function Private Function FindMaxDayOptionOfJob(jobIndex As Integer) Dim i As Integer Dim maxDay As Integer Dim result As Integer With listJob(jobIndex) maxDay = listOption(1).Duration result = For i = To NumberOptions If (maxDay < listOption(i).Duration) Then maxDay = listOption(i).Duration result = i End If Next i End With FindMaxDayOptionOfJob = result End Function Private Sub InitMinDaySolution() Dim i As Integer Dim aSol As Solution 122 PHỤ LỤC ReDim aSol.listOption(NumberJobs + 1) For i = To NumberJobs listJobOption(i) = FindMinDayOptionOfJob(i) aSol.listOption(i) = listJobOption(i) Next i CalTC aSol.Cost = VALUE_C aSol.Time = VALUE_T AddToListSolution aSol End Sub Private Sub InitMaxDaySolution() Dim i As Integer Dim aSol As Solution ReDim aSol.listOption(NumberJobs + 1) For i = To NumberJobs listJobOption(i) = FindMaxDayOptionOfJob(i) aSol.listOption(i) = listJobOption(i) Next i CalTC aSol.Cost = VALUE_C aSol.Time = VALUE_T BoundMaxDay = VALUE_T AddToListSolution aSol End Sub Private Sub InitBoundSolution() LogWriteLine "Init Bound Solution" InitMinDaySolution InitMaxDaySolution WriteListSolution End Sub 123 PHỤ LỤC Private Function AntKTravelEdgeIJ1J2(k As Integer, i As Integer, j1 As Integer, j2 As Integer) As Boolean On Error GoTo Err1: If (listAnt(k, i) = j1) And (listAnt(k, i + 1) = j2) Then AntKTravelEdgeIJ1J2 = True Else AntKTravelEdgeIJ1J2 = False End If Exit Function Err1: AntKTravelEdgeIJ1J2 = False End Function Private Function PheromoneAntKOnEdgeIJ1J2(k As Integer, i As Integer, j1 As Integer, j2 As Integer) As Double If (AntKTravelEdgeIJ1J2(k, i, j1, j2)) Then PheromoneAntKOnEdgeIJ1J2 = IN_Q / fValue(k) Else PheromoneAntKOnEdgeIJ1J2 = End If End Function Private Function GenerateCSVFile() Dim f As TextStream Dim i As Integer Dim j As Integer Dim k As Integer Dim str As String Set f = fso.CreateTextFile(OutputFileName) f.WriteLine "Time," & "Cost," & "Solution" For i = To numberSolution - For j = listSolution(i).Time To listSolution(i + 1).Time - str = j & " , " & listSolution(i).Cost & ",""" & listSolution(i).listOption(1) 124 PHỤ LỤC For k = To NumberJobs str = str & ", " & listSolution(i).listOption(k) Next k str = str & """" f.WriteLine str Next j Next i For j = listSolution(numberSolution).Time To BoundMaxDay str = j & " , " & listSolution(numberSolution).Cost & ",""" & listSolution(numberSolution).listOption(1) For k = To NumberJobs str = str & ", " & listSolution(numberSolution).listOption(k) Next k str = str & """" f.WriteLine str Next j f.Close End Function Private Sub WriteMaxMinTC() Dim i As Integer Dim str As String LogWriteLine FormatColumn("Job", 20) & FormatColumn("dcMin", 20) & FormatColumn("dcMax", 20) & FormatColumn("tMin", 20) & FormatColumn("tMax", 20) For i = To NumberJobs LogWriteLine FormatColumn(i, 20) & FormatColumn(dcMin(i), 20) & FormatColumn(dcMax(i), 20) & FormatColumn(tMin(i), 20) & FormatColumn(tMax(i), 20) Next i End Sub Private Sub MoveToListSolution2() Dim i As Integer numberSolution2 = numberSolution 125 PHỤ LỤC If (numberSolution2 > 0) Then ReDim listSolution2(numberSolution2 + 1) For i = To numberSolution AssignSolution listSolution2(i), listSolution(i) Next i End If numberSolution = End Sub 126 TÓM TẮT LÝ LỊCH KHOA HỌC Họ tên : DƯƠNG THÀNH NHÂN Ngày tháng năm sinh : 01 / 07 / 1981 Nơi sinh : Bến Tre Địa liên lạc : 37/7 Đường 2, Khu phố 3, Phường Cát Lái, Quận 2, TPHCM QUÁ TRÌNH ĐÀO TẠO Từ tháng năm 1999 đến tháng 01 năm 2004 học Đại học trường Đại Học Bách Khoa Thành Phố Hồ Chí Minh Từ tháng năm 2005 đến học Sau Đại học trường Đại Học Bách Khoa Thành Phố Hồ Chí Minh Q TRÌNH CƠNG TÁC Từ tháng 04 năm 2004 đến tháng năm 2008 công tác Xí Nghiệp Điện Cao Thế, trực thuộc Cơng ty Điện Lực TPHCM Từ tháng 07 năm 2008 đến công tác Công ty Cổ phần Phát triển Tài trợ Địa ốc R.C (REFICO) 127 ... TIÊU NGHIÊN CỨU Mục tiêu luận văn nghiên cứu ứng dụng thuật toán ACO (Ant Colony Optimization) vào việc tối ưu hóa thời gian chi phí cho dự án xây dựng, từ xây dựng nên mơ hình nhằm giúp kỹ sư xây. .. ngành : Công nghệ Quản lý xây dựng MSHV : 00805176 1- TÊN ĐỀ TÀI : NGHIÊN CỨU ỨNG DỤNG THUẬT TOÁN ACO (ANT COLONY OPTIMIZATION) TỐI ƯU THỜI GIAN VÀ CHI PHÍ CHO DỰ ÁN XÂY DỰNG 2- NHIỆM VỤ LUẬN VĂN... tượng nghiên cứu Phương pháp nghiên cứu Nội dung luận văn Chương : Tổng quan Khái niệm chung quản lý dự án xây dựng Quản lý chi phí dự án xây dựng Quản lý tiến độ dự án xây dựng Tổng quan toán tối

Ngày đăng: 09/03/2021, 04:11

Từ khóa liên quan

Mục lục

  • 1 - BIA

  • 2 - TRANG ii

  • 3 - NHIEM VU LV

  • 4 - LOI CAM ON

  • 5 - TOM TAT

  • 6 - MUC LUC

  • 7 - HINH ANH

  • 8 - BANG BIEU

  • 9 - CHUONG 1 - GIOI THIEU

  • 10 - CHUONG 2 - TONG QUAN

  • 11 - CHUONG 3 - PHUONG PHAP LUAN

  • 12 - CHUONG 4 - MO HINH HOA BAI TOAN

  • 13 - CHUONG 5 - GIOI THIEU CHUONG TRINH & VI DU

  • 14 - CHUONG 6 - KET LUAN & KIEN NGHI

  • 15 - TAI LIEU THAM KHAO

  • 16 - PHU LUC

  • 17 - TOM TAT LY LICH

Tài liệu cùng người dùng

Tài liệu liên quan