摘 要:本文主要介紹了一款使用了總量?jī)?yōu)先預(yù)算算法的訂餐預(yù)算系統(tǒng)的開發(fā)過(guò)程及關(guān)鍵技術(shù)。該系統(tǒng)主要包括,數(shù)據(jù)導(dǎo)入、算法設(shè)置、預(yù)算、統(tǒng)計(jì)等主要功能。該系統(tǒng)主要為快速餐飲行業(yè)提供食物原材料準(zhǔn)備、初期加工等預(yù)算功能。
關(guān)鍵詞:訂餐預(yù)算系統(tǒng);android客戶端;預(yù)算因子
中圖分類號(hào):TP274;TP311 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言(Introduction)
預(yù)算系統(tǒng),是廣泛使用的一種程序設(shè)計(jì)功能,能夠通過(guò)歷史數(shù)據(jù),推測(cè)后面會(huì)出現(xiàn)的一系列預(yù)測(cè)的數(shù)據(jù),為實(shí)際生產(chǎn)、生活提供參考數(shù)據(jù),如實(shí)際工作中的預(yù)備原料。本文在訂餐系統(tǒng)中使用預(yù)算算法,提供對(duì)第二天,一直到第N天的預(yù)算。
2 系統(tǒng)功能設(shè)計(jì)(The system function design)
訂餐預(yù)算系統(tǒng)包括訂餐數(shù)據(jù)導(dǎo)入、系統(tǒng)設(shè)置、訂餐預(yù)算、數(shù)據(jù)匹配。
圖1 預(yù)算功能模塊圖
Fig.1 Ordering the budget function module chart
(1)訂餐數(shù)據(jù)導(dǎo)入
訂餐數(shù)據(jù)導(dǎo)入主要包括導(dǎo)入原有的銷售數(shù)據(jù),使用Excel格式導(dǎo)入,包括訂餐時(shí)間、要求送達(dá)時(shí)間、送達(dá)時(shí)間、菜品、數(shù)量、訂餐人、電話。其中訂餐時(shí)間、菜品、數(shù)量、電話號(hào)碼是必需的導(dǎo)入項(xiàng)目。其他的數(shù)據(jù),如果沒(méi)有可以缺少。數(shù)據(jù)詳盡可以提高預(yù)測(cè)出的數(shù)據(jù)的準(zhǔn)確性。
(2)數(shù)據(jù)設(shè)置
數(shù)據(jù)設(shè)置主要包括對(duì)導(dǎo)入數(shù)據(jù)的設(shè)置,哪些數(shù)據(jù)項(xiàng)是正確的,哪些數(shù)據(jù)項(xiàng)是估算值。并設(shè)置要預(yù)算的時(shí)間點(diǎn),要預(yù)算的準(zhǔn)確性的比例,要預(yù)算的菜品。要預(yù)算的數(shù)據(jù)項(xiàng)目,例如訂餐的菜品及數(shù)量,要送達(dá)的地點(diǎn)。
(3)訂餐預(yù)算
訂餐預(yù)算是根據(jù)歷史訂餐數(shù)據(jù),以及預(yù)算數(shù)據(jù)項(xiàng)目和實(shí)際訂餐數(shù)據(jù),進(jìn)行訂餐預(yù)算。
(4)數(shù)據(jù)匹配
數(shù)據(jù)匹配是把當(dāng)班數(shù)據(jù)輸入到系統(tǒng)中,以便對(duì)數(shù)據(jù)進(jìn)行更新。
3 系統(tǒng)環(huán)境搭建(System environment)
根據(jù)開發(fā)環(huán)境選擇需要的JDK[1],并安裝JDK,根據(jù)系統(tǒng)類型下載adt-bundle,解壓即可使用。下載Android SDK,選擇2.33以及4.0以上,分別對(duì)應(yīng)最低開發(fā)版本,對(duì)應(yīng)目標(biāo)版本。下載并安裝MySQL,下載并配置tomcat。新建一個(gè)Android新的工程項(xiàng)目,啟動(dòng)項(xiàng)目在手機(jī)上進(jìn)行測(cè)試[2]。
4 開發(fā)流程及關(guān)鍵技術(shù)(The process and key
technology development)
4.1 開發(fā)流程
系統(tǒng)開發(fā)的主要流程如圖2所示。
圖2 系統(tǒng)開發(fā)流程圖
Fig.2 System development flow chart
4.2 關(guān)鍵技術(shù)
當(dāng)導(dǎo)入基礎(chǔ)訂餐數(shù)據(jù)后,程序會(huì)根據(jù)基礎(chǔ)訂餐數(shù)據(jù),進(jìn)行篩選統(tǒng)計(jì),得到一系列的平均因子。這些平均因子是后面進(jìn)行預(yù)測(cè)算法的運(yùn)算基礎(chǔ)因子,包括訂餐人連續(xù)因子、訂餐地點(diǎn)連續(xù)因子、訂餐菜品連續(xù)因子、送餐耗時(shí)因子、制作耗時(shí)因子。
例如,訂餐人連續(xù)因子,把所有訂餐連續(xù)超過(guò)三天,設(shè)定為固定用戶,運(yùn)算這些固定用戶的平均訂餐連續(xù)值,即為訂餐人連續(xù)因子。使用連續(xù)因子去判斷訂餐用戶的訂餐數(shù)據(jù),分析得到預(yù)計(jì)訂餐的用戶。在判斷特殊日期的因子,例如判斷用戶有無(wú)出現(xiàn)連續(xù)性的間歇中斷。然后再次對(duì)所有用戶進(jìn)行一次篩選。同時(shí)還要加上注冊(cè)時(shí)間作為因?yàn)檫M(jìn)行判斷,權(quán)重越高可信度也越高。
當(dāng)通過(guò)用戶篩選結(jié)束后,要通過(guò)其他算法進(jìn)行統(tǒng)計(jì),例如送餐地點(diǎn)算法進(jìn)行判斷,減少因?yàn)槠渌藶橐蛩赜绊憯?shù)據(jù)。同一個(gè)送餐地點(diǎn),也作為一個(gè)數(shù)據(jù)進(jìn)行分析,統(tǒng)計(jì)連續(xù)訂餐的手機(jī)號(hào),如果連續(xù)反復(fù)出現(xiàn)幾個(gè)手機(jī)號(hào)碼可以認(rèn)為這是一個(gè)送餐點(diǎn)。如果這個(gè)數(shù)據(jù)沒(méi)有出現(xiàn)在預(yù)定數(shù)據(jù)內(nèi),那么可以加入。
訂餐菜品連續(xù)因子,對(duì)數(shù)據(jù)進(jìn)行判定,根據(jù)預(yù)測(cè)訂餐人,進(jìn)行判定歷史菜品,加權(quán)判定今天預(yù)定的菜品。
送餐耗時(shí)因子,把離店時(shí)間和送達(dá)時(shí)間進(jìn)行統(tǒng)計(jì),去掉耗時(shí)最短的10%數(shù)據(jù),耗時(shí)最長(zhǎng)的10%數(shù)據(jù)。
制作耗時(shí)因子,按照菜品名稱,把每一個(gè)菜品耗時(shí)進(jìn)行輸入,得到制作耗時(shí)因子。
通過(guò)上面的數(shù)據(jù)因子,預(yù)測(cè)第二天要制作的菜品和數(shù)量,以及制作的時(shí)間。使用預(yù)測(cè)訂餐數(shù)據(jù),預(yù)測(cè)訂餐時(shí)間,到達(dá)時(shí)間即提示用戶,預(yù)測(cè)訂餐的菜品。同時(shí)進(jìn)行實(shí)時(shí)的輸入訂餐信息,通過(guò)比對(duì)后,得到實(shí)時(shí)準(zhǔn)確率。
5 結(jié)論(Conclusion)
通過(guò)本系統(tǒng)提供訂餐業(yè)務(wù)的餐廳可以預(yù)測(cè)訂餐的菜品,時(shí)間,數(shù)量等關(guān)鍵數(shù)據(jù),根據(jù)耗時(shí)因子,得到應(yīng)該制作的時(shí)間點(diǎn)??梢愿雍侠淼陌才艜r(shí)間,減少送餐等待時(shí)間,提高菜品質(zhì)量,提高用戶滿意度,增加核心競(jìng)爭(zhēng)力。同時(shí)本系統(tǒng),也有很大需要人為因子,進(jìn)行干預(yù)才能不斷糾正數(shù)據(jù),提高數(shù)據(jù)準(zhǔn)確性。每個(gè)地區(qū),每個(gè)用戶群體都有個(gè)體性,要提高算法的廣適性。因?yàn)闉榱私鉀Q便利性采用的是在Android系統(tǒng)平臺(tái)開發(fā)的手機(jī)應(yīng)用。在數(shù)據(jù)計(jì)算上,數(shù)據(jù)安全性方面、數(shù)據(jù)輸入輸出和計(jì)算機(jī)相比有一定的難度。下一步需要加強(qiáng)服務(wù)器端開發(fā),可以方便的備份數(shù)據(jù)[3]。
參考文獻(xiàn)(References)
[1] 郭霖.第一行代碼Android[M].北京:人民郵電出版社,2014.
[2] 張明星,孫嬌.Android智能穿戴設(shè)備開發(fā)從入門到精通[M]. 北京:人民郵電中國(guó)鐵道出版社,2014.
[3] 李興華.Java核心技術(shù)精講[M].北京:清華大學(xué)出版社,2013.
作者簡(jiǎn)介:
顏世波(1982-),男,本科,助教.研究領(lǐng)域:軟件開發(fā).