13516 字
68 分钟
模型与工程·一|数学怎样形成问题:对象、结构与语言

问一个模型“算得准不准”,往往已经走到很后面。先前还有一些决定:拿什么作为对象,留下哪些关系,把哪些变化算作同一种变化,又准备从结果中读出什么。这些决定有时明确写在定义里,有时藏在一句熟悉的话中。说“总工时”,便已经把同时与先后放下;说“当前状态”,便已经期待过去留下的影响能够由当前量承担;说“模型稳定”,还要辨明谁受到扰动、在哪个空间里比较,以及稳定到什么程度。

数学的把握从这里开始。它使原来混在一起的关系取得可以区分、连接和推理的形式。图中的箭头、不等式中的“或”、概率律中的权重、一个空间所允许的映射,都参与形成问题。相同的数字放进不同关系中,会给出不同答案;相同的现象经过不同观察,也可能提出不同问题。我们需要理解这些变化怎样发生,才能判断一种表达何处有力,何处还须发展。

这也使形式化具有两个方向。人从事情中辨认关系,构造数学对象;构造取得内容以后,又能反过来揭示原来提问的不足。某条证明走不通,可能显出一项遗漏的条件;某个量竟然不随排列变化,可能说明它已经放下了我们想研究的差异。进一步的问题可以从这样的困难或成功中发生。数学内部的构造也可以自行生出值得研究的问题,随后再与科学或工程联系。

本文从一项小安排进入,逐步展开对象、观察、信息和语言之间的关系。后面的论证会涉及图、约束、历史、概率、商与提升;它们出现时各有一件事要做。沿这些构造,我们还将建立三个可以反复切换的视角:打开模型,检查其内部内容;选定边界,研究它怎样进入整体;回到用途,追踪一个工程判断的根据。这是整个“模型与工程”系列的入口。

一项安排,为什么会有两个答案#

设有三项工作 A、B、C,工时分别为三小时、两小时和一小时。A、B 是准备工作,二者都完成,C 才能开始。工时固定,工作开始后不中断,各项工作都可以从时刻零起安排;C 所需的执行资源在准备完成后可用。为使关系清楚,我们暂时放下搬运、材料短缺和切换工具等额外用时。这里的数字和条件是一项数学构造。

若 A、B 可以由两名工人分别执行,就让二者同时开工。B 在第二小时完成,A 在第三小时完成,C 随后开始,第四小时结束。若 A、B 必须由同一名工人完成,二者便得排队:准备工作共用五小时,C 再用一小时,最早到第六小时结束。三项工作的总工时一直是六小时,项目的最短完成时间却随资源关系改变。

总工时保留了工作量,完成时间还要看工作怎样接续、哪些工作能够同时进行。两个数都可以有用。比如只有一名工人承担全部工作时,工作量能给出一种时间下界;资源充足时,某些工作会并行,这个下界就得重新辨认。我们首先需要的,是把每个数所记录的关系说清楚。

两份构造的时间安排:资源充足时 A、B 并行,C 在第4小时完成;A、B 共用工人时顺序执行,C 在第6小时完成。

原创时间图。上图资源充足,下图 A、B 共用一名工人;C 均在二者完成后开始。

可以用三个点记录任务,画出 A→C、B→C 两条箭头。箭头表示前项完成,后项才能开始。这样,先后关系取得了图的形式:C 有两个前提,A、B 之间没有先后要求。我们能检查哪些任务必须等待,哪些任务间没有这样的约束,也能沿箭头追踪更长的依赖。

然而,“没有先后要求”还容许许多安排。A、B 可以同时做,也可以因资源争用而先后做。依赖图留下了前置条件,没有记录所有执行条件。要回答资源充足时的问题,这种取舍有实际收益;要回答只有一名工人时的问题,还得让资源关系进入对象。对一种表达的判断,开始落在它能否支持所求推理上。

把候选安排写成开始时刻 s=(sA,sB,sC)s=(s_A,s_B,s_C),三项工时记为 pA=3,pB=2,pC=1p_A=3,p_B=2,p_C=1。时刻均以小时计,且 si≥0s_i\geq0。依赖条件是

sC≥sA+3,sC≥sB+2.s_C\geq s_A+3,\qquad s_C\geq s_B+2.

代入一份安排,就能判断它是否遵守依赖。(0,0,3)(0,0,3) 合法,(0,0,2)(0,0,2) 却让 C 在 A 完成之前开始。于是“可以怎样安排”有了明确的候选对象和检查关系。整个项目的完成时间取所有任务结束时刻的最大值:

Fp(s)=max⁡i∈{A,B,C}(si+pi).F_p(s)=\max_{i\in\{A,B,C\}}(s_i+p_i).

固定上述工时后,我们在合法的 ss 中使 Fp(s)F_p(s) 最小。选择对象、可行条件和比较办法接到了一起。仅有一张依赖图,尚未确定比较目标;仅有一个目标函数,也没有规定哪些安排允许进入比较。一个优化问题的内容在这几项关系相接时形成。

共享工人时,A、B 占用的时间区间必须不重叠。使用左闭右开区间 [si,si+pi)[s_i,s_i+p_i),可以让一项工作结束时另一项立即开始。新增条件写成

sA+3≤sB或sB+2≤sA.s_A+3\leq s_B \quad\text{或}\quad s_B+2\leq s_A.

这里的“或”保留了选择。先 A 后 B 与先 B 后 A 都允许;若直接加一条 A→B 的箭头,便已经替安排者选定了次序。这个改动会缩小可行集合。它可以描述一份方案,却不能继续代表原来所有允许方案。

由于两项准备工作不能重叠,二者全部完成至少用五小时;C 又在二者之后用一小时,故任何合法安排都至少要六小时。(0,3,5)(0,3,5) 达到这个下界,(2,0,5)(2,0,5) 也达到它。我们由不可避开的限制取得下界,再由构造取得上界,二者相合,才确定最优值。

