72
ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ──────── ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH CÔNG NGHỆ THÔNG TIN XÂY DỰNG THUẬT TOÁN PHÂN CÔNG GIAO HÀNG CHO HỆ THỐNG CHỢ ĐIỆN TỬ TRỰC TUYẾN MBAY Sinh viên thực hiện: Nguyễn Văn Hạ Lớp CNTT2-K55 Giáo viên hướng dẫn: ThS Vũ Đức Vượng

Đồ án tốt nghiệp Thuật toán đàn kiến

  • Upload
    hai-tu

  • View
    32

  • Download
    14

Embed Size (px)

DESCRIPTION

Đồ án tốt nghiệp Thuật toán đàn kiến

Citation preview

Page 1: Đồ án tốt nghiệp Thuật toán đàn kiến

ĐẠI HỌC BÁCH KHOA HÀ NỘIVIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

──────── * ────────

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌCNGÀNH CÔNG NGHỆ THÔNG TIN

XÂY DỰNG THUẬT TOÁN PHÂN CÔNG

GIAO HÀNG CHO HỆ THỐNG CHỢ ĐIỆN TỬ TRỰC TUYẾN MBAY

Sinh viên thực hiện: Nguyễn Văn HạLớp CNTT2-K55

Giáo viên hướng dẫn: ThS Vũ Đức Vượng

HÀ NỘI 5-2015

Page 2: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

1. Thông tin về sinh viênHọ và tên sinh viên: Nguyễn Văn hạĐiện thoại liên lạc: 0966706637 Email: [email protected]ớp: Công nghệ thông tin 2 Hệ đào tạo: Đại học chính quyĐồ án tốt nghiệp được thực hiện tại: Đại học Bách Khoa Hà Nội.Thời gian làm ĐATN: Từ ngày 01/02/2015 đến 25/05 /2015.

2. Mục đích nội dung của ĐATNMục đích nhóm: Xây dựng hệ thống chợ điện tử trực tuyến Mbay trên nền Mobile và Web nhằm hỗ trợ một cách trực tiếp và hiệu quả cho các khách hàng, chủ cửa hàng và nhân viên giao hàng trong công việc của họ.Mục đích cá nhân: Xây dựng thuật toán gợi ý phân công giao việc tự động cho hệ thống Mbay.3. Các nhiệm vụ cụ thể của ĐATN

• Phân tích các chức năng của hệ thống, phân việc cho thành viên trong nhóm• Thuật toán phân công giao hàng trực tuyến• Tìm hiểu thuật toán đàn kiến, bài toán người du lịch, thuật toán tối ưu đàn kiến

ACO• Tạo ứng dụng tự động phân công giao hàng trực tuyến

4. Lời cam đoan của sinh viên:Tôi – Nguyễn Văn Hạ - cam kết ĐATN là công trình nghiên cứu của bản thân tôi

dưới sự hướng dẫn của ThS Vũ Đức VượngCác kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ công trình nào khác.

Hà Nội, Ngày 08 tháng 03 năm 2015 Tác giả ĐATN

Nguyễn Văn Hạ

5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo vệ:

Hà Nội, Ngày 20 tháng 05 năm 2015

Giáo viên hướng dẫn

Vũ Đức Vượng

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 3: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 4: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

TÓM TẮT ĐỒ ÁN

Đồ án tốt nghiệp có tên “XÂY DỰNG THUẬT TOÁN PHÂN CÔNG GIAO HÀNG CHO HỆ THỐNG CHỢ ĐIỆN TỬ TRỰC TUYẾN MBAY”. Đây là một ứng dụng phục vụ hoạt động thương mại điện tử chạy trên Web và mobile, cho phép người tiêu dùng dễ tìm kiếm các sản phẩm giá rẻ gần nơi họ sinh sống, so sánh được giá cả trên thị trường, tìm hiểu thông tin sản phẩm, đặt mua. Giúp doanh nghiệp, cửa hàng giới thiệu các sản phẩm tới người tiêu dùng, và phân công giao hàng, thống kê về tài chính. Giúp người giao hàng tìm được lộ trình đường đi một cách tội ưu nhất nhằm giảm chi phí, tối ưu hóa lợi nhuận. Ứng dụng là một phần trong cơ sở hạ tầng cần xây dựng để đáp ứng được hoạt động thương mại điện tử đang ngày một khởi sắc tại Việt Nam.

Đồ án đã đi sâu vào khảo sát sự phát triển của thương mại điện tử, sự phát triển của smartphone, các mối quan hệ giữa chúng cũng như hiện trạng các giải pháp để thoả mãn các nhu cầu về thương mại điện tử. Từ những điểm mạnh và điểm hạn chế được rút ra, ứng dụng được triển khai phù hợp với hiện trạng thương mại điện tử nước nhà.

Bên cạnh việc nghiên cứu các vấn đề và giải pháp, trong khuôn khổ đồ án cũng nói chi tiết viêc thiết kế và cài đặt một ứng dụng hỗ trợ việc bán hàng trực tuyến Mbay định hướng theo giải pháp được nêu ra. Một số ý tưởng và yêu cầu cơ bản đã được triển khai thành công trong ứng dụng.

Cuối cùng đồ án đi vào đánh giá lại ứng dụng đã triển khai, để thấy được điểm tốt và điểm chưa tốt cũng như vạch ra các nhiệm vụ và phương hướng phát triển trong tương lai để triển khai hoàn thiện hệ thống trên môi trường thực tế.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 5: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

ABSTRACTThesis titled "DEVELOPE A DELIVERY ALGORITHM FOR DELIVERY

SYSTEMS ELECTRONICS FAIR ONLINE MBAY" This is an application fỏr service e-commerce activities on the Web and mobile run, lets consumers easily search for cheap products near where they live, comparable market prices, inquire product, bid. Helping businesses, showrooms and products to consumers, and assign delivery, financial statistics. Helping people find the route of delivery an optimal way in order to reduce costs and optimize profitability. The application is part of the infrastructure should be developed to meet the e-commerce activities are increasingly flourishing in Vietnam.

Development of the survey went deep into the development of e-commerce, the development of smartphones, the relationship between them and the current state of solutions to meet the needs of e-commerce. From the strengths and weaknesses are drawn, the application is implemented consistent with the current state of the country's e-commerce.

Besides studying the problem and the solution, in the framework detailed blueprint also said the design and install an application that supports online sales solution oriented Mbay yet. Some ideas and basic requirements were successfully implemented in the application.

Finally blueprints go on revaluation of deployed applications, to see the good points and the location was not good, as well as outlining the mission and direction of development in the future to improve the system deployed on environment International.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 6: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

LỜI CẢM ƠN

Để có thể hoàn thành đồ án tốt nghiệp đề tài “XÂY DỰNG HỆ THỐNG CHỢ ĐIỆN TỬ TRỰC TUYẾN MBAY – XÂY DỰNG ỨNG DỤNG CHO KHÁCH HÀNG TRÊN MOBILE Phần phân công giao hàng”, ngoài sự nỗ lực của bản thân còn có sự giúp đỡ của rất nhiều thầy cô, bạn bè và gia đình.

Em xin gửi lời cảm ơn chân thành đến Th.s Vũ Đức Vượng, giảng viên Bộ môn Kỹ Thuật phần mềm, Viện công nghệ thông tin người đã tận tình hướng dẫn, chỉ bảo em trong suốt quá trình làm đồ án.

Em cũng xin chân thành cảm ơn các thầy cô giáo trong trường Đại học Bách Khoa các thầy cô trong Bộ môn Viện CNTT & Truyền thông nói riêng đã dạy dỗ cho em kiến thức về các môn đại cương cũng như các môn chuyên ngành, giúp em có được cơ sở lý thuyết vững vàng và tạo điều kiện giúp đỡ em trong suốt quá trình học tập.

Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện, quan tâm, giúp đỡ, động viên em trong suốt quá trình học tập và hoàn thành đồ án tốt nghiệp.

Hà Nội, tháng 5 năm 2015Sinh viên

Nguyễn Văn Hạ

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 7: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

MỤC LỤC

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP..............................................2

TÓM TẮT ĐỒ ÁN....................................................................................................3

MỤC LỤC..................................................................................................................6

DANH MỤC HÌNH ẢNH.........................................................................................8

DANH MỤC BẢNG..................................................................................................9

DANH MỤC CÁC TỪ VIẾT TẮT........................................................................10

MỞ ĐẦU..................................................................................................................11

PHẦN 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP.................................12

Chương 1: Tổng quan về đề tài.............................................................................12

1.1 Đặt vấn đề......................................................................................................12

1.2 Mục đích của đồ án.......................................................................................13

1.3 Phương pháp tiếp cận và hướng giải quyết:................................................14

1.4 Công cụ hỗ trợ...............................................................................................16

1.4.1 MySQL....................................................................................................161.4.2 Apache PHP.............................................................................................161.4.3 Windows Server 2008..............................................................................17

Chương 2: Thuật toán tối ưu hoá đàn kiến ACO................................................19

2.1 Đàn kiến tự nhiên..........................................................................................19

2.2 Đàn kiến nhân tạo.........................................................................................20

2.2.1 Phương pháp tìm đường đi mô phỏng hành vi con kiến..........................202.2.2 Quy tắc cập nhật mùi và bay hơi..............................................................21

Chương 3: Phương pháp ACO giải bài toán người giao hàng............................23

3.1 Bài toán người giao hàng và đồ thị có cấu trúc...........................................23

3.2 Các thuật toán ACO cho bài toán TSP.........................................................24

3.3 Số lượng kiến.................................................................................................25

3.4 Nhận xét chung về các thuật toán ACO.......................................................26

Chương 4: Thuật toán phân công giao hàng........................................................27

4.1 Thuật toán phân công giao hàng cho 1 cửa hàng.......................................27

4.2 Phương pháp sắp xếp đơn hàng gần nhau..................................................27

