一种仓储物资调用方法及装置转让专利

申请号 : CN202310516236.X

文献号 : CN116523439B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 肖岩平郭小乐唐凯

申请人 : 中国人民解放军军事科学院系统工程研究院

摘要 :

本发明公开了一种仓储物资调用方法及装置,包括获取调用物资需求信息;基于预设的物资储备信息数据库,对调用物资需求信息进行匹配处理,构建调用模型;判断是否有可用调用方案,如果无,则结束程序;如果有,则构建目标函数模型和约束函数模型;对所述目标函数模型和约束函数模型进行求解,得到调运方案。本发明中提出的一种仓储物资调用方法,采用多重剪枝的方式,在得到全局最优解的同时提升算法的运行效率。可见,本发明通过对枚举法进行优化,在保证最优解的基础上,提升了算法效率,降低了时间成本。

权利要求 :

1.一种仓储物资调用方法,其特征在于,所述方法包括:S1、获取调用物资需求信息;所述调用物资需求信息包括需求目的地位置、需调用物资种类和数量;

S2、基于预设的物资储备信息数据库,对所述调用物资需求信息进行匹配处理,构建调用模型;所述调用模型包括物资调用需求向量、候选仓库距离向量、候选仓库向量、决策向量、仓库存储矩阵;具体的:S21、根据所述调用物资需求信息,构建物资调用需求向量Y;所述物资调用需求向量Y=(y1,y2,…,ym),其中,yj表示第j种物资需要调用的数量,所述j∈{1,…,m};所述m表征调用物资的品种数;

S22、根据所述调用物资需求信息,从所述预设的物资储备信息数据库匹配出储存有调用物资的仓库,得到初始候选仓库集合SS;所述初始候选仓库集合SS={ss1,ss2,…,ssn};

所述n表征共有n个候选仓库内储存有调用物资需求信息内的物资;

S23、根据所述需求目的地位置,对所述候选仓库向量中候选仓库到需求目的地位置的距离进行计算,得到初始候选仓库距离集合DD;所述初始候选仓库距离集合DD={dd1,dd2,…,ddn};

S24、对所述初始候选仓库距离集合DD中所有的候选仓库距离按从大到小顺序进行排列,得到候选仓库距离向量D;所述候选仓库距离向量D=(d1,d2,…,dn);

S25、按照所述候选仓库距离向量D中候选仓库距离的对应关系,对所述候选仓库向量进行排序,得到候选仓库向量S;所述候选仓库向量S=(s1,s2,…,sn);仓库si到所述需求目的地位置的距离为di,所述i∈{1,…,n};

S26、根据所述候选仓库向量S,构建决策向量X;所述决策向量X=(x1,x2,…,xn),其中, 所述i∈{1,…,n};

S27、基于所述预设的物资储备信息数据库、所述物资调用需求向量Y和所述候选仓库向量S,构建仓库存储矩阵A;

所述仓库存储矩阵A为:

其中,aij表示第i个仓库存储第j种物资的数量;

S3、基于所述调用模型,判断是否有可用调用方案,得到第一判断结果;

如果所述第一判断结果为否,则结束程序;

如果所述第一判断结果为是,则执行步骤S4;

S4、基于所述调用模型,构建目标函数模型和约束函数模型,具体的:S41、构建以调用总距离最小为目标的第一目标函数min Z;

所述调用总距离Z为:

T

式中,min表示求最小值函数;Z表示调用总距离;X表示决策向量X;D表示候选仓库距离向量D转置;xk表示决策向量X中第k个分量;dk表示候选仓库距离向量D中第k个分量;

S42、构建以调拨仓库总数最小为目标的第二目标函数min AS;

所述调拨仓库总数AS为:

式中,所述X表示决策向量X;AS表示调拨仓库总数;所述||X||1表示向量X的1‑范数;xh表示决策向量X中第h个分量;

S43、构建约束函数模型,包括:

S431、计算第一目标函数的最大值Zmax;

所述Zmax计算公式为:

式中,dk表示候选仓库距离向量D中第k个分量;

S432、设置所述第二目标函数的最大值ASmax=n;

S433、构建约束函数模型,所述约束函数模型包括:式中,x1、x2、…、xn为决策向量X的各分量;

d1、d2、…、dn为候选仓库距离向量D的各分量;

a11、a21、…、anm为仓库存储矩阵A的各分量;

y1、y2、…、ym为物资调用需求向量Y的各分量;

* *

Z表示已知的最小调用总距离;所述Z初始值为Zmax;

* *

AS表示已知的最小调拨仓库总数;所述AS初始值为ASmax;

S5、对所述目标函数模型和约束函数模型进行求解,得到调运方案;具体的:S51、构建最优向量B、指针变量p;所述最优向量B=(b1,b2,…,bn),所述最优向量B的初始值为(1,1,…,1),所述指针变量p的初始值为1;

S52、利用最小调用总距离计算函数和最小调拨仓库总数计算函数,分别计算约束函数* *模型中的最小调用总距离Z和最小调拨仓库总数AS;

所述最小调用总距离计算函数为:

所述最小调拨仓库总数计算函数为:

式中,B表示所述最优向量B;D表示所述候选仓库距离向量D;

