运输问题中产销不平衡问题(表上作业法和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去重,符合什么样的 ...
随机推荐
- 前端H5,点击选择图片控件,图片直接在页面上展示~
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Yuchuan_Linux_C编程之六 Makefile项目管理
一.整体大纲 二.makefile的编写 一个规则 两个函数 三个变量 1. 一个规则 三要素:目标, 依赖, 命令 目标:依赖 命令: 第一条规则是用来生成终 ...
- spring boot整合memcache
1.导入memcached客户端jar包 <dependency> <groupId>com.whalin</groupId> <artifactId> ...
- java后台生成并下载二维码
这个功能在项目开发中是很基础的,平时用到的也很多,这里简单记录一下,以便以后使用的时候参考 前提业务要求:前台页面展示数据,有下载按钮,点击下载,下载对应数据的二维码. 首先,在pom.xml文件中添 ...
- 回想笔记 瞎比比 域名注册 解析绑定ip 下载证书 设置证书 重定向http到https请求
2019.7.27 回想笔记 拥有腾讯云服务器一台 阿里云注册5元域名,进行备案 完成之后 使用解析 绑定服务器ip地址 ,使用域名可以访问到web服务器而不是通过直接暴露ip地址进行访问 证书购买 ...
- 11.C++ 动态内存管理
在dll中malloc的内存, 必须要在dll中free掉,否则无法编译通过 //dll文件 #include <stdio.h> #include <iostream> #d ...
- Array.isArray() 判断是不是数组
var arr = new Array(); if(Array.isArray()){ console.log('yes') } else { conssole.log('no') }
- 分布式——吞吐量巨强、Hbase的承载者 LSMT
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是分布式系统的第九篇文章. 今天给大家分享的内容是LSM树,它的英文是Log-structed Merge-tree.看着有些发怵,但其 ...
- 关于WDK开发内核签名之WHQL签名认证流程简介
WHQL简介: WHQL全称Windows Hardware Quality Labs testing(Windows硬件质量实验室测试)它是对所涉及的第三方硬件或软件进行一系列测试,然后提交测试的日 ...
- SSM框架学习笔记
管理部门: --Spring + SpringMVC+MyBatis 1.index.jsp--->SpringMVC(Servlet) 接受客户端的请求,读取页面的值,回传到页面 2.Myba ...