2012-04-25 8 views
4

Надеюсь, это очевидно для кого-то. У меня было только ванильное использование GLPK/MathProg. У меня возникают проблемы, выяснить синтаксис в GNU MathProg (в GLPK), чтобы сделать, например, следующее:Наборы и группы GLPK MathProg

set PartsOfWeek; 
set WeekDays; 

data; 
set PartsOfWeek := WorkWeek WeekEnd; 

set WorkWeek := Mon Tue Wed Thu Fri; 
set WeekEnd := Sat Sun; 

set WeekDays := setof{d in (WorkWeek union WeekEnd)}(d); 

Проблема заключается в том, что это отвергается MathProg.

В общем, я просто хочу, чтобы иметь возможность: - объявить Partition (здесь PartsOfWeek) и набор (здесь рабочие дни) - построить перегородку из данных - заполнить набор с элементами из наборы из раздела.

Лучшим примером может быть сезоны и месяцы.

+1

MathProg является подмножеством AMPL. Этот [учебник] (http://pino.univalle.edu.co/~juanp77/MAESTRIA%20BARANQUILLA/SOFTWARE%20OPTIMIZACI%D3N/AMPL%20WIM/amplmod.pdf) может вам помочь. – Ali

ответ

7

со справочной литературой помощью @ Али:

set seasons; 
set months; 
set monthsOfseason {seasons} within months; 

data; 
set seasons := winter spring summer fall; 
set months := jan feb mar apr may jun jul aug sep oct nov dec; 
set monthsOfseason[winter] := dec jan feb; 
set monthsOfseason[spring] := mar apr may; 
set monthsOfseason[summer] := jun jul aug; 
set monthsOfseason[fall] := sep oct nov;