美文网首页
VI debug-v2

VI debug-v2

作者: Silly_N_Fool | 来源:发表于2016-12-25 21:18 被阅读0次

    1 测试参数变换情况

    2.1 精度上限:

    无论怎么调整initial step size和Delta,都类似,精度波动,精度存在上限

    2.1.1 Initial step size=10, 步长只上升不下降,精度波动;Initial step size=5,步长下降,精度固定。

    Initial step size=5在某个阶段步长下降,然后精度不再提高

    2.1.2 Delta

    2.2 FFT

    在现有的基础上调高一个量级,仍然收敛。

    2.3 overlap

    overlap的波动对收敛没有影响,但是如果一个demand分到的流量过小,那就有问题了。收敛速度会大幅放慢。系统参数不能让某部分分到的流量过小。那就要对CNL,cost的分配机制,参数影响都有一个很好的理解。
    对于membership来说,中间值较好。Demand分的流量较均匀。


    step size adjust trajectory

    2.4CNL参数

    MuE 0.1-0.99 在0.1时,一种mode分的流量为0,全局不收敛。在0.99时,收敛性较好。不知道MuE表示什么意思?
    MuE对split的结果是否有这么大的影响?我用CNL.excel来试试。


    与 Projection的计算结果一致

    下面看看CNL公式,MuE的影响。


    MuE越小,exp(x)就越小,membership也越小,整体的mode share不清楚
    MuE=0.1,不收敛,迭代5万余次,其中一个mode分到的流量为0
    其余MuE在0.2~0.99都能计算出准确结果 MuE越小,流量差距越明显。

    FW对比,数据源,读入数据处,头文件,shortest path。都要改数据。在MuE=0.2~0.5时试算,一样的结果。MuE=0.1时,FW可以计算出结果,而且结果正确。但是,某种mode得到的流量的确接近0了。

    2.4.1 Projection不能处理mode demand=0的情况,而FW可以。

    2.4.2 mode demand=0本身是要避免的。MuE越大越好。Theta越小越好。

    Paste_Image.png

    2.3 Link cost fun

    给不同的BPR可以,但是肯定差距不要过大。PPT一定要经过调解。否则分到的流量不合理。
    总的来说,CNL对于输入的ptt的敏感度很高。对于参数设置非常敏感。

    2.4 Demand

    2 如何防止某方式分到的流量过小?

    2.1 法一

    if (nm[nestmode_i].DemandP <= 1e-50){
        nm[nestmode_i].DemandP = 1e-50;
    }
    

    就相当于demand的约束不是大于等于0而是大于等于1e-50。
    尝试结果不行。可能CNL就是要接近0了。

    2.2 法二

    只要=0,就判定不行。出循环。

                for (nestmode_i = 0; nestmode_i < NoNMs; nestmode_i++) {
                    if (nm[nestmode_i].DemandP == 0) {
                        NMNonZeroIndicator = 1;
                    }
                }
                if (NMNonZeroIndicator == 0) {
                    S4FunValueNPth(l, p, nm, od);
                    S5Residual(p, nm, Alpha);
                    SetpSizeJudgeFlag = S6StepSizeJudge(p, nm, Alpha); 
                    //printf("%d\t", SetpSizeJudgeFlag);
                }
                NMNonZeroIndicator = 0;
    

    测试结果还是不行,那就只能在FW上先试好,再在Projection上跑。

    2.3 现在FW上跑一个合理的结果,再在Projection上跑。

        先在FW试好,再在Projection上跑。
    可以跑起来。
    在此基础上,确定CNL参数。
        #define MuE 0.8 //Gumbel dispersion parameter
        #define Theta 1 //Gumbel parameter of root level
    先调整网络结构。
    link,相关的head file 
        #define NoLs 5
        #define NoNodes 4
    shortest path,对rail and PNR的shortest path 没有影响。
    得出结果,与CNL验证,CNL结果正确。
    下面,改变Free flow time 和 BPR function,然后缓慢加Demand。
    BPR要在Link cost和line search里面一起改。确实收敛。
    下面增加free flow time。也能收敛。
    下面增加Demand,直接在OD一个地方改就好。 Demand 从200渐次增加至600,没有问题。
    得到了一个可行配置。
    od link initial solution
    还是不行,就是demand/flow升级的时候,出现demand=0,在其后计算cost存在困难。
    在投影的时候,注意使其不为0.然后终于收敛了。还是在投影技术(法一)上控制的。法二也用了,但不知有没有起作用。
    

    2 测试ND net

    相关文章

      网友评论

          本文标题:VI debug-v2

          本文链接:https://www.haomeiwen.com/subject/erclvttx.html