1. Trang chủ
  2. » Cao đẳng - Đại học

Ứng dụng Excel giải từng bước bài toán vận tải

73 717 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 73
Dung lượng 589,47 KB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA TOÁN Nguyễn Thị Hoàng Oanh ỨNG DỤNG EXCEL GIẢI TỪNG BƯỚC BÀI TOÁN VẬN TẢI KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Hà Nội – Năm 2017 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA TOÁN Nguyễn Thị Hoàng Oanh ỨNG DỤNG EXCEL GIẢI TỪNG BƯỚC BÀI TOÁN VẬN TẢI Chuyên ngành: Toán ứng dụng KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: Th.S Phạm Văn Duẩn Hà Nội – Năm 2017 Lời cảm ơn Trước trình bày nội dung khóa luận, em xin bày tỏ lời biết ơn sâu sắc tới thầy giáo Th.S Phạm Văn Duẩn người tận tình hướng dẫn em để hoàn thành khoá luận Em xin bày tỏ lòng biết ơn chân thành tới toàn thể thầy cô tổ Toán ứng dụng nói riêng thầy cô khoa Toán trường Đại học Sư Phạm Hà Nội nói chung quan tâm động viên khích lệ dạy bảo em tận tình suốt trình hoàn thành khóa luận học tập khoa Hà Nội, ngày 22 tháng năm 2017 Sinh viên thực Nguyễn Thị Hoàng Oanh Lời cam đoan Khoá luận tốt nghiệp em hoàn thành hướng dẫn nhiệt tình thầy giáo, Thạc sĩ Phạm Văn Duẩn với cố gắng thân Trong trình nghiên cứu, em tham khảo kế thừa thành nghiên cứu nhà khoa học nhà nghiên cứu với trân trọng lòng biết ơn Em xin cam đoan kết nghiên cứu đề tài Ứng dụng Excel giải bước toán vận tải trùng lặp với kết đề tài khác Nếu sai em xin hoàn toàn chịu trách nhiệm Hà Nội, ngày 22 tháng năm 2017 Sinh viên thực Nguyễn Thị Hoàng Oanh Mục lục Kiến thức chuẩn bị 1.1 Thiết lập toán vận tải 1.2 Bảng vận tải 1.3 Cách phá vỡ vòng xây dựng vòng 12 1.4 Tìm phương án sở xuất phát 14 1.4.1 Phương pháp góc tây bắc 15 1.4.2 Phương pháp cực tiểu cước phí 16 1.5 Các thuật toán giải toán vận tải 16 1.5.1 Thuật toán quy cước phí ô chọn 16 1.5.2 Thuật toán vị 19 GIỚI THIỆU, TÌM HIỂU VỀ VBA 2.1 23 Ghi thực macro 23 2.2 Cách thực Macro đơn giản 24 2.2.1 Thực macro từ đối tượng đồ họa worksheet 25 2.2.2 Chạy macro từ nút lệnh công cụ 25 2.2.3 Chạy macro từ lệnh menu Excel 27 2.2.4 Thay đổi lựa chọn Macro 29 ii Khóa luận tốt nghiệp Đại học 2.3 Nguyễn Thị Hoàng Oanh Ngữ pháp VB (Visual Basic Grammar) 29 2.3.1 Các đối tượng (Objects) 29 2.3.2 Các phương thức (Methods) 30 2.3.3 Các thuộc tính (Properties) 31 2.3.4 Các biến Variables 32 2.4 Viết macro 35 2.4.1 Viết macro 35 2.4.2 Sửa chữa lỗi 38 2.5 Câu trúc điều khiển 39 2.5.1 Câu lệnh IF 39 2.5.2 Xây dựng câu điều kiện 41 2.5.3 Hành động lặp (Loop) 44 Giải bước toán vận tải Excel 54 3.1 Tìm phương án sở xuất phát phương pháp góc tây bắc 54 3.2 Sử dụng thuật toán vị giải toán vận tải 58 iii Lời cảm ơn Trước trình bày nội dung khóa luận, em xin bày tỏ lời biết ơn sâu sắc tới thầy giáo Th.S Phạm Văn Duẩn người tận tình hướng dẫn em để hoàn thành khoá luận Em xin bày tỏ lòng biết ơn chân thành tới toàn thể thầy cô tổ Toán ứng dụng nói riêng thầy cô khoa Toán trường Đại học Sư Phạm Hà Nội nói chung quan tâm động viên khích lệ dạy bảo em tận tình suốt trình hoàn thành khóa luận học tập khoa Hà Nội, ngày 22 tháng năm 2017 Sinh viên thực Nguyễn Thị Hoàng Oanh Lời cam đoan Khoá luận tốt nghiệp em hoàn thành hướng dẫn nhiệt tình thầy giáo, Thạc sĩ Phạm Văn Duẩn với cố gắng thân Trong trình nghiên cứu, em tham khảo kế thừa thành nghiên cứu nhà khoa học nhà nghiên cứu với trân trọng lòng biết ơn Em xin cam đoan kết nghiên cứu đề tài Ứng dụng Excel giải bước toán vận tải trùng lặp với kết đề tài khác Nếu sai em xin hoàn toàn chịu trách nhiệm Hà Nội, ngày 22 tháng năm 2017 Sinh viên thực Nguyễn Thị Hoàng Oanh i Mục lục ii Lời mở đầu Lý chọn đề tài Quy hoạch tuyến tính số môn học bắt buộc sinh viên nhiều ngành học khác từ ngành học toán học ngành khoa học kĩ thuật kinh tế Bài toán vận tải dạng đặc biệt quy hoạch tuyến tính Song song với nghiên cứu lý thuyết, việc phát triển chương trình máy tính giải toán vận tải với kích thước đủ lớn để áp dụng vào thực tiễn đạt nhiều thành tựu đáng kể Với mong muốn nghiên cứu tìm hiểu sâu môn đồng thời giúp sinh viên có công cụ để kiểm tra bước làm toán vận tải, bước đầu làm quen với công việc nghiên cứu khoa học, góc độ sinh viên chuyên ngành Toán, phạm vi khoá luận tốt nghiệp em chọn đề tài Ứng dụng Excel giải bước toán vận tải Mục đích nhiệm vụ nghiên cứu - Nghiên cứu Lập trình Excel để giải bước toán vận tải - Ứng dụng phần mềm Excel giải bước toán vận tải Khóa luận tốt nghiệp Đại học Nguyễn Thị Hoàng Oanh Trong ví dụ này, giá trị i tăng bước 1, 3, 5, 7,9 Hình 2.15: Vòng For Next bước nhảy For Each Next Tương tự vòng lặp For Next, lặp khối lệnh theo số phần tử tập hợp đối tượng hay mảng, thay theo số lần lặp xác định.Vòng lặp tiện lợi ta chưa biết xác phần tử tập hợp For Each In Next Để xác định tên số lượng ô vùng làm việc , ta dùng thủ tục sau: Sub Cbm_Value_Select() Dim rng As Range Dim i As Integer: i = Set rng = Application.InputBox("Range:", Type:=8) 50 Khóa luận tốt nghiệp Đại học Nguyễn Thị Hoàng Oanh Hình 2.16: Minh họa vòng For each For Each myCell In rng i = i + Next myCell MsgBox "so o vung" & i End Sub Hình 2.17: Kết For Each Next Lệnh thoát (Exit) Trong số trường hợp, bạn thoát khỏi công việc thỏa mãn yêu cầu công việc Bạn sử dụng tủ tục Exit Exit Do (thoát khỏi vòng lặp Do Loop), Exit For (thoát khỏi vòng 51 Khóa luận tốt nghiệp Đại học Nguyễn Thị Hoàng Oanh For Next), Exit Function (thoát khỏi hàm), Exit Sub (thoát khỏi chương trình), Exit Property (thoát khỏi thuộc tính làm việc) Ví dụ: Sub ExitStatementDemo() Dim i, MyNum Do ’ Đặt vòng lặp Do Loop For i=1 To 1000 ’ lặp 1000 lần MyNum =Int(Rnd*1000) ’ Tạo số nguyên ngẫu nhiên Select Case MyNum ’ Tính toán với số nguyên Case 7: Exit For ’ Nếu thoát khỏi For Next Case 29: Exit Do ’ Nếu 29 thoát khỏi Do Loop Case 54: Exit Sub ’ Nếu 54 thaost khỏi vòng Sub End Select Next i Loop End Sub Vòng lặp lồng Vòng lặp lồng vào Ứng dụng có hiệu ta tính toán với mảng hay bảng tính nhiều chiều Ví dụ: SubCellsExample() For i = To 52 Khóa luận tốt nghiệp Đại học Nguyễn Thị Hoàng Oanh For j = To Cells(i, j) = i Cells(j, i) = j Next j Next i End Sub Kết thể hình vẽ đây: Hình 2.18: Sản phẩm tạo dùng vòng lặp lồng 53 Chương Giải bước toán vận tải Excel Chương trình bày việc giải bước toán vận tải với hỗ trợ Excel.Chương trình bày vấn đề cần giải tiến hành giải bước toán vận tải cách tự động với hỗ trợ Excel Trong Chương 3, sử dụng thuật toán vị giải toán vận tải bước xác định phương án sở xuất phát sử dụng phương pháp góc tây bắc 3.1 Tìm phương án sở xuất phát phương pháp góc tây bắc Đầu vào • Hai mảng A, B với thành phần không âm, tương ứng chứa thông tin khối lượng mặt hàng điểm phát, điểm thu Tổng 54 Khóa luận tốt nghiệp Đại học Nguyễn Thị Hoàng Oanh lượng phát tổng lượng thu • Ma trận C với số chiều phù hợp với A, B chứa thông tin chi phí vận chuyển từ điểm phát tới điểm thu Đầu • Ma trận X số chiều giống với ma trận C chứa thông tin cách vận chuyển hàng chuyển từ điểm phát tới điểm thu, đảm bảo điểm phát hết hàng, điểm thu nhận đủ hàng • Tổng chi phí tương ứng với lựa chọn phương án vận chuyển X Hướng giải Private Sub NFSolution_Click() Dim A As Range, B, C As Range, X As Range ’khai bao Dim i As Integer, j As Integer, m As Integer, n As Integer Dim x11, Cost As Double Dim tongThu, tongPhat As Double ’Step nhap dau vao, bo qua buoc kiem tra, dat A,B doc Set A = Application.InputBox("Thong tin diem phat", Type:=8) Set B = Application.InputBox("Thong tin diem thu", Type:=8) Set C = Application.InputBox("Ma tran cuoc phi", Type:=8) ’tim m, n: so luong thu phat ’m = UBound(A, 1) - LBound(A, 1) + 55 Khóa luận tốt nghiệp Đại học Nguyễn Thị Hoàng Oanh ’n = UBound(B, 1) - LBound(B, 1) + m = A.Rows.Count n = B.Rows.Count ReDim Atemp(m) As Double, Btemp(n) As Double tongThu = tongPhat = For i = To m Atemp(i) = A(i) tongThu = tongThu + Atemp(i) Next i For j = To n Btemp(j) = B(j) tongPhat = tongPhat + Btemp(j) Next j ’Noi luu ket qua Cells(12, 6).Value = tongPhat Cells(12, 7).Value = tongThu ’Kiem tra tinh can bang, tam bo qua If tongPhat tongThu Then MsgBox "Tong phat khac tong thu" & vbNewLine _ & "Vui long kiem tra lai" Cells(15 + m, 11).Value = Worksheets("RefSheet").Range("A3").Value Exit Sub 56 Khóa luận tốt nghiệp Đại học Nguyễn Thị Hoàng Oanh End If ’Tim ma tran X va gia tri ham muc tieu Cost Set X = Range(Cells(12, 11), Cells(12 + m - 1, 11 + n - 1)) ’Luu ket qua tu o J10 Cost = For i = To m For j = To n x11 = WorksheetFunction.Min(Atemp(i), Btemp(j)) X(i, j) = x11 Cost = Cost + X(i, j) * C(i, j) Atemp(i) = Atemp(i) - x11 Btemp(j) = Btemp(j) - x11 Next j Next i ’gia tri ham muc tieu Cells(15 + m, 11).Value = Worksheets("RefSheet").Range("A3").Value ’me Cells(15 + m, 12).Value = Cost End Sub Hướng dẫn tao tác Excel: Copy thông tin từ phần tìm phương án xuất phát chưa có phương án xuất phát Nhấn nút để thực tính toán, chọn nơi chứa thông tin toán, ví dụ C12:C14 57 Khóa luận tốt nghiệp Đại học Nguyễn Thị Hoàng Oanh Xóa liệu sau sử dụng Kết Thông tin cần nhập hộp thoại MsgBox vùng liệu người dùng nhập giá trị đầu vào: điểm phát, điểm thu, ma trận cước phí.Việc khai báo đưa kết minh họa sau: Hình 3.1: Khai báo địa đầu vào- Điểm phát Hình 3.2: Khai báo địa đầu vào- Điểm thu 3.2 Sử dụng thuật toán vị giải toán vận tải Đầu vào • Hai mảng A, B với thành phần không âm, tương ứng chứa thông tin khối lượng mặt hàng điểm phát, điểm thu Tổng 58 Khóa luận tốt nghiệp Đại học Nguyễn Thị Hoàng Oanh Hình 3.3: Khai báo ma trận cước phí Hình 3.4: Hiển thị phương án xuất phát lượng phát tổng lượng thu • Ma trận C với số chiều phù hợp với A, B chứa thông tin chi phí vận chuyển từ điểm phát tới điểm thu Đầu • Ma trận X số chiều giống với ma trận C chứa thông tin cách vận chuyển hàng chuyển từ điểm phát tới điểm thu, đảm bảo điểm phát hết hàng, điểm thu nhận đủ hàng • Tổng chi phí tương ứng với lựa chọn phương án vận chuyển X nhỏ 59 Khóa luận tốt nghiệp Đại học Nguyễn Thị Hoàng Oanh Trong phần trình bày hướng giải khó khăn xây dựng vòng bảng vận tải thực thuật toán với VBA Xây dựng vòng bảng vận tải Với tập L gồm m + n ô bảng vận tải với số chiều tương ứng m, n, phải tìm vòng • Tổ chức matranDanhdau số chiều m × n chứa phần tử 0,1 với ô ứng với ô tập L • Sử dụng cờ flag để đánh dấu việc tìm kiếm, flag=1 tiếp tục tiến hành đoạn chương trình Gán cờ flag=0 vào vòng lặp While • Xóa hàng (cột) chứa

Ngày đăng: 27/06/2017, 08:58

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w