某公司开发了一种新产品,打算与目前市场上已有的三种同类产品竞争。 为了了解这种新产品在市场上的竞争力,在大规模投放市场 前,公司营销部门进行了广 泛的市场调查,得到了表8。四种产品分别记为 A 、B 、C、D ,其中 A为新产品,表 中的数据的含义是:近购买某种产品(用行表示)的顾客下次购买四种产品的机会(概 率)。例如:表中第一行数据表示当前购买产品 A的顾客,下次购买产品 A 、B 、C、D 的概率分别为75%,10%,5%,10%。请你根据这个调查结果,分析新产品 A未来 的市场份额大概是多少?5 h' Z" M8 k5 W0 G
* E, m+ _& t! f" j6 x& m; Y4 T, g " T5 I, t% q2 O3 ?/ g9 a$ r4 |! r8 n5 W7 b( r , P y0 K3 B5 f i 9 p% o. H4 D7 C6 ^: h* m( Y9 ? (1)问题分析* S& a- a( P, x0 a+ J7 u$ i
; |" u9 [1 p: T' G
新产品进入市场后,初期的市场份额将会不断发生变化,因此,本例中的问题是一 个离散动态随机过程,也就是马氏链(Markov chain)。很显然,上面给出的表实 际上是转移概率矩阵(注意每行元素的和肯定为1)。要分析新产品 A未来的市场份额, 就是要计算稳定状态下每种产品的概率。 3 t& r, i6 b2 M4 ?1 I0 t; u: s+ H& K5 _+ v% x3 P; C: P# W
(2)模型的建立 % ?" m1 q5 Q. u
; N& o/ ~! U( e9 N3 I. H记 N 为产品种数。产品编号为i( N i =1, 2,...1 L= ),转移概率矩阵的元素记为,稳定状态下产品i的市场份额记为 . 因为是稳定状态,所以应该有 2 i J6 }$ u& W
1 u9 x+ H4 Q% C( A7 y+ ~! W$ j1 F' h (1) 0 b$ t& l3 e) ^ ( u) w) E! h& [0 p' ^7 s B: j8 ]不过,这N 个方程实际上并不独立,至少有一个是冗余的。好在我们还有另一个 约束,即 N 种产品的市场份额之和等于1 ; n4 x/ G- w" m. j/ w! ~$ @/ E3 f( i+ n" J' Y- L6 J" B
5 U/ w& K1 D; ]( I# y7 k5 h (2) 1 u% z1 ?2 M" [$ B; X( D+ T% v 1 c: o- j7 `2 s( s可见,这个问题的模型实际上是一个非常简单的方程组(当然,还应该增加概率 非负的约束)。如果把这些看成约束条件,那就是一个特殊的优化模型(没有目标函数)。% L, x* ?, N1 `* L7 E" t
1 p4 b* t4 k' a- x& j% I' R. \+ I# m
(3)模型的求解5 P' v/ O6 V/ D
5 x- a# x* r) L& ^2 p% n* DLINGO程序如下: # Q7 u, {4 r8 o8 }$ ?* {0 j7 `$ z / O- P# @0 n) c6 z7 B4 `# t; Y. KMODEL: ; L) |0 `1 ?; U) A5 B
TITLE 新产品的市场预测; 9 T% r5 M2 l2 Q8 J0 d, `9 l+ Z2 R
SETS: 4 M/ u( F& Q& M! y5 P3 | PROD/ A B C D/: P; $ J5 @+ p3 F# Y4 B* k
LINK(PROD, PROD): T; - n% Y/ R) \4 _# e3 O* A- gENDSETS 5 }- V! m/ N; X: @ W6 {- kDATA: ! 转移概率矩阵; b; r) w+ V! q3 h7 k0 h" `' L# D
T = .75 .1 .05 .1 & n, F0 I8 X4 T .4 .2 .1 .3 ' ^9 \' p c; l) x6 H' J .1 .2 .4 .3 2 m) ~; v& G w8 v; ^ .2 .2 .3 .3; % \# E1 Y; g8 R7 A9 m8 M
ENDDATA ' s8 f8 B) Z# g0 i. e
@FOR(PROD(I): P(I)=@SUM(LINK(J,I): P(J)* T(J,I)) ); 1 n! |, _$ Y8 [5 n
@SUM(PROD: P) = 1; 6 h! b0 K4 W2 h7 G3 A% J& {
@FOR(PROD(I): @WARN( '输入矩阵的每行之和必须是1', @ABS( 1 - @SUM(LINK(I,J): T(I,J)))#GT# .000001)); $ t8 t& L6 ]( J# P) s! q3 REND / e- i( g+ r9 j" I; ?0 O可以指出的是,上面LINGO模型中后的语句@WARN只是为了验证输入矩阵的每行 之和必须是1,而且我们看到为了比较两个实数(如X和1)是否相等,一般不能直接用 “X#NE#1”,因为受计算机字长(精度)的限制,实数在计算机内存存储是有误差的。所 以,通常的方法是比较这两个实数之差的绝对值是否足够小。 求解结果为 A ,B ,C, D的市场份额分别是47.5%,15.25%,16.75%,20.5%。 9 K* \" }" U/ {" J' a% H
% a3 ^9 ?3 |& s; F& O ' w( S! u/ y8 b. t0 l 9 N B+ H" m1 P) W; @" S5 k习题:假设某公司在银行有一个现金帐户和一个长期投资帐户,现金帐户利息很低, 而长期投资帐户利息较高。所有业务往来(收入和支出)只能通过现金帐户进行,如果 现金帐户中钱很多,就可能需要将一部分钱转入长期投资帐户;反之,需要将一部分钱从长期投资帐户转入现金帐户。为简单起见,假设以万元为单位,现金帐户的钱数只能 是-20,-10,0,…,40,50(万元)之一,分别记为状态1,2,…,7,8,它们 每个月分别导致的费用如表12所示。此外,根据统计,如果当月现金帐户的状态位于i ( 2 ≤i ≤7 ),下个月现金帐户的状态只可能位于 i-1,i,i+1 三者之一,并且概率分别为0.4,0.1,0.5;如果当月现金帐户的状态位于1,则下个月现金帐户的状态只可 能位于1和2,并且概率分别为0.5,0.5;如果当月现金帐户的状态位于8,则下个月 现金帐户的状态只可能位于7和8,并且概率分别为0.4,0.6。 6 W0 w2 h+ ?/ ? ! c2 p ^3 }7 r. l% q& |+ o/ r! n( `* m8 r
5 I, a" y, R# p( C0 n! P 每月初你可以改变当前状态(即从长期投资帐户转入现金帐户,或从现金帐户转入 长期投资帐户),但假设每次状态的改变银行收取0.3万元的固定费用,此外还要收取 转帐金额5%的转帐手续费。请你建立优化模型,确定如果当月现金帐户的状态位于i, 是否应该改变当前状态,如何改变状态? 6 U$ c. l# U/ g4 F' N% ^' H
————————————————! g3 Z9 f3 @; Y2 }5 e1 i
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。5 R, H, a: i0 v0 p" i* Z# A/ _
原文链接:https://blog.csdn.net/qq_29831163/java/article/details/89412812( P' L, `9 n1 w. K/ L S