运输问题中产销不平衡问题(表上作业法和LINGO方法)
对于产销不平衡问题有两种情况:
供大于求(产大于销)→增加虚拟销地
供不应求(产小于销)→增加虚拟产地
例如以下例题:

这个题中,总产量为55,总销量为60,故而我们知道这个问题属于供不应求。
1.这个问题可以采用笔算的方式:
表上作业法
↓
得到初始方案
↓
检验基变量个数是否为m+n-1个,若不是,则说明初始解退化,需要不足基变量个数(如填写一个数字同时满足了一厂一商,则需在同行或同列中填写一个数字0,以保证恰好有m+n-1个数字)【注意:基可行解中不能有某个基变量独占一行一列】
↓计算位势值(*)
基于基变量的cij计算出vj和ui,根据公式:cij=vj+ui,可以令v1=0(随意设置)
↓
基于非基变量的表格,计算出非基变量检验数,σij=cij-(vj+ui)。
↓若σij全非负,则说明初始方案为最优方案,从而计算出运输费用。
若存在σij < 0 ,则说明初始方案不是最优方案,需要进行调整。首先在作业表上以xij为起始变量作出闭回路(其余顶点均为基变量,回路中每行每列只有两个变量), 并求出调整量 ε: ε=min{该闭回路中偶数次顶点调运量xij}。
↓
以xij为起始变量,其余顶点为基变量的闭回路,1.闭回路之外的变量调运量不变,2.闭回路上:偶数号顶点的调运量减去ε, 奇数号顶点的调运量加上ε。(*)
↓
重复计算(*)之间的步骤,直到非基变量检验数全部为非负时,方案为最优方案。
2.LINGO计算最优方案
sets:
supplys/../: produce;
demands/../: sell;
links(supplys, demands): c, x;
endsets
data:
produce = ,,;
sell = ,,,;
c = ;
enddata
min = @sum(links(i,j): c(i,j) * x(i,j));
@for(supplys(i): @sum(demands(j): x(i,j)) = produce(i));
@for(demands(j): @sum(supplys(i): x(i,j)) <= sell(j));
运行结果如下:
Global optimal solution found.
Objective value: 415.0000
Infeasibilities: 0.000000
Total solver iterations: Model Class: LP Total variables:
Nonlinear variables:
Integer variables: Total constraints:
Nonlinear constraints: Total nonzeros:
Nonlinear nonzeros: Variable Value Reduced Cost
PRODUCE( ) 15.00000 0.000000
PRODUCE( ) 20.00000 0.000000
PRODUCE( ) 20.00000 0.000000
SELL( ) 5.000000 0.000000
SELL( ) 15.00000 0.000000
SELL( ) 20.00000 0.000000
SELL( ) 20.00000 0.000000
C( , ) 5.000000 0.000000
C( , ) 5.000000 0.000000
C( , ) 9.000000 0.000000
C( , ) 10.00000 0.000000
C( , ) 11.00000 0.000000
C( , ) 8.000000 0.000000
C( , ) 13.00000 0.000000
C( , ) 12.00000 0.000000
C( , ) 5.000000 0.000000
C( , ) 8.000000 0.000000
C( , ) 6.000000 0.000000
C( , ) 11.00000 0.000000
X( , ) 5.000000 0.000000
X( , ) 10.00000 0.000000
X( , ) 0.000000 0.000000
X( , ) 0.000000 1.000000
X( , ) 0.000000 3.000000
X( , ) 5.000000 0.000000
X( , ) 0.000000 1.000000
X( , ) 15.00000 0.000000
X( , ) 0.000000 3.000000
X( , ) 0.000000 6.000000
X( , ) 20.00000 0.000000
X( , ) 0.000000 5.000000 Row Slack or Surplus Dual Price
415.0000 -1.000000
0.000000 -9.000000
0.000000 -12.00000
0.000000 -6.000000
0.000000 4.000000
0.000000 4.000000
0.000000 0.000000
5.000000 0.000000
由此可知:
最优方案为:

