一、语法记录
例题1:
若矩阵a由六个元素组成,且a(i)>5, i=1,2,5,6。求矩阵a各元素求和的最小值。
代码实现(集合语言):
model:
sets:
test /1..6/:a;
endsets
min = @sum( test(i) : a(i) );
@for( test(i)|i #le# 2 #or# i#ge#5 : a(i) > 5 );
end
例题2:
表达出分段函数并求出x为一系列数值时的结果。
代码实现(if语句):
model:
@free(x);
@free(y);
x = -5;
y = @if(x #ge# 0,x + 10,x - 10);
end
例题3:
已知a=[2,9,3,8,10,6,4,10] 以及b=[1,3,4,3,3,1,5,10],求以下线性规划;
代码实现(使用@bin):
model:
sets:
test /1..8/: a,b,x;
endsets
data:
a = 2,9,3,8,10,6,4,10;
b = 1,3,4,3,3,1,5,10;
enddata
max = @sum( test(i) : a(i)*x(i) );
@sum( test(i) : b(i)*x(i) ) <= 15;
@for( test(i) : @bin( x(i) ) );
end
二、常用函数
Table 1 常用集合操作函数