数学建模社区-数学中国

标题: 关于debug的问题 。。。。 [打印本页]

作者: Bojay    时间: 2012-7-22 13:27
标题: 关于debug的问题 。。。。
这是02年CUMCU 彩票问题  debug看懂是什么意思  求大神指点!!$ G% _4 P# v6 a7 U$ [( ], E
' I; U* b$ A* W) l3 P5 b
global v; ?1 @6 F% e) P2 W) L
v = 630589;                % 求解v为630589的收入水平情况
! S) T( T5 D7 z/ w% w$ [DEBUG = 0;
- {6 s& J5 m2 _3 _4 k! {" Urand('state',sum(100*clock))        % 初始化随机数生成器
2 z! v2 l/ j" G, W" J9 L  cformat long g% [1 {/ \5 N' Z  S2 ?
) M8 A$ ]8 `' x" F
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+ J1 W  n* [6 s8 U( Q5 s
% 求解开始( m. T& [# [6 w& ?  v. _
% 对于K1型
* r4 B8 s4 d# L8 ~# |8 Z' Jp_k1 = [2e-7;8e-7;1.8e-5;2.61e-4;3.42e-3;4.1995e-2];
4 K: L* {% p9 \$ O, d% 6个奖项6个变量. ?5 D( ^( l9 k" Z
Aeq=[1,1,1,0,0,0];
1 ]1 E& w' w2 O9 P* `8 Ybeq=1;& w& J5 J' ^1 _+ s
a_lb=[10,4,3,4,2];7 U& M/ x) z7 T4 l0 ]( k
b_ub=[233,54,17,20,10];
- M- M: l/ ~4 ?- @% TA= [0,0,0,-1,a_lb(4),0;
- p6 P1 ^3 K/ T  M9 ?; T8 g' N    0,0,0,1,-b_ub(4),0;; x* K$ Q/ a3 U2 U( V. r& I
    0,0,0,0,-1,a_lb(5);
) \$ x, W* i9 U5 E) ~0 p- p7 O  |    0,0,0,0,1,-b_ub(5)];
! [# h0 B9 p: t. y! kb= [0;0;0;0];
- Z! E; \1 |; N' M5 {* z# U$ Mlb=[0.5;0;0;0;0;0];: r! T" n5 `9 {- J7 c: L" i
ub=[0.8;1;1;inf;inf;inf];
) Q+ q: Z# ?( f/ `  g( M6 up_test = p_k1;. A  z/ Y/ ~. S# Y/ h& t
rx0_tmp = zeros(6,1);: z- F# ^( `& Z
rx_meta_result = zeros(6,1);
5 A9 B! b0 p6 S+ p+ ifval_meta_result = inf;& b4 X) {+ d8 F  `, `
flag_meta_result = nan; %用以判断有没有得到过可行解7 V" e" ?. V5 E8 G9 M! E
if DEBUG == 1( P4 V% a1 j; F3 r4 p: |/ d
    output_meta_result = [];4 j* g+ c" z9 v2 K  [
end) s& ~2 n0 c, J8 a% C1 J
for j = 1:nums_test_of_initial_value
) ~0 q* }- n5 ?9 i1 J    %随机生成多个初始值rx0_tmp,以避免局部最优; O3 v/ u% K" U; i- ]7 H4 y
    rx0_tmp(1) = rand*(0.8-0.5) + 0.5;
, N: X+ ?! g; A1 Q9 Y" B    rx0_tmp(2) = rand*(1-rx0_tmp(1));
! j5 c% R: m; r9 J    rx0_tmp(3) = 1 - rx0_tmp(1) - rx0_tmp(2);+ k, @) n7 Y6 v. t: `
    rx0_tmp(4) = rand*1000;# m) E% k1 P' E+ P  y
    rx0_tmp(5) = rand*100;% d6 q# R" K) ^, ~# h
    rx0_tmp(6) = rand*50;
& r# |" [" Y( P$ J6 f    % 寻优% K1 f+ r' e; ^. s' v
    [rx_tmp,fval_tmp,flag_tmp,output_tmp]= ...2 ^* ?8 W2 \$ W3 J  ?- f5 X
            fmincon('cpiao',rx0_tmp,A,b,...5 e  O) O% Q) r' _
                    Aeq,beq,lb,ub,'nonlcon',[],1,p_test,a_lb,b_ub);
% U+ O, `( R( l' e) [% t        % 上式倒数第四个参数是为了区分彩票的类型(K1/K2/K3/K4)" A% t( a% t0 o7 B5 [* ~; J  K# ]( e
        % 最后三个是函数cpiao和nonlcon计算中可能要用到的量。
5 y0 P7 z: P) o9 p/ h; H( K0 S    if (flag_tmp == 1) && (fval_meta_result > fval_tmp)
* I8 A# Z8 Z0 b; j5 z: M        fval_meta_result = fval_tmp;$ m7 L2 a/ A- r7 Y
        rx_meta_result = rx_tmp;1 q- u& S" q/ x
        flag_meta_result = 1;3 y/ V% h& ?  H
        if DEBUG == 14 r" ~. j/ r2 Z  }& Z. C( W
            output_meta_result = output_tmp;* ~& X5 c" L0 E
        end
1 }- i5 i. F: n% ]/ K, ]$ G! h$ f    end/ |* ~5 {' P; B8 J1 r
end, B! W. y7 y8 Q* [! p$ v  G
% 把求得的最好结果保存下来
/ E' C! @4 g! z; f+ mif ~isnan(flag_meta_result)
# u. _' s' U8 r. f2 V) m1 N& V    rx_k1 = rx_meta_result;
/ u: i: y8 ~8 Z! D  {    fval_k1 = fval_meta_result;) c+ ]4 }3 {7 O8 l( l. l, p
    flag_k1 = flag_meta_result;1 L" ~7 n  _- s' c0 Q
    if DEBUG == 14 `0 N% E( x4 o2 T
        output = output_meta_result;
) F. ?0 i+ o4 R5 M/ Q) O% i8 V. J$ B    end
4 `/ `  R6 A3 P  A; J# N. u& J3 }' Relse
' U# _* h4 F* K/ J- @6 b! n4 _    if DEBUG == 19 z# D1 y* |, a9 `4 x2 f
        rx_k1 = rx_tmp;- a8 x# F/ n  l$ e
        fval_k1 = fval_tmp;% u3 \( u/ Z* E/ `8 _* [; b
        flag_k1 = flag_tmp;/ ?8 j7 n; Q- K) t) S1 ]
        output = output_tmp;
& ?4 V1 X, |  G+ J- ]7 B    end
( e) Q3 o% A' Q: @5 p# Uend
8 D3 I( X9 }& M# L
作者: Bojay    时间: 2012-7-24 22:49
没人回答啊




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5