level 1
rujd2010
楼主
我其他部分都能正常运行,只有“!同一条生产线上的模具尺寸之差不能大于10”这句下面那条语句会被报错。而且注意到我的DATA段中的那条输出语句使用的是与出错语句同样的内容,也就是说同样一个量,可以正常输出,但是无法在程序过程中进行约束
MODEL:
SETS:
route:……;
line:…… ;
mould:……, sizetest;
……;
output(mould,line):solution;
output2(route,line):solution2;
……;
ENDSETS
DATA:
glove,line,mould,sizetest,……=@ole('D:\……\APS.xls'); ……;
@text() = @writefor(line(L) | @sum(mould(M) :solution ( M,L ) )
#GT#
0: '线',L,'最大型号:' , @MAX( mould(M) | solution ( M,L )
#GT#
0: sizetest(M) ) ,@NEWLINE(1) );
ENDDATA
!目标函数:最小化生产线使用量;
min = @sum(line(L) : @if (@sum(mould(M):solution(M,L))
#GT#
0,1,0));
!同一条生产线上的模具尺寸之差不能大于10;
@for ( line(L) |@sum(route(R) :solution2 ( R,L ) )
#GT#
0: ( @max ( mould(M) | solution(M,L)
#GT#
0 : @sum ( size(S) : mouldsize( M,S ) ) ) - @min ( mould(M) | solution(M,L)
#GT#
0 : @sum ( size(S) : mouldsize( M,S ) ) ) ) <= 10 );
!每种手套完工时间不能超过交货期;
……;
!每条线安装的模具数不能超过生产线的最大容量;
……;
!每条线只能生产一种工艺路线的手套;
……;
!每种模具的使用数量不能超过该模具的可用量;
……;
END
2024年03月05日 11点03分
1
MODEL:
SETS:
route:……;
line:…… ;
mould:……, sizetest;
……;
output(mould,line):solution;
output2(route,line):solution2;
……;
ENDSETS
DATA:
glove,line,mould,sizetest,……=@ole('D:\……\APS.xls'); ……;
@text() = @writefor(line(L) | @sum(mould(M) :solution ( M,L ) )
#GT#
0: '线',L,'最大型号:' , @MAX( mould(M) | solution ( M,L )
#GT#
0: sizetest(M) ) ,@NEWLINE(1) );
ENDDATA
!目标函数:最小化生产线使用量;
min = @sum(line(L) : @if (@sum(mould(M):solution(M,L))
#GT#
0,1,0));
!同一条生产线上的模具尺寸之差不能大于10;
@for ( line(L) |@sum(route(R) :solution2 ( R,L ) )
#GT#
0: ( @max ( mould(M) | solution(M,L)
#GT#
0 : @sum ( size(S) : mouldsize( M,S ) ) ) - @min ( mould(M) | solution(M,L)
#GT#
0 : @sum ( size(S) : mouldsize( M,S ) ) ) ) <= 10 );
!每种手套完工时间不能超过交货期;
……;
!每条线安装的模具数不能超过生产线的最大容量;
……;
!每条线只能生产一种工艺路线的手套;
……;
!每种模具的使用数量不能超过该模具的可用量;
……;
END