Bridging Decision Problems, Vol. I 界定问题
Back to SDA site →

第4章:决策

Bridging Decision Problems, Volume I — Framing the Problem · Warren B. Powell

本书全篇都基于以下这句话:

If you want to run a better {anything} you have to make better decisions.

不言而喻,在着手解决识别最佳决策这一问题之前,你首先需要知道自己正在做出哪些决策。

回想一下第1章中提到的两类”问题”:以指标为中心的问题和以决策为中心的问题。二者的示例如下:

如果我们从指标出发,挑战在于识别能够帮助我们改善该指标的决策。如果我们从决策出发,那么问题就变成了如何设计指标。然而,即便我们认为已经了解了相关决策,我们也必须确保没有遗漏任何决策。

关于决策优化这一主题,已有大量数学文献,但即便是这些著作也缺乏对”什么是决策”的标准定义。相反,这些书籍会引入诸如决策向量”$x$”、控制”$u$”或动作”$a$”等符号,随后给出示例,希望读者能够”领会其意”。这种做法对于简单问题或许可行,但它在数学模型与实际应用之间造成了一道障碍。

对于像供应链管理或解决公共卫生问题这类复杂应用而言,识别决策远比识别指标更具挑战性。这并非要贬低指标识别工作的重要性,而是说明指标这一概念无论是对领域专家还是建模者来说都已经十分熟悉。然而,当被问及涉及哪些决策时,商业高管、医疗专业人员、工程师和科学家往往会一脸茫然。虽然”决策”这个词人人皆知,但它似乎并非人们在日常问题解决中常用的术语,而”指标”这一概念却是每个人都以某种形式理解的。

决策与英语语言

在关于”决策”的一章开篇,给出一个定义似乎是一个不错的起点。值得注意的是,像韦氏词典那样的标准定义通常会列出该词在英语中使用时的各种常见含义。例如,赢得一场棒球比赛也被称为一个”decision”。而在本书中,我们仅用”决策”一词来指代这样的情形:我们面临一组选择,必须做出最佳选择,这当然也意味着需要先确定绩效指标。

我们首先要指出,决策始终是信息的一种形式。将所有信息大致归为三类会很有帮助:

  1. 我们在某一时间点已经掌握的信息。我们将这类信息称为系统的状态(更准确地说,是知识状态)。
  2. 我们所控制、能够改变状态的信息。
  3. 我们无法控制(尽管可能对其产生影响)而到来的新信息。

第(2)类和第(3)类信息会产生一个更新后的状态变量(第(1)类)。现在我们可以给出决策的定义了:

定义(正式): 决策是一种内生可控的信息类别。

因此,决策(包含于”决策变量”之中)代表着我们通过在一组选择中指定其中之一而创造出来的信息。

我们的正式定义对于一个本应十分简单的概念而言显得过于繁琐,因此我们再给出第二个定义:

定义(非正式): 决策是我们所控制的东西。

这个定义通过使用”东西”一词避免了”信息类别”这样的表达,但它同样传达出了要点。

我们的两个定义都提出了一个问题:谁在做决策?这与决策这一概念是密不可分的。经典数学模型回避了这个问题,但它对于建模大多数真实系统而言却至关重要。

鉴于决策在人类活动中的重要性,英语中存在大量捕捉”选择”这一概念的术语,这也就不足为奇了。表4.1列出了在一般情境下暗示做出选择的若干词语。”收集信息”一栏列出了在决定运行何种实验、听取谁的意见、观察什么等情境下出现的术语。”资源行动”一栏列出了在管理资源(如人员)情境下出现的各种术语。例如”晋升”一词暗示着是否晋升某人(以及晋升到什么级别)这一决策。

该表并非旨在全面列出所有暗示选择的词语,而是提示我们,”决策”在英语语言中有多种表达方式。

