数学建模之存储论

存储论

存贮论(一):基本概念、无约束的确定型存贮模型_存储论模型_wamg潇潇的博客-CSDN博客(有例题lingo代码)

存储论(二):有约束的确定型存贮模型、单周期随机库存模型_存储论四个模型公式_wamg潇潇的博客-CSDN博客(有例题matlab和lingo代码)

存贮论(或称为库存论)研究存贮系统的 性质、运行规律以及如何寻找最优存贮策略。所谓存贮实质上是将供应与需求两个环节以存贮中心联结起来,起到协调与缓和 供需之间矛盾的作用。

1 存贮模型中的基本概念

1.存贮问题的基本要素            

2.存贮模型的基本费用

3.存贮策略

2 无约束的确定型存贮模型

2.1 模型一:不允许缺货,补充时间极短—基本的经济订购批量存贮模型

2.2 模型二:允许缺货,补充时间较长—经济生产批量存贮模型

2.3 模型三:不允许缺货,补充时间较长—基本的经济生产批量存贮模型

2.4 模型四:允许缺货,补充时间极短的经济订购批量存贮模型

2.5 模型五:经济定购批量折扣模型

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 模型的求解

习题

1 存贮模型中的基本概念

所谓存贮实质上是将供应与需求两个环节以存贮中心联结起来,起到协调与缓和 供需之间矛盾的作用。存贮模型的基本形式如图 1 所示。

1.存贮问题的基本要素

(1)需求率:单位时间内对某种物品的需求量,用 D 表示。

(2)订货批量:一次订货中,包含某种货物的数量,用Q 表示。

(3)订货间隔期:两次订货之间的时间间隔,用T 表示。

2.存贮模型的基本费用

(1)订货费:每组织一次生产、订货或采购的费用,通常认为与定购数量无关, 记为CD 。

(2)存贮费:所有用于存贮的全部费用,通常与存贮物品的多少和时间长短有关。 单位存贮费记为 CP。

(3)短缺损失费:由于物品短缺所产生的一切损失费用,通常与损失物品的多少 和短缺时间的长短有关,记为CS 。

3.存贮策略

所谓一个存贮策略,是指决定什么情况下对存贮进行补充,以及补充数量的多少。 下面是一些比较常见的存贮策略。

(1)t 循环策略:不论实际的存贮状态如何,总是每隔一个固定的时间t ,补充 一个固定的存贮量Q 。

(2)(t,S) 策略:每隔一个固定的时间 t 补充一次,补充数量以补足一个固定的 最大存贮量 S 为准。因此,每次补充的数量是不固定的,要视实际存贮量而定。当存贮(余额)为 I 时,补充数量为Q = S − I 。

(3)(s,S) 策略:当存贮(余额)为 I ,若 I > s ,则不对存贮进行补充;若 I ≤ s , 则对存贮进行补充,补充数量Q = S − I 。补充后达到最大存贮量 S 。s 称为订货点(或 保险存贮量、安全存贮量、警戒点等)。

在很多情况下,实际存贮量需要通过盘点才能 得知。若每隔一个固定的时间t 盘点一次,得知当时存贮 I ,然后根据 I 是否超过订货 点 s ,决定是否订货、订货多少,这样的策略称为(t,s,S)策略。

2 无约束的确定型存贮模型

我们首先考察经济订购批量存贮模型。 所谓经济订购批量存贮模型(economic ordering quantity, EOQ)是指不允许缺货、 货物生产(或补充)的时间很短(通常近似为 0)的模型。

2.1 模型一:不允许缺货,补充时间极短—基本的经济订购批量存贮模型

基本的经济订购批量存贮模型有以下假设:

(1)短缺费为无穷,即  ;

(2)当存贮降到零后,可以立即得到补充;

(3)需求是连续的、均匀的,即需求速度(单位时间的需求量) D 为常数;

(4)每次的订货量不变,订购费不变; (5)单位存贮费为Cp 。

由上述假设,存贮量的变化情况如图 2 所示。

lingo程序

model:

sets:

times/1 2/:n,Q,C;

endsets

data:

n=57 58;

enddata

C_D=10;

D=100*365;

C_P=0.005*365;

