OptaPlanner 这十年

简介:

十年前的一个假期,我开始开发一个小项目,没有太多意义,只是按照自己的兴趣爱好来,也没有打算做得很大很专业。在漫长开发中,我慢慢试图构建一些很酷的工具。今天,Java 规划引擎:optaplanner,应用在很多项目当中,与同领域软件相比处于领先地位。OptaPlanner 优化了商业资源调度和规划。

十年,让我们来看看,我的项目是如何成功的?期间,我做对了什么,我做错了什么?

需要说明的一点

2003毕业后,我曾当了2年的java顾问,负责Multi-Agent系统(MAS)的研究。我的同事,都是一些想改变世界的人,后来证明,他们没能做到。当时,我的一个同事正在优化护士排班问题(nurse rostering problem),对我们的研究小组提出了他的方法。他的解决方案是采用Tabu算法(一个优化算法在80年代发明的)。他的工作进展得很顺利。然而,他花了很多时间和精力去手工实现增量计算每个约束适应度函数。写代码很困难,耗时长且容易出错,但都会取得好成绩。

一年前,我曾在JavaPolis大会听过Mark Proctor的演讲(现在叫DevoxxBE),解释 Drools规则引擎和RETE算法。一个易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。

我提议在规则引擎中使用Tabu搜索算法,他们嘲笑我,那时候我没有一点算法优化经验。

不能空空其谈,所以,2006年暑假期间,我实现了一个简单课程调度问题的概念认证。我叫它Taseree,这是一个简化Tabu搜索规则引擎的规范。同年晚些时候,我添加了两个例子(N Queens and TTP) ,并且开源到SourceForge。

没有人用过Taseree,更不用说用它在生产环境中。事实证明,如果你不开源它,没有人使用它。

研究比赛

按理说,事情到这就应该结束了,就像我的许多其他项目一样。但是我听说过一些学术研究竞赛:给出一个优化问题,5分钟内找到最好的解决方案。所以在2007我参加了这个竞赛,在200参赛者中,我第四个完成了。

所以我确定我是在做正确的事。但是我也做错了很多事情。我们开源了各自代码,我们开始讨论和比较我们的实现,我们彼此学到了很多。其实有很多方法可以实现Tabu搜索。所以我开始采用替代算法实现。促使我(和Lukaš)写的基准工具包,比较这些算法统计,评估那个算法性能更好、更适合长足发展。理解这些算法需要一个小时,但10 000小时掌握它们,因此我花了很多时间。

动机是关键。找到一种方法来激励自己构建下一个特性,特别是在没有工资的情况下。爱好驱动我继续前进。

另一个优势是,每场比赛都会诞生一个新的例子。我最终做了很多框架改变对我来说更容易实现这些用例。这是一个重要的、旧的项目管理原则:那些创造了痛苦,应该感到疼痛。

没有人是一座孤岛

大约在同一时间我联系到Drools的团队,通过加入他们的IRC频道。我开始发表我的看法,同时,一边学习。2007年9月,马克邀请我让Taseree成为Drools的一个子项目,我们称之为Drools Solver。所以我清理代码,删除了spring核心依赖和写第一章的参考手册。它被作为Drools 5.0的一部分释放。

到2007年12月,在JavaPolis大会上,我给20开发人员第一次讲解了Drools Solver。

在2008年,我听说第一个使用Drools Solver的产品。

毅力

也正是2008年,我开始有了较多的业余时间,我可以在每周花几个小时在Drools Solver上。然而,我和我妻子也买了一所旧房子,我必须得花时间在房子翻修的事情上,因此,项目开始停滞,几乎一个月只能更新一次。

在这期间,我萌生了好几次放弃该项目的想法。不知何故,我觉得我不能。因此我坚持了下来。最后,一切稳步推进。

具有讽刺意味的是,项目开始变得受欢迎,下载量逐渐变多,论坛也变得活跃,我收获越来越多的建议。也正是这样,越来越多的Bug也随之而来。所以,我投入大量的时间进行单元测试、集成测试。到了2009年底,项目改名为Drools Planner。

幸运的是,Red Hat - Drools项目发起人已经注意到我对项目源源不断的贡献。他们很早邀请我为Drools工作,但在2013年才分配我全权负责。Red Hat开始支付工资给项目的贡献者,并且支持该项目进行业务销售、咨询。

产品化:走向企业