表 4.1. 英语语言提供了多种词语,它们都表达了自由选择的含义。
一般术语收集信息识别决策资源行动
行动实验(选哪个?)识别晋升(谁,多少)
选择倾听(听什么?)分类获取(哪个,多少)
控制观察发现出售(卖给谁,多少)
决策测试(选哪个)结论奖励(多少)
设计查看/扫描标注批评(谁,如何)
干预(医疗)调动(调往何处)
选项交易(哪个,与谁)
移动(去哪里)治疗(选哪种)
应对(选哪种)接受/拒绝
任务推荐
交易(金融)

识别决策

在识别可供做出的决策时,理解暗示(或要求)做出选择的各种不同词语十分重要。需要认识到,决策并不会带有醒目的标签标注出来。金宝汤公司(Campbell’s Soup Co.)在20世纪70年代著名的系列广告”我本可以喝V8的!“中,就意识到了让消费者意识到自己正在做决策这一挑战。他们的营销部门发现,人们常常在拿起一罐苏打水时,并没有意识到自己本可以选择V8蔬菜汁。这些广告帮助消费者意识到,喝苏打水本身就是一种决策。

几乎在任何问题情境中,人们都容易养成以某种固定方式解决问题的习惯,而没有意识到自己其实拥有选择。可以说,这正是我们度过日常生活的方式,因为评估各种选择以找出最佳方案是需要花费时间的。我们面临的挑战首先是要意识到自己何时正在做决策,然后识别出对绩效影响最大的那些决策。

被动做决策这种行为极为普遍,但这恰恰创造了一个机会。设想你处于任意一种问题情境之中(例如图4.1左侧所展示的那些情境)。现在假设你想要改善某项绩效,无论是盈利能力、生产效率、健康结果的改善、药物的改进,还是农业的提升。那么请记住我们的核心观点:

如果你想更好地运作{任何事物},你就必须做出更好的决策。

要做出更好的决策,你必须先意识到自己正在做决策。一个有益的练习是创建你自己的”决策簿”,然后在你意识到正在做决策时(也就是说,存在选择,且可以做出不同的选择),记下心得。

A challenge is to work in any of a variety of problem settings and identify the decisions that are being made.
图 4.1. 挑战在于:在各种问题情境(例如右侧所展示的那些)中工作时,识别出正在做出的决策。

决策的类型

我们的框架构建方法要求能够识别所有决策,而不仅仅是能够用某种特定方法处理的决策。为指导这一过程,我们在下面列出10类决策,据我们所知,这些类别涵盖了我们所控制的所有信息形式。

  1. 物理与财务决策——这些决策产生于对物理和财务资源的管理之中,涉及人员、设备、设施、产品、大宗商品、水、能源,以及现金、投资、贷款……决策包括购买、出售、调动和调整资源。这一类别属于运筹学、工程控制和金融学的研究领域,并大量借助线性、整数和非线性规划等工具。
  2. 结果不确定的离散选择——这是一个通用术语,用于涵盖可能涉及复杂项目的活动,例如推出新产品、将药物提交临床试验,或收购一家公司。这些活动有时被称为”项目”,可能涉及一系列对绩效指标、资源、财务和系统动态的改变。特殊情形可以是更简单的问题,例如选定一个价格,或决定聘用谁担任领导职位。这类问题在决策分析文献中十分常见,通常涉及相对较小的行动集合,但评估起来却颇为困难。
  3. 信息获取/观察决策——这些决策包括通过在实验室、现场或计算机模拟中运行实验来获取或观察信息。区分我们获取信息的两种情境会很有帮助:
    • 离线学习——这些是在测试环境中开展的活动。离线信息获取可以包括研究工作、网络搜索,或聘请领域专家。
    • 在线学习——这涵盖了采用”边做边学”方法,在实际现场中运行并观察过程的决策,包括观察某一过程随时间的演变,例如市场对广告或定价的反应,或患者对治疗的反应。

