R 線性規劃教學與範例 - Office 指南

文章推薦指數: 80 %
投票人數:10人

使用R 的 lpSolve 與 lpSolveAPI 套件解決線性規劃問題,並提供實際的應用範例。

... 線性規劃(linear programming)是數學上的一種最佳化問題,以下我們直接透過範例 ... 跳至主要導覽跳至主要內容跳至主要資訊欄使用R的lpSolve與lpSolveAPI套件解決線性規劃問題,並提供實際的應用範例。

在日常生活中有許多的問題都可以使用線性規劃來尋求最好的解決方案,甚至在商業管理領域中,它也被大量應用在降低成本、提升產值與營收的策略上,而一般人沒有修過這門課程,不知道原來有那麼好用的工具,這裡我們將以實際而且常見的範例,介紹如何使用R解決線性規劃的問題。

生產褲子與外套問題 線性規劃(linearprogramming)是數學上的一種最佳化問題,以下我們直接透過範例來了解什麼是線性規劃問題。

假設今天有一個成衣的經銷商,要求工廠生產褲子與外套,這兩種產品都是使用棉與聚酯纖維來製作的,工廠內現有的原料中,棉有750m2,而聚酯纖維則有1000m2,生產褲子與外套所需要的原料用量如下: 褲子 外套 棉 1m2 1.5m2 聚酯纖維 2m2 1m2 每件褲子的價格是1100元,而外套則是800元,現在的問題就是工廠應該生產多少件的褲子,以及多少件的外套,才能讓總銷售金額達到最高呢? 像這種在多種選擇之間,尋找最佳組合的問題,就是一個典型的線性規劃問題。

數學條件式 若要解決這種問題,首先要把問題以數學的條件式寫出來。

假設我們要生產的褲子與外套的件數分別為x與y: x=生產的褲子件數 y=生產的外套件數 而由於原料有限,所以在生產的時候,使用的棉與聚酯纖維不可以超過現有的存量,因此就可以寫出兩條限制式: x+1.5y≤750 2x+y≤1000 另外生產的件數不可以是負的,所以再加上兩條限制式: x≥0 y≥0 而我們要做的事情就是在這些限制條件下,找到最好的x與y,讓銷售金額(目標函數)最高: 銷售金額(目標函數)=1100x+800y 使用R解線性規劃問題 若要使用R來解這種簡單的線性規劃問題,最簡單的方式就是使用lpSolve套件,使用前先安裝並載入之: #安裝lpSolve套件 install.packages("lpSolve") #載入lpSolve套件 library(lpSolve) 接著將上面寫好的數學條件式,依據lpSolve的格式輸入進來: #銷售金額(目標函數) #1100x+800y f.obj=0 #y>=0 f.con=",">=") f.rhs



請為這篇文章評分?