4.3 Phương pháp topsis để sắp xếp thứ tự ưu tiên các nhân viên.....................28

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 8: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Chương 5: Ứng dụng giao hàng tự động và sắp xếp lộ trình giao hàng............31

5.1 Phân công công việc......................................................................................31

5.2 Thiết kế tổng quan.........................................................................................31

5.2.1 Khung nhìn usecase.................................................................................315.2.2 Khung nhìn Logic....................................................................................345.2.3 Khung nhìn vật lý.....................................................................................34

5.3 Thiết kế chi tiết...............................................................................................34

5.4 Thiết kế cơ sở dữ liệu.....................................................................................42

Chương 6: Đánh giá kết quả, ưu nhược điểm, khả năng ứng dụng...................48

6.1 Kết quả đạt được............................................................................................48

6.2 Đánh giá kết quả............................................................................................50

KẾT LUẬN..............................................................................................................52

Tổng kết...................................................................................................................52

Hướng phát triển của đồ án...................................................................................52

TÀI LIỆU THAM KHẢO......................................................................................53

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 9: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

DANH MỤC HÌNH ẢNH

Hình 2 - 1: Hành vi của đàn kiến khi gặp vật cản trong thực tế...............................19Hình 4 - 1: Sử dụng kĩ thuật chia để trị trong phân công giao hàng.........................28Hình 5 - 1: Tác nhân của hệ thống............................................................................31Hình 5 - 2: Biểu đồ usecase Phân công giao hàng tự động.......................................33Hình 5 - 3: Mô hình tương tác chung của hệ thống..................................................34Hình 5 - 4: Khung nhìn vật lý khi triển khai hệ thống..............................................34Hình 5 - 5: Biểu đồ hoạt động Phân công thật các đơn hàng cho các nhân viên......37Hình 5 - 6: Biểu đồ hoạt động chức năng phân đơn hàng cho nhân viên.................38Hình 5 – 7: Biểu đồ trình tự Phân công giao hàng tạm thời.....................................39Hình 5 – 8 Biểu đồ trình tự Phân công giao hàng thật cho nhân viên......................39Hình 5 - 8: Package Diagram....................................................................................40Hình 5 – 9: Biểu đồ lớp chi tiết chức năng phân công giao hàng tự động................41Hình 5 - 10: Các bảng trong cơ sở dữ liệu................................................................42Hình 5 – 11: Khởi chạy mBay.jar từ Windows........................................................49Hình 5 – 12: Chu trình giao hàng tối ưu cho nhân viên............................................50

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 10: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

DANH MỤC BẢNG

Bảng 3 – 1: Một số thuật toán ACO theo thứ tự thời gian phát triển........................25Bảng 5 – 1: Phân công nhiệm vụ từng thành viên trong nhóm.................................31Bảng 5 – 2: Usecase phân công giao hàng................................................................35Bảng 5 – 3: U001. Phân công tạm thời các đơn hàng cho các nhân viên.................36Bảng 5 – 4: U002. Phân công thật các đơn hàng cho các nhân viên........................36

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 11: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

DANH MỤC CÁC TỪ VIẾT TẮT

Thuật ngữ Tên đầy đủ Liên kết ngoài

ACO Ant Colony Optimization

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.70.1052&rep=rep1&type=pdf

AS Ant Systemhttp://en.wikipedia.org/wiki/Ant_colony_optimization_algorithms

ACS Ant Colony Systemhttp://en.wikipedia.org/wiki/Ant_colony_optimization_algorithms

TSPTravelling Salesman Problem

http://en.wikipedia.org/wiki/Travelling_salesman_problem

S-ACOSimple Ant Colony Optimization

http://en.wikipedia.org/wiki/Ant_colony_optimization_algorithms

TUTH Tối ưu tổ hợp

TOPSISThe Technique for Order of Preference by Similarity to Ideal Solution

http://en.wikipedia.org/wiki/TOPSIS

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 12: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

MỞ ĐẦU

Trong vòng 3 tháng thực hiên, đồ án có nhiệm vụ xây dựng thuật toán phân công giao việc cho hệ thống Mbay. Sau đó đi vào xây dựng một sản phẩm theo định hướng giải pháp được đưa ra.

Đồ án gồm 2 phần lớn được chia cụ thể như sau:

Phần 1 – Đặt vấn đề và định hướng giải pháp: Phần này đi vào phân tích các vấn đề, hiện trạng giải quyết cũng như các điểm hạn chế của các giải pháp này, từ đó đề xuất giải pháp mới. Phần 1 bao gồm các chương lớn:

Chương 1: Tổng quan về đề tàiChương 2: Thuật toán tối ưu hóa đàn kiến ACOChương 3: Phương pháp ACO giải bài toán người giao hàng

Phần 2 – Các kết quả đạt được: Phần này trình bày cụ thể kết quả của đồ án bao gồm phân tích thiết kế chi tiết cũng như cài đặt và triển khai một thuật toán phân công giao việc cho hệ thống Mbay đồng thời thử nghiệm và đánh giá thuật toán. Phần này bao gồm các chương lớn.

Chương 4: Thuật toán phân công giao hàng

Chương 5: Ứng dụng phân công giao hàng tự động và sắp xếp lộ trình giao hàng

Chương 6: Đánh giá kết quả, ưu nhược điểm, khả năng ứng dụng

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 13: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

PHẦN 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP

Chương 1: Tổng quan về đề tài

1.1 Đặt vấn đề

Internet phát triển mạnh mẽ sẽ là động lực để thúc đẩy sự tăng trưởng buôn bán trên phạm vi toàn cầu. Thương mại điện tử đã đem lại cho các doanh nghiệp một nguồn lợi nhuận khổng lồ. Những ứng dụng về thương mại điện tử cũng ra đời trên 2 nền tảng Web và mobile như Amazon (Mỹ), Alibaba (Trung Quốc) rất thành công và thu được rất nhiều lợi nhuận. Ở Việt Nam có 1 số ứng dụng như Foody, Vật giá, Lazada giới thiệu về các mặt hàng điện từ, đồ ăn, quần áo... Mang lại sự tiện lợi cho người dùng.

Sự phát triển của các điện thoại thông minh, các nhà sản xuất đã tập trung vào phân khúc giá rẻ, chỉ với tầm 2 triệu đồng thì đã có thể sở hữu một chiếc điện thoại Android, Windows phone giá rẻ, màn hình lớn, đủ để trải nghiệm và cài đặt các ứng dụng cần thiết. Một trong những ứng dụng không thể thiếu trên điện thoại là bản đồ, mạng xã hội, ứng dụng nhắn tin miễn phí, ứng dụng tìm kiếm địa điểm, mua sắm...

Sự phát triển mạnh mẽ của ngành thương mại điện tử và thiết bị điện tử đã mở ra nhiều cách quảng bá sản phẩm. Một cửa hàng có thể có nhiều phương pháp quảng bá sản phẩm của mình như đăng báo, phát tờ rơi, tạo một trang web giới thiệu sản phẩm. Nhưng trong tiềm lực kinh tế hạn chế các cửa hàng nhỏ khó có thể duy trì một trang bán hàng trực tuyến, tốn tiền trong việc xây dựng và vận hành một Website và chi phí quảng cáo sản phẩm tới người tiêu dùng. Để giảm chi phí trên và quảng bá tốt các sản phẩm tới người tiêu dùng, Họ cần một ứng dụng dễ tương tác, có các chức năng cần thiết: giới thiệu sản phẩm, nhận các đơn hàng, phân công giao hàng, chỉ đường đi ... Ứng dụng đó cần dễ sử dụng giúp tăng doanh số bán hàng, tăng lợi nhuận và phải bỏ một chi phí rất nhỏ.

Nhu cầu mua sắm con người càng ngày càng tăng, Họ không có thời gian nhiều để đến tận nơi mua hàng, Họ muốn được đặt hàng và sau 1 khoảng thời gian thì sản phẩm đã có trong tay họ. Cùng 1 sản phẩm cùng nhà sản xuất, người tiêu dùng muốn biết được sản phẩm nào giá rẻ nhất, sản phẩm nào đang được khuyến mãi để mua sắm.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 14: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Từ những nhu cầu của các cửa hàng và người tiêu dùng. Cần xây dựng được một hệ thống đáp ứng được các yêu cầu trên. Để thu hút được đối tượng người sử dụng trên hệ thống cần phải có các chức năng mang lại lợi ích thiết thực cho họ.

Từ những lý do trên, cùng với việc tham khảo chức năng của các ứng dụng về mua sắm trước nhóm đề xuất xây dựng “hệ thống bán hàng trực tuyến Mbay” nhằm mục đích tạo ra một sản phẩm giúp đem lại lợi ích cho cả người sử dụng, các chủ cửa hàng và nhân viên để từ đó thu hút được ngày càng nhiều người sử dụng hệ thống.

Với mục tiêu thu hút hai đối tượng người sử dụng trên hệ thống sẽ cần có các chức năng sau để thỏa mãn các nhu cầu của người sử dụng:

Đối với khách hàng:

- Chức năng hiển thị các thông tin của cửa hàng bao gồm các thông tin về địa chỉ, liên hệ, thực đơn, sản phẩm, giá… của cửa hàng nhằm giúp khách hàng lựa chọn cửa hàng phù hợp với mình nhất.

Đối với chủ cửa hàng hệ thống sẽ xây dựng hẳn một chương trình quản lý cho chủ cửa hàng để củ cửa hàng có thể quản lý cửa hàng của mình được dễ dàng hơn:

- Chức năng quản lý thông tin cửa hàng nhằm giúp chủ cửa hàng quản lý thông tin cửa hàng của mình.

- Chức năng quản lý bài viết giúp chủ cửa hàng tạo các bài viết đưa lên cửa hàng của mình nhằm các mục đích, thông báo hay quảng cáo.