两种信息获取方式都意味着专门为获取信息而做出决策。信息获取已在实验设计(静态或序贯)、随机搜索、主动(或最优)学习、多臂赌博机以及贝叶斯优化等名称下被研究。

  1. 信息沟通/共享决策 – 这些决策有两种形式:
    • 信息内容 – 反映我们在文本、视频和/或音频中所说的内容。信息内容的一个现代示例包括提示词优化。
    • 渠道与时机 – 反映渠道的选择(文本/电子邮件、出版物(印刷版或在线版)、社交媒体或广告渠道),以及时机和频率。
  2. 绩效指标与目标 - 这代表了量化我们试图实现目标的关键选择,例如最大化收入、最小化成本、最大化材料强度或药物疗效,或最小化空驶里程。这些可以纳入目标函数中,或表示为约束条件。
  3. 选择函数 – 函数常常作为决策被忽视,函数可以是做出决策的方法(策略)、优化模型的构建方式、绩效指标的选择、预测或估计的方法,或转移函数(例如疾病如何传播)。此类别涵盖函数的选择,也就是其结构。
  4. 设置参数 – 函数通常由一个或多个参数(通常是连续的,但并非总是如此)来表征,这些参数可以被调整以提高预测精度(拟合统计模型时),或被优化以提升性能(调整决策策略时)。参数可能与函数相关联;它们可以是绩效指标的权重,也可以是绩效指标的目标(或限制)。
  5. 估计或识别 – 我们可能被给定一个人的照片,并被要求识别此人,此时我们希望最大化正确识别该人的次数。大语言模型被给定一组词(实际上是词元),它试图识别最可能出现的下一个词(或词元)。
  6. 特征与行为 - 我们可能选择一个新软件包的特性、一款新产品的设计,或我们(作为个人、组织或政治团体)选择如何表现。
  7. 决定要决定什么 - 在大多数实际应用中,潜在决策的数量(即我们面临选择的任何地方)可能相当庞大。我们必须对哪些决策具有最大的经济价值进行优先排序,以此来判断是否值得进行正式分析。

决策变量的类型

决策会以不同的形式出现,但决策变量通常可归入以下一个(或多个)类别:

决策如何影响系统

将”决策”作为一个抽象概念来讨论是没有意义的。我们首先要认识到,决策会以某种方式改变系统,但具体是如何改变的呢?

决策可以通过以下三种方式影响系统:

这些类别之间存在一些重叠,例如货币对冲与销售合同条款之间的区别。重要的是我们能够影响系统随时间演变方式的广泛程度。

随着我们建模框架的推进,我们需要了解关于任何决策的以下几点:

在第二卷中,我们将使用数学符号来描述这些要点。

决策的时机

决策最重要但也最具挑战性的属性之一涉及时间,具体包括:

谁来做决策

在许多情境下存在不止一个决策者(或智能体)。多智能体情境的例子包括:

我们将在本系列后续内容中重新讨论多智能体问题,届时我们将展示如何扩展(第二卷中介绍的)符号体系以处理多个决策者的情形。目前,我们将专注于单一决策者,该决策者可能是两个或更多决策者中的一个。

我们目前有几个理由避免在此阶段明确界定决策者:

目前,当面对多智能体情境时,我们建议分别处理每个智能体,以确定其各自的指标和决策。不确定性通常会影响更广泛的环境,尽管每个智能体可能都有与其自身决策和绩效指标相关的不确定性。

用计算机做决策

计算机有一种非常直接的决策方式。首先要知道决策的类型以及可能(可行)决策的集合。然后使用预先指定的方法来”做出”决策,这意味着从可行(或允许)决策集合中做出特定选择。

我们首先介绍如何称呼这些决策方法:

定义: 策略是一种在决策做出时利用可获得的信息来选择一个允许的决策的方法。

设计策略有两大策略类别,每一类又可细分为两小类,从而形成四类策略,涵盖了做出决策的任何方法。这些是:

