一、数学规划思维在经济分析中具有重要作用
经济主体的行为大多可以理解并表达成数学规划中的最优化问题。微观主体的行为往往是谋求把某件事做到最好,或者说是目标函数最大化或最小化。经济学中最典型的假设是,市场经济里的企业和个人都是谋求自身利益的,劳动者谋求自身收入和消费效用最大化,同时在劳动和休闲之间也有优化选择。企业行为最典型的描述是追求利润最大化,大多数常规企业都是这个目标。对于一个政府而言,往往是把GDP作为经济工作的主要目标,中国现在则强调不能唯GDP论,可考虑修订后的GDP或含有GDP又比GDP更综合的目标函数。总体而言,经济主体就是要追求某种最大化。如果用数学规划来考虑这些问题,会有很多优势,有些问题能够看得更透彻,并以一个更精确的角度来分析问题。
经济学里用的很多语言都是来自数学规划。回顾20世纪八九十年代我国的经济体制讨论,最重要的进展是党的十四大提出的“我国经济体制改革的目标是建立社会主义市场经济体制”,而对社会主义市场经济的主要经济学解释就是资源配置优化,用资源配置来论证为什么要搞社会主义市场经济。随后,党的十四届三中全会提出了“充分利用国际国内两个市场、两种资源”,也是资源优化配置。回顾四十年的经济体制改革历程,早期较多是从直觉出发搞农村联产承包责任制,而更深度的思维则逐步演化到资源优化配置。从最优化模型角度看,资源优化配置和承包责任制等激励机制之间其实是一种对偶关系,而对偶问题其实也就是线性规划的拉格朗日乘子问题。资源配置的约束条件与影子价格相对应。若要实现资源优化配置,就要把价格类激励机制搞对,这两者是互为影子的。一个国家资源配置的效率与优化程度是会带来重大区别的,最主要的资源是指劳动力、资本等生产要素,广义的生产要素还包括技术、管理、外汇(对发展中国家而言,外汇也是一种生产要素,外汇在一定程度上可替代稀缺的生产要素和物资,如果有大量的外汇储备,则很多紧缺性都可以缓解)等。资源配置的约束是需求应小于等于供给,当然供给不足也可以另外想办法。这些约束可以是紧约束,也可以是松约束。在数学规划中,若约束条件是松的,则其影子价格就是零。不少经济分析报告里常说某个约束条件是松弛的(slack),就是指虽然道理上有约束条件但却是松的,影子价格为零。如果是紧的话,其影子价格就不会是零,这是数学规划里给出的规律。
二、数学规划的基本概念
数学规划是一种寻找最优化的方法。典型的线性规划基于目标函数和约束条件,寻求目标函数的最大化或最小化的极值。约束条件又可以分为等式约束和不等式约束。目标函数与约束条件的表达分为线性和非线性。例如,在宏观经济模型中,等式约束可以是生产法GDP或支出法GDP等基本经济规律的恒等式;比较典型的不等式约束是劳动力、资本等生产要素的供求关系。
一是线性规划。线性规划的目标函数和约束条件都是线性的,好处是相对简单,有现成可用的计算机算法进行大规模线性规划求解。但现实中一些经济行为可能是非线性的,因此有可能出现对现实过分简化的情形。
二是非线性规划。非线性规划的计算复杂性大幅提高,且有可能不存在最优解,还要看整个约束条件集合是不是凸集。如果是凸集,那么就存在一种算法可以得出最优解;如果不是凸集,就可能不存在唯一最优解且不一定能有最优解算法。也就是说,不是沿着向上的方向走,就能找到最高点。非线性规划有两种简化处理方法:(1)对数线性化。一些经济问题由于是用指数的形式来描述的,虽然目标函数和约束条件不是线性的,但可以通过对数化表达实现线性,然后按照线性规划的方法去算。(2)分段线性化。整个问题可能是非线性的,但是如果对其作分段且每一段都可以按线性方式来描述,整合起来后,也可以按线性规划的算法进行运算。
三是动态规划。在理论和算法上,动态规划思维在处理长远问题时,可以寻求整体过程最优,不见得每个阶段是最优的。当前动态规划在经济模型中能够求得优化解的情形还是非常有限的,动态规划概念有两种用法:一种是将整体过程充分简化,找可用的算法去求解;还有一种是不存在直接求解的算法,但可以通过仿真模拟的方法对动态过程及其结果进行比较分析。
三、数学规划在经济分析中的具体问题
(一)目标函数
目标函数非常重要,只有清晰可度量的目标函数,才能评判事情干得好不好,同时也能分析出改变任何一个约束条件或行为,对于目标函数的成本是多少。例如,现在在发展经济过程中要考虑环境保护,一项特定的环保措施要付出多大的GDP当期代价;再如贸易摩擦又会产生多大的GDP成本。
现实中的目标函数往往是多目标的。在目标函数表达中,单目标最好理解和计量。一些国家中央银行曾强调以通胀为其工作的单一目标,但自2008年危机以来,全球央行基本上都认识到央行不能不管经济增长,也不能不管金融稳定。此外,金融机构出了风险,还要考虑救不救的问题。近期,美国又有研究挑战保尔森(Henry Paulson)、伯南克(Ben S. Bernanke),为什么在本轮危机初期不救雷曼。事实上,他们已经反复说过,不救雷曼是因为缺乏抵押品和道德风险平衡的考虑,之前已经救了贝尔斯登、房地美、房利美,马上又要救AIG,但不能所有的金融机构都救,要避免道德风险,所以就只能牺牲一个规模相对小一些的金融机构,也就是雷曼。当时也没预测到雷曼倒闭后的震动会有多大。可见,单目标往往是对现实工作目标的过分简化。
多目标的可加性。多目标如果是线性可加的,技术上会类似于单目标。比如GDP看似单目标,其实包含多种商品货物和服务,且不论从生产方还是支出方来看,都是以价格加权而线性可加,所以不要简单认为GDP是单目标。但当人们关注一些社会、环境、道德等目标分量时,多目标是否能线性可加就会成为显著的挑战。
机构改革中的目标体系。图卢兹学派的拉丰(Jean Jacques Laffont)说过,规制包括目标、度量、激励和资源,目标在最前面,所以首先要弄清楚目标是什么。比如证监会的目标,究竟是维护股指还是保持投融资的公正性,以及保证交易的公平性。如果目标不清楚的话,就没法度量这个机构做得好还是不好;如果度量不清晰的话,激励也往往会扭曲。在2017年的全国金融工作会议中,明确要成立金融稳定委员会,中间就用到了目标、度量、激励以及资源这个框架思路。很多人不见得体会到这些概念和推理实际上来自数学规划和机制分析(Institutional Analysis)的框架。
多目标之间的冲突。多目标体系在写成目标函数表达式时,可以发现有些目标在优化方向上是一致的,另一些目标可能是相互冲突的,这能够帮助理解两难或者多难问题。过去我国政府曾给货币政策指明有四大目标,分别是低通货膨胀、经济增长、促进就业和国际收支大体平衡,后来又加上了推动改革开放和保持金融稳定。其中,经济增长和促进就业的重叠度是相当高的,有冲突的目标就是经济增长和低通货膨胀,但不是完全冲突。一旦写出目标函数,就可能发现冲突的目标不能够同时达到。“蒙代尔三角”表明,货币政策独立性、汇率稳定和资本自由流动三个目标不能同时达到。我们可以在写目标函数表达式细节的时候,体会出这三个目标是冲突的。当然,“蒙代尔三角”对现实的描述相对简化,实践中的汇率稳定和资本项目可兑换的定位可能并不那么理想化和单纯,但这个思路对决策者很有好处,它告诉决策者对于存在冲突的目标要有所取舍。应当看到,现实中存在不少冲突目标的事,多数情况下是两难决策,蒙代尔是三取二,可能还有四取三、五取四的情况,可以用数学规划及目标函数来理解。
多层次目标协调机制。线性规划可以运用拉格朗日函数,非线性规划可以运用库恩—塔克(Kuhn-Tucker)定理,把一个模型实现最优化所必须达到的条件组列出来,必须达到这组条件才能最优化,而条件组中涉及了拉格朗日乘子,即影子价格。也可以借助影子价格写出对偶模型,把拉格朗日条件改写成最优化目标,把目标写成约束条件组。长期以来,经济学的三部门模型,即政府追求 GDP最大化、企业追求利润最大化、消费者(家庭)追求消费效用最大化,三者存在不同的目标。根据拉格朗日函数和库恩—塔克定理,意味着每个主体都有其自己单独的目标函数,但以分布式供求关系的信息构架和分散决策为代表的市场经济体制,能完全协调这三者不同的目标而融为一体。当然数学模型总有简化,现实描述则不能太简化,尽管如此,用数学规划方法仍可以找出普遍规律。数学规划加上拉格朗日函数、库恩—塔克定理的运用,可以发现多目标协调机制的数学解释是非常清晰的,且可以运用于实践。
(二)约束条件
约束条件在大的分类上有等式约束和不等式约束。等式约束可以体现为经济规律中的恒等式;不等式约束典型的例子就是资源配置。有人说,生产法GDP可能导致盲目扩大生产、产能过剩等问题,但如果把宏观经济模型翻译成数学规划模型,将生产法GDP作为目标函数、支出法GDP作为等式约束条件,也就是要求投资、消费和政府支出加上净出口,最后等于生产法所生产出来的商品,这意味着我们在寻求生产法GDP最大化时,不会发生生产出商品卖不出去的情况。同样,也可以在等式约束里放收入法GDP。总的来说,数学规划在生产法、支出法、收入法GDP中任选一个当目标,其他两个做等式约束条件,最终可以得出三种GDP在市场经济体制上可以不互相冲突。
(三)拉格朗日乘子和拉格朗日函数
拉格朗日问题可以衍生出对偶问题。对偶问题有两个方面:一方面是对偶模型,线性规划中的最大化必然有一个最小化的对偶模型,比如说企业利润最大化,对偶的影子就是成本最小化,所以两个模型之间可以相互翻译、互为影子。另一方面是等式约束和不等式条件约束对应的影子价格,比如在生产要素资源配置优化过程中,某一项要素条件的变化,对于实现目标函数都有一个成本,按经济学讲就是影子价格。因此,约束条件对应了用影子价格衡量的代价。企业多雇一个人,给他的报酬取决于多雇一个人对目标函数实现的边际增量(是边际而不是平均的)。经济学中边际的概念,可以更准确地描述为数学规划测度的影子价格问题。影子价格恰好是线性规划里的拉格朗日乘子。这个思维对经济分析是很有益处的。
拉格朗日函数可以将不同层次的数学规划联系起来。数学规划还有一个有意思的问题是大数学规划模型套小数学规划模型,小数学规划模型还可套更小的数学规划模型,用拉格朗日函数将数学规划问题转为函数形式就当作约束条件来用,对不同变量求导推导出一组优化条件,经济达到这组条件就实现优化配置。要实现优化配置,就要用影子价格做激励机制。顶层数学规划的条件组一部分是由次一层数学规划的拉格朗日函数转化成的。以消费者行为为例,消费者效用最大化是较低层的数学规划,可以优化出消费者效用最大化的行为,而消费者行为的约束条件,即消费者支出小于收入又是从另一个涉及劳动与休闲、储蓄与花销行为的优化模型推出来的,这样就把大的问题和小的行为问题联系起来了。2008年金融危机以后,出现了大量对宏观经济模型的批评,认为缺乏金融机构的行为,偏离现实。过去金融机构行为都被简化掉了,认为在制度条件下有存款就会都转化成贷款,不用考虑金融机构的行为,但危机表明,必须关注恐慌、惜贷等金融机构行为,否则经济分析就会出漏洞。这样,就有必要先构建金融机构自身行为的优化模型,通过拉格朗日函数及其关联,放到顶层的宏观模型中去。
总的来看,数学上还没有真正解决动态规划问题,因此动态规划处理复杂问题相对更困难,可以更多依靠模拟( Simulation)来作比较分析,就像罗马俱乐部把世界几十年后环境资源无法承载的模拟结果展示出来。通过数学建模,能够发现很多问题,比如目标冲突、不可能性问题、对偶问题等,可以开拓思维,有很多研究题目可以继续深入。
此外,理解和运用数学规划也必然会联系到其他一些数学方法和模型。数据的收集、运用及其概念,都离不开经济社会统计及统计模型,经济规律的发现和参数化离不开计量模型;经济行为的描述越来越需要博弈论。搞好宏观经济工作常提到调控,涉及控制系统理论和信息论。以数学模型为基础的经济分析呈现为一片又深又蓝的知识与技能的海洋。
(本文为周小川的新书《数学规划与经济分析》一书的总序言,根据作者2018年7月27日在“用数学规划看经济体系”讲座的讲话整理。)