2.2 常用建模方法
在运筹学研究的一般过程中,模型处于核心地位,构建形式恰当、规模适中的运筹学模型是分析和解决问题的关键(见图2-2-1)。实际中,需要按照研究对象的不同来构建不同的模型,运筹学中涉及的模型有3种基本形式:形象模型(外观形状相似的模型)、模拟模型(运行逻辑上相似的模型)、符号或数学模型(要素及其关系上相似的模型)。其中,符号或数学模型是运筹学模型的主要形式,本书中的数学表达式、矩阵、图表等形式都是这类模型。
图2-2-1 运筹学研究是构建、求解和应用模型的过程
模型在运筹学研究中十分重要,但如何构建模型却是不容易说清楚的事情。在运筹学发展历史上,以美国学者阿可夫(Russell L.Ackoff)为代表的不少研究者对此进行了研究,提出了一些思路方法。但这些方法只是一些原则,实际模型的构建是创造性很强的活动,成功的模型往往是科学和艺术完美结合的产物,很难用固定的步骤来说明,但存在一些常用的方法,下面结合例子做简要说明。
1.直接分析法
直接分析法是指,按照研究者对问题本身的认识,找出问题中和所关注目标密切相关的要素,分析要素之间的量化关系,基于要素间关系的认识直接构建模型。通过应用本方法,运筹学已经发展出种类繁多的模型,如线性规划模型、整数规划模型、图模型、排队模型等。这些模型一般都有成熟的解决方法和求解软件,但研究者在建模时,需要将注意力放在对实际问题的理解,以及寻找适合的模型上,避免生搬硬套,很多时候可能需要对多类模型进行综合应用。
直接分析法有时也称机理分析法,在其他学科中也经常使用,如物理学中通过分析力和加速度的影响关系得到牛顿第二运动定律(体现为数学模型F=ma的形式)、化学中不同物质之间的化合关系(体现为化学方程式模型),以及社会科学中通过分析人口变化的影响因素之间的关系得到人口增长模型等。
本书中的大多数模型都是使用直接分析法来完成的,如利用线性规划方法解决工厂优化生产的例子,在建模时分析工厂生产所需要用到的设备或原料,明确生产每类产品所需的各类资源的数量,然后用等式或不等式来表达相应变量之间的关系,进一步给出工厂生产的优化目标——获利最多,这样一个刻画工厂优化生产问题的运筹学模型就完成了。
【案例2.6】 应该照射多少剂量?——癌症放射治疗方案的优化分析
放化疗是治疗很多癌症的常用方法,一种具体方法是在肿瘤区域放置很多放射性的“种子”物质,由其放射出射线达到治疗目的,这其中需要对恶性肿瘤区域给予足够的放射线剂量以杀死癌细胞,同时应尽量减少对附近健康细胞的危害。其中的困难:在三维的人体组织中,到底把这些“种子”放在哪里?照射剂量应该如何控制?美国的斯隆-凯瑟琳癌症中心与美国佐治亚理工学院的运筹研究团队通过仔细解剖分析获取了人体组织对于放射强度的吸收关系,量化表达出包括肿瘤组织、健康组织、关键人体组织等每种组织单位面积吸收放射剂量的平均值,以及不同方向放射的叠加关系,继而采用线性规划和整数规划模型构建这一问题的运筹优化模型,并开发出一套放射治疗方案的优化系统,基于模型求解的结论实现对肿瘤区域更为精确、高效的治疗。这一系统大大减少了放射性治疗的副作用,同时也减少了医疗机构会诊的次数及治疗后的CT扫描次数,据估计,每年可以节约近5亿美元的成本,这个成果已经从早期的前列腺癌治疗拓展到乳腺癌、子宫癌、胰腺癌等癌症的治疗中[6]。
2.数据分析法
很多时候,人们无法清楚了解研究对象的内在机理,但可以得到与之相关的大量数据,或者通过针对性的实验得到实际系统的大量数据,再通过对数据的分析来构建恰当的模型,这样的建模过程称为数据分析法。一般而言,其需要使用统计的方法实施。
很多排队系统(如图书馆、银行或食堂)中往往无法从机理上判断顾客到达的概率特征(如到达时间、方差等),但可以收集顾客流的相关数据,这样就可以用统计的办法推断顾客到达的概率分布(如泊松分布、正态分布或爱尔朗分布等),并通过统计检验来验证模型的合理性。
数据分析法也称统计分析法,实质是通过对数据的研究得出和实际系统随机性相一致的概率分布,在数理统计、随机过程等涉及概率的学科中普遍使用。对于运筹学中的随机性模型(如排队论、存储论等),很多建模需要使用数据分析法实施。
【案例2.7】 该不该紧急机动?——应对自杀式攻击的策略分析
在第二次世界大战后期的太平洋战争上,美军为了应对日军采取的自杀式攻击策略(“神风特攻队”),努力减少可能的损失,紧急实施了一项作战运筹分析,企图回答如下问题:当海军舰船看到自杀式飞机朝着己方俯冲攻击时,应该快速机动来规避撞击,还是应该继续平稳航行且靠自身高射炮火把敌机打下来?为此,美军收集了477例数据[3](具体见表2-2-1),发现其中被自杀式飞机击中172例,占比为36%,在被击中的情况下,共27艘军舰被击沉,占被击中总数的16%左右。
表2-2-1 美军收集的477例自杀式攻击的数据
在收集的477次攻击中,只有365次的报告可以确定攻击时舰船是否进行了规避机动,以及是否成功用高射炮火重创或击毁飞机,数据如表2-2-2所示。
表2-2-2 365次攻击的具体情况统计
通过对以上数据的分析可知,战列舰、巡洋舰和航空母舰等大型舰船遇到自杀式飞机攻击时采取规避机动比不采取机动被击中的比例大大减小(由49%降低到22%),说明大型舰船应该进行规避机动;而驱逐舰、运输舰和小艇等小型舰船进行了规避机动反而比不进行规避机动被击中的比例提高了,表明小型舰船无法从其转向机动中获得任何好处。
究其原因,是因为大型舰船稳定性较好,在转向机动的过程中,其舰载火炮仍可以较为准确地攻击自杀式飞机,所以同时获得了机动和主动攻击的好处;而小型舰船由于自身所限,在满舵转向时稳定性变差,使得防空武器的攻击效果大大减小,综合来看机动的作战效果反而变差。由此,研究人员提出一项应对自杀式攻击的战术原则:大型舰船应该采取急转向的动作,同时实施火炮攻击;小型舰船应该缓慢转向或不转向(以不影响高射火炮精确度为限),专注于火炮打击。后期战报表明,采取这一优化战术的舰船和不采取的舰船相比,被击中比例降低了18%。
3.类比法
针对研究目的,有时可以将研究对象类比为另一类已经成功构建模型的系统,从而可以使用或在少量修改后使用现有模型。例如,在复杂的数学优化问题中,将寻找最优解的过程类比为生物种群的进化过程,从而在寻优机理并不清晰的情况下构建有效的求解模型,实现高效求解。在实际研究中,经常将经济系统和社会系统的某些方面类比为机理清晰的物理系统,通过类比构建模型、推进研究。
类比法的本质是利用相似原理实现不同系统间等效替换的建模方法,至于在哪个方面相似,是几何相似,还是物理相似或逻辑相似,完全看研究的需要而定。运筹学中不少分支需要使用随机数,通过伪随机数生成随机数的计算模型就是通过类比得到的。很多复杂问题需要使用模拟理论来研究(如排队模拟理论),其基础就是通过类比法构建相似模型。
4.实验分析法
当研究对象的内在机理不清晰,也无法获取相关的大量数据时,可以通过实验分析的方法先获得数据,再利用统计分析的办法来建模,这种建模方法称为实验分析法,其可以采取整体实验,也可以采取局部实验的办法来进行,像社会系统、经济系统等复杂的无法进行整体实验的系统,可以采取分层次、分类别的办法,在局部就特定目的进行有条件的实验,在获取一定数据后,再将多个局部实验的数据进行综合分析,构建较为完整的模型。
【案例2.8】 应该在多深处爆炸?——深水炸弹的实验分析
第二次世界大战期间,为了对抗德军潜艇,英国皇家空军经常派出轰炸机用深水炸弹对潜艇实施攻击,但作战效果一直不理想。后来英军请来一些数学家专门研究这一问题,他们通过实验和统计分析,建立了一个简单的计算模型,发现潜艇从发现飞机开始下潜到深水炸弹爆炸,其实际下潜深度远远小于炸弹引信设置的爆炸深度,从而能够炸到潜艇的概率很低。由此英军将爆炸深度由原来的约21米调整为约9.1米,结果轰炸效果大大提高,在一段时间内,德军还误认为英军发明了新式武器。
5.构造法
在有些情况下,人们不但对研究对象缺乏深入认识,也缺乏数据,还不具备进行实验的条件,如军事领域的很多问题,都是这样的情况。这时人们只能在已有的知识、经验和历史研究的基础上,对将来可能发生的情况给出合理的设定和描述,然后构建模型,并不断进行修改完善,直到认为模型较为满意为止,这种方法称为构造法。
也有些时候,虽然研究对象的相关数据或机理比较明确,但直接求解很困难或者很烦琐。通过构造的方法建立形式恰当的模型,可以将其转化为更容易求解的通用问题,这时构造法能够起到巧妙转化的作用。但无论哪种情况,需要注意的是,构造法的使用没有一定的规则,很多时候需要建模人员对各类经典模型的形式有深入的认识,并能够在问题和现有模型之间建立有效的连接。
【案例2.9】 最短通过时间是多少?——一道智力测试题的通用解法
本书第8章例8.2描述了一个4人过桥问题,因为不同的人过桥的速度不同,导致不同的过桥方案的总过桥时间有很大差别,如何找出所有人都安全通过的最短总时间?这一问题如果用遍历的办法求解,非常烦琐。而通过构造的方法将其转化为状态空间上的最短路问题,则使得该问题的求解模型更为规范,解法更具普遍性。