【智能算法应用】遗传算法求解货位布局优化问题


1.货位布局数学模型

各种各样的货物存储在智能立体仓库中,由于它们的重量和体积等特性不同,在货位分配的过程中,除了需要满足货架本身的容量和承载能力外,还需要货架整体的稳定性,因此需要将较重货品放置在货架低层货位上,降低货架整体的等效重心。将货架中的货物视为统一整体,计算其等效重心重心,构建一个空间平行力系 :

在这里插入图片描述
平行力系的合力其大小即为物体的重量:
P ⋅ C x = ∑ i = 1 n Δ P i ⋅ x i (1) P\cdot C_x=\sum_{i=1}^n\Delta P_{\mathrm{i}}\cdot x_i\tag{1} PCx=i=1nΔPixi(1)
合力的作用线通过物体的重心C:
P ⋅ C y = ∑ i = 1 n Δ P i ⋅ x y (2) P\cdot C_y=\sum_{i=1}^n\Delta P_i\cdot x_y\tag{2} PCy=i=1nΔPixy(2)
水平等效重心坐标为:
C x = ∑ x = 1 a ∑ y = 1 b M x y ⋅ l ( x − 0.5 ) ∑ x = 1 a ∑ y = 1 b M x y (3) C_x=\frac{\sum_{x=1}^a\sum_{y=1}^bM_{xy}\cdot l(x-0.5)}{\sum_{x=1}^a\sum_{y=1}^bM_{xy}}\tag{3} Cx=x=1ay=1bMxyx=1ay=1bMxyl(x0.5)(3)
竖直等效重心坐标为:
C y = ∑ x = 1 a ∑ y = 1 b M x y ⋅ h ( y − 0.5 ) ∑ x = 1 a ∑ y = 1 b M x y (4) C_{_y}=\frac{\sum_{x=1}^a\sum_{y=1}^bM_{xy}\cdot h(y-0.5)}{\sum_{x=1}^a\sum_{y=1}^bM_{_{xy}}}\tag{4} Cy=x=1ay=1bMxyx=1ay=1bMxyh(y0.5)(4)
根据货架稳定安全的优化方向,需要放入货物后货架的等效重心位于货架竖直方向底部,并在水平方向上尽量居中,由此目标函数为:
{ min ⁡ f 1 ( x , y ) = ∣ C x − a l 2 ∣ min ⁡ f 2 ( x , y ) = ∣ C y − h 2 ∣ (5) \begin{cases}\min f_1(x,y)=\left|C_x-\frac{al}2\right|\\\min f_2(x,y)=\left|C_y-\frac h2\right|&\end{cases}\tag{5} {minf1(x,y)= Cx2al minf2(x,y)= Cy2h (5)

基于货架的约束要求:
{ x ∈ ( 0 , a ) y ∈ ( 0 , b ) ∑ x = 1 a ∑ y = 1 b M x y ∈ ( 0 , G max ⁡ ) C x ∈ ( 0 , a ⋅ l ) C y ∈ ( 0 , b ⋅ h ) (6) \begin{cases}x\in(0,a)\\y\in(0,b)\\\sum_{x=1}^a\sum_{y=1}^bM_{xy}\in(0,G_{\max})\\C_x\in(0,a\cdot l)\\C_{_y}\in(0,b\cdot h)\end{cases}\tag{6} x(0,a)y(0,b)x=1ay=1bMxy(0,Gmax)Cx(0,al)Cy(0,bh)(6)

为提高堆垛机的拣选效率,在货物存放时,可以按照同类货物优先就近分配储位的原则进行货位优化,这就要求同类货物在货架上的彼此距离要尽量小。
首先假设货架中的货物一共有M种大类,一种大类中有N种货物,根据第m种大类中第n种货物的坐标,可得到第 种大类货物的坐标均值为:
σ m = ∑ n = 1 S m [ x m n , y m n ] S m (7) \sigma_m=\frac{\sum_{n=1}^{S_m}[x_{mn},y_{mn}]}{S_m}\tag{7} σm=Smn=1Sm[xmn,ymn](7)
则第m种大类中的第n种货物到该大类货物坐标均值距离表示为:
d m n 2 = [ x m n − σ m ( x ) ] 2 + [ y m n − σ m ( y ) ] 2 (8) {d_{mn}}^2=\left[x_{mn}-\sigma_m(x)\right]^2+\left[y_{mn}-\sigma_m(y)\right]^2\tag{8} dmn2=[xmnσm(x)]2+[ymnσm(y)]2(8)
M种大类货物的类内离散度和:
d = ∑ m = 1 M ∑ n = 1 N d m n (9) d=\sum_{m=1}^M\sum_{n=1}^Nd_{mn}\tag{9} d=m=1Mn=1Ndmn(9)
货架上所有M类货物的均值坐标为:
σ M = ∑ m = 1 M σ m M (10) \sigma_M=\frac{\sum_{m=1}^M\sigma_m}M\tag{10} σM=Mm=1Mσm(10)
第m类货物的均值坐标到所有M类货物的中心距离的和为D:
D = ∑ m = 1 M ( [ σ m ( x ) − σ M ( x ) ] 2 + [ σ m ( y ) − σ M ( y ) ] 2 ) (11) D=\sum_{m=1}^{M}(\sqrt{\left[\sigma_m\left(x\right)-\sigma_M\left(x\right)\right]^2+\left[\sigma_m\left(y\right)-\sigma_M\left(y\right)\right]^2})\tag{11} D=m=1M([σm(x)σM(x)]2+[σm(y)σM(y)]2 )(11)
为使同类货物就近存放,故需使货物的类内离散度越小越好,而为使所有不同大类货物能够均匀分布在货架上,则需使货物的类外离散度越大越好:
min ⁡ f ( x , y ) = d D (12) \min f(x,y)=\frac dD\tag{12} minf(x,y)=Dd(12)

因此,适应度函数加权处理:
F ( x , y ) = min ⁡ [ 0.4 ∗ f 1 ( x , y ) + 0.4 ∗ f 2 ( x , y ) + 0.2 ∗ f 3 ( x , y ) ] (13) F(x,y)=\min\left[0.4*f_1(x,y)+0.4*f_2(x,y)+0.2*f_3(x,y)\right]\tag{13} F(x,y)=min[0.4f1(x,y)+0.4f2(x,y)+0.2f3(x,y)](13)

3.结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] 杨洋.基于遗传算法的多目标货位优化研究[D].南京农业大学,2019.

5.代码获取

  • 33
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小O的算法实验室

谢谢大佬的肯定!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值