对于产销不平衡问题有两种情况:

  供大于求(产大于销)→增加虚拟销地

  供不应求(产小于销)→增加虚拟产地

例如以下例题:

这个题中,总产量为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方法)的更多相关文章

  1. 获取sqlserver数据库中所有库、表、字段名的方法

    获取sqlserver数据库中所有库.表.字段名的方法 2009年03月12日 星期四 下午 12:51 1.获取所有数据库名: SELECT Name FROM Master..SysDatabas ...

  2. 万答#1,MySQL中如何查询某个表上的IS(意向共享)锁

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 问题 问题原文是这样的: 假如在MySQL事务里,给某个表的一行加了 共享锁,理 ...

  3. EF Core 中DbContext不会跟踪聚合方法和Join方法返回的结果,及FromSql方法使用讲解

    EF Core中: 如果调用Queryable.Count等聚合方法,不会导致DbContext跟踪(track)任何实体. 此外调用Queryable.Join方法返回的匿名类型也不会被DbCont ...

  4. web 中常用的两种上传文件的方法总结

    这里我们来总结整理一下常用的两种文件上传方式以及要注意的东西: 1.springmvc .MultipartFile 的上传方式. 2.org.apache.commons.fileupload 使用 ...

  5. django的FormView中,自定义初始化表单数据的曲折方法

    这个技巧,主要是用于表单初始化及回显. 也就是说,如果用户的数据库里有数据,则要将相应的数据显示在表单里, 如果用户的数据库里没有数据,才会生成一个空白的表单给用户, 这样才显得专业塞! 而我面对的尴 ...

  6. MYSQL 查看表上索引的 1 方法

    前期准备: create table T9(A int ,B text,C text,fulltext index fix_test_for_T8_B(B));#在定义表的时候加索引 create u ...

  7. Java中的class类的cast方法和asSubclass方法

    一般来说cast是转型的意思,但是学java的时间也不短了,class类居然还有cast这个方法,这里来学习一下这个cast有何用. 第一次看到这个cast是在Spring的源码中, spring-f ...

  8. 在 CSS 中表示颜色的hex code方法和rgb方法

    hexadecimal code(十六进制编码),简写为 hex code. 我们通常使用 decimals,也就是十进制数字,它对每一位数字使用符号0到9来表示.Hexadecimals (或 he ...

  9. HashSet中的元素必须重写equals方法和hashCode方法

    http://jingyan.baidu.com/article/d5a880eb8fb61d13f147cc99.html 1.为什么必须重写这两个方法. 2.什么事hashSet去重,符合什么样的 ...

随机推荐

  1. vijos 1011 清帝之惑之顺治

    背景 顺治帝福临,是清朝入关后的第一位皇帝.他是皇太极的第九子,生于崇德三年(1638)崇德八年八月二ten+six日在沈阳即位,改元顺治,在位18年.卒于顺治十八年(1661),终24岁. 顺治即位 ...

  2. Yuchuan_Linux_C 编程之十一 进程间通信

    一.整体大纲 二.进程间通信概念及方法  Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间.任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换 ...

  3. Hyperledger Fabric1.4环境搭建

    参考文档:https://www.cnblogs.com/cbkj-xd/p/11067790.html 1. 设置下载源为阿里源 sudo vim /etc/apt/sources.list 在配置 ...

  4. RTOS文件系统对比:LittleFS Vs. SPIFFS

    概述 在RTOS上免费的文件系统本身就不多,广泛使用且掉电安全的就更少了.本文选取当前RTOS上比较受欢迎的两个文件系统 SPIFFS 和 LittleFS 做全方位的对比,以便项目上评估在RTOS上 ...

  5. Windows10专业版+Microsoft office2016专业增强版免费无毒官方正版装机教程(简)

    win10: 1.官网制作系统盘(具体见官网提示) 2.备份C盘 3.重启,主板调到USB优先(重启后疯狂按F12或del,具体看主板型号) 4.安装(这个看造化) 5.激活 slmgr /ipk N ...

  6. Effective Python读书笔记

    有些位置可能翻译理解的不到位,各位看官如有疑问,欢迎留言赐教. Pythonic Thinking 大家经常用Pythonic来形容python语法风格的编程方式:简单优美,没有之一:通过import ...

  7. iOS包重签名工具,ipa文件重签名,快速签名,SignTool签名工具,好用的签名工具,App重签名

    新工具 ProjectTool 已上线 这是一款快速写白包工具,秒级别写H5游戏壳包,可视化操作,极易使用,支持Swift.Objecive-C双语言 QQ交流群:811715780 进入 Proje ...

  8. MySQL基础篇(07):用户和权限管理,日志体系简介

    本文源码:GitHub·点这里 || GitEE·点这里 一.MySQL用户 1.基础描述 在数据库的使用过程中,用户作为访问数据库的鉴权因素,起到非常重要的作用,安装MySQL时会自动生成一个roo ...

  9. 全国职业技能大赛信息安全管理与评估-第三阶段-弱口令自动爆破+读取Flag脚本

    自动爆破SSH弱口令+读取Flag #coding=utf-8 import paramiko sshc = paramiko.SSHClient() sshc.set_missing_host_ke ...

  10. NDCG的理解

    2019-05-29 14:15:44