Đồ án tốt nghiệp đại học “nghiên cứu, cài đặt thuật toán giải bài toán lập hành trình người đưa thư và ứng dụng”

92 770 0
Đồ án tốt nghiệp đại học “nghiên cứu, cài đặt thuật toán giải bài toán lập hành trình người đưa thư và ứng 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

LỜI NÓI ĐẦU Các bài toán trên đồ thị có nhiều ứng dụng trong các lĩnh vực khác nhau như mạng thông tin, đồ họa, ứng dụng lập kế hoạch Các bài toán đặt ra trong các ứng dụng như vậy thường có cơ sở dữ liệu lớn nên việc rút ngắn thời gian tính toán để trả lời một câu truy vấn có ý nghĩa thực tiễn cao. Ngoài ra trong thực tế, các đồ thị được sử dụng trong các bài toán có thể liên tục thay đổi theo thời gian, ví dụ như các đỉnh hay các cạnh của nó có thể được thêm vào hay xóa đi (đồ thị động), hoặc thay đổi độ dài, lượng thông qua Mỗi lần có một thay đổi như vậy cấu trúc dữ liệu của bài toán, thông tin về các đỉnh cũng như các cạnh cũng bị thay đổi theo. Trong khi đó yêu cầu đặt ra là phải liên tục trả lời các câu hỏi về thông tin trong đồ thị như tính liên thông của đồ thị, rừng bao trùm tối thiểu, 2 đỉnh bất kỳ có nằm trên cùng một cây bao trùm tối thiểu hay không, đường đi ngắn nhất Một cách tiếp cận để giải quyết các bài toán trên đồ thị động là sử dụng các cấu trúc dữ liệu và thuật toán truyền thống trong đồ thị tĩnh và chạy lại chúng mỗi khi có sự thay đổi trong đồ thị. Tuy nhiên cách tiếp cận như vậy không tận dụng được thông tin của đồ thị trước khi thay đổi dẫn đến độ phức tạp để trả lời một câu truy vấn về đồ thị sau mỗi bước thay đổi là lớn. Trong đồ án tốt nghiệp này, em xin trình bày các nghiên cứu, khảo sát thực nghiệm và ứng dụng một số cấu trúc dữ liệu được đưa ra gần đây nhằm giúp quản lý các đồ thị động một cách mềm dẻo. Dựa trên các cấu trúc dữ liệu này, một số bài toán trên đồ thị động như kiểm tra tính liên thông, xây dựng cây bao trùm, tìm đường đi ngắn nhất được giải quyết với độ phức tạp thời gian nhỏ hơn so với việc chạy lại các thuật toán truyền thống trên đồ thị tĩnh mỗi khi có sự thay đổi trong đồ thị. 1 Đề tài của đồ án“Nghiên cứu, cài đặt thuật toán giải bài toán lập hành trình người đưa thư và ứng dụng” được đặt ra với mục tiêu: • Nghiên cứu thuât toán giải và xây dựng ứng dụng giải quyết bài toán tìm hành trình tối ưu nhất cho người đưa thư, báo với các điểm đưa thư, báo cố định hoặc thay đổi tuỳ theo nhiệm vụ phân công. • Mô tả bằng đồ hoạ trên bản đồ tuyến đường lựa chọn cho người đưa thư, đảm bảo nhanh và ít tốn kém nhất. • Cài đặt cho mô hình trung tâm phát hành báo với tập hợp người đưa thư hữu hạn, hoặc chọn tuyến đường cho xe phục vụ đưa đón học sinh, sinh viên Thuật toán tìm hành trình tối ưu nhất cho người đưa thư là một thuật toán quan trọng, khó khăn và ý nghĩa to lớn trong thực tế tìm lộ trình di chuyển của bất kỳ đối tượng di động nào đó như: người, xe máy, ô tô…Với hệ thống này mang lại nhiều tiện ích và hiệu quả cho người sử dụng, đặc biệt là hiệu quả về kinh tế, tiết kiệm thời gian, công sức…trong việc lựa chọn đường đi cho hợp lý. Bên cạnh đó với màn hình mô phỏng trực tiếp trên bản đồ giúp cho người sử dụng dễ quan sát, dễ sử dụng, mang tính chất thực tế cao. Mô hình này có thể triển khai cho nhiều ứng dụng thực tế: - Hệ thống tìm đường đi tối ưu cho người đưa thư, người giao báo…. - Hệ thống tìm đường đi tối ưu cho các dịch vụ đưa đón học sinh, sinh viên… - Hệ thống xác định lộ trình cho các tour du lịch… Nôi dung của đồ án đề cập tới các vấn đề sau: - Nghiên cứu lý thuyết đồ thị và ứng dụng. 2 - Nghiên cứu cụ thể về các thuật toán tìm đường đi trên đồ thị, đặc biệt là thuật toán giải bài toán lập hành trình cho người đưa thư. - Nghiên cứu về lập trình sử dụng cơ sở dữ liệu trên bản đồ(cụ thể là MapInfo). - Nghiên cứu về số hoá bản đồ, thực hiện số hoá một vùng cụ thể(ví dụ: khu vực Hà Nội), số hoá điểm, đường, và các mốc quan trong trên bản đồ cần thiết cho việc xác định đường đi đường biểu diễn cụ thể trên bản đồ. - Phân tích và cài đặt thuật toán người đưa thư. - Viết chương trình tìm đường đi cho người đưa thư, và thể hiện kết quả trên bản đồ cụ thể. Sau 6 tháng thực hiện đế nay em đã xây dựng được chương trình trên ngôn ngữ C#, kết hợp với cơ sở dữ liệu MapInfo mô phỏng được các tác nghiệp trên bản đồ. Chương trình có thể sử dụng tại các Trung tâm phát hành báo chí tại các quận nội thành Hà Nội. Trong quá trình thực hiện đồ án tốt nghiệp em xin chân thành cảm ơn thầy giáo đã tận tình chỉ bảo để em có thể hoàn thành nhiệm vụ. 3 CHƯƠNG 1: TÌM HIỂU VỀ PHẦN MỀM MAPINFO 6.0 1.1.Cài đặt phần mềm MapInfo 6.0: * Những yêu cầu về hệ thống: Để đảm bảo cho phần mềm MapInfo 6.0 có thể chạy ổn định trên máy tính trước khi cài đặt phần mềm phải chắc chắn đảm bảo được các yêu cầu sau đây: - Máy tính tối thiểu là 586 với bộ nhớ tối thiểu 32Mb RAM. - Màn hình cần có màn hinh VGS hoặc các màn hình có độ phân giải cao hơn. - Môi trường hệ thống: đòi hỏi môi trường hệ thống là Windows 95/98 hoặc Windows NT 4.0 1.2. Tổ chức thông tin bản đồ trong MapInfo: 1.2.1. Tổ chức thông tin theo các tập tin: MapInfo tổ chức tất cả các thông tin bao gồm dữ liệu không gian và dữ liệu phi không gian dưới dạng bảng cơ sở dữ liệu(Table). Các thông tin không gian và thông tin thuộc tính này MapInfo được liên kết với nhau một cách chặt chẽ, không thể tách rời thông qua chỉ số ID, được lưu trữ và quản lý chúng cho cả hai loại dữ liệu. Mỗi một bảng dữ liệu là một nhóm các tệp với các phần đuôi mở rộng khác nhau: - Filename.tab: mô tả cấu trúc của bảng dữ liệu. - Filename.dat: hoặc filename.dbf hoặc filename.wks hoặc filename.xls bao gồm dữ liệu kiểu bảng xếp thành hàng, cột, những dữ liệu được nhập vào Mapinfor thông qua phần mềm dBase/foxBase. Lotus 1-2-3, exel, mã ASCII hoặc Microsolt Access thì cơ sở dữ liệu Mapinfor sẽ bao gồm filename.tab và tệp dữ liệu hay bảng tính. Với dữ liệu nhập 4 vào dạng Raster, phần đuôi mở rộng tương ứng có thể là bmp, tif hoặc gif. - Filename.map: mô tả các đối tượng đồ hoạ. - Filename.id: là một tệp chỉ số có tác dụng liên kết dữ liệu với các đối tượng. Đối với bảng dữ liệu của Microsoft Access. Chúng có tệp filename.Aid thay thế cho tệp filename.id. tệp này có tác dụng liên kết dữ liệu gắn các đối tượng với bảng thông tin trong Microsoft Access. Ngoài ra, khi muốn ghi lại cách quản lý và lưu trữ tổng hợp nhiều bảng dữ liệu hoặc nhiều cửa sổ thông tin khác nhau trong Mapinfor có thể ghi lại các sắp xếp này vào một tập tin filename.wor. 1.2.2. Tổ chức thông tin theo các đối tượng: Các bản đồ Máy tính được tở chức , quản lý theo từng lớp (layers). Có thể hình dung các lớp như là các tờ giấy bóng suốt chồng xếp lên nhau. Mỗi một lớp thông tin chỉ thể hiện một khía cạnh của mảnh bản đồ. Trong Mapinfor có thể coi mỗi bảng dữ liệu (Table) là một lớp đối tượng. Mỗi một lớp có thể chứa đựng các đối tượng khác nhau dưới dạng vùng (region). Điểm(Point), đường (line), và chữ(text). + Đối tượng vùng (region): thể hiện các đối tượng khép kín hình học và bao phủ một vùng diện tích nhất định, chúng có thể là các đa giác, hình chữ nhật. + Đối tượng điểm(Point): thể hiện vị trí cụ thể của các đối tượng địa lý. + Đối tượng đường(Line): thể hiện các đối tượng không khép kín hình học và chạy theo một khoảng cách nhất định. Chúng có thể là đường thẳng, các đường gấp khúc và các cung. 5 + Đối tượng dạng chữ(text): thể hiện các đối tượng không gian không phải địa lý bản đồ như nhãn tiêu đề, ghi chú. Ví dụ: một lớp bao gồm các vùng với viền bao là ranh giới hành chính, tệp thứ hai gồm các ký hiệu tuyến. Thể hiện đường giao thông, lớp thứ ba ký hiệu thể hiện tại vị trí các thành phố thị xã, lớp thứ tư thể hiện địa danh của các thành phố đó. Bằng cách đặt các lớp thông tin này chống lên nhau. Chúng ta đã thấy xuất hiện một bản đồ. Cứ như vậy cùng một lúc có thể hiển thị một, hai hoặc nhiều lớp. Với các bản đồ được xây dựng thành từng lớp như vậy có thể dễ dàng sắp xếp, thêm hay bớt các lớp thông tin để phù hợp với nội dung và mục đích của bản đồ cần thành lập. 1.3. Thực đơn và các chức năng cơ bản của MapInfo: (đọc tài liệu tham khảo”giáo trình MapInfo-Hướng dẫn sử dụng phần mềm Mapinfor 6.0”) 1.4. Số hoá bản đồ: 1.4.1. Trước khi số hoá bản đồ: Trước khi số hoá bản đồ cần đặt cho bản đồ một thông số tham chiếu. Trên bản đồ số hoá phải có các tham chiếu cần thiết nếu không bản đồ số hoá tạo ra sẽ không chính xác. Khi đăng ký toạ độ cần phải đặt những điểm khống chế bắt buộc ít nhất là 4 điểm và có một điểm kiểm tra(toạ độ này đựơc nhập khi MapInfor yêu cầu). Mapinfor sẽ tính toán các thông số toạ độ từ bản đồ này, và sẽ tính toán các lỗi, nếu thoả mãn yêu cầu thì tiếp tục các công việc tiếp theo, ngược lại thì phải làm lại từ đầu, sai số càng cao thì bản đồ càng không chính xác 1.4.2. Bắt đầu số hoá: 6 Chọn file trên thanh menu chọn Open: Chọn RasterImage Chọn file bản đồ cần số hoá: Chọn register sau đó xuất hiện hộp thoại sau: Sau đó Open khi đó xuất hiện hộp thoại 7 Rồi tiến hành đăng ký toạ độ cho bản đồ như sau: Chọn đơn vị bản đò thông qua chọn lưới chiếu bản đồ thông qua tiến hành đăng ký toạ độ và bấm chuột vào điểm cần đăng ký toạ độ: Nhập toạ độ X, nhập toạ độ Y vào và chọn OK thực hiện các thao tác trên khi hết các điểm cần đăng ký thì thôi. ( chú ý chọn tối thiểu là 4 điểm) các Image X và Image Y là các toạ độ đã được chuyển đổi Sau khi đăng ký xong kiểm tra lỗi và chọn OK Sau đó tiến hành số hoá Những vấn đề chung về số hoá: Khi cửa sổ số hoá được kích hoạt, ta tiến hành các công việc số hoá, thứ tự số hoá • Công cụ vẽ phải được lựa chọn • Cửa sổ bản đồ phải được kích hoạt • Chắc chắn rằng các điểm toạ độ đã lựa chọn là phù hợp và đầy đủ • Hãy bấm phím “ S “ để bắt đầu. 8 1.5. Các hàm cơ bản trong Mapinfor: a) Những toán tử so sánh: Sử dụng những hộp thoại biểu thức để công thức hoá những biểu thức chữ số và toán học trong một vài hộp thoại của Mapinfor. Những toán tử so sánh để tạo ra các biểu thức. Một số toán tử so sánh phổ biến: = : bằng nhau. <>: không bằng nhau. >: lớn hơn. <: nhỏ hơn. >=: lớn hơn hoặc bằng. <=: nhở hơn hoặc bằng. _: dấu gộp cho một ký tự. %: dấu gộp cho nhiều ký tự. b) ký tự, số, ngày tháng năm: - Khi nhập riêng những chuỗi ký tự, số và ngày tháng trong biểu thức cần tuân theo các nguyên tắc trình bày dưới đây: * Với những chuỗi ký tự: khi nhập các mẫu tin ký tự vào trong một biểu thức thì phải nhập chúng trong dấu ngoặc kép. * Với số (numbers): khi nhập giá trị đặc biệt bằng số không sử dụng dấu phảy, dấu đô la, hoặc bất kỳ những chữ số nào khác hơn chữ số. Có thể sử dụng mũ e để thực hiện * Với ngày tháng năm: năm thì có thể sử dụng hai hoặc bốn chữ số nếu muốn, ngày tháng năm cách nhau một dấu ”-” hoặc “/”. Nếu năm không chỉ rõ thì nó sẽ mặc định đồng hồ máy. Chú ý phải được cho vào dấu nháy kép. Ví dụ: MM/dd/yy: “09/08/2009” MM/dd/yyyy: “09/08/2009” 9 yy/MM/dd: “2009/08/09” dd-MMM-yy: “09/08/2009” c) Một số hàm toán học thông dụng: Ads(num): cho giá trị tuyệt đối của một số. Cos(num): cho cosin của một số, số đó phải là Radian. Int(num): cho phần số nguyên của một số. Maximum(num,num): cho số lớn hơn của 2 chữ số. Curdate(): cho ngày tháng hiện thời. Day(date): cho phần ngày. Month(date): cho phần tháng. Weekday(date): cho ngày của tuần (1-7)(1- là chủ nhật). Year(date): cho năm. Chr$(num): cho một ký tự mà tương ứng với mã d) Câu truy vấn SQL: Thủ tục chung để sử dụng SQL select như sau: B1: Mở một bảng muốn hỏi. B2: Chọn Query SQLSelect Tiến hành điền những câu hỏi và chọn OK Mapinfor sẽ thực hiện các câu hỏi : 10 [...]... của hãng MapInfo Nó cho phép tạo các ứng dụng bản đồ tuỳ biến và ứng dụng bản đồ để triển khai ở môi trường Web và Desktop với Microsoft Windown MapXtreme 2005 là một môi trường phát triển và tạo ra các ứng dụng bản đồ, bản đồ trung tâm Nó là công cụ có thể giúp bạn phát triển các ứng dụng dùng ngôn ngữ lập trình ưa thích Một số khái niệm bản... cấu trúc ứng dụng: Vừa rồi chúng ta đã có cái nhìn tổng quan về các không gian tên trong MapXtreme 2005, bước tiếp theo là xem xét cấu trúc của ứng dụng MapXtreme 2005 có thể xây dựng các ứng dụng Web và ứng dụng Desktop 2.2.2.1 Mô hình kiến trúc cho ứng dụng Web: 20 Mô tả kiến trúc: Ứng dụng Web minh hoạ ở mô hình trên bao gồm các thành phần và khả... lớp và giao diện cung cấp nhiều cách để truy cập dữ liệu từ một ứng dụng của MapXtreme 2005 26 Trong phần này sẽ trình bày mô hình tổ chức và lược đồ mẫu truy cập dữ liệu MapXtreme 2005, bao gồm các chủ để: + Catolog và Table + Table Metadata(Tableinfo) + Trình cung cấp MapInfo ADO.NET + Feature và tập hợp các feature 2.4.1 Catalog và Tables: Catalog là một trình. .. bản đồ sẽ trình bày mối quan hệ không gian giữa các đối tượng bản đồ, bản đồ định hướng cho bạn tới vị trí của các đối tượng và những điều mà chúng trình bày Ngoài ra các đối tượng, các thành phần trên bản đồ có thể chứa các nhãn(label), các nhan đề(title), các chú giải, và các chủ đề Các chủ đề này được tạo ra dựa trên một vài thao tác... có thể gắp và thả lên trên form trong bộ Visual Studio.NET(xem phần ứng dụng destop, điều khiển, hộp thoại và các công cụ cho ứng dụng destop và web) 14 + Dùng mô hình đối tượng MapWtreme 2005 để xây dựng bản đồ trong ứng dụng của bạn 2.1.2 Tables: Các đối tượng bảng chứa đựng dữ liệu mà bạn muốn hiển thị trên bản đồ Các bảng nắm các hàng và các cột... 2.2.2.2 Mô hình kiến trúc cho ứng dụng Desktop: 21 Kiến trúc trong ứng dụng desktop tương tự như kiến trúc trong ứng dụng web trong thiết kế Model-View-Controller của nó Dùng Workspace Manager để xây dựng bất kỳ bản đồ cơ sở nào bạn cần Dùng các điều khiển Windown và các hộp thoại dialog để mang lại cho ứng dụng của bạn một giao diện người dùng phong phú Đồng... các lớp mà có thể được đặt trong các bảng và có thể là một phần của các đối tượng Feature và FeatureCollection Để hiện thị được trên bản đồ nó cần được đặt trong một bảng Các đối tượng nào mà chỉ là một lớp con của Geometry và không là lớp con của FeatureGeometry không thể được lưu tới bảng gồm cả một phần của Feature và FeatureCollection a) Các... toạ độ, và xử lý đối tượng 2.2.1.5 Không gian tên MapInfo.Mapping: Không gian tên này chứa các lớp, các interface và các liệt kê cho việc tạo, hiện thị và xuất bản đồ, các đối tượng layer, các đối tượng table, modifier 2.2.1.6 Không gian tên MapInfo.Tools: Không gian tên này chứa các lớp cho việc tạo và thư c thi nhiều kiểu của công cụ tool dùng cho các ứng dụng... layer chứa đựng các đối tượng bản đồ Và việc hiểu thư tự của các lớp layer là rất quan trọng Lớp layer cuối cùng được vẽ đầu tiên và lớp đầu tiên được vẽ sau cùng Lớp layer chứa đựng các đối tượng Các đối tượng này sẽ tô mờ các đối tượng của lớp khác đặt phía dưới Ví dụ một lớp các đối tượng vùng được đặt ở dưới lớp các đối tượng điểm... dùng trong bản đồ thể hiện các thông báo một cách phù hợp Các lời chú giải là các yếu tố thuộc về thuật vẽ bản đồ, nó mô tả các đối tượng trong kiểu đã mã hoá Các chú giải cũng có thể chứa đựng một nhan đề mô tả khái quát cho những cái mà bản đồ trình bày Lớp này được đặt trong không gian tên MapInfo.Mapping 16 2.1.6 Themes: Các bản đồ số không . toán truyền thống trên đồ thị tĩnh mỗi khi có sự thay đổi trong đồ thị. 1 Đề tài của đồ án là “Nghiên cứu, cài đặt thuật toán giải bài toán lập hành trình người đưa thư và ứng. đồ thị và ứng dụng. 2 - Nghiên cứu cụ thể về các thuật toán tìm đường đi trên đồ thị, đặc biệt là thuật toán giải bài toán lập hành trình cho người đưa thư. - Nghiên. ứng dụng” được đặt ra với mục tiêu: • Nghiên cứu thuât toán giải và xây dựng ứng dụng giải quyết bài toán tìm hành trình tối ưu nhất cho người đưa thư, báo với các điểm đưa

Ngày đăng: 19/06/2014, 20:52

Từ khóa liên quan

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

Tài liệu liên quan