策略搜索 - 这种策略创建的函数需要经过调优,才能长期表现良好。它们在做决策时不会直接对未来进行规划。这些可以分为两类:

  1. 策略函数逼近,即PFA。
  2. 成本函数逼近,即CFA。

前瞻策略 - 这种策略试图通过优化当前决策的表现,加上对当前决策对未来影响的近似估计,来做出当下最优的决策。这些同样可以分为两类:

  1. 基于值函数逼近的策略,即VFA。
  2. 直接前瞻逼近,即DLA。

下面对每种策略进行说明。

策略函数逼近(PFAs)

策略函数逼近(PFAs)代表任何解析函数,给定我们已知信息的输入,输出我们应采取的行动。以下是一些例子:

PFA可以是任何解析函数,例如线性或非线性函数。PFA不能包含的内容(而这将出现在其余三类策略中)是内嵌的优化问题。PFA可以是简单的规则,但也可以是非常高维的非线性函数,例如神经网络。

成本函数逼近(CFAs)

在许多问题中,做出决策的最佳方法是在某一时间点使用一个确定性近似,并通过各种参数对其进行修正,这些参数经过适当调优后,能够产生长期表现良好的决策。这种方法在实践中被广泛使用,尽管人们常常没有意识到:a) 可以引入参数来帮助改进决策,和/或 b) 未能认识到这些参数可以被调优以产生更好的结果。

这种方法最简单的例子如图4.2所示,其中我们需要选择在社交媒体上推广哪种产品(我们可以用第2章智能试错节中列出的任何具有离散选择的问题来替代)。基于以往经验,我们对每种产品的价值有一个点估计,而我们已经了解到这其中可能包含大量噪声,导致某些估计不够准确。我们也可以利用以往经验来估计标准差,它衡量的是不确定性的分散程度。通常情况下,我们有95%的把握认为真实值落在正负2个标准差范围之内。

When faced with a discrete set of choices, the uncertainty in the belief about how each performs may be described by its average value and standard deviation.
图 4.2。 当面对一组离散选择时,关于每个选择表现如何的信念中的不确定性,可以用其平均值和标准差来描述,标准差捕捉了该信念的分散程度。

我们接下来要做的是为每个产品$x$创建一个”指数”,其表达式为:

\[Index_x = \text{Avg.value}_x + \theta \,(\text{std.dev}_x)\]

然后我们将选择推广具有最高”$Index_x$”值的产品$x$。我们通过求解以下优化问题(这是确定性的)来找到产品$x$:

\[\max_x \{\text{Avg.value}_x + \theta \,(\text{std.dev}_x)\}\]

求解这个优化问题相当简单——我们只需对数值$\text{Avg.value}_x + \theta (\text{std.dev}_x)$进行排序,找出具有最高值的产品$x$(而你原以为确定性优化一定很难吧!)。

那么,挑战就在于如何选择可调参数$\theta$。如果我们使用$\theta = 0$,那就意味着我们只是在使用当前的估计值。问题在于,如果我们的估计值”$\text{Avg.value}_x$”因为一连串的坏运气而偏低,我们可能永远不会再尝试推广产品$x$。如果我们使用$\theta = 2$,那么我们就是在使用一个对产品$x$价值非常乐观的估计,这将鼓励尝试那些不确定性水平较高的产品(这未必是一个糟糕的策略)。

使用参数化确定性近似的思想极其强大。航空公司在优化航班时刻表时就会使用这种方法,因为他们必须使用每次航班天气延误的估计值。如果他们使用中位数,那么有一半的时间延误会超过时刻表所预期的程度,这将导致大量飞机晚点抵达,进而延误后续航班。然而,如果使用第90百分位数,那么可能会在时刻表中引入过多的富余时间,导致飞机利用率低下。

在模拟器中调优一组参数$\theta$是最容易想到的做法,但在实际中往往(例如航空公司排班问题)问题过于复杂,难以采用此法。因此,可能有必要进行在线学习,即在实际场景中测试不同的取值并观察实际表现。