- Chức năng quản lý sản phẩm bao gồm quản lý thông tin, giá cả sản phẩm… giúp chủ cửa hàng quản lý được các sản phẩm của cửa hàng và quảng cáo các sản phẩm đến người dùng.

- Các chức năng quản lý đơn hàng bao gồm: quản lý nhân viên giao hàng, quản lý đơn hàng, phân công giao hàng nhằm trợ giúp chủ cửa hàng dễ dàng hơn trong việc quản lý đơn và phân công giao hàng.

- Chức năng thống kê

Đối với nhân viên giao hàng hệ thống sẽ trợ giúp việc quản lý các đơn hàng cần giao, xây dựng lộ trình giao hàng, giúp cho người giao hàng có thể giao hàng một cách thuận lợi, xem doanh thu hàng tháng

Với mục tiêu tiếp cận dễ dàng đến người sử dụng nhóm hướng đến xây dựng hệ thống trên nền tảng web, mobile, là hai nền tảng được sử dụng thông dụng nhất ở thời điểm hiện tại. Toàn bộ phần này xin đọc ở phần tiếp theo.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 15: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

1.2 Mục đích của đồ ánPhần việc cực kì quan trọng của hệ thống liên quan đến toàn bộ hoạt động,

ảnh hưởng tới phân bổ nhân lực, phân bổ tài nguyên, chính sách giá, đặc tính chất lượng của hệ thống giao hàng đó chính là hoạt động phân công giao hàng cho từng nhân viên giao hàng.

Phân công giao hàng hợp lý mang lại nhiêu lợi ích:

- Thời gian: giảm thiểu thời gian giao hàng, đồng nghĩa với việc giao hàng cho khách hàng đúng thời điểm cam kết, đảm bảo uy tín của hệ thống.

- Tài nguyên: tiết kiệm chi phí nhiên liệu khi với cung đường ngắn, ít tắc và hợp lý.

- Nhân lực: Giảm chi phí thuê nhân công với kế hoạch phân công tốt.- Chính sách giá: mang lại lợi thế về giá so với các đối thủ cạnh tranh tương

đương với hệ thống Mbay.

Như vậy phân công giao hàng là một bài toán lớn, chịu sự chi phối của nhiều yếu tố như số lượng đơn hàng, kích thước, số lượng hàng hoá tương ứng, vị trí giao hàng so với các kho chứa hàng. Phân công giao hàng còn là cơ sở cho các hoạt động hậu kinh doanh khác như tính lương cho nhân viên, tính chi phí vận chuyển.

Với tiềm năng của thị trường thương mại điện tử Việt Nam, bất kì hệ thống nào cũng cần phải đối phó với số lượng đơn hàng cực lớn tại một thời điểm. Hoặc là hàng vạn đơn hàng cho một ngày giao dịch. Như vậy việc phân công giao hàng bằng tay (thủ công) sẽ không đáp ứng được nhu cầu cho một hệ thống lớn như vậy.

Tình hình thực tế yêu cầu cần phải có một phần hệ thống đảm nhiệm chức năng phân công giao hàng. Trong đó lõi cơ bản nhất chính là một thuật toán phân công giao hàng. Thuật toán này cần đáp ứng nhiều yêu cầu, trong đó đáp ứng được số lượng lớn đơn hàng, xử lý với nhiều tham số.

Một yêu cầu khác chính là phân công số lượng lớn nhưng vẫn đảm bảo sự chính xác và tin cậy. Tính chính xác được hiểu là không nhầm lẫn giữa các đơn hàng. Tính tin cậy có nghĩa là các đơn hàng được phân công cho nhân viên sao cho tổng quãng đường (tương ứng là thời gian) để giao đơn hàng đó là nhỏ nhất.

Việc nghiên cứu chi tiết thuật toán phân công giao hàng được nói rõ hơn trong các phần tiếp theo của báo cáo này.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 16: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

1.3 Phương pháp tiếp cận và hướng giải quyết:Từ thực tế trên và thông qua tìm hiểu mô hình chợ thương mại trong thực tế,

nhóm chúng tôi quyết định đề xuất xây dựng một hệ thống chợ trực tuyến Mbay, nhằm mục đích xây dựng một hệ thống chợ trực tuyến lớn theo mô hình chợ thương mại trong thực tế, cho phép nhiều gian hàng với nhiều chủ cửa hàng hoạt động, sản phẩm đa dạng, phục vụ mọi yêu cầu mua sắm của khách hàng với mức độ hài lòng cao nhất.

Hệ thống sẽ được xây dựng với các thành phần sau:

Ứng dụng trên nền Web:o Khách hàng:

Ghé thăm các gian hàng Xem thông tin các gian hàng: Mặt hàng, thông tin sản phẩm Xem bản đồ tới các cửa hàng Đặt mua sản phẩm

o Chủ cửa hàng:

Đăng ký mở gian hàng, hoặc quản lý các gian hàng vô chủ Thiết lập các thông tin gian hàng Quản lý danh sách nhân viên giao hàng

o Quản lý gian hàng:

Phân công giao hàng cho nhân viên giao hàng Giao hàng cho nhân viên giao hàng Ghi nhận kết quả giao hàng Đánh giá nhân viên Theo dõi doanh thu của cửa hàng Cập nhật thông tin cho hàng hóa: Giá cả, khuyến mại, …

o Quản trị mbay

Quản lý giao diện, tùy biến Cho phép đăng ký mở gian hàng, chuyển gian hàng sang trạng thái

hoạt động Quản lý các gian hàng Đăng quảng cáo Thống kê doanh số từ các cửa hàng Quản lý người dùng

Ứng dụng trên nền Mobile:o Ứng dụng cho khách hàng:

Tìm kiếm các cửa hàng, sản phẩm Xem thông tin các cửa hàng, sản phẩm

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 17: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Đặt hàng Xác thực người dùng

o Ứng dụng cho người giao hàng:

Nhận đơn hàng để giao Tìm đường đi tới khách hàng Bàn giao sản phẩm, xác nhận từ khách hàng, nhận tiền Nộp tiền thanh toán

Mục tiêu của hệ thống là xây dựng một “chợ điện tử trực tuyến”, hướng tới người dùng phổ thông, vì vậy cả nhóm hướng tới xây dựng 2 ứng dụng trên nền Web và mobile, là 2 nền tảng rất phổ biền hiện nay.

Với nền tảng Web, hệ thống chú trọng xây dựng các chức năng quản lý cho quản trị mbay và chủ cửa hàng, sử dụng framework PHP Symphony để xây dựng.

Với nền tảng Mobile, ứng dụng cho khách hàng sẽ chú trọng xây dựng các chức năng Tìm kiếm, Đặt hàng, tương tác với sản phẩm; ứng dụng cho nhân viên giao hàng tập trung vào việc lấy đơn hàng và tìm kiếm lộ trình trên bản đồ. Ứng dụng sẽ chạy trên hệ điều hàng Android, là hệ điều hành phổ biến nhất và có số lượng người sử dụng lớn nhất trên di động hiện nay.

Trên đây là phần đề xuất phương pháp tiếp cận và hướng giải quyết, tiếp theo sẽ là phần giới thiệu về các công nghệ sử dụng. Do khuôn khổ của đồ án, phần công nghệ sử dụng tôi sẽ trình bày các công nghệ đã được sử dụng để xây dựng nhiệm vụ của mình.

Thành viên Nhiệm vụ

Bảo Xây dựng trang Web

Phương Ứng dụng android cho khách hàng

Khang Ứng dụng android cho người giao hàng

Hạ Thuật toán phân công giao hàng

1.4 Công cụ hỗ trợ

1.4.1 MySQLMySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và

được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.

Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet. MySQL hoàn toàn miễn phí Nó có nhiều phiên bản

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 18: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,...

MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).

MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,...

1.4.2 Apache PHPApache là phần mềm máy chủ Web được dùng nhiều nhất hiện nay. Cùng

với PHP giúp cho Apache chạy được file .php. Một phần mở rộng quan trọng khác đó là cơ sở dữ liệu. Khi bạn phát triển một ứng dụng web bạn sẽ nhanh chóng thấy rằng PHP và một Database là gần như không thể tách rời.

1.4.3 Windows Server 2008

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 19: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Microsoft Windows Server 2008 là thế hệ kế tiếp của hệ điều hành Windows Server, có thể giúp các chuyên gia công nghệ thông tin có thể kiểm soát tối đa cơ sở hạ tầng của họ và cung cấp khả năng quản lý và hiệu lực chưa từng có, là sản phẩm hơn hẳn trong việc đảm bảo độ an toàn, khả năng tin cậy và môi trường máy chủ vững chắc hơn các phiên bản trước đây.

Windows Server 2008 cung cấp những giá trị mới cho các tổ chức bằng việc bảo đảm tất cả người dùng đều có thể có được những thành phần bổ sung từ các dịch vụ từ mạng. Windows Server 2008 cũng cung cấp nhiều tính năng vượt trội bên trong hệ điều hành và khả năng chuẩn đoán, cho phép các quản trị viên tăng được thời gian hỗ trợ cho công việc của doanh nghiệp.

Windows Server 2008 xây dựng trên sự thành công và sức mạnh của hệ điều hành đã có trước đó là Windows Server 2003 và những cách tân có trong bản Service Pack 1 và Windows Server 2003 R2. Mặc dù vậy Windows Server 2008 hoàn toàn hơn hẳn các hệ điều hành tiền nhiệm.

Windows Server 2008 được thiết kế để cung cấp cho các tổ chức có được nền tảng sản xuất tốt nhất cho ứng dụng, mạng và các dịch vụ web từ nhóm làm việc đến những trung tâm dữ liệu với tính năng động, tính năng mới có giá trị và những cải thiện mạnh mẽ cho hệ điều hành cơ bản.