这两份安排还有不同的过程。B 在第一份中第五小时才完成,在第二份中第二小时已经完成。如果准备件 B 可以单独交付,差别就有意义;若只关心整个项目的工期,两份安排在该目标下并列最优。继续比较时,须加入相应观察或偏好。一个数字已经算到最优,并不替我们保管尚未进入这个数字的事情。

从一个例子走到一类对象#

三项工作的答案容易算出,形式化的收益却不限于这三个数。既然依赖可以表达成图,就能问:对怎样一类依赖图,最长的依赖链足以确定最短工期?这个问题由一个实例走向了一个家族。我们开始研究一项关系在什么条件下普遍成立。

设任务集合 VV 有限且非空,依赖关系为有向无环图 G=(V,E)G=(V,E)。每项任务有固定工时 pi≥0p_i\geq0,允许开始时刻 si≥0s_i\geq0。若 (j,i)∈E(j,i)\in E,就要求 si≥sj+pjs_i\geq s_j+p_j。任务开始后连续执行;资源充足,所有已满足依赖的任务都可以立即开始。

“无环”在此承担一项具体工作:任务能够按拓扑顺序处理,每项任务出现时,其前置任务都已处理。有限无环图必有一个没有入边的点,否则从任意点反复向前找前置点,有限个点中就会重复,形成有向环。删去这个点,再重复同样步骤,便得到所需顺序。这也给出了下面递推能够开始并最终完成的理由。

取任意一条依赖路径 P=(i1,…,ik)P=(i_1,\ldots,i_k)。沿路径,各项工作须依次完成;从非负时刻开始,项目工期至少为这条路径上工时的和。单个点也作为一条路径计入,因此

L(G,p)=max⁡有向路径 P∑i∈PpiL(G,p)=\max_{\text{有向路径 }P}\sum_{i\in P}p_i

是任何合法安排的下界。图有限且无环,路径数有限,最大值存在。这里不需要工时严格为正,零工时任务也被包含在关系中。

接下来构造达到下界的安排。按拓扑顺序计算每项任务的完成时刻:

fi=pi+max⁡j:(j,i)∈Efj,si=fi−pi.f_i=p_i+\max_{j:(j,i)\in E}f_j, \qquad s_i=f_i-p_i.

若 ii 没有前置任务,最大值按零处理。由定义,每项任务都在所有前置任务完成以后开始,资源充足又使这些开始时刻可以同时实现。候选安排因而合法。

还要证明这份安排确实达到 LL。对拓扑顺序归纳:没有前置任务时,以 ii 结尾的路径只有该点,最长工时和为 pi=fip_i=f_i;有前置任务时,任何以 ii 结尾的较长路径,都是一条以某个前置任务结尾的路径再接上 ii。在这些前置完成时刻中取最大,再加 pip_i,恰得到以 ii 结尾的最长路径工时和。故所有任务的最大完成时刻为 LL。

我们已经证明:在这组条件下,最短工期等于最长依赖路径的工时和。证明的两半各自承担不同内容。路径限制适用于所有合法安排,给出下界;递推给出一份合法安排,证明下界可达。写出递推以后,还须说明它为什么合法、算出的是什么、为何达到界。算法的形状与最优性的根据由此相接。

现在返回共享工人的三任务例子。最长路径仍为四小时,它依然是下界,因为共享资源没有解除任何依赖。然而达到四小时的递推安排让 A、B 同时开工,违反了新增的资源约束。变化发生在构造的可行性上。原证明的下界部分继续成立,可达部分失去了条件。

这个区分有实际作用。面对一次失败,我们能够保留有效的结论,再修订受影响的一步。如果把原结论整个丢弃,就失去了仍然有用的下界;如果只改最终数字,却不修改构造的条件,又不知道新答案由什么支持。证明本身帮助我们定位表达需要改变的位置。

图还会因不同任务解释而改变内容。两个任务互相要求对方完全结束后才能开始,若其中有正工时,就不能按上述规则完成;若环上工时全为零,同时完成的约束却可能有解。这个边界说明,出现一条有向环与“任何条件下都无解”之间仍有区别。我们采用无环条件,是为上述家族建立统一的递推和最优性结论;改变任务执行语义以后,需要重新研究对应对象。

可行集合如何生成新的问题#

资源限制增加以后,可以先放下其中一部分,求一个较易处理的问题。记共享资源下的可行集合为 Fres\mathcal F_{\mathrm{res}},只保留依赖的可行集合为 Fdep\mathcal F_{\mathrm{dep}}。每份满足资源限制的安排都满足依赖,因而

Fres⊆Fdep.\mathcal F_{\mathrm{res}}\subseteq\mathcal F_{\mathrm{dep}}.

在同一目标 FpF_p 下扩大候选集合,最小值不会增加:

inf⁡s∈FdepFp(s)≤inf⁡s∈FresFp(s).\inf_{s\in\mathcal F_{\mathrm{dep}}}F_p(s) \leq \inf_{s\in\mathcal F_{\mathrm{res}}}F_p(s).

用下确界书写,可以容纳尚未证明最优值能够达到的情形;在上面的有限任务构造中,我们已给出达到最优值的安排,可以写成最小值。记号的选择也在保存论证究竟走到了哪一步。

三任务例子中,松弛后的值为四,实际资源限制下的值为六。我们又从共享工人至少连续承担五小时准备工作,得到更强的六小时下界,最终与可行安排相合。较大问题里,下界与已经找到的可行值未必相等,二者之间的距离就成为一项新的研究对象。

比如已经找到工期为十小时的可行安排,而证明任何安排都不可能少于八小时,那么当前安排距最优值至多两小时。这句话由上下界直接推出,不需要知道真正最优值。如果继续找到九小时安排,或把下界提高到九,认识便发生确定的进展:前者改进可行方案,后者加强必然限制。两条路可以独立工作,也可以最后相合。

