基于 python pulp 库求解船舶泊位调度线性规划问题
泊位调度问题建模
- 船舶泊位调度问题指将进港的船舶有序规划, 使各个船舶进港, 离港时间和位置都不冲突
- 由于是帮朋友做的, 他直接把模型给了我, 建模本人也不太了解, 下面就直接放一下模型.
min f ( x , y , z ) = ∑ i = 1 T { c 1 i ∣ x i − p i ∣ + c 2 i ( y i + b i − d i ) + } s . t . { x i + l i ≤ L , i = 1 , 2 , ⋯ , L x i + l i ≤ x j + M ( 1 − Z i j x ) , i = 1 , ⋯ , l ; j = 1 , ⋯ , l ; i ≠ j y i + b i ≤ y j + M ( 1 − Z i j y ) , i = 1 , ⋯ , l ; j = 1 , ⋯ , l ; i ≠ j Z i j x + Z i j y + Z j i x + Z j i y ≥ 1 , i = 1 , ⋯ , l ; j = 1 , ⋯ , l ; i < j y i ≥ a i , i = 1 , ⋯ , l x i ≥ 0 , i = 1 , ⋯ , l Z i j x , Z i j y = 0 , 1 , i = 1 , ⋯ , l ; j = 1 , ⋯ , l ; i ≠ j \min f(x, y, z)=\sum_{i=1}^{T}\left\{c_{1 i}\left|x_{i}-p_{i}\right|+c_{2 i}\left(y_{i}+b_{i}-d_{i}\right)^{+}\right\} \\ s.t. \left\{ \begin{array}{l} x_{i}+l_{i} \leq L, i=1,2, \cdots, L \\ x_{i}+l_{i} \leq x_{j}+M\left(1-Z_{i j}^{x}\right), i=1, \cdots, l ; j=1, \cdots, l ; i \neq j \\ y_{i}+b_{i} \leq y_{j}+M\left(1-Z_{i j}^{y}\right), i=1, \cdots, l ; j=1, \cdots, l ; i \neq j \\ Z_{i j}^{x}+Z_{i j}^{y}+Z_{j i}^{x}+Z_{j i}^{y} \geq 1, i=1, \cdots, l ; j=1, \cdots, l ; i<j \\ y_{i} \geq a_{i}, i=1, \cdots, l \\ x_{i} \geq 0, i=1, \cdots, l \\ Z_{i j}^{x}, Z_{i j}^{y}=0,1, i=1, \cdots, l ; j=1, \cdots, l ; i \neq j \\ \end{array} \right. minf(x,y,z)=i=1∑T{ c1i∣xi−pi∣+c2i(yi+bi−di)+}s.t.⎩ ⎨ ⎧xi+li≤L,i=1,2,⋯,Lxi+li≤xj+M(1−Zijx),i=1,⋯,l;j=1,⋯,l;i=jyi+bi≤yj+M(1−Zijy),i=1,⋯,l;j=1,⋯,l;i=jZijx+Zijy+Zjix+

文章介绍了如何利用Python的Pulp库解决船舶泊位调度的线性规划问题。首先,建立了包含绝对值的目标函数和一系列约束条件的模型。接着,通过随机生成参数并创建变量,将模型转换为Pulp可处理的形式。最后,求解模型并根据解绘制船舶调度的可视化图像,展示最优解。文章提供了从建模到求解再到结果可视化的完整过程。
最低0.47元/天 解锁文章
1155





