首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用matlab和matlab优化工具箱找出最优运行方式?

如何利用matlab和matlab优化工具箱找出最优运行方式?
EN

Stack Overflow用户
提问于 2016-05-03 17:01:58
回答 1查看 106关注 0票数 0

我有以下问题:

我有6种不同的操作模式,我计算了每小时的成本。(我将此信息保存在一个矩阵中,该矩阵有6列,与小时数一样多的行。如果操作模式不可行,我会将成本设置为无穷大。)每次想要更改操作模式时,都会产生额外的成本,这取决于您从哪种操作模式切换到哪种操作模式。

现在我想计算最优时间表,但我还不知道如何计算/实现它。我正在使用Matlab和matlab优化工具箱。

我已经走这么远了。解x必须在{1,..6}^n中,目标函数为:

enter image description here

其中B是包含切换操作模式的成本的矩阵。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2016-05-04 01:04:45

这类调度模型可以表示为混合整数规划(Mixed Integer Programming)模型,并可以用混合整数规划求解(如MatLab中的intlinprog )。对于更大的问题,我们只能期望好的解决方案,而不是最优的解决方案,通常使用元启发式(如通用算法)。

让我试一试吧。我认为我们不能只使用最便宜的模型并使用所有6个小时,而是我们需要运行所有6个不同的模式,每个模式一个周期。我们唯一可以改变的就是排序。即,我们有一个纯粹的排序问题。(我希望这是对您问题的正确解读)。我们可以简化你的函数

通过观察,我们可以去掉与A(k)有关的所有项。我们做所有的模式,所以这是恒定的。这是一个事实的结果,即唯一变化的是事情完成的顺序。

我尝试了一个快速的MIP公式,它似乎起作用了:

通常有许多可能的配方,这只是其中之一。我的随机转换成本为c(i,j)的结果如下:

将这个线性模型转换为Matlabs intlinprog的输入应该不是很困难。模型中缺少的是,某些模式在某些时期是不允许的。对于这些情况,我们可以通过要求x(i,t)=0来解决这个问题。

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

https://stackoverflow.com/questions/36999880

复制
相关文章

相似问题

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