精华内容
下载资源
问答
  • 针对一类允许存储的变周期随机动态车队调度问题进行研究. 难点在于运输任务数量不确定、运输任务可存储、计划周期内各时段长度不同、车辆荷载不同. 根据问题表述建立数学模型, 进而设定新的决策向量和状态向量,对...
  • 存储论(二):有约束的确定型存贮模型、单周期随机库存模型 目录 3 有约束的确定型存贮模型 3.1 带有约束的经济订购批量存贮模型 3.1.1 具有资金约束的 EOQ 模型 3.1.2 具有库容约束的 EOQ 模型 3.1.3 兼有...

    存储论系列博文:

    存贮论(一):基本概念、无约束的确定型存贮模型

    存储论(二):有约束的确定型存贮模型、单周期随机库存模型


    目录

    3 有约束的确定型存贮模型

    3.1 带有约束的经济订购批量存贮模型

    3.1.1 具有资金约束的 EOQ 模型

    3.1.2 具有库容约束的 EOQ 模型

    3.1.3 兼有资金与库容约束的最佳批量模型

    3.2 带有约束允许缺货模型

    3.3 带有约束的经济生产批量存贮模型

    4 单周期随机库存模型

    4.1 模型的基本假设

    4.2 模型的推导

    4.3 模型的求解

    习题



    3 有约束的确定型存贮模型

    3.1 带有约束的经济订购批量存贮模型

    现在考虑多物品、带有约束的情况。设有 m 种物品,采用下列记号:

    类似于前面的推导,可以得到带有约束的多物品的 EOQ 模型。

    3.1.1 具有资金约束的 EOQ 模型

    3.1.2 具有库容约束的 EOQ 模型

    3.1.3 兼有资金与库容约束的最佳批量模型

    结合上述两种模型,得到兼有资金与库容约束的最佳批量模型

    编写 LINGO 程序如下:

    model:
    sets:
    kinds/1..5/:C_P,D,K,W,Q,N;
    endsets
    min=@sum(kinds:0.5*C_P*Q+C_D*D/Q);
    @sum(kinds:K*Q)<J;
    @sum(kinds:W*Q)<W_T;
    @for(kinds:N=D/Q;@gin(n));
    data:
    C_D=1000;
    D=600 900 2400 12000 18000;
    K=300 1000 500 500 100;
    C_P=60 200 100 100 20;
    W=1.0 1.5 0.5 2.0 1.0;
    J=400000;
    W_T=1500;
    enddata
    end

    求得总费用为 142272.8 元,订货资金还余 7271.694 元,库存余 4.035621 \large m^3 ,其余 计算结果整理在表 2 中。

    上述计算采用整数规划,如果不计算年订货次数,而只有年订货周期,则不需要 整数约束。由于整数规划的计算较慢,因此,在有可能的情况下,应尽量避免求解整数 规划问题。

    3.2 带有约束允许缺货模型

    编写 LINGO 程序如下:

    model:
    sets:
    kinds/1..5/:C_P,D,K,W,C_S,Q,S,N;
    endsets
    min=@sum(kinds:0.5*C_P*(Q-S)^2/Q+C_D*D/Q+0.5*C_S*S^2/Q);
    @sum(kinds:K*Q)<J;
    @sum(kinds:W*(Q-S))<W_T;
    @for(kinds:N=D/Q;@gin(n));
    data:
    C_D=1000;
    D=600 900 2400 12000 18000;
    K=300 1000 500 500 100;
    C_P=60 200 100 100 20;
    W=1.0 1.5 0.5 2.0 1.0;
    J=400000;
    W_T=1500;
    enddata
    @for(kinds:C_S=2*C_P);
    end

    求得总费用为 124660.8 元,订货资金还余 88.46 元,库存余 343.317 \large m^3,其余计算 结果整理在表 3 中。 

    3.3 带有约束的经济生产批量存贮模型

    与经济定购模型类似,对于经济生产批量存贮模型,也可以考虑带有不同情况的 约束条件和各种不同物品的综合情况。下面用一个例子来说明问题。

    例 8 某公司生产并销售 A,B,C 三种商品,根据市场预测,三种商品每天需求量 分别是 400,300,300(件),三种商品每天的生产量分别是 1300,1100,900(件), 每安排一次生产,其固定费用(与生产量无关)分别为 10000,12000,13000(元), 生产费用每件分别为 1.0,1.1,1.4(元)。商品的生产速率、需求率和最大生产量满足 如下约束:

    编写 LINGO 程序如下:

    model:
    sets:
    kinds/1..3/:C_P,P,C_D,D,Q,T,T_P; !T_P表示生产时间;
    endsets
    min=@sum(kinds:0.5*(1-D/P)*Q*C_P+C_D*D/Q);
    @sum(kinds:D/P+1.5*D/Q)<1;
    @for(kinds:T=Q/D;T_P=Q/P);
    data:
    C_D=1000,1200,1300;
    D=400,300,300;
    C_P=1.0,1.1,1.4;
    P=1300,1100,900;
    enddata
    end

    求得 A,B,C 三种商品的生产、存贮周期分别为 51.05936,54.86175,50.79914 天, 其中生产天数分别为 15.71057,14.96229,16.93305 天。总的最优生产,存贮费用为 20832.10 元。

    4 单周期随机库存模型

    在许多情形中需求量是随机的。随机需求模型可以分为周期观测与连续观测两类。 周期观测模型又可分为单周期、多周期及无穷周期等模型。 本节仅讨论单周期随机库存模型。 单周期库存模型又称为单订货模型。模型假定周期末库存对下一个周期没有任何 价值。这个问题也称为报童问题,因为报童手中的报纸若卖不完,明天就没有用了。该 模型研究的是仅有一次机会的存贮与供需关系的产品。

    4.1 模型的基本假设

    本模型的基本假设如下:

    (1)在整个需求期内只订购一次货物,订货量为Q ,订购费和初始库存均为 0, 每单位产品的购价(成本)为 K ;

    (2)需求量 D 为一个连续的随机变量,且 D 的概率密度为 f (x) ,当货物出售时, 每单位产品的价格为U ;

    (3)需求期结束时,没有卖出的货物不存贮而是折价卖出,单位价格为V 。

    4.2 模型的推导

    单周期随机库存模型的问题是求订购量Q 为多少时,使得总利润最大。 当需求量 D = x 时,物品的出售量取决于物品的订购量Q 和需求量 x ,即

    对于销售价U 、成本价 K 和折扣价V ,应满足U > K >V 。令 g =U − K 是 物品出售后的利润,同时表示物品不足时,由于缺货造成的损失。令 h = K −V 是物品 折扣出售的损失,因此方程(56)也可写成

    4.3 模型的求解

    例 9(报童问题) 在街中有一报亭,平均每天出售报纸 500 份,出售报纸的数量, 与来往的人流有关,假设服从 Poisson 分布,每卖出一份报纸能盈利 0.15 元。如果卖不 出去,只能作为废纸处理,每份报纸亏损 0.40 元,问:报亭应如何安排报纸的订购量, 使得报亭的利润最大?

    解 由题意知,均值 μ = 500 ;每份报纸的利润 g = 0.15 元;作为废纸处理时, 每份报纸亏损 h = 0.4 元。利用式(57)计算出Q 来,再利用式(59)计算出期望总利 润。

    编写 LINGO 程序如下:

    model:
    data:
    mu=500;g=0.15;h=0.40;
    enddata
    @pps(mu,Q)=g/(g+h);
    E_G=g*mu-h*(Q-mu)-(g+h)*@ppl(mu,Q);
    end

    求得报亭每天订购报纸 486 份,每天盈利 70.93 元。

    下面我们使用 MATLAB 求例 9 的解。实际上式(57)中的Q 是 Poisson 分布的 \large \frac{g}{g+h}分位点。对于式(59)中的积分计算,首先定义被积函数,然后使用 MATLAB 中的积 分命令 QUADL 进行积分,注意在积分时必须把积分区间化成有限区间。MATLAB 中被积函数定义如下(其中文件名为 fun1.m)

    function f=fun1(x);
    global Q mu
    f=(x-Q).*poisspdf(mu,x);

    最后编写调用的程序如下:

    global mu Q
    mu=500;g=0.15;h=0.40;
    Q=poissinv(g/(g+h),mu)
    E_G=g*mu-h*(Q-mu)-(g+h)*(mu-Q-quadl(@fun1,0,Q))

    求得报亭每天订购报纸 486 份,每天赢利 71.09 元。


    例 10 设在某食品店内,每天对面包的需求服从 μ = 300,σ = 50的正态分布。 已知每个面包的售价为 1.50 元,成本 0.90 元,对当天未售出的其处理价为每个 0.60 元, 问该商店每天应生产多少面包,使预期的利润为最大?

    解 根据题意 μ = 300,σ = 50,U =1.50,K = 0.9 ,V = 0.60。利用式(57) 计算出Q 来,再利用式(59)计算出期望总利润。但对于正态分布分布,LINGO 只提 供了标准正态分布函数@psn( Z ),即

    编写 LINGO 程序如下

    data:
    mu = 300; sigma = 50; U = 1.50; K = 0.90; V = 0.60;
    enddata
    @psn(Z)=(U-K)/(U-V);
    Z=(Q-mu)/sigma;
    @free(Z);
    E_G = U*mu-K*Q+V*(Q-mu)-(U-V)*sigma*@psl(Z);

    求得商店每天生产 322 个面包,可以使总利润达到最大,预期的最大利润为 163.638 元。 同样地,我们使用 MATLAB 求例 10 的解。实际上,式(57)中的Q 是正态分布 \large N(\mu ,\sigma ^{2})  的 \large \frac{U-K}{U-V}分位点。式(59)中的被积函数的 MATLAB 定义如下(其中文件 名为 fun2.m):

    function f=fun2(x);
    global mu sigma Q
    f=(x-Q).*normpdf(x,mu,sigma);

    最后编写调用的程序如下:

    global mu sigma Q
    mu = 300; sigma = 50; U = 1.50; K = 0.90; V = 0.60;
    Q=norminv((U-K)/(U-V),mu,sigma)
    E_G=U*mu-K*Q+V*(Q-mu)-(U-V)*(mu-Q-quadl(@fun2,0,Q))

    求得的结果和 LINGO 的计算结果完全一样。


    例 11 (航空机票超订票问题) 某航空公司执行两地的飞行任务,已知飞机的 有效载客量为 150 人。按民用航空管理有关规定:旅客因有事或误机,机票可免费改签 一次,此外也可在飞机起飞前退票。航空公司为了避免由此发生的损失,采用超量订票 的方法,即每班售出票数大于飞机载客数。但由此会发生持票登机旅客多于座位数的情 况,在这种情况下,航空公司让超员旅客改乘其它航班,并给旅客机票价的 20%作为 补偿。现假设两地的机票价为 1500 元,每位旅客有 0.04 的概率发生有事、误机或退票 的情况,问航空公司多售出多少张票?使该公司的预期损失达到最小。

    解 先对该问题进行分析。 设飞机的有效载客数为 N ,超订票数为 S (即售出票数为 N + S ),k 为每个座位 的赢利值,h 为改乘其它航班旅客的补偿值。设 x 是购票未登机的人数,是一个随机变 量,其概率密度为 f (x) 。当 x ≤ S 时,有 S − x 个人购票后,不能登机,航空公司要为这部分旅客进行补偿。当 x > S 时,有 x − S 个座位没有人坐,航空公司损失的是座位 应得的利润,因此,航空公司的损失函数为

    下面给出具体的求解过程。

    根据题意, N = 150 , p = 0.04,k =1500 (假设机票价就是航空公司的赢利), h =1500×0.2 = 300 。写出相应的 LINGO 程序如下:

    data:
     N = 150;p = 0.04;k = 1500;h = 300;
    enddata
    @pbn(p, N+S, S) = k/(k+h); 

    求得超订的票数 S = 8.222487 ,因而,超订的票数在 8~9 张之间,即每班售出的 票数在 158~159 张之间。

    function f=fun3(s);
    N = 150;p = 0.04;k = 1500;h = 300;
    f=binocdf(s,s+N,p)-k/(k+h);

    MATLAB 中求函数 g(S) 的零点时溢出(使用命令 FZERO),我们只能编写 MATLAB 的搜索算法如下:

    for s=1:100
        g(s)=fun3(s);
    end
    g

    例 12(续例 11) 所有参数不变,问航空公司多售出多少张票,使该公司的预期 利润达到最大,并计算出相应的利润。

    解 下面的计算希望达到以下目的:第一,得到超订票的整数解;第二,计算出 预期的利润值。

    设飞机的有效载客数为 N ,超订票数为 S(即售出票数为 N + S ),k 为每个座位 的赢利值,h 为改乘其它航班旅客的补偿值,p 为每位旅客购票未登机的概率。设 x 是 购票未登机的人数,是一个随机变量,其概率密度为 f (x) 。当 x ≤ S 时,飞机满座, 有 S − x 个人购票后,不能登机,航空公司要为这部分旅客进行补偿。当 x > S 时,飞 机没有满座,有 N + S − x 名旅客乘机,因此,航空公司的利润函数为

    编写的 MATLAB 程序如下:

    clear,clc
    N = 150;p = 0.04;k = 1500;h = 300;
    for S=1:15
        E_I(S)=k*(N+S-(N+S)*p)-(h+k)*quadl(@(x)binocdf(x,N+S,p),0,S);
    end
    E_I

    上面的算法,我们实际上把二项分布看成是连续型的分布。下面从离散分布的角 度建立赢利期望值的递推公式。

    因此,我们只要计算出超订票数 S = 0,1,2,....的期望值,并比较它们的大小,就可 以计算出最优的超订票数和最大赢利的期望值。编写 LINGO 程序如下:

    sets:
     seats/1..150/;
     extra/1..15/: E_T;
    endsets
    data:
    k = 1500; h = 300; p = 0.04;
    enddata
    N = @size(seats);
    E_T0 = k*N*(1-p);
    E_T(1) = E_T0+(1-p)*(k-(k+h)*@pbn(p,N,0));
    @for(extra(i)|i #gt# 1:E_T(i) = E_T(i-1)+(1-p)*(k-(k+h)*@pbn(p,N+i-1, i-1))); 

    从计算结果可以看出,超订票数为9张时,航空公司获利利润最大,预期的期望值 达到223832.6。 下面我们写出递推运算的 MATLAB 程序如下:

    clear,clc
    k = 1500; h = 300; p = 0.04; n=150;
    E_T0=k*n*(1-p)
    E_T(1)=E_T0+(1-p)*(k-(k+h)*binocdf(0,n,p));
    for i=2:15
     E_T(i)=E_T(i-1)+(1-p)*(k-(k+h)*binocdf(i-1,n+i-1,p));
    end
    E_T

    计算结果和 LINGO 的计算结果完全一致。


    习题

     1.企业生产某种产品,正常生产条件下可生产 10 件/天。根据供货合同,需按 7 件/天供货。存贮费每件 0.13 元/天,缺货费每件 0.5 元/天,每次生产准备费用(装配费) 为 80 元,求最优存贮策略。

    2.某大型机械需要外购 3 种零件,其有关数据见表 4。若存贮费占单件价格的 25 %,不允许缺货。又限定外购零件的总费用不超过 240000 元,仓库总面积为 250 \large m^2 , 试确定每种外购零件的最优订货量、订货周期和最小费用。

    3.(航空公司超订票问题) 已知飞机的有效载客量为 150 人,机票价为 1500 元。 根据公司的长期统计,每个航班旅客的退票和改签发生的人数如表 5 所示。在登机旅客 多于座位数的情况下,航空公司规定:超员旅客改乘本公司下一班机,机票免费(即退 回原机票款);若改乘其它航空公司的航班,按机票的 105%退款。据统计前一类旅客 占超员旅客的 80%,后一类旅客占 20%。问航空公司多售出多少张票,使该公司的预 期损失达到最小。

    4.某工厂生产某种产品必须经过两道工序,第一道工序在甲车间进行,第二道工 序在乙车间进行,甲车间生产的产品作为乙车间生产的原料,工厂计划年生产 1200 件 产品,因而乙车间的生产速度为每月 100 件,而甲车间的生产速度为每月 500 件。由于 受到乙车间生产能力的限制,甲车间要进行等周期分批的有间断的生产,同时还必须保 证乙车间不停工待料。甲车间的产品运到乙车间时要包装,平均每批的包装费为 5 元。 若运到乙车间后暂时来不及加工,则要花费存贮费,每件存贮费为 0.4 元。试研究甲车 间的最优生产周期,生产时间和生产批量。

    5. 其它相关习题(无答案)见 :随机模型-豆丁网


    存储论系列博文:

    存贮论(一):基本概念、无约束的确定型存贮模型

    存储论(二):有约束的确定型存贮模型、单周期随机库存模型

    展开全文
  • 基于信息生命周期管理三维模型存储体系架构的研究与应用,郝静,王红梅,本文在信息生命周期管理概念的基础上设计出信息生命周期管理的三维模型,对此三维模型从信息周期阶段(创建、采集、组织、存储
  • 针对高速公路OD数据的种类周期长等问题,提出一种基于Hadoop的高速公路OD矩阵存储模型和相应的计算方法.建立统计高速公路车辆旅行时间、统计高速公路车流量两类OD矩阵作为存储模型.通过基于海量真实的高速公路...
  • InventoryTheory 平抑波动保障供给 2 存储理论 ( Inventory Theory ) ? 与排队现象一样存储是一种常见的社会和日常现象 ... 经典研究最佳订货周期和订货量 ? 现代研究如何将存储降至最低减少和优化物流环节如 JIT MRPII
  • 供应链单级多周期库存补货模型

    千次阅读 2018-03-11 22:01:59
    供应链单级多周期库存补货模型 1. 经典EOQ模型及其基本假设 1.1. 什么是EOQ EOQ,即 经济订购批量模型,是库存模型的理论基础,也是库存理论的基础模型,其核心是:在订货成本与库存成本之间寻找一个平衡,...

    供应链单级多周期库存补货模型

    1. 经典EOQ模型及其基本假设

    1.1. 什么是EOQ

    EOQ,即 经济订购批量模型,是库存模型的理论基础,也是库存理论的基础模型,其核心是:在订货成本与库存成本之间寻找一个平衡,使得订货能够满足市场预估需求,而且成本最小化。可以用下面的一幅图来表示,订货成本逐渐下降,是因为随着订货量的增加,可以拿到数量价格折扣,同时单位运输成本也会下降,这是符合人们的直觉的,但是只要订货就会产生库存费用,而且库存费用是递增的。因此,一定有一个平衡点,使得订货成本和库存持有成本最小化的。
    这里写图片描述

    基于EOQ模型,学界和工业界根据具体的市场情况发展并丰富了EOQ模型,包括多级库存理论,需求变化和库存成本变化的EOQ,时变运输周期的EOQ,能力受限的EOQ 等,因此,我们要知道,EOQ虽然重要,但是也包含着极大的缺陷,很难直接应用在现实的供应链采购和仓储管理之中,当然现实中还是有很多产品是符合EOQ的基本假设要求的,比如方便面,牙膏,大米等不受季节因素或其他市场因素明显影响且销量稳定的产品,当然,真正头疼的并不是这类型的产品。

    1.2. EOQ基本假设

    不管学习什么数学模型,总是要先看其基本假设和适用范围,EOQ也不例外。
    EOQ的基本假设如下:
    - 不允许缺货,即缺货费用Cs无穷大。
    - 当库存将至零,可以立即得到补充(生成时间很短,可以近似看做零)。
    - 需求是连续的,均匀的,需求速率是R
    - 每次订货量Q不变,订购费C0不变(每次生产量不变,装配费不变)。
    - 单位存储成本不变。

    其补货和库存变化如下图:
    这里写图片描述

    1.3. EOQ的数学推导

    一个周期t内的总存储量为:

    12Qt 1 2 Q t

    一个周期t内的总费用 F(t)=订购费+存储费+货物成本费
    =订购费率 x 订购次数+总存储量 x 存储费率+货物单价P x 货物总需求量
    = C0×1+12QtCh+PRt C 0 × 1 + 1 2 Q t C h + P R t

    单位时间内的总费用(库存系统总费用率)为:

    f(Q)=F(t)t=C0×1+12QtCh+PRtt=C0RQ+12ChQ+PR f ( Q ) = F ( t ) t = C 0 × 1 + 1 2 Q t C h + P R t t = C 0 R Q + 1 2 C h Q + P R

    其中: f0=C0RQ,fh=12ChQ f 0 = C 0 R Q , f h = 1 2 C h Q ,前者是单位时间的订购费,后者是单位时间的存储费,PR是常数,在考虑存储系统总费用时,PR可以忽略不计。

    最优存储策略:
    在求极值的数学问题中,另导数为零,可以得到最优的订购策略。
    df(Q)dQ=0 d f ( Q ) d Q = 0 ,得
    - 1 最佳订购批量(或最大库存量)

    Q=2RC0Ch Q ∗ = 2 R C 0 C h

    这就是著名的经济订购批量检查EOQ公式.
    - 2 最优存储周期(订货周期)
    t=Qt=2C0RCh t ∗ = Q ∗ t = 2 C 0 R C h

    - 3 最优总存储费用
    f=f0+fh=2RC0Ch f ∗ = f 0 ∗ + f h ∗ = 2 R C 0 C h

    2. 需求变化的EOQ模型

    需求变化的EOQ描述

    从经典的EOQ模型假设出发,我们看到,EOQ假设需求稳定且恒定,每个周期的订货量都是一定的,而且周期长度都一样,在现实中有很多产品不是这样的,特别是有明显季节性的服装产品,有明显生命周期的电子产品,在每个周期内的销量明显不一样,上市前期进行试推广预售,然后销量快速上升,过了销售旺季或者生命周期顶峰后,进入衰退期,销量趋势如下图:
    这里写图片描述

    动态规划求解需求变化问题

    对于多周期订购问题,可以通过动态规划的方法求解。
    其实从人脑的简单思维来说,遇到这种组问题,首先想到的不是什么算法,而是暴力搜索,一个个数凑总是能凑出来的。而动态规划,就是暴力搜索的一种改进,可以以你想不到的效率找到最优解,而不是一个个组合参数去尝试。
    多说一个,其实很多智能优化算法,其本质也是这种暴力搜索的改进,本质很是暴力搜索。说来也有趣,智能优化算法是没有严格的数学推导的,但是结果还不错,比如粒子群算法,遗传算法,禁忌搜索算法等。

    这里讲一下使用动态规划求解的方法,使用运筹学中的一个例子说明问题,把生产换成采购,就是最开始说的EOQ问题了。
    问题描述如下:
    未来3个月的销量预测已知,为3w,4w,3w,如果启动生成,则启动费用为3万每次,而且每个产品的成本是1元,每件产品的每月的存储费用为0.7元。
    第一个月和第四个月的库存为0,求最优生产计划。

    –>1月–>2月–>3月–>4月

    变量如下:
    k: 表示不同的阶段,这里有4个月,则k=1,2,3,4
    Sk:表示月初库存,因为第1,4个月的月初库存为0,则S1=0, S4=0
    xk:表示决策变量,即当月要生产的量,1月肯定是要生产的,因为此时库存为0,而且1月生产的可以留着以后买,如果1月生产未来全部月份的需求,则1月最大生产为10w,同理,2月生产的只能是2月和3月卖,因此2月最大生产7w,3月最大生产3w。
    x1={3,4,5,6,7,8,9,10}, x2={0,1,2,3,4,5,6,7}, x3={0,1,2,3}
    状态转移方程:

    SK+1=SK+xkdk S K + 1 = S K + x k − d k

    dk d k 是每月的需求量, SK S K 是月初库存
    阶段指标函数(成本=生产费用+存储费用) rk(xk) r k ( x k )
    rk(xk)={3+xk+0.7Sk,xk>00.7Sk,xk=0 r k ( x k ) = { 3 + x k + 0.7 S k , x k > 0 0.7 S k , x k = 0

    递推方程:

    fk(SK)=Min([rk(xk)+fk+1(Sk+1)],k=1,2st.xk0Sk+xkdk f k ( S K ) = M i n ( [ r k ( x k ) + f k + 1 ( S k + 1 ) ] , k = 1 , 2 s t . x k ≥ 0 S k + x k ≥ d k

    3. 考虑订购提前期的EOQ模型

    在前面的EOQ假设中,有一个假设就是补货能力无穷大,能够做到瞬时补货。什么意思呢,就是我在1号下单,货物马上就能送到仓库。这是不符合现实情况啊,就算是京东物流起码也要半天啊,国内快递一般2-3天,因此这也是EOQ不合理的地方。
    但是不影响我们使用啊,因为我们可以通过业务流程优化来到达瞬时补货的功能。
    比如,EOQ模型中,4月1号需要补货,实际的订购提前期是5天,那么我们只要在3月25日下达订单,那么4月1日就会有一批货物到达仓库入库,和EOQ模型保持一致了。如下图:

    这里写图片描述

    4.动态规划求解多周期库存python代码

    待补充.

    展开全文
  • 在经典的时态数据模型HMAP的基础上,通过增加事务时间参数delay的方式,提出了一种支持时间粒度,可以有效处理具有周期特性数据的双时态数据模型PMB,该数据模型可以有效地解决HMAP模型存储中记录条目繁多和时间...
  • 软件生命周期模型——瀑布模型

    万次阅读 2018-06-09 11:03:49
    模型概述 瀑布模型是一个经典的软件生命周期模型,也叫预测型生命周期、完全计划驱动型生命周期。在这个模型里,在项目生命周期的尽早时间,要确定项目范围及交付此范围所需的时间和成本。 在这个模型里,项目启动...

    模型概述

        瀑布模型是一个经典的软件生命周期模型,也叫预测型生命周期、完全计划驱动型生命周期。在这个模型里,在项目生命周期的尽早时间,要确定项目范围及交付此范围所需的时间和成本。

          在这个模型里,项目启动时,项目团队专注于定义产品和项目的总体范围,然后制定产品(及相关可交付成果)交付计划,接着通过各阶段来执行计划。应该仔细管理项目范围变更。如果有新增范围,则需要重新计划和正式确认。对于经常变化的项目而言,瀑布模型毫无价值。    

          以下情况优先选择这种生命周期:项目需求明确、充分了解拟交付的产品、有厚实的行业实践基础、或者整批一次性交付产品有利于干系人。

          例如开发一个软件项目时,如果采用这个模型的话,一般将软件开发分为可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等几个阶段,如下图所示。

     

    模型特点:

         瀑布模型中每项开发活动具有以下特点。
        (1)
    从上一项开发活动接受其成果作为本次活动的输入。
        (2)
    利用这一输入,实施本次活动应完成的工作内容。
        (3)
    给出本次活动的工作成果,作为输出传给下一项开发活动。

        (4)对本次活动的实施工作成果进行评审。若其工作成果得到确认,则继续进行下一项开发活动;否则返回前一项,甚至更前项的活动。尽量减少多个阶段间的反复。以相对来说较小的费用来开发软件。

    瀑布模型优缺点都很明显:

    优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。

    缺点:开发过程一般不能逆转,否则代价太大;很难严格按该模型进行;很难清楚地给出所有的需求。

    瀑布模型的使用范围:用户的需求非常清楚全面,且在开发过程中没有或很少变化,对软件的应用领域很熟悉;用户的使用环境非常稳定;开发工作对用户参与的要求很低。

    模型阶段

    这一模型存在很多变体,每种只是在阶段名称上略有区别,但是,总体来讲,瀑布开发模型可以分为六个不同的阶段,其定义如下:

      1.需求分析:虽然是第一步,但是这一步至关重要,因为它包含了获取客户需求与定义的信息,以及对需要解决的问题所能达到的最清晰的描述。分析包含了理解客户的商业环境与约束,产品必需实现的功能,产品必需达到的性能水平,以及必需实现兼容的外部系统。

      在这一阶段所使用的技术包括采访客户、使用案例和软件特色的“购物清单”。分析阶段的结果通常是一份正式的需求说明书,这也是下一阶段的起始信息资料。

      2.设计:这一步包括了“定义硬件和软件架构、组件、模块、界面和数据等来满足指定的需求(Wikipedia)。”它包括了硬件和软件架构的定义,确定性能和安全参数,设计数据存储容器和限制,选择集成开发环境(IDE)和编程语言,并指定异常处理、资源管理和界面连接性的策略。

      这一阶段还强调了用户接口的设计,包括与浏览和可用性相关的问题,这一阶段的输出结果是一份或多份设计说明书,这些说明书将在下一阶段使用。

      3.实现:这一步包含了根据设计说明书来构建产品,通常,这一阶段是由开发团队来执行的,开发团队包括了程序员、界面设计师和其他的专家,他们使用的工具包括编译软件、调试软件、解释软件和媒体编辑软件。

      这一阶段将生成一个或多个产品组件,它们是根据每一条编码标准而编写的,并且经过了调试、测试并进行集成以满足系统架构的需求。对于大型开发团队而言,我建议使用版本控制工具来追踪代码树的变化,这样在出现问题的时候可以还原以前的版本。

      4.测试:在这一阶段,独立的组件和集成后的组件都将进行系统性验证以确保没有错误并且完全符合第一阶段所制定的需求。一个独立的质量保证小组将定义“测试实例”来评估产品是完全实现了需求还是只有部分满足。

      有三种测试方法可以使用:对独立的代码模块进行单元测试;对集成产品进行系统测试;以及客户参与的验收测试。如果发现了缺陷,将会对问题进行记录并向开发团队反馈以进行修正。在这一阶段,还有产品文档会经过准备、评估并发布,比如用户手册等。

      5.安装:在产品通过测试并且被鉴定为符合需求的产品后,就会进入到安装阶段,这一阶段包括了在客户站点进行系统或产品的安装和使用,这可以通过互联网或者物理媒介进行,通常交付使用的产品都带有正式的版本号,这为今后的产品升级提供了便利。

      6.维护:这一阶段发生在安装之后,包括了对整个系统或某个组件进行修改以改变属性或者提升性能,这些修改可能源于客户的需求变化或者系统使用中没有覆盖到的缺陷,通常,在维护阶段对产品的修改都会被记录下来并产生新的发布版本(称作“维护版本”并伴随升级了的版本号)以确保客户可以从升级中获益。

    瀑布模型优势

      瀑布模型为软件开发人员提供了众多优势,首先,这个阶段性的软件开发模型规定了以下规则:每个阶段都有指定的起点和终点,过程最终可以被客户和开发者识别(通过使用里程碑),在编写第一行代码之前充分强调了需求和设计,项目开发中涉及到的几乎一切都预先计划,从而便于确定预期的开发成本和开发时间。这避免了时间的浪费以及跳票的风险,同时还可以尽可能地保证实现客户的预期需求。

      提取需求和设计提高了产品质量,因为在设计阶段捕获并修正可能存在的漏洞要比测试阶段容易很多,毕竟在组件集成之后来追踪特定的错误要复杂很多。最后,因为前两个阶段生成了规范的说明书,当团队成员分散在不同地点的时候,瀑布模型可以帮助实现有效的知识传递。

      瀑布模型缺点

      除了看上去很明显的这些优势,瀑布模型近来也受到了很多批评,最突出的一点是围绕需求分析的,通常客户一开始并不知道他们需要的是什么,而是在整个项目进程中通过双向交互不断明确的;而瀑布模型是强调捕获需求和设计的,但在这种情况下,现实世界的反复无常就显得瀑布模型有些不切实际了。例如,McCracken和Jackson指出,瀑布模型在系统开发之上强加了一种项目管理结构(McCracken and Jackson 1981)。"主张任何一种生命周期方案(即使它具有各种变种)能够适用于所有的系统开发显然是违背现实的,或者由于假定一个过于简陋的生命周期而显得毫无意义。"

        除此以外,即使给定了客户需求,根据这些需求在一定的精确性范围内(瀑布模型所建议的)估算时间和成本是非常困难的。因此,建议在客户需求可以在最初阶段明确的情况下并且相对稳定的项目中使用瀑布模型。

      另外的批评指出瀑布模型还假定设计可以被转换为真实的产品,这往往导致开发者在工作时陷入困境,通常,看上去合理可行的设计方案在现实中往往代价昂贵或者异常艰难,从而需要重新设计,这样就破坏了传统瀑布模型中清晰的阶段界限。

      有些批评还指出瀑布模型暗示了清晰的分工,将参与开发的人员分为“设计师”、“程序员”和“测试员”,但是在现实中,这样的分工对于软件公司而言既不现实也没有效率。

          尽管瀑布模型招致了很多批评,但是它对很多类型的项目而言依然是有效的,如果正确使用,可以节省大量的时间和金钱。对于您的项目而言,是否使用这一模型主要取决于您是否能理解客户的需求以及在项目的进程中这些需求的变化程度,对于经常变化的项目而言,瀑布模型毫无价值,对于这种情况,您可以考虑其他的架构来进行项目管理,比如名为敏捷方法或者螺旋模型(spiralmodel)等。

    展开全文
  • 根据航材存储的理论和方法,确定航材最佳存储策略和装备最佳更新周期,对于做好航空装备技术保障工作意义重大。针对经济批量模型及其相关扩展,从4种情况对航材存储问题进行分析与对比,并寻求一种平衡供求关系最大...
  • 基于云计算的海量数据存储模型

    千次阅读 2010-09-06 16:53:00
    0 引言随着越来越的人使用计算机,整个网络会产生数量巨大的数据,如何存储网络中产生的这些海量数据,已经是一个摆在面前亟待解决的问题。现在常见的三种存储方式是DAS[1]、NAS 和SAN,但是面对网络产生的越来越...

    随着越来越多的人使用计算机,整个网络会产生数量巨大的数据,如何存储网络中产生
    的这些海量数据,已经是一个摆在面前亟待解决的问题。现在常见的三种存储方式是DAS[1]、
    NAS 和SAN,但是面对网络产生的越来越多的数据,这三种方式的缺点就明显的暴露出来。
    DAS 存储方式可扩展性差,系统性能低,存储分散。NAS 虽然使用方便,成本低廉,但最
    是存储性能差。SAN 存储效能优异,能大幅提升网络上工作效能与资料传输效率,但是其
    架构为封闭式架构,无法整合不同系统,且规模过大成本较高。
    2006 年底,Google 第一次提出了“云[2]”的概念,为我们更好的处理网络中产生的海
    量数据带来了希望。
    本文提出的基于云计算的海量数据存储模型,是依据云计算的核心计算模式
    MapReduce[3],并依托实现了MapReduce 计算模式的开源分布式并行编程框架Hadoop[3],将
    存储模型和云计算结合在一起,实现海量数据的分布式存储[4]。

    云计算[5]是一种计算模式,也是一种全新的商业模式。云计算(Cloud Computing)是分
    布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid
    Computing)的发展或者说是这些计算机科学概念的商业实现。
    http://www.paper.edu.cn

    云计算[6]是随着网络中产生的越来越多的数据而被提出的,在云计算中,无数的软件和
    服务都置于云中,这里的云是指可以自我维护和管理的虚拟计算资源。这些软件和服务均构
    筑于各种标准和协议之上,可以通过各种设备来获得。
    云计算是一种超级的计算模式,可以把网络中的计算机虚拟为一个资源池,将所有的计
    算资源集中起来,并用特定软件实现自动管理,使得各种计算资源可以协同工作,这就使得
    处理数量巨大的数据成为了可能。
    基于云计算的海量数据的存储
    MapReduce 模式
    MapReduce 是云计算的核心计算模式,是一种分布式运算技术,也是简化的分布式编
    程模式,用于解决问题的程序开发模型,也是开发人员拆解问题的方法。
    MapReduce 模式的主要思想是将自动分割要执行的问题(例如程序),拆解成Map(映
    射)和Reduce(化简)的方式。MapReduce 的流程如图1 所示:
    图1 MapReduce 的处理流程
    在数据被分割后通过Map 函数的程序将数据映射成不同的区块,分配给计算机机群处
    理达到分布式运算的效果,在通过Reduce 函数的程序将结果汇整,从而输出开发者需要的
    结果。
    MapReduce 借鉴了函数式程序设计语言的设计思想,其软件实现是指定一个Map 函数,
    把键值对(key/value)映射成新的键值对(key/value),形成一系列中间结果形式的key/value 对,
    然后把它们传给Reduce(规约)函数,把具有相同中间形式key 的value 合并在一起。Map 和
    Reduce 函数具有一定的关联性。函数描述如表1 所示:
    表1 Map 函数和Reduce 函数的描述
    Hadoop 框架
    Hadoop 是一个实现了MapReduce 计算模型的开源分布式并行编程框架,程序员可以借
    助Hadoop 编写程序,将所编写的程序运行于计算机机群上,从而实现对海量数据的处理。
    此外,Hadoop 还提供一个分布式文件系统(HDFS)及分布式数据库(HBase)用来将数据存
    http://www.paper.edu.cn
    储或部署到各个计算节点上。Hadoop 框架如图2 所示:
    图2 Hadoop 框架
    借助Hadoop 框架及云计算核心技术MapReduce 来实现数据的计算和存储,并且将
    HDFS 分布式文件系统和HBase 分布式数据库很好的融入到云计算框架中,从而实现云计算
    的分布式、并行计算和存储,并且得以实现很好的处理大规模数据的能力。
    基于云计算的海量数据存储模型
    根据数据的海量特性,结合云计算技术,特提出基于云计算的海量数据存储模型,如图
    3 所示:
    图 3 基于云计算的海量数据存储模型
    在图 3 中,主服务控制机群相当于控制器部分,主要负责接收应用请求并且根据请求类
    型进行应答。存储节点机群相当于存储器部分,是由庞大的磁盘阵列系统或是具有海量数据
    存储能力的机群系统,主要功能是处理数据资源的存取。HDFS 和Hbase 用来将数据存储或
    部署到各个计算节点上。Hadoop 中有一个作为主控的Master,用于调度和管理其它的计算
    机(将其称之为TaskTracker),Master 可以运行于机群中任一台计算机上。TaskTracker 负
    责执行任务,必须运行于DataNode 上,DataNode 既是数据存储节点,也是计算节点。Master
    将Map 任务和Reduce 任务分发给空闲的TaskTracker,让这些任务并行运行,并负责监控
    任务的运行情况。如果其中任意一个TaskTracker 出故障了,Master 会将其负责的任务转交
    给另一个空闲的TaskTracker 重新运行。用户不直接通过Hadoop 架构读取及HDFS 和Hbase
    存取数据,从而避免了大量读取操作可能造成的系统拥塞。用户从Hadoop 架构传给主服务
    控制机群的信息后,直接和存储节点进行交互进行读取操作。
    2.4 数据存取算法基本思想
    存数据算法基本思想为:
    1 存储数据时,将存储数据的信息及其附加信息(如用户ID)发送给主服务控制机群。
    2 主服务控制机群接收到数据的信息。
    3 将接收到的数据信息传送给Hadoop 架构。
    http://www.paper.edu.cn
    4 MapReduce 利用其Map 函数对数据进行切块计算。
    5 HDFS 和Hbase 根据节点状态将数据均衡分配到各存储节点。
    6 将数据块信息及存储节点地址返回主服务控制机群,并由主服务控制机群反馈给用
    户。
    7 用户为每个存储节点建立一个数据块队列,将数据块并行上传到对应的存储节点。
    因为 Hadoop 具有高容错性,能自动处理失败节点,所以当发现某个节点失效时,立即
    将正在上传的部分数据块进行重新分配。
    取数据算法基本思想为:
    1 下载文件时,将要下载的文件信息传送给主服务控制机群。
    2 主服务控制机群接收到要下载的文件信息。
    3 HDFS 和Hbase 查找该文件的块信息,并且将查找到的信息反馈给主服务控制机群。
    4 主服务控制机群然后把信息传回给用户。
    5 用户根据接收到的主服务控制机群传回的信息,为每个存储节点创建一个下载线程,
    将文件块并行下载到本地计算机临时文件夹中。
    6 用户在下载完所有文件块以后,根据MapReduce 的Reduce 函数整合成一个完整的文
    件,并删除文件块。
    当 Hadoop 发现某个节点失效时,立即将正在下载的文件交由另一空闲的节点来重新进
    行下载,从而保证下载顺利完成。
    Hadoop 具有高容错性,能自动处理失效节点是通过MapReduce 来实现的。MapReduce
    通过把对数据集的大规模操作分发给网络上的每个节点实现可靠性,每个节点会周期性的把
    完成的工作和状态的更新报告回来。如果一个节点保持沉默超过一个预设的时间间隔,主节
    点记录下这个节点状态为死亡,并把分配给这个节点的数据发到别的节点。此外每个操作要
    保证不会发生并行线程间的冲突。
    3 结果与分析
    本课题是由南京市卫生局牵头,涵盖的市县二甲、三甲医院达到十几个,涉及的数据包
    括医院电子病历系统,HIS,PACS 系统,数据量巨大。利用各个医院的硬件资源搭建一个
    Hadoop 的平台,整个平台由各个医院的服务器系统和汇聚到卫生局信息中心的交换机构成,
    使用的操作系统为linux redhat fedora,Java 环境为jdk-1_5_0-linux,Hadoop 软件版本为
    hadoop-0.19.1。其中Hadoop 的主要配置文件hadoop-site.conf 配置如下:
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl"href="configuration.xsl"?>
    <configuration>
    <property>
    <name>fs.default.name</name>
    <value>hdfs://10.40.33.11/</value>
    </property>
    <property>
    <name>mapred.job.tracker</name>
    <value>hdfs://10.40.33.12/</value>
    </property>
    <property>
    http://www.paper.edu.cn
    - 5 -
    中国科技论文在线
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    <property>
    以上配置文件只是配置了Hadoop 的HDFS 中Namenode 的位置、MapReduce 中的
    tasktraker 的位置以及备份数量。
    与云计算系统相比,云存储可以认为是配置了大容量存储空间的一个云计算系统。从架
    构模型来看,云存储系统比云计算系统多了一个存储层,同时,在基础管理也多了很多与数
    据管理和数据安全有关的功能,两者在访问层和应用接口层则是完全相同的。
    4 结论
    本文给出了很少一部分医院的医疗数据,如何扩大到全市所有的医院,还有待进一步的
    研究。
    总体上讲,云计算领域的研究还处于起步阶段,尚缺乏统一明确的研究框架体系, 还
    存在大量未明晰和有待解决的问题,研究机会、意义和价值非常明显。现有的研究大多集中
    于云体系结构、云存储、云数据管理、虚拟化、云安全、编程模型等技术,但云计算领域尚
    存在大量的开放性问题有待进一步研究和探索。

    展开全文
  • 从\\hbcl-server.engin.umich.edu\hbcl\projects\RunModels下载用于存储模型数据和动画的人员数据和文件夹,并将这些文件夹和文件放入与存储库相同的文件夹中。 大纲 以下步骤是构建新模型并使用其分析极限周期的...
  • ##Container 栖息蚊子模拟 (CIMSIM) 和登革热传播模拟 (DENSIM) 该存储库包含 CIMSiM 和 DENSiM 3.0 1的核心仿真、用户界面和灵敏度分析模块的代码 1
  • 建立了三角型模糊需求与模糊提前期且允许缺货的周期性...分析了期望值模型的盘点周期与目标存储水平间的关系。运用模糊模拟技术设计了一最优库存策略的算法。算例分析表明,提前期和需求模糊性的增大会产生更大的费用。
  • 该方法为被优化的程序建立LGDFG模型,把每个程序段作为该模型的一个节点,分析前后节点之间的数据产生消耗关系,从而得到不同数据块对应的生存周期,对于生存周期相互间不重叠的数据段可以实现存储共享。以音频AC3...
  • 主要研究了在有限的时间周期内, 由Gompertz模型描述且具有脉冲收获的种群系统的优化控制问题.在脉冲收获量预先给定的前提下, 以种群在周期末的存储量最大为目标, 研究脉冲收获时刻的不同选择对存储量的影响并确定...
  • 许多这样的仿真器包含最简单的存储模型,而这些存储模型并未考虑到现代存储系统的高度复杂行为。时钟周期精确的CPU仿真器通常将存储访问的延时设为固定的,与实际的存储系统差别很大。为此,我们开发DRAMSim2,一种...
  • 存储论及经济订货批量模型(EOQ)

    千次阅读 2020-03-25 22:15:09
    存储论(管理运筹学) 库存:一个组织保存的产品,在制品货原材料等存储物,其数量随需求过程而减少,又随着补充而增加。 需求:系统的输出,是存储存在的根本原因,其形式有:间断式需求,连续均匀的需求,确定而...
  • 主要研究在有限时间周期内,由Gilpin-Ayala模型描述的脉冲收获系统的优化控制问题。收获函数包括比例收获和常量收获,在收获量一定的条件下,以种群在周期末的存储量最大为目标函数,对于不同的初值条件,研究不同的...
  • ASP.NET的网页代码模型及生命周期

    千次阅读 2009-11-11 23:57:00
    第4章 ASP.NET的网页代码模型及生命周期从本章开始,就进入了ASP.NET应用程序开发的世界。在了解了C#的结构,以及面向对象的概念后,就可以从面向对象的思想开发ASP.NET应用程序。在ASP.NET中,能够使用面向对象的...
  • 数据仓库数据模型之:极限存储--历史拉链表 2013-8-8 13:39| 发布者: 天空之城| 查看: 8199| 评论: 0|原作者: superlxw1234|来自: 数据仓库,hadoop 摘要: 在数据仓库的数据模型设计过程中,经常会遇到...
  • 以武汉沃尔玛为例,建立(s,S)随机存储策略模型,Markov链模型和非线性离散规划模型,旨在最大化每个分支的每个周期的利润并进一步最大化公司的总利润。每个周期的利润。 其中,随机存储策略模型为每个分支机构...
  • AIOps探索:基于VAE模型周期性KPI异常检测方法 from:jinjinlin.com   作者:林锦进 前言 在智能运维领域中,由于缺少异常样本,有监督方法的使用场景受限。因此,如何利用无监督方法对海量KPI进行异常...
  • 而历史拉链表,既能满足对历史数据的需求,又能很大程度的节省存储资源。在数据仓库的数据模型设计过程中,经常会遇到这样的需求:1. 数据量比较大;2. 表中的部分字段会被update,如用户的地址,产品的描述信息,订单...
  • 一个请求的生命周期 前言:当我们从电脑上去访问一个网址时,究竟发生了什么?这个问题可能是自己思考或者面试的时候问到,这里我们以访问百度首页为例,进行一个全面的HTTP请求分析。 核心概念 计算机网络核心...
  • 一、系统架构 Client 1 包含访问hbase的接口,client维护着一些cache来加快对hbase的访问,比如regione的位置信息。 Zookeeper 1 保证任何时候,集群中只有一个master ...2 存贮所有Region的寻址...4 存储Hbase的s...
  • 1 maven概念模型 2 maven的生命周期,项目构建过程 Maven生命周期就是为了对所有的构建过程进行抽象和统一 包括项目清理,初始化,编译,打包,测试,部署等几乎所有构建步骤   Maven有...
  • 该项目包括通过该方法模拟具有周期性边界条件的二维材料的磁化Ising模型来自蒙特卡洛。 该存储库包含用于仿真的代码文件,这些代码文件是Jupyter的Python 3中的笔记本(我主要使用JupyterLab),以及LaTeX中的报告...
  • Brinson期归因模型的Python实现2.1 基准数据读取模块2.2 持仓数据读取模块2.3 持仓收益与基准计算模块2.4 Brinson期归因模型核心算法Brinson_Multiple2.5 主函数模块3. 归因结果写在最后 1. 引言 在上文中,...
  • 全面理解Java内存模型(JMM)及volatile关键字

    万次阅读 多人点赞 2017-06-12 11:25:05
    通过对前面的硬件内存架构、Java内存模型以及Java线程的实现原理的了解,我们应该已经意识到,线程的执行最终都会映射到硬件处理器上进行执行,但Java内存模型和硬件内存架构并不完全一致。对于硬件内存来说只有...
  • 一篇文章弄懂Java线程基础和Java内存模型

    万次阅读 多人点赞 2020-04-12 19:07:17
    文章目录一、线程的生命周期及五种基本状态二、Java线程的创建及启动1.继承Thread类,重写该类的run()方法2.通过实现Runnable接口创建线程类3.通过Callable和Future接口创建线程三、Java内存模型概念四、内存间...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 192,012
精华内容 76,804
关键字:

多周期存储模型