2017-01-02 13 views
1

Моих упрощенного набор данных в 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 элементов в таблице?

ответ