我在GAMS中遇到以下问题
我实现了位置路由问题。在检查.log文件的时候,我注意到了一些东西,如果我修复它可能会加速计算时间。 我先说一个例子:
假设我们拥有由s1 * s140节点组成的所有节点的集合S,而节点i1 * i10代表潜在的仓库,而i11 * i140代表要服务的客户。所以我们有
设定
Glide.with(mcontext)
.applyDefaultRequestOptions(RequestOptions.centerCropTransform()
.diskCacheStrategy(DiskCacheStrategy.RESOURCE))
.load(videourl)
.into(thumbnailimg);
二元变量
i "all nodes" /i1*i40/
WH(i) "only potential Warehouse locations" /i1*i10/
K(i) "only customer sites" /i11*i140/
alias(i,j)
参数
z(WH) 1 if warehouse location WH is opened
y(K,WH) 1 if customer site K is assigned to warehouse WH
x(i,j) If node j is immediately headed to after node i.
目标函数最小化固定开放成本和路由成本。
虽然将仓库的容量设置得足够大,以便能够为所有客户提供服务并为每个仓库设置高开放成本,但我的假设是最佳解决方案将包括一个为所有客户提供服务的仓库。
我的假设是正确的,但是我注意到CPLEX需要很长时间来检查解决方案空间,以便首先开放许多仓库。
最优性Gap然后"跳跃"当打开更少的仓库时,到近乎最佳的解决方案(参见附件截图)。所以基本上花了很多时间扫描显然"坏"解决方案。实际上,我有意识地使用了明显最佳解决方案只包含一个仓库的示例。
我向你提问:
我怎样才能指导CPLEX解决由一个仓库组成的解决方案,而不会在模型中提供最大数量的可能已打开的仓库(即总和(WH,z(WH))= l = 1;)
我尝试使用.prior后缀和mipordind = 1选项进行分支优先级。 Cplex仍然检查了由10个仓库组成的解决方案,因此我认为它没有帮助。
我还试图将仓库开放成本设置得高得离谱。但是,仍然会检查包括打开最大数量的可能仓库的解决方案,并且会丢失时间。
对不起,很长的帖子 我希望我已将所有必要的信息放入:)
期待您的建议
亲切的问候 亚当