Thêm vào tính năng mới, Windows Server 2008 cung cấp nhiều cải thiệm tốt hơn cho hệ điều hành cơ bản so với Windows Server 2003.

Những cải thiện có thể thấy được gồm có các vấn đề về mạng, các tính năng bảo mật nâng cao, truy cập ứng dụng từ xa, quản lý role máy chủ tập trung, các công cụ kiểm tra độ tin cậy và hiệu suất, nhóm chuyển đổi dự phòng, sự triển khai và hệ thống file. Những cải thiện này và rất nhiều cải thiện khác sẽ giúp các tổ chức tối đa được tính linh hoạt, khả năng sẵn có và kiểm soát được các máy chủ của họ

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 20: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Chương 2: Thuật toán tối ưu hoá đàn kiến ACO

2.1 Đàn kiến tự nhiên

Kiến là một loài có tổ chức cao, mỗi con kiến khi di chuyển sẽ để lại một vết hoăc chất được gọi pheromone. Đặc điểm sinh hóa học của vết mùi là có khả năng ứ đọng, bay hơi và là phương tiện để đánh dấu và để đàn kiến trao đổi thông tin khi tìm kiếm thức ăn. Khi đi tìm kiếm thức ăn, sau khi tìm thấy nguồn thức ăn, thì mỗi con kiến sẽ tìm ra đường đi của nó để đi từ tổ tới nguồn thức ăn. Chúng sẽ giao tiếp trao đổi thông tin với nhau, sau một thời gian cả đàn kiến gần như tìm ra và đi theo con đường ngắn nhất từ tổ kiến tới nguồn thức ăn.

Cách tìm đường đi của kiến thực được minh họa ở hình 2.2 với ví dụ sau: Các con kiến đang đi trên một con đường thẳng từ tổ kiến A đến nguồn thức ăn E. Một lúc sau, đột nhiên có một chướng ngại vật cản trên đường đi, lúc này đường đi từ A đến E bị chia làm 2 hướng. Vậy các con kiến sẽ đi theo hướng nào? Kết quả là đàn kiến sẽ chọn nhánh ngắn nhất.

Hình 2 - 1: Hành vi của đàn kiến khi gặp vật cản trong thực tế

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 21: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

2.2 Đàn kiến nhân tạoĐể mô mô phỏng kiến tự nhiên, người ta dùng tác tử (multiagent) làm đàn

kiến nhân tạo, trong đó mỗi con kiến có nhiều khả năng hơn kiến tự nhiên. Mỗi con kiến nhân tạo sẽ có bộ nhớ riêng, có khả năng ghi nhớ các đỉnh đã thăm trong hành trình và tính được độ dài đường đi nó chọn, Ngoài ra các con kiến có thể trao đổi thông tin được với nhau, thực hiện tính toán cần thiết, cập nhật mùi,...

Nhờ các con kiến nhân tạo này Dorigo (1991) đã xây dựng hệ kiến (AS) giải bài toán người chào hàng, hiệu quả của nó so với các phương pháp mô phỏng tự nhiên như SA, GA đã được kiểm chứng bằng thực nghiệm và được phát triển, ứng dụng phong phú với tên gọi chung là phương pháp ACO

2.2.1 Phương pháp tìm đường đi mô phỏng hành vi con kiến

Các con kiến sẽ tiến hành tìm đường đi từ đỉnh xuất phát qua một loạt các đỉnh và quay trở về đỉnh ban đầu, tại đỉnh i một con kiến sẽ chọn đỉnh j chưa được đi qua trong tập láng giềng của i theo xác suất sau :

trong đó

-Sp :là hành trình thứ p

- N : là tập các đỉnh láng giềng của i chưa được con kiến hiện tại đi qua.

- cij : hành trình từ đỉnh i tới đỉnh j

- p : tỉ lệ

- : lượng pheromone trên cij

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 22: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

- : hệ số heuristic, thường được gán , trong đó dij là chi phí giữa i và j , Q là một hằng số nào đó, giúp đánh giá chính xác hơn sự lựa chọn của con kiến khi quyết định đi từ đỉnh u qua đỉnh v

- α, β : là hai tham số đưa vào, 𝞪 đặc trưng cho mức độ ảnh hưởng của vết mùi và 𝞫 đặc trưng cho mức độ ảnh hưởng của thông tin heuristics của bài toán

Ta có thể hiểu công thức trên đơn giản như sau: quyết định lựa chọn đỉnh tiếp theo để đi của con kiến được lựa chọn ngẫu nhiên theo xác suất (tức là đỉnh nào có xác suất cao hơn sẽ có khả năng được chọn cao hơn, nhưng không có nghĩa là các đỉnh có xác suất thấp hơn không được chọn mà nó được chọn với cơ hội thấp hơn mà thôi). Và xác suất này (hay khả năng chọn đỉnh tiếp theo của con kiến) tỷ lệ thuận với nồng độ vết mùi trên cạnh được chọn (theo đặc tính của con kiến tự nhiên) và tỷ lệ nghịch với độ dài cạnh, là những hệ số điểu khiển việc lựa chọn của con kiến nghiêng về phía nào.

2.2.2 Quy tắc cập nhật mùi và bay hơiSau khi và trong quá trình các con kiến tìm đường đi các vết mùi ( ) được cập

nhật lại, vì chúng bị biến đổi do quá trình bay hơi và do quá trình tích lũy của các con kiến trên cạnh đó. Có rất nhiều cách cập nhật mùi, mỗi cách có ảnh hưởn nhất định đến chất lượng của thuật toán. Đây là 1 phương pháp cập nhật mùi đơn giản.

Sau mỗi vòng lặp (các con kiến đều tìm được hành trình riêng của mình), vết mùi trên mỗi cạnh được cập nhật lại theo công thức sau :

