我遇到了特定问题。我必须安排 5 名员工工作超过 14 天。每个员工在 14 天中只能工作 9 天,并且每天必须安排 3 名员工。关键部分是每个员工在某一天工作都会受到惩罚。因此,如果他们在那天不能工作,如果他们可以工作并且不介意,则罚款 10,最后如果他们可以但不想罚款,则罚款 5。
我有每个员工每天的罚款值矩阵。我正在尝试找到一种方法来写出我的约束。
我想到了矩阵 A(惩罚矩阵)和矩阵 B(调度矩阵)和矩阵 C,其中 C(i,j)= A(i,j)*B(i,j)。鉴于此设置,如果 A(i,j) 等于 0(员工不工作),则不考虑处罚,反之亦然。
那么我可以说作为我的约束:
A(1,1) + A(1,m) + A(1,n) <= 9
和
A(1,1) + A(m,1) + A(n,1) = 3
我正在最小化:C(1,1) + C(m,m) + C(n,n)
我这样看待它的问题是试图在优化算法中使用它。单纯形算法应该能够解决任何 LP 问题,但它可能是最慢的。我被卡住了,现在我确定我看错了。如果有人能给我一个全新的视角,并可能解释我为什么以错误的方式看待这个问题,我将不胜感激。