張光桃,蔣 然,梁 梁
(揚州職業(yè)大學(xué),江蘇 揚州 225009)
貪心算法在教輔教材經(jīng)營管理系統(tǒng)中的應(yīng)用
張光桃,蔣 然,梁 梁
(揚州職業(yè)大學(xué),江蘇 揚州 225009)
文章介紹了教輔教材經(jīng)營管理系統(tǒng)的設(shè)計與實現(xiàn)方法,以及貪心算法在處理具體業(yè)務(wù)過程中的合理使用。在確定各類教輔書存放位置時,綜合考慮了各類教輔書的盈利能力、庫存量和熱銷程度,建立數(shù)學(xué)模型,使用貪心算法的設(shè)計思路得到問題的最優(yōu)解,進(jìn)而為各類教輔書在倉庫的存放位置提供科學(xué)依據(jù)。
貪心算法;存放位置;管理;系統(tǒng)
隨著大數(shù)據(jù)時代的到來,復(fù)雜數(shù)據(jù)成為很多應(yīng)用系統(tǒng)開發(fā)者需要關(guān)注的問題,而且相關(guān)軟件的業(yè)務(wù)復(fù)雜程度也在提升,應(yīng)用系統(tǒng)數(shù)據(jù)量大并且相對復(fù)雜成為現(xiàn)實問題。在處理復(fù)雜數(shù)據(jù)時,為了提升數(shù)據(jù)處理速度,增強(qiáng)用戶體現(xiàn),就必須考慮處理問題的科學(xué)性和合理性,應(yīng)用系統(tǒng)開發(fā)者或者開發(fā)團(tuán)隊除了要設(shè)計出合理的關(guān)系型數(shù)據(jù)庫外,在表示端處理數(shù)據(jù)時還要考慮經(jīng)典算法的使用,合理地使用經(jīng)典算法可以既簡便又高效地解決復(fù)雜問題[1]。
本文在實現(xiàn)教輔教材銷售經(jīng)營系統(tǒng)的過程中充分考慮業(yè)務(wù)處理的科學(xué)性,綜合考慮各類教輔書的盈利能力、庫存量和熱銷程度,建立數(shù)學(xué)模型,使用貪心算法確定各類教輔書在倉庫的存放位置時,安排利潤能力相對強(qiáng)的、庫存量大的、熱銷的教輔書存放在離倉庫出口更近的地方,保證補(bǔ)貨更方便且減少了工作人員的搬運距離,提高工作人員的效率和倉庫的使用率。
1.1 系統(tǒng)需求分析
教輔教材銷售經(jīng)營系統(tǒng)軟件根據(jù)客戶提出的具體需要定制設(shè)計而成,系統(tǒng)主要完成訂單銷售與生產(chǎn)全過程,以及訂單退貨的流程管理。操作過程中涉及功能權(quán)限管理、財務(wù)管理和庫存管理。不同用戶類型對應(yīng)不同的操作權(quán)限。訂單和退貨的完成過程如圖1和圖2所示。
圖1 訂單完成過程
圖2 退貨完成過程
系統(tǒng)需要完成以下主要功能:(1)訂單導(dǎo)入與訂單添加;(2)各級的訂單審批;(3)信息統(tǒng)計;(4)產(chǎn)品價格管理;(5)財務(wù)管理;(6)庫存管理;(7)用戶與權(quán)限管理;(8)基本信息管理。
1.2 系統(tǒng)設(shè)計
為了便于團(tuán)隊開發(fā)和程序的擴(kuò)展性能,選擇使用三層架構(gòu)+MVC設(shè)計模式來開發(fā)系統(tǒng)。整個應(yīng)用系統(tǒng)在架構(gòu)上分為三層(表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層)[2],三層架構(gòu)有利于解決整個應(yīng)用程序各個業(yè)務(wù)操作過程中不同階段的代碼封裝問題,有利于程序員更加專注地處理某階段的業(yè)務(wù)邏輯[3]。
在三層架構(gòu)中,表示層負(fù)責(zé)處理頁面的顯示與用戶操作;數(shù)據(jù)訪問層則封裝了所有有關(guān)數(shù)據(jù)庫的操作,提供方法返回用戶需要的相應(yīng)數(shù)據(jù);而業(yè)務(wù)邏輯層則調(diào)用數(shù)據(jù)訪問層的方法獲取數(shù)據(jù),再根據(jù)業(yè)務(wù)需要進(jìn)行一些必要的業(yè)務(wù)處理,提供給表示層調(diào)用。三層架構(gòu)遵從了“高內(nèi)聚,低耦合”的框架設(shè)計思想[4]。
1.3 系統(tǒng)開發(fā)
依托河北衡水輝煌教育文化發(fā)展有限公司的業(yè)務(wù)支持和揚州國脈通信發(fā)展有限責(zé)任公司的技術(shù)支持,系統(tǒng)采用Microsoft Visual Studio 2010作為開發(fā)平臺,使用C#作為基礎(chǔ)語言,SQL Serv-er2008 R2作為后臺數(shù)據(jù)庫,進(jìn)行了系統(tǒng)的開發(fā)。本系統(tǒng)涉及到MVC模式開發(fā)技術(shù)、三層架構(gòu)設(shè)計技術(shù)、數(shù)據(jù)庫操作、代碼自動生成工具、自定義控件開發(fā)、LINQ技術(shù)、動態(tài)菜單技術(shù)、存儲過程、面向?qū)ο蟮燃夹g(shù)。本系統(tǒng)主頁面如圖3所示。
圖3 教輔教材銷售經(jīng)營系統(tǒng)的主頁面
2.1 貪心算法概述
貪心算法是指對于某個問題,在處理過程中的每一步都做出當(dāng)前最優(yōu)的一步,即不從整體上考慮最優(yōu)操作,只考慮當(dāng)前某一時刻的最優(yōu)解。貪心算法并非對任何問題都能得到整體的最優(yōu)解,只有當(dāng)每一步貪心選擇都具有無后效性,即每一步選擇的結(jié)果不會影響將來選擇的各個變量。滿足了無后效性,貪心算法每一步都選擇當(dāng)前時刻的最優(yōu)解,由每一步的局部最優(yōu)解構(gòu)成整個問題的最優(yōu)解,否則貪心算法只能是某一個問題的近似算法,無法得到最優(yōu)解。如果解決問題每一步的局部最優(yōu)解可以得到整個問題的最優(yōu)解,可以選擇使用貪心算法[5]。
2.2 貪心算法解題步驟
使用貪心算法解題可以分為以下4步:(1)將實際問題建立數(shù)學(xué)模型;(2)將整個問題分解為若干子問題;(3)針對每一子問題,求解得到該問題的最優(yōu)解;(4)將子問題局部最優(yōu)解進(jìn)行合并,還原為原問題的一個解。
在教輔教材經(jīng)營管理系統(tǒng)的庫存管理模塊中,需要科學(xué)合理地安排各類教輔書在倉庫的存儲位置。在確定教輔書儲存位置時,應(yīng)根據(jù)教輔書的類別、利潤能力、庫存量和熱銷程度,并結(jié)合倉庫保管場所的建筑結(jié)構(gòu)特點、容量、裝卸設(shè)備等條件,將倉儲庫房分為若干儲存區(qū)域,從而對貨物進(jìn)行分區(qū)分類存放,盡量方便庫存量大的、熱銷的、利潤能力強(qiáng)的教輔書出庫和入庫,減少工作人員的搬運距離,提高工作效率,從而使得倉儲管理更加科學(xué)合理。
3.1 建立數(shù)學(xué)模型
問題:假設(shè)系統(tǒng)中有N類教輔書,每種教輔書庫存量為SN(N取值0~N-1,為教輔書對應(yīng)的編號),利潤為PN,每本書庫存量KN,熱銷程度HN= KNmax,倉庫中有M個庫存位,到倉庫的出口距離為WM,求每個存放點SP存放的教輔書編號SPN。
3.2 采用貪心算法獲得局部最優(yōu)解
為了讓銷量更好,即存取更頻繁的庫存位更靠近倉庫出口,我們對每個庫存位進(jìn)行貪心搜索。對于搜索過程中某一時間對應(yīng)的庫存位,選擇存放當(dāng)前剩余教輔書中熱銷程度最高的一箱。
3.3 證明貪心算法正確性
無后效性:每次熱銷程度最高的教輔書選擇距離倉庫出口最近的倉庫位只與這一時刻的狀態(tài)有關(guān),這個選擇的結(jié)果不會影響將來選擇的各個變量。如果事先對每個倉庫位距離倉庫出口的距離進(jìn)行排序,則每一時刻進(jìn)行選擇的教輔書都對應(yīng)著當(dāng)前時刻距離倉庫出口最近的地方,因此,此時選擇熱銷程度最高的教輔書就可以得到最優(yōu)解,對于此問題,使用貪心算法可以得到最優(yōu)解。
3.4 求解過程
使用貪心算法安排教輔書存放位置過程步驟如下:
Step1:計算各類教輔書的利潤PN,各類教輔書最低庫存量KNmin,以及各類教輔書最高庫存量KNmax,將教輔書根據(jù)各自利潤降序排序,得到序列SN(N取值0~N-1),獲取各類教輔書的庫存量KN,定義一個最大利潤指針P=N-1。
Step2:將每個倉庫位距離倉庫出口的距離DN大小降序排序。得到序列DSN(N取值0~N-1)。
Step3:判斷此時是否存在未分配的倉庫位,如果不存在,分配完畢。
Step4:判斷此時的KP是否大于零,如果小于等于零,則將SP從序列中刪除,即P=P-1。
Step5:將此時正在分配的倉庫位的倉庫號DSP對應(yīng)存放教輔書SP。
Step6:重復(fù)Step3~5。
教輔教材經(jīng)營管理系統(tǒng)是相關(guān)企業(yè)的定制管理系統(tǒng),實現(xiàn)了訂貨、生產(chǎn)、退貨、財務(wù)管理、倉庫管理、用戶管理、信息統(tǒng)計等管理功能,實現(xiàn)了企業(yè)的信息化管理。在確定教輔書在倉庫中的存放位置時,綜合考慮各類教輔書的利潤能力、庫存量和熱銷程度因素,使用了貪心算法進(jìn)行迭代求解,科學(xué)合理地為各類教輔書確定了最優(yōu)的存放位置。
[1]姚菊菊.貪心算法的探討及其在船舶領(lǐng)域的應(yīng)用[J].造船技術(shù),2015(6):22-25,37.
[2]李玉榮.基于.NET的三層架構(gòu)模式分析及應(yīng)用[J].電腦編程技巧與維護(hù),2015(8):83.
[3]任廣震,侯進(jìn),王獻(xiàn).MVC模式在B/S結(jié)構(gòu)政務(wù)系統(tǒng)的應(yīng)用研究[J].計算機(jī)應(yīng)用與軟件,2014(8):54-58,74.
[4]趙偉,王志華,周兵.基于.NET技術(shù)和MVC的新架構(gòu)模式[J].計算機(jī)工程與設(shè)計,2012,33(7):2646-2651.
[5]Thomas H.Cormen,Charles E.Leiserson,Ronald L. Rivest,等.算法導(dǎo)論:第3版[M].殷建平,徐云,譯.北京:機(jī)械工業(yè)出版社,2012.
(責(zé)任編輯 楊荔晴)
The Discussion of Greedy Algorithm and Its Application In The Teaching Materials Sales Management System
ZHANG Guang-tao,JIANG Ran,LIANG Liang
(Yangzhou Polytechnic University,Yangzhou Jiangsu 225009,China)
ract:This paper introduces the design and implementation of teaching materials sales management system and the reasonable use of the greedy algorithm in the process of dealing with the specific business process.To de-termine the types of books stored position,considering the all kinds of books of profitability,inventory and sales level,establish mathematical model,using the greedy algorithm design ideas get the optimal solution,and then provide a scientific basis for all kinds of books in the warehouse storage location.
rds:greedy algorithm;storage location;management;system
TP301.6
A
1671-0142(2016)05-0035-03
張光桃(1980-),男,安徽天長人,講師,碩士,研究方向為計算機(jī)軟件技術(shù)與應(yīng)用.
江蘇省教育科學(xué)“十二五”規(guī)劃課題(D/2013/03/129,課題負(fù)責(zé)人:繆勇,張光桃).