运输费用为 415 。
本篇文章为原创,转载请说明出处。
运输问题中产销不平衡问题(表上作业法和LINGO方法)的更多相关文章
- 获取sqlserver数据库中所有库、表、字段名的方法
获取sqlserver数据库中所有库.表.字段名的方法 2009年03月12日 星期四 下午 12:51 1.获取所有数据库名: SELECT Name FROM Master..SysDatabas ...
- 万答#1,MySQL中如何查询某个表上的IS(意向共享)锁
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 问题 问题原文是这样的: 假如在MySQL事务里,给某个表的一行加了 共享锁,理 ...
- EF Core 中DbContext不会跟踪聚合方法和Join方法返回的结果,及FromSql方法使用讲解
EF Core中: 如果调用Queryable.Count等聚合方法,不会导致DbContext跟踪(track)任何实体. 此外调用Queryable.Join方法返回的匿名类型也不会被DbCont ...
- web 中常用的两种上传文件的方法总结
这里我们来总结整理一下常用的两种文件上传方式以及要注意的东西: 1.springmvc .MultipartFile 的上传方式. 2.org.apache.commons.fileupload 使用 ...
- django的FormView中,自定义初始化表单数据的曲折方法
这个技巧,主要是用于表单初始化及回显. 也就是说,如果用户的数据库里有数据,则要将相应的数据显示在表单里, 如果用户的数据库里没有数据,才会生成一个空白的表单给用户, 这样才显得专业塞! 而我面对的尴 ...
- MYSQL 查看表上索引的 1 方法
前期准备: create table T9(A int ,B text,C text,fulltext index fix_test_for_T8_B(B));#在定义表的时候加索引 create u ...
- Java中的class类的cast方法和asSubclass方法
一般来说cast是转型的意思,但是学java的时间也不短了,class类居然还有cast这个方法,这里来学习一下这个cast有何用. 第一次看到这个cast是在Spring的源码中, spring-f ...
- 在 CSS 中表示颜色的hex code方法和rgb方法
hexadecimal code(十六进制编码),简写为 hex code. 我们通常使用 decimals,也就是十进制数字,它对每一位数字使用符号0到9来表示.Hexadecimals (或 he ...
- HashSet中的元素必须重写equals方法和hashCode方法
http://jingyan.baidu.com/article/d5a880eb8fb61d13f147cc99.html 1.为什么必须重写这两个方法. 2.什么事hashSet去重,符合什么样的 ...
随机推荐
- Linux——如何将Red Hat Enterprise Linux 6的语言改为中文?
第一步,打开终端,输入su -,获取超级用户权限,输入密码. 第二步,输入cd /etc/sysconfig,进入设置目录. 第三步,输入vi i18n,进入到配置文件. 第四步,按 ‘i’键,进入编 ...
- Linux 常见目录
/bin 二进制目录,存放许多用户级的GNU工具 /boot 启动目录,存放启动文件 /dev 设备目录,Linux在这里创建设备节点 /etc 系统配置文件目录 /home 用户目录 /lib 库目 ...
- Navicat for MySQL12破解
本文摘抄自:https://blog.csdn.net/zhangli0910/article/details/83785147,https://blog.csdn.net/mmake1994/art ...
- 并发工具类的使用 CountDownLatch,CyclicBarrier,Semaphore,Exchanger
1.CountDownLatch 允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助. A CountDownLatch用给定的计数初始化. await方法阻塞,直到由于countDo ...
- SpringBoot突报java.lang.NoSuchFieldError分析
SpringBoot项目,引了一个内部的工具包,竟然导致启动失败,报找不到freemarker Configuration类的一个属性,网上的解法都大同小异,最终用了自己的办法解决,花点时间记录下来, ...
- 如何优雅的使用AbpSettings
在Abp中配置虽然使用方便,但是每个配置要先定义key,要去provider中定义,再最后使用key从ISetting中获取还是挺麻烦的一件事, 最主要是获取修改的时候,比如,修改用户配置,是从获取一 ...
- MongoDB复制集概念架构浅析
一.复制集的作用 (1) 高可用 防止设备(服务器.网络)故障. 提供自动failover 功能. 技术来保证数 (2) 灾难恢复 当发生故障时,可以从其他节点恢复. (3) 功能隔离 用于分析.报表 ...
- Python数据科学手册(1) IPython:超越Python
1.1 shell还是Notebook Jupyter Notebook 是 IPython shell 基于浏览器的图形界面,提供了一系列丰富的动态展示功能.Jupyter Notebook 不仅可 ...
- 为什么vue中的data用return返回呢?
不使用return包裹的数据会在项目的全局可见,会造成变量污染:使用return包裹后数据中变量只在当前组件中生效,不会影响其他组件. 当一个组件被定义, data 必须声明为返回一个初始数据对象的函 ...
- Element UI中的上传文件功能
上传文件给后台: <el-upload style="display:inline-block" :limit=" class="upload-demo& ...