由此还能问:哪些资源约束删去以后最优值不变?怎样判断某条新增约束是否真正限制了目标?同一依赖图下,资源数量变化会怎样改变工期?这些问题源于对象之间的关系,已经超出了原来的三项工作。数学构造给了它们可推理的内容。

“加一项条件”与“改变问题”也需要分辨。如果是在同一安排空间里增加资源约束,可行集合缩小,旧下界通常能够沿包含关系保留;如果同时改了任务可中断性、完成时间的定义或目标排序,就未必还存在这个包含关系。比较之前先确认双方对象,才能让大小关系承担结论。

有时,新的表达并未把原问题算得更快,却使它可以从另一个方向研究。下界、对称性、边界、可行变化和最优值的敏感性,都可能成为这种方向。问题取得数学形式以后,数学自身的构造开始参与提出问题;原来的用途仍可回来检验这些方向是否值得继续。

比较之前,先说观察什么#

一个关系可以保留许多内容,我们却常常只从中读出一个量。三任务的两份六小时安排,完工时间相同,B 的交付时间不同;在一种观察下相同,在另一种观察下便有差别。这使“有没有影响”成为一个需要补足的问句:影响落在什么观察上?

把安排空间记为 S\mathcal S,观察取为映射 q:S→Yq:\mathcal S\to\mathcal Y。比如 q(s)=Fp(s)q(s)=F_p(s) 记录工期, qB(s)=sB+pBq_B(s)=s_B+p_B 记录 B 的完成时间。比较两份安排 s,s′s,s',可以问 q(s)=q(s′)q(s)=q(s'),也可以在数值余域上问差值、比例或大小。观察域与比较办法都明确以后,差异才有确定的含义。

观察也可能是一组量、一条轨迹或一个概率律。若关心施工过程中同时占用多少工人,就需要随时间变化的占用函数;若关心多次执行的延误风险,就需要记录相应的随机事件与概率。把它们都压成一个完工平均值,会使部分问题无法继续回答。压缩本身可以服务于当前判断,留下的信息也应当能够支撑这个判断。

一个简单的传递构造能把这件事看得更清楚。考虑固定条件下的标量串联,输入依次乘以 H1,…,HnH_1,\ldots,H_n。第 jj 级的累计响应因子为

Tj=HjHj−1⋯H1.T_j=H_jH_{j-1}\cdots H_1.

如果只观察末端 TnT_n,交换标量因子的次序不会改变它;乘法的交换律已经给出这个结论。取两级因子 (2,12)(2,\tfrac12) 与 (12,2)(\tfrac12,2),末端因子都等于一。若观察沿途最大的累计放大 max⁡1≤j≤n∣Tj∣\max_{1\leq j\leq n}|T_j|,两者分别为二和一。前一个观察保存总乘积,后一个观察还追踪了前缀。

因此,对“次序是否有影响”的回答可以同时包含两项确定认识:它对这个构造的末端因子无影响,对沿途最大放大有影响。原来的一项不变性值得保留。若科学关切本就是末端,换成前缀观察就已经改变了问题;若关切沿途的负荷,末端量则可能遗漏所需内容。数学推理帮助我们辨认这两种情形,也防止为制造想要的差异而悄悄更换比较。

从标量进入矩阵或算子,乘法还可能不交换。此时需要说出输入输出空间、运算的定义域和所用范数,才有办法判断次序怎样影响传递。一个在标量对象上的证明,不能仅靠继续使用字母 HH 就扩大到所有线性系统。对象种类改变了,证明所用的结构也要检查。

这样的检查会把研究问题变得更具体。说“参数对系统有影响”,可以指同一条件下的局部变化,也可以指跨条件总体的平均变化,还可以指最坏条件下的边界。固定条件、总体及其权重、允许变化和观察量各自决定不同问题。后面选择导数、概率、最优化或算子,并不是给同一句话换装;它们要承担这些已经辨出的关系。

从当前读数走到状态与历史#

安排问题中,工时是给定参数,开始时刻是选择;在实际执行中,谁已完成、谁仍占用资源,又形成随时间变化的状态。它们可以写在同一张表里,却承担不同角色。参数规定当前研究的家族实例,输入把外部变化带进来,动作由策略选择,状态则组织下一步演化。把这些角色分清,才能知道“改变一个量”究竟改了什么。

特别需要检查的是状态与观察。某个量能够被读出,并不自动取得组织未来演化的资格。考虑一个有限的确定系统,内部状态集合为 X={a,b,c}X=\{a,b,c\},一步演化 T:X→XT:X\to X 满足

T(a)=c,T(b)=b,T(c)=c.T(a)=c,\qquad T(b)=b,\qquad T(c)=c.

仪表只显示零或一,观察映射为 π:X→Y={0,1}\pi:X\to Y=\{0,1\},其中 π(a)=π(b)=0, π(c)=1\pi(a)=\pi(b)=0,\ \pi(c)=1。现在显示零,内部可能是 a,也可能是 b;前者下一步显示一,后者下一步仍显示零。相同当前读数容许不同未来。

若要直接在读数上定义一个确定演化 g:Y→Yg:Y\to Y,应当使

π∘T=g∘π.\pi\circ T=g\circ\pi.

等式的左边先让内部状态演化,再观察;右边先观察,再让观察值演化。两条路给同样结果,观察才能承担这一层确定动态。上面的构造做不到:由 a 要求 g(0)=1g(0)=1,由 b 又要求 g(0)=0g(0)=0。

这个失败还给出一个一般的检查办法。取任意集合 X、确定演化 T,以及到观察像集 Y=π(X)Y=\pi(X) 的映射 π\pi。存在满足上述等式的 g,当且仅当

