Моих упрощенного набор данных в GNU MathProg выглядит следующим образом, с Verts
быть множеством индексов вершин, и coords
быть таблицей координат этих вершин:GNU MathProg: символический набор против целого набора
data;
set Indices := X Y;
set Verts := 1 2 3 4;
param Coords : X Y :=
1 1.2 0.3
2 4.2 13.0
3 1.5 1.0
4 0.5 0.8;
end;
Это работает, но если я заменю определение Verts следующим образом:
set Verts := (1..4);
компиляция завершается успешно, на данном этапе, но таблица Verts
в настоящее время не может индексировать параметр Coords
. Конкретно, glpsol
возвращает Coords[1,X] out of domain
.
Интуитивно я бы предположил, что определение, использующее сокращенную форму, определяет целочисленный набор, а для индексирования мне нужен какой-то символический, «строковый» тип. Является ли моя интуиция правильной? И если да, то как я должен писать set Verts := ?;
, если у меня нет 4, но 10 000 элементов в таблице?