Линейное программирование добавляет вес
Мне было поручено написать линейную программу, которая скажет пользователю, где добавить вес на цилиндрический барабан, чтобы уравновесить центр тяжести. Вес - 2 фунта и 5 фунтов, и максимум 10 фунтов может быть добавлен в одно местоположение. Вес 2 фунта составляет 2 дюйма, а вес 5 фунтов - 6 дюймов. Я думаю, что лучший способ сделать это - использовать полярные координаты и предположить, что пока идеальный цииндер находится в пределах 1% от идеального. Я также думаю, что я должен начать только менять оси X и Y и держать ось Z на 0 пока. Любые советы, чтобы направить меня в правильном направлении, будут оценены.
!Drum weight problem;
!sets;
Sets:
Weight: Pounds, Height;
Location: X, Y, Angle;
Set(Weight, Location): PX, PY, PAngle;
Endsets
!data;
Data:
Weight = W1 W2 W3 W4;
Location = L1 L2 L3 L4;
!attribute values;
Pounds = 2 4 5 10;
Height = 2 4 6 12;
X = 0 1 2 3;
Y = 0 1 2 3;
Angle = 0 90 180 270;
Enddata
!objective;
Min = @MIN(Set(I, J): Weight (I, J), Location (K, L, M);
!constraints;
@FOR( Weight(I): [Weight_row]
Pounds >= 2;
Height >= 2;
@FOR( Location(J): [Location_row]
X >=0;
Y >=0;
Angle >=0;
End