π(x)=π(x′) ⟹ π(Tx)=π(Tx′)对所有 x,x′∈X.\pi(x)=\pi(x') \ \Longrightarrow\ \pi(Tx)=\pi(Tx') \qquad\text{对所有 }x,x'\in X.

必要性来自对共同观察值应用同一个 g。充分性则可直接构造:给定 y,取任意满足 π(x)=y\pi(x)=y 的内部状态,定义 g(y)=π(Tx)g(y)=\pi(Tx);条件保证换一个这样的 x 也给同一结果,因此定义与代表元无关。两步合起来,便证明了这个充要条件。

我们由一个小反例取得了可复用的认识:压缩以后,运算能否下降到压缩对象上,要检查被视为相同的对象经过运算以后是否仍被视为相同。这与当前读数“看起来足够详细”是不同的判断。这里的困难落在运算与观察之间的相容性上。

也可以让读数零有两个允许后继,把确定函数改成关系 R={(0,0),(0,1),(1,1)}R=\{(0,0),(0,1),(1,1)\}。这确实记录了一步可能性,继续拼接时却会出现新问题。关系允许 0→0→10\to0\to1,原内部系统中没有这条读数轨迹:从 a 出发,第一步已经到一;从 b 出发,则一直为零。把各时刻的可能性逐步接起来,遗失的内部身份让一些不可能的历史进入了候选。

这个例子使“用关系代替函数”也成为一项需要检查保持内容的变换。它可以给出外部行为的放宽,帮助证明某些对放宽行为仍成立的性质;要精确保存全部历史,则还需更多结构。语言选择带来了表达能力,也带来了相应的证明义务。

如何补足,要随问题决定。可以保留区分 a、b 的内部状态,可以把有关的观察历史带进新的状态,也可以在已有概率条件下维护关于隐藏状态的条件分布。在这个有限例子中,连续两次读到零就能确定内部是 b;第一次的零与第二次仍为零,合起来包含了单个当前零所没有的信息。历史在这里有明确的推理收益。

允许初始状态的范围也会改变答案。若本来只允许 b、c,当前读数已经足够,g(0)=0,g(1)=1g(0)=0,g(1)=1 就能闭合。故“这个观察能否作状态”还依赖研究域。扩大到 a 以后,旧结论失去条件;若没有扩大研究域,原来较简洁的状态仍可继续使用。

从状态到历史、从函数到关系、从单个点到条件分布,改变了数学对象的种类。我们不必把所有过去都原样保存,也不必每遇到困难就引入概率。需要保留的是后续推理真正使用的关系;通过构造和证明,才能判断哪些压缩仍然足够。

未知工时与决策时刻#

不确定性也会改变对象。假如工时在开工前尚未知道,开始时刻究竟是提前公布的固定数字,还是执行中根据完成情况作出的决定?两种解释都合乎日常说的“安排”,其数学内容却不同。

仍取 A、B 两项共用一名工人的准备工作,C 在二者完成后用一小时,执行资源可用。现在工时有两种可能:

P={(pA,pB,pC)=(1,3,1),(3,1,1)}.\mathcal P=\{(p_A,p_B,p_C)=(1,3,1),(3,1,1)\}.

两种情形的总工时都是五小时。允许的安排始终满足先前的非负开始时刻、不中断执行、资源不重叠和依赖要求。我们比较同一组情形下能够保证的完工时间。

先要求公布一份固定开始时刻,对两组工时都有效。若 A 排在 B 前面,B 要等到 A 最慢的三小时之后才能开始,故 sB≥sA+3s_B\geq s_A+3。在 A 只用一小时、B 用三小时的另一种情形中,这个预先公布的 B 开始时刻仍然不变;B 至少到第六小时完成,C 随后再用一小时。因此最坏工期至少为七小时。若 B 排在 A 前面,论证对称,也至少要七小时。固定的 (sA,sB,sC)=(0,3,6)(s_A,s_B,s_C)=(0,3,6) 确实在两种情形下都合法,并在第七小时结束,所以最好的固定安排保证七小时。

现在允许观察完成事件。先做 A,它一结束就做 B,B 一结束就做 C。开始时刻是 sA=0, sB=pA, sC=pA+pB=4s_A=0,\ s_B=p_A,\ s_C=p_A+p_B=4。虽然这里用工时写出了结果,执行时只需等待已经发生的完成事件;开始 B 时,无须预先知道 B 还要用多久。这是一项依历史行动的策略。

两种情形下,该策略都在第五小时完成。共享工人要承担 A、B 的四小时工作,C 随后再用一小时,因此五也是下界。相对于固定开始时刻,允许依据已经出现的信息调整行动,最坏保证从七变成了五。差别来自所允许的决策对象及其信息条件。

记 Φ(s,p)\Phi(s,p) 表示安排 s 在工时 p 下合法并在给定期限 D 之前完成。固定安排的承诺是

∃s ∀p∈P: Φ(s,p).\exists s\ \forall p\in\mathcal P:\ \Phi(s,p).

若完整工时在安排前告知,承诺则是

∀p∈P ∃s: Φ(s,p).\forall p\in\mathcal P\ \exists s:\ \Phi(s,p).

第一式成立,第二式也成立;反过来,各组工时所用的 s 可能不同,还没有给出一份共同固定安排。例中取 D=5D=5,第二式成立,第一式不成立。我们这次有了实际计算的严格差别,量词次序的含义也落到了具体任务上。

在线策略处在另一种信息条件中。记截至时刻 t 已出现的观察和行动历史为 hth_t,策略据此选择下一动作。非预见性要求:两种可能情形在 t 以前给出相同可用历史,就必须在这一时刻给出相同决策。它把“只能使用当时已有的信息”变成可以检查的限制。

