我有一个混合整数程序,由于内存不足(64GB)而停止。数据从Excel表中读取到数组和稀疏表中。然后使用参数数组来创建元组,以利用稀疏性。我的问题是关于那些没有使用的参数数组会发生什么。由于内存是一个问题,我想知道是否可以以及如何删除这些参数数组,以及这是否有助于内存的使用。提前谢谢。
元组定义是我为解决内存问题而提出的,但后来它让我思考了可能仍然使用内存的参数数组。
您可以结束不再需要的阵列。
例如
using CP; range r=1..10; int x[i in r]=i; int x2[i in r]=2*x[i]; execute { x2; x.end(); } dvar int y; subject to { y==sum(i in r) x2[i]; } execute { writeln(y); }
我用x来计算x2,然后结束x,因为我不再需要x