首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >减少优化中备选方案的大小

减少优化中备选方案的大小
EN

Stack Overflow用户
提问于 2022-03-15 17:04:11
回答 3查看 51关注 0票数 0

我们有一个supplier/depot (指数d)和几个工厂(指数f),在T(指数t)期间对不同的产品 (p)有需求。有一个车队的卡车(指数v)与不同的卡车类型的(指数k) (例如,其中有些有冰箱),这限制了一些产品只运载该卡车类型。我们在仓库和工厂之间有一组预定义的路由(索引r) (工厂之间存在路由)。

卡车从供应商处装载货物,并使用预先确定的路线,在这些路线中可以访问多个工厂,并最终返回仓库进行下一次装载。在一个月内,每辆卡车可以从仓库运送货物到j工厂多次。因此,变量x_{p,k,r,f,n,t}是v型货车(k型)可以从仓库装载货物,并在t时刻通过rout r到达工厂f的乘积p,这类车辆受V_k限制。

计数器n是一辆卡车在一个月内向同一工厂运送相同产品、路线的次数。目标是将总成本降到最低。最简单的例子是车辆在一个月内走上了仓库、->工厂、->仓库、->工厂、1工厂。在这种情况下,我们有两个指数x_{p,k,r,f,1,t}和x_{p,k,r,f,2,t}来区分这两轮。这就是问题所在,这个模型产生了许多备选的解决方案。例如,如果我们有4辆k型卡车,那么一个解决方案是(我们称之为解决方案1):

x_{p,k,r,f,1,t} =6

x_{p,k,r,f,2,t} = 4.

另一种解决办法(解决方案2)是:

x_{p,k,r,f,1,t} =4

x_{p,k,r,f,2,t} = 6.

Whish与解决方案1基本相同(只是顺序改变)。

随着问题规模的扩大,许多不同的解决方案的总成本是相同的。我们想出一种减少解空间(交替解)的方法,同时保持所有可能的目标值。

EN

回答 3

Stack Overflow用户

发布于 2022-03-17 19:31:42

查看Cplex解决方案池以及如何设置其筛选器。

票数 0
EN

Stack Overflow用户

发布于 2022-03-17 19:47:57

此参数可用于筛选cplex解决方案池:

对人口的限制(生成的解决方案数目)

请查看下面的链接:

https://www.ibm.com/docs/en/icos/20.1.0?topic=pool-which-parameters-control-solution

票数 0
EN

Stack Overflow用户

发布于 2022-03-18 07:40:04

您应该添加额外的约束来消除对称性。

例如

代码语言:javascript
复制
forall(p,k,r,f,t) forall(n in 1..N-1) x_{p,k,r,f,n,t}<=x_{p,k,r,f,n+1,t}

将摆脱一些重复的解决方案

在一个较小的例子中,如动物园实例

在OPL CPLEX中

代码语言:javascript
复制
int nbKids=300;
float costBus40=500;
float costBus30=400;
 
dvar int+ nbBus40;
dvar int+ nbBus40b;
dvar int+ nbBus30;
 
minimize
 costBus40*nbBus40  +costBus40*nbBus40b  +nbBus30*costBus30;
 
subject to
{
 40*(nbBus40+nbBus40b)+nbBus30*30>=nbKids;
 
} 

可能会导致许多重复的解决方案。附加约束

代码语言:javascript
复制
nbBus40b<=nbBus40;

会把一些

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71486233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档