Могу ли я установить приоритеты для ограничений при использовании решения для целлюлозы cbc?

Я знаю, что вы специально попросили .reduce. Но сокращение - это сокращение набора до одного значения. Запрошенная функция - это сервис для .map. И Google Scripts тоже это поймут. Взгляните на этот пример:

var arr = [
  [ 'foo', 3.672698 ],
  [ 'bar', 71.999747 ],
  [ 'baz', 107.400002 ],
]

var res = arr.map(function(item){ 
     return {name: item[0], money: item[1]};
});
console.log(res);

1
задан Kevin Lee 19 January 2019 в 04:00
поделиться

1 ответ

Один из способов установить приоритеты для ограничений - это позволить им быть нарушенными на некоторое количество, а затем штрафовать степень нарушения ограничений в целевой функции.

Например, в ограничении 1 вы можете иметь m += vxx <= t + slack_1. Где slack_1 - линейная переменная, которая затем умножается на соответствующий вес в целевой функции. Устанавливая веса каждого из нарушений ограничений, вы можете определить, насколько важны эти ограничения - однако это не гарантирует порядок, в котором ограничения будут выполняться во время работы решателя.

0
ответ дан kabdulla 19 January 2019 в 04:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: