尹聰春
[摘要] 非線性規(guī)劃是具有非線性約束條件或目標(biāo)函數(shù)的數(shù)學(xué)規(guī)劃,是運籌學(xué)的一個重要分支。非線性規(guī)劃是20世紀(jì)50年代才開始形成的一門新興學(xué)科。70年代又得到進(jìn)一步的發(fā)展。非線性規(guī)劃在工程、管理、經(jīng)濟(jì)、科研、軍事等方面都有廣泛的應(yīng)用,為最優(yōu)設(shè)計提供了有力的工具。本文主要介紹用Excel規(guī)劃求解工具制作的非線性規(guī)劃模型來解決經(jīng)濟(jì)管理中的產(chǎn)品組合問題。
[關(guān)鍵詞] 非線性規(guī)劃; 模型; 產(chǎn)品組合; 應(yīng)用
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 08. 065
[中圖分類號]F272[文獻(xiàn)標(biāo)識碼]A[文章編號]1673 - 0194(2012)08- 0096- 02
1非線性規(guī)劃數(shù)學(xué)模型
對實際規(guī)劃問題作定量分析,必須建立數(shù)學(xué)模型。建立數(shù)學(xué)模型首先要選定適當(dāng)?shù)哪繕?biāo)變量和決策變量,并建立起目標(biāo)變量與決策變量之間的函數(shù)關(guān)系,稱之為目標(biāo)函數(shù)。然后將各種限制條件加以抽象,得出決策變量應(yīng)滿足的一些等式或不等式,稱之為約束條件。非線性規(guī)劃問題的一般數(shù)學(xué)模型可表述為求未知量x1,x2,…,xn,使?jié)M足約束條件:
gi(x1,…,xn) ≥ 0 i = 1,…,m
hj(x1,…,xn) = 0j = 1,…,p
并使目標(biāo)函數(shù)f(x1,…,xn)達(dá)到最小值(或最大值)。其中:諸gi和諸hj都是定義在n維向量空間Rn的某子集D(定義域)上的實值函數(shù),且至少有一個是非線性函數(shù)。
上述模型可簡記為:
min f(x)
s.t. gi(x) ≥ 0 i = 1,…,m
hj(x) = 0 j = 1,…,p
其中x = (x1,…,xn)屬于定義域D,符號min表示“求最小值”,符號s.t.表示“受約束于”。
定義域D中滿足約束條件的點稱為問題的可行解。全體可行解所成的集合稱為問題的可行集。對于一個可行解x*,如果存在x*的一個鄰域,使目標(biāo)函數(shù)在x*處的值f(x*)優(yōu)于(指不大于或不小于)該鄰域中任何其他可行解處的函數(shù)值,則稱x*為問題的局部最優(yōu)解(簡稱局部解)。如果f(x*)優(yōu)于一切可行解處的目標(biāo)函數(shù)值,則稱x*為問題的整體最優(yōu)解(簡稱整體解)。
2關(guān)于Excel規(guī)劃求解
“規(guī)劃求解”是一組命令的組成部分,這些命令有時也稱作假設(shè)分析 (假設(shè)分析:該過程通過更改單元格中的值來查看這些更改對工作表中公式結(jié)果的影響。例如,更改分期支付表中的利率可以調(diào)整支付金額。)工具。借助“規(guī)劃求解”,可求得工作表上某個單元格(被稱為目標(biāo)單元格)中公式 (公式:單元格中的一系列值、單元格引用、名稱或運算符的組合,可生成新的值。公式總是以等號 (=) 開始。)的最優(yōu)值?!耙?guī)劃求解”將對直接或間接與目標(biāo)單元格中公式相關(guān)聯(lián)的一組單元格中的數(shù)值進(jìn)行調(diào)整,最終在目標(biāo)單元格公式中求得期望的結(jié)果?!耙?guī)劃求解”通過調(diào)整所指定的可更改的單元格(可變單元格)中的值,從目標(biāo)單元格公式中求得所需的結(jié)果。在創(chuàng)建模型過程中,可以對“規(guī)劃求解”模型中的可變單元格數(shù)值應(yīng)用約束條件 (約束條件:“規(guī)劃求解”中設(shè)置的限制條件??梢詫⒓s束條件應(yīng)用于可變單元格、目標(biāo)單元格或其他與目標(biāo)單元格直接或間接相關(guān)的單元格。),而且約束條件可以引用其他影響目標(biāo)單元格公式的單元格。
使用“規(guī)劃求解”可通過更改其他單元格來確定某個單元格的最大值或最小值。使用規(guī)劃求解的操作方法為:
在“工具”菜單上,單擊“規(guī)劃求解”。
如果“規(guī)劃求解”命令沒有出現(xiàn)在“工具”菜單中,則需要安裝“規(guī)劃求解”加載宏 (加載項:為 Microsoft Office 提供自定義命令或自定義功能的補(bǔ)充程序。)程序。操作方法:
在“工具”菜單上,單擊“加載宏”。
如果在“當(dāng)前加載宏”列表框中沒有所需加載宏 (加載項:為 Microsoft Office 提供自定義命令或自定義功能的補(bǔ)充程序。),請單擊“瀏覽”按鈕,再找到該加載宏。
在“當(dāng)前加載宏”框中,選中待裝載的加載宏旁邊的復(fù)選框,再單擊“確定”。
3案例資料
某公司生產(chǎn)和銷售甲乙兩種產(chǎn)品,兩種產(chǎn)品各生產(chǎn)一個單位需要工時為4和8,用電量5 kW和6 kW,需要原材料10 kg和5 kg。公司可提供的工時為320,可提供的用電量為260 kW,可提供的原材料為430 kg。兩種產(chǎn)品的單價與銷量之間存在負(fù)的線性關(guān)系,分別為p1=3 100 - 55q1, p2 = 3 350- 85q2 。當(dāng)原料用量≥320 kg時,供應(yīng)商提供的原料價格從180元降為160元。假設(shè)兩種產(chǎn)品各生產(chǎn)1個單位,總固定成本10 000元,試在Excel中建立產(chǎn)品組合非線性規(guī)劃模型,并且按如下要求操作:計算需要的工時、用電量、原材料和利潤;用規(guī)劃求解工具求解兩種產(chǎn)品的最優(yōu)生產(chǎn)量和總利潤最大值。并用控件表示出兩種產(chǎn)品產(chǎn)量不同組合情況下的利潤變化情況。
4模型建立
(1) 計算各項指標(biāo)
在SHEET 1工作表中將已知各項指標(biāo)填入相關(guān)單元格中,并進(jìn)行相關(guān)計算。如圖1所示。
B15 = C10 + D10 - C13 - C12 - D12。
(2) 進(jìn)行規(guī)劃求解
單擊“工具”菜單上的“規(guī)劃求解”,在彈出的 “規(guī)劃求解參數(shù)” 對話框中作如圖2的設(shè)置。
在“設(shè)置目標(biāo)單元格”框中單擊,然后選擇利潤單元格(單元格 C14),在“可變單元格”框中單擊,指向區(qū)域 C6:D6,該區(qū)域為兩種產(chǎn)品的產(chǎn)量。
添加約束:單擊“添加”按鈕,在“添加約束”對話框中,在標(biāo)記為“單元格引用位置”的框中單擊,選擇區(qū)域C6:D6,從對話框中部的列表中選擇“>=”,在標(biāo)記為“約束值”的框中輸入0;選擇區(qū)域E3:E5,從對話框中的列表中選擇“<=”,在標(biāo)記為“約束值”的框中單擊,選擇單元格區(qū)域F3:F5。在“添加約束”對話框中單擊“添加”,以輸入需求約束即可。
在“規(guī)劃求解選項”對話框中輸入所有可變單元格都為非負(fù)值的約束,通過單擊“規(guī)劃求解參數(shù)”對話框中的“選項”按鈕可打開該對話框。
選擇“采用線性模型”和“假定非負(fù)”選項,然后單擊“確定”。
注意:選擇“假定非負(fù)”選項可確保規(guī)劃求解只考慮每個可變單元格都采用非負(fù)值的可變單元格組合。
選擇“采用線性模型”的原因是產(chǎn)品組合問題是一種稱為線性模型的特殊規(guī)劃求解問題。
單擊“規(guī)劃求解選項”對話框中的“確定”后,返回到主“規(guī)劃求解”對話框,單擊“求解”按鈕即可,這樣,規(guī)劃求解會迅速找出最佳解決方案,如圖3所示。需要選擇“保存規(guī)劃求解解決方案”以將最佳解決方案值保留在電子表格中。
5添加控件
根據(jù)圖表向?qū)?,做一直方圖。打開“窗體”控件,添加兩個滾動條,一個與甲產(chǎn)品鏈接,一個與乙產(chǎn)品鏈接,其控件參數(shù)的設(shè)置最終結(jié)果如圖4所示。
6小結(jié)
利用Excel規(guī)劃求解工具不僅可以解決產(chǎn)品組合問題,還可以求解資金管理、運輸管理、選址規(guī)劃等。