@for(times:n=D/Q;C=0.5*C_P*Q+C_D*D/Q);

end

求得全年组织 58 次订货费用少一点。 利用 LINGO 软件,我们可以直接求出问题的整数解。 LINGO 程序如下:

model:

sets:

times/1..100/:C,Q; !100不是必须的通常取一个适当大的数就可以了;

endsets

C_D=10;

D=100*365;

C_P=0.005*365;

@for(times(i):Q(i)=D/i;C(i)=0.5*C_P*Q+C_D*D/Q);

C_min=@min(times:C);

Q_best=@sum(times(i):Q(i)*(C(i) #eq# C_min));

N_best=D/Q_best;

end

求得一年组织 58 次订货,每次的订货量为 629.3 件,最优费用为 1154.25 元。

2.2 模型二:允许缺货,补充时间较长—经济生产批量存贮模型

模型假设条件:

(1)需求是连续的,即需求速度 D 为常数;

(2)补充需要一定时间。即一旦需要,生产可立刻开始,但生产需要一定周期。 设生产是连续均匀的,即生产速度 P 为常数。同时,设 P > D ;

(3)单位存贮费为 CP,单位缺货费为CS,订购费为 CD。不考虑货物价值。 存贮状态图见图 3。

model:

D=4900;

C_P=1000;

P=9800;

C_D=500;

C_S=2000;

T1=(2*C_D*(C_P+C_S)/(D*C_P*C_S*(1-D/P)))^0.5; !单位为年;

T=T1*365; !单位为天;

Q=D*T1;

T_S=C_P*T/(C_P+C_S); !求缺货时间;

T_P=D*T/P; ! 求生产周期;

C=2*C_D/T1; ! 求年总费用;

end

2.3 模型三:不允许缺货,补充时间较长—基本的经济生产批量存贮模型

在模型二的假设条件中,取消允许缺货条件(即设Cs → ∞ ,  t2 = 0 ),就成为模 型三。因此,模型三的存贮状态图和最优存贮策略可以从模型二直接导出。 模型三的存贮状态见图 4。下面我们用另外的方法导出模型三的最优存贮策略。

2.4 模型四:允许缺货,补充时间极短的经济订购批量存贮模型

在模型二的假设条件中,取消补充需要一定时间的条件(即设 P → ∞ ),就成为 模型四。因此,和模型三一样,模型四的存贮状态图和最优存贮策略也可以从模型二直 接导出。 模型四的存贮状态图见图 6。下面我们用另外的方法导出模型四的最优存贮策略。 设T 仍为时间周期,其中T1 表示T 中不缺货时间,T2 表示T 中缺货时间,即 T1 +T2 = T 。 S 为最大缺货量,Cs 为缺货损失的单价,Q 仍为每次的最高订货量,则 Q − S 为最高存贮量,因为每次得到订货量Q 后,立即支付给顾客最大缺货 S 。

model:

min=0.5*C_P*(Q-S)^2/Q+C_D*D/Q+0.5*C_S*S^2/Q;

n=D/Q;@gin(n);

data:

C_D=12000;

D=96000;

C_P=3.6;

C_S=13.2;

enddata

end

求得全年组织 3 次订货,每次的订货量为 32000 件,最大缺货量为 6857.141 件, 最优费用为 81257.14 元。 对于确定型存贮问题,上述四个模型是最基本的模型。其中,模型一、三、四又可看作模型二的特殊情况。

在每个模型的最优存贮策略的各个参数中,最优存贮周期T 是最基本的参数,其它各个参数和它的关系在各个模型中都是相同的。根据模型假设条 件的不同,各个模型的最优存贮周期  之间也有明显的规律性。因子  对应了 是否允许缺货的假设条件,因子  对应了补充是否需要时间的假设条件。

一个存贮问题是否允许缺货或补充是否需要时间,完全取决于对实际问题的处理 角度,不存在绝对意义上的不允许缺货或绝对意义上的补充不需要时间。如果缺货引起 的后果或损失十分严重,则从管理的角度应当提出不允许缺货的建模要求;否则,可视 为允许缺货的情况。至于缺货损失的估计,应当力求全面和精确。如果补充需要的时间 相对于存贮周期是微不足道的,则可考虑补充不需要时间的假设条件;否则,需要考虑 补充时间。在考虑补充时间时,必须分清拖后时间和生产时间,两者在概念上是不同的。

2.5 模型五:经济定购批量折扣模型

所谓经济订购批量折扣模型是经济订购批量存贮模型的一种发展,即商品的价格 是不固定的,是随着订货量的多少而改变的。就一半情况而论,物品订购的越多,物品 的单价也就越低,因此折扣模型就是讨论这种情况下物品的订购数量。 一年花费的总费用由三个方面组成:年平均存贮费、年平均订货费和商品的购买 费用,即

model:

sets:

range/1..4/:B,K,C_P,Q,EOQ,C; !B是订货量的分界点Q表示由式35计算出

的订货量,EOQ是调整后的订货量;

endsets

data:

D=40000; C_D=9000; R=0.2;

B=10000,20000,30000,40000;

K=35.225,34.525,34.175,33.825;

Enddata

@for(range:C_P=R*K;Q=(2*C_D*D/C_P)^0.5);

EOQ(1)=Q(1)-(Q(1)-B(1))*(Q(1)#gt# B(1));

@for(range(i)|i #gt# 1:EOQ(i)=Q(i)+(B(i-1)-Q(i)+1)*(Q(i) #lt#

B(i-1))-(Q(i)-B(i))*(Q(i) #gt# B(i)));

@for(range:C=0.5*C_P*EOQ+C_D*D/EOQ+K*D);

C_min=@min(range:C);

Q_best=@sum(range:EOQ*(C #eq# C_min));

T_best=Q_best/D;

end

求得最优订货量为 10211 件,最优存贮费用为 145151510 元,最优订货周期是平均 0.255 年一次。 比较计算结果中的 Q 值与 EOQ 值,会对程序的理解有很大的帮助。 我们也可以使用如下的LINGO程序求得最优订货量和最优订货周期。

model:

sets:

range/1..4/:B,K,C_P,Q; !B是订货量的分界点Q表示由式35计算出的订货量

EOQ是调整后的订货量;

endsets

data:

D=40000; C_D=9000; R=0.2;

B=10000,20000,30000,40000;

K=35.225,34.525,34.175,33.825;

Enddata

n=@size(range);

@for(range:C_P=R*K;Q=(2*C_D*D/C_P)^0.5);

Q_best=Q(1)*(Q(1) #le# B(1))+@sum(range(i)| i #ne# 1 :Q(i)*(Q(i) #gt#

B(i-1) #and# Q(i) #le# B(i)));

T_best=Q_best/D;

end

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

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

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

下面三例题在原文链接有lingo程序存储论(二):有约束的确定型存贮模型、单周期随机库存模型_存储论四个模型公式_wamg潇潇的博客-CSDN博客

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

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

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

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Python中进行数学建模国赛数据预处理的一般步骤如下: 1. 导入所需的Python库,如numpy、pandas等,使用这些库来处理数据。 2. 使用pandas库中的read_csv()函数读取原始数据文件,并将其存储在一个DataFrame对象中。 3. 对数据进行初步的探索性分析,包括查看数据的基本信息、处理缺失值、处理异常值等。 4. 进行数据清洗和转换。这包括去除重复值、处理缺失值(可以使用fillna()函数或dropna()函数)、将数据转换为合适的格式(例如将字符串转换为数值型数据)。 5. 对数据进行特征工程。这包括选择和构建适当的特征,例如通过创建新的特征、进行特征缩放或者进行特征选择。 6. 对需要处理的数据进行预处理的方法有很多种,其中一种常见的方法是使用sklearn库中的预处理方法,比如StandardScaler进行数据标准化、MinMaxScaler进行数据归一化等。 7. 最后,根据具体的建模需求,将数据划分为训练集和测试集,用于模型的训练和评估。 需要注意的是,具体的数据预处理步骤可能会因具体问题而异,可以根据实际情况进行相应的调整和扩展。此外,可以参考引用中提到的全国国赛美赛研究生华为杯数学建模竞赛练习使用的方法,以及引用和引用中提到的GitHub链接,获取更详细的代码和论文。<span class="em">1</span><span class="em">2</span><span class="em">3</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值