我正在尝试找到加载工作站的最佳解决方案。为此,我想使用 OjAlgo 库中的“ExpressionsBasedModel”。当需要的物品位于那里并且成本较低时,应使用工作站。这已经适用于下面附加的代码。我现在想添加另一个优化。
工作站被分组为字符串。即使这会增加成本,我也希望使用尽可能少的字符串。
我该如何制定这种优化?
欢迎提出改进建议
Variable[][] x_stations = new Variable[STRING_COUNT][STATION_COUNT];
for (int i = 0; i < STRING_COUNT; i++) {
for (int j = 0; j < STATION_COUNT; j++) {
x_stations[i][j] = model.addVariable("Station " + i + "/" + j)
.binary()
.weight(costs[i][j]);
}
}
for (String sku : relevantSKUs) {
Expression stationExpression = model.addExpression(sku).lower(1);
List<Integer> possibleStations = skusToStations.get(sku);
for (Integer stations : possibleStations) {
stationExpression.set(model.getVariable(stations), 1);
}
}
Optimisation.Result result = model.minimise();