到了2012年底,Drools Planner已经不在是一个小项目,变得很庞大。它包括具有较高覆盖率的单元测试、集成和压力测试,完整的参考手册,完备的典例,JavaDocs和不断壮大的社区。当一家世界500强的企业考虑将它应用在重要的生产环境中时,我们发现它的服务是跟不上的。技术上的卓越还是远远不够的。

因此,Red Hat建立了一个专门的QA团队,支持团队,顾问团队,保障团队和产品化建设/文档团队。这使客户能够在大规模生产的情况下,自信地部署我们的开源软件。2013,我们开始这个过程,称为产品化。

通过各个服务团队的加入,产品化日趋成熟。项目成为一个顶级项目,所以我们又重命名了一次,也是最后一次,叫OptaPlanner。同时,也创立了optaplanner.org 。

2014年3月,在红帽的支持下,我们发布了第一个技术预览版本,作为BRMS订阅的一部分。2015年3月,我们全面升级企业支持,销售量增长。今年早些时候,我们雇佣一些核心工程师开发OptaPlanner工作台。与此同时,我们所有的代码仍然是开源的,在Apache许可下,成千上万的项目正使用它。一个双赢的局面。

我们坚信,未来是光明的。

文章转载自 开源中国社区[http://www.oschina.net]

相关文章
|
3月前
|
数据采集 人工智能 自然语言处理
回望做大模型一年后的感悟
本文为转载,就不计入我的一月更文计划中了。本文作者:刘聪NLP , NLP算法工程师,专业炼丹师。原文链接见:https://mp.weixin.qq.com/s/CfAY8FCrQKKIrQx3U10EcQ
|
6月前
|
人工智能 算法 Cloud Native
人工智能时代未来程序员必备的三大利器:异,理,说
人工智能时代未来程序员必备的三大利器:异,理,说
41 0
|
8月前
|
计算机视觉 Python
OpenCV竟然可以这样学!成神之路终将不远(二十四)
OpenCV竟然可以这样学!成神之路终将不远(二十四)
|
8月前
|
计算机视觉 Python
OpenCV竟然可以这样学!成神之路终将不远(十三)
OpenCV竟然可以这样学!成神之路终将不远(十三)
|
11月前
|
人工智能 自然语言处理 安全
AI卷趴程序员!DeepMind祭出竞赛级代码生成系统AlphaCode,超越近半码农
AI卷趴程序员!DeepMind祭出竞赛级代码生成系统AlphaCode,超越近半码农
|
存储 分布式计算 监控
专访骨灰级开源爱好者吴晟:开源没有黑魔法,两年后泡沫将会破灭
在刚结束的 2020 年,国内先后有超过 11 家开源软件领域企业获得了新一轮的资本助力,融资纪录创下近年来开源赛道最高。开源的热潮,已然兴起。然而,当越来越多的资本、企业等产业界人士开始越来越关注开源之时,一些隐藏在开源光鲜外衣背面的阴暗,也随之而来。
323 0
专访骨灰级开源爱好者吴晟:开源没有黑魔法,两年后泡沫将会破灭
|
人工智能 搜索推荐 大数据
心脑血管疾病被两会重点关注,谈谈AI能帮点儿什么?
2019年2月7日,武汉某医院急诊科,武汉理工大学职工黄先生(化名)因为胸痛在值班医生的安排下刚刚做完心脏CT,正在焦急等待结果。
心脑血管疾病被两会重点关注,谈谈AI能帮点儿什么?
|
机器学习/深度学习 人工智能 算法框架/工具
机器学习应用行业浮躁、产品差?身为工程师的你是否想转行
十几个小时前,一位机器学习工程师在 reddit 上发帖求助:ML 领域浮躁、门槛低、产品差,无法专心做东西,该不该换个领域?帖子一经发布,立刻引起了大量讨论。
102 0
机器学习应用行业浮躁、产品差?身为工程师的你是否想转行
|
存储 物联网 Linux
十年嵌入式工程师,看到如今开发方式彻底震惊了
一个工作十年的嵌入式工程师,做过各种嵌入式项目,从单片机裸程序、RTOS到Linux也都玩过。那一套从编码-编译-烧录-测试的开发方式已深入内心。当新来的95后同事给他演示了使用轻应用开发物联网应用之后,他彻底震惊了,他第一次知道还可以如此方便的使用Python来开发嵌入式应用,他感叹到:当时代要将你抛弃的时候,连招呼都不跟你打。
十年嵌入式工程师,看到如今开发方式彻底震惊了