决策模型(二):风险决策法



决策模型(二):风险决策法

前言

风险决策法是指决策者对客观情况不了解,但是对将发生各事件的概率是已知的。决策者往往通过调查,根据过去的经验或主观估计等途径获得这些概率。在风险决策中一般采用期望值作为决策准则,常用的有最大期望收益决策准则(EMV)和最小机会损失决策准则(EOL)。

风险型决策问题一般具有以下特点:

决策具有明确目标: 获得最大收益(利润)或最小损失;

存在两个以上可供选择的行动方案

存在两个或两个以上不以决策者主观意志为转移的自然状态,但决策者根据过去的经验,主观估计或科学理论等可预先估算出这些状态出现的概率值;

各行动方案在确定状态下的损益值可以计算出来;

下面接着上一篇博文,对文中的例子做风险决策分析,决策矩阵如下:

(策略\事件) E1 = 0 E2 = 10 E3 = 20 E4 = 30 E5 = 40
事件概率(pj)   0.1   0.2   0.4   0.2   0.1  
S1 = 0   0   0   0   0   0  
S2 = 10   -10   50   50   50   50  
S3 = 20   -20   40   100   100   100  
S4 = 30   -30   30   90   150   150  
S5 = 40   -40   20   80   140   200  

(注:记各自然状态发生的概率为\(p_j\),采用第 i 种方案在发生第 j 自然状态下的损益值为 \(a_{ij}\))

最大期望收益决策准则(EMV) 定义

最大期望收益决策,显而易见,就是计算出每个方案期望收益值,然后选取最大期望值对应的方案即为最优方案。

计算步骤

先根据各事件发生的概率 \(p_j\),求出各个策略的期望收益值。然后从这些期望收益值中选择最大者,它对应的策略为决策应选策略。

计算公式

S*k\(\rightarrow\) max \(\sum_{j} p_ja_{ij}\)

计算结果 (策略\事件) E1 = 0 E2 = 10 E3 = 20 E4 = 30 E5 = 40 EMV
事件概率(pj)   0.1   0.2   0.4   0.2   0.1    
S1 = 0   0   0   0   0   0   0  
S2 = 10   -10   50   50   50   50   44  
S3 = 20   -20   40   100   100   100   76  
S4 = 30   -30   30   90   150   150   84 \(\longleftarrow\) max  
S5 = 40   -40   20   80   140   200   80  

根据 EMV 决策准则有

max (0 , 44 , 76, 84, 80) = 84

对应的决策策略为 S4,为决策者选择的策略。

EMV 决策准则适用于一次决策多次重复进行生产的情况,所以它是平均意义下的最大收益。

计算代码 private static int row = 4; //行 private static int col = 3; //列 private static double t =2; //效用曲率系数 private static double[][] matrix = {//决策矩阵 //事件 1 2 3 {0.2,0.5,0.3}, //事件概率 {140,120, 80}, //策略 {200,150, 40}, //策略 {340,140,-20}, //策略 }; /** * 最大期望收益决策准则(EMV) * @param matrix * @param row * @param col */ private static void EMV(double[][] matrix, int row, int col){ double[] maxMar = new double[row+1]; //记录每种行动方案的结果,第一行是自然状态概率 double max = 0.0; //最优结果 double temp = 0.0; double chance = 0.0; //概率 int maxIndex = 0; //最优结果下标 //因为第一行是自然状态概率,所以从第二行开始,实际的行数比 row 多一行 for (int i = 1; i <= row; i++) { for (int j = 0; j < col; j++) { chance = matrix[0][j]; //自然概率 temp = (j != 0) ? (temp + matrix[i][j]*chance) : (matrix[i][j]*chance); } maxMar[i] = temp; if(i == 1){ // 当 i=1时,为 max 与 maxIndex 赋初值 max = temp; maxIndex = 1; }else if(temp > max){ max = temp; maxIndex = i; } } System.out.println(Arrays.toString(maxMar)); System.out.println(max+"--"+maxIndex); } 最小机会损失决策准则(EOL) 定义

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspggz.html