Trong bài viết này, nhóm tác giả đề xuất giải pháp tăng cường mức độ song song hóa giải thuật GA nhằm cải thiện hiệu năng của giải thuật này khi giải quyết bài toán TSP bằng cách song song hóa thuật toán OX1 (Davis'' Order Crossover) trên nền tảng FPGA (FieldProgrammable Gate Array) với True Dual - Port RAM (T2P-RAM).
TẠP CHÍ ISSN: 1859-316X KHOA HỌC CƠNG NGHỆ HÀNG HẢI KHOA HỌC - CÔNG NGHỆ JOURNAL OF MARINE SCIENCE AND TECHNOLOGY SONG SONG HĨA THUẬT TỐN LAI GHÉP DAVIS' ORDER CROSSOVER TRÊN FPGA SỬ DỤNG TRUE DUAL PORT RAM - MỘT CÁCH TIẾP CẬN TRONG GIẢI QUYẾT BÀI TOÁN NGƯỜI DU LỊCH BẰNG GIẢI THUẬT DI TRUYỀN PARALLEL DAVIS'S ORDER CROSSOVER USING TRUE DUAL PORT RAM OF FPGA - AN APPROACH TO SOLVE TRAVELLING SALESMAN PROBLEM BY GENETIC ALGORITHM NGUYỄN TRUNG QUÂN, NGUYỄN TRỌNG ĐỨC* Khoa Công nghệ thông tin, Trường Đại học Hàng hải Việt Nam *Email liên hệ: trong-duc.nguyen@vimaru.edu.vn Tóm tắt Bài tốn Người du lịch (TSP - Travelling Salesman Problem) xem tốn kinh điển tối ưu hóa, ứng dụng rộng rãi nhiều lĩnh vực lập kế hoạch, thiết kế vi mạch, phân tích gen, TSP với lời giải tổng quát thuộc lớp toán có độ phức tạp khơng phái đa thức (NP - đầy đủ), việc tìm kiếm lời giải tối ưu cho tốn khơng khả thi Đã có nhiều nghiên cứu nhằm nâng cao hiệu cho TSP phạm vi vài chục ngàn thành phố sử dụng giải thuật tìm kiếm Tabu, mạng Nơron nhân tạo, giải thuật Di truyền (GA Genetic Algorithm), Trong báo này, nhóm tác giả đề xuất giải pháp tăng cường mức độ song song hóa giải thuật GA nhằm cải thiện hiệu giải thuật giải tốn TSP cách song song hóa thuật tốn OX1 (Davis' Order Crossover) tảng FPGA (FieldProgrammable Gate Array) với True Dual - Port RAM (T2P-RAM) Từ khóa: Bài toán Người du lịch, giải thuật di truyền, Davis' Order Crossover, FPGA Abstract Travelling Salesman Problem (TSP) is an optimization problem It has several applications, such as scheduling, VLSI, logistics, supply chain optimization TSP is a NP-Hard problem, so it is impossible to find an optimal solution in polynomial time There is much research that improves TSP performance for thousands of cities, such as Tabu algorithm, neural network, genetic algorithm (GA) In this paper, we suggest a proposed solution to improve parallelization of GA in order to reduce processing time when applied to solve TSP by parallel OX11 step using True Dual Port RAM of the Field-Programmable Gate Array (FPGA) Keywords: Travelling Salesman Problem, Genetic Algorithm, Davis' Order Crossover, FPGA 72 Mở đầu Bài toán Người du lịch (TSP - Travelling Salesman Problem) xem tốn kinh điển tối ưu hóa, ứng dụng rộng rãi nhiều lĩnh vực lập kế hoạch, thiết kế vi mạch, phân tích gen, [1] Đã có nhiều nghiên cứu nhằm nâng cao hiệu cho TSP phạm vi vài chục ngàn thành phố sử dụng giải thuật tìm kiếm Tabu [2], mạng Nơron nhân tạo [3], giải thuật Di truyền [4], Tuy nhiên, giải pháp đưa dừng lại phương pháp tính tốn xử lý tuần tự, chưa khai thác mạnh giải thuật tính tốn song song phát triển kĩ thuật phần cứng Tính tốn song song hiệu cao xem xu phát triển cho hệ thống Lập lịch đồng tác vụ thách thức để song song hóa q trình xử lý [5] Một số mơ hình đề xuất thực song song hóa phần mềm tảng CPU GPU [6] Tuy nhiên, việc song song hóa tồn hạn chế định mặt thời gian thực trao đổi liệu đồng tiến trình [7] Khi đó, giải pháp đề triển khai song song hóa trực tiếp hệ thống phần cứng thông qua việc tối ưu thiết kế cho chế giao tiếp đơn vị xử lý Giải pháp thực song song hóa giải thuật GA tảng FPGA cho toán TSP đề xuất Trong báo này, nhóm tác giả đề xuất giải pháp tăng cường mức độ song song hóa giải thuật GA nhằm cải thiện hiệu giải thuật giải toán TSP cách song song hóa thuật tốn OX1 FPGA với True Dual Port RAM (T2P-RAM) Nội dung báo bao gồm: Mục - Mở đầu; mục - Mô hình kiến trúc hệ thống; Mục - Song song hóa thuật tốn OX1 sử dụng T2P- RAM cuối Kết luận hướng nghiên cứu nhóm SỐ 69 (01-2022) TẠP CHÍ ISSN: 1859-316X KHOA HỌC CÔNG NGHỆ HÀNG HẢI KHOA HỌC - CÔNG NGHỆ JOURNAL OF MARINE SCIENCE AND TECHNOLOGY Mơ hình kiến trúc hệ thống Mơ hình kiến trúc hệ thống Hình Khối Core: Đảm nhiệm nhiệm vụ để tương tác luồng liệu, đồng thời chứa quần thể khởi tạo ban đầu Khối Logger: Nhận liệu cá thể tốt sau hệ, lưu trữ vào nhớ Khối RandSelection: Tạo giá trị ngẫu nhiên vị trí quần thể nhằm lựa chọn hai cá thể ban đầu Khối Tournament: Kết hợp liệu từ hai khối RandSelection để lựa chọn cá thể đưa vào trình lai ghép theo giải thuật 2-way tournament Khối Replacement: Xác định vị trí cá thể bị thay bới cá thể Khối InvariantCtrl: Sinh hai giá trị ngẫu nhiên theo thứ tự nhằm chọn hai điểm chuỗi gen phục vụ cho trình trao đổi chéo đột biến Cụm Computing: Bao gồm nhiều khối xử lý nhỏ hoạt động theo chế đường ống nhằm hỗ trợ việc tạo cá thể thông qua việc trao đổi chéo đột biến Trong đó: Khối OX1: Thực trao đổi chéo dựa theo giải thuật OX1 Khối Invert: Thực đột biến chuỗi gen dựa theo giải thuật đảo ngược Khối DnaSplitter: Nhân luồng liệu Nhiễm sắc thể (DNA) thành hai luồng giống với luồng đưa luồng lại tới khối LookupDemux Khối LookupDemux: Phân tách chuỗi DNA mã hóa chu trình thành đoạn đường cần di chuyển phân loại chúng luồng tìm kiếm chi phí cho đoạn Mỗi khối cụm triển khai thành đơn vị xử lý độc lập FPGA, đồng thời chúng Hình Mơ hình kiến trúc hệ thống Hình Sơ đồ khối cụm Computing SỐ 69 (01-2022) 73 TẠP CHÍ ISSN: 1859-316X KHOA HỌC CÔNG NGHỆ HÀNG HẢI KHOA HỌC - CÔNG NGHỆ JOURNAL OF MARINE SCIENCE AND TECHNOLOGY lập lịch để hoạt động đồng Thêm vào đó, khối kết nối với thông qua nhiều kết nối AXI Stream nhằm chuyển liệu theo chiều từ khối sang khối khác Từ đó, cho phép việc xử lý khối song song mức tác vụ theo chế đường ống Nhờ vậy, việc cân tốc độ xử lý tác vụ đường ống đảm bảo hiệu khơng có tác vụ phải chờ đợi xử lý Song song hóa thuật toán OX1 sử dụng True Dual port RAM Lưu đồ thuật tốn OX1 Hình Hình Lưu đồ thuật tốn OX1 song song Bước 3: Đọc giá trị gen gen kế tiếp; Bước 4: Đánh dấu giá trị gen vừa đọc xuất hiện; Bước 5: Chuyển sang gen vị trí quay bước 2; Hình Lưu đồ thuật tốn OX1 Bước 6: Kiểm tra số lượng gen đoạn chọn chẵn chuyển sang bước 9, sai thực bước 7; Bước 7: Đọc giá trị gen tại; Với bước: Bước 1: Đánh dấu điểm bắt đầu xử lý điểm đầu đoạn gen chọn; Bước 2: Kiểm tra điểm cần xử lý nằm đoạn gen chọn chuyển sang bước 3, sai chuyển sang bước 6; Bước 3: Đọc giá trị gen tại; Bước 4: Đánh dấu giá trị gen xuất hiện; Bước 5: Chuyển sang gen vị trí quay bước 2; Bước 6: Chuyển liệu sang phần xử lý Bộ nhớ sử dụng khối OX1 cấu hình chế độ làm việc T2P-RAM Điều cho phép việc đọc ghi diễn đồng thời hai cổng nhớ RAM Để tận dụng lợi này, nhóm thực song song hóa giải thuật OX1 tảng FPGA, lưu đồ thuật toán song song hóa OX1 Hình Với bước: Bước 1: Đánh dấu điểm bắt đầu xử lý điểm đầu đoạn gen chọn; Bước 2: Kiểm tra điểm nằm đoạn gen chọn chuyển sang bước 3, sai chuyển sang bước 6; 74 Bước 8: Đánh dấu giá trị gen vừa đọc xuất hiện; Bước 9: Chuyển liệu sang phần xử lý Ở bước bước tận dụng nhớ T2PRAM để thực thao tác đọc ghi ô nhớ cách đồng thời Điều giúp giảm số chu kỳ cần thực khoảng nửa Tuy nhiên, cần bổ sung thêm bước xử lý bổ sung số lượng gen đoạn cần chọn lẻ Các phần lại khối xử lý OX1 thiết kế lại theo phương pháp tương tự để tận dụng lợi T2P-RAM FPGA cho phép đọc ghi đồng thời hai cổng nhớ RAM Kết luận Như trình bày mục trước, TSP tổng quát toán thuộc lớp NP-đầy đủ Để tối ưu hóa tốn TSP tổng qt thời điểm không khả thi Để kiểm chứng cho đề xuất mình, nhóm tiến hành thử nghiệm cài đặt giải thuật OX1 song song đề xuất (trong phạm vi 250 thành phố), so sánh tốc độ tính tốn xử lý giải thuật với giải thuật OX1 Dữ liệu cho mẫu thử sinh ngẫu nhiên cho lần thử với 10000 nhiễm sắc thể quần thể để đánh giá hiệu đơn vị xử lý cho SỐ 69 (01-2022) TẠP CHÍ ISSN: 1859-316X KHOA HỌC CƠNG NGHỆ HÀNG HẢI KHOA HỌC - CÔNG NGHỆ JOURNAL OF MARINE SCIENCE AND TECHNOLOGY Hình So sánh thời gian tính tốn, xử lí tốn TSP OX1 song song Hình Thơng số hệ thống chạy thử nghiệm giả thuật OX1 thiết kế phần cứng FPGA Hình so sánh thời gian thực giải thuật OX1 (phiên v3.0.0-lite) OX1 song song hóa Biểu đồ Hình cho thấy, thời gian xử lý OX1 song song chiếm khoảng 60% thời gian xử lý so với giải thuật Điều khẳng định giải thuật OX1 sau tận dụng lợi T2P-RAM SỐ 69 (01-2022) giảm thời gian xử lý gần lần Đặc biệt, số lượng thành phố tăng lên, hiệu giải thuật cải thiện rõ rệt Bên cạnh đó, thông số hệ thống trinh chạy thử nghiệm phiên v3.1.0-lite (Hình 6) cho thấy tần số làm việc đơn vị xử lý thiết kế FPGA (B0) tốc độ truyền liệu FPGA máy tính (A0) hồn tồn đồng (227 MHz) 75 TẠP CHÍ KHOA HỌC - CƠNG NGHỆ Đồng thời, mức độ tiêu thụ lượng trung bình thiết kế trình thử nghiệm (~13W) thấp nhiều so với xử lý thông thường thiết kế cho máy tính cá nhân (~45W) Điều khẳng định kết hợp FPGA với máy tính thơng thường làm gia tăng hiệu cho hệ thống, FPGA đóng vai trị đồng xử lý cho hệ thống Thêm vào đó, việc xử lý tác vụ hay toán (bài toán lai ghép GA, nhận dạng ảnh, ) xử lý cách độc lập hệ FPGA chuyên dụng hoàn toàn khả thi TÀI LIỆU THAM KHẢO [1] Lê Anh Vinh, Lý thuyết đồ thị, NXB ĐHQG Hà Nội, 2020 [2] C.N Fiechter, A Parallel Tabu Search Algorithm for Large Scale Traveling Salesman Problems, Working Paper 90/1 Department of Mathematics, École Polytechnique Fédérale de Lausanne, Switzerland, 1990 [3] V Potvin, The Traveling Salesman Problem: A Neural Network Perspective, INFORMS Journal on Computing Vol.5, pp 328-348, 1993 76 ISSN: 1859-316X KHOA HỌC CÔNG NGHỆ HÀNG HẢI JOURNAL OF MARINE SCIENCE AND TECHNOLOGY [4] J.V Potvin, Genetic Algorithms for the Traveling Salesman Problem, Annals of Operations Research, Vol.63, pp.339-370, 1996 [5] Nourah Al-Angari, Abdullatif ALAbdullatif, Multiprocessor Scheduling Using Parallel Genetic Algorithm, International Journal of Computer Science Issues, Vol 9, Issue 4, No 3, pp.260-264, July 2012 [6] ErickCantú-PazaDavid E.Goldbergb, Efficient parallel genetic algorithms: theory and practiceComputer, Methods in Applied Mechanics and Engineering, Vol.186, Issues 2-4, June 2000 [7] John Runwei Cheng and Mitsuo Gen, Parallel Genetic Algorithms with GPU Computing, Intechopen, 2020 Ngày nhận bài: Ngày nhận sửa: Ngày duyệt đăng: 22/12/2021 29/12/2021 02/01/2022 SỐ 69 (01-2022) ... khối song song mức tác vụ theo chế đường ống Nhờ vậy, việc cân tốc độ xử lý tác vụ đường ống đảm bảo hiệu tác vụ phải chờ đợi xử lý Song song hóa thuật tốn OX1 sử dụng True Dual port RAM Lưu đồ thuật. .. nhớ sử dụng khối OX1 cấu hình chế độ làm việc T2P -RAM Điều cho phép việc đọc ghi di? ??n đồng thời hai cổng nhớ RAM Để tận dụng lợi này, nhóm thực song song hóa giải thuật OX1 tảng FPGA, lưu đồ thuật. .. thử nghiệm giả thuật OX1 thiết kế phần cứng FPGA Hình so sánh thời gian thực giải thuật OX1 (phiên v3.0.0-lite) OX1 song song hóa Biểu đồ Hình cho thấy, thời gian xử lý OX1 song song chiếm khoảng