Редактировать после уточнения в комментариях:
Чтобы изменить третье вхождение от 1 до 4, вы можете сделать это:
Set A /a1*a9/;
Parameter T(A) /a1 1,a2 2,a3 1,a4 3,a5 1,a6 1,a7 3,a8 3,a9 2/;
Scalar oneCnt / 0 /;
Display T;
loop(A,
if(T(A)=1,
oneCnt = oneCnt+1;
if(oneCnt=3,
T(A)=4;
break;
)
);
);
Display T;
Первоначально я думал, что третий элемент должен быть изменен. Это можно сделать так:
Вы можете использовать оператор ord (https://www.gams.com/latest/docs/UG_OrderedSets.html#UG_OrderedSets_TheOrdOperator), чтобы сделать это:
Set A/a1*a9/;
Parameter T(A) /a1 1,a2 2,a3 1,a4 3,a5 1,a6 1,a7 3,a8 3,a9 2/;
Display T;
T(A)$(ord(a)=3) = 4;
Display T;