这个限制不能由“每种情形都有一个好方案”推出。构造一项一次性选择:时刻零必须在 L、R 两台设备中选一台,期限为一小时;环境有两种情形,分别只有 L 或只有 R 能在期限内完成。选择前,两种情形给出的信息完全相同,也没有改选或重试机会。每种情形当然都有一项成功选择,非预见策略却必须在共同的初始历史上选同一台,因而无法对两种情形都保证成功。

这一构造与前面的完成事件策略相互补足。前例的信息会在后续选择之前出现,并且足以调整开始时刻;后例的决定必须先作出,所需区别来得太迟。所谓“根据反馈安排”,能做到什么,取决于反馈内容、出现时刻及仍然允许的动作。

若允许随机选择,又可以研究另一种承诺。环境情形在选择前已经确定,抽签独立于它。在不知道环境概率时,以概率 q 选 L,以 1−q1-q 选 R,两种环境下的成功概率分别为 q 和 1−q1-q。最坏成功概率为 min⁡(q,1−q)\min(q,1-q),最多达到二分之一;等概率选择达到这个值。随机化建立了一项风险意义下的结果,并未建立对每种情形必然成功的承诺。

于是,不确定性的进入涉及许多具体关系:可能情形有哪些,是否具有概率权重,何时可观察,行动可否调整,以及比较最坏结果、平均结果还是成功概率。选一组平均工时,只回答了那组数下的安排问题;选一项策略,则把信息和行动的接续带入对象。数学语言使这些承诺能够分别陈述,也使它们之间的推论可以逐项建立。

数学语言怎样组织这些关系#

至此用到的数学,已经超出了给字母赋值。图提供点、边、路径和递推;约束提供合法安排及其包含关系;观察提供映射和比较;历史与策略使信息出现的次序进入行动。每种语言都有对象、有允许的构造,也有依这些结构成立的推理。

“数学语言”在这里有两个相连的用法。形式语言可以规定符号、类型和解释,例如一种运算怎样作用于哪些对象,哪些式子表示命题。更广的理论语言,则包括图、空间、测度、算子、动态、变分等组织研究的方式。选择后一种语言时,仍需说明它在当前问题中引入了什么对象和运算,允许我们证明什么。

一条有向边和一个不等式可以表达同一项前置关系,但两种表达各有便于操作的结构。图上可以追踪路径、分辨环、按拓扑顺序递推;不等式可以与时间窗、资源条件放在共同安排空间中检查。它们之间有可解释的对应,研究者可以在需要时切换。关键在于转换后哪些关系仍在,以及新的操作为何成立。

共享工人的“或”还引出一种几何认识。先固定 A 在 B 前,把非负时刻、依赖和 sA+3≤sBs_A+3\leq s_B 合在一起,得到一个由线性不等式定义的可行区域;固定 B 在 A 前,则得到另一块区域。每块区域内,两份可行安排的凸组合仍然可行,因为线性不等式对凸组合保持。允许两种次序的整个可行集合,是这两块区域的并。

并集却未必有同样性质。前面的两个最优安排 s=(0,3,5)s=(0,3,5)、s′=(2,0,5)s'=(2,0,5) 都合法,其平均 (1,1.5,5)(1,1.5,5) 却让 A、B 的工作时间重叠。把方案平均,并没有得到可执行的折中。几何语言在此说明了一个具体困难:区域内的连续变化,与两种次序之间的变化,需要不同处理。

这种分离还可以直接从开始时间差看出。合法安排的 δ=sB−sA\delta=s_B-s_A 必须满足 δ≥3\delta\geq3 或 δ≤−2\delta\leq-2。若试图连续改变一份 A 先做的安排,最后走到 B 先做的安排,连续的 δ\delta 就必须经过中间被排除的值。依照当前执行规则,这条连续过渡不能始终可行。

我们因而可以先选择离散次序,再在相应区域内安排连续时间。这个分工由问题结构产生。若工作允许中断,或者增添一名工人,原来的区域及其连接方式可能改变,又会形成另一类对象。几何的作用是使这些可行变化与阻隔清楚,而不是仅仅把图画得平滑。

概率语言处理的则是另一项关系。前面两种工时被当作允许情形,对它们各自保证截止时间。若另外给出两种情形的概率,就能研究平均工期、分位数或超期概率。允许集合与概率权重取得了不同职责:前者记录哪些情形可能出现,后者决定怎样汇总它们。相同的可能情形在不同概率律下,可以产生不同的平均判断。

比如两种情形中的损失分别为零和十,若概率为九成和一成,平均损失为一;若各占一半,平均损失为五。两种模型允许完全相同的损失值,差别落在权重。把若干试验中的出现频率用作这些权重,还需要检查样本怎样取得、代表哪个总体。这项经验关系将在下一篇展开;当前计算已经说明,平均值的对象必须包括所采用的概率律。

算子语言则使“变化如何传到另一处”能够成为研究对象。前面的标量串联保留了各级乘法关系;进入向量或函数空间以后,还可以研究方向、范数、定义域与累计效应。局部扰动大小、末端响应大小和沿途响应大小因而可以分别定义。某项空间结构若能把原来分散的影响组织成一个可比较的映射,就增加了新的推理能力。

这些语言可以在一个问题中合用。策略作用于历史,历史受到动态规则约束,状态可能具有概率律,性能再通过观察或目标函数取得数值。各项之间有实际依赖,选择语言时便要沿依赖确定所需结构。我们无须先给每个问题安排一套同样的符号;先形成能支持当前操作的对象,再由推理暴露需要补足的地方。

反过来,过早固定一种语言也会替问题作出取舍。把所有关系写成单向函数,会预先期待每个输入有唯一输出;把所有对象写成可行集合,会放下概率权重;把一切变化写成欧氏距离,会期待各坐标差异可以按该方式汇总。这些取舍可以恰当,也可以需要修订。判断从其后果进入:哪一项有用推理得以成立,哪一项重要关系因此失去表达。

