干货丨工业大数据深度挖掘应用与技术实现
[导读] 本讲座选自清华经管学院经研95级校友朱喻先生于2016年9月21日在“技术·前沿”系列讲座上所做的题为《工业大数据深度挖掘应用与技术实现》的演讲。
工业大数据 我一开始接触的时候也比较模糊,大数据这个概念已经有了很久了,很长一段时间我也思索不清楚商业大数据,我现在做的东西究竟跟大数据有什么关系?我们回忆一下商业大数据,从BAT开始,把一件商品摆在这个地方,把另外一个商品摆在旁边的位置上,其中一个商品热销,发现另外一个商品也跟着热销。这不是通过肉眼观察得到的,是通过后台数据找出的关联性从而发现的。可以把有关联性的两个商品连带去卖,捆绑销售,可以提高销售量。这是最简单的商业大数据。后来把大数据扩展了,应用到很多方面,工业大数据里面也有相关应用,这样的一种关联分析的手法是很传统的,比如说在统计分析里面的聚类分析等都可以做这个,我不否认还有更高深的贝叶斯算法可以做更深入的分析。
但是工业的情况要复杂得多,不同的工业品之间没有相互关联的手段,人与人之间是通过手机连接的,每个人的手机是自己投资的。集装箱和集装箱之间不可能给自己投资联系,所以我们要投入物联网,先联系起来, 物联网 又需要大的投资,所以为什么大数据领域在工业领域应用的稍微迟滞一些?因为投资比较大。
我现在做的,我们把它叫大规模的优化计算和生产实时调度,主要是两个,一个是优化,一个是实时。什么是最优呢?成本最少、时间最短、速度最快。效率最高这个是比较模糊的,时间最短就已经是达到效率最高了,这是速率的问题,基本从运筹学的角度是一个带有目标的,并且带有很多约束条件的优化问题。在座的如果是在经管学院毕业的,或者原来就是学运筹学的就知道,带有约束条件的最优化问题,应用的很普遍。以前我们在学校里学这些东西时都是停留在课本上,真正到 大数据分析 的时候我也在想这些东西跟大数据有什么关系?今天讲一下,除了商业大数据关联分析的手段以外,我们用运筹学的方法在海量的数据当中找什么样的应用线索?
这种最优的问题可以用到很多的领域,比如说:物流、制造业、港口、芯片、军事指挥等。芯片是什么意思?每个芯片上,比如一个立方米的芯片能够集成多少三极管、二极管、电感、电容和电阻,10万个?20万个?这20万个一排列组合所有方案是多少个?基本是天文数字,数都数不过来,在天文数字海量空间里怎么能够找出它的广角连接线路是最短的、能耗是最低的、相互之间干扰是最小的。这就是芯片设计的问题。
今天主要讲的分成三个行业:物流行业、港口集装箱调度(生产调度范围)、电力调度(把电能在电网当中运输的过程)。通过这三个行业我们讲一讲,在工业大数据里面的“最优概念”怎么用?这是从应用层面,另外从技术层面上再分析一下,究竟要做这种大规模的计算要用到哪些技术手段?
物流优化,搞的第一个课题是给中石油做的成本优化,这是整个集团公司的层面。中石油有30-40家炼化厂、460多个油库,分布在全国各地,油品100多种,各位看到加油站里的油品97、92、95等就那么十几种,实际上远远止这么多,有很多专用的油,有给航空公司的煤油,还有坦克用的油,我们说跟台湾打仗,说现在开车省油,省下来的油坦克也没有办法用。100多种油品是专项运作,末端售油点8万多个,其中有2.4万个加油站,这是中石油的情况,中石化更多,据说有8万多个加油站。这些数字简单一乘起来,从哪个炼油厂送哪一种油到哪一个油库,经过什么样的运输方式送到哪个加油站或是哪个最末端的售油点,算出成本是最低的,每天都要做这种派送计划。分两个层面,从炼油厂到油库这是第一次调运,所有大型运油公司都是这样做,再从油库里面运出来送到加油站或者末端售油点,这是第二次配送,这两次配送之间有很多关系,一乘起来至少是有10的9次方种情况。
怎么做优化?我们目标就是成本最低,首先看成本发生在什么地方?石油有四种运输方式,水陆、公路、铁路、海运,这四种运输方式都去调研了,首先去调研了西北公司的管道局,全中国所有的成品油管道都是中石油铺建的,主要由两个大的干线管道,从西北兰州到郑州到常州到长沙,前前后后2000多公里,还有从东北大庆到锦州到郑州差不多又有2000多公里,是“Y字”形的。还有其他的,比如从昆明到广州的,为什么从兰州那边过来?现在国家看作是一个石油进出盒子,原油进来的点是新疆、东北、昆明,还有海上的青岛港,海上进来的油以后就地解决了,山东有很多炼厂。石油管道就是那几个。
各位可能没想过这种问题,100多种油品只有这两条管道怎么运呢?一般是把油打进去以后分段运输,前面打进去是柴油,后面顶进去汽油,再后面顶进去煤油,在管道里是混着的。以前在这个管道当中两段油之间还加一个球,这个球就跟着油往前滚,滚到一定的程度以后把球放出来再把油卸出来,但是球不可能跟管道贴的很紧,要不然滚不动,还是有分析的,这样会发生混油,这样一段必须检测,什么时候油质变浑浊或者是结束了,这块放出来,重新回到出口炼厂回炉重炼,后来连球都不用了,干脆就混,这个油从这一段打到那一段,必须得清楚的知道哪一段是混油、哪一段是纯净的油,这样才知道回流那一段的油重新炼,它也是成本。管道不是平的,从西北到东北到海南,上山下坡都有,上山的时候要加压,下山的时候要控制产生负压,海拔比较高气温下降,还要加温,有的时候还要减温。管道在这里面控制技术含量是很高的。可以想像,假如你这个企业在广州,在管道里要订300吨柴油,你订的油是从兰州打过来的300吨柴油吗?不是的,是就近流出来的柴油给你的,有一段油从兰州打进去之后可能三个月才到达广州,这基本就是全世界最大的成品油运输管道。光是管道这一块就有一个优化的问题,一段的柴油究竟多长是最好的?所有的订单量都可以满足,混油段占比越小越好吗?不一定,万一在广州那段要定制大量柴油结果你留出来的都是汽油,这个怎么办?这个长度要根据订单、运输量、管道运营成本计算出合理的长度,这个计算量还是非常大的,因为它从一头到另一头要三个多月出来,中间分无数段,管道还有支线、不同出口等,非常的复杂。
海路,主要在国家的东南地区,基本是从北边大连港、青岛港把油直接打到油罐里去,用船拉出来,然后再往上海、广州、海南岛这些地方运,船上又分了很多舱位,不同舱位装不同的油品,这里有一个问题,用多大的船?配置什么样的舱?拉这个油使得一年下来海运成本是最小的?这也是比较大的问题。我刚才说的管道,收集它的所有数据还是相对容易的,在管道上设置专门的计量器就可以去取这个数据,现在讲中国制造2025战略的时候,很多传感器数据采集系统到家才可以做这个事情,我干的这个事,数据采集都不到根本没办法做,如果靠人工抄表去报就很麻烦了。但是船装完油以后怎么测量是什么状态?现在是人跑到船头去测量吃水再到船尾去测量吃水,要测两次,空船的时候测一次,满的时候再测一次,这样拿一个手持的设备再输入,这算是自动化,如果做不到,计算就很困难,因为是完全靠人的。即使是拿手抄表也是半自动的行为,能做到全自动的行为吗?也可以,就是这个船靠岸的时候,跟这个船丝丝入扣的两端要有一个计量器,计算吃水的高差,这个别说中国,连西方的码头都做不到。所以这个半自动也是可以解决的办法。手持设备也得防火,不能出电磁火花有炸船的可能,这种我们都制造不了。这里面还有一个问题,我们船底总有底舱抽不出来,这个不知道归谁了,总归有剩的,船老板可以让你这个计量员在船尾和船头少报一点点,空出来底舱油的油。这个主要是这样。
铁路,现在我们在高铁上都看不到油罐车了,之前坐火车还能看到油罐车,其中有很多中石油专用的油罐车,有各种各样的号,它拉到铁路编组站(音)去装油,比如说一列是40节,铁路编组站(音)能容纳20节,就得分两次进去,这20节进去一定能把油装出来吗?总有1、2节是装不到油的,为什么?长度不一样,装油口是固定长度的,只有跟装油的口间距正好的时候才可以全部装上油,停好的时候鹤位(入油口)对才能灌到油罐里去,如果有2个车是不一样的,所以会出空罐,这个要识别,要知道在一趟列车128节当中找出哪个是空罐来是很不容易的,计量非常重要。整个这一列车到站的时候怎么办?说能不能装所扫描器扫描出来?这个也许是可以的,但是到现在没有应用程,是靠人为的一个个扫车,扫到车的号码然后再去计,看里面油表的指示器,扫一遍才知道哪个是空的哪个是灌满的。这个特别费劲。这个在后面集装箱的时候也会讲,各位知道有RFID吗?说这个可以解决扫车的问题,可以在铁轨旁边30厘米或者50厘米之外安装一个RFID读卡器,在车上装RFID卡,原来说这个卡一个1块多钱,现在据说便宜的是1毛钱以下,但是这有一个问题,是容易脱落的,油罐车从长都是从西北经历不一样的气候过来,容易脱落,到现在为止RFID也没用起来,有些集装箱上可能用到了这个,但是箱子跟油罐车不一样,箱子本身跟底盘是脱离的,就算RFID能用,在轨道底下一进编组站一扫,车速小于30公里一小时就能扫,但是扫的是底盘不是上面的箱子,所以这个采集非常重要。现在像铁路、油罐车、集装箱数据采集都是很大的难题,目前为止还只能用人工扫车这种半自动化的方式。铁路上中石油自备的油罐车4万多个,还要再租用铁路上的4万多个,总共有8万多个油罐车为它服务。它是雇铁路的油罐车更划算还是自己买更划算?算完以后就知道,实际上是雇的更划算,但是不能轻易把4万多个自备车裁掉,为什么?因为铁老大太横了,有时候跟它要车,连中石油面子都不给,它按照自己的去配,所以必须要有自己的油罐车,这块成本就很高,它自己的油罐车利用率不高,应该大幅度裁减自备车,但是实际当中不可能这样,如果真的是有急需要调动的长距离用铁路输送油,没有自备车,靠铁路的根本指望不上。
公路,这个运输更复杂。刚才说的三种基本是从炼厂到油库,一次调运主要是通过水陆、管道、铁路。汽车主要是作为二次配送用的(从油库送到加油站),配这个车就有一个问题,派什么车?有多少车型?每一个油库派出去的车大概分多少点?不知道大家有没有学过这个东西?
左上角的第一个图是TSP问题(见PPT),旅行商问题(音),小黄色的圆圈代表一个油库,派一个车转一圈,每个点都是一个加油站,派出去每个油都送完了。这是单库单车的问题,转出去一圈折现是不唯一的,TSP这里要找到什么呢?找所有转这个圈里面加在一起路程最短的是哪几个?这个我们普通就是用肉眼全画一遍才知道,这是启发式的,等干完一遍才知道哪个是最好的。它可选非常多的时候还能每个都算一遍吗?不可能,所以有人研究这个问题。这个研究的历史很久了,大家稍微查一查关于TSP的研究,很多年前就有。
稍微复杂一点的是VRP问题(见PPT),一个库有多个车,把车都放出去,每一个车转一小圈,所有可能的圈加起来,哪个组合是最小的?我后来才知道,这些问题很多人都研究过。中石油目前用公路送油的方式比这个还要简单,就是一辆车从油库出去以后给一个加油站全灌满油就可以了,还没这个图里最简单的复杂。它有好几万辆车,460多个油库,8万多个售油点,这个在这里怎么找,这就比较复杂了。一开始我觉得这个问题完全没头脑,找了各个学校里面应用数学系、运筹学系、计算数学系、浙大数学系,据说国家最有名的数学家是邱成桐,是浙大的院士,是国家数学理论界的一面旗帜,找到他们系,找到之后人家给我回答,说你这属于应用级的问题,我们是搞纯数学的,帮不了你忙。后来找南大,据说南开大学数学系也很厉害,找南开大学的应用数学系,它们说这个问题也解决不了,是属于应用的问题。最后又找到清华的计算数学系,打电话,说只做过2000到5000变量的,这个上亿变量的也不知道能帮多少忙。到最后只能我们自己解决。我们遇到的问题就是算法的问题比较复杂。
中石油是单库、单车转出去,一个车从一个油库拉出去以后送完油是不是就空着回来了?返空率的问题,这是所有物流当中非常头疼的问题,很多公司都会想,怎么才能降低返空率呢?能不能说在加油站把什么油再拉回有库?没有这样的。国外壳牌石油是怎么做的呢?把一辆车分好几个舱,这个舱拉93号油,那个舱拉0号柴油,再有一个舱拉90号柴油,转圈给好几个加油站配问题,能稍微解决返空的问题,但是不能彻底解决,因为卸一次就多一点,到最后回程的时候一定是全空的。返空的问题不是业务形态造成的,是环境造成的。比如说营口港,营口港的目标是想超过大连港,成为东北的第一大港。它的目标很宏大,但是营口港上次我去的时候,我本来想给它解决港口的集装箱调度问题,它说调度不是问题,是港口以外的集装箱卡车每次都是拉着东西来空着就回去了,要解决这个问题,后来我研究发现这个问题解决不了,为什么?营口港是个单向港口,下海的物资要比上岸物资多,背靠的还是鞍钢的东西,这样下海的东西多上岸的少,必须是单程返空,有9000多辆卡车,拉过去以后回来不能装吗?这个没办法。大连不一样,它是东北大的门户,所以返空没有那么大,但是营口不行。
再说一下油罐车返空的问题,单库单车是TSP问题,单库多车是VRP问题。
看右图(见PPT),考虑更大问题的时候,给国美电器做物流配送的时候,中石油有8万多个末端受有点,国美集团峰值订单量单日是50万到60万,现在去国美集团买一个电视机下订单给一个地址就要在承诺的时候送到,现在可以做到,这个计算量要比中石油大很多了,当时计算中石油量的时候觉得这是天量的计算,后来计算国美集团发现这个更大。它就不是单库单点运送,2吨的厢式火车出去拉满东西,平均一天要转13个点,全国有2000多个仓库,还有前沿库和中心仓库之分。前沿库是热销品,热销品有一定周期,销过一定周期就不热销了,不热销就撤回中心仓库,某一个热销品断货还要从前沿仓库调配,还有单日配送最大单量,50万到60万,意味着每天要把这些东西送到50万到60万个家里去。这里有一个问题,怎么让这个成本最小?国美集团是第五大电商,全国有很多点,我们做全国配送方案的时候必须要把全国区域划分出来。中石油也划分,全国有35个分子公司,但是我们觉得划分这个问题给后面并行计算带来非常大的麻烦,所以给中石油做计算的时候就没有划分,采用的是粒子群和蚁群这种去划分,到国美电器发现,让一只蚂蚁爬完50万到60万个点也不是很现实,这时候就变成LRP的问题了,L代表的是位置的意思,首先要做位置分区,把位置划分成子空间,然后再转化,当划分子空间的时候就会出现边界问题,这是非常难处理的问题,划分了三个子空间,一个红色线里面框出来的黑点就是便捷问题,某一个仓库配的站点到黑点,送走了之后,这个黑点是不是真的适合仓库配呢?不见得,也许是适合对面的仓库配,可以使得中间的时间最短,这个复杂了,数据量开始大了,问题也开始复杂了。
最高形式的物流,这个图是LRP的闭环问题,车出去以后转一圈还是要回去的,后面还有一个开环LRP问题(见PPT),像神州租车一样,可以异地还车,在上海租的车可以在杭州还,免得回跑,开环的问题更加复杂,一定程度上可以解决返空的问题,但是又不能完全解决,而且又导致了车辆在不同库之间有一个分配的问题,处理不好会导致某一个库某一天晚上堆了好多车,其他的库就缺车。这还要考虑第二天或者随后几天里面你的车不能出现严重的不均匀,这个问题就越来越复杂,由于复杂度增加,计算量也逐渐增加,这个问题的难度就会越来越大。单日订单量超过50万到60万,这个已经很大了,后面还有更大的,
烟草局给我提的这个要求,全国35家子公司,烟草是国家专卖的,意味着烟草是国家专门派车送到每一个售烟的地方,全国多少个卖烟的地方?满大街都是,一共580万个,基本上三天就要轮换一遍,卖完了就要送货,580万除以3,单日订单量最大190万,比国美又大了很多倍。这个数据量比它大两倍是不是计算量也要大两倍呢?不是这样的,这个计算量就要大出好几个数量级。这个问题我们也基本上解决了,但是烟草局提了一个非常苛刻的要求,刚才我说的那里面还不包含实时性的要求。像中石油配油,一天要配掉计算单元只要给出一天的计算结果就可以了,算2小时、3小时,只要半夜算出来就可以了。国美集团一天三送,它是承诺三天之内必须送达,我只要把三天以后的配送方案算出来就够了,国美集团提一个要求,热销商品和滞销品在前沿仓库和中心仓库不断倒,这个是实时的,但是这个6个小时就可以了,但是烟草局说必须10分钟给我一次,因为车一旦跑上公路就会碰到路况非常复杂的情况,提出了实时性的问题,烟草车一旦出去以后受到严密的监控,不允许随便改变路线,因为一改变路线如果不汇报,后面就可能认为你是在偷烟或者在干嘛,这就是国家专卖。这个怎么解决?对实时性要求非常高,我们还救助于百度地图,参与的几方都认为这是属于国家级的课题,这个解决不了,要求地图必须是实时的,现在实时的地图只有百度地图可以做,你们是不是在出去玩的时候经常用高德导航、百度导航,觉得这两个是一样的,实际上全世界能够做到实时地图的只有百度这一家,它实时到什么程度?前两天特别注意了,开着车到红绿灯前面等着那一段路段看起来是红色的,属于严重堵塞,红灯变成绿灯一开动,这段路就变成黄色的一般性拥堵了,这个怎么做到的?这个我也不知道。我今天上午还在百度开会,我问他们怎么做到的,你们没在路上装传感器,路上那么多车难道都是你百度的人吗?他们说不是,有很多人拿这个挣钱,定期汇报路线、公路状况,汇报多少次给多少钱,有的人一个月挣一万多块钱。这个路况的实时只有百度能做到。还有一次有个人跟我讲,说那个地图公交站移到马路斜对面去了,突然一天发现移到那边去了,他就发现五天以后就上百度地图了,谷歌都做不到,谷歌也没那么大的网络,它虽然全世界都铺网了,但是做不到实时,国外的人工多贵?百度在美国雇一个人弄实时地图,这个成本是很高的,但是在中国相对就低很多。这个问题说明什么?这就是中国人口红利。中石油怎么解决这个问题?它用费率来计算油库到加油站,什么是费率呢?它历史上算了一下这个油库到加油站中间烧了多少油费了多少人工,所有都算进去,给出一个固定的费率值,通过费率计算费用成本,这是一种折中的办法,避免了非要依赖电子地图或者实际的公里运行数统计运输费用。你也可以说公里运输数可以到油罐车上抄表就可以了,这又变成了人为的行为,不是自动化的行为,除非在上面加传感器发回来,这个成本很高,现在不可能这样。
烟草局提出一个要求,必须要用实际配送公里的里程数计算配送成本,非常高的要求。前两天以温州地区4万多个卖烟的商户作为试点做了一项测算,在座的大部分各位都是学计算机专业的,都知道迪杰斯特拉算法,这个忘了可以查一下书。有一个前提,在任何网络上求任何两点之间的最短距离必须首先知道这个网络上所有两两之间点的距离,如果有网格上有100个点,这个要算多少次?基本上全算完应该是100×100,一个倒三角区,再除以2,温州地区一共有4万多个点,就算三天轮换一次每天也要算1.3万多个点,1.3万个点之间两两计算距离就是1.3万×1.3万,1个亿多次的两两级计算量,后来问百度地图,能算吗?说能算,有公开的地图接口,后来查了一下,在网站上公开的数据每天计算的数据是多少呢?是50次,这跟我们要求的要计算1亿多次的计算量差别太大了,这还只是温州地区的4万多个点。所以跟它们谈这个问题,说这个东西得上报,汇报到百度的高级领导去才行,这个区汇报吧,能不能把结果放开,说这个计算量太大了,现在百度全国每天支撑的最大峰值两两之间点的计算量只有3亿次,不可能把现在100多台机器资源全部倾斜给烟草局做这个事,后来我们回去想办法,能不能压缩一下计算效率,真的需要计算这么大吗?地图上任何一个点只需要计算周围的点跟它之间的距离就可以了,离得很远的点认为无穷大就可以了,这样可以把计算空间压缩,比如原来1万个点,两两计算需要1亿次或者5000万次,现在只计算10%,这里会大幅度压缩计算量,我们在算法上也做了很多改进,这种算法之前都没有这种方法,很艰难,前后折腾了四五个月。后来发现这个还是不行,就得用更加深入的手段去筛选。即便用10%的计算量,从5000万次压缩到500万次,就算百度现在的服务器、计算能力已经够支撑这个需求了,但是它要求每10分钟算一次,这期间占用大量服务器资源,百度其他业务都会受影响,所以我们这个时候必须得想办法,必须做到第一次计算完以后下次计算量不需要那么大,当实时道路发生变化或者商户发生变化,只进行差异化的计算,这时候第二次计算量就会大幅度缩减。这个说起来容易,也许在座有开发底层代码的,道路发生变化ID号有可能不变,但是计算两两之间距离的时候并不知道哪个发生变化,连百度自己都不知道,这怎么办?这是个非常难的问题,后来也解决了。我跟国外回来一些华人的教授、创业人士聊起这个问题,他们非常感叹,说这个问题在美国碰不到,在其他国家也碰不到,中国的市场确实是很大的,中国的人口规模大,使得国家的活力非常好。如果有人去美国、欧洲玩,喜欢自己开车,下机场租一个车回来还车,车里给你的GPS数据非常准,五年以后再去发现跟五年前的GPS地图没有什么变化,因为社会非常稳定。不会提出像烟草局的要求,烟草局为什么提出这个要求?比如它用的是ArcGis买的地理信息系统,再用一个离线地图数据,半年更新一次,更新期间道路就会发生很大的变化,指定的方向开出去发现一段路没了,在里面反映不出来,这就没有办法做,这就需要迅速调整。这说明国家活力很大,天天都在变,每天都在修路。
集装箱调度是有其特点,全世界大的港口都在中国,昨天还看了最新的数据,上海港稳居第一,深圳港、广州港、天津港、宁波舟山港,全世界十大港口里7个都在中国。可以理解,我们国家是GDP第二大国,基本上接近超过日本三倍了,同时又是制造业大国,这样国家会有大量物资进出,导致港口非常繁忙。美国就是搞金融业,它的制造业除了把军工留下来其他全部弄到国外去了,整个国家进出物资很少。大连港一把手跟我讲,说前两天去洛杉矶港口查,本来想去那儿取经,发现那儿还不如我们,每天业务量太小了,把我们这儿的集装箱港口做了全世界没有哪个港口做不了,很壮观,青岛港的集装箱码头光是岸边桥式起重机,放眼看去,1万多个集装箱大船排队装卸货,有人拉着我到起重机下面转了一圈太震撼了。上海一年快接近4000万吨的集装箱吞吐量,每天都有9万到10万只集装箱在港口进进出出,这就涉及到集装箱调度的问题。调度目标是什么?中石油也好、国美集团就是成本最低,烟草局是要求实时性强,但是最终还是跟成本挂钩。所有优化问题最终都是要跟成本挂钩,不跟成本挂钩的话优化也没有意义。集装箱就有一个重要的问题,它是多目标的决策问题,比如一天要吞吐4万只到5万只箱,一共耗多少电和油,成本是很重要的。吞吐量不能下去,港口之间是有竞争关系的,比如青岛港和上海港有非常强烈的竞争关系,宁波舟山港跟上海港之间更是如此。所以还得要保证吞吐量,每个港口都有其固定的大客户,比如说全世界各种大型的轮船公司、运输公司都到这儿来卸,只要这个船过来就是优先级客户,优先靠岸,到装卸最好的码头去,来了以后它就有流水了。这些集装箱系统是怎么样的呢?能做到全自动化调度吗?做不到,但是可以做到无人码头,一开始我去港口调研之前事先查这些资料,发现很多港口都已经做到这个了,这很厉害了,码头看到动的东西都是钢和铁,但是看不到人。无人码头跟全自动化码头还是不一样,无人码头是把人弄到屋里去了,拿着对讲机讲,说哪个码头需要集卡车来调度,青岛港、洋山港、厦门港都已经完成无人码头,把人弄到屋子里去拿对讲机讲确实是这样的。什么是智能码头呢?集装箱每做一次导换设备的操作都有信号传到中控室,让中控室决定下一次接替它的是什么,这是智能的。比如说码头的岸边桥式起重机,下面这个是厂内桥式起重机,中间的是集卡车,这些设备都要通过无线设备跟中控室连起来,上面做的任何操作都可以汇报给中控室,这些车辆能不能用GPS监控起来?可以的,但是有一个问题,这个卡车开到岸桥底下GPS就失效了,很多岸桥是用电驱动的,周围干扰特别强,所以收不到信号,用GPS监控根本不可能,信号收不了就不知道它的位置和集装箱的位置,也不知道操作了什么,在码头要解决这些位置的问题要用一些特殊的手段,有一种方法是打上信号桩,这个信号桩发出红外射线或者是什么码,车开过去就知道刚才开过的车是什么号,这是一个简易的解决办法。
调度的问题,在保证吞吐量的情况下,这个船有卸船和装船计划,卸和装必须在72小时之内完成,全世界最大的集装箱船容量是1.9万只,这个装卸基本要3天3夜不停装,一般一个船到一个港口不能只装或者只卸,一定是装卸混合操作的,这涉及到非常复杂的问题,这个船不能可一边卸,因为卸着卸着就船就歪了,也不能卸着箱子下面集卡车没来就要等着,这个问题就在于,有的时候车由于各种交通问题或者是发生异常情况,车开过来半天进不去,拥堵在那边,一旦这样码头吞吐量就下来了,在码头作业是非常繁忙的,中国更是如此,吞吐量是最重要的,不惜代价,不管多少电、多少油也要把箱子在指定的时间完成。还有这么大一只船在港里多呆一个小时多花多少钱,为什么VIP客户一定要保证,船多呆一个小时就要多花好几十万,所以必须在指定的时间内把所有作业完成,青岛港4万到5万只箱子,上海港10万只箱子,是分成不同的码头。这个调度必须是智能化和实时的,是亚秒级或者秒级的,比如在堆场里某一条路上卡车和叉车发生了矛盾,必须得马上给出决定,是谁让谁都要做出决定,这个在发生之前就要告诉它前面有在作业的车,必须要减速。
集装箱的问题,青岛港的堆场容量是10万到20万只,上海港40、50万只,还有很多空箱也委托堆在某个码头里面,集装箱在全世界范围内流动,今天可能在青岛、明天在洛杉矶、后天在希腊,全世界集装箱必须有一个标识号,就是集装箱箱号,全国没有用RFID来识别,用它识别箱号有一个好处,这个岸桥抓集装箱的爪子下面如果有一个RFID卡,接一个读卡器,一抓就知道箱子的号,这是非常可靠的。不可靠的是卡容易脱落,这个集装箱过来不知道有没有从箱子上面脱落下来,一旦脱落要没有其他的识别手段,这个箱子就完全识别不了了,所以目前为止最可靠的方法还只能是用OCR的识别,照一下就能够识别出来号,每一个机械设备的公司都有一个通信器,照完了之后上面有一个号码,中控室问它是不是抓到了这个号,它就确认,这还是半自动的,这是可靠的,能够保证箱子进来以后不会丢。铁路那么大的网络里面,经常发生一个油罐车两三个月找不到,在这么大铁路网里面找一个丢失的油罐车,基本上像大海捞针一样。集装箱也是这样,堆场里面30万个,万一丢了怎么找?真的没法找,没有办法一个个人爬箱子,堆场里面集装箱有的堆5层有的堆8层,这取决于有没有台风,有台风就堆5层,没有的就堆8层,在这么大的堆场里面没有办法找一个集装箱。只有识别手段都好了才可以做调度,这个调度后面就是要通过算法、人工智能,人工智能用在什么地方?说一个垛向(音)的问题,这个能随便放吗?不能随便放,如果随便放会造成翻箱,翻箱率是港口重要的指标。垛向(音)就要看在哪个位置上,放下去以后看将来翻箱率有多大,这个得经过长期的学习,看垛(音)在哪个位置才能影响后面的翻箱率低。后面才是计算,秒级的要求,任何相邻两秒之间每一辆级卡车在什么地方才能预测下一个位置在什么地方,人工智能在这里面最要命的一个问题,调度算法做得不够好,刚一个指令调过去,下一个指令就回去了,再下一个指令又过去了,但是人工不会发生,人工智能不能将错就错,要时间窗口都算好了,像下围棋以后,七步以后是怎样的,才能保证七步之内走得都不错,避免来回调动。
堆场管理,堆场计算量非常大,它还有一个特殊目标。一个大的地方,大家把箱子堆上去,是先放在一个角落堆还是先散着堆?这是现在人常想的问题。如果集中在某一个地区去堆放,会造成这个点上出现热点,这样后面的厂桥就会频繁操作,能耗就会远远高于其他的厂桥。像我们计算机一样,内存经常整理,操作系统不能容忍有大量的碎片空间,一旦发现就会主动进行整理,这跟集装箱主动翻箱作业是非常像的,但是计算机是为了腾出大量的连续空间,但是在堆场里面不能这样,一旦出现某个地区有很多的箱子操作,这个地方就会出现热点,热点不但是说这个岸桥工作负荷太大,也会集卡车在这里拥堵,在堆场里面要让所有对方的箱子是相对均匀的分布在里面,特别是堆场的容量超过40%到50%,甚至接近70%到80%的时候,这时候要让它分散,这不光在集装箱调度里面,很多生产调度里也一样。比如说制造业,这个里面八排,每排8个机床,一共64台,每台机床加工的东西都不一样,用的刀具不一样,物料从进去到出来走的工艺路径都不一样,这里面的调度有一个重要的目标,让所有的机床都以平均强度工作,尽可能在车间分散进行,这有什么好处?刀具磨损不会特别严重,不会有一个机床24小时不停转周围机床闲着,还有就是一台机床不停在转,它是需要上料的,就会造成上的料堆在机床周围,整个车间的效率都会下降。不光在集装箱调度要考虑均衡的问题,在制造业里亦是如此。
电力行业,中国的电网是全世界最大的电网,发电成分非常复杂,2014发电量和用电量都超过了美国。
电网分了几个环节,发电方、输电方、配电方、供电方,调度主要是发生在发电、输电、配电,供电基本就到最后用户端了。国家的电力结构,火电75%,水电20%,剩下5%是其他(风电、太阳能、核电),这就是雾霾为什么这么严重的原因,火电占比比较高。据说到2030年我们要把火电的结构调整到40%以下,火电是不是全没了更好?这肯定不是。风电和太阳能发电还是依赖火电作为调峰后备电源,如果没有火电作为支撑,风电跟太阳能发电很难维系。
电力的调度是什么意思?石油调度的是一车一车的油,集装箱调度的是一个一个箱子,电力调度的是什么?电网之间的电是很难存储的,现在是用电池存储起来,问题是没那么大的电池,能存的只是小的,像风电会局部存一些,大的骨干电网没有存储能力,发出来的电必须马上用掉,否则会产生电压过高的问题,首先要调度的是发电机运转的过程,当用电量增大的时候要提高发电机发电的能力,比如说水电站一共四台机组,低峰的时候用2台,高峰的时候用4台,在电力输出过程中得知道成本是发生在什么地方?这里有一个重要的概念,电力分成两大功率,有功功率、无功功率,比如电灯是多少瓦的,那边发出来多少瓦,这个灯泡用了多少,那边发出来多余的去哪了。
无功功率是为了建立电网当中的各种电感和电容,要建立电场,一个线圈做出来会产生磁力,所以这个线圈需要功率,给它以后真实用的有功功率就要少了,电网里要调动无功功率的比例,要尽可能把无功功率降低,把有功功率提高,看发出来的功率是视在功率,视在功率和有功功率、无功功率之间是一个三角形的关系,视在功率的平方等于有功功率的平方加上无功功率的平方,无功功率那么多要压缩,里面还要解决别的问题。输电和配电有什么区别?输电是电压发生的升压和降压,配电是电压没有发生变化,比如把550千伏的电压降到220伏再配电,配电和输电的过程当中都有损耗,这些损耗都直接影响成本,无功功率也用,不管你用铝制线路也好还是铜制线路也好,电阻发热有损耗,这个损耗是比较弱的,哪些损耗是比较大的?像谐波处理、低频振荡,这些都要用额外的功率处理。什么是谐波?升高要变压器、降压还要变压器,变压器当中有线圈,这是非线性的,当它饱和的时候会产生谐波,这是在电网当中非常头疼的一个问题,谐波这个是从声学来的,小提琴放在最细琴弦的时候一拉,若即若离的时候会产生高出8度来音来,这是小提琴琴弦整数倍振荡频率发出的音,这个是谐波,高等数学里面说,任何一个很复杂的波形都可以分成正弦波的整数倍,谐波是怎么产生的?一个线圈通电的时候会产生磁场,加大电流的时候这个磁场饱和不可能太强,当产生饱和的时候就产生谐波了,谐波大就会造成变压器烧了,处理谐波就会损耗功率。最简单的方法是滤波,把杂波滤掉,不管它怎么产生的,只要滤掉就发生能量损失,把这些里面所有能量损失都要计量出来。
最近喊得很凶的是季风的问题,大家看过风力发电看到很多风车,很多风车都不转,因为电网不能接纳它,风来就转了没有就不转,是不可靠的电源,这靠谁调解呢?火电,火电是最可控的电源,水电是其次。风来的时候火电厂有些机组就要停,风没的时候火电厂机组就要转以弥补风电不足的问题,这让火电厂很不爽,为什么给你当配角,我本来是发电的主力,结果要给风力当配角,风电通常是远离骨干电网,大风刮来的地区都是荒无人烟的地方,得把那些电发出来之后长距离运送到骨干网,还有并网的问题,升压、逆变的问题,风网的并网难题是世界性的,国外也没有解决,我们国家又是全世界最大的电网,全世界最大的风力发电网也在,所以这个矛盾相当突出,这个调度非常困难,首先就是要采集所有电力数据才能知道哪些地区的用户缺电?哪些地区发电机处于过饱和状态?从而使发电机停下。还有以前没有的问题,远距离传输的电一般都是交流电,500千伏,现在都到1000千伏以上的。现在高压直流输电很多技术已经突破了,结果交直流混合在电网里面越来越多,一旦产生直流就跟交流之间有并网的问题,直流还有升压的问题,把直流电弄成直流电好弄,如果再转会成交流电就比较麻烦,还得变频、解调等,所以交直流一混合起来额外的损失都发生了,首先要能计量,还能去做调度。
(数学模型见PPT、约束条件见PPT)
做优化调度有三个要素,先把数学模型建起来,然后确定这些算法,最后用并行计算加快速度。数学模型并不复杂,特别是线性模型,最关键是要把业务调研清楚,把所有的都找出来放在加减号两边,算法是这里面最头疼的问题,用什么样的算法才能试图解决这个问题?选择比努力更重要,最后才是并行计算来加快速度,需要用很多加速手段,比如说集群、GPU加速等。
蚁群算法,左边是蚂蚁窝,右边是食物,蚂蚁出来碰到食物了,不同的蚂蚁走不同的路径,过三个小时以后回来发现,所有蚂蚁都走了相对短的路径,蚂蚁是没有智能的,但是蚂蚁群体形成了智能的基准,绝大多数情况下,一堆蚂蚁并没有走上下绕弯的路,上下绕弯的路都有蚂蚁曾经走过,根据什么选择中间相对比较短的路呢?它不是最短的,但是相对是比较短的,是根据气味,每个蚂蚁前面走的气味留下的,蚂蚁根据这个发现,追着前面那个蚂蚁的气味走过去,留下气味最多的那条路聚集的蚂蚁越来越多,这是群体智能算法,这种算法有一个天然的可并行计算,这些蚂蚁都是独立工作的,不像单车行从一个点一点一点找。
这是粒子群算法,这上面画了几个小白圈,每个圈的移动方向都是不一样的,大致来说都是沿着这个目标去的,这是模拟的一群鸟,当它在天空中飞的时候头鸟发现了一块食物、水源地,整个鸟群会从相对短的路飞过去,红色的小圈代表鸟群的重心,沿着蓝色相对短的一条路飞过去,但是它是整个粒子群当中群体效应的结果,每个都做一个随机的运动,最后形成了一个重心飞过去。现在所有算法都是通过这个解决的。
以上是我今天跟大家分享的。谢谢各位。
下面进入精彩的Q&A环节。
提问:最大规模的优化算法当中,不知道实际应用和做学术是否有区别,我们在写一篇论文的时候,之前一些老师说精确算法比较好一点,有数学上的严格证明,也有的老师风格不太一样,有的老师跟我说过,他不太推荐用蚁群算法这种东西,用启发式的算法都比蚁群算法都要好,这是学术时间不同还是有什么点在里面?
朱喻: 精确算法确实好,每次模拟数据进行测算的时候都碰到一个问题,我测算出来的这个结果跟什么比较是正确的?最好是用精确算法找到唯一的解,找到唯一解就可以对比,问题是在几百亿变量情况下跑出来太慢了,有可能一天一夜都跑不出来,我也不知道是什么原因跑不出来,这样在日常工作当中是没法忍受的,单车行是有先天弱点。你们老师为什么说精确算法比较好呢,你们经常研究的变量是2000到5000个,这时候跑出来半个小时就完了,很容易做比对,可以试一试把这个矩阵变成1亿变量的时候单纯形(音)就没法用了。所以我就借用启发式的算法。当业务非常复杂的时候,单纯形(音)有一个非常严格的要求,矩阵上下要对齐,这个对齐在整个计算过程当中是非常大的挑战,有时候由于对不齐程序根本跑不下去,没有解。但是用启发式算法、智能算法不存在这个问题,甚至连数学模型都不用,把它弄到目标函数里面去就可以了,是各有利弊的。
我们现在能从网上找的蚁群算法、粒子算法也没有超过5000万(音)的,这些我们都是通过实践一点一点跑出来的,但是单纯形(音)分解出来不同的结构,每一种特定的结构优特定不同的并行计算方法,这导致并行计算必须是针对大规模单纯形(音)问题分解的方式,这种方式是五花八门的,不能统一,这也是为什么我们不能用这个。
提问:军事指挥有没有可能出现相关的解决方案。
朱喻: 目前没有,前一段时间我跟过忙大学的一个人聊,现在搞两个,一个是做兵期推演,一个是做联合作战指挥的,比如上海港3600万或者4000万的标准箱的吞吐量,一天就8万、9万集装箱,你知道我们国家有多少辆军车、多少辆坦克飞机、多少个兵种,光是38集团军就有1.8万人,这个排列组合远远大于港口集装箱,难度非常大,不敢说我能做,有机会参与我会想想这个问题。但是用的方法是一样的。谢谢。
提问:看你的PPT里面介绍故障预测,这个因为时间关系没有讲,我比较感兴趣,故障预测普适性比较强,很多地方都没有用到,有没有解决方案?人工智能分训练(音)和检测,训练(音)好检测的时候能不能做到亚秒级,比较短时间看到这个结果?
朱喻:故障预测是我们在给神华集团的华能电厂做项目的时候,锅炉的诊断,烧煤发电,有两大部分,一部分电是由发电机发出来的,但是是由汽轮机推动的,汽轮机靠锅炉烧煤产生的蒸汽推,每个锅炉非常复杂,里面有各种口,煤粉进去,温度检测,有进风、尾风,尾风出来还要再循环、交换热等,整个锅炉每天运营下来产生TB级的数据,这种数据隐藏了大量的故障信息在里面,当发生故障的时候这个锅炉就会紊乱,像把脉一样,得病人跟正常人脉搏是不一样的,得病锅炉的数据跟正常的是不一样的,必须在海量数据当中识别出来这个异常的情况,因为它产生了海量数据,每隔几毫秒产生数据,一天产生大量的数据,从这些数据当中学习出来故障模式,人工神经网络简单来说就是设计一个一个函数,有一堆输入和一堆输出,所有历史打进去这个函数,输出是按照你预期的输出是输出,这个设计是对的。当输出是某一种不正常的现象,这个就可以预判,这个锅炉马上就会出什么问题。这个能不能做到亚秒级?这个必须要做到毫秒级,既然锅炉是以毫秒级产生数据的,最终诊断它的数据也是毫秒级,因为人工神经网络它也是天然可并行的一种结构,每一种神经源都可以放在一台结构上,做的计算集群足够大,完全可以做到毫秒级。
提问:你在物流、集装箱、电力调度三个方面的优化给出了非常精彩的解释。目前您正在领导大规模智能优化计算机平台的研发,该技术在商业化运作的现状以及未来的前景,请您谈一下。
朱喻: 说到商业化,实际上是客户对我干的这个事怎么看?如果有很多客户说你干的这个事太好了,给我也干一票,这就是我的商业化很成功。我用到这些技术是1998年在经管学院都学过的,到计算机系学了很多人工智能和并行计算的理论,我都认为我这辈子没什么机会能用了,2014年的时候突然有这个机会,当年学的全能用上了,这些东西表面看是很高大上的,但是客户能买账吗?为什么能用这个呢?从文思海辉出来以后,觉得普通信息化不是什么很诱人的东西了,我跟青岛港一把手谈的时候,一个朋友介绍我去,谈完以后他跟我说,你跟我谈建信息化的事根本就没有机会,但是你跟我谈这个事的话可以好好谈一谈,好几个点碰到一起,国家在推“中国智造2025”战略,转型也是国家重要的任务,如果制造业不转型或转型的不成功,这个国家是没有希望的。如果转型伴随着制造业衰落所有转型的行动都是瞎折腾,有德国和美国制造业的挤压,如果转型不成功,我们国家转型是不成功的,国家的大力推动下,加上经济不景气,当你开源无所作为的时候就只能节流了,不能扩大销售收入就看怎么压低成本,这是每个企业的一把手面临的严峻课题,严峻到什么程度?不把成本压下去有可能就下课,这是上面的任务,怎么把成本压下去?又是伴随者转型的整个过程,原来信息化和自动化融合在一起,这个必须要解决,这个解决不了的话所有计算都是无源之水,两化融合所有数据打通才能做计算,计算完了才能够知道这个企业的成本痛点在哪里,才能够下手去改。这就是目前做这个事的市场场景。我跟青岛港的一把手到目前为止连一顿饭都没吃过,这个让我以前很难想象,弄普通的信息化项目,不要吃多少饭花多少钱就把事干了,需求特别强烈。
提问:你提到制造业转型非常重要,很好奇,你之前有没有做过一些跟制造业相关的案例?看之前主要集中于物流和能源行业,你觉得制造业这方面问题的解决和其他两个领域有什么特点和不同呢?
朱喻: 很遗憾,23号我去东方电器德阳汽轮机厂调研,那是我接触到的第一个制造业的客户,等我调研回来再跟你讲。
现在重点客户里面转型里面是物流、电力行业、制造业的港口行业,港口比较特殊,这几个大的行业都做一遍,基本上我们这个产品就成型了,就可以深挖,东方电器完了,哈尔滨电器什么电器都一样,蒸汽机、燃气轮机等都可以做,制造业像钢铁怎么制造,它能耗的优化是很大的问题,现在钢铁说白菜价,它有40%是能耗,电、煤、气,把这个压下去它的成本就会降低一大节。制造业我非常想做,但是我后天才能迈出这一步。
整理:陶佳晨
校对:杨祎
二校:辛洪录
注:本稿件摘自数据观入驻自媒体—数据派,转载请注明来源。微信搜索“数据观”获取更多大数据资讯。
责任编辑:陈卓阳