OKR和斐波拉契数列中的递归
企业在运用OKR管理体系时,往往上一个管理层级的Results会成为下一个层级的Objective,或者下一层的Objective会汇聚成为上一层的Results。比如,分管市场营销和销售的VP的年度业绩目标会层层分解为最下面的销售人员的销售任务;或者由销售人员自定义的销售任务会汇总成为VP的业绩目标。这既体现了层层分解的目标层级体系(Hierarchic Structure),也包含递归(Recursion)的思想。
递归,从字面上理解意思是(Re-cur):复发、重现或者再来。下面美国著名漫画系列“南西”(Nancy)中的两幅画,都是一个主题:睡梦中的睡梦,一个是女孩,另一个是男孩。
Nancy: I have a dream that ...
Sluggo: I have a dream that ...
作为数学和计算机科学中常见的概念,简单的理解就是:递推+回归。「递」的意思是将问题拆解成子问题来解决, 子问题再拆解成子子问题,直到被拆解的子问题无需再拆分成更细的子问题(即可以求解)。「归」是说最小的子问题解决了,那么它的上一层子问题也就解决了,上一层的子问题解决了,上上层子问题自然也就解决了。
我们以6的阶乘 f(6) 为例,来看下它的「递」和「归」:
求解问题 f(6), 由于 f(6) = n * f(5), 所以 f(6) 需要拆解成 f(5) 子问题进行求解,同理 f(5) = n * f(4) ,也需要进一步拆分,直到 f(1), 这是「递」。f(1) 解决了,由于 f(2) = 2, f(1) = 2 也解决了…… f(n)到最后也解决了,这是「归」。
在递归过程中,每一步的计算是重复的,也就是说,相同的计算方式反复重演。用数学的语言来表述,就是函数反复调用自身。
著名的斐波拉契数列的特征是:处在第(n-1)和第(n-2)位的两个数加起来之和等于第n位数,其函数表述为:
F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
OKR目标管理与斐波拉契数列有什么关系呢?斐波拉契数列计算的每一步都是相同的计算方法即F(n-2)+F(n-1)。OKR管理中,每个层级的目标设定方法都是Objective+Key Results(等于下一层的Objective)。因此,我们可以说OKR管理体系包含了递归的结构。
递归是剖析复杂性的剃刀
在前面的文章中我们有谈到,如何理解复杂性和剖析复杂系统的“透镜”和“剃刀”主要有:分解、层级、模型、模块、网络以及降维(或者投影)等,而递归也是一个强大手段和有效方法。
人类的语言是丰富和复杂的,同时又是简单的。以中文为例,词语的数量大约有XXX,能够组合成为的句子数量难以计量,不过词组和句子的基本结构类型为五种:主谓、述宾、偏正、联合和述补。
主谓结构:
高铁/晚点了
学校/开学了
李总/在开会
明天/会下雨
述宾结构:
做/早餐
切/西瓜
坐/的士
学习/编程
偏正结构:
马上/出发
深圳的/GDP
高/规格
喜/迎新春
联合结构:
打扫厨房、客厅和卧室
准备身份证、信用卡和机票
打印资料、查询路线并给车加油
述补结构:
急/哭了
饿/晕了
搬/出去
从表面上看,句子好像是一个挨着一个的一串词,实际上,它的内部组织是由层次的。
每位住户都必须接受核酸检测
这个普通的句子可以分为六层,词与词组合成为词组,词组又可以与其它的词或词组组成更大的词组,词和词组按照一定规则一层一层组合起来就形成了句子。
不仅如此,在句子当中,相同或不同的结构类型还可以层层嵌套,扩展成为具有复杂结构和含义的句子。
比如:我知道你不知道我知道。
第一层:
“我/知道……”,是主谓结构。
第二层:
“知道/你不知道……”,是述宾结构。
第三层:
“你不知道……”,是主谓结构。
第四层:
“你不知道/我知道”,是述宾结构。
第五层:
“……我/知道”,是主谓结构。
这是主谓和述宾两种结构相互嵌套的例子,其中述宾可以作为主谓的谓语,主谓又可以作为述宾的宾语。
这个句子其实还可以不断地嵌套下去:“我知道你不知道我知道你不知道……”。
正因为语法结构由递归性,我们才可能使用有限的规则调用有限的词汇去创造出数量无限多、长度几乎不受限制的句子。
同时,递归的结构不仅体现在句法,还可以运用在语篇的建构。比如,童年,小孩央求大人讲个故事,大人有时会讲这样一个故事:
从前有座山,山上有座庙,庙里有两个和尚,一个老和尚、一个小和尚。老和尚在给小和尚讲故事,老和尚说,从前有座山,山上有座庙,庙里有两个和尚,一个老和尚、一个小和尚。老和尚在给小和尚讲故事,老和尚说,……
英文中有类似的例子:
It was a dark and stormy night, and we said to the captain, "Tell us a story!" And this is the story the captain told: "It was a dark and stormy night, and we said to the captain, 'Tell us a story!' And this is the story the captain told: 'It was a dark.…'"
这是一个永远也讲不完的故事,因为故事中有故事,一个套一个,无休止地循环,这正是语言递归性(recursiveness)的体现。
世界著名语言学家乔姆斯基(Chomsky) 指出 :“如果一种语法没有递归机制 , 它就会复杂得难以想象。如果它确实有某种递归机制 , 就会产生无限多句子。”
语言是一种符号系统,作用首先在于指代和表示人的外部环境与内心世界。语言之所以展现出层级性和递归性,是因为世界作为系统本身具有层级性和递归性。这里的世界系统包括物理系统、生物系统和社会系统以及由人创造和生产出来的各种符号、技术系统等。
物理和自然世界中的递归
分形(Fractal)是一个数学术语,通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状,即具有自相似的性质。”
分形的图案及其现象无处不在,似乎是一种遍布数学、物理、地理、生物以及宇宙的“上帝语言”。我们可以从周遭无数事物中发现它的“现身”:树叶、雪花、河流、花朵、闪电、人体组织等等。
既然分形的每一部分都是整体的缩小,那么很自然地会联想到自身调用自身的程序,即递归。如果使用递归的算法来绘制一颗分形树,大致如是这样(如图):
自然界中最令人感到惊异的莫过于斐波拉契数列及其中的递归模式,比如:生物学上著名的“鲁德维格定律”:
在树木的生长过程中,新生的枝条往往需要“休息”一段时间,供自身生长,而后才能萌发出新枝。一株树苗在一段间隔,例如一年,以后长出一条新枝;第二年新枝“休息”,老枝依旧萌发;此后,老枝与“休息”过一年的枝同时萌发,当年生的新枝则次年“休息”。这样,一株树木各个年份的枝桠数,便构成斐波拉契数列,而其中老枝继续萌发,新枝暂时“休息”的模式则是一种递归。
社会系统中的递归
观察和分析社会组织(公司和政府部门等)可以采用两种视角:层级结构和递归结构。层级是最为常见的组织架构。
不同层级之间又有“自相似”的架构或者职能。例如,国务院——省——市——县,各级都会具备财政、税务、公安、司法、教育、监察等办事机构。
一家集团性质的公司,从集团总部到子公司,再到地区各分公司。从规模上,集团可能覆盖全球的业务,分公司只负责某个城市的业务,但是在架构设置上几乎都会有HR、财务、法务、行政等职能部门。
站在一个HR的角度,不管是CEO,还是普通层级的员工,每个人员的ID信息(姓名、岗位、职级、薪酬、社保等)的结构都是类似的,换句话也是递归的。
技术系统中的递归
复杂性科学的奠基者之一、首屈一指的技术思想家布莱恩·阿瑟在《技术的本质》深刻地指出,技术系统也同时具有层级结构和递归性,
技术具有层级结构:整体的技术系统是树干,系统的次级组成部分是枝干,再次级是枝条,最基本的零件是更小的分枝。
技术具有递归性:结构中包含某种程度的自相似组件,也就是说,技术是由不同等级的技术建构而成的。
“技术包含的集成块是技术,集成块所包含的次一级的集成块也是技术,次一级集成块包含的再次一级的集成块还是技术……换句话说,技术有一个递归性结构,技术包含着技术,直到最基础的水平。”
我们熟知的 GPS 这项技术,就是由原子钟,卫星和接收器三种组件组成的,并以分层的方式由更基础的技术组成,这就是所谓的“技术递归(Technological recursion)”。
图 :技术的递归结构:GPS 由原子钟、卫星和接收器组成。而原子钟又由激光器、微波腔和真空室等组成,逐层递推。同时 ,GPS 本身也是技术系统的一个组件,如导弹和手机中的地图导航。
GPS 的例子表明,如果不进行技术递归,次级组件将由至少 13 个,而不是目前的 3 个组成。显然 ,13 个组件会大大增加技术系统的设计复杂度和工程难度。而如果采用技术递归,即使非常复杂的技术系统,如:大型客机、航空母舰、火星探测器等,也能由为数不多的组件构成。
游戏系统中的递归
游戏,不管是简单游戏,还是大型游戏,都是一个有玩家+游戏为基本元素的系统,而游戏本身和玩家(一个或多个)又各是一个子系统。玩家与游戏之间进行交互:玩家向游戏提供输入,游戏向玩家提供反馈,彼此之间有这种有来有往通常被称为游戏的核心循环(Core Loop)。
当我们把视角拉大还会发现,游戏的设计师也处在一个循环之中,他设计出玩家+游戏的系统,该系统为他提供反馈。游戏设计师的循环能够帮助他进行游戏系统的迭代和优化。
如果进一步放大视野,又会出现一个更大的循环,负责游戏设计和开发的公司规划和推动一个大的系统:游戏设计师+(游戏+玩家),该系统又会给公司提供反馈(游戏下载、用户数量和收入等)。
小循环嵌套在中循环中,中循环又嵌套在大循环中,大循环之上可能还有更大的循环(比如:游戏产业链、游戏行业监管等),形成递归的结构和过程。
管理工作中的递归
PDCA循环(又称戴明环)是职场人士熟知的管理方法,由Plan-Do-Check-Adjust四个阶段组成。其中,第四个阶段常被称为“行动”(ACTION)阶段,不过作者认同《PDCA高效工作术》作者富田和成的观点,使用“调整”(ADJUST)更为恰当。
与游戏系统的循环类似,PDCA也是循环嵌套组成的多层级系统,一个PDCA循环不仅包含自身上一层级的PDCA,同时也包含其细化后的下一层级的PDCA。
可以说,PDCA循环既是迭代的,又是递归的。所谓迭代,就是每个循环在操作后进行反思和优化,再进入下一次循环。递归意味着,在不同层级的循环之中,PDCA的要素都是相同的四步。这在管理中的实践意义在于,处在高一层级的管理人员主要关注相应层级或者大循环中的PDCA。
代者是人,递归者是神
自己重复自己,自身调用自身,自我与自我相似……在看似简单的模式及其反复循环中,复杂的现象和复杂的系统神奇般地产生了。所以,我们说递归是复杂性的一种典型和重要的“生长”机制,简单可以产生复杂,而复杂由此蕴藏着简单。
“在扑克游戏中,你从不会玩你自己手里的牌,”詹姆斯·邦德在《皇家赌场》中说,“你玩的是你对面的那个人的牌。”事实上,你真正玩的是一个理论上的无限递归。你知道自己手里的牌,并且知道你的对手所拥有的牌,然后你相信你的对手知道你所拥有的牌,你相信你的对手也知道你知道他有的牌……
“我不知道这是不是一个真正的博弈论术语,”世界排名第一的扑克玩家丹·史密斯说道,“但是扑克玩家称它为‘水平’。第一级水平是‘我知道’。第二级是‘你知道我知道’。第三级是,‘我知道你知道我知道’。”
这种博弈的复杂性来自于玩家的脑中同时在上演着递归的戏码,并且递归到哪一个层级终止由双方的互动和反馈(出牌、表情等)来决定。
因此,递归不仅是外部世界存在的结构模式,也是我们内在思维的运作机制。无怪乎著名计算机科学家彼得·多伊奇(L. Peter Deutsch)振聋发聩地说出:To iterate is human, to recurse divine(迭代者是人,递归者是神)。