最近在解决一个费用分摊的问题,就是让费用在几个不同的项目之间分摊,并且分摊后的总额和费用之间差额的绝对值在一定的范围之内,当然越小越好。该问题是一个典型的线性规划问题,说实话如果没有学过运筹学,肯定解决不了该问题,幸好博主学过,而且还解决过比这更复杂的问题,今天就写一篇文章,怀念一下读研时的美好时光,也给有类似问题的人一个思路。

先把这个问题用一个很简单的例子描述:假设有三种项目费用分别是,项目A90 元,项目B80 元,项目C70元,总费用是1983元,现在要确定ABC三个各分配多少个,才能最接近1983元,且最大误差不得超过30元。

根据上述问题确定模型(模型不知道描述得准确吗,还有一个要求就是绝对值里面的数最小):

|90*X+80*Y+70*Z-1983|<=30;

X,Y,Z>=0;

用LINGO描述为:

Min=@ABS(90*x+80*y+70*z-1983);

@ABS(90*x+80*y+70*z-1983)<=30;

@GIN(x);

@GIN(y);

@GIN(z);

用LINGO求解的结果为:

从结果上看出,X、Y、Z分别取值18、1、4,能使分配的总和最接近费用值,与费用值的差额为3。

考虑到不止一个费用,而是有成百上千个费用需要分摊,那么就得考虑利用程序来批量计算。按之前上学时的做法,写程序,通过程序调用数据生成模型来求解。这里就将数据保存到计事本中,然后用C语言根据计事本中的数据,生成模型求解,将求解结果返回到计事本中。

假设文本文件为data.txt,内容为编号,费用值两个内容,现在用C读取每行的费用值,生成模型求解,然后将结果保存到每行的结尾。

data.txt的内容:

1 1983

2 2023

3 2323

MATLAB含有绝对值的线性规划,Lingo求解带绝对值的线性规划模型相关推荐

  1. 【Matlab DVRP】蚁群算法求解带距离的车辆路径规划问题【含源码 1040期】

    一.代码运行视频(哔哩哔哩) [Matlab DVRP]蚁群算法求解带距离的车辆路径规划问题[含源码 1040期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1 ...

  2. 运筹优化学习02:Lingo求解带容量约束的车辆路径问题(CVRP)

    目录 1 基础知识储备 1.1 LINGO 具有9种逻辑运算符 1.2 lingo的窗口状态解析 1.3 @wrap函数解析 1.3.1 官方解释 1.3.2 示例代码及解释 2 CVRP问题描述与模 ...

  3. 【TWVRP】基于matlab模拟退火算法结合狼群算法求解带时间窗的车辆路径规划问题【含Matlab源码 1075期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  4. 【MATLAB】线性规划问题中碰到绝对值的情况

    例题:使用MATLAB求解下列规划问题 对于一般的线性规划问题,我们可以使用MATLAB的bif-linprog来做,但是由于这个线性规划问题中带有绝对值,所以不能直接使用linprog,这样不符合这 ...

  5. 运筹学问题用matlab解答,运筹学课程设计(论文)-用matlab和lingo求解生产问题

    <运筹学课程设计(论文)-用matlab和lingo求解生产问题>由会员分享,可在线阅读,更多相关<运筹学课程设计(论文)-用matlab和lingo求解生产问题(13页珍藏版)&g ...

  6. matlab计算绝对值的导数,如何用matlab求带绝对值函数的导数? 你值得一看的技巧...

    用matlab求函数的导数:如果一个函数表达式中有绝对值,那对该函数求导就需要注意啦!该函数可能在他的零点处导数不存在,所以我们不能用传统的方法求导,应该在零点处分别求左导数和右导数,如果左导数和右导 ...

  7. 【MATLAB】线性规划问题中的绝对值问题

    问题描述 在求解线性规划问题中碰到绝对值的情况: minz=∣x1∣+2∣x2∣+3∣x3∣+4∣x4∣,min z=|x_1|+2|x_2|+3|x_3|+4|x_4|,minz=∣x1​∣+2∣x ...

  8. MATLAB实战系列(二十四)-大规模邻域搜索(LNS)求解带时间窗的车辆路径问题(VRPTW)(附matlab源代码)

    前言 大规模邻域搜索算法(后文统一称为LNS)用MATLAB编写文中的提出的LNS求解带时间窗的车辆路径问题(后文统一称为VRPTW问题)的代码. 本文会带大家详细梳理LNS的基本流程,其实说白了LN ...

  9. matlab pca求曲率和法向量_实践课堂 已给出实例的MATLAB求解大汇总(线性规划)...

    [例1]用图解法求解如下二维线性规划问题. 友情链接:例1详解可点击这里 [例1]的MATLAB求解. %原目标函数,为转化为极小,取目标函数中设计变量的相反数 c=[-1;-1]; %线性不等式约束 ...

  10. 惩罚函数外点matlab,禁忌搜索算法求解带时间窗的车辆路径问题(惩罚函数版 附MATLAB代码)...

    本周应小伙伴要求继续学习TS求VRPTW,不过这次通过使用惩罚约束的形式允许解违反时间窗约束和容量约束,不过要给违反约束的解加以惩罚. 这次我们的目标函数就不单单只有车辆总行驶距离了,还要包括当前解中 ...

最新文章

  1. storm日志bebug问题
  2. oracle rds 运维服务_RDS oracle数据库运维
  3. 【大数据部落】R语言GAM(广义相加模型)对物业耗电量进行预测
  4. eth0: ERROR while getting interface flags: No such device
  5. python做物联网控制_一步步搭建物联网系统——简单物联网
  6. bzoj1574[Usaco2009 Jan]地震损坏Damage*
  7. 华硕计算机电源已连接未充电,笔记本电池显示“电源已接通,未充电”
  8. 多线程测速软件带宽叠加设置
  9. MySQL 报错:ERROR 1137 (HY000): Can't reopen table: 'tempId'
  10. word打开老是配置进度_打开word2007时总是出现配置进度,怎么解决?
  11. 计算机组成原理——Part Three 性能指标
  12. APP登录 技术点与流程全解
  13. rls最小二乘法 c语言,RLS递归最小二乘(最新整理)
  14. Power BI(二十四)power pivot之产品/客户分类分析(ABC分析)
  15. oralce启动问题You may need to set ORACLE_HOME to your Oracle software directory
  16. 谷粒学院-首页数据显示-banner轮播图微服务搭建
  17. 安装PHP7的图形用户界面(GUI) 扩展
  18. win10无法连接网络里的其他计算机名,win10系统无法访问局域网的其他电脑的解决办法...
  19. 深度图像和彩色图像配准原理
  20. Docker常用命令【更新中】

热门文章

  1. codeup《算法笔记》题目索引(题目+解析+代码)
  2. USB协议 - UVC标准协议规范(二)
  3. USB协议-UVC描述符篇(三)
  4. 光纤传感技术:基于Matlab的OFDR系统数值仿真
  5. 天线分类特征学习笔记(1)偶极子天线
  6. 基于IMAP的邮件收发系统
  7. XMind2TestCase自定义测试用例设计模板
  8. 电力电子转战数字IC20220610day21——杂七杂八
  9. 2021靠谱的IT培训机构排名重磅来袭!
  10. WebRAY权小文:产品就是工程师的尊严