优化思考一

以下内容是自己的小思考,可能有不对的地方。

1.优化是一项系统工程,是决策中的一环,需要前后很多环节互相配合协作。

简而言之,数据(输入)>>优化模型(处理)>>结果方案(输出)。优化是其中最重要的一环。

我们做优化之,很多时候假设数据信息已知;即使不知道,也假设服从一定的概率分布等,或是需要通过各种预测手段预测数据。这里要需要预测人员的配合和帮助。

如果涉及到多个目标,往往得到的是一系列满意解。管理者需要根据偏好,通盘考量,给出最终的方案。也就是优化的最终解释权归决策者所有。优化只是给出一系列方案的参谋人员而已。

所以这是一件团体工作。包括前期预测人员挖掘数据以及数据库,需要数据分析师和后端人员协助;最终给出方案后需要前端页面展示和后台展示系统的搭建。

2.优化,是关于量化的学问。优化人员的强项在于抽象和建构问题,并且用模型来表述出来。这是一门关于实际和数学的沟通桥梁。

优化的展示形式是“模型”。所以很多时候狭义的优化仅仅指建模工程师。而一个模型的好坏,十分重要。

同样的问题,可能有很多种模型。
哪个好,哪个坏,如何去选择?
一个模型,如何根据它的特点进行解构与重新建构,也就是reformulation?

这些也是优化人员的强项之一。说白了,优化人员就做两件事:建构问题以及搭建好的模型。

比如,TSP问题,避免闭环的写法,至少有3种。哪个好哪个坏?
以及,TSP是根据点来设变量;还是根据边来设变量?前者是排序问题;后者是网络流问题。后者建模更好。
再比如,根据约束和变量的特点,假如模型变量很多,切约束较少时,可以采用列生成算法,初始只考虑部分变量,然后不断往里边加变量;再比如约束较多时,可以选择加入部分约束,再加入部分约束的branch and cut解法,每次加一个cut。

3.初阶的优化人员,容易喜欢上启发式算法,从而走偏。当然,启发式算法有好处,但是,只轮算法,你比不过计算机人员。而且根据视野只在算法上,不会关注模型本身的特点,也就是说编程求解不需要对问题,对模型有深刻的认识。这刚好与优化人员的强项相违背,干嘛以己之短碰别人之长呢?

切记,切记,建立好的模型是永远的目标。

求解器既可以用来求解模型也可以反向测试模型的好坏,从而对模型本身进行修正。

你可能感兴趣的:(运筹优化理论,学习思考总结)