摘要 本文通過對一個涉及到多時期、多供應商、多制造商、多分銷商、多零售商、多原材料和產品及相關業務組成的供應鏈模型進行基本建模并用Lingo實現,最后對一個具體的數值實例進行求解來驗證該模型可行性,讀者可以很方便地根據該實例,來創建適合自身實際情況的供應鏈模型,迅速完成管理中的計算任務。
關鍵詞 供應鏈管理 建模 Lingo 規劃
中圖分類號:F270.7 文獻標識碼:A
一、簡介
隨著市場全球化和競爭的進一步加劇,企業與企業之間的競爭逐漸轉化為供應鏈與供應鏈之間的競爭,誰能在采購、生產、分銷環節中采用更科學和優質的供應鏈管理規劃,誰就能更好的利用外界的優勢,降低成本、優化配置、提高自身競爭力。
Lingo軟件是美國Lindo公司推出的,用于一些線性和非線性方程組的求解,功能十分強大,是求解優化模型的不二選擇。該軟件提供了豐富的內部函數,編程方便且能保證快速的執行速度,不僅提供了與其他數據庫及軟件的數據接口,同時還支持與其它高級語言進行混合編程。
二、模型的提出
在實際應用中,為了更好的描述現實情況,本文考慮了一個完整的包含有2個供應商、2個工廠、2個配送點、3個銷售點的四級供應鏈模型(如:圖1)。從向供應商下訂單訂購原材料開始,最后到銷售給消費者結束,并假定工廠使用按訂單生產策略,不允許資源短缺,不考慮訂購數量折扣、運輸倉儲能力限制,運輸和生產周期為1,初始庫存均為0。
圖1 供應鏈結構流程圖
要對現實的供應鏈來進行建模并方便計算機演算,先要對各環節和對象進行定義和描述,在Lingo里允許把這些相聯系的對象聚合成集(sets),同時集還可以進行派生,以更加方便的描述現實中的復雜情形;借助于集,就可以用一個單一的、長的、簡明的復合公司表示一系列相似的約束,從而可以快速方便的表達規模較大的模型。表1列出了該供應鏈模型的原始集,其余的比如某供應商到某工廠的運輸單價等,都是通過這七個原始集派生而來(見表1)
接下來,則是考慮以上七個要素之間的業務關系。比如:向某供應商訂購的各原材料是多少,工廠安排多少生產計劃,某一時間向銷售點運輸多少產品,由于這些參數是幾個基本要素之間相關聯的業務范圍,于是可以根據以上七個原始集派生出各要素之間業務類型的派生集,由派生集的對象來描述供應鏈模型中決定變量和有關參數,比如某供應商向某工廠運輸某原材料的數量,可以由供應商、工廠、原材料這三個父集派生而來,為了方便描述和編程實現,索引也同樣沿用父集索引。
對模型的目標變量,模型參數進行歸納整理,是創建供應鏈模型及實現的重要環節,在任何一個實際系統里,初看往往會認為復雜得令人生畏,其實只要掌握了一定的技巧,化繁為簡,首先從最重要和基本的入手,才有可能進行下一步的建模和編程。在以上過程中,首先定義了該供應鏈模型的原始集,然后從原始集再進行派生,這樣就把整個模型里的對象和參數進行了有序的描述,同時在命名上遵循自己容易識別的規則,這樣不僅能減少錯誤的發生,而且在接下來的調試過程中可以節省很多時間。
三、模型的Lingo實現
(一)目標函數。
完成了以上變量和參數的定義后,接下來就涉及到供應鏈管理的目的了,針對不同行業,相對應的供應鏈模型目標可能會有不同,比如:有利潤最大化、成本最小化、有以滿足客戶需求為第一考慮因素,本文實例考慮的目標為:在滿足客戶需求的前提下,制定什么樣的訂購、運輸、生產計劃來使得總成本最小,明顯,系統總成本由如下八個部分組成:
總成本=原材料成本+生產成本+原材料運輸成本+工廠原材料倉儲成本+工廠產品倉儲成本+工廠到分銷點運輸成本+分銷點運輸成本+分銷點倉儲成本+分銷點到零售店運輸成本。
其中原材料成本是由單價乘以數量得來,考慮到Lingo本來就是為了方便用戶并提高建模效率,甚至可以省略公式的羅列,直接用Lingo語句來實現如下(第一行有索引參數,后七項沒有添加,這在Lingo環境中是等同的):