S53、判断所述指针变量p是否大于pmax,得到第二判断结果;如果所述第二判断结果为是,则执行步骤S57;如果所述第二判断结果为否,则将p转换为n维二进制向量Xp;所述Xp=(xp1,xp2,…,xpn),其中,xpi∈{0,1},所述i∈{1,…,n};所述n为决策向量X的维数;所述pmaxn=2‑1;

S54、构建函数序号变量w,所述w为不小于1的自然数;所述w初始值为1;

S55、将枚举向量Xp输入约束函数模型的第w个不等式进行计算,判断所述第w个不等式是否成立,得到第三判断结果;如果第三判断结果为否,则将p更新为p+1,执行步骤S53;如果第三判断结果为是,则执行步骤S56;

S56、判断所述w是否小于m+2,得到第四判断结果;如果所述第四判断结果为是,则将w更新为w+1,执行步骤S55;如果所述第四判断结果为否,则将最优向量B更新为所述二进制向量Xp,将p更新为p+1,执行步骤S52;

S57、将决策向量X更新为所述最优向量B,得到调运方案。

2.根据权利要求1所述的仓储物资调用方法,其特征在于,所述基于所述调用模型,判断是否有可用调用方案,得到第一判断结果,包括:S31、将所述决策向量X内所有分量的值设置为1,得到仓库全选向量X1;所述X1=(1,

1,…,1);

S32、将所述仓库全选向量X1和所述仓库存储矩阵A进行相乘,得到总供给向量T,所述T=(t1,t2,…,tm);

S33、将所述总供给向量T各分量与所述物资调用需求向量Y的各分量进行大小比较,如果所述总供给向量T各分量都大于所述物资调用需求向量Y的各分量,得到第一判断结果为是;否则,得到第一判断结果为否。

3.一种仓储物资调用装置,其特征在于,应用如权利要求1‑2任一项所述的仓储物资调用方法,所述装置包括:获取模块;所述获取模块用于获取调用物资需求信息;所述调用物资需求信息包括需求目的地位置、需调用物资种类和数量;

第一模型构建模块;所述第一模型构建模块用于基于预设的物资储备信息数据库,对所述调用物资需求信息进行匹配处理,构建调用模型;所述调用模型包括物资调用需求向量、候选仓库距离向量、候选仓库向量、决策向量、仓库存储矩阵;

判断模块;所述判断模块用于基于所述调用模型,判断是否有可用调用方案,得到第一判断结果;如果所述第一判断结果为否,则结束程序;如果所述第一判断结果为是,则调用第二模型构建模块;

第二模型构建模块;所述第二模型构建模块用于基于所述调用模型,构建目标函数模型和约束函数模型;

计算模块;所述计算模块用于对所述目标函数模型和约束函数模型进行求解,得到调运方案。

4.一种仓储物资调用装置,其特征在于,所述装置包括:存储有可执行程序代码的存储器;

与所述存储器耦合的处理器;

所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1‑2任一项所述的仓储物资调用方法。

说明书 :

一种仓储物资调用方法及装置

技术领域

[0001] 本发明涉及物流领域,具体涉及一种仓储物资调用方法及装置。

背景技术

[0002] 仓储物资的调用是后勤保障的一项重要工作,也是社会经济生活中一项重要内容。仓储物资的调用需要付出一定代价,这个代价包括费用、时间、距离等因素,在不同情况下,各个因素的影响权重会有所不同,总的要求是代价最小。而现有的仓储物资调用方法,大多是基于枚举或启发式搜索的方式。基于启发式搜索的方法,虽然运行效率较高,但往往只能得到局部最优解或次优解;基于枚举的方法可以得到全局最优,在需调用物资种类少时,该方法可以较好的解决问题,但是,当需要调用大量物资时,由于物资种类和数量的增加,基于枚举算法需要很长的时间才能计算出调用方案,因此,需要一种兼顾效率和全局最优的仓储物资调用方法。

发明内容