对称、取商与必须保留的结构#

“对象有多少自由度”也随身份标准改变。任务名字可以不同,资源和依赖结构却可能完全对称。若这种对称不影响当前观察,就可以研究更少的代表,或者研究由它们组成的等价类。

另取工时为 pA=pB=2,pC=1p_A=p_B=2,p_C=1 的三任务问题,依赖仍为 A→C、B→C,A、B 共用工人。交换 A、B 同时保留工时、依赖和资源要求。于是合法安排 (0,2,4)(0,2,4) 与 (2,0,4)(2,0,4) 通过这一交换对应,项目工期都为五小时。

设 σ\sigma 是任务集合上的置换,保持工时、依赖和资源关系。它作用于安排时,只把每个任务的开始时刻放到对应任务上,即 (σ⋅s)σ(i)=si(\sigma\cdot s)_{\sigma(i)}=s_i。逐项代入条件,便能看到:合法安排仍被送到合法安排;因为工时也被保持,所有完成时刻只是重新排列,其最大值不变。对称性同时保持了可行性和当前目标。

我们可以把能通过这些保持结构的置换相互转换的安排视为一类,研究安排空间的商。这里取商所删去的是当前结构和观察无法分辨的命名差异。若实际 A 需要一项不同的资格,或者我们另外观察 A 的单独交付时间,原来的交换可能失去条件,新的比较就要保留相应区别。

因此,重新命名与允许对称变换并不总是同一件事。单纯给符号换名称、同时搬动全部意义,通常只改呈现;固定问题的解释以后,仅移动部分对象,则要检查结构是否保持。这样的区分使取商有了根据,也使所谓“冗余”落到明确的关系上。

观察闭合的充要条件正好可以用于这里。某项运算若要在等价类上定义,就须确认换一个代表也给同一类结果。保持目标,仅足以让目标在商上成为一个函数;若还想在商上定义演化、训练或组合,就要分别检查那些运算。一个能压缩评价的等价关系,未必足以压缩全部动态。

这使“大对象”和“小对象”之间的关系不再只是变量数量的比较。较小对象可能保留所需推理,也可能遗漏后续操作必须使用的结构。参数空间中的两个点能够实现同一个函数,就是学习系统中的一个重要入口;研究函数行为、表示形成或继续训练时,需要保留的内容未必相同。第三篇会打开这些身份关系,第四篇再研究它们随训练与尺度怎样变化。

一个数学构造怎样迫使语言发展#

取商使对象压缩,提升则可能增加对象的层次。两种操作都可以有充分的数学理由。若某种比较已经把两条路径看得很近,而所求运算仍把它们分得很开,我们就要检查比较是否放下了该运算使用的信息。

考虑区间 t∈[0,2π]t\in[0,2\pi] 上的光滑平面路径,n 取正整数:

xn(t)=1n(cos⁡(nt)−1, sin⁡(nt)).x_n(t)=\frac{1}{\sqrt n} \bigl(\cos(nt)-1,\ \sin(nt)\bigr).

每条路径从原点出发,也回到原点;它绕半径 1/n1/\sqrt n 的圆 n 圈。相对零路径,其一致范数满足

sup⁡t∈[0,2π]∣xn(t)∣≤2n⟶0.\sup_{t\in[0,2\pi]}|x_n(t)|\leq\frac{2}{\sqrt n}\longrightarrow0.

若只按最大位置差比较,路径确实越来越接近静止于原点。然而计算两坐标之间的积分,

I(xn)=∫02πxn1(t) dxn2(t)=∫02π(cos⁡nt−1)cos⁡nt dt=π.\begin{aligned} I(x_n) &=\int_0^{2\pi}x_n^1(t)\,dx_n^2(t)\\ &=\int_0^{2\pi}(\cos nt-1)\cos nt\,dt =\pi. \end{aligned}

这里 dxn2(t)=ncos⁡(nt) dtdx_n^2(t)=\sqrt n\cos(nt)\,dt;整数 n 使余弦在区间内完成整周期,余弦积分为零,平方的积分为 π\pi。零路径的同一积分为零,故一致趋近并未保存这项积分。

小位置变化与累计交互取得了不同尺度。圆越小,转动越快,重复次数越多。路径的速度模为 n\sqrt n,总变差为 2πn2\pi\sqrt n,恰显示运动总量并没有随位置振幅一起变小。一次位置比较留下了我们看得见的“小”,积分还使用了它放下的“如何走过”。

这个构造给出一项明确的不可能性结果:不存在一个定义在全部连续平面路径上、对一致范数连续、且在全部光滑路径上等于上述积分的延拓。否则光滑的 xnx_n 一致趋于零,就要求积分趋于零,与每项都为 π\pi 矛盾。问题已经由一条具体曲线进入一种运算与一种拓扑能否相容。

这时继续提高位置拟合精度,仍不能独自解决困难。可以限制所允许路径的变化,也可以加强比较,或者把积分所需的交互层放进对象。不同选择产生不同理论问题:在何种路径类上运算连续,什么更强距离足够,增加的层应满足哪些结构关系?

对光滑路径,先定义区间交互量

As,t(x)=∫st(x1(r)−x1(s)) dx2(r).A_{s,t}(x) =\int_s^t\bigl(x^1(r)-x^1(s)\bigr)\,dx^2(r).

分割区间 s<u<ts<u<t,把第二段中的 x1(r)−x1(s)x^1(r)-x^1(s) 拆成 x1(r)−x1(u)x^1(r)-x^1(u) 与 x1(u)−x1(s)x^1(u)-x^1(s),便得到

As,t=As,u+Au,t+(x1(u)−x1(s))(x2(t)−x2(u)).A_{s,t} =A_{s,u}+A_{u,t} +\bigl(x^1(u)-x^1(s)\bigr) \bigl(x^2(t)-x^2(u)\bigr).

