ỨNG DỤNG PHẦN mềm r GIẢI bài TOÁN QUY HOẠCH TUYẾN TÍNH APPLICATION OF r SOFTWARE TO SOLVE THE LINEAR PROGRAMMING PROBLEM

8 5 0
ỨNG DỤNG PHẦN mềm r GIẢI bài TOÁN QUY HOẠCH TUYẾN TÍNH APPLICATION OF r SOFTWARE TO SOLVE THE LINEAR PROGRAMMING PROBLEM

Đang tải... (xem toàn văn)

Thông tin tài liệu

KỶ YẾU HỘI THẢO “CÔNG NGHỆ THÔNG TIN VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC – LẦN THỨ 2” ỨNG DỤNG PHẦN MỀM R GIẢI BÀI TOÁN QUY HOẠCH TUYẾN TÍNH APPLICATION OF R SOFTWARE TO SOLVE THE LINEAR PROGRAMMING PROBLEM Hồng Nhật Quy Trường Cao đẳng Cơng nghệ Thơng tin Hữu nghị Việt – Hàn TĨM TẮT Bài báo khai thác khả ứng dụng phần mềm R để giải toán quy hoạch tuyến tính (QHTT) nói chung trường hợp riêng toán vận tải Và đồng thời muốn nhấn mạnh khả ứng dụng đa dạng R vào lĩnh vực khác Từ khóa: Phần mềm R; quy hoạch tuyến tính; QHTT; tốn vận tải; toán tối ưu ABSTRACT This paper exploits a new application capability of R software to solve the linear programming problem in general and a particular case is the transportation problem And we also want to emphasize the ability of diverse applications of R software in different fields Key words: R software; linear programming; lp; transportation problem; optimization KỶ YẾU HỘI THẢO “CÔNG NGHỆ THÔNG TIN VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC – LẦN THỨ 2” Đặt vấn đề Ngày nay, nhu cầu phân tích số liệu biểu đồ phát triển mạnh mẽ hầu hết lĩnh vực đời sống người Chính mà suốt thập kỷ qua, nhiều công ty phần mềm đầu tư nghiên cứu phát triển phần mềm chuyên dụng cho mục đích này, số phần mềm tiếng kể sau: SAS, SPSS, Stata, Statistica, S-Plus Vì phần mềm thương mại, nên muốn sử dụng cần phải mua quyền mà chi phí tài có lên đến hàng trăm ngàn - la năm Điều vượt xa khả tài nhiều cá nhân, trường đại học, tổ chức nghiên cứu,… nhiều nước giới, đặc biệt nước nghèo Việt Nam Đây động lực thúc đẩy nhà nghiên cứu thống kê giới hợp tác với nhằm xây dựng phần mềm mã nguồn mở cho mục tiêu Năm 1996, báo quan trọng tính tốn thống kê, nhà thống kê học Ross Ihaka Robert Gentleman phác họa ngôn ngữ cho phân tích thống kê mà họ đặt tên R Ý tưởng nhiều nhà thống kê học giới ủng hộ thúc đẩy họ tham gia vào việc phát triển R Mặc dù ý tưởng ban đầu xây dựng phần mềm mã mở cho phân tích xử lý số liệu, qua gần 10 năm phát triển, R đạt nhiều tính vượt xa mục tiêu ban đầu thực chất ngơn ngữ máy tính đa sử dụng cho nhiều mục tiêu khác Ngoài khả phân tích thống kê biểu đồ R cịn có khả thực hầu hết tính tốn đơn giản, tính tốn ma trận, phân tích thống kê phức tạp nhiều lĩnh vực khác toán học tốn tối ưu, tốn tài chính, kinh tế lượng, giải tích số,… Trong khn khổ báo này, muốn giới thiệu ứng dụng chưa khai thác Việt Nam R khả giải toán QHTT (một nhánh nhỏ tốn tối ưu) Hiện muốn tìm tài liệu vấn đề này, ta khái thác mục “Help” chương trình R tìm tài liệu tiếng Anh Tuy nhiên, hướng khó khăn phương pháp tiếp cận toán QHTT khác so với Việt Nam Qua nghiên cứu chúng tơi tài liệu viết tương đối sơ sài khó áp dụng, đặc biệt với bạn sinh viên lần đầu tiếp cận tốn QHTT Ngồi ra, qua việc giới thiệu ứng dụng R, lần muốn khẳng định lại “sức mạnh” R Ở cuối mục 2, chúng tơi có gợi mở thêm khả ứng dụng R để giải toán quy hoạch toàn phương quy hoạch phi tuyến để bạn đọc quan tâm tiếp tục nghiên cứu có dịp chúng tơi trình bày cách chi tiết ưng dụng Chúng hy vọng thêm ững dụng R giới thiệu tạo động lực cho quan tâm tới R tiếp tục nghiên cứu sầu hơn, chưa quan tâm bước đầu tiếp cận cách thích thú Để cuối ngày gia tăng số lượng cộng đồng ứng dụng R Việt Nam, xu hướng phát triển mạnh trường đại học, trung tâm nghiên cứu tổ chức kinh tế xã hội toàn giới Kết nghiên cứu khảo sát: Chúng ta vào website sau để download R cài đặt (cực kỳ đơn giản việc làm theo hướng dẫn hình) lên máy tính cá nhân để sử dụng http://cran.R-project.org R cung cấp ngơn ngữ máy tính số function để thực tính tốn đơn giản, để thực tính tốn phức tạp, ta cần tải cài đặt lên máy package khác Package phần mềm nhỏ xây dựng để giải vấn đề cụ thể, chạy hệ thống R Đối với việc giải toán QHTT ta sử dụng package như: lpSolveAPI, lpSolve, boot Sau tập trung hướng dẫn sử dụng package lpSolve KỶ YẾU HỘI THẢO “CÔNG NGHỆ THÔNG TIN VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC – LẦN THỨ 2” Sau trình cài đặt package lpSolve: - Từ công cụ cựa sổ giao diện R chon: Packages/install packages … - Cựa số CRAN mirror xuất hiện, chọn UK (Bristol) - Cựa sổ Packages xuất hiện, chọn gói lệnh “lpSolve” (scroll để tìm gói “lpSolve” kích chọn nó) để cài vào R - Sau cài gói lệnh “lpSolve”, ta phải dùng lệnh sau để tải hàm (thư viện hàm gói lpSolve) vào chương trình R sử dụng chúng cho việc giải toán QHTT > library(lpSolve)  Để xem danh sách lệnh thư viện ta dùng lệnh sau: > ls(“package:lpSolve”)  2.1 Kết 1: Giải toán QHTT R 2.1.1 Cấu trúc toán QHTT Hàm mục tiêu (objective function) f  c1 x1  c2 x2   cn xn  in1 ci xi  (max) Các ràng buộc (constraints) n  aij x j  bi ; i  1,2, , m1 j 1 n  aij x j  bi ; i  m1  1, , m1  m2 j 1 n  aij x j  bi ; i  m1  m2  1, , m j 1 Điều kiện ẩn số (decision variables) xi  0, i  1, n1; xi  0, i  n1  1, n1  n2 , n1  n2  n 2.1.2 Nhập dư liệu toán QHTT vào R Dữ liệu toán QHTT nhập vào lệnh theo thứ tự sau - Nhập hệ số hàm mục tiêu: > ham matran quanhe =”, ” vphai lp(“muctieu”, ham, matr, qhe, vphai)  Chú ý: “muctieu” “max” “min” tùy toán + Lấy phương án tối ưu toán: > lp(“muctieu”, ham, matran, quanhe, vphai)$solution  + Lấy lời giải toán đối ngẫu: > lp(“muctieu”, ham, matran, quanhe, vphai, compute.sens = TRUE)$duals  2.1.3 Ví dụ: Giải tốn QHTT sau f  x1  x  3x3  max  x1  x  3x3   3x1  x  x3  15 x1 , x , x3  Giải - Nhập liệu toán vào R: > ham matran quanhe lp(“max”, ham, matr, qhe, vphai, compute.sens = TRUE)$duals   Trên hình xuất hiện: [1] 4.5 0.0 -3.5 0.0 -10.5 (tức là: phương án tối ưu toán đối ngẫu (4,5; 0), chênh lệch ràng buộc toán đối ngẫu -3,5; 0; -10,5) - Nếu toán yêu cầu thêm điều kiện biến nguyên (integer) lệnh gọi kết ta có thay đổi chút sau: + Gọi giá trị mục tiêu tối ưu: > lp(“max”, ham, matr, qhe, vphai, int.vec = 1:3)   Trên hình xuất hiện: Success: the objective function is 37 + Gọi phương án tối ưu toán: > lp(“max”, ham, matr, qhe, vphai, int.vec = 1:3)$solution  KỶ YẾU HỘI THẢO “CÔNG NGHỆ THÔNG TIN VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC – LẦN THỨ 2”  Trên hình xuất hiện: [1] + Gọi lời giải toán đối ngẫu: > lp(“max”, ham, matr, qhe, vphai, int.vec = 1:3, compute.sens = TRUE)$duals   Trên hình xuất hiện: [1] 0 2.2 Kết 2: Giải toán vận tải R 2.2.1 Cấu trúc toán vận tải Hàm mục tiêu m n f   cij xij  (max) i 1 j 1 Các ràng buộc n x j 1 ij  (, )ai ij  (, )b j m x i 1 Điều kiện ẩn số: xij  2.2.2 Nhập liệu toán vận tải vào R Trước giải toán vận tải ta cần gõ lệnh sau để mở thư viện lệnh cần dung > library(lpSolve)  Lúc phần mềm sẵn sàng cho việc giải toán Dữ liệu toán nhập vào lệnh theo thứ tự sau - Nhập liệu ma trận cước phí > cuoc mt_cuoc =”, “ qh_h =”, “ hs_h =”, “ qh_c =”, “ hs_c lp.transport(mt_cuoc, “type”, qh_h, hs_h, qh_c, hs_c)  + Gọi phương án tối ưu: > lp.transport(mt_cuoc, “type”, qh_h, hs_h, qh_c, hs_c)$solution  2.2.3 Ví dụ: Giải tốn vận tải với liệu cho bảng sau Bảng Bảng liệu ví dụ thu 130 160 120 140 170 20 18 22 25 200 15 25 30 15 180 45 30 40 35 phát Với yêu cầu: Các điểm phát hàng phát hết hàng, điểm thu hàng nhận đủ hàng (đây toán cân cung cầu) tổng chi phí vận chuyển nhỏ Giải - Nhập liệu ma trận cước phí >cuoc mt_cuoc qh_h hs_h qh_c hs_c lp.transport(mt_cuoc, ”min”, qh_h, hs_h, qh_c, hs_c)   Trên hình xuất hiện: Success: the objective function is 12140 (giá trị mục tiêu tối ưu 12140) + Gọi phương án tối ưu toán: > lp.transport(mt_cuoc, ”min”, qh_h, hs_h, qh_c, hs_c)$solution   Trên hình xuất hiện: [,1] [,2] [,3] [,4] [1,] 50 120 [2,] 80 0 120 [3,] 160 20 Đây ma trận phương án tối ưu tốn 2.3 Kết 3: Ngồi package để giải tốn QHTT, R cịn cung cấp số package để giải tốn quy hoạch tồn phương (package “quadprog”) toán quy hoạch phi tuyến (package “Rsolnp”) Bạn đọc quan tâm nghiên cứu tốn tìm hiểu việc giải bẳng R từ mục “Help” chương trình Chúng tơi hẹn dịp khác trình bày chi tiết vấn đề Bàn luận: 3.1 Bàn luận 1: Đến muốn khẳng định lại lần khả đa dạng R việc ứng dụng vào lĩnh vực khác nhau, đặc biệt vào toán ứng dụng Và ững dụng vào lĩnh vực cụ thể (như giải toán QHTT đây) R xây dựng nhiều package, package có thư viện lệnh phong phú, cho phép người dùng thỏa mãn nhiều nhu cầu giải vấn đề (Bảng ví dụ) GS Nguyễn Văn Tuấn (Garvan Institute of Medical Research, Sydney, Australia) người tiên phong việc phổ biến ứng dụng R vào Việt Nam Hiện nay, tổ chức nhóm nghiên cứu R cách tồn diện Trong khn khổ báo ngắn này, không hy vọng làm thỏa mãn nhiều nhu cầu ứng dụng R, quan tâm liên hệ trao đổi thêm theo địa cá nhận Và tới, nhóm nghiên cứu chúng tơi dự kiến xuất sách ứng dụng R vào toán ứng dụng, sách biên soạn xong phần nội dung 3.2 Bàn luận 2: Đối với việc giải tốn QHTT R có nhược điểm không mô tả đầy đủ bước giải thuật tốn đơn hình Điều khơng làm thỏa mãn nhu cầu ứng dụng R bạn sinh viên, với nhà nghiên cứu, người sử dụng R cơng việc,… nhược điểm khơng có vấn đề gì, việc mơ tả bước giải họ không cần thiết Kết luận: KỶ YẾU HỘI THẢO “CÔNG NGHỆ THÔNG TIN VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC – LẦN THỨ 2” Bài báo giới thiệu ứng dụng R để giải toán QHTT, ứng dụng chưa khai thác Việt Nam Chúng hy vọng qua giới thiệu này, tăng thêm động lực, tình cảm cho đã, quan tâm tới ứng dụng R Nhân đây, muốn gửi lời cảm ơn tới giảng viên tổ KHTN, Khoa Đại cương, Trường CĐ CNTT hữu nghị Việt – Hàn ủng hộ thời gian qua; gửi lời cảm ơn tới Ban tổ chức hội thảo tạo diễn đàn có ích cho người quan tâm tới ứng dụng CNTT chia sẻ nghiên cứu ... liệu to? ?n vận tải vào R Trước giải to? ?n vận tải ta cần gõ lệnh sau để mở thư viện lệnh cần dung > library(lpSolve)  Lúc phần mềm sẵn sàng cho việc giải to? ?n Dữ liệu to? ?n nhập vào lệnh theo thứ... lpSolve) vào chương trình R sử dụng chúng cho việc giải to? ?n QHTT > library(lpSolve)  Để xem danh sách lệnh thư viện ta dùng lệnh sau: > ls(“package:lpSolve”)  2.1 Kết 1: Giải to? ?n QHTT R 2.1.1... ma trận phương án tối ưu tốn 2.3 Kết 3: Ngồi package để giải tốn QHTT, R cịn cung cấp số package để giải to? ?n quy hoạch tồn phương (package “quadprog”) tốn quy hoạch phi tuyến (package “Rsolnp”)

Ngày đăng: 15/10/2022, 15:01

Hình ảnh liên quan

2.2.3. Ví dụ: Giải bài tốn vận tải với dữ liệu được cho bởi bảng sau - ỨNG DỤNG PHẦN mềm r GIẢI bài TOÁN QUY HOẠCH TUYẾN TÍNH APPLICATION OF r SOFTWARE TO SOLVE THE LINEAR PROGRAMMING PROBLEM

2.2.3..

Ví dụ: Giải bài tốn vận tải với dữ liệu được cho bởi bảng sau Xem tại trang 6 của tài liệu.

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

Tài liệu liên quan