Суммируйте двоичные переменные в GLPK

Я новичок в ГЛПК. Это часть моего кода:

set I := setof{(i,r,p,d) in T} i;
var Y{I,I}, binary;
s.t. c1{i in I, j in I}: sum{Y[i,j]} = 6;

Я хочу иметь только шесть значений Y, равных 1. Может ли кто-нибудь сказать мне, как это сделать правильно? Потому что ст. c1{i in I, j in I}: sum{Y[i,j]} = 6;всегда выдает ошибку.

Спасибо.


person Gregorius Edwadr    schedule 29.06.2015    source источник


Ответы (1)


Это просто проблема синтаксиса. Ограничение должно выглядеть следующим образом:

s.t. c1: sum{i in I, j in I}(Y[i,j]) = 6;

Первые скобки после имени ваших ограничений подразумевают, что ограничение применяется к каждому отдельному [I, I]. Что вы хотите, так это исправить сумму всех Y в вашей задаче, поэтому вам нужно, чтобы ограничение применялось к вашей задаче только один раз (поэтому удалите эти скобки). В синтаксисе суммы не помещайте переменную, которую вы хотите суммировать, в скобки, они принадлежат после них. Внутри скобок можно указать диапазон суммы.

person Paul G.    schedule 30.06.2015