|
参加《极限切割》系列软件的研发已经六个年头了,2009版终于发布了,写个回顾性的文章权作个纪念吧!
2003年:初生牛犊
2003年接受这个项目,感觉问题很简单,不就是把各种方案比较比较,找出那个最好的就行了呗?
很快,程序就完成了,似乎一切后划上了句号... ...
其实我们并不知道,当数据量稍大的时候,这个程序很慢很慢!
小常识:最优化问题和算法复杂度
开料(套料)优化算法是一种最优化问题,而且属于很复杂的那种问题,在数学上归为NP难的问题。通俗点说就是需要用很长时间才有可能计算出最终结果。这个很长时间是多长呢?那个比方,如果打算切割100个零件,用目前最快的计算机计算可能需要100亿年,那个时候地球都不存在了。
2004年:首战告捷
2004年,香港某客户对我们的产品非常感兴趣,表示愿意支持我们改进这款产品。在客户的热情鼓励下,我们很快发现软件可以大幅度地简化,从而导致算法和计算速度都会大幅度提高。不久我们推出《极限切割S4》,这就是第一个正式的商业版本。
该产品发布没几天,广东就有客户买了这款产品。呵呵,令我们激动万分,我们还以为自己是世界上第一个发明车轮子的人呢?
小常识:最优解和近优解
现在的计算机速度还太慢,求开料问题的最优解不太可能,我们只能将就一点了。如果最优解是98%的话,我们能求出95%、96%的那个方案也就行了,这种结果我们称为“近优解”。
2004年我们在快速取得近优解方面初步找到一套可行的办法,但还没形成系统的理论。
2005年:初遇对手
2005年,上海某客户拿我们的软件和几款国外的软件进行对比,结果我们输得很惨。真的开眼界啦!人家外国十几年前就已经有了不少这类软件,
计算的速度很快,结果也比我们的好多了。
呵呵,过去就是坐井观天吗,还以为全世界就我们自己写了这么一个开料(套料)软件呢!
还好,上海的客户对我们很支持,非常认真地指出了我们的主要缺陷,表示如果我们能在短时间改掉这些缺陷,仍可能采购我们的产品。
很快我们确定了《极限切割S4》的症结所在:这款软件采用了贪心算法,结果造成最开头的几个开料作业图拍得还不错,越往后就越差,结果整体表现不佳。
我们采用贪心算法的开料软件归结为第一代算法。目前,国内外好多软件仍处在这个阶段。
小常识:关于贪心算法
贪心算法的基本原理就是,先取一张原材料,然后尝试在上面以各种方式排列待加工零件,保留结果最满意的那个切割作业图。然后取第二张原材料,再用剩余的零件进行排列,得到第二个切割作业图。如此类推,直到把所有零件都切割完成。
显而易见,这样做的话,第一个切割图是最好的,第二个会稍差一些,如此类推,最后那个最差。
从下象棋的角度来看贪心算法,贪心算法就是看一步棋的水平,只考虑当前一步能占多大便宜,不考虑最终结果是什么样子。所以用贪心算法命名这种算法是很形象的。
话虽这样说,好多数学问题除了贪心算法外,目前还没找到更好的解决方法呢。
2005年:推陈出新
2005年我们决定开发一款面向整体目标的优化算法。由于问题的复杂性,贪心算法运行起来就已经非常耗时了,如果面向整体优化,要搜索的范围就更大了,计算速度问题必须合理解决。
不过,2005年五一期间我们就顺利把问题搞定,假期过后,我们立即发布了《极限切割2005版》。
经过反复比较,认定《极限切割2005版》的计算结果已经和国外软件不相上下,上海的客户最终采购了我们的软件。
《极限切割2005版》发布后,得到用户广泛的好评,同时我们也受到大量的改进建议。于是2005版最终添加了滚动式作业的计算模式、最完整的纹理系统、填充件等诸多计算参数。
小常识:关于整体优化策略
拿下象棋来做个比方吧,以前的贪心算法就能看一步棋,现在的整体最优化的策略能从开局一直看到棋局结束。
这种算法需要的计算量非常非常大,以后的主要任务就是研究各种能简化计算的方法。
2005年我们初步解决了计算速度问题。 2006年:创造经典
哈哈,算法获得突破,我们都得意地笑了!因为接下来要做的是我们的强项——软件产品设计,在这方面我们不害怕任何竞争对手。