[0003] 为解决现有仓储物资调用无法兼顾效率和全局最优的问题,本发明中提出的一种仓储物资调用方法,所述方法采用多重剪枝的方式,在得到全局最优解的同时大大提升了算法的运行效率。
[0004] 为达到上述目的,本发明实施例第一方面公开了一种仓储物资调用方法,包括:
[0005] S1、获取调用物资需求信息;所述调用物资需求信息包括需求目的地位置、需调用物资种类和数量;
[0006] S2、基于预设的物资储备信息数据库,对所述调用物资需求信息进行匹配处理,构建调用模型;所述调用模型包括物资调用需求向量、候选仓库距离向量、候选仓库向量、决策向量、仓库存储矩阵;
[0007] S3、基于所述调用模型,判断是否有可用调用方案,得到第一判断结果;
[0008] 如果所述第一判断结果为否,则结束程序;
[0009] 如果所述第一判断结果为是,则执行步骤S4;
[0010] S4、基于所述调用模型,构建目标函数模型和约束函数模型;
[0011] S5、对所述目标函数模型和约束函数模型进行求解,得到调运方案。
[0012] 作为一种可选的实施方式,在本发明实施例第一方面中,所述基于预设的物资储备信息数据库,对所述调用物资需求信息进行匹配处理,构建调用模型,包括:
[0013] S21、根据所述调用物资需求信息,构建物资调用需求向量Y;所述物资调用需求向量Y=(y1,y2,…,ym),其中,yj表示第j种物资需要调用的数量,所述j∈{1,…,m};所述m表征调用物资的品种数;
[0014] S22、根据所述调用物资需求信息,从所述预设的物资储备信息数据库匹配出储存有调用物资的仓库,得到初始候选仓库集合SS;所述初始候选仓库集合SS={ss1,ss2,…,ssn};所述n表征共有n个候选仓库内储存有调用物资需求信息内的物资;
[0015] S23、根据所述需求目的地位置,对所述候选仓库向量中候选仓库到需求目的地位置的距离进行计算,得到初始候选仓库距离集合DD;所述初始候选仓库距离集合DD={dd1,dd2,…,ddn};
[0016] S24、对所述初始候选仓库距离集合DD中所有的候选仓库距离按从大到小顺序进行排列,得到候选仓库距离向量D;所述候选仓库距离向量D=(d1,d2,…,dn);
[0017] S25、按照所述候选仓库距离向量D中候选仓库距离的对应关系,对所述候选仓库向量进行排序,得到候选仓库向量S;所述候选仓库向量S=(s1,s2,…,sn);仓库si到所述需求目的地位置的距离为di;所述i∈{1,…,n};
[0018] S26、根据所述候选仓库向量S,构建决策向量X;所述决策向量X=(x1,x2,…,xn);上述决策向量X表征调运方案是否选择候选仓库调用物资;
[0019] 其中, 所述i∈{1,…,n};
[0020] S27、基于所述预设的物资储备信息数据库、所述物资调用需求向量Y和所述候选仓库向量S,构建仓库存储矩阵A;所述仓库存储矩阵A表示为:
[0021]
[0022] 其中,aij表示第i个仓库存储第j种物资的数量。
[0023] 作为一种可选的实施方式,在本发明实施例第一方面中,所述基于所述调用模型,判断是否有可用调用方案,得到第一判断结果,包括:
[0024] S31、将所述决策向量X内所有分量的值设置为1,得到仓库全选向量X1;所述X1=(1,1,…,1);
[0025] S32、将所述仓库全选向量X1和所述仓库存储矩阵A进行相乘,得到总供给向量T,所述T=(t1,t2,…,tm);
[0026] S33、将所述总供给向量T各分量与所述物资调用需求向量Y的各分量进行大小比较,如果所述总供给向量T各分量都大于所述物资调用需求向量Y的各分量,得到第一判断结果为是;否则,得到第一判断结果为否。
[0027] 作为一种可选的实施方式,在本发明实施例第一方面中,所述基于所述调用模型,构建目标函数模型和约束函数模型,包括:
[0028] S41、构建以调用总距离最小为目标的第一目标函数min Z;
[0029] 所述调用总距离Z为:
[0030]
[0031] 式中,min表示求最小值函数;Z表示调用总距离;X表示决策向量X;DT表示候选仓库距离向量D转置;xk表示决策向量X中第k个分量;dk表示候选仓库距离向量D中第k个分量。
[0032] S42、构建以调拨仓库总数最小为目标的第二目标函数min AS;
[0033] 所述调拨仓库总数AS为:
[0034]
[0035] 式中,所述X表示决策向量X;所述||X||1表示向量X的1‑范数;xh表示决策向量X中第h个分量;
[0036] S43、构建约束函数模型。
[0037] 作为一种可选的实施方式,在本发明实施例第一方面中,所述构建约束函数模型,包括:
[0038] S431、计算第一目标函数的最大值Zmax;
[0039] 所述Zmax计算公式为:
[0040]
[0041] 式中,dk表示候选仓库距离向量D中第k个分量;
[0042] S432、设置所述第二目标函数的最大值ASmax=n;
[0043] S433、构建约束函数模型,所述约束函数模型包括:
[0044]
[0045] 式中,x1、x2、…、xn为决策向量X的各分量;
[0046] d1、d2、…、dn为候选仓库距离向量D的各分量;
[0047] a11、a21、…、anm为仓库存储矩阵A的各分量;
[0048] y1、y2、…、ym为物资调用需求向量Y的各分量;
[0049] Z*表示已知的最小调用总距离;所述Z*初始值为Zmax;
[0050] AS*表示已知的最小调拨仓库总数;所述AS*初始值为ASmax。
[0051] 作为一种可选的实施方式,在本发明实施例第一方面中,所述对所述目标函数模型和约束函数模型进行求解,得到调运方案,包括:
[0052] S51、构建最优向量B、指针变量p;所述最优向量B=(b1,b2,…,bn),所述最优向量B用于存储在搜索过程中的最优解;所述构建指针变量p作为历遍指针;所述最优向量B的初始值为(1,1,…,1),所述指针变量p的初始值为1;
[0053] S52、利用最小调用总距离计算函数和最小调拨仓库总数计算函数,分别计算约束* *函数模型中的最小调用总距离Z和最小调拨仓库总数AS;
[0054] 所述最小调用总距离计算函数为:
[0055]
[0056] 所述最小调拨仓库总数计算函数为:
[0057]
[0058] 式中,B表示所述最优向量B;D表示候选仓库距离向量D;
[0059] S53、判断所述指针变量p是否大于pmax,得到第二判断结果;如果所述第二判断结果为是,则执行步骤S57;如果所述第二判断结果为否,则将p转换为n维二进制向量Xp;所述Xp=(xp1,xp2…xpn),其中,xpi∈{0,1},所述i∈{1,…,n};所述n为决策向量X的维数;所述npmax=2‑1;
[0060] S54、构建函数序号变量w,所述w为不小于1的自然数;所述w初始值为1;
[0061] S55、将枚举向量Xp输入约束函数模型的第w个不等式进行计算,判断所述第w个不等式是否成立,得到第三判断结果;如果第三判断结果为否,则将p更新为p+1,执行步骤S53;如果第三判断结果为是,则执行步骤S56;
[0062] S56、判断所述w是否小于m+2,得到第四判断结果;如果所述第四判断结果为是,则将w更新为w+1,执行步骤S55;如果所述第四判断结果为否,则将最优向量B更新为所述二进制向量Xp,将p更新为p+1,执行步骤S52;
[0063] S57、将决策向量X更新为所述最优向量B,得到调运方案。
[0064] 本发明实施例第二方面公开了一种仓储物资调用装置,所述装置包括:
[0065] 获取模块;所述获取模块用于获取调用物资需求信息;所述调用物资需求信息包括需求目的地位置、需调用物资种类和数量;
[0066] 第一模型构建模块;所述第一模型构建模块用于基于预设的物资储备信息数据库,对所述调用物资需求信息进行匹配处理,构建调用模型;所述调用模型包括物资调用需求向量、候选仓库距离向量、候选仓库向量、决策向量、仓库存储矩阵;
[0067] 判断模块;所述判断模块用于基于所述调用模型,判断是否有可用调用方案,得到第一判断结果;如果所述第一判断结果为否,则结束程序;如果所述第一判断结果为是,则调用第二模型构建模块;
[0068] 第二模型构建模块;所述第二模型构建模块用于基于所述调用模型,构建目标函数模型和约束函数模型;
[0069] 计算模块;所述计算模块用于对所述目标函数模型和约束函数模型进行求解,得到调运方案。
[0070] 本发明第三方面公开了另一种仓储物资调用装置,所述装置包括:
[0071] 存储有可执行程序代码的存储器;
[0072] 与所述存储器耦合的处理器;
[0073] 所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明实施例第一方面公开的仓储物资调用方法中的部分或全部步骤。
[0074] 与现有技术相比,本发明实施例具有以下有益效果:
[0075] 本发明实施例公开了一种仓储物资调用方法及装置,方法包括获取调用物资需求信息;基于预设的物资储备信息数据库,对调用物资需求信息进行匹配处理,构建调用模型;基于所述调用模型,判断是否有可用调用方案,如果无可用调用方案,则结束程序;如果有可用调用方案,则基于所述调用模型,构建目标函数模型和约束函数模型;对所述目标函数模型和约束函数模型进行求解,得到调运方案。本发明中提出的一种仓储物资调用方法,在枚举效率相对较高的隐枚举法的基础上,采用多重剪枝的方式,在得到全局最优解的同时大大提升了算法的运行效率。可见,本发明对枚举法进行了优化,在保证最优解的基础上,大大提升了枚举效率,降低了时间成本。

