算法的重要性

        首先,我们谈论的是一个关于计算机的话题,那么就有一个最基本的问题:计算机能干什么?对这个问题似乎答案太多了,计算机本身就是一个大千世界,随便就能找出很多种答案。但是告诉你最基本的,计算机实际上只干两件事:读和写。它所有的花里胡哨的功能,最终不过是在用最笨的方式干这两件最简单的事情,速度快而已。
        不信吗?仔细想一想,不必去深究它的基本原理,你可能会感觉到,无论上网、看电影听音乐、玩游戏、编写文档、操作数据库,这些的确都不过是在快速地‘读’和‘写’一些数据。但是,计算机还有‘计算’功能,这不象读写那么简单吧。比如你要算25×96,计算机马上给出结果:2400。难道它能事先知道你要算这个数,已经把结论保存在那儿了吗?难道这也是读和写的结果吗?没错!这个过程计算机的确只是进行了一些读写操作。不信,你找一支笔来,在纸上手算这个乘法题,然后逐步记录你的整个计算过程。
        你一定先要算5×6=30,再算2×6=12、9×5=45、2×9=18,然后呢,你在纸上列出了这样四个需要错位相加的数字。
        30  12  45  18
       之后就是对准位置以后简单的个位加法计算:3+2+5和1+4+8,2400这个数字就这样算出来了。那么计算机呢,你可能会想,它应该有一些更高明的手段。告诉你,计算机也是这么算的!它同样没有办法直接计算出25×96,而是把它分解成多个个位数字相乘和相加的运算,原理与你在纸上计算过程是一样的。你在计算的时候心里早就背会了一个小九九,计算机也早就把这个九九乘法表存在那里了,当要算5×6的时候,它就去把30调出来写到一个位置,算2×6的时候把12调出来写进去,然后呢,1+1=2,2+3=5这样的个位加法的所有组合也都早就存好了,直接去取结果就可以。看,只要有一个乘法表加上一个加法表,计算机就可以通过简单的读写操作计算出你的任何乘法计算。
       这么看来,计算机并不比我们更高明,它用一种与我们手算相同的计算方法。而且,计算机没有知觉,它根本不知道自己在干什么,有什么实际意义,它只知道按照一个固定的规则进行一堆读写操作,不会任何变通,只不过速度比我们快几百万倍,也正因为如此,我们才错误地感觉它的计算似乎比我们更聪明。
        回到我们的话题,依此类推,ERP是什么?MES是什么?APS又是什么?无论他们有什么功能,对企业有什么意义,不过都是计算机在读写一些数据而已。你用ERP把今天的订单录到计算机里再查询昨天的销售数据统计出一个报表保存到服务器上,另一台电脑读了这个报表再读BOM算出需要采购哪些物料和生产哪些物料,另一台电脑打印和显示出这些数据……。实际上这一切的本质不过是数据在硬盘和内存中快速的‘读’和‘写’,我们就不厌其烦地为类似这样的计算机‘读-写’过程起了无数个名字,ERP、MRP、SCM、CRM、PDM、PRM、MES等等等等,还产生了无数的管理理念和理论,并为此争论不已。
       企业中那么多复杂的工作流程,那么多先进理念,其最底层的工作本质真的只是计算机简单存了一个数字再简单把它取出来吗?计算机真的只是比人快但是没有人聪明吗?先不要忙着下结论。
       说到聪明,我们再回到那个乘法问题,一个一般智力的人只会用纸上手算的方法,但如果让一个‘聪明’的算术高手来计算这个题目,他很可能采取一种简化的方法,96是100-4,而4×25刚好=100,于是25×96=25×(100-4)=2500-100=2400。不用繁琐的个位相乘,很快就能得出结果。你看,计算机就没有这么聪明,它必须按照自己固定的步骤走完全部流程,不会随机应变,人比计算机聪明多了。
       但是且慢,计算机虽然只会读写,但它有一个很大的优势,它很善于学习,记忆力很好。人只要把一种计算的方法转换成它能接受的‘读-写’方式教给它,它就会变得和人一样聪明,而且永远不会忘记,还能很快复制给其他同伴。一个一般智力的人把乘法手算方式教给计算机,计算机就拥有了乘法计算的功能。而一个更聪明的人利用复杂的条件判断语句可以把简化计算法教会计算机,计算机就拥有了人的这种‘聪明’。这时候,一个智力一般的人不仅在速度上远远不如计算机,而且在方法上也显得没有计算机‘聪明’了。计算机的灵魂背后是人的思维。
       这就引出了‘算法’的概念。任何人的手工乘法运算就是一种算法,聪明人的简化运算也是一种算法。计算机聪明与否,全看它所接受的算法是不是聪明的。如果计算机接受的是需要一定专业知识的专家级别的算法,那么计算机就会拥有一个专家级别的聪明,一般‘聪明人’在智力上也根本无法与之相提并论。
        现在,我们评价一台计算机是不是聪明就有了一个新的标准:看人教给它的‘算法’是不是很高明。如果这种算法就是我们手工每天都在用的类似乘法运算的那种方法,虽然把这种方法教给计算机也需要很专业的知识,但是,计算机还是并不比我们更聪明,只是比我们快而已;而如果这种算法不是简单到谁都能想到的方法,例如简化乘法运算,那么这台计算机就是一台比较‘聪明’的计算机了。
        算法,给了我们一个新的视角来观察ERP。很多时候企业要求的是一个聪明人教会的拥有高明算法的计算机,而不是一个智力一般的人用日常方法教会的计算机。但现实情况,很多ERP公司都只满足于低水平重复性地把日常手工的方法教会计算机,再给这种本质上是手工的方法起一个流行的名称,声称它多么高明。仔细考察,只不过是原来的手工方法和日常工作流程的电子化而已。而企业管理中需要很多真正高明的算法,所要求的‘聪明’程度远不象前面的简化乘法那么简单,需要很高深的数学知识。这时候绝大多数ERP公司由于自身缺乏对基础数学的深入研究和积累而无能为力,这并非单指国内ERP公司,国外大型ERP公司也并不例外。
         举一个例子,计算圆周率π,一个中学生可能会去测量一个圆的周长和半径,这个方法无疑很笨,但是现在要求你用计算机来算,你能有什么好办法吗?我们来看一个数学家会用什么样的方法。方法1:(1-1/3+1/5-1/7+1/9-1/11+1/13+……)*4;方法2:(1+1/4+1/9+1/16+1/25+……)*6的开方。还有其他看起来不着边际的‘古怪’方法,例如arctan级数展开法、算数几何平均值迭代法等等,但是它们的确有效。这些方法如此简单以致一个初学编程的中学生都可以开发出来。但是为什么用这么简单的似乎与圆周率毫不相干的算法可以得出π值?恐怕没有学通大学数学的人无法理解其中的奥妙,更无法给出证明或者灵活运用它。在这里,数学模型就起到了决定性的作用。
        企业管理中在复杂的约束条件下要求寻找一个工艺流程的关键路径、寻找一个计划的最早和最迟开始时间、或者寻找目前生产计划中哪个资源最短缺的时候,运筹学、数论、图论、线性代数、模糊数学等等数学科学的最前沿理论已经取代了我们一般的直观分析。计算机解决这类问题已经不能再用简单通用的手工方法或者仅仅使用一般的小聪明全凭速度优势代替手工劳动,而是必须集成最前沿数学理论,拥有一个数学专家级别的专业算法。在整个企业管理中,无疑生产排程部分由于它的错综复杂的条件和对精确结果的需求,是最需要这种专家级别的算法的地方。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值