图1 极限切割2006的界面,非常简洁、漂亮的商品化设计
我们公司一直活跃在ERP市场,对开发优秀的企业应用系统有着丰富的经验。一旦算法瓶颈被突破,接下来我们就可以大胆投入,开发高端的产品了。
《极限切割2006版》的开发蓝图应运而生。除了继续改进算法之外,2006版提供了更多更强的辅助功能,甚至具备实现小型ERP的要素。
先说算法。2006版算法比2005版快很多,而且特别在切割工艺优化方面下了很多功夫,2006的余料处理也是非常有效的。
除了算法之外,《极限切割2006版》堪称一款相当专业的开料(套料)软件。界面设计完全采用Windows
XP风格,非常简约、漂亮,操作也是最简单的,数据录入完全模仿Excel设计,可以和Excel之间互相复制粘贴数据。《极限切割2006版》还支持手动排料功能,操作相当方便。
2006版的作业打印、标签打印、库存管理、BOM管理等,设计得也相当专业。可以说《极限切割2006版》是一款相当经典的产品,代表着当时我们开发团队产品设计和算法设计的最高水准。
2006投放市场后,销售势头很好。在这期间,我们研发仍未停止,但是要超越2006版,我们都感到了空前的压力。
小常识:商品化软件设计
国内软件公司很多,但在开发商品化软件方面大部分都懒得下功夫。一个好的商品化软件至少要做到如下几点:
1.安装简单
即使对计算机不很熟悉的用户也应该能自行安装或者卸载软件。
2.操作简单
操作简单的程序设计起来往往很复杂。《极限切割》是国内第一个采用Office操作风格的开料(套料)系统,数据录入直观、快捷、方便,也是第一个实现手动排料的软件。
现在不少软件删除或者修改数据都得通过点击按钮实现,人机交互非常繁琐。相比之下,《极限切割》的操作界面呈现出非常专业的特点。
3.界面风格适宜
《极限切割2006版》具有Windows
XP风格界面,界面简洁、美观。《极限切割2009版》则采用了Windows Vista风格界面,界面简单但不失华丽。
去年在北京参加一个国际展会,看到大多数国内的软件仍然采用C语言开发的Window
3.1风格的界面。虽说界面是否美观不会影响产品的功能和可靠性,但是在目前性能这么好的计算机上还向客户提供二十年前的老式界面,感觉国人实在太不注意软件的商品化包装了。
劣质的产品包装实际上也缺乏对客户的起码尊重。难怪有客户讲,货卖一张皮,一个界面都不肯下功夫的软件,如何让人相信它的内部设计呢?
2007:山穷水复疑无路
2006版在计算方面已经很不错,但还是有几个很有实力的竞争对手一直无法甩开。继续改进2006,确保《极限切割》这个产品的绝对竞争力成了我们的一块心病。
这期间,搜集了大量的国内外研究论文,基本上都没什么价值。按理说学术界应该比工业领域超前才行,不过看样子,工业界的很多杀手锏并没拿出来发表。
2007是非常忙碌的一年,市场不错,但是在技术上没能取得重大突破。写了不少新算法,最终都证明无法超越2006版水准。
有时候,我们会怀疑自己的能力,怀疑自己的能力已经发挥到极限,再谋图进步就是赶鸭子上架了。不由自主让我们联想到,“廉颇老矣,尚能饭否?”这个经典句子,无奈、凄凉之感油然而生。
小常识:算法复杂度和算法性能
一般的开料问题,要完整地进行计算得用100亿年的时间。把这个计算时间缩小到几分钟,必须大幅度缩减方案筛选的范围。放弃99.999999999999%
的方案完全不考虑,这样才能缩短计算时间。
这样会不会漏掉大鱼?这是开料软件的核心技术所在,算法的性能就体现在这个方面。
《极限切割2006版》已经足够好,但还不足以与最强竞争对手拉开距离。
2008:踏入数控切割设备市场
意外的收获是,我们与贝加莱(奥地利)上海总部签约,为他们开发数控切割系统的PC软件操作系统。其中的核心之一便是《极限切割2006版》的算法模块。

图2 数控切割设备操作系统界面,采用触摸屏界面,支持异型零件切割
借助这次机会,我们的软件顺利进入数控切割设备市场。
2008年10月份,我们从过去写过的诸多算法中,发掘出一个有希望的算法,有望作为2006版的换代产品。这算是2008年年末的一项大礼吧。
小常识:数控自动切割系统
开料方案计算完成后,由数控设备自动完成后续工作,这样可以大幅度提高工作效率。
数控切割机一般由上位计算机控制系统、数控伺服系统、切割机械部分构成。一般需要开料软件输出G代码指令或者DXF文件,供数控切割设备使用。
目前国内自动切割设备市场开始启动。无论软件还是硬件技术,和国外同类产品都存在较大差距。
好的切割设备需要性能可靠的开料(套料)软件的支持。以贝加莱的玻璃切割数控系统为例,除了出材率之外,对走刀路线做了特别的优化,提高走刀速度、增加分片工艺的成功率,减少切割过程的碎片率。(参见上面的图2)
2009:柳暗花明又一村
所谓“山穷水复疑无路,柳暗花明又一村“,2009年初我们终于获得重大突破,研究出一套有效解决套料问题的理论。这套理论完全不同于2005和2006版的算法,极大地简化了搜索空间的范围,
计算速度极快,而计算结果则优于2006版。
一旦算法获得突破,我们马不停蹄地全面投入《极限切割2009版》的开发。新的软件功能、界面都完全超越2006版,同时,对各类切割参数提供最大程度地支持。 
图3 《极限切割2009版》界面,Vista风格,简约而绚丽,操作更顺手
2009版在提高出材率、切割路线优化和余料优化方面做得非常好,而且计算速度也达到了令人叹为观止的程度。不过,这仅仅是《极限切割》系列产品的一个新起点,因为她仅仅走出了我们目前算法理论框架的第一步。毫无疑问,我们还会马不停蹄地继续开发出性能更强劲的下一代产品。
呵呵,这让我们想起黑格尔的从量变到质变的理论,三年的辛苦工作,终于以这次技术飞跃为收获。这不仅让我们发掘出全新的计算理论,更重要的是重塑我们开发团队的信心,让我们深信在不远的未来,《极限切割》家族会诞生性能更加强大的新成员。
最后我们想对所有给予我们热情鼓励和支持的客户和业务伙伴表示衷心的感谢!是你们给了我们机会和勇气迎接挑战!我们还要感谢公司所有员工对我们的理解和支持,最困难的时期,是你们让我们重拾信心、坚持不懈地走下去!请大家放心,我们一定会不负众望,把《极限切割》这款软件做成全世界最好的开料软件! |