附图说明

[0076] 图1是本发明实施例公开的一种仓储物资调用方法的流程示意图;
[0077] 图2是本发明实施例公开的一种仓储物资调用装置的结构示意图;
[0078] 图3是本发明实施例公开的另一种仓储物资调用装置的结构示意图。

具体实施方式

[0079] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0080] 实施例一
[0081] 请参阅图1。图1为本发明实施例公开的一种仓储物资调用方法的流程示意图。其中,图1所描述的仓储物资调用方法应用于仓储物资调用管理系统中,如用于仓储物资调用管理的本地服务器或云端服务器等,本发明实施例不做限定。如图1所示,本发明实施例公开的一种仓储物资调用方法可以包括以下操作:
[0082] S1、获取调用物资需求信息;
[0083] 本发明实施例中,上述调用物资需求信息包括需求目的地位置、需调用物资种类和数量。
[0084] S2、基于预设的物资储备信息数据库,对调用物资需求信息进行匹配处理,构建调用模型;
[0085] 本发明实施例中,上述调用模型包括物资调用需求向量、候选仓库距离向量、候选仓库向量、决策向量、仓库存储矩阵。
[0086] S3、基于调用模型,判断是否有可用调用方案,得到第一判断结果;
[0087] 如果第一判断结果为否,则结束程序;
[0088] 如果第一判断结果为是,则执行步骤S4。
[0089] S4、基于调用模型,构建目标函数模型和约束函数模型。
[0090] S5、对目标函数模型和约束函数模型进行求解,得到调运方案。
[0091] 可见,实施本发明实施例所描述的仓储物资调用方法首先判断是否有可用方案,若有可用方案再对构建的目标函数模型和约束函数模型进行求解,得到调运方案,进而利用多重剪枝的方法求解模型,提高了算法的效率。
[0092] 作为一种可选的实施方式,在该实施例中,上述步骤S2中基于预设的物资储备信息数据库,对所述调用物资需求信息进行匹配处理,构建调用模型,包括:
[0093] S21、根据调用物资需求信息,构建物资调用需求向量Y;上述物资调用需求向量Y=(y1,y2,…,ym),其中,yj表示第j种物资需要调用的数量,上述j∈{1,…,m};上述m表征调用物资的品种数;
[0094] S22、根据调用物资需求信息,从预设的物资储备信息数据库匹配出储存有调用物资的仓库,得到初始候选仓库集合SS;上述初始候选仓库集合SS={ss1,ss2,…,ssn};上述n表征共有n个候选仓库内储存有调用物资需求信息内的物资;
[0095] S23、根据需求目的地位置,对候选仓库向量中候选仓库到需求目的地位置的距离进行计算,得到初始候选仓库距离集合DD;上述初始候选仓库距离集合DD={dd1,dd2,…,ddn};
[0096] S24、对初始候选仓库距离集合DD中所有的候选仓库距离按从大到小顺序进行排列,得到候选仓库距离向量D;上述候选仓库距离向量D=(d1,d2,…,dn);
[0097] S25、按照候选仓库距离向量D中候选仓库距离的对应关系,对候选仓库向量进行排序,得到候选仓库向量S;上述候选仓库向量S=(s1,s2,…,sn);仓库si到所述需求目的地位置的距离为di,上述i∈{1,…,n};
[0098] S26、根据候选仓库向量S,构建决策向量X;上述决策向量X=(x1,x2,…,xn);
[0099] 其中, 上述i∈{1,…,n};
[0100] S27、基于预设的物资储备信息数据库、物资调用需求向量Y和候选仓库向量S,构建仓库存储矩阵A;上述仓库存储矩阵A表示为:
[0101]
[0102] 其中,aij表示第i个仓库存储第j种物资的数量。
[0103] 可选的,在计算候选仓库到需求目的地位置的距离时,如果仅能获取经纬度,利用半正矢公式计算,得到候选仓库到需求目的地位置的距离;
[0104] 上述半正矢公式为:
[0105]
[0106] 式中,D表示候选仓库到需求目的地位置的距离;R为地球半径,为6371km;lng2为目的仓库经度,lat2为目的仓库纬度;lng1为候选仓库的经度,lat1为候选仓库的纬度。
[0107] 作为一种可选的实施方式,在该实施例中,上述步骤S3中基于调用模型,判断是否有可用调用方案,得到第一判断结果,包括:
[0108] S31、将决策向量X内所有分量的值设置为1,得到仓库全选向量X1;所述X1=(1,1,…,1);
[0109] S32、将仓库全选向量X1和仓库存储矩阵A进行相乘,得到总供给向量T,所述T=(t1,t2,…,tm);
[0110] S33、将总供给向量T各分量与物资调用需求向量Y的各分量进行大小比较,如果总供给向量T各分量都大于物资调用需求向量Y的各分量,得到第一判断结果为是;否则,得到第一判断结果为否。
[0111] 需要说明的是,当所有的仓库都选上时,仍不能满足调用需求时,说明仓储的物资不足,无法满足本次物资调用需求,无可用方案,结束程序。
[0112] 作为一种可选的实施方式,在该实施例中,上述步骤S4中基于所述调用模型,构建目标函数模型和约束函数模型,包括:
[0113] S41、构建以调用总距离最小为目标的第一目标函数min Z;
[0114] 上述调用总距离Z为:
[0115]
[0116] 式中,min表示求最小值函数;Z表示调用总距离;X表示决策向量X;DT表示候选仓库距离向量D转置;xk表示决策向量X中第k个分量;dk表示候选仓库距离向量D中第k个分量。
[0117] S42、构建以调拨仓库总数最小为目标的第二目标函数min AS;
[0118] 上述调拨仓库总数AS为:
[0119]
[0120] 式中,X表示决策向量X;||X||1表示向量X的1‑范数;xh表示决策向量X中第h个分量;
[0121] S43、构建约束函数模型。
[0122] 作为一种可选的实施方式,在该实施例中,上述步骤S43中构建约束函数模型,包括:
[0123] S431、计算第一目标函数的最大值Zmax;Zmax表征调用总距离最大值为所有候选仓库到需求目的地位置的距离之和;
[0124] 上述Zmax计算公式为:
[0125]
[0126] 式中,dk表示候选仓库距离向量D中第k个分量;
[0127] S432、设置第二目标函数的最大值ASmax;所述ASmax=n;ASmax表征调拨仓库总数最大为所有候选仓库的个数;
[0128] S433、构建约束函数模型,所述约束函数模型包括:
[0129]
[0130] 式中,x1、x2、…、xn为决策向量X的各分量;
[0131] d1、d2、…、dn为候选仓库距离向量D的各分量;
[0132] a11、a21、…、anm为仓库存储矩阵A的各分量;
[0133] y1、y2、…、ym为物资调用需求向量Y的各分量;
[0134] Z*表示已知的最小调用总距离;所述Z*初始值为Zmax;
[0135] AS*表示已知的最小调拨仓库总数;所述AS*初始值为ASmax。
[0136] 公式(1)表征在待求解调用方案的调用总距离不大于已知最小调用总距离;公式(2)表征在待求解调用方案的调拨仓库总数不大于已知最小调拨仓库总数;公式(3)~(m+2)表征待求解调用方案选择的候选仓库储存的物资数量不少于物资调用需求量。
[0137] 作为一种可选的实施方式,在本发明实施例第一方面中,所述对所述目标函数模型和约束函数模型进行求解,得到调运方案,包括:
[0138] S51、构建最优向量B、指针变量p;上述最优向量B=(b1,b2,…,bn),上述最优向量B用于存储在搜索过程中的最优解;上述构建指针变量p作为历遍指针;上述最优向量B的初始值为(1,1,…,1),上述指针变量p的初始值为1;
[0139] S52、利用最小调用总距离计算函数和最小调拨仓库总数计算函数,分别计算约束* *函数模型中的最小调用总距离Z和最小调拨仓库总数AS;
[0140] 上述最小调用总距离计算函数为:
[0141]
[0142] 上述最小调拨仓库总数计算函数为:
[0143]
[0144] 式中,B表示最优向量B;D表示候选仓库距离向量D;
[0145] S53、判断指针变量p是否大于pmax,得到第二判断结果;如果第二判断结果为是,则执行步骤S57;如果第二判断结果为否,则将p转换为n维二进制向量Xp;所述Xp=(xp1,nxp2,…,xpn),其中,xpi∈{0,1},上述i∈{1,…,n};上述n为决策向量X的维数;上述pmax=2 ‑
1;
[0146] S54、构建函数序号变量w,上述w为不小于1的自然数;上述w初始值为1;
[0147] S55、将枚举向量Xp输入约束函数模型的第w个不等式进行计算,判断第w个不等式是否成立,得到第三判断结果;如果第三判断结果为否,则将p更新为p+1,执行步骤S53;如果第三判断结果为是,则执行步骤S56;
[0148] S56、判断w是否小于m+2,得到第四判断结果;如果第四判断结果为是,则将w更新为w+1,执行步骤S55;如果第四判断结果为否,则将最优向量B更新为二进制向量Xp,将p更新为p+1,执行步骤S52;
[0149] S57、将决策向量X更新为最优向量B,得到调运方案。
[0150] 实施例二
[0151] 实施例二为上述实施例一的具体案例说明。
[0152] 假设目的仓库Q需要一批物资(棉被1000双、帐篷400个、冬装1100套),对目的仓库Q进行物资调入时,以总距离短、调出仓库数量少为原则,最优方案求解过程如下:
[0153] 步骤1,获取调用物资需求信息;调用物资需求信息包括目的仓库Q的位置,物资种类及数量(棉被1000双、帐篷400个、冬装1100套);
[0154] 步骤2,基于预设的物资储备信息数据库,对所述调用物资需求信息进行匹配处理,构建调用模型;具体的:
[0155] 步骤21、构建物资调用需求向量Y=(1000,400,1100);
[0156] 步骤22、根据输入的调用物资信息,在预设的数据库中检索包含该物资信息的所有仓库作为候选仓库。假设从数据库检索出储备有棉被、帐篷、冬装的候选仓库有4个,即ss1、ss2、ss3、ss4,每个候选仓库棉被、帐篷、冬装具体数量如下表1所示:
[0157] 表1物资需求表
[0158]仓库名称 棉被 帐篷 冬装
ss1 500 200 800
ss2 600 200 500
ss3 1100 500 1000
ss4 400 280 900
[0159] 步骤23、系统根据步骤22获得的初始候选仓库集合{ss1、ss2、ss3、ss4},从系统数据库中再获取候选仓库的位置信息,假设目的仓库Q与候选仓库ss1、ss2、ss3、ss4的距离分别为50km、80km、70km、100km,构建初始候选仓库距离集合DD={dd1,dd2,dd3,dd4}={50,80,70,100}。
[0160] 步骤24、对候选仓库距离集合元素进行从大到小排序。由初始化候选仓库距离集合DD={dd1,dd2,dd3,dd4}={50,80,70,100},对其按照从大到小顺序进行排列可得候选仓库距离向量D=(d1,d2,d3,d4)=(dd4,dd2,dd3,dd1)=(100,80,70,50)。
[0161] 需要说明的是,将候选仓库距离向量的各分量按从大到小的顺序排列是为了在进行求解的时候,优先选择距离最小的仓库。
[0162] 步骤25、对应候选仓库距离向量D,根据候选仓库向量S=(s1,s2,s3,s4);候选仓库s1对应为候选仓库ss4,候选仓库s2对应为ss2,候选仓库s3对应为候选仓库ss3,候选仓库s4对应为候选仓库ss1;
[0163] 步骤26、根据所述候选仓库向量S,构建决策向量X=(x1,x2,x3,x4);
[0164] 其中, 所述i∈{1,…,4};
[0165] 步骤27、基于所述预设的物资储备信息数据库、所述物资调用需求向量Y和所述候选仓库向量S,构建仓库存储矩阵A;
[0166]
[0167] 步骤3,令全选决策向量X1=(1,1,1,1),即选择所有仓库提供物资时,计算得到总供给向量T=(2600,1180,3200),经比较,总供给向量T=(2600,1180,3200)的各分量都大于物资调用需求向量Y=(1000,400,1100)的各分量,说明有可用调用方案,执行步骤4。
[0168] 步骤4,基于上述调用模型,构建目标函数模型和约束函数模型;具体的:
[0169] 步骤41、构建以调用总距离最小为目标的第一目标函数min Z;
[0170] 调用总距离Z计算公式为:
[0171]
[0172] 式中,min表示求最小值函数;Z表示调用总距离;X表示决策向量X;DT表示候选仓库距离向量D转置;xk表示决策向量X中第k个分量;dk表示候选仓库距离向量D中第k个分量;
[0173] 步骤42、构建以调拨仓库总数最小为目标的第二目标函数min AS;
[0174] 上述调拨仓库总数AS计算公式为:
[0175]
[0176] 式中,上述X表示决策向量X;上述||X||1表示向量X的1‑范数;xh表示决策向量X中第h个分量;
[0177] 步骤43、构建约束函数模型,包括:
[0178] 步骤431、计算第一目标函数的最大值Zmax;
[0179]
[0180] 步骤432、设置所述第二目标函数的最大值ASmax=4;
[0181] 步骤433、构建约束函数模型,包括:
[0182]
[0183] 式中,x1、x2、x3、x4为决策向量X的各分量;
[0184] Z*表示最小调用总距离;Z*初始值为300;AS*表示最小调拨仓库总数;AS*初始值为4。
[0185] 在约束函数模型中首先判断是否满足第一目标函数和第二目标函数,即首先判断新的输入仓库是否比前一最优解最小调用总距离和最小调拨仓库总数更小,然后,再判断新的输入仓库中的每种物资是否满足调用需求。
[0186] 步骤5,对上述目标函数模型和约束函数模型进行求解,得到调运方案;具体的:
[0187] 步骤51、构建最优向量B、指针变量p;所述最优向量B=(b1,b2,b3,b4),因为在步骤3中,已知当选择所有候选仓库时,可满足调用需求,所以将最优向量B的初始值为[1,1,1,
1];指针变量p的初始值为1,当所有候选仓库都被选择时,即决策向量X=(1,1,1,1)此时二进制数1111为15,所以指针变量p的最大值为15,也就是说,当指针变量p从1增加到15时,通过枚举的方式将所有的可能选项枚举完毕。
[0188] 步骤52、利用最小调用总距离计算函数和最小调拨仓库总数计算函数,分别计算* *约束函数模型中的最小调用总距离Z和最小调拨仓库总数AS;
[0189] 所述最小调用总距离计算函数为:
[0190]
[0191] 所述最小调拨仓库总数计算函数为:
[0192]
[0193] 式中,B表示最优向量B;D表示候选仓库距离向量D;
[0194] 本步骤主要用于每次得到比前一个最优解更好的方案时,使用最新得到的最优解* *更新最小调用总距离Z和最小调拨仓库总数AS。
[0195] 步骤53、判断指针变量p是否大于15,得到第二判断结果;如果所述第二判断结果为是,则执行步骤57;如果所述第二判断结果为否,则将p转换为n维二进制向量Xp=(xp1,xp2,…,xp4);举例说明,p=1时,二进制向量X1=[0,0,0,1],p=10时,二进制向量X10=[1,0,1,0]。
[0196] 步骤54、构建函数序号变量w,所述w为不小于1的自然数;所述w初始值为1。
[0197] 步骤55、将枚举向量Xp输入约束函数模型的第w个不等式进行计算,判断所述第w个不等式是否成立,得到第三判断结果;如果第三判断结果为否,则将p更新为p+1,执行步骤53;如果第三判断结果为是,则执行步骤56。
[0198] 需要说明的是,在本步骤中,按照约束函数模型中约束函数的顺序依次进行判断,如果发现所代入的不等式不成立,说明新的输入方案不是最优解,立即进行剪枝,即该不等式以下各条件就不再检查,因而该方法减少了运算次数,提高最优解求解效率。只有不等式成立时,才执行步骤56。
[0199] 步骤56、判断所述w是否小于15,得到第四判断结果;如果所述第四判断结果为是,则将w更新为w+1,执行步骤55;如果所述第四判断结果为否,则将最优向量B更新为所述二进制向量Xp,将p更新为p+1,执行步骤52。
[0200] 需要说明的是,在本步骤中,首先判断所计算的约束函数是否为最后一个约束函数,如果不是最后一个约束函数,则继续执行步骤55,继续代入下一个约束函数进行计算;如果是最后一个函数,说明所有的约束函数都能满足,说明新输入的向量比原来最优解的调用总距离更短或调拨仓库总数更少,因此更新最优解,也就是将最优向量B更新为该新输入的向量,并更新指针变量p后,继续进行枚举。
[0201] 举例说明,p=1时,即X1=(0,0,0,1),首先将其代入约束函数(1)左侧,求出数值为100×0+80×0+70×0+50×1=50,因为0<50<300,所以满足约束函数(1);其次将其代入约束函数(2)左侧,求出数值为AS=1,因为0<1≤4,所以满足约束函数(2);再次将其代入约束函数(3)左侧,400×0+600×0+1100×0+500×1=500<1000,不满足约束约束函数(3),则进行剪枝,不再计算约束函数(4)和约束函数(5),提高计算效率。按照二进制枚举进行上述操作,直到p=3时,即X3=(0,0,1,1)时,依次代入约束条件左侧,求出数值均满足5* *个约束函数,即得到一个最优可行解为(0,0,1,1),同时将Z值更新为120,AS值更新为2,即约束函数(1)、约束函数(2)更新为
[0202]
[0203] 继续执行二进制枚举值代入约束操作,判断是否满足约束条件,直到执行完最后一个二进制取值。在此过程中,若存在不满足的约束条件,则进行剪枝;若约束函数全部满* *足则更新最优可行解Z值、AS值以及过滤条件。
[0204] 优化后枚举法计算过程可用下表2描述。
[0205] 表2本实施例优化后枚举法计算过程
[0206]
[0207]
[0208] 由表2可知,最优可行解X=(0,0,1,1),此时min Z=120,min AS=2。
[0209] 通过二进制优化后的枚举方法,相对于传统全部枚举的方法,4个变量共有15个解,原来3个约束条件,共需48次运算。现在将2个目标函数转化为2个过滤条件,即新增2个约束条件,将5个约束条件按照①‑②‑③‑④‑⑤顺序排好(见表2),对每个解,依次代入约束函数左侧,求出数值,看是否适合不等式条件,如某一条件不合适,则进行剪枝(即同行以下各条件就不必再检查),因而该方法可以减少运算次数。本示例计算过程如表2所列,实际只作29次运算,提高了最优可行解的求解效率。
[0210] S57、将决策向量X更新为所述最优向量B,得到调运方案。
[0211] 根据步骤56得到的仓储物资调用数学模型最优可行解X=(0,0,1,1),对应候选仓库向量S=(s1,s2,s3,s4)选择s3,s4,对应的候选仓库为ss3、ss1仓库作为调出仓库。由于候选仓库向量S的候选仓库是按距离从大到小的顺序排列,所以调用方案中优先选择候选仓库向量S中序号靠后的候选仓库,因此在本实施例中,优先选择候选仓库ss1作为物资提供仓库,也就是说,由于调出仓库ss1与目的仓库A之间距离小于调出仓库ss3与目的仓库A之间距离,从经济效益出发,应优先从ss1仓库调出物资,剩余空缺物资由ss3仓库进行补充,即从ss1仓库调出棉被500双、帐篷200个、冬装800套,从ss3仓库调出棉被500双、帐篷200个、冬装300套。
[0212] 实施例三
[0213] 请参阅图2,图2是本发明实施例公开的一种仓储物资调用装置的结构示意图。其中,图2所描述的仓储物资调用装置应用于仓储物资调用管理系统中,如用于仓储物资调用管理的本地服务器或云端服务器等,本发明实施例不做限定。如图2所示,该装置包括:
[0214] 获取模块201;所述获取模块用于获取调用物资需求信息;所述调用物资需求信息包括需求目的地位置、需调用物资种类和数量;
[0215] 第一模型构建模块202;所述第一模型构建模块用于基于预设的物资储备信息数据库,对所述调用物资需求信息进行匹配处理,构建调用模型;
[0216] 判断模块203;所述判断模块用于基于所述调用模型,判断是否有可用调用方案,得到第一判断结果;如果所述第一判断结果为否,则结束程序;如果所述第一判断结果为是,则调用第二模型构建模块;
[0217] 第二模型构建模块204;所述第二模型构建模块用于基于所述调用模型,构建目标函数模型和约束函数模型;
[0218] 计算模块205;所述计算模块用于对所述目标函数模型和约束函数模型进行求解,得到调运方案。
[0219] 实施例三公开了一种仓储物资调用装置,是实施例一公开的一种仓储物资调用方法对应的装置实施例,具体处理步骤相同,在实施例三中不再赘述。
[0220] 实施例四
[0221] 请参阅图3,图3是本发明实施例公开的另一种仓储物资调用装置的结构示意图。其中,图3所描述的仓储物资调用装置应用于仓储物资调用管理系统中,如用于仓储物资调用管理的本地服务器或云端服务器等,本发明实施例不做限定。如图3所示,该装置可以包括:
[0222] 存储有可执行程序代码的存储器301;
[0223] 与存储器301耦合的处理器302;
[0224] 处理器302调用存储器301中存储的可执行程序代码,用于执行实施例一所描述的仓储物资调用方法中的步骤。
[0225] 以上所描述的装置实施例仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0226] 通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read‑Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read‑only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only  Memory,EPROM)、一次可编程只读存储器(One‑time Programmable  Read‑Only  Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically‑Erasable Programmable Read‑Only Memory,EEPROM)、只读光盘(Compact Disc Read‑Only Memory,CD‑ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
[0227] 最后应说明的是:本发明实施例公开的一种仓储物资调用方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。