У меня есть таблица проектов с 4 функциями (имя, стоимость, стоимость, люди). Я хочу описать модель в Minizin c, которая выбирает проекты, которые максимизируют общую стоимость, но с общим бюджетом 255, и я могу выбрать почти 9 проектов из 20.
Я пишу файл данных: данные .dzn
% name value cost people
data = [
| PRJ0, 6000, 35, 5
| PRJ1, 4000, 34, 3
| PRJ2, 1000, 26, 4
...
| PRJ20, 1200, 18, 2
|];
PRJ = {PRJ0,...,PRJ20};
FEATURE = {name, value, budget, personnel};
max_budget = 225;
max_prj=9;
Итак, мои ограничения:
choose_project <= 9 /\ budget<=255 s.t solve maximize tot_value;
Как я могу выбрать не произвольное число (от 1 до 9) переменных решения среди проектов в таблице? До сих пор это мой код: invest.mzn
include "data.dzn";
int: max_budget; %255
int: max_prj; %9
enum FEATURE;
enum PRJ;
array[PRJ,FEATURE] of int: data;
constraint ...
...
solve maximize tot_value;