值函数逼近(VFAs)

设想我们正在调度一支卡车车队,需要分配司机将货物从取货地点运送到送货地点。图4.3展示了这一问题必须随时间反复求解的过程。我们在周一做出的决定将改变周二和周三司机的位置。每天,托运人都会打电话预订新的一批货物,这些货物事先是未知的,因此承运人必须在周一做出分配决策,而不知道周二或周三会发生什么。

Illustration of the problem of assigning trucks over a three day period.
图 4.3。 三天内卡车分配问题的示意图。

在存在不确定性的情况下对多天的规划时域进行优化,是一项极其复杂的任务。相反,我们可以对未来司机的价值进行近似估计,如图4.4所示。这可以通过对未来进行模拟运行来实现,然后计算不同地点司机的价值。当我们纳入这些价值(称为”值函数逼近”)后,我们在周一需要求解的问题就不会比完全忽略将司机派往不同地点所带来影响的情形更复杂。

Assigning drivers to loads using estimates of the value of drivers in the future.
图 4.4。 使用未来司机价值的估计值来将司机分配给货物。

对处于特定状态的价值进行近似,是研究文献中非常流行的一种策略,但其成功程度高度依赖于特定问题的结构,并且往往只对少数具有特殊结构的问题效果良好。

直接前瞻逼近(DLAs)

在许多问题中,我们必须对未来进行规划才能做出当前的决策。直接前瞻策略最为人熟知的例子之一,就是我们使用谷歌地图规划到达目的地的路径。

DLA策略可以分为两个子类:

请注意,我们不需要对确定性前瞻进行细分,因为即使每个时间段的决策是标量,整个前瞻模型也需要对跨越规划时域各时间段的决策向量进行优化。

Path planned by Google maps based on estimated travel times (left); alternative path based on perceived risk of driving through New York city (right).
图 4.5。 谷歌地图基于估计行程时间规划的路径(左);基于驾车穿越纽约市所感知风险的替代路径(右)。

图4.5(左)展示了谷歌地图规划从康涅狄格州哈特福德(右上)到新泽西州普林斯顿(左下)的路径,出发时间为下午4点的一个例子。请注意,该路径正好穿过纽约市,而经过纽约市的时间大约在下午5点左右,此时预计交通最为拥堵。谷歌地图使用的是点估计,但仍然认为这是最短路径。

当然,任何有经验的旅行者都会明白,下午5点穿越纽约市的实际行程时间存在巨大的不确定性。图4.5(右)展示了谷歌提供的另一条路线,让旅行者可以在预计更短但存在大幅延长风险的路径,与预计时间接近谷歌估计值、但略长一些的路径之间进行选择。

因此,第一条路径是确定性前瞻的一个例子,但用户在评估该建议时可以自行引入不确定性因素。通过选择第二条路径,我们实际上是在以一种虽显临时但确实可行的方式,求解一个随机前瞻问题。

当我们对不确定的未来进行规划时,有多种策略可用于对这一过程进行建模,以帮助做出当下的决策。一种策略是使用点预测(即确定性前瞻),但引入可调参数,使解决方案更加稳健。

混合策略

除了上述四类策略之外,我们还可以创建各种混合策略,将两类、三类甚至全部四类策略结合起来。以下是一些以供应链为背景的例子:

尽管这些策略听起来可能很复杂,但我们完全可以描述出人类决策使用它们各自的具体场景。例如,最复杂的策略是使用随机前瞻,我们在上文用谷歌地图导航问题加以说明,其中选择了一条更长的路径,以避开纽约市拥堵的风险。

哪些策略最为广泛使用?

讨论各种策略听起来可能很复杂、令人困惑。重要的是要记住:

首先,我们将第四类,即 DLAs(直接前瞻近似策略),分为两种类型:确定性前瞻和随机性前瞻。然后,我们将把最后一种类型,随机性前瞻,再分为两个子类型:决策是一组离散选择之一的问题,以及决策是向量的问题,例如资产在不同投资之间的分配,或将机器分配给任务。

