|
機器之心整理 參與:杜夏德
作為優(yōu)化算法的基礎(chǔ),運籌學(xué)在第二次世界大戰(zhàn)期間因英美兩國配置資源的需求而發(fā)展起來。近些年,隨著數(shù)據(jù)量大幅度攀升等科技環(huán)境的變化,運籌學(xué)得以快速發(fā)展,并廣泛應(yīng)用于零售、金融、物流等行業(yè)。正如運籌學(xué)頂級專家葉蔭宇所說,運籌學(xué)的歷史比 AI 和機器學(xué)習(xí)更悠久,但 AI 與機器學(xué)習(xí)又為它提供了一種機會,很多頂層的東西都是要靠優(yōu)化,不管是學(xué)習(xí)還是剛才講到的決策問題,都要有 OR (運籌學(xué))的結(jié)合。 從葉蔭宇以《優(yōu)化算法的思想及應(yīng)用》為題的一次演講中,我們可以了解到運籌學(xué)如何應(yīng)用于物流選址及路徑優(yōu)化、庫存管理、投資組合優(yōu)化。以下是經(jīng)過編輯整理而成的演講內(nèi)容: 葉蔭宇,是斯坦福大學(xué)李國鼎工程講座教授(K. T. Li Chair Professor),優(yōu)化領(lǐng)域基石算法之一——內(nèi)點算法的奠基人之一,他曾獲得美國運籌與管理學(xué)會馮·諾依曼理論獎,也是迄今為止唯一獲得此獎的華人學(xué)者。目前,葉蔭宇擔(dān)任優(yōu)化軟件公司 MOSEK 科技顧問委員會主席、杉數(shù)科技的首席科學(xué)顧問。 1982 年,我剛到美國讀書,AI 非常熱,但那時候就要搞所謂的專家系統(tǒng) AI 空間,學(xué)的語言是 Lisp,數(shù)據(jù)也不多,很多東西沒法總結(jié),AI 就慢慢冷下去了。我比較喜歡數(shù)學(xué),就開始了運籌學(xué)的研究。 運籌學(xué)是一種研究優(yōu)化的學(xué)問,就是研究如何在實際生活中,把事情做到極值,找到最優(yōu)解,而不是簡單找一個可行的方案。 數(shù)學(xué)家歐拉說過,Nothing at all takes place in the Universe in which some rule of maximum or minimum does not appear(筆者譯:宇宙中,沒有最大值或最小值的事物是不存在的)。這種理論是基于自然形成的,也是在所謂的一個平衡,也是能量函數(shù)到了極值。 那時候還沒有計算機,數(shù)學(xué)不接地氣,無法落到實地,無法真正應(yīng)用到人們生活中,產(chǎn)生一些影響。于是數(shù)學(xué)家們就開始尋求落地的方案。也有一些其他的緊迫因素促使運籌學(xué)的誕生,二戰(zhàn)時,兩軍交戰(zhàn),需要研究盟軍配置,其中包括一些博弈問題。 1947 年,美國數(shù)學(xué)家 George Dantzig 提出線性優(yōu)化的單純形法,是優(yōu)化中最經(jīng)典的算法,具有里程碑意義。之后運用到經(jīng)濟(jì)學(xué)中后,運籌學(xué)得到快速發(fā)展,特別是計算機的高速發(fā)展,以前遇到結(jié)構(gòu)問題,可能要 1 小時,現(xiàn)在可能不到1秒就可以解出來,這里面有硬件的控制,也有算法的提高。運籌學(xué)的歷史比 AI 和機器學(xué)習(xí)要老,但是 AI 和機器學(xué)習(xí)又提供了一種機會,很多頂層的東西都是要靠優(yōu)化,不管是學(xué)習(xí)還是剛才講到的決策問題,都要有 OR (運籌學(xué))的結(jié)合。 整體來說,所謂優(yōu)化,是滿足一定的約束條件下,使某一個函數(shù)最大。怎么把一個問題變成這個優(yōu)化問題,就需要建模。一般是從建模到求解,再到?jīng)Q策,這就需要一套算法來求解。 在這個里面,把實際問題變成數(shù)學(xué)問題,變成優(yōu)化問題,然后來求解。什么叫大數(shù)據(jù),有很多不同的解釋。而數(shù)據(jù)大到一定程度后,就可以量化了,量化以后,我們可以用數(shù)學(xué)的方程、公式來描述它,然后變成一個量化的決策問題。 1982 年我去美國時 AI 很火,后來沉寂了,現(xiàn)在又紅起來。但是優(yōu)化一直都在那里,各行各業(yè)都需要它,在這點上,它像統(tǒng)計、數(shù)學(xué)。 在大數(shù)據(jù)時代的商務(wù)決策中,要用到計算機、信息學(xué),包括機器學(xué)習(xí),數(shù)據(jù)搜集,然后我們要通過機器學(xué)習(xí)做一些規(guī)律性分析,然后就是建模、決策。這里面需要有一些量化、需求管理、規(guī)律性分析,我覺得機器學(xué)習(xí)確實做的好。但是在決策中有一些很傳統(tǒng)的優(yōu)化模型和運籌學(xué)的模型。 舉幾個簡單的例子,為什么有些決策模型并不需要深刻的理解就可以得出來。 一、物流選址及路徑優(yōu)化 比如說選址問題,尋求一個區(qū)域內(nèi)最優(yōu)的倉庫,成本最少,每個庫建在什么地方,這里面要權(quán)衡很多問題,一次建設(shè)費多少,服務(wù)區(qū)域有多大,如果區(qū)域大了,運輸成本就高了,這里就是數(shù)學(xué)規(guī)劃的問題。 那么怎么選才好?以前,我把它寫成一個整數(shù)規(guī)劃,然后去算,有些算法,幾個月都算不出解來,但是客戶有很多需求都是有時限的?,F(xiàn)在把它看成是一張網(wǎng)絡(luò),就要把這個點放在上面,進(jìn)行隨時的調(diào)配,重新選址,這個時候我的算法就非常的快,然后就會有很多的近似算法。這里面的算法,選址的問題,我們在與客戶合作的過程中有很多這樣的問題。 另一個問題更復(fù)雜一點,選一個倉庫提供一個區(qū)域服務(wù),叫 hub 的選址。有些物品不是從倉庫發(fā)到某一個顧客上,而是要經(jīng)過中轉(zhuǎn)站,再到顧客上。那么這個中轉(zhuǎn)站怎么選才好。通常我們把選址的問題,叫作戰(zhàn)略性的決策,一旦選了以后,幾年都不會變。決策也分為戰(zhàn)略決策,戰(zhàn)術(shù)決策、operation 決策,而我這里談的是 operation 決策,我現(xiàn)在要送貨,送到這么多的點上,如何把貨都送出去,然后回到出發(fā)的地點,最終要使整個距離最小,這叫「旅行商問題」,也是很經(jīng)典的確定性問題。 在實際中,也叫車輛調(diào)度問題。當(dāng)然現(xiàn)實問題比這更復(fù)雜,因為可能有一輛車不能跑了,幾千上萬輛車,每輛車跑哪些地點,哪些區(qū)域,又怎么選址,還要考慮取貨和同時送貨,取貨必須要保證某一個時間點或者時間窗口。這是運籌學(xué)比較擅長的問題,要實時低解決這些問題。 比如我現(xiàn)在有 5 輛車,要服務(wù)這個區(qū)域。首先建立一個服務(wù)區(qū)的概念,怎么把這個大的區(qū)域分成 50 分點,每一個區(qū)域選擇一個分點,這叫「區(qū)域選擇」。在分這個區(qū)域的時候,我要知道每個區(qū)域的工作量都是多少,盡量分的均勻,要不然一個區(qū)域很大,跑兩天跑不完,一個小區(qū)域半天就跑完了。 我的一個學(xué)生在和杉數(shù)在一起研究,怎么把區(qū)域所有的工作量都分得一樣,每個給的這個點就是車的出發(fā)點,可以很快的劃分出來,在作一些路線規(guī)劃。 這張圖里面有 50 輛車,需要找路徑,這是一個實際問題。每一條街道都要跑,我在劃分這個區(qū)域的時候,每個區(qū)域里街道的總長度是基本上相似的。在跑這個區(qū)域的時候,怎么跑到最大,把所有的街道都跑一趟,這就是路徑問題,這是地圖公司需要考慮的。 大家肯定用過 GPS ,其中有兩個核心技術(shù),一個是衛(wèi)星定位,經(jīng)度緯度定位以后。剩下所有的地理信息位置,都是搜集過來的,但是街道的地理數(shù)據(jù)不斷在變,所以每次都要把街道的信息更新都要重新搜集進(jìn)來,派一輛車把每個街道跑一遍。這個時候要把城市的街道都跑一遍的話,不可能跑一輛車,可能需要 50 輛車。那么怎么劃分這個車輛的區(qū)域,以前是用郵政編碼來分,由于城市區(qū)域的改變,有些郵政編碼覆蓋的區(qū)域大好幾倍,這樣分就不合理,所以要根據(jù)瞬時情況進(jìn)行分析。如何判斷有效,比如原來要用 75 輛車現(xiàn)在 60 輛就夠了,原來用 2 天時間現(xiàn)在一天半就夠了,這個技術(shù),諾基亞在全世界 26 個國家使用。 我原來認(rèn)為我刨出來最后的路程最短,后來又提出一個要求,在排路徑的時候,盡量向右轉(zhuǎn)。因為左轉(zhuǎn)所要花的時間,比向右轉(zhuǎn)高出 5 到 10 倍,最后我們用運籌學(xué)的辦法把這個解決了。 再舉一個路徑優(yōu)化的問題,大家都在搞所謂的無人倉,有一些小車搬運載有貨物的托盤到空閑工作臺,然后小車搬運托盤從工作臺回到倉庫空儲位,這叫回庫,然后小車搬運空托盤從工作臺到托盤回收處,叫回收,這里面都是一些貨柜,怎么拖起來怎么用,就需要路徑規(guī)劃和協(xié)調(diào)。 在國內(nèi),研究機器人,研究的比較多的是提高每個機器人自身的能力,做的非常好。但是在很多問題上,缺少通盤調(diào)配和安排。單個機器人能力很強,但是在一個團(tuán)隊中時就不一定了。我們比較缺乏統(tǒng)籌的軟件決策系統(tǒng)。我們很注重個人能力的提高,但是期缺乏一種集體的統(tǒng)籌的決策開發(fā)。每個機器人都在瞎跑,這樣肯定不行,無人車也是。 很多公司都在考慮無人車的技術(shù)多強,但是其實最主要的問題是什么,反而是無人車之間的協(xié)調(diào)、調(diào)配和統(tǒng)一指揮。 比如說這是工作臺,某一個區(qū)域的貨來了以后,要進(jìn)行分擔(dān),這里面有很多問題,比如路徑問題。從設(shè)計上來說,是設(shè)計成單行線還是雙程線,如果設(shè)置單行線,跑的距離要長,碰撞的可能性就少一些,這里面都可以通過優(yōu)化來解決。比如杉數(shù)與京東 618 活動的物流倉統(tǒng)籌調(diào)配合作,其中的算法也都是算出來的。 這里面是三配,機器人怎么配到貨柜,怎么收檢這個站。目前的方法是用機器人用托盤拖這個貨柜,把整個的貨柜拖到旁邊的這個臺上,然后又把這個拿下來,再把托盤送回去。首先是機器人,把整個的貨柜拖起來,可能那個貨柜員就檢一個東西下來。那么為什么貨柜不動,讓貨柜員坐在機器身上然后去檢貨呢?因為這樣貨柜可以裝的更高了,空間利用率更高了。而且人坐在這個機器上,不僅可以前后移動,還可以升降貨柜,放的更高,運行過程中形成三位的倉庫而不是平面的倉庫,這樣我們就可以計算出來,貨的密度增加多少,倉庫的利用率可以增加多少。在中國,人力相對比較便宜,但是房子非常貴,這樣就能更加節(jié)省成本,但是整個也是靠產(chǎn)品運輸來優(yōu)化問題進(jìn)行求解。 工業(yè)界總是覺得我們需要深度學(xué)習(xí)、機器學(xué)習(xí),需要把預(yù)測的精度再提高 1%,卻忽略了測不準(zhǔn)的這個定理,精度到一定程度就不可能再提高了。所以在測不準(zhǔn)的情況下,在決策上是不是可以做點工作,在知道測不準(zhǔn),可能有不同狀況出現(xiàn)的情況下,決策是不是可以調(diào)整一下。比如說,可以保證我在期望值省時一些,但是我保證永遠(yuǎn)不會破產(chǎn),防備那些惡性大事件發(fā)生。所以這些模型在 OR 應(yīng)用到很多的。比如說今天給到這個送貨員的送貨任務(wù)有 10 單,我們做了一個輔助工具 PonyPlus ,可以幫助送貨員如果選擇送貨路徑。 二、庫存管理 這里面最典型的是庫存問題,就是典型的知道你測不準(zhǔn),我怎么能夠把局測做到最好,把庫存做到最好。以前早的時候還沒有深度學(xué)習(xí),比如你是小零售商,你進(jìn)貨進(jìn)多少,進(jìn)一個星期的貨,但是不知道這個星期有多少,多的有多的損失,少的有少的損失。所以這個時候運籌學(xué)就有一套方法來處理這個問題。 比如你是小零售商,一個星期要進(jìn)多少貨,進(jìn)多了,有多的損失,進(jìn)少了,有少的損失。 這個時候運籌學(xué)就有一套方法來處理這個問題。最近,美聯(lián)航因為機票賣多了,有人上了飛機后被拖下去。這是典型的不確定環(huán)境下的決策問題,飛機上座位是固定的 300 個,你事先只賣 300 張票,不會賣多,來的人都可以登記,問題是總有 5 %到 10 %的人,因為各種各樣的原因是不會來的。所以航空公司一般都會多賣一點。最好的情況是不來的人數(shù)正好是我多賣的人數(shù)。但是這個人數(shù)永遠(yuǎn)是測不準(zhǔn)的,也就出現(xiàn)了美聯(lián)航的這個問題。 這類問題也出現(xiàn)在很多電商中。通常周轉(zhuǎn)率在 29 天的,那么現(xiàn)在降 16.5%,庫存的金額大家也都知道零售商最怕的就是庫存周轉(zhuǎn)率太低,買了人家的東西自己又賣不出去,庫存金額降 19.2%,現(xiàn)貨率提升了,GMV 上升 1.9%,而周轉(zhuǎn)天數(shù)下降到 24.4 天。就是說我們主要是降低了這部分人力,在不損失這兩個標(biāo)準(zhǔn)的情況下。 還有一個辦法根據(jù)某一個電商的特點,叫閃購,出一份貨賣一個星期就不賣了,此時電商把那個星期的預(yù)測,需要備多少貨就決定下來。我們采取兩階段的策略,首先我有一個總的估量,但是我發(fā)貨的時候是發(fā)三天的貨,通過第一天的銷量我再決定追不追貨,本來一周的需求量是 100 件,我實際送到前沿倉庫的是 60 件,我是否需要把這 40 件補上去就看第一天的銷量,第一天的銷量對后續(xù)的預(yù)測度更高。 杉數(shù)的一個產(chǎn)品經(jīng)理設(shè)計了一個叫 StockGo 的智能庫存決策系統(tǒng)。我們覺得應(yīng)該給每一個中小電商,至少提供一個可能的工具,觀察庫存的這個周轉(zhuǎn),幫助他決策,這里面有很多的功能,比如說對目前庫存狀態(tài)的量化評估,對高精度的銷量預(yù)測,高精度的補貨策略,供應(yīng)鏈管理的智能化轉(zhuǎn)型,這里面包括很多機器學(xué)習(xí)和深度學(xué)習(xí)的工具,對你的庫存狀態(tài)進(jìn)行評估,精確到每一個 SKU,還有補貨策略,以及個性化的全云端的解決方案,也可以直接把數(shù)據(jù)傳送到杉數(shù),然后幫你進(jìn)行診脈。 總的目的是把這些 OR 的東西應(yīng)用到經(jīng)濟(jì)中。很多 ERP(企業(yè)資源應(yīng)用系統(tǒng))的公司用了這個系統(tǒng)后,通常周轉(zhuǎn)率會提高到 50%,資金及人力成本降低,電商自動化庫存能力也都提高,這樣一個小工具,能夠為廣大的小電商服務(wù)。你也可以自己調(diào)整,但是至少給了你一個可能性。 三、投資組合優(yōu)化 我最近還研究一些投資組合,也就是防范風(fēng)險。 美國有一位經(jīng)濟(jì)學(xué)家 Harry M. Markowitz ,他有一個著名的理論叫現(xiàn)代投資前沿理論。他把投資組合的問題寫成一個二代規(guī)劃,其目標(biāo)函數(shù)不是線性函數(shù),而是二次函數(shù),所有的約束也都是線性的,如何最快的解這個問題解?這個時候我們就有很多的問題,那么這個模型中為什么出現(xiàn)了二次函數(shù)?在統(tǒng)計中,二次的X的平方通常描述的是變化量,通常需要波動不太大,這就是簡單的這個二次函數(shù),實際上要解的也就是二次規(guī)劃,常見的軟件Barra、Axioma、ITG、Mosek。 現(xiàn)在,華爾街搞風(fēng)險控制的都是用二次模型,用的求解器也就使用的 Mosek 。那么在交易過程當(dāng)中,你的算法你的求解器比別人家快一些,我個人認(rèn)為高頻交易的競賽也就是算法速度的競賽。我知道國內(nèi)就有用到過這樣的模型,自己解需要解 10 秒鐘的時間。從 10 秒到 0.04 秒,這里面有算法的模型。 FICO( FICO 信用分是由美國個人消費信用評估公司開發(fā)出的一種個人信用評級法)也是二次規(guī)劃的問題,很多很多大數(shù)據(jù)公司,越來越重視優(yōu)化。美國最早的大數(shù)據(jù)公司就是產(chǎn)生 FICO 的一家公司,國內(nèi)是叫征信打分,最早的是一家公司把個人所有的信息收集起來給這個人的信譽打一個分。到美國租房要擔(dān)保,首先就是看這個 FICO 分。 這個公司后來做的很好,大家都用他的 FICO 。包括在網(wǎng)上查一查這個征信也都要交錢,這是美國很早的大數(shù)據(jù)公司,收集很多公司對每個人也都有打分。 運通公司是一個純信用卡公司,實際上是一個擔(dān)保公司。我總跟人家講運通公司是合法的高利貸公司,利率確實比較高。那么他的核心技術(shù)就是防范風(fēng)險,希望你消費但又希望你不要還錢而且希望你還錢不要還得太快,但是又不希望你永遠(yuǎn)不還。運通公司有一個專門的團(tuán)隊從事相關(guān)工作。 我當(dāng)時團(tuán)隊幫運通公司搞了一個怎么追債軟件,很多是基于算法的。國內(nèi)公司做這種 AI 軟件的非常熱。中國的文化也比較適合。 為什么?因為在中國,數(shù)據(jù)公開是比較自由的,像美國大公司數(shù)據(jù)絕對不會給你的,所以我覺得這種公開自由為 AI 開辟了很多前途。 但是中國公司在發(fā)展過程中忽略了算法的力量,他們通常是以問題為根本,找了一些參考資料,在開源軟件中找一個算法進(jìn)行試一試。這是要花非常大的這個功夫,確實是要耐得住寂寞,但是要用人家的開源軟件,人家不給源代碼,就永遠(yuǎn)會被牽著鼻子走。我知道其實他們很需要線性規(guī)劃或者說其他的運營規(guī)劃。但是你要買別家公司的,出于安全考慮也不太妥當(dāng)。 現(xiàn)在有很多公司比如 CPLEX ,Mosek ,還有些大學(xué),不光是做實際應(yīng)用,也培養(yǎng)自己的算法開發(fā),這樣就比較有核心技術(shù)了。真正的成為技術(shù)公司而不是咨詢公司。所以投資要耐得住寂寞,要有核心的技術(shù)。 未來,AI、深度學(xué)習(xí)和機器學(xué)習(xí)提供了很多的支撐,模型規(guī)模也飛速增長,需要超大規(guī)模的優(yōu)化算法。以前我認(rèn)為就要搞出個萬能的算法,解所有的線性規(guī)劃都要解得快,但是我后來反觀看 AI 和人的思維并非是通用的,他是非常定制的,我可以什么方法對某一類方法用的好就用那個方法,不是追求某一個統(tǒng)一的算法,或者類別法。反而是比較定制化的,用中國化來講比較實用主義一些。不一定追求理論上的完美,有一個統(tǒng)一的算法,所以這點上,我覺得反過來,AI 對運籌學(xué)會有很大的促進(jìn),什么問題需要什么樣的算法,本身需要學(xué)習(xí)的過程。 還有一個問題,我們以前比較重視凸劃,但是大量的問題是非凸規(guī)劃?,F(xiàn)在需要考慮集群化,軟硬件結(jié)合,如何利用 GPU 實現(xiàn)并行運算,包括應(yīng)用在智慧供應(yīng)鏈、智能金融、健康管理等領(lǐng)域。比如掛號系統(tǒng),有很多很多的問題能不能采取更好的方法,這個方法在 OR中叫排序。 總的來說,我一直在研究運籌學(xué)和優(yōu)化。從 1982 年到現(xiàn)在,大半輩子看到學(xué)術(shù)研究的起伏變化。我原來比較重視理論,很多問題都是寫文章,證明一些東西,也小有成就,但是人到年紀(jì)大的時候會覺得最大的利益還是對一般人生活產(chǎn)生一些影響。不光是有一定的學(xué)術(shù)造詣,把自己的學(xué)術(shù)成果轉(zhuǎn)化成技術(shù),對人的基本生活產(chǎn)生影響,這才是 OR 的本質(zhì),OR 是一個接地氣的科學(xué),是一個落地的科學(xué),怎么落地,需要經(jīng)過我們的試驗,像深度學(xué)習(xí)、機器學(xué)習(xí)這些技術(shù)也確實對物流業(yè)產(chǎn)生一些影響。我希望通過我們的努力,促使中國的企業(yè),能從一個比較粗狂的形式進(jìn)一步拓展為依賴于大數(shù)據(jù)、國際技術(shù)來進(jìn)行決策的環(huán)境里面。 轉(zhuǎn)自:機器之心 |
|
|