新增交互量因此有一条可证明的拼接关系。它同原路径的增量相连,区间之间怎样组合也有了约束。提升对象的意义在这里逐渐取得内容:我们既保存位置增量,也保存某种二阶交互;允许的对象还须服从这条关系。

粗糙路径理论系统发展了这一思路,以路径及其迭代增量构造增强对象,同时规定代数关系和相应正则性、比较尺度。1 在本例中,我们已经用光滑曲线和普通积分看清楚需要补入的关系。进一步要研究一般积分或驱动方程的稳定性,就应在增强对象上建立对应条件和证明。

数学构造在这里主动改变了问题。起先只是“路径很接近时,积分会不会接近”;反例使我们辨出一致比较的缺口,继而形成连续延拓、正则性、增强对象和组合关系等问题。它们有自己的数学内容,也能在研究受快速振荡信号驱动的系统时发挥作用。向应用返回时,仍需确认实际对象和观察是否保留了这一机制。

理解的修订,可以发生在不同范围#

沿这些构造回看,“模型需要修改”至少涉及几种不同的工作。工时变化、观察改变、状态补足和语言发展,都可能使原来的理解发生变化。辨认修订范围,能帮助我们保留有效结果,并重新检查真正受影响的关系。

一种修订发生在实例和假设中。资源充足时,工时由三小时改成四小时,任务集合与依赖仍在,最长路径的递推仍可使用,结果则随参数改变。若资源充足变成资源受限,变化已经触及定理条件:路径下界留下,可达构造须另做。这里要说明哪组参数、条件和初始情形已采用,后续结论才有对应对象。

另一种修订发生在表示和观察中。对同一安排,改看 B 的交付时间;对同一传递链,改看最大前缀放大;对同一状态,改用能区分 a、b 的读数。这些变化可以增加所需信息,也会改变相同与不同的标准。新的比较需要自己的定义,不能把它的成功倒写成旧比较已经成功。

表示的变化还可能是可逆的。若把开始时刻统一从小时改成分钟,并同时换算工时、期限和所有相关量,原安排有逐项对应,完成顺序和可行性可以保持。若只把某个数扩大六十倍,其余单位不动,就改变了条件本身。一个熟悉的换算也在要求映射保持正在使用的关系。

第三种修订改变对象的种类或构造。从固定开始时刻进入策略,从当前读数进入历史,从普通路径进入带交互层的路径,都增加了原对象不能承担的内容。随后允许的运算、相等标准和证明方法也可能变化。我们应重新检查受影响的定义与推论,解释旧对象如何成为新对象的特例、投影或某个受限部分。

策略尤其说明这类变化的意义。它并不是把工时参数列得更长,而是把“观察出现以后再选择”构造成一个对象。固定安排可以作为不随历史调整的特殊策略;完整知道未来的选择却不一定属于非预见策略。对象之间的关系由此明确,已有的七小时与五小时结果各自保留位置。

第四种修订涉及语言与理论组织。函数语言在某些地方不足以组织相容关系,行为和约束语言便使共同满足、无解、多解及隐藏变量成为可研究内容;一致路径比较不足以保存积分,增强对象与新的比较结构则进入问题。这里改变的不仅是一项参数,也包括所研究的对象类、允许操作和结论传递方式。

这些范围没有规定的先后等级。一次实验偏差可能只要求重估参数,也可能暴露状态遗漏;一个纯数学反例可能推动改变拓扑,也可能支持一项不可能性结论。采用一种较一般的理论,有时能够经济地组织关系,有时也会增加当前问题不需要的负担。修订应当由实质收益取得理由。

这种收益可以落实为几项具体认识:一个此前无法定义的运算如今有了良好定义,一条原先失败的推理在明确条件下成立,一种被压缩的差异重新进入观察,或者一项原承诺被证明在现有信息下无法完成。它们使后续研究、采样、实现与判断各有可以接续的地方。

打开模型,选定边界,再追踪用途#

以上构造还提示了一套更完整的组织方式。同一个对象可以从内部、边界和用途三个方向研究;当研究尺度改变,我们也可以在这些方向之间返回。需要统一的是关系的可追踪性,具体语义仍随对象种类保留。

内部视角首先问:这个模型内部是什么。依赖图、不重叠公式和目标函数是呈现;相应的合法安排与比较规则,是选定解释下的数学内容。这里的类型与定义域决定符号能做什么,解释决定式子指向什么关系,观察又决定从这些内容里读取什么。家族、固定实例和单次结果分别占据位置。

这也使“模型”一词的不同用法可以辨认。形式理论的模型,是满足指定语言及公理的结构;动力系统的数学内容可能由演化或允许历史组织;经验模型还需与实际参照对象建立表征关系。定义域中有解、公理得到满足,以及模型足以描述某项经验现象,各自回答不同问题。

内部比较因而有几个入口。换一种写法,可能保存全部语义;把允许安排压成一个最优值,则只保存某个观察;从可能结果集合走到概率律,补入了权重;从输出函数走到状态型程序,又加入了交互与作用。比较前须确定对象和身份标准,继而检查哪些结构保持。第三篇将充分展开这些关系。

开放组件视角则从一个用途选出边界。对排程工具,边界可以包括任务与资源资料、输出安排、更新时间和错误返回;对动态设备,还可能包括测量、动作、时钟、协议及所需能力。内部数学对象怎样在这些端口上产生行为,才成为互联的起点。

边界一旦确定,接线就给局部对象增加了共同约束。两个局部标量关系 y=uy=u、u=y+ru=y+r,分别都能单向求值;接起来却要求 r=0r=0。当 r≠0r\neq0 时无解,r=0r=0 时又有无穷多组 (u,y)(u,y)。局部求值各自正确,并没有决定整体是否存在唯一结果。

