Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 64 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
64
Dung lượng
1,96 MB
Nội dung
MỤC LỤC MỤC LỤC MỞ ĐẦU CHƯƠNG GIỚI THIỆU TỔNG QUAN VÀ NGÔN NGỮ LẬP TRÌNH DELPHI 1.1 Giới thiệu đề tài 1.2 Ngơn ngữ lập trình Delphi 1.2.1 Giới thiệu ngơn ngữ lập trình Delphi 1.2.2 DELPHI WIN32 API 1.2.3 Các thành phần điều khiển chủa Windows 1.2.4 Ngôn ngữ Object Pascal 11 CHƯƠNG 17 ĐỒ THỊ VÀ ỨNG DỤNG CỦA ĐỒ THỊ 17 2.1 Đồ thị 17 2.1.1 Định nghĩa đồ thị 17 2.1.2 Các loại đồ thị 18 2.1.3 Một số khái niệm tính chất đồ thị 19 2.1.4 Các dạng biểu diễn đồ thị 24 2.2 Số ổn định tô màu đồ thị 30 2.2.1 Số ổn định trong, số ổn định ngoài, nhân đồ thị 30 2.2.2 Tô màu đồ thị 36 2.3 Chu trình, đường Euler Hamilton đồ thị 41 2.3.1 Chu trình đường Euler 41 2.3.2 Chu trình đường Hamilton 43 2.4 Đường ngắn đồ thị 45 2.4.1 Đường ngắn đồ thị trọng số 45 2.4.2 Đường ngắn đồ thị có trọng số 46 2.4.3 Ví dụ ứng dụng 52 CHƯƠNG 57 ỨNG DỤNG VÀO BÀI TOÁN VẬN CHUYỂN CHO 57 CÔNG TY TNHH BẢO SƠN 57 3.1 Công ty TNHH Bảo Sơn 57 3.1.1 Giới thiệu Công ty TNHH Bảo Sơn 57 3.1.2 Tầm quan trọng tốn tính cước phí vận chuyển cho Công ty TNHH Bảo Sơn 57 3.2 Bài tốn tính cước phí vận chuyển 58 3.2.1 Phát biểu toán 58 3.2.2 Phân tích tốn 58 3.3 Kết 59 KẾT LUẬN 63 TÀI LIỆU THAM KHẢO 64 MỞ ĐẦU Lý thuyết đồ thị lĩnh vực có từ lâu có nhiều ứng dụng đại, tư tưởng lý thuyết đồ thị đề xuất vào năm đầu kỷ XVIII nhà bác học lỗi lạc người Thuỵ Sỹ Lenhard Eurle Chính ơng người sử dụng đồ thị để giải toán tiếng cầu thành phố Konigsberg Đồ thị sử dụng để giải toán nhiều lĩnh vực khác Chẳng hạn, đồ thị sử dụng để xác định mạch vịng vấn đề giải tích mạch điện Chúng ta xác định hai máy tính mạng trao đổi thơng tin với hay khơng nhờ mơ hình đồ thị mạng máy tính Đồ thị có trọng số cạnh sử dụng để giải tốn như: Tìm đường di ngắn hai thành phố mạng giao thơng, giải tốn lập lịch, thời khoá biểu phân bố tần số cho trạm phát truyền hình … Lý thuyết đồ thị nhánh quan trọng của toán học tổ hợp nghiên cứu sâu sắc hàng trăm năm Nhiều tính chất quan trọng hữu ích đồ thị chứng minh, nhiều vấn đề khó chưa giải xong Ở đề tài với mục đích tìm hiểu vấn đề lý thuyết đồ thị sâu tìm hiểu số thuật toán đồ thị cài đặt ngơn ngữ lập trình Delphi Trong thời gian làm đồ án cố gắng nhiều kiến thức than có hạn, ngơn ngữ lập trình phải tự tìm hiểu, nên đề tài khơng tránh khỏi thiếu sót Em kính mong nhận đánh giá bảo thầy cô giáo để đề tài em hoàn thiện Một lần em xin chân thành cảm ơn thầy giáo Th.S Bùi Ngọc Tuấn tận tình hướng dẫn giúp em hoàn thành đồ án Em xin chân thành cảm ơn ! CHƯƠNG GIỚI THIỆU TỔNG QUAN VÀ NGƠN NGỮ LẬP TRÌNH DELPHI 1.1 Giới thiệu đề tài "Ứng dụng đồ thị Tin học" đề tài mang tính nghiên cứu lý thuyết, có tầm quan trọng có ý nghĩa thiết thực cao Khái niệm đồ thị khác với đồ thị thông thường biết, lĩnh vực lý thuyết đồ thị nghiên cứu cấu trúc mang tính rời rạc phận quan trọng Tốn học rời rạc Lý thuyết đồ thị có nhiều ứng dụng ngành kỹ thuật nghiên cứu nhiều với khối lượng kiến thức đồ sộ Đề tài thực trước tiên đề cập tới vấn đề chủ yếu Lý thuyết đồ thị, sau tuỳ nội dung xoay quanh tới ứng dụng đồ thị Tin học, giải toán Tin học xác định xem hai máy tính mạng truyền tin hay khơng nhờ mơ hình đồ thị mạng máy tính, tốn nối mạng máy tính cho tổng chi phí nhỏ việc khắc phục gói tin bị truyền sai nhờ giải thuật nghiên cứu đồ thị Có ứng dụng đồ thị khơng trực tiếp vào lĩnh vực Tin học, ví dụ tốn lập lịch cơng tác hành chính, xác định đường ngắn hai điểm nút giao thơng, ta xem ứng dụng cách gián tiếp Tin học mơ hình tốt tốn đồ thị giải chúng dễ dàng máy tính, chơi cờ Ca rơ mơn chơi trí tuệ đồ thị hỗ trợ tốt cho muốn lập trình chơi cờ Ca rơ máy tính mơ hình cờ đồ thị Trong ứng dụng thực tế, Bài tốn tìm đường ngắn hai đỉnh đồ thị liên thơng có ý nghĩa to lớn Có thể dẫn toán nhiều toán thực tế quan trọng Ví dụ, Bài tốn chọn hành trình tiết kiệm (theo tiêu chuẩn khoảng cách thời gian chi phí) mạng giao thơng đường bộ, đường thuỷ đường khơng; Bài tốn chọn phương pháp tiết kiệm để đưa hệ động lực từ trạng thái xuất phát đến trạng thái đích, Bài tốn lập lịch thi cơng cơng đoạn cơng trình thi cơng lớn, v.v… Hiện có nhiều phương pháp để giải toán Thế thơng thường, thuật tốn xây dựng dựa sở lý thuyết đồ thị tỏ thuật tốn có hiệu cao Trong đề tài em nghiên cứu cài đặt toán - "Bài toán Vận tải " Từ toán em vào ứng dụng cụ thể việc lập dự án đấu thầu vận chuyển cho Công ty TNHH Bảo Sơn 1.2 Ngôn ngữ lập trình Delphi 1.2.1 Giới thiệu ngơn ngữ lập trình Delphi Delphi có tiền thân ngơn ngữ lập trình Pascal (thật từ ngôn ngữ hướng đối tượng Object Pascal) Pascal ngôn ngữ rõ ràng mạch lạc thường dùng công việc nghiên cứu giảng dạy dùng viết ứng dụng chuyên nghiệp hệ điều hành hay chương trình thương mại cao cấp Nhưng Delphi hồn tồn Delphi đưa ngơn ngữ Pascal trưởng thành lên nhiều, có lẽ phải gọi ngơn ngữ Delphi Để làm việc Delphi phải học nắm bắt thêm nhiều từ khoá kỹ thuật mới, khái niệm lập trình hướng đối tượng Với mơi trường phát triển Delphi, bạn kiến tạo chương trình ứng dụng Windows từ tập tin thực thi EXE, thư viện liên kết động DLL, ứng dụng OLE, thành phần ActiveX đến ứng dụng WEB mạng Internet, ứng dụng giao diện đồ hoạ, ứng dụng truy xuất sở liệu client – server, tích hợp cơng nghệ đại JAVA, CORBA, NIDAS … Nhìn chung với ứng dụng chuyên nghiệp đòi hỏi thời gian phát triển nhanh có tính chun mơn cao Delphi lựa chọn tốt Kết hợp khả truy xuất cấp thấp C cộng với tận dụng chức cao cấp hệ điều hành, Delphi xứng đáng để lập trình viên đầu tư vào 1.2.2 DELPHI WIN32 API Delphi dành cho nhà lập trình gần tồn khả điều khiển hệ điều hành Windows thông qua thành phần đối tượng mà không cần phải quan tâm đền hàm Win32 API Bạn thay đổi mặt cách hàm xử chương trình thơng qua phương thức hay thuộc tính đối tượng Để xây dựng nên hệ điều hành Windows giúp nhà phát triển viết ứng dụng cho Windows, Microsoft cất công tạo nên thư viện API (Appication Programming Interface) cịn gọi Giao tiếp lập trình ứng dụng Đây tập hợp lời gọi hàm cấp cao giúp chương trình tương tác với Windows (bản thân Windows thiết kế hàm API này) Bạn hình dung lời gọi hàm cấp thấp BIOS Microsoft đưa vào hệ điều hành DOS hình thức chức ngắt (Interrupt) 21h giúp lập trình viên DOS đơn giản hố cơng việc thâm nhập sâu vào BIOS tận dụng chức hệ điều hành DOS với Win32 API có ý nghĩa tương tự vậy, hàm API giúp bạn đơn giản hố cơng việc lập trình Windows Khi lập trình DOS với ngôn ngữ Pascal, C bạn phải vận đụng đến ngắt 21h hay ngắt BIOS trình biên dịch cấp cao đóng gói hầu hết chức hệ điều hành dạng thư viện (như stdio.lib C hay unit crt Pascal chẳng hạn), lập trình viên thực sử dụng ngắt 21h DOS hay ngắt BIOS muốn thực thao tác đặc biệt mà hệ điều hành DOS Microsoft khơng cung cấp khơng cơng bố Lập trình môi trường Windows thật phức tạp hơn môi trường DOS đơn giản bạn sử dụng công cụ phát triển trực quan Visual Basic, Delphi, PowerBuilder, C++ Builder Visual C++ Thật nhà phát triển tạo công cụ phải làm việc nhiều với hàm API đóng gói chúng dạng thư viện hay đối tượng để lập trình viên khác sử dụng Vì lý thường công cụ phát triển đưa hay đóng gói đầy đủ chức Windows API Nhiều nhiều lý để bạn sử dụng WIN32 API công cụ tốt dùng mở tung cánh cửa Windows từ môi trường phát triển ứng dụng Windows khác khơng riêng mơi trường phát triển Delphi 1.2.3 Các thành phần điều khiển chủa Windows a Nút nhấn (Button) Nút nhấn Delphi đặt lớp đối tượng TButton, tình thường sử dụng là OnClick Khi người dùng Click chuột vào nút nhấn, tình gọi để phản ứng lại tác vụ b Nhãn (Lable) Nhãn thành phần đơn giản thư viện VCL Đối tượng nhãn dùng để trình bày chuỗi văn thơng thường, nhằm mục đích mơ tả thêm thơng tin cho đối tượng khác Nhãn dùng để đưa kết hình dạng chuỗi Trong Delphi, nhãn đặt lớp đối tượng có tên TLable Thuộc tính thường sử dụng nhãn là: Caption thể nội dung nhãn Font định font chữ, kiểu chữ cho nhãn Transparent cho phép màu nhãn trùng với màu Form c Ô đánh dấu Ô đánh dấu hay gọi CheckBox cho phép người dùng chọn hay bỏ chọn yêu cầu Checkbox Delphi đặt lớp TCheckBox Thuộc tính thường sử dụng CheckBox Checked mang kiểu Boolean Nếu Checked = True, ô đánh dấu trạng thái chọn Nếu Checked = False, người dùng bỏ chọn ô đánh dấu Khi ô đánh dấu kích chuột để yêu cầu thay đổi trạng thái, tình OnClick phát sinh d Ơ chọn (RadioButton) Khơng ô đánh dấu CheckBox chọn riêng lẻ, ô chọn (Radio) thường chung với lần thể trạng thái Ô chọn Radio Delphi đặt lớp đối tượng có tên TRadioButton Thuộc tính thường sử dụng chọn Checked mang kiểu Boolean Nếu Checked = True, ô chọn trạng thái chọn Nếu Checked = False, người dùng bỏ chọn ô hành để chuyển sang chọn ô khác Khi ô chọn Radio kích chuột để yêu cầu thay đổi trạng thái, tình OnClick phát sinh e Ơ văn (EditBox) Ô văn thành phần nhập liệu đơn giản dùng giao diện đồ hoạ, cho phép nhập vào chuỗi văn bản, chỉnh sửa, di chuyển nháy để soạn thảo phím mũi tên Ô văn cho phép nhập dịng văn Ơ văn Delphi đặt lớp đối tượng có tên TEdit Thuộc tính thường sử dụng văn thuộc tính text Nó trả chuỗi, cho biết nội dung liệu mà người dùng nhập vào Mỗi liệu hay nội dung thuộc tính text thay đổi, tình OnChange gọi f Vùng văn (Memo) Vùng văn Memo cho phép nhập vào lúc nhiều dịng liệu Có thể dùng Memo để tạo chương trình soạn thảo văn hay dùng để xuất chuỗi văn Vùng văn Delphi đặt lớp đối tượng có tên TMemo Thuộc tính thường sử dụng Memo thuộc tính Lines Thuộc tính Lines có kiểu String, dùng để quản lý danh sách dịng liệu mà Memo có Để đơn giản, Memo cung cấp thuộc tính Text chuỗi bao gồm tất dòng Memo cộng lại, dòng cách ký tự 10 13 Tình thường sử dụng Memo tình OnChange, tình gọi người dùng thay đổi thêm liệu vào Memo g Danh sách (ListBox) Danh sách chứa danh sách mục chọn, mục chọn thường thể chuỗi ListBox cho phép chọn lần hay nhiều mục lúc Danh sách Delphi đặt lớp đối tượng có tên TlistBox Thuộc tính thường sử dụng danh sách là: Items Dùng để thêm bớt mục chọn vào danh sách ItemIndex Cho biết thiết lập mục chọn hành Selected Kiểm tra xem mục chọn danh sách có chọn hay không MultiSelect Cho phép danh sách chọn đồng thời nhiều mục Sorted Tự động xếp mục chọn theo thứ tự ABC Các tình mà ListBox thường phát sinh là: OnClick Khi người dùng kích chuột vào mục chọn OnDblClick Khi người dùng kích đôi chuột vào mục chọn OnKeyPress Khi người dùng nhấn phím để chọn mục OnKeyDown/ OnKeyUp Xử lý người dùng nhấn nhả phím h Danh sách sổ(ComboBox) Danh sách sổ ComboBox lần thể mục mục trạng thái chọn Danh sách sổ Delphi đặt lớp đối tượng có tên TcomboBox Thuộc tính thường sử dụng ComboBox là: Text Nội dung mục chọn hành Items Danh sách mục chọn ItemIndex Lấy thiết lập mục chọn hành cho ComboBox Sorted Cho phép xếp mục chọn danh sách theo thứ tự ABC Style Chọn kiểu ComboBox mở rộng Tình mà Litsbox thường phát sinh tình OnChange, gọi nội dung mục chọn hành bị thay đổi i Thanh trượt (Scrollbar) Thanh trượt gồm mũi tên hai đầu trượt đặt để xác định vị trí Khoảng cách hai trượt vị trí định vị biểu thuộc tính min, max, position Khi nhấn phím mũi tên, PageUp, PageDown kích chuột vào hai đầu trượt làm cho vị trí nút trượt di chuyển dần đến hai bên Thanh trượt Delphi đặt lớp đối tượng có tên TScrollbar Thuộc tính thường sử dụng trượt Scrollbar là: Min Thể giới hạn trượt Max Thể giới hạn trượt Position Cho biết đặt lại vị trí hành nút trượt Kind Cho phép đặt trượt đứng ngang SmallChange Bước nhảy cho trượt phím mũi tên nhấn PageSize Bước nhảy cho trượt PageUp/PageDown nhấn Tình mà trượt Scrollbar thường phát sinh OnChange, gọi vị trí nút trượt thay đổi j Nhóm ô chọn (RadioGroup) RadioGroup đối tượng giúp cho việc gom nút chọn có chức lại với thành nhóm Thành phần Delphi đặt lớp đối tượng có tên TRadioGroup Thuộc tính thường sử dụng thành phần là: Items Các ô chọn RadioButton gắn nhóm ItemIndex Nút Radio chọn Caption Tiêu đề nhóm chọn Column Phân cột cho chọn Tình mà nhóm chọn thường phát sinh OnClick, gọi người dùng kích chuột vào chọn nhóm k Nhóm đối tượng (GroupBox) Có thể sử dụng nhóm chứa đối tượng mang tên GroupBox để phân loại đối tượng theo chủ đề Thành phần Delphi đặt lớp đối tượng có tên TGroupBox Tương tự TRadioGroup, TGroupBox dùng thuộc tính Caption để thể tiêu đề cho nhóm TGroupBox cung cấp tình OnClick, 10 {Khởi tạo} For x X Begin (x) := t[a, x]; Truoc[x] := a; End; (a) := 0; For k:=1 to n - For x X \ {a} For y X if (x) > (y) + t[y, x] then begin (x) := (y) + t[y, x]; Truoc(x) := y; End; End; Độ phức tạp thuật toán O(n 3) chấm dứt vịng lặp theo k phát trình thực vịng lặp khơng có biến d[u] bị thay đổi giá trị Đối với đồ thị có số cạnh m thoả mãn m < 6.n tốt sử dụng danh sách kề để biểu diễn đồ thị, vịng lặp theo y cần viết dạng For tất đỉnh y kề với x if (x) > (y) + t[y, x] then begin (x) := (y) + t[y, x]; Truoc(x) := y; End; Trong trường hợp thuật tốn có độ phức tạp O(n.m) * Thuật toán Floyd Trong nhiều trường hợp ta cần xác định đường ngắn tất cặp đỉnh, với tốn giải cách sử dụng n lần thuật toán thuật tốn Ford - bellman ta chọn s đỉnh đồ thị cách làm 50 cách làm tốt đây, ta trình bày thuật tốn để giải tốn thuật tốn Floyd Thuật tốn trình bày khái qt dạng thủ tục sau: Procedure Floyd; { Input: đồ thị cho ma trận trọng số a[i,j], i,j = 1,2, ,n; Output: Ma trận đường ngắn tất cặp đỉnh d[i,j], i,j = 1,2, n Trong d[i,j] cho độ dài ngắn từ i đến j Ma trận ghi nhận đường p[i,j] ghi nhận đường trước đỉnh j} Begin For i:=1 to n For j:=1 to n Begin d[i,j] := a[i,j] p[i,j] := i; End; For k:=1 to n For i:=1 to n For j:=1 to n if d[i,j] > d[j,k] + d[k,j] then Begin d[i, j] := d[i, k] + d[k,j]; p[i,j] := p[k,j]; End; End; 51 * Sơ đồ khối thuật toán Floyd: BEGIN d[i,j] := a[i,j] p[i,j] := i d[i,j]> d[j,k] + d[k,j] k++ d[i,j] := d[i,k]+d[k,j] p[i,j] := p[k,j] i++ j++ k=n i=n j=n END 2.4.3 Ví dụ ứng dụng * Ứng dụng việc lập lịch thi cơng cơng trình Ta mở rộng tốn tìm đường ngắn tốn tìm đường dài 52 Với tốn có điểm khác thay tìm trọng số nhỏ tìm trọng số lớn cho đỉnh Đồ thị có nhiều ứng dụng vấn đề lập lịch, với toán tốn tìm đường dài ta đề cập tới ứng dụng lập lịch sơ đồ mạng PERT Sơ đồ mạng PERT (Project Evaluation and Review Technique) xếp lịch dự án cơng trình, ứng dụng rộng rãi đem lại nhiều hiệu việc thi công cơng trình Một cơng trình thi cơng chia làm nhiều cơng việc, có số cơng việc mà việc thực tiến hành sau số cơng việc hồn thành Sơ đồ PERT thể đồ thị có hướng cung đồ thị biểu diễn cơng việc Trên cung có đặt thời gian thực công việc, đỉnh bắt đầu kết thúc hay nhiều công việc a) Xây dựng sơ đồ PERT Giả sử sơ đồ PERT đồ thị có hướng G = ta tiến hành xây dựng sau: Với (i, j) U cung biểu diễn cơng việc tij thời gian thực cơng việc đó, tij trọng số cho cung (i, j) Mỗi đỉnh hình trịn gồm thành phần hình vẽ sau tđ tsi tmi Di Trong đó: 1) tđ: tên đỉnh, tên đỉnh số xác định sau: - Đánh số cho đỉnh khởi cơng (Chỉ có cung ra) - Sau đỉnh đánh số xố cung từ đỉnh - Đánh số cho đỉnh có cung (nếu có nhiều đỉnh lấy tuỳ ý đỉnh) - Tiếp tục hết đỉnh, đỉnh cuối gọi đỉnh kết thúc 2) tsi: thời gian sớm bắt đầu kiện thứ i (tại đỉnh thứ i) Tại đỉnh khởi công ts0 = 53 đỉnh thứ i: tsi = max{tsj + tji} 3) tmi : thời gian muộn để bắt đầu kiện i mà không ảnh hưởng thời gian rhực cơng trình Sau xác định tất tsi tmi xác định từ đỉnh kết thúc quay đỉnh khởi công sau: đỉnh n đỉnh kết thúc tmn = tsn đỉnh thứ i tmi = min{tmj - tij} 4) Di : thời gian dự trữ kiện thứ i Di = tmi = tsi b) Tìm đường găng Đặt Dij = (tmj - tsi) - tij thời gian dự trữ công việc (i, j) Cơng việc có Dij = cơng việc găng, đường găng đường từ đỉnh khởi cơng đến đỉnh kết thúc cho qua cung biểu thị công việc găng Như đường găng đường dài từ đỉnh khởi cơng đến đỉnh kết thúc, việc tìm đường găng tốn tìm đường dài với đỉnh gốc đỉnh khởi cơng, đỉnh đích đỉnh kết thúc Nhận xét: Với việc xây dựng sơ đồ PERT cho dự án thi công ta thấy việc có thời gian dự trữ dương việc làm chậm mà khơng ảnh hưởng tới tiến độ, việc găng việc kéo dài Muốn rút ngắn thời gian thực cơng trình phải tập trung cào việc găng Sơ đồ PERT thuận tiện cho việc quản lý nói chung khơng phải vẽ lại sơ đồ, có phát sinh việc phụ thêm vào cung điều chỉnh thời gian cung Trên sơ đồ giải loại toán Bài toán 1: Với điều kiện nhân vật lực trang thiết bị có cần bố trí thời gian thực cơng trình ngắn Bài tốn 2: Với điều kiện thời gian hồn thành cơng trình cho trước cần tính tốn việc th nhân cơng sử dụng trang thiết bị cho chi phí xây dựng nhỏ Ví dụ cho bảng cơng việc sau: 54 STT Công việc Làm sau việc Thời gian a Làm 12 b Làm c Làm d c e a 6 f b, a 14 g b, d, e 15 h b, d, e 15 k b, d, e 11 10 l c 18 11 m k, l 12 n h, m 13 p f, g, n 14 q h, m 16 15 r h, m 23 16 s k, l 14 17 t r, s 12 18 u p,q 14 Sơ đồ PERT cho lịch công việc bảng biểu diễn hình 3.4 12 f, 14 12 e, a, 12 0 42 51 18 18 0 38 38 h, 15 l, 18 u, 14 q, 16 73 29 29 Hình 3.4 55 t, 12 s, 14 73 m, d, 59 r, 23 k, 11 c, 7 54 n, g, 15 b, p, 61 61 Đường găng đường có cung tô đậm, việc găng a, e, k, m, r, t - Sơ đồ PERT dạng đồ thị mà thường gọi đồ thị có ưu tiên trước sau ta xét thêm ví dụ ứng dụng loại đồ thị sau: Giả sử máy tính thi hành chương trình đó, câu lệnh xử lý đồng thời Nhưng điều quan trọng khơng thực câu lệnh mà địi hỏi kết câu lệnh khác mà câu lệnh chưa thực xong Sự phụ thuộc câu lệnh vào câu lệnh khác mơ tả bẳng đồ thị có hướng, cạnh q trình thực câu lệnh, đỉnh kiện, kiện biểu việc số câu lệnh thực xong có kết Ví dụ giả sử máy tính cần thực số câu lệnh a, b, c, d, e, l Trong câu lệnh a, b, c thực thi trước tiên đồng thời, lệnh d, l thực kết lệnh c mang lại, lệnh e thực trước lệnh a thực xong v.v Ta lấy đồ thị hình 3.4 để minh hoạ cho ví dụ 56 CHƯƠNG ỨNG DỤNG VÀO BÀI TOÁN VẬN CHUYỂN CHO CƠNG TY TNHH BẢO SƠN 3.1 Cơng ty TNHH Bảo Sơn 3.1.1 Giới thiệu Công ty TNHH Bảo Sơn Là doanh nghiệp có uy tín lĩnh vực vận tải, với đội ngũ xe tải hạng lớn đội ngũ máy xúc hùng hậu, công ty có uy tín thị trường Cơng ty có trụ sở đặt Phú Lương, Thái Ngun Cơng ty TNHH Bảo Sơn thức thành lập vào năm 2000, giám đốc công ty ông Nguyễn Thành Bảo Sau gần 10 năm hoạt động với nhiều gói thầu vận chuyển, Cơng ty có bước phấn đấu trưởng thành với phương châm “Uy tín - chất lượng” Với đội ngũ lái xe chuyên nghiệp, Công ty hồn thành nhiều gói thầu lớn nhỏ Bên cạnh Cơng ty trọng việc đầu tư đưa vào sản xuất nhiều loại xe mới, chất lượng cao, đạt tiêu chuẩn như: Huyndai, Howo … “An tồn chất lượng” tiêu chí sản xuất hàng đầu Cơng ty Vì Cơng ty ngày tạo dựng uy tín vững cơng trình ngồi tỉnh Cơng ty ln cố gắng hoạt động hiệu quả, xây dựng hình ảnh thương hiệu 3.1.2 Tầm quan trọng tốn tính cước phí vận chuyển cho Cơng ty TNHH Bảo Sơn Hiện hoạt động sản xuất cơng ty vận chuyển đất đá để khai thác than cho Mỏ than Phấn Mễ trực thuộc công ty Gang thép Thái Nguyên Đây gói thầu lớn Cơng ty, có nhiều Cơng ty Vận tải khác tham gia đấu thầu, nhờ có tính tốn xác chi phí, Cơng ty liên tục giành gói thầu tay Mỏ than Phấn Mễ tổ chức đấu thầu hàng năm để tìm đối tác vận chuyển với cước phí nhỏ phải đảm bảo chất lượng Công ty TNHH Bảo Sơn có đội ngũ lái xe trang thiết bị tốt, đảm 57 bảo chất lượng, vấn đề để tính cước phí vận chuyển nhỏ nhất, để đưa giá đấu thầu Tại thời điểm có nhiều Cơng ty đối thủ tìm cách giành gói thầu này, vấn đề tính cước phí để lập dự án đấu thầu vấn đề cấp thiết đặt lên hàng đầu Công ty TNHH Bảo Sơn 3.2 Bài tốn tính cước phí vận chuyển 3.2.1 Phát biểu tốn Trong Mỏ than Phấn Mễ có N vị trí cần vận chuyển đất đá, vị trí nằm cốt – tầng khác nhau, tổng chi phí hai vị trí C[i,j] Với gói vận chuyển Cơng ty TNHH Bảo Sơn phải chuyển từ K vị trí tới K vị trí khác (K vị trí N vị trí nói trên) Hãy tìm cách vận chuyển từ k vị trí xuất phát tới k vị trí đích cho tổng chi phí nhỏ Từ Cơng ty đưa tổng chi phí cho gói vận chuyển nhỏ nhất, đưa vào dự án đấu thầu 3.2.2 Phân tích tốn Dữ liệu vào từ File: o Dòng đầu ghi hai số N K o N dòng cho ma trận khoảng cách C: số dịng i, cột j chi phí chiều từ vị trí i đến vị trí j Mỏ o Hai dòng cuối cùng: Dòng thứ gồm K số hiệu K vị trí xuất phát Dòng thứ hai gồm K số hiệu K vị trí đích Dữ liệu ra: Cách vận chuyển từ k vị trí xuất phát tới k vị trí đích mà tổng chi phí nhỏ (tổng chi phí cho gói vận chuyển nhỏ nhất) 58 3.3 Kết Các chức đề tài 59 Chức giới thiệu đề tài 60 Cửa sổ thể giải thuật lời giải toán o Nhập liệu - Nhập từ bàn phím: Dùng chuột kéo xuống tạo đỉnh, cần đỉnh kéo xuống nhiêu lần Để nạp trọng số, nhấp chuột vào đỉnh thứ nhất, nhấp chuột vào đỉnh thứ hai Sau nhấp chuột vào viết trọng số vào Làm nạp hết trọng số cho đồ thị - Nhập liệu từ file: Vào theo đường dẫn: File/ Open 61 Sau xuất cửa sổ chứa file dạng file text, chọn file, ta đồ thị o Chạy chương trình Gắn vào đỉnh xuất phát Gắn vào đỉnh kết thúc Chọn Loigiai/Run nhấn Ctrl + F9 Kết thu hiển thị ô bên phải “Quá trình tìm lời giải” o Lưu liệu (có thể lưu hai cách) Khi đóng cửa sổ chương trình, máy tự động hỏi có lưu đồ thị lại không Chọn File/ Save nhấn Ctrl + S Ví dụ minh họa tốn 62 KẾT LUẬN Được quan tâm bảo tận tình Thầy giáo hướng dẫn giúp đỡ đóng góp ý kiến Thầy giáo, Cô giáo bạn sinh viên Khoa, em hoàn thành đồ án tốt nghiệp với kết đạt sau: Ưu điểm - Trong thời gian làm đồ án em tìm hiểu, nghiên cứu số ứng dụng đồ thị - Em xây dựng thành cơng tốn giao thơng vận tải ngơn ngữ lập trình Delphi Nhược điểm - Do hạn chế mặt thời gian nên nhiều vấn đề ứng dụng nêu chung chung, dừng lại mơ hình lý thuyết, chưa có chứng minh số liệu hay chương trình cài đặt cụ thể Hướng phát triển đề tài - Nghiên cứu sâu ứng dụng đồ thị đưa ứng dụng vào thực tiễn - Đưa thêm điều kiện phát sinh thực tế để chương trình hồn thiện đưa vào ứng dụng cho Công ty TNHH Bảo Sơn phát triển thành phần mềm sử dụng cho Công ty Vận tải Em xin chân thành cảm ơn ! Sinh viên 63 TÀI LIỆU THAM KHẢO [1] Nguyễn Xuân My, Hồ Sỹ Đàm, Trần Đỗ Hùng, Lê Sỹ Quang: Một số vấn đề chọn lọc môn tin học – Tập Nhà xuất Giáo dục - 2004 [2] Kenneth H.Rosen: Toán học rời rạc ứng dụng tin học Nhà xuất Khoa học Kỹ thuật Hà Nội [3] Lê Phương Lan, Hoàng Đức Hải: Giáo trình lý thuyết & tập Delphi Nhà xuất Lao động xã hội - 2003 [4] Lê Hữu Đạt, Lê Phương Lan, Hoàng Đức Hải: Các kỹ xảo lập trình với Microsoft Visual Basic & Borland Delphi Nhà xuất Giáo dục - 2000 Và số tài liệu khác 64