群体智能:先理解领域,再选择算法
为什么群体智能类问题必须先理解系统、再选择算法——以仓储机器人和LogiFlex为例。
如今,群体智能领域的一个关键难点——同时也是一个趋势——可以概括为:先理解领域,再选择算法。仅仅拿来蚁群优化(Ant Colony Optimization)、粒子群优化(Particle Swarm Optimization)或其他漂亮的方法,再试图把它套进业务问题,是远远不够的。
首先需要理解系统本身:什么是智能体,它有哪些约束,智能体之间如何交互,以及什么才算好的结果。只有在此之后,才能选择算法。群体智能并不知道什么是好的路线、高效的仓库或合理的机器人协同——它只是在我们为它设计的空间内搜索解。
示例:配备自主机器人的仓库
可以直接说:“我们来用群体智能吧。”但首先需要理解流程的物理本质:
- 01搬运什么,机器人可以在哪里行驶
- 02哪里会出现拥堵
- 03机器人如何充电
- 04哪些任务优先级更高
- 05什么才算好的结果
只有在此之后,才会形成数学建模:智能体、状态、允许的动作、约束条件和目标函数。
然后才能决定这里到底是否需要群体智能。也许经典优化方法能更好地解决问题;也许是遗传算法;也许几条简单的启发式规则就够了;也可能确实需要这样一个系统:众多智能体在局部做出决策,共同形成全局行为。
LogiFlex是怎么做的
我们在开发LogiFlex时就遵循了类似的逻辑。这是一套优化货车装载方案的系统。我们先研究了仓库结构、商品类别和物流人员的真实工作场景,然后将尺寸、重量、商品兼容性等约束形式化——最后才构建了基于遗传算法的解决方案。
最终,系统在考虑货物物理约束的前提下评估超过1万种摆放方案,约10秒即可算出装载方案。
因此,对于这类研发项目,我们的原则很简单:
不为漂亮的算法找问题。先理解问题,再选择算法。