trong đó (0,1) gọi là tham số bay hơi (sở dĩ gọi như vậy vì sau mỗi lần cập nhật lượng mùi trên cạnh (i,j) sẽ mất đi một lượng . Ngoài lượng bay hơi mất đi đó mỗi cạnh (i, j) còn được tích tụ thêm một lượng mùi nhất định tùy thuộc vào từng con kiến đi qua, cụ thể được tính như sau :

trong đó :Q là một hằng số,Lk là độ dài hành trình của con kiến thứ k.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 23: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Nhờ việc cập nhật mùi này, sau mỗi vòng lặp (hay sau mỗi lần các con kiến đi hết hành trình), nồng độ vết mùi trên các cạnh sẽ thay đổi (hoặc giảm hoặc tăng dần) ảnh hưởng đến quyết định chọn của các con kiến, có thể ở bước lặp này chọn một cạnh để đi nhưng đến bước lặp khác vẫn con kiến đó lại không đi qua cạnh đó nữa. Nhờ vậy thuật toán có khả năng tìm được lời giải tốt trong những trường hợp dữ liệu cực lớn.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 24: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Chương 3: Phương pháp ACO giải bài toán người giao hàng

3.1 Bài toán người giao hàng và đồ thị có cấu trúc

Bài toán người giao hàng là một bài toán thuộc loại bài toán du lịch (Travelling Salesman problem (TSP)). Đây là một bài toán khá nổi tiếng trong lĩnh vực tối ưu tổ hợp được nghiên cứu trong lý thuyết khoa học máy tính. Nội dung của nó khá đơn giản, nó được phát biểu như sau: Cho một danh sách các thành phố và khoảng cách giữa chúng, nhiệm vụ là phải tìm đường đi ngắn nhất có thể mà chỉ thăm mỗi thành phố đúng 1 lần.

Bài toán được lần đầu tiên đưa ra như một vấn đề toán học vào năm 1930 và là một trong số những bài toán được nghiên cứu chuyên sâu trong lĩnh vực tổ hợp thời đó. Nó được sử dụng như một sự đánh giá cho nhiều phương thức tối ưu khác nhau. Thậm chí bài toán là thuộc lớp NP khó, một lượng rất lớn các heuristic và phương thức tìm kiếm cụ thể đã được biết đến vì vậy một vài trường hợp của bài toán với khoảng chục nghìn thành phố đã được giải quyết.

TSP có một vài ứng dụng thậm chí trong dạng thức nguyên thuỷ của nó như lập kế hoạch, logistic, và sản xuất các microchip. Thay đổi đi chút ít nó xuất hiện như một bài toán con trong rất nhiều lĩnh vực như việc phân tích gen trong sinh học. Trong những ứng dụng này, khái niệm thành phố có thể thay đổi thành khách hàng, các điểm hàn trên bảng mạch, các mảnh DNA trong gen, và khái niệm khoảng cách có thể biểu diễn bởi thời gian du lịch hay giá thành, hay giống như sự so sánh giữa các mảnh DNA với nhau. Trong nhiều ứng dụng, các hạn chế truyền thống như giới hạn tài nguyên hay giới hạn thời gian thậm chí còn làm cho bài toán trở nên khó hơn.

TSP có thể được mô hình như một đồ thị, các đỉnh của đồ thị tương ứng với các thành phố và các cạnh thì tương ứng với đường nối giữa các thành phố, chiều dài của một cạnh tương ứng với khoang cách giữa 2 thành phố. Một đường đi trong bài toán TSP là một chu trình Hamilton trên đồ thị và một lời giải tối ưu của bài toán là chu trình Hamilton ngắn nhất.

Thường thì đồ thị là đồ thị đầy đủ, vì vậy mọi cặp cạnh đều được nối bởi các cạnh. Đây là bước đơn giản hóa bài toán vì việc tìm chu trình Hamilton trong một đồ thị đầy đủ là dễ. Các bài toán mà không phải 2 thành phố nào cũng được nối với nhau có thể được chuyển đổi thành đồ thị đầy đủ bằng cách thêm những cạnh có độ dài lớn giữa cách thành phố này, những cạnh sẽ không xuất hiện trong chu trình tối ưu.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 25: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Đồ thị có hướng G=(V , E) với tập đỉnh V = {1, 2, …, n} và tập các cung E. Đồ thị có ma trận chi phí không âm không thỏa mãn tính chất bất đẳng thức tam giác C = {cij | i, j=1, 2, …, n}, với cij là khoảng cách giữa hai đỉnh i và j. Ta có, cij ≥ 0 nếu có cung đi từ đỉnh i đến đỉnh j và cij = + ∞ nếu không có cung đi từ đỉnh i đến đỉnh j.

Mục tiêu của bài toán TSP là tìm một chu trình Hamilton có độ dài ngắn nhất, do đó lời giải tối ưu của bài toán TSP là một hoán vị của tập n đỉnh

sao cho hàm độ dài nhỏ nhất, trong đó

Trong tất cả các thuật toán ACO giải bài toán TSP, vết mùi được gán trên các

cạnh và do đó dùng để chỉ thông tin học tăng cường phục vụ mở rộng tuần tự lời

giải từ đến . Thông tin heuristic trên cạnh sẽ kí hiệu là và là nghịch đảo

độ dài cạnh .

Khi đó, đồ thị cấu trúc của bài toán là đồ thị đầy đủ . Nếu

là đường đi mở rộng được, tức là các đỉnh là khác nhau và

thì là các đỉnh mà đường chưa đi đến. Các thuật toán ACO cho bài toán TSP đều được thực hiện trên đồ thị cấu trúc này.

3.2 Các thuật toán ACO cho bài toán TSPThuật toán ACO có thể áp dụng trực tiếp cho bài toán TSP với đồ thị cấu

trúc có không gian tìm kiếm chính là tập hợp các hành trình cụ thể. Ràng buộc sẽ được thoả mã khi hành trình do kiến xây dựng là một hành trình đúng (chu trình Hamilton), biểu diễn mộ hoán vị các chỉ số của các thành phố.

Quá trình kiến xây dựng lời giải theo thủ tục bước ngẫu nhiên được thực hiện như sau:

1. Lựa chọn thành phố xuất phát (có thể dựa theo một số tiêu chí nào đó)2. Thực hiện lặp bước mở rộng bằng cách thêm một thành phố kiến chưa đi qua

cho đến khi tất cả thành phố đều được thăm. Tính xác suất lựa chọn đỉnh mới theo giá trị thông tin mùi và thông tin heuristic, chọn ngẫu nhiên đỉnh mới thêm vào theo phân bố xác suất ngẫu nhiên này.

3. Quay trở lại thành phố xuất phát

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 26: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Sau khi tất cả kiến xây dựng xong hành trình, các con kiến sẽ để lại vết mùi trên các cạnh kiến đi qua. Trong một số trường hợp, trước khi thêm mùi, các hành trình xây dựng được có thể được cải tiến bằng cách áp dụng thủ tục tìm kiếm cục bộ. Lược đồ thuật toán ACO giải quyết bài toán TSP được mô tả như sau:

Procedure: Thuật_toán_SACO_TSP;Dữ liệu vào: G(V, E);Kết quả ra: Một chu trình và tổng độ dài của nó;Begin: Khởi tạo tham số, khởi tạo ma trận mùi;

Khởi tạo quần thể kiến với kích thước mfor k = 1 to m do

Kiến m xây dựng lời giải;Cập nhật lời giải tốt nhất;Cập nhật mùi

end forĐưa ra lời giải tốt nhất;

End.Thuật toán ACO đầu tiên (thuật toán AS) giải bài toán TSSP đã đạt được

hiệu quả khả quan, nhưng chưa phải là thuật toán tốt nhất cho bài toán này. Tuy nhiên AS đóng vai trò rất quan trọng trong các thuật toán mở rộng, cải tiến của thuật toán ACO về sau. Sự khác biệt chính giữa các thuật toán mở rộng của AS như: thuật toán elitist AS, rank-based AS và MAX-MIN,… là cách thức cập nhật mùi khác nhau. Bảng dưới đây cho thấy đa số các thuật toán ACO mới đều được thử nghiệm trên TSP.

Thuật toán ACO TSP Tác giả (thời gian công bố)Ant System Có Dorigo (1992), Maniezzo & Colorni (1991,

1996)Elitist AS Có Dorigo (1992), Maniezzo & Colorni (1991,

1996)Ant – Q Có Gambardella & Dorigo (1995)Ant Colony System

Có Gambardella & Dorigo (1997)

Max-Min Ant System

Có Stutzle & Hoos (1996, 2000)

Rank-based AS Có Bullnhermer, Hartl & Strauss (1997, 1999)ANTS Không Maniezzo (1999)Hyper-cube AS Không Blum, Roli & Dorigo (2001)TSIACO Có Zhaojun Zhang, Zuren Feng (2011)

Bảng 3 – 1: Một số thuật toán ACO theo thứ tự thời gian phát triển

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 27: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

3.3 Số lượng kiếnTrong giai đoạn đầu vết mùi không thể giúp kiến tìm đường đi dẫn tới các lời

tốt. Nếu sử dụng số lượng kiến quá ít thì sẽ không tìm được lời giải, hoặc tìm được nhưng chưa đủ tốt, như vậy việc cập nhật mùi sẽ được cập nhật trên những lời giải không tốt. Sử dụng thuật toán tìm kiếm cục bộ xung quanh các lời giải không tốt này khiến cho thuật toán trở nên kém hiệu quả. Có thể khắc phục điều này bằng cách tăng số lượng cá thể trong quần thể kiến lên, để tăng khả năng tìm được lời giải tốt sau khi chạy thuật toán.

3.4 Nhận xét chung về các thuật toán ACONhờ kết hợp thông tin heuristic, thông tin học tăng cường và mô phỏng hoạt

động của đàn kiến, các thuật toán ACO có ưu điểm sau:

Việc tìm kiếm ngẫu nhiên dựa trên các thông tin heuristic trở nên linh hoạt và mềm dẻo trên miền rộng hơn so với các phương pháp heuristic đã có. Do đó cho ta lời giải tốt hơn và có thể tìm được lời giải tối ưu.

Học tăng cường thông qua thông tin về cường độ vết mùi cho phép từng bước thu hẹp không gian tìm kiếm mà vẫn không bỏ qua các lời giải tốt, do đó nâng cao được độ tin cậy và chất lượng của thuật toán.

Khi áp dụng ACO cho bài toán cụ thể, ba yếu tố sau có ảnh hưởng quyết định tới hiệu quả thuật toán:

1. Xây dựng đồ thị có cấu trúc thích hợp. Việc xây dựng đồ thị cấu trúc để tìm được lời giải cho bài toán theo thủ tục tuần tự là không khó. Khó khăn chính là các bài toán cỡ lỡn thường có không gian tìm kiếm quá rộng, thời gian chạy tuần tự hết hàng trăm năm. Như vậy đòi hỏi ta phải sử dụng các ràng

buộc một cách hợp lý để giảm miền tìm kiếm của kiến.2. Chọn thông tin heuristic. Thông tin heuristic tốt sẽ tăng hiệu quả thuật toán.

Tuy nhiên trong nhiều bài toán không có thông tin này thì có thể đánh giá xác suất tìm thành phố lân cận là như nhau. Khi đó ban đầu thuật toán chỉ đơn thuần chạy theo phương thức tìm kiếm ngẫu nhiên, vết mùi thể hiện định hướng của học tăng cường và thuật toán vẫn thực hiện được.

3. Chọn quy tắc cập nhật mùi. Quy tắc cập nhật mùi thể hiện chiến lược học của thuật toán. Vì đây là thông tin lưu giữ lại duy nhất sau mỗi lượt quần thể kiến tìm kiếm lời giải. Trong khi các đồ thị có cấu trúc và thông tin heuristic phụ thuộc vào các bài cụ thể, quy tắc cập nhật mùi lại là yếu tố phổ biến và thường dùng để đặt tên cho thuật toán.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 28: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 29: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Chương 4: Thuật toán phân công giao hàng

4.1 Thuật toán phân công giao hàng cho 1 cửa hàng

Bước 1. Lấy danh sách các cửa hàng cần sắp xếp, các danh sách hóa đơn, danh sách nhân viên đang rỗi.Bước 2: Sắp xếp các đơn hàng có vị trí gần nhau.Bước 3: Sắp xếp thứ tự yêu tiên của nhân viên giao hàng theo Lương tháng và lương ngày bằng phương pháp TOPSISBước 4: Phân công giao hàng. Bước 4.1: Ban đầu phân công tạm thời các đơn hàng cho các nhân viên. Bước 4.2: Nếu có yêu cầu từ nhân viên giao hàng cần lấy đi giao. Lấy các đơn hàng chia tạm thời cho nhân viên đó. Chạy thuật toán ACOTSP để đánh lịch trình và tính thời gian dự kiến giao hàng

4.2 Phương pháp sắp xếp đơn hàng gần nhau Từ 1 cửa hàng các đơn hàng được chia thành các vùng, mỗi nhân viên giao hàng sẽ chỉ phụ trách 1 vùng nhất định, Làm như vậy sẽ tiết kiệm được quãng đường đi giao hàng. Kỹ thuật này gần giống kỹ thuật chia để trị, Chia bài toán thành nhiều bài toán nhỏ và sau đó lời giải của các bài toán nhỏ được tổng hợp lại thành lời giải cho bài toán ban đầu.

Mỗi cửa hàng có đặc trưng là chỉ nhận giao hàng trong 1 khoảng cách nhất định, đó gọi là bán kính hoạt động của cửa hàng(R).

Nếu của hàng có bán kính (R) giao hàng vừa phải thì chúng ta có thể chia thành 4 vùng, Mỗi đơn hàng sẽ được gán số vùng.

Nếu cửa hàng có bán kính giao hàng lớn, số lượng đơn hàng nhiều thì ban đầu chia thành 4 vùng, sau đó lại tiếp tục mỗi vùng cho chia làm 4 vùng tiếp, rỗi gán số vùng cho đơn hàng đó.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 30: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Hình 4 - 1: Sử dụng kĩ thuật chia để trị trong phân công giao hàng

4.3 Phương pháp topsis để sắp xếp thứ tự ưu tiên các nhân viênQuan sát thêm các phương án lý tưởng với các giá trị tốt nhất (xấu nhất) ở

các thuộc tính, sau đó tính khoảng cách và độ tương tự của các phương án so với các phương án lý tưởng Dựa vào kết quả để sắp xếp thứ tự hoặc lựa chọn

Đây là phương pháp quyết định đa tiêu chí, nhằm lấy ra một lựa chọn tốt nhất (giải pháp lý tưởng nhất) và lựa chọn tồi nhất (giải pháp tiêu cực nhất) từ tập các lựa chọn.

Kỹ thuật này được đưa ra lần đầu vào năm 1980 bởi Kwangsun Yoon và Hwang ChingLai. Sau này kỹ thuật này còn được phát triển thêm bởi các nhà khoa học khác và được hoàn thiện vào năm 1993.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 31: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Các bước trong phương pháp topsisBước 1: Chuẩn hóa, đưa ra các giá trị về rij

[0,1]

Bước 2: Tính giá trị theo trọng số vij = rij * wj

Bước 3: Tính các giải pháp lý tưởng

- A* = (v1* , v2

* , v3

* ,..., vm*), với vj

* là giá trị tốt nhất của Xj

- A= (v1- , v2

- , v3

- ,..., vm-), với vj

- là giá trị tốt nhất của Xj

Bước 4: Tính khoảng cách

Si* = , Si

- =

Bước 5: Tính độ tương tự :

Ví dụ Topsis để sắp xếp thứ tự ưu tiên được nhận hàng trước của nhân viên. Để

chọn nhân viên có độ ưu tiên được giao hàng trước. Tức là nhân viên có thu nhập

thấp trong 1 ngày và trong 1 tháng, Ta phải kết hợp cả 2 trọng số này lại để tạo 1

trọng số sắp xếp thứ tự ưu tiên cho các nhân viên

Ta có bảng lương của nhân viên như sau

Nhân viên Lương ngày hiện tại Lương tháng hiện tạiA 3 $ 20$B 10$ 10$C 7$ 50$D 3$ 7$E 9$ 15$

Với bộ trọng số

WEIGHT_DAY = 0.85;

WEIGHT_MONTH =0.15;

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 32: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Bước 1: chuẩn hóa các giá trị

Vì thuộc tính lương theo ngày và lương theo tháng đều là thuộc tính giá (thuộc tính giá trị càng thấp càng tốt)

Ma trận chuẩn hóa

Nhân viên Lương ngày hiện tại Lương tháng hiện tạiA 0.6476 0.2573B 0.1943 0.5147C 0.2775 0.1029D 0.6476 0.7352E 0.2159 0.3431

Bước 2: Tính giá trị theo trọng số

Nhân viên Lương ngày hiện tại Lương tháng hiện tạiA 0.5504 0.0386B 0.1651 0.0772C 0.2359 0.0154D 0.5504 0.1103E 0.1835 0.0515

Bước 3: Các giải pháp lý tưởng

A* =(0.5504, 0.1103)

A- =(0.1651, 0.0154)

Bước 4 : Tính khoảng cách tới giải pháp lý tưởng

S* =( 0.0717 , 0.3867 , 0.3285 , 0.0 , 0.3716);

S- = (0.386 , 0.0618 , 0.0708 , 0.3968 , 0.0404)

Bước 5 : Độ đo tương tự tới giải pháp lý tưởngC* =(0.8434 , 0.1377 , 0.1772 , 1.0 , 0.0981)

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 33: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Sắp xếp thứ tự ưu tiên

Theo S* : D > A > C > B > E Theo S- : D > A > C > B > E Theo C* : D > A > C > B > E

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 34: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Chương 5: Ứng dụng giao hàng tự động và sắp xếp lộ trình giao hàng

5.1 Phân công công việc

Thành viên Nhiệm vụ

Bảo Xây dựng trang Web

Phương Ứng dụng android cho khách hàng

Khang Ứng dụng android cho người giao hàng

Hạ Thuật toán phân công giao hàng

Bảng 5 – 1: Phân công nhiệm vụ từng thành viên trong nhóm.

5.2 Thiết kế tổng quan

5.2.1 Khung nhìn usecase

Hình 5 - 1: Tác nhân của hệ thống

Hệ thống bao gồm các tác nhân sau:

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 35: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Tên tác nhân: Quản trị mbayMô tả: Người đóng vai trò ban quản lý của chợHoạt động của tác nhân đối với hệ thống: Quản trị mbay có các chức năng quản lý của chợ:

o Mở các gian hàng trống, chưa có chủ

o Cho phép người dùng đăng ký làm chủ gian hàng

o Quản lý chủ gian hàng

o Quản lý các gian hàng: Xóa các gian hàng có dấu hiệu lừa đảo

o Giải quyết các tranh chấp khi có phát sinh giữa khách hàng với chủ gian

hàng

Tên tác nhân: Chủ gian hàngMô tả: Là chủ của các gian hàng, cửa hàng.Hoạt động của tác nhân đối với hệ thống: Chủ gian hàng có các chức năng:

o Đăng ký mở gian hàng, hoặc quản lý các gian hàng vô chủ

o Thiết lập các gian hàng

o Quản lý nhân viên

Tên tác nhân: Quản lý gian hàngMô tả: Là người thay mặt chủ cửa hàng thực hiện các nhiệm vụ quản lý nhà hàng.Hoạt động của tác nhân đối với hệ thống: Quản lý gian hàng thực hiện các chức năng quản lý nhà hàng:

o Phân công giao hàng cho nhân viên giao hàng

o Giao hàng cho nhân viên giao hàng

o Ghi nhận kết quả giao hàng

o Đánh giá nhân viên

o Theo dõi doanh thu của cửa hàng

o Cập nhật thông tin cho hàng hóa: Giá cả, khuyến mại, …

Tên tác nhân: Nhân viên giao hàngMô tả: Là người được chủ gian hàng cấp phép cho làm nhân viên giao hàng của cửa hàngHoạt động của tác nhân đối với hệ thống: Người giao hàng thực hiện các chức năng:

o Nhận đơn hàng để giao

o Nhận các mặt hàng trong đơn hàng

o Tìm lộ trình giao hàng tới khách hàng

o Bàn giao sản phẩm

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 36: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

o Nhận tiền và lấy xác nhận từ khách hàng

o Nộp tiền thanh toán

Tên tác nhân: Khách hàngMô tả: Là những người sử dụng hệ thống để mua hàngHoạt động của tác nhân với hệ thống: Khách hàng có thể thực hiện các chức năng:

o Tìm kiếm các mặt hàng, gian hàng

o Xem thông tin các mặt hàng, gian hàng

o Xem thông tin bình luận, đánh giá về sản phẩm, gian hàng

o Xem xét, đánh giá giá cả, chất lượng sản phẩm của các gian hàng khác

nhauo Bình luận, đánh giá về một sản phẩm, một gian hàng

o Đặt hàng

o Thanh toán tiền hàng, xác nhận với nhân viên giao hàng

Đồ án là một hệ thống thương mại điện tử lớn, được phát triển bởi nhóm 4 sinh viên. Phần đóng góp của em được giới hạn trong bài toán phân công giao hàng cho nhân viên sao cho tối ưu nhất. Biểu đồ usecase tương ứng với phần phân công giao hàng tự động được thể hiện ở hình sau đây.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 37: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Hình 5 - 2: Biểu đồ usecase Phân công giao hàng tự động

5.2.2 Khung nhìn Logic

Hình 5 - 3: Mô hình tương tác chung của hệ thống

5.2.3 Khung nhìn vật lý

Hình 5 - 4: Khung nhìn vật lý khi triển khai hệ thống.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Trình duyệt desktop

App di động

Page 38: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

5.3 Thiết kế chi tiết

STT Mã UC Tên UC Mô tả ngắn gọn

1 U001 Phân công tạm thời các đơn hàng cho các nhân viên

Phân công tạm thời các đơn hàng của 1 cửa hàng cho các nhân viên

2 U002 Phân công thật các các đơn hàng cho các nhân viên

Khi chủ cửa hàng hoặc quản lý cửa hàng, tiếp nhận yêu cầu lấy hàng đi giao từ nhân viên. Hệ thống phân công các đơn hàng tạm thời cho nhân viên đó và chạy thuật toán ACO để sắp xếp lộ trình cho nhân viên

Bảng 5 – 2: Usecase phân công giao hàng

ID U001

Tên Phân công tạm thời các đơn hàng cho các nhân viên

Mô tả tóm tắt Phân công tạm thời các đơn hàng của 1 cửa hàng cho các nhân viên

Tác nhân Hệ thống

Điều kiện Tiền ĐK

Hệ điều hành kích hoạt được tiến trình tự động Mbay.jar

Hậu ĐK

Phân công được các đơn hàng cho nhân viên và cập nhật dữ liệu

Dòng sự kiện chính

A1. Hệ thống truy vấn dữ liệu về các cửa hàng, các đơn hàng chưa giao, các nhân viên đang rỗi

A2. Hệ thống phân công tạm thời các đơn hàng cho các nhân viên

A3. Hệ thống cập nhật cơ sở dữ liệu

A4. Hệ thống ghi log file

Dòng sự kiện khác

A1.1: Tại cửa hàng i : không có đơn hàng chưa giao hoặc không có nhân viên nào rỗi.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 39: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

A2.1: Hệ thống ghi ra File log nội dung : dữ liệu Null

Các quy tắc nghiệp vụ

Hệ điều hành phải kích hoạt tiến trinh java.exe -jar Mbay.jar

Bảng 5 – 3: U001. Phân công tạm thời các đơn hàng cho các nhân viên.

ID U002

Tên Phân công thật các các đơn hàng cho các nhân viên

Mô tả tóm tắt Khi chủ cửa hàng hoặc quản lý cửa hàng, tiếp nhận yêu cầu lấy hàng đi giao từ nhân viên. Hệ thống phân công các đơn hàng tạm thời cho nhân viên đó và chạy thuật toán ACO để sắp xếp lộ trình cho nhân viên

Tác nhân Chủ cửa hàng hoặc quản lý cửa hàng

Điều kiện Tiền ĐK

Chủ cửa hàng hoặc quản lý cửa hàng giao hàng cho nhân viên và cập nhật dữ liệu

Hậu ĐK

Với 1 nhân viên đã nhận các đơn hàng, Thuật toán sắp xếp được lộ trình, tính chi phí, thời gian cụ thể cho mỗi đơn hàng.

Dòng sự kiện chính

A1. Tác nhân vào mục quản lý đơn hàng trên Web

A2. Hệ thống hiện thị các danh sách nhân viên đã có các đơn hàng tạm thời

A2. Tác nhân chọn giao các đơn hàng cho nhân viên đó

A3. Hệ thống lấy danh sách các đơn hàng cửa người đó, và chạy thuật toán ACO để sắp xếp lộ trình

A4. Hệ thống cập nhật dữ liệu và hiển thị kết quả trên Web

Dòng sự kiện khác

Không có

Các quy tắc nghiệp vụ

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 40: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Bảng 5 – 4: U002. Phân công thật các đơn hàng cho các nhân viên.

Hình 5 - 5: Biểu đồ hoạt động Phân công thật các đơn hàng cho các nhân viên

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 41: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Hình 5 - 6: Biểu đồ hoạt động chức năng phân đơn hàng cho nhân viên

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 42: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Hình 5 – 7: Biểu đồ trình tự Phân công giao hàng tạm thời

Hình 5 – 8 Biểu đồ trình tự Phân công giao hàng thật cho nhân viên

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 43: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Hình 5 - 8: Package Diagram

- Package Assign: Gói phân công giao hàng tự động

- Packageg ACOTSP : Gói chứa thuật toán Ant Colony Optimization

- Package DB: Gói tương tác với cơ sở dữ liệu

- Package Entity: gói thực thể với các bảng cơ sở dữ liệu. Ví dụ các lớp Point.java, Employer.java, Bill.java.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 44: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Hình 5 – 9: Biểu đồ lớp chi tiết chức năng phân công giao hàng tự động

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 45: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

5.4 Thiết kế cơ sở dữ liệu

Hình 5 - 10: Các bảng trong cơ sở dữ liệu

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 46: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

TÊN BIẾN KIỂU DỮ LIỆU Ràng buộc Mô tảIdUser INT(11) Khoá chính ID người dùng hệ thốngUser VARCHAR(30) Unique Tên đăng nhậpPassword VARCHAR(40) Not Null Mật khẩuName VARCHAR(60) Not Null Họ tênAdress VARCHAR(255) Not Null Địa chỉ người dùngAvatar VARCHAR(255) Allow Null Ảnh đại diệnPhone VARCHAR(11) Not Null Điện thoạiMobile VARCHAR(11) Not Null Điện thoạiEmail VARCHAR(60) Unique EmailCreateAt DATETIME Allow Null Ngày tạoIsActive VARCHAR(32) Allow Null Trạng thái kích hoạtslug VARCHAR(255) Allow Null Tên hiển thị trên URLState INT(11) Not Null Trạng thái nhân viên giao

hàngreset_pass VARCHAR(32) Allow Null Yêu cầu reset mật khẩu

BẢNG CSDL USER:

BẢNG CSDL ROLE:

TÊN BIẾN KIỂU DỮ LIỆU Ràng buộc Mô tảIdRole INT(11) Khoá chính ID vai tròName VARCHAR(60) Not Null Tên vai tròRole VARCHAR(20) Not Null Vai trò

BẢNG USERROLES:

TÊN BIẾN KIỂU DỮ LIỆU Ràng buộc Mô tảId INT(11) Khoá chính IDIdUser INT(11) Not Null Id người dùngIdRole INT(11) Not Null Id vai trò

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 47: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

BẢNG COMMENT:

TÊN BIẾN KIỂU DỮ LIỆU Ràng buộc Mô tảIdCmt INT(11) Khoá chính IDIdProduct INT(11) Khoá ngoại Id sản phẩm Body VARCHAR(255) Not null Nội dung lời nhận xétCreateAt DATETIME Not null Ngày tạoIdUser INT(11) Khoá ngoại ID người nhận xét

BẢNG SESSIONS

TÊN BIẾN KIỂU DỮ LIỆU Ràng buộc Mô tảsess_id VARBINARY(128) Khoá chính Phiên làm việcsess_data BLOB Not Null Dữ liệu phiên làm việcsess_time INT(10) Not Null Thời gian sống của phiên

làm việcsess_lifetime MEDIUMINT(9) Not Null

BẢNG USERSTORE

Tên biến KIỂU DỮ LIỆU

Ràng buộc Mô tả

Id INT(11) Khoá chính ID CreateAt DATETIME Allow Null Ngày tạoIdEmployee INT(11) Khoá ngoại ID Nhân viênIdStore INT(11) Khoá ngoại ID cửa hàngActive TINYINT(1) Allow Null Trạng thái nhân viên trong cửa

hàng

BẢNG PHIEN

TÊN BIẾN KIỂU DỮ LIỆU

Ràng buộc Mô tả

IdPhien INT(11) Khoá chính IDstartat DATETIME Allow Null Thời gian bắt đầu của phiên giao

hàngfinishat DATETIME Allow Null Thời gian kết thúc phiên giao

hàngkm INT(11) Allow Null Quãng đường đi được ở phiên đóIdEmployee INT(11) Khoá ngoại Người giao hàng

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 48: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

BẢNG BILL

TÊN BIẾN KIỂU DỮ LIỆU Ràng buộc Mô tảIdBill INT(11) Khoá

chínhID

CreateAt DATETIME Allow Null Ngày tạoAddress VARCHAR(60) Not Null Địa chỉ giao hàngShipTime DATETIME Allow Null Thời gian giao hàngPosition INT(11) Allow Null Thứ tự đơn hàng đó trong

phiên IdPhien INT(11) Allow Null ID phiên giao hàngIdCustomer INT(11) Khoá

ngoạiID khách hàng

IdStore INT(11) Khoá ngoại

ID cửa hàng

State INT(11) Not Null Trạng thái đơn hàngLAT DOUBLE Not Null Vĩ dộLON DOUBLE Not Null Kinh độ actualtime DATETIME Allow Null Thời gian giao hàng thực tế

BẢNG CATEGORYSTORE

TÊN BIẾN KIỂU DỮ LIỆU Ràng buộc Mô tảIdCategoryStore INT(11) Khoá chính IDCategoryName VARCHAR(60) Not Null Tên loại cửa hàngDescription VARCHAR(255) Allow Null Nội dungSlug VARCHAR(255) Not Null Tên đường dẫn trên URL

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 49: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

BẢNG STORE

TÊN BIẾN KIỂU DỮ LIỆU Ràng buộc Mô tảIdStore INT(11) Khoá chính IDName VARCHAR(255) Not Null Tên Image VARCHAR(255) Allow Null Hình ảnhAdress VARCHAR(255) Not Null Địa chỉPrimaryPhone VARCHAR(255) Not Null Điện thoạiCreateAt DATETIME Not Null Thời gian tạoActived TINYINT(1) Allow Null Trang thái hoạt độngDistance INT(11) Allow Null Bán kính giao hàngAutomatic TINYINT(1) Allow Null Tự đông phân công giao

hàngslug VARCHAR(255) Not Null Tên hiển thị trên URLIdCategoryStore INT(11) Khoá ngoạiIdBoss INT(11) Khoá ngoại ID chủ cửa hàngreport VARCHAR(255) Allow NullLAT DOUBLE Not Null Vĩ độ cửa hàngLON DOUBLE Not Null Kinh độ cửa hàng

BẢNG BILLDETAIL

Tên biến KIỂU DỮ LIỆU

Ràng buộc Mô tả

Id INT(11) Khoá chính IDIdBill INT(11) Khoá ngoại ID cửa hàngIdProduct INT(11) Khoá ngoại ID sản phẩmnumber INT(11) Not null Số lượng sản phẩm

BẢNG PRODUCTIMAGE

TÊN BIẾN KIỂU DỮ LIỆU Ràng Mô tả

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 50: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

buộcId INT(11) Khoá

chínhID

ImageSrc VARCHAR(255) Not Null Đường dẫn hình ảnhIdProduct INT(11) Not Null ID sản phẩm

BẢNG CATEGORY

TÊN BIẾN KIỂU DỮ LIỆU RÀNG BUỘC MÔ TẢIdCategory INT(11) Khoá chính IDTag VARCHAR(60) Allow NullName VARCHAR(60) Not Null Tên thể loại sản phẩmDescription VARCHAR(255) Allow Null Nội dungActive TINYINT(1) Allow Null Trạng tháiKeyWord VARCHAR(10) Allow Null Từ khoá tìm kiếmslug VARCHAR(255) Not Null Tên hiển thị trên URLIdCatStore INT(11) Khoá ngoại ID cửa hàng

BẢNG PRODUCT

TÊN BIẾN KIỂU DỮ LIỆU RÀNG BUỘC MÔ TẢIdProduct INT(11) Khoá chính IDName VARCHAR(60) Not Null Tên sản phẩmIdCategory INT(11) Khoá ngoại ID thể loạiTag VARCHAR(10) Allow NullKeyWord VARCHAR(10) Allow Null Từ khoáslug VARCHAR(255) Not Null Tên hiển thị trên URL

BẢNG STOREPRODUCT

TÊN BIẾN KIỂU DỮ LIỆU RÀNG BUỘC MÔ TẢId INT(11) Khoá chínhIdStore INT(11) Khoá ngoại ID cửa hàngIdProduct INT(11) Khoa ngoại ID sản phẩm Detail VARCHAR(255) Allow Null Chi tiếtPrice INT(11) Not Null Giá thậtSalePrice INT(11) Allow Null Giá khi giảmSale VARCHAR(255) Allow Null

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 51: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Active TINYINT(1) Allow Null Trạng thái sản phẩmDateBegin DATETIME Allow Null Ngày bắt đầu khuyến

mãiDateEnd DATETIME Allow Null Ngày kết thúc khuyến

mãicreateat DATETIME Allow Null Ngày tạoupdateat DATETIME Allow Null Ngày cập nhất mới

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 52: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Chương 6: Đánh giá kết quả, ưu nhược điểm, khả năng ứng dụng

6.1 Kết quả đạt được

Kết quả nghiên cứu đã xây dựng thành công ứng dụng gợi ý giao hàng tự động cho hệ thống mbay. Với bộ dữ liệu

- 15 cửa hàng với địa điểm ở Hà Nội- Mỗi cửa hàng có tầm khoảng 15-20 sản phẩm- Mỗi cửa hàng có hơn một nhân viên giao hàng đang rỗi.- Mỗi cửa hàng tại thời điểm thuật toán chạy sẽ có 40,50 đơn hàng được tạo

ngẫu nhiên - Có 100 khách hàng trong hệ thống

Môi trường thử nghiệm thực tế

- Hệ điều hành: máy chủ ảo VPS Windows Server 2008- Apache PHP 5.5, Mysql 5.6- Java JDK 1.7

Chạy thử nghiệm ứng dụng

Sử dụng công cụ Task Scheduler tích hợp sẵn trong Windows để tự khởi động chương trìng java.exe –jar mbay.jar

Đặt trong vòng 5 phút, Hệ điều hành Windows sẽ kích hoạt lại tiến trình java.exe – jar mbay.jar

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 53: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Hình 5 – 11: Khởi chạy mBay.jar từ Windows

Kết quả chạy thử nghiệm :

Với của hàng có Idstore = 1 và có 30 đơn hàng và hiện tại chỉ có 1 nhân viên giao hàng đang rỗi

Với địa điểm 30 đơn hàng có vị trí toạ độ như sau

Vị trí 0 [21.021035 , 105.841451] Vị trí cửa hàng,vị trí xuất phát

Vị trí 1 [21.0113972 , 105.8561946]Vị trí 2 [21.0373732 , 105.8537085]Vị trí 3 [21.0197978 , 105.8263103]Vị trí 4 [21.0202193 , 105.8164842]Vị trí 5 [21.0141834 , 105.8505145]Vị trí 6 [21.0165798 , 105.8504266]Vị trí 7 [20.9972105 , 105.8450375]Vị trí 8 [21.0008726 , 105.8348482]Vị trí 9 [21.0097566 , 105.8221182]Vị trí 10 [21.0432988 , 105.8308301]Vị trí 11 [21.042777 , 105.8373434]Vị trí 12 [21.0070204 , 105.8628889]Vị trí 13 [21.0377219 , 105.8386193]Vị trí 14 [21.0142647 , 105.8438075]Vị trí 15 [21.0185057 , 105.8422794]

Vị trí 16 [21.0333582 , 105.8287007]Vị trí 17 [21.020724 , 105.8350958]Vị trí 18 [21.0075024 , 105.8388949]Vị trí 19 [21.0216676 , 105.8406434]Vị trí 20 [21.019214 , 105.8465329]Vị trí 21 [21.0194522 , 105.8501732]Vị trí 22 [21.0162073 , 105.8448095]Vị trí 23 [21.0321479 , 105.847258]Vị trí 24 [21.0210331 , 105.8162065]Vị trí 25 [21.0192594 , 105.8418901]Vị trí 26 [21.0299824 , 105.8395877]Vị trí 27 [21.0106729 , 105.8176505]Vị trí 28 [21.0195331 , 105.8598292],Vị trí 29 [21.0311337 , 105.8234428]Vị trí 30 [21.0336148 , 105.8395568]

Khi chạy thuật toán: nhân viên cửa hàng có Idstore =1 nhận 30 đơn hàng và trình tự giao hàng như sau 0 19 17 18 7 8 9 27 4 24 3 29 16 10 11 13 30 26 23 2 28 12 1 5 6 21 20 22 14 15 25

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 54: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Hình 5 – 12: Chu trình giao hàng tối ưu cho nhân viên

6.2 Đánh giá kết quả

Cả nhóm đã xây dựng hệ thống Mbay, triển khai được được hệ thống mbay, chạy trên 2 nền tảng Web và mobile.

Cá nhân đã xây dựng được ứng dụng phân công giao hàng và phân công thứ tự giao hàng

Ưu điểm :

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 55: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

Nhóm : Hệ thống Mbay có giao diện dễ dùng dễ tương tác đầy đủ các chức năng ban đầu thiết kế.

Cá nhân :Hoàn thành nhiệm vụ được giao

Dùng thuật toán chia để trị : các danh sách đơn hàng thành các vùng nhỏ, Mỗi nhân viên quản lý mỗi vùng nhằm rút ngắn đường đi giao hàng giảm chi phí và thời gian giao hàng.

Áp dụng được thuật toán đàn kiến từ dữ liệu googlemaps để sắp xếp trình tự giao hàng.

Nhược điểm :

+) Bộ dữ liệu thử nghiệm còn ít, chưa thực tế.

