这是02年CUMCU 彩票问题 debug看懂是什么意思 求大神指点!! + `* x6 Q) L9 I' ~0 e% |9 {5 P/ _& d. \4 h P* s. L
global v- u- S' S, A& h7 y2 X
v = 630589; % 求解v为630589的收入水平情况' I. @* e0 u; b* D h
DEBUG = 0;, k; o* @* l/ Y; Y& z) j( Q$ s
rand('state',sum(100*clock)) % 初始化随机数生成器: R* P. H. e+ q% V$ [) S
format long g- q3 n6 r! r" W6 `9 e
. T+ O9 J9 z2 H+ F, W% a& J8 c2 V# {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% & J1 l/ ^ A9 S P1 d% 求解开始* I/ h- v4 S0 o8 {6 O% y
% 对于K1型6 P7 o+ U9 j4 {( [6 w+ K
p_k1 = [2e-7;8e-7;1.8e-5;2.61e-4;3.42e-3;4.1995e-2]; - N; p' c) L+ p) `( y% 6个奖项6个变量 7 `2 k2 e/ \& L$ WAeq=[1,1,1,0,0,0]; ! m/ y0 j& H7 c3 h; e4 jbeq=1; " D- L- o* z* Qa_lb=[10,4,3,4,2]; 5 ~ ~" o" A. Y7 Lb_ub=[233,54,17,20,10];$ B4 H) o5 q/ V- x
A= [0,0,0,-1,a_lb(4),0; 4 l2 m, W2 k- j" Y1 F" `, ]) V 0,0,0,1,-b_ub(4),0; 0 Q, B1 C' x! f4 n' r* R 0,0,0,0,-1,a_lb(5);5 l: b# l7 X4 n' ^) V& I
0,0,0,0,1,-b_ub(5)]; % @( F. Q) j" fb= [0;0;0;0];6 v5 X% J: U" e* }) l/ o
lb=[0.5;0;0;0;0;0]; + P' _2 q' [0 K Gub=[0.8;1;1;inf;inf;inf]; " f2 j5 i1 _, i. J- \$ l y* Jp_test = p_k1; 7 Z. y! W# r, n! `) }rx0_tmp = zeros(6,1);4 X4 g/ G, b% _0 p
rx_meta_result = zeros(6,1);- D0 T" O9 T7 l
fval_meta_result = inf; 0 z4 `4 p0 a7 @2 x' g# B) `: d) cflag_meta_result = nan; %用以判断有没有得到过可行解4 [# ?1 R. M9 b1 T$ J
if DEBUG == 1# U% A* F& e4 j* `2 A; V; K t3 O
output_meta_result = [];4 w* Y7 N4 w# }. U* E) u
end , u( L6 x& o* f' t* cfor j = 1:nums_test_of_initial_value " B1 _ X8 T6 h0 ?8 P %随机生成多个初始值rx0_tmp,以避免局部最优 7 n6 X" D. x& s+ J- W rx0_tmp(1) = rand*(0.8-0.5) + 0.5; * U8 \; \" c5 b0 u! l% f3 @: t8 h6 e rx0_tmp(2) = rand*(1-rx0_tmp(1)); : l1 f7 w; u N. _2 b7 ] rx0_tmp(3) = 1 - rx0_tmp(1) - rx0_tmp(2); % z2 \* W5 y0 Q& r3 u) D rx0_tmp(4) = rand*1000;4 O; l1 @4 r/ q8 U9 v
rx0_tmp(5) = rand*100; y+ ]( X( A5 v; z; ^- f8 ] rx0_tmp(6) = rand*50;. {: D$ p$ N- D6 \% W
% 寻优 - O: W. ]- n/ j* ?% R4 V [rx_tmp,fval_tmp,flag_tmp,output_tmp]= ... ; N1 l% h( X: E9 ?5 {4 L" y0 T fmincon('cpiao',rx0_tmp,A,b,... $ Q( H5 S0 m' s Aeq,beq,lb,ub,'nonlcon',[],1,p_test,a_lb,b_ub); % M- A' x6 [9 M" X: {( D. m % 上式倒数第四个参数是为了区分彩票的类型(K1/K2/K3/K4). f% ^+ R8 I; J9 d& ~% q
% 最后三个是函数cpiao和nonlcon计算中可能要用到的量。 7 \* H( J3 v9 ] if (flag_tmp == 1) && (fval_meta_result > fval_tmp), ]( o* R7 ^. }( c; U: f
fval_meta_result = fval_tmp; 6 c9 ]4 S, _# L: ]) j9 V8 a rx_meta_result = rx_tmp; 9 x2 R) Y! C$ e5 O! T7 @' u# ? flag_meta_result = 1; - x, s" I# g) l: _5 ?# d5 Y+ | if DEBUG == 1 " k$ v% f6 ^) z) j6 V8 o output_meta_result = output_tmp;" F! D. B# i/ ]6 y
end ) Y8 x5 c; ~( n( ^0 s end . ~# H8 _" E# j0 w. l0 M8 |end ; v+ W1 x- d4 _+ G3 a( f% 把求得的最好结果保存下来4 q6 `! I/ L0 {# G3 ?6 D* \
if ~isnan(flag_meta_result) : Z8 ]( b% X# s% b- l rx_k1 = rx_meta_result;5 J3 E$ t/ [( u& C+ Y
fval_k1 = fval_meta_result;% U1 g6 s W. n
flag_k1 = flag_meta_result;3 z$ y: Y( a' X m# C) _# b W
if DEBUG == 1 3 ^$ {5 E4 [' Y' o6 _$ ^' s output = output_meta_result;* p8 ?4 M8 M G6 c2 C* W
end ' h$ G# [ d8 V! R9 |' E# G& celse ( y+ J5 j; q, ]% z" z if DEBUG == 1 / V) _; X I+ h+ w& I6 ~ rx_k1 = rx_tmp;4 l2 b6 Z# D n% \( z" X0 M
fval_k1 = fval_tmp;7 v* v# ^) o2 \) Q. x- y% ^3 J
flag_k1 = flag_tmp;+ F- x4 V! g0 @( B
output = output_tmp;( L Y! F" f5 b4 o
end . N4 ~$ o3 s& zend 9 x# ]5 Z( F% s3 i- y3 I$ {