决策分析
——引自李荣钧、邝英强《运筹学》华南理工大学出版社
管理就是决策——
赫伯特·西蒙(Herbert A.Simon,1916~?)
赫伯特·西蒙(Herbert A.Simon,1916~?)简介
美国管理学家和社会科学家,于1916年生于美国威斯康星州密尔沃基。毕业于芝加哥大学,1943年获得博士学位。曾先后在加利福尼亚大学、伊利诺工业大学和卡内基一—梅隆大学任计算机科学及心理学教授,曾从事过计量学的研究。他还担任过企业界和官方的多种顾问。他倡导的决策理论,是以社会系统理论为基础,吸收古典管理理论、行为科学和计算机科学等的内容而发展起来的一门边缘学科。由于他在决策理论研究方面的突出贡献,他被授于1978年度诺贝尔经济学奖。 西蒙在管理学方面所研究的主要是生产者的行为,特别是当代公司中决策的组织基础和心理依据。他在早期对经营管理科学感兴趣,并于50年代在“公司行为理论”的建立中起了重要作用。这种“公司行为理论”对简单的利润最大化假设提出挑战,强调了大公司中复杂的内部结构,其目标和子目标的多重性,以及必须建立“令人满意的”而不是“最优的”决策模型。然后,西蒙又转而研究大型组织中的信息处理问题。他认为信息本身以及人们处理信息的能力都是有一定限度的。他进一步研究了利用计算机模型来模拟人们解决问题(如下棋)的思维过程,以及其它认识过程,并为公司决策人员提供“决策辅助系统”。
他的主要著作有:《管理行为》,《公共管理》,《人的模型》,《组织》,《经济学和行为科学中的决策理论》,《管理决策的新科学》,《自动化的形成》,《人工的科学》,《人们的解决问题》,《发现模型》,《思维模型》等。 西蒙认为,决策贯穿管理的全过程,决策程序就是全部的管理过程,组织则是由作为决策者的个人所组成的系统。全部决策过程是从确定组织的目标开始。随后寻找为达到该项目标可供选择的各种方案,比较并评价这些方案,进行选择并作出决定;然后执行选定的方案,进行检查和控制,以保证实现预定的目标。这种管理理论与学派,对决策的过程、决策的准则、程序化的决策和非程序化的决策、组织机构的建立同决策过程的联系等作了分析研究。他们还指出,集权和分权的问题不能脱离决策过程而孤立存在,集权和分权的程度,应按不同的决策性质和其他因素,如组织的规模、人员的素质等来确定。
西蒙在管理学上的第一个贡献是提出了管理的决策职能。西蒙之前,法约尔最早对管理的职能作了理论化的划分。此时,决策被包含在计划职能之中,其后的管理学者对此也没有提出疑问,只是到了本世纪四十年代,西蒙提出了决策为管理的首要职能这一论点之后,决策才为管理学家们所重视。今天决策理论枝繁叶茂,与西蒙对这个领域的开创性贡献是分不开的。 西蒙对管理学的第二个贡献是建立了系统的决策理论。并提出了人有限度理性行为的命题和“令人满意的决策”的准则。在西蒙之前,微观经济学家对个人在市场中的行为也进行了深入的研究。微观经济学认为,个人具有完全的理性,完全按效用最大化的原则选择。这一命题暗含的前提是:个人已经知道了可供选择的全部方案,并且对这些方案可进行效用排序,决策者可从中作出最大的选择,这一选择理沦又称之为完全理性的经济人行为理论。西蒙认为,完全理性的经济人模式有两个缺陷,其一,人不可能是完全理性的,人们很难对每个措施将要产生的结果具有完全的了解和正确的预测,相反,人们常常要在缺乏完全了解的情况下,一定程度地根据主观判断进行决策。其二,决策过程中不可能将每一个方案都列出来,一是人们的能力有限,二是决策过程的成本限制,人们所作的决策不是寻找一切方案中最好的,而是寻找已知方案中可满足要求的。西蒙进一步指出,在符合要求的选择中,“要求”和“标准”本身也是决策人们所处的环境的一个组织部分,因而不应该把标准看成是给定的。当替代的措施被证明是容易发现时,就可提高标准,而难以发现时,就应降低标准。如果一并考虑寻找替代措施所产生的成本时,那么当由于提高标准而得到替代措施所产生的“边际效益”抵补了为寻找满足这个更高的标准的措施所花费的“边际成本”时,那未选定的替代措施将会接近“最佳条件”。由此可见,标准不应一成不变,其高低应与寻找替代措施的成本相适应。
一、决策的基本概念
广义的决策是指确定目标、制订方案、评价选择和实施验证的全过程;狭义的决策仅指对决策方案的评价和选择,即广义决策中的第三环节。
1、 决策涉及的基本因素有以下几种:
目标(Objectives)
方案(Alternatives)
自然状态(States of Nature)
后果(Decision Outcomes)
2、决策表
将方案自然状态后果等要素归纳在一张表中,便得到常用的决策表,也称为决策矩阵(Decision Matrix),如下图。表中为后果值。
3、根据决策者对决策环境的认识程度由浅入深可以将决策划分为:
不确定型:决策者对决策环境知之甚少,只能判断未来的状态可能有哪些,但没有足够的信息给出每种状态发生的概率;
风险型:对环境的认识相对充分,尽管未来环境状态也是不确定的,但每种状态发生的概率是已知的;
确定型:未来环境处于完全确定的状态,因而决策的结果也是完全肯定的。
此外,还可以根据决策人数的多少将决策划分为个人决策和群决策;根据决策目标的多少将决策划分为单目标决策和多目标决策等等。
二、不确定型决策分析
不确定型决策是指决策者虽然知道有哪些可能的未来状态,但没有足够的信息以确定每种状态发生的概率。因此,这种决策表现出较强的主观随意性,主要取决于决策者的经验、判断和风格。不确定型决策的主要决策准则:
1、乐观准则(Optimism)
2、悲观准则(Pessimism)
3、赫威兹准则(Hurwicz)
4、等概率准则(Laplace)
5、后悔值准则(Regret Value)
三、风险型决策分析
风险型决策是指决策者根据不同自然状态可能发生的概率所进行的决策。由于决策者采取的任何一个行动方案都会遇到一个以上自然状态所引起的不同结果,因而无论决策者选用哪个行动方案都要承担一定的风险,故将这一类决策称为风险型决策,也称为随机型决策或统计型决策。
风险决策通常有两种描述的方法:一种是表格方法,即决策矩阵法,另一种是图示方法,即决策树。前者只适用于单级决策,后者还适用于多级决策。
风险型决策的主要决策准则:
1、期望损益准则(Expected Value)
2、期望效用准则(Expected Utility)
四、序贯型决策分析
决策问题包含着一系列相互关联的决策行为,必须逐级地从若干个分离但又相互关联的方案中进行选择,才能最终地达到决策目的,这样的决策被称为序贯决策(Ssquential Decision)或多级决策(Multistage Decision)。
五、贝叶斯决策分析
风险型决策的基本特点就是将状态参数视为随机变量,并将决策者对于未来状态发生的可能性的估计用概率的形式表示出来,然后在决策分析中,采用期望值准则评价行动方案的优劣。
由于对自然状态发生的可能性的估计直接影响到决策的正确性,因此在可能条件下应尽量提高对自然状态发生概率的估计的精确程度。
所谓贝叶斯分析就是先由决策者根据历史资料或个人经验为每一种未来状态估计一个发生的概率,称为先验概率;然后通过设计的样本实验或市场调查以获取额外的相关信息,再利用在这些补充的信息结合贝叶斯公式对原概率进行修正,修正后的概率称为后验概率。
(一)贝叶斯公式与后验概率
(二)信息的价值
贝叶斯决策的一个重要特点就是利用补充信息来修正先验概率,从而提高决策的准确性。显然,补充信息的多少将直接影响修正的效果及程度。换言之,不同的补充信息会产生不同的价值。如果决策者能够获得关于自然状态的完全信息(Perfect Information),从而确知未来发生的自然状态是哪一种,那么风险型决策就变成了确定型决策。
确定状态下的期望值(Expected Value Under Certainty,EVC)
完全信息的价值(Expected Value with Perfect Information,EVPI)
先验决策的最大期望值(EVP*)
EVPI=EVC- EVP*
多属性决策分析
就是循环地找到出发点.
一个解决此类问题基本的想法是从某个节点开始,然后查出一个从这个点出发回到这个点的环路径。这种方法保证每个边都被遍历.如果有某个点的边没有被遍历就让这个点为起点,这条边为起始边,把它和当前的环衔接上。这样直至所有的边都被遍历。这样,整个图就被连接到一起了。
具体步骤
如果此时与该点无相连的点,那么就加入路径中.
如果该点有相连的点,那么就列一张表,遍历这些点,直到没有相连的点.
处理当前的点,删出走过的这条边,并在其相临的点上进行同样的操作.并把删除的点加入到路径中去.
其实这就是一个递归过程.
但选择起点时要注意.如果所有点的度数为偶数,那么可以依题意随意选择,都可得到一条欧拉回路.
如果有的点度数为奇数,那么先判定是否存在欧拉路径,如果存在,那么起点必须从度数为奇数的点开始.
来自USACO上的例子
考虑左边的图,每个点的度都为偶数.则存在欧拉路径.
来自USACO上的例子
Stack: Location: 1 Circuit:
来自USACO上的例子
Stack: 1 Location: 4 Circuit:
来自USACO上的例子
Stack: 1 4 Location: 2 Circuit:
来自USACO上的例子
Stack: 1 4 2 Location: 5 Circuit:
来自USACO上的例子
Stack: 1 4 2 5 Location: 1 Circuit:
来自USACO上的例子
Stack: 1 4 2 Location: 5 Circuit: 1
来自USACO上的例子
Stack: 1 4 2 5 Location: 6 Circuit: 1
来自USACO上的例子
Stack: 1 4 2 5 6 Location: 2 Circuit: 1
来自USACO上的例子
Stack: 1 4 2 5 6 2 Location: 7 Circuit: 1
来自USACO上的例子
Stack: 1 4 2 5 6 2 7 Location: 3 Circuit: 1
来自USACO上的例子
Stack: 1 4 2 5 6 2 7 3 Location: 4 Circuit: 1
来自USACO上的例子
Stack: 1 4 2 5 6 2 7 3 4 Location: 6 Circuit: 1
来自USACO上的例子
Stack: 1 4 2 5 6 2 7 3 4 6 Location: 7 Circuit: 1
来自USACO上的例子
Stack: 1 4 2 5 6 2 7 3 4 6 7 Location: 5 Circuit: 1
来自USACO上的例子
Stack: 1 4 2 5 6 2 7 3 4 6 Location: 7 Circuit: 1 5
来自USACO上的例子
Stack: 1 4 2 5 6 2 7 3 4 Location: 6 Circuit: 1 5 7
来自USACO上的例子
Stack: 1 4 2 5 6 2 7 3 Location: 4 Circuit: 1 5 7 6
来自USACO上的例子
Stack: 1 4 2 5 6 2 7 Location: 3 Circuit: 1 5 7 6 4
来自USACO上的例子
Stack: 1 4 2 5 6 2 Location: 7 Circuit: 1 5 7 6 4 3
来自USACO上的例子
Stack: 1 4 2 5 6 Location: 2 Circuit: 1 5 7 6 4 3 7
来自USACO上的例子
Stack: 1 4 2 5 Location: 6 Circuit: 1 5 7 6 4 3 7 2
来自USACO上的例子
Stack: 1 4 2 Location: 5 Circuit: 1 5 7 6 4 3 7 2 6
来自USACO上的例子
Stack: 1 4 Location: 2 Circuit: 1 5 7 6 4 3 7 2 6 5
来自USACO上的例子
Stack: 1 Location: 4 Circuit: 1 5 7 6 4 3 7 2 6 5 2
来自USACO上的例子
Stack: Location: 1 Circuit: 1 5 7 6 4 3 7 2 6 5 2 4
来自USACO上的例子
Stack: Location: Circuit: 1 5 7 6 4 3 7 2 6 5 2 4 1
伪代码
find_circuit(node i)
{ 如果当前结点没有边
将其加入到路径中
否则:while(node i 没有相连的边)
{ j是与i相临的顶点(即i,j之间有一条边)
find_circuit(j);
删除i和j之间的边
}
将i加入路径中去
}
void solve(int x)
{
if(match[x] == 0)
{
Record[RecordPos] = x;
RecordPos++;
}
else
{
for(int k =0;k<=500;k++)
{
if(Array[x][k] !=0 )
{
Array[x][k]--;
Array[k][x]--;
match[x]--;
match[k]--;
solve(k);
}
}
Record[RecordPos] = x;
RecordPos++;
}
}
Q & A