+) Chưa tích hợp trong số thời gian vào thuật toán, Mới chỉ dùng trọng số khoảng cách của các đơn hàng.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 56: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

KẾT LUẬN

Tổng kết

Đồ án bước đầu đã hiểu được thuật toán phân công giao hàng trực tuyến và hiểu được một phần thuật toán đàn kiến, Và cũng đã ứng dụng thành công vào hệ thống Mbay. Thông qua việc xây dựng ứng dụng này, em đã tích lỹ được thêm nhiều kinh nghiệm về lập trình java và hiểu rõ 2 thuật toán phân công giao hàng, thuật toán đàn kiến.Tuy nhiên, do nhiều yếu tố chủ quan và khách quan như thời gian eo hẹp, trình độ còn nhiều hạn chế cũng như đề tài Mbay tương đối lớn nên đồ án vẫn còn các nhược điểm sau : chưa đi sâu vào phân tích yêu cầu phần mềm, phân tích thiết kế hệ thống Mbay. Chưa thể đi sâu vào phân tích các biến thể của thuật toán đàn kiến, so sánh về hiệu năng từng biết thể. Ứng dụng chỉ sử dụng biết thể cơ bản của thuật toán ACO, chưa đánh giá hiệu năng của thuật toán phân công, thuật toán phân công còn cứng nhắt, không có chế độ tuỳ biến cho từng cửa hàng.

