0

ワークステーションをロードするための最適なソリューションを見つけようとしています。このために、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();
4

0 に答える 0