这是02年CUMCU 彩票问题 debug看懂是什么意思 求大神指点!! " i9 J" K' A7 h5 S ) Q4 V( ~6 D. b8 `0 F, eglobal v+ D; A u$ C9 g% D/ m1 l
v = 630589; % 求解v为630589的收入水平情况 # O4 _6 G) f2 t/ _7 n4 UDEBUG = 0;+ ]$ C `2 ?; d, N2 i: Q! w
rand('state',sum(100*clock)) % 初始化随机数生成器0 h% Z p9 a, s8 n D
format long g- A, z4 s v q& w+ ]5 K
* {* l$ P( a' s" L: U; V%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 9 D9 |7 V9 \0 N. s/ j! @% 求解开始 6 z! Q+ \ G' L6 m& l2 J% 对于K1型 p9 N6 T% h! |; |0 g, B2 T# Kp_k1 = [2e-7;8e-7;1.8e-5;2.61e-4;3.42e-3;4.1995e-2]; 9 q/ ?- j+ Q* j8 H' D: s, ?% 6个奖项6个变量 9 J3 K- t; _) S: u4 OAeq=[1,1,1,0,0,0]; }+ ]' }2 M( C5 F5 W4 {
beq=1;8 h# T1 S1 s3 f* L1 ?! T" N5 {
a_lb=[10,4,3,4,2]; & s4 Q+ q) }+ y [6 _) }b_ub=[233,54,17,20,10]; 4 s, e/ [$ ]6 U9 c) @3 @A= [0,0,0,-1,a_lb(4),0;" U; x! l2 U$ d- N) q' |2 E
0,0,0,1,-b_ub(4),0; 4 t9 a0 A$ a$ Q# a- n- A# \ 0,0,0,0,-1,a_lb(5); ! o) R& A: O/ o- x0 W o2 G 0,0,0,0,1,-b_ub(5)];+ {0 I, M3 l5 X9 @& _1 H
b= [0;0;0;0];1 ~% |9 z+ a# C/ X! O
lb=[0.5;0;0;0;0;0]; - O" x+ {/ ^0 u8 P) B, j2 fub=[0.8;1;1;inf;inf;inf]; 4 M' o! o& k1 ~p_test = p_k1;1 X$ h I8 L+ _6 M
rx0_tmp = zeros(6,1);7 ~" x: Y5 T+ K+ X
rx_meta_result = zeros(6,1); q! v' r: \: \2 m
fval_meta_result = inf;! P7 d2 B4 g( }+ P* _0 I
flag_meta_result = nan; %用以判断有没有得到过可行解: r& T% x+ P1 y1 E
if DEBUG == 12 x; |% a/ b& [- H: m
output_meta_result = []; ) g1 g/ d, s5 n7 {* c- f5 ?" N4 Qend: ~6 Z4 p5 h) B$ N% {. K/ K
for j = 1:nums_test_of_initial_value $ \5 z6 R; P j %随机生成多个初始值rx0_tmp,以避免局部最优 / g( n6 c, R9 |. u9 ?5 r rx0_tmp(1) = rand*(0.8-0.5) + 0.5; ! A. p+ l8 o2 Q2 F# ] rx0_tmp(2) = rand*(1-rx0_tmp(1)); B& M( t: k, B5 L9 J rx0_tmp(3) = 1 - rx0_tmp(1) - rx0_tmp(2); # ]9 A3 D! d* N* | rx0_tmp(4) = rand*1000; + I ]2 G3 W6 k9 \" N rx0_tmp(5) = rand*100; 1 I0 @) q0 {, E# {$ G5 `3 e! F8 d rx0_tmp(6) = rand*50;# A/ c, |& e# f7 S% O) n
% 寻优) O+ }: z$ ?! q2 `& o
[rx_tmp,fval_tmp,flag_tmp,output_tmp]= ...- L+ b' i5 H$ s% I
fmincon('cpiao',rx0_tmp,A,b,... $ e' g& ~0 l" u* r0 a2 P Aeq,beq,lb,ub,'nonlcon',[],1,p_test,a_lb,b_ub);& o' `* e e$ B$ c# d# M
% 上式倒数第四个参数是为了区分彩票的类型(K1/K2/K3/K4)1 o" e' A" f; D5 A( I2 E1 Q
% 最后三个是函数cpiao和nonlcon计算中可能要用到的量。, o4 X* e" @7 O+ z
if (flag_tmp == 1) && (fval_meta_result > fval_tmp)5 H! e+ [3 v6 P' N0 h
fval_meta_result = fval_tmp;/ e& o# k7 C7 c, ~$ {. ?
rx_meta_result = rx_tmp;1 t( K8 w& W* f
flag_meta_result = 1;' q5 h- @6 k9 N0 P( j9 A: _& w
if DEBUG == 1 % C" [( v5 Y: X6 ~# @ output_meta_result = output_tmp; 8 }8 E6 ^: _# u. e' a end8 k4 Z- x8 m9 d$ r1 k
end ( s( w) m- v X3 p0 Mend ( N2 F/ H- B3 X3 f( E7 C* g+ y% 把求得的最好结果保存下来" D Y. f& N6 }! ~* q/ s/ K
if ~isnan(flag_meta_result) - W0 R2 m, W$ U2 N: n+ ]* r rx_k1 = rx_meta_result; ) O$ m0 B( s, P fval_k1 = fval_meta_result; & i- L I, ` C C flag_k1 = flag_meta_result;% e0 K$ r f$ h9 J5 P
if DEBUG == 1: e0 s( f2 A% j- p# g
output = output_meta_result; % k8 G. F) |+ T) T- e end 7 a) Z2 A! n+ [4 G1 o9 Ielse; n! k3 Y" L$ ~. F3 i; L. I
if DEBUG == 12 e" o5 h+ `1 p4 {. ~ I
rx_k1 = rx_tmp; 4 ~. D" _& @& e5 _" S" q fval_k1 = fval_tmp;: n9 g& j1 c+ J. X* }
flag_k1 = flag_tmp;, [6 o) l% z- t) V
output = output_tmp;0 h) B% {. i3 { |
end / l% i) R2 M5 d' M9 }end+ i; [% c. i7 @( G5 S9 v" ?