《统筹方法平话》中有一个例子曾被收录到语文课本中,讲“烧水泡茶”有五道工序:1、烧开水,2、洗茶壶,3、洗茶杯,4、拿茶叶,5、泡茶,其中前四道工序是泡茶的前提,且各道工序耗时不同。不同的工序安排,会直接影响喝上茶的时间。
上图中两种“烧水泡茶”的排序方法,显而易见方法一用时最少,效率最高。
我们在日常生活中还会遇到很多类似的问题,比如衣服的穿搭、菜品的组合、做家务的次序等等,这些看似很简单的事很可能会让我们陷入“选择困难症”。在此类情景中,由数个简单选择问题排列组合在一起,就会产生出呈几何速度增长的大量可行解决方案的集合(通常具有巨大的数量)。而我们试图从中寻找一个或一组方案,达成收益最高、用时最少、成本最低等目标,这类问题就是最优化问题中的组合优化问题。
俄罗斯方块其实就是一个动态的组合优化问题
01 常见的组合优化问题
除了日常生活,在工业领域,对组合优化问题的研究有着更加广泛的应用意义,涉及交通运输、信息技术、经济管理、工业工程、通讯网络等诸多领域,这里我们仅讨论最常见的离散型组合优化问题。
尽管行业各有不同,但万变不离其宗,经典的组合优化基本模式问题,按照优化操作的不同,基本上可以分为四大类:选择问题,分配问题,排序问题和混合问题。在实际的应用场景中,通常会存在多因素、多操作模式的情况,例如往往既需要选择又需要排序,因此混合问题是最为常见的一类现实问题。
常见的组合优化问题
交通运输领域
网约车调度问题就是一个典型的选择(接单)-分配(乘客到司机)-排序(路径规划)相结合的混合型组合优化问题。在实际出行场景中,乘客需求、车辆分布、接驾距离、拥堵情况等因素,使得决策场景非常复杂,不仅需要同时满足快速高效地对司机和乘客进行实时、动态的调度,还需要能兼顾订单收益等一系列利润要求。
网络通信领域
资源分配是网络通信领域典型的组合优化问题之一,也是一个混合型问题。资源分配是指将有限的CPU、内存、带宽等资源分配给不同的用户或者任务需求,在如今网络通信需求高度多样化、复杂化的环境下,充分优化利用服务资源、维持通信网络高效率运作