Trong tương lại, Ứng dụng mbay sẽ được triển khai thực tế, Và từ những dữ liệu thực tế và thu tập ý kiến của người dùng thì Mbay sẽ được tối ưu hơn, khắc phục những nhược điểm hiện tại.

Hướng phát triển của đồ án

Đề tài “xây dựng hệ thống chợ điện tử trực tuyến mbay –Thuật toán phân công giao

hàng tự động” trong khuôn khổ của đồ án này chỉ dừng lại ở nghiên cứu và cài đặt thử nghiệm ban đầu trên tập dữ liệu mẫu, chưa thực tế. Có nhiều hướng phát triển cho đề tài phân công giao hàng như sau :

- Triển khai hệ thống mbay trên thực tế, với các chính sách quảng cáo, thu hút nhiều người sửa dụng.

- Chuyển đổi thuật toán chạy trên nền tảng PHP để tối ưu hoá vấn đề phần cứng và tối thiểu cách tương tác với hệ thống, Làm quy trình phân công giao hàng rõ ràng hơn.

- Tạo ra các phương pháp giao hàng khác trong đó chủ cửa hàng tuỳ biến được các tham số.

- Thiết kế học máy trên bộ dữ liệu phân công giao hàng cũ, để thuật toán trở nên tối ưu hơn.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang

