2016-04-19 6 views
1

У меня есть этот небольшой код:Декларирование 3 комплекта в GLPK-> синтаксической ошибки в буквальном наборе

param n, integer, > 0; # number of clients 
param m, integer, > 0; # number of facilities 
param g, integer, > 0; 

set I := 1..n; 
set J := 1..m; 
set G := 1..g; 

param d{i in I, j in J};/* distance for client i to factory j*/ 
param w{i in I, j in J};/* distance for client i to factory j*/ 
param l{j in J}; # distance from factory j to factory 1 
param F{j in J}; # cost of open a factory in J 
param s{i in I, g in G}; 

Проблема на с, он всегда говорит drdrd.mod: 13: ошибка синтаксиса в буквальном наборе, если я изменю g в G для j в J, все будет в порядке. Невозможно иметь 3 разных набора?

И еще один вопрос, который я не мог решить, если я поставил вместо i в I, 2 в I (потому что я хочу учесть первые 2 числа), он говорит также то же сообщение об ошибке.

Спасибо за ваше время.

ответ

0

g определяется как параметр в

param g, integer, > 0; 

так что вы не можете использовать его в качестве имени индекса в

param s{i in I, g in G}; 

Чтобы исправить это переименовать индекс (или параметр):

param s{i in I, gg in G};