1、没有办法,要用到optimization solver 求解, 还好gurobi的例子 还是不错的,会有pdf说明。但是,每隔一段时间就会忘记,因此做个记录。

2、gurobi的优势,是给出接口,用其他语言对接,这里 主要用两种 matlab 和 python 语言,先说一下matlab的用法。

3、有两种定义方式: 直接定义,或者根据运输问题的定义。因为运输问题的比较特殊,因此有另外一种形式的定义。先看一般的直接定义,主要是把model的相关属性定义好,下面整理一下。

4、模型名称 model.modelname = ‘facility’; 自己设置一个名称,保存的时候,就知道是什么模型了。

5、变量的类型 model.vtype ,如果都是一种类型,直接设置 model.vtype = ‘B’; 如果是不同的类型,那么就要分开设置,如 model.vtype = [repmat(‘B’, nPlants, 1); repmat(‘C’, nPlants * nWarehouses, 1)];

6、变量名 model.varnames ,可以直接写出来 ,如 model.varnames = {‘x’; ‘y’; ‘z’} 定义了 3个变量。如果是运输问题的话,那么定义的变量 是 trans1,1 trans1,2 trans2,1 trans2,2 这种形式, 可以 用如下的方式定义:

for p = 1:nPlants
model.varnames{p} = sprintf(‘Open%d’, p);
end

for w = 1:nWarehouses
for p = 1:nPlants
v = flowidx(w, p); % flowidx = @(w, p) nPlants * w + p;
model.varnames{v} = sprintf(‘Trans%d,%d’, w, p);
end
end
上面的这段代码,要好好领悟,因为可以转变成你的代码。变量名有先后顺序的,因此顺序很重要(在运输问题中)

这段需要锻炼一下,保留代码,留着以后用。

6、约束名称 model.constrnames,和变量名称一样的方式,先不详细说明。

7、系数矩阵的输入,包括A, rhs 和 obj。
系数矩阵的输入,matlab采用的稀疏矩阵,用的是sparse(必须要用这种方式),这样节省内存空间(0元素比较多的时候)。可以采用手动输入,或者在运输问题(有规律的)的时候,循环输入。不管采用哪种方式,心中的那个A矩阵一定要清楚,手动输入的话,也可以采用从excel导入的方式。

注意:obj的是纵向的向量,obj是横向的向量。

8、保存模型 gurobi_write(model, ‘mymip.lp’);

9、其他的设置。 包括约束的方向 model.sense,大于,小于 或者 等于 ; 目标函数的 min 或者max model.modelsense

10、设置参数 params ,然后运行 result = gurobi(model, params);,这个东西只能靠积累啊,用的多的就经常用,控制结果

11、保存输出 。 将结果放在result里面,一般关联两个主要的属性 x和objval ,然后 看怎么把这结果放到txt里面,或者excel里面去。

结束。。。。。。

gurobi中的lp相关推荐

  1. 数学建模中的lp造船模型求解

    *** 1. 数学建模中的lp如何造船使费用最小模型求解以及LINGO的初始用法 先看问题: 例 SAILCO公司需要决定下四个季度的帆船生产量.下四个季度的帆船需求量分别是40条,60条,75条,2 ...

  2. gurobi中callback函数的使用整理

    在初始使用的时候,很多人觉得,最起码我是这么觉得,gurobi是个黑箱.即:只要输入决策变量,目标函数,和约束,直接调用model.optimize()即可,至于optimize是怎么求解,不了解不知 ...

  3. cplex/gurobi 中的 sos 约束

    SOS(special ordered sets,特殊顺序集)是指一组有序集合里,顶多有一个非零值(SOS1 型),或顶多有两个非零值(SOS2 型).这类约束单独列出来,可以加快线性规划的求解速度. ...

  4. 向量的1范数,2范数,无穷范数,KNN中的Lp距离

    L-0范数:用来统计向量中非零元素的个数. L-1范数:向量中所有元素的绝对值之和. L-2范数:欧式距离. L-∞范数:计算向量中的最大值. 你也可以这样理解 1-范数:║x║1=│x1│+│x2│ ...

  5. Matlab + Gurobi入门

    本文将结合官方文档和其他相关介绍,对Matlab + Gurobi的使用做一个完全零基础的入门介绍(我也是小白,这也是对自己学习的一个记录) 一.Gurobi优化器快速入门指导 - Windows 1 ...

  6. 数学规划求解软件 cplex 与 gurobi 的优缺点对比

    之前一直使用 cplex, 最近也接触了 gurobi,谈谈自己对二者的优缺点感受吧. 1. cplex 的优缺点 使用人数最多的求解器,相关论文及论坛中关于 cplex 的问题比较多.gurobi虽 ...

  7. Python调用Gurobi基本操作

    接上篇学会了如何用python调用gurobipy之后,这篇总结一些学到的基本操作. tuplelist.tupledict.multidict.创建list. 1.tuplelist方法: tupl ...

  8. Gurobi——GRBModel

    文章目录 GRBModel GRBModel::addConstr() GRBModel::addVar() GRBModel::addVars() 参考 GRBModel   Gurobi 模型对象 ...

  9. 在 C# 中通过 P/Invoke 调用Win32 DLL

    ,.NET Framework 1.0 或 1.1 版类库中存在任何 Windows 所没有的功能限制都不足为怪.毕竟,32 位的 Windows(不管何种版本)是一个成熟的操作系统,为广大客户服务了 ...

最新文章

  1. iphone X系列设配屏幕适配
  2. http session
  3. python代码示例图形-纯干货:手把手教你用Python做数据可视化(附代码)
  4. Android开发技术周报 Issue#52
  5. GPU Gems1 - 23 景深技术综述
  6. “约见”面试官系列之常见面试题第二十四篇之vue-router使用(建议收藏)
  7. springboot项目中jdk版本的问题
  8. Android功耗(8)---Camera功耗分析和拆解
  9. 【转】赶集网mysql开发36军规
  10. shell 第六次作业(grep正则、sed)
  11. Cannot delete or update a parent row: a foreign key constraint fails
  12. 小王在CSDN的六年创作历程
  13. 四大逆向工程软件简介
  14. Python_输入年月日计算是今年第几天 考虑闰年二月29天,平年28天
  15. Bootloader的启动
  16. 爱快最新版3.6用docker安装Jellyfin最新教程
  17. 1.2折半查找法的使用
  18. tftp协议的实现和即时通讯软件
  19. 今天,就让坏得很的糟老头子来告诉你顺序表的基操,零基础也可get!
  20. 数据中心管理与运维的问题与对策

热门文章

  1. 使用驱动器H:中的光盘之前需要将其格式化
  2. LSI SAS3IRCU配置SAS3系列RAID卡
  3. 【Java】实现统计字符串中大写、小写、数字字符出现次数
  4. HTML5中新增的元素有哪些
  5. 110、氮气IG100灭火系统的设计灭火浓度
  6. 35岁,转行AI年薪100万,牛逼的人生无需解释
  7. Ipoe和Pppoe,宽带认证技术
  8. DarkHole_2
  9. testin云测操作步骤
  10. 1165.穹妹的求助