Page 57: Đồ án tốt nghiệp Thuật toán đàn kiến

HUST SOICT Xây dựng thuật toán phân công giao việc cho hệ thống MBay

ĐATN 2015

TÀI LIỆU THAM KHẢO

[1] Marco Dorigo, Thomas Stutzle, Marco Colony Optimization, 1999.[2] Ant Colony Algorith, www.codeproject.com, truy cập lần cuối 1/5/2015.[3] ACO, http://wikipedia.org, truy cập lần cuối ngày 1/5/2015.[4] TSP, http://wikipedia.org, truy cập lần cuối ngày 1/5/2015.[5] G. L. Nemhauser and L. A. Wolsey, Interger and Combinatorial

Optimization, Wiley-Interscience, 1998[6] F. Rossi, P. Van Beek, and T. Walsh, Eds. Handbook of Constraint

Programming, Elsevier, 2006 [7] T. Gonzalez, Handbook of Approximation Algorithms and Metaheuristics,

Chapman and Hall/CRC, 2007[8] M. Dorigo and T. Stutzle, Ant Colony Optimization, Bradford Books,

London, 2004[9] Ban Hà Bằng, Nguyễn Đức Nghĩa, Tạp chí tin học và điều khiển học T.29

S.3( 2013) 285-297[10] M. Dorigo & L.M. Gambardella: đề xuất. Ant Colony System, IEEE

Transactions on Evolutionary Computation, 1(1):53-66,1997.

Sinh viên Nguyễn Văn Hạ SHSV: 20102648 Lớp: CNTT2-K55 Trang