这样我们就得到了六种策略类型,并将其归为四大类:

第一类 - 该类别包括三种策略类型:

CFAs 和 Det-DLAs 都涉及求解确定性优化问题;唯一的区别在于,CFAs 不对未来进行规划,而 DLAs 则会进行规划。

第二类 - 决策为离散选择的随机前瞻策略。在这里,我们在评估每个选择时明确地对不确定性进行建模。这类策略通常借助决策树这一工具进行广泛研究。

第三类 - 基于值函数近似的策略,其中当前决策会同时考虑即时成本或奖励,以及转移到某个状态后未来价值的估计。这是一类先进且计算上具有挑战性的策略,只有一小部分专门问题才需要用到它。

第四类 - 决策为向量的随机前瞻策略。这是一类非常复杂的问题,需要复杂的策略,因为随机前瞻本身就是另一个随机优化问题,需要引入简化措施以降低计算复杂度。

第一类策略被所有人使用,无论他们是否接受过正式训练。这些策略是最简单的,但这需要引入必须经过调优的参数,而这可能颇具难度。

人类大脑已经进化出了运用全部四大类策略的天然能力,至少在离散选择的情境下是如此。我们甚至能够在不自知的情况下在这些类别之间切换。如果我们在下棋(并且对这个游戏有一定经验),我们很可能凭记忆走出前几步棋(有经验的棋手能够凭记忆走出相当多的棋步)。这是一种纯粹的 PFA。然而,在某个时刻,我们开始思考对手可能会怎么走,这就涉及了一种直接前瞻策略,通常还会与 VFAs 结合使用,后者能够捕捉损失重要棋子所带来的价值影响。

习题

复习题

  1. 给出决策的正式定义、非正式定义,以及三个决策的例子。
  2. 解释"内生可控信息类"(endogenously controllable information class)的含义。在同一语境下所描述的另外两类信息分别是什么?
  3. 请为以下每个类别举出决策的例子:
    1. 二元决策。
    2. 至少包含五个选择的一组离散选择。
    3. 在同一时刻必须做出至少 10,000 个不同决策。
  4. 请列举五个连续决策的例子。
  5. 请为以下三种决策类型各举三个例子:
    1. 影响物理资源的决策。
    2. 影响金融资源的决策。
    3. 影响信息收集或分发的决策。
  6. 请举出三个决策必须在不同时间尺度上做出的场景。描述该场景以及决策的时间安排。
  7. 用你自己的话总结四大类策略,并针对某个问题场景为每一类给出一个例子。

建模题

  1. 请为以下每个类别举出一个决策的例子:
    1. 每分钟(或更快)都必须做出的决策。
    2. 每天都必须做出的决策。
    3. 每年都必须做出的决策。
  2. 请识别以下每个场景中隐含的决策,以及做出每个决策的决策者。
    1. 某个人必须按照医生的处方服药,而医生所遵循的方案是由药物研发人员制定的。
    2. 电网必须告知某电力公司应启动哪些蒸汽发电厂,以及何时启动。这些调度决策由前一天运行的计算机模型做出。
    3. 某共同基金经理必须决定手头应保留多少现金,以应对个人投资者(小额)和零售投资者(大额)的存款及赎回请求。
  3. 请举出三个策略函数近似的例子。描述相应场景以及该 PFA 将如何运作。
  4. 请为一个离散选择问题举出一个成本函数近似的例子。
  5. 你正在使用谷歌地图寻找路线,以便在早上 8:30 前到达单位。你还必须决定预留多长时间以便按时到达。请描述所涉及的决策,以及在做出每个决策时所使用的策略类型。
  6. 假设你要设计一个用于下棋的计算机程序,请尽可能多地描述你可能会使用的策略类别。并说明你所识别出的每一类策略将如何应用。