Теперь я сталкиваюсь с ошибкой.
'Переменные решения типа dvar float не поддерживаются этим алгоритмом.'
Вот код, который я сделал.
Я напишу это просто.
Во-первых, у меня возникла проблема с ошибкой, что «q1» не является выпуклым. »
Итак, теперь я пытаюсь« Использовать CP; »
Using CP;
int a = 2;
int e = 4;
int h = 3;
int t = 6;
range arange = 1..a;
range erange = 1..e;
range hrange = 1..h;
range trange = 1..t;
int nd[erange][hrange] = [[0.8, 0.2, 0.3]
[0.3, 0.1, 0.6]
[0.1, 0.7, 0.5]];
dvar boolean x[arange][erange][trange];
dvar float y[erange][hrange][trange];
maximize
sum(a in arange, e in erange, h in hrange, t in trange)
y[e][h][t] * x[a][e][t];
subject to {
forall(a in arange, e in erange, t in trange, h in hrange)
y[e][h][t] == nd[e][h];
}
Мне нужно использовать тип 'float' в качестве переменной решения.
Но 'Using CP;'не поддерживает этот тип.
В этом случае, что я должен сделать, чтобы решить эту ошибку.