用共同满足关系组织互联,我们能够明确研究约束是否相容、哪些内部量应被隐藏、外部还能看到什么。进入有时间的对象以后,还要检查历史、因果和反馈良定性。概率组件保留相应的概率律或核;仅看可能值的集合,不能代替风险与相关性的比较。

进一步还可给组件附上条件承诺:环境满足怎样的假设,组件保证什么,接线以后这些假设由谁兑现。更换组件时,同样的端口类型只是开始;实际时间、协议、作用及允许上下文都可能影响整体性质。第五篇将沿接线、隐藏、契约闭合与上下文替换把这项工作展开。

工程关系视角问的则是:这些对象和结果怎样支持一项用途或决定。这里需要把目的与决策 PP、参照对象 WW、观察资料及其来源 ZZ、语义模型 MM、要求 SS、操作判据 JJ、计算制品 CC、运行系统 OO、有地址的证据 QQ、变化及其影响 LL 接到实际关系中。

若要用安排模型支持一次真实交付,首先须知道任务边界和资源条件,工时资料怎样取得,允许的安排怎样描述,期限与其他要求怎样规定。使工期最小是一种操作判据;某项必须满足的安全或资格要求,又可能另外限制可行集合。目的、要求和判据各自说明了决定中的一部分内容。

模型再由算法、代码和计算资源实现,结果可能交给人用于离线决策,也可能进入一个实时运行系统。输出一个数学上合法的安排、按规定时间输出它、实际执行后达到交付目标,分别需要相应关系成立。若计算延迟使安排发出时已经失去条件,正确的最优值还不能直接支持原来的运行承诺。

证据也因此有明确地址。对哪项主张、哪个对象、什么用途、哪个条件域和版本,使用什么方法建立了支持?调度定理支持资源充足家族中的最优性;一段代码测试支持指定计算行为;工时测量与执行记录又支撑经验和运行关系。证据的汇合要检查双方对象及条件相接,不能由“模型已验证”一语包办。

版本变化会使这种关系更清楚。改工时资料可能改变实例,改求解器可能改变计算制品,改更新时间可能改变运行对象,改用途则可能改变要求和观察。它们未必同时变化。第六篇会把责任图、离线和在线路径、证据及更新充分展开。

三个视角能够递归使用。把一个组合系统作为整体研究其用途,是工程关系视角;为解释失败而打开其中一个组件,可以返回内部视角;需要更换该组件,又进入开放边界和上下文。换一层尺度以后,仍要说清当前比较的对象,并让证明和证据跟随这一边界。

当前需要辨认的关系有用的进入视角已有构造提供的起点
对象包含什么、怎样比较身份内部语义图、约束、观察、状态和增强路径
局部对象怎样共同形成整体开放组件接线相容性、时间与条件承诺
结果凭什么支持实际决定工程关系用途、资料、要求、计算、运行及证据

这张表给出了进入问题的方向。纯数学构造可以先在内部发展,离线分析可以经结果和证据返回决策,运行中的反馈也可以重新打开状态与观察。每种情况按照实际关系选择所需角色,理解才保持经济而又足够。

数学理解怎样回到实践#

数学的进展可以发生在不同地方。最长路径的证明使一类安排取得精确答案;不可闭合的观察揭示了状态信息的不足;七小时与五小时的差别使信息价值进入承诺;路径积分的反例则推动我们改变对象和比较。它们分别改变了能知道什么、能证明什么和能设计什么。

回到实际事情时,还要让这种改变取得经验内容。三小时与两小时从何而来,一项工作在当前条件下是否真能不中断执行,一名工人是否具备所需能力,测量与日志是否保存了决策使用的时刻,都会影响模型能否支持原定用途。数学构造已经说明这些关系的重要,具体成立与否还需要实际根据。

实践也可能改变提问。原先追求最短工期,运行中却发现把所有任务集中给某一位工人会产生新的负担;原先用平均延误评价方案,一次严重超期又使最坏风险成为主要关切。数学可以说明不同要求怎样改变可行集合和结果,相关参与者仍需形成对目的与代价的判断。新的目的再进入模型,推理和证据便要随之重新连接。

一种成熟的数学把握,因而容许问题继续发展。它能说明旧表述在哪一步取得了成果,在哪一步遇到困难,新结构增加了怎样的能力,以及哪些结果还可以保留。成功的计算和有内容的反例,都能参与这个过程;形式化使变化取得明确对象,也使后续修订有根据可循。

我们已经从三项任务走到图、可行集合、观察、历史、策略、商和增强路径。每次引入新对象,都有一项具体关系需要承担。接下来要追踪这些数学对象怎样与实际观测、装置和数据相接:一项形式关系如何取得描述经验对象的根据,反馈又如何改变它。第二篇从水箱进入这层工作。


模型与工程:六篇核心阅读

  1. 数学怎样形成问题:对象、结构与语言
  2. 模型怎样指向世界:表征、测量与经验有效性
  3. 模型内部是什么
  4. 模型怎样改变
  5. 模型怎样进入整体
  6. 从模型到工程判断:用途、实现、证据与更新

延伸阅读:一个扰动怎样穿过交通系统。

Footnotes#

  1. Peter K. Friz、Martin Hairer,A Course on Rough Paths: With an Introduction to Regularity Structures,第二版,2020;本地回读作者2024年3月3日更新稿 §2.1,印刷页16—18(PDF30—32),Definition 2.1、Definition 2.4及相邻说明。该处把路径与二阶迭代增量、拼接关系及正则性共同组织为粗糙路径对象。本文振荡路径及连续延拓的论证为直接计算。参见作者稿。 ↩

模型与工程·一|数学怎样形成问题:对象、结构与语言
https://weathour.github.io/posts/mathematical-language-and-problems/
作者
Weathour
发布于
2026-09-30
许可协议
CC BY-NC-SA 4.0