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

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

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

例如以下例题:

这个题中,总产量为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计算最优方案

  1. sets:
  2. supplys/../: produce;
  3. demands/../: sell;
  4. links(supplys, demands): c, x;
  5. endsets
  6. data:
  7. produce = ,,;
  8. sell = ,,,;
  9. c =
  10.  
  11. ;
  12. enddata
  13. min = @sum(links(i,j): c(i,j) * x(i,j));
  14. @for(supplys(i): @sum(demands(j): x(i,j)) = produce(i));
  15. @for(demands(j): @sum(supplys(i): x(i,j)) <= sell(j));

运行结果如下:

  1. Global optimal solution found.
  2. Objective value: 415.0000
  3. Infeasibilities: 0.000000
  4. Total solver iterations:
  5.  
  6. Model Class: LP
  7.  
  8. Total variables:
  9. Nonlinear variables:
  10. Integer variables:
  11.  
  12. Total constraints:
  13. Nonlinear constraints:
  14.  
  15. Total nonzeros:
  16. Nonlinear nonzeros:
  17.  
  18. Variable Value Reduced Cost
  19. PRODUCE( ) 15.00000 0.000000
  20. PRODUCE( ) 20.00000 0.000000
  21. PRODUCE( ) 20.00000 0.000000
  22. SELL( ) 5.000000 0.000000
  23. SELL( ) 15.00000 0.000000
  24. SELL( ) 20.00000 0.000000
  25. SELL( ) 20.00000 0.000000
  26. C( , ) 5.000000 0.000000
  27. C( , ) 5.000000 0.000000
  28. C( , ) 9.000000 0.000000
  29. C( , ) 10.00000 0.000000
  30. C( , ) 11.00000 0.000000
  31. C( , ) 8.000000 0.000000
  32. C( , ) 13.00000 0.000000
  33. C( , ) 12.00000 0.000000
  34. C( , ) 5.000000 0.000000
  35. C( , ) 8.000000 0.000000
  36. C( , ) 6.000000 0.000000
  37. C( , ) 11.00000 0.000000
  38. X( , ) 5.000000 0.000000
  39. X( , ) 10.00000 0.000000
  40. X( , ) 0.000000 0.000000
  41. X( , ) 0.000000 1.000000
  42. X( , ) 0.000000 3.000000
  43. X( , ) 5.000000 0.000000
  44. X( , ) 0.000000 1.000000
  45. X( , ) 15.00000 0.000000
  46. X( , ) 0.000000 3.000000
  47. X( , ) 0.000000 6.000000
  48. X( , ) 20.00000 0.000000
  49. X( , ) 0.000000 5.000000
  50.  
  51. Row Slack or Surplus Dual Price
  52. 415.0000 -1.000000
  53. 0.000000 -9.000000
  54. 0.000000 -12.00000
  55. 0.000000 -6.000000
  56. 0.000000 4.000000
  57. 0.000000 4.000000
  58. 0.000000 0.000000
  59. 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. TensorFlow Serving实现多模型部署以及不同版本模型的调用

    前提:要实现多模型部署,首先要了解并且熟练实现单模型部署,可以借助官网文档,使用Docker实现部署. 1. 首先准备两个你需要部署的模型,统一的放在multiModel/文件夹下(文件夹名字可以任意 ...

  2. Data Vault 简介

    Data Vault 简介 Data Vault 2.0 不仅是建模技术,也提供了一整套数据仓库项目的方法论.它能提供一套非常可行的方案来满足数据仓库项目中对于历史轨迹和审核两个方面的需求. 多年来, ...

  3. iTerm2 都不会用,还敢自称老司机?(上)

    对于需要长期与终端打交道的工程师来说,拥有一款称手的终端管理器是很有必要的,对于 Windows 用户来说,最好的选择是 Xshell,这个大家都没有异议.但对于 MacOS 用户来说,仍然毋庸置疑, ...

  4. 【猫狗数据集】利用tensorboard可视化训练和测试过程

    数据集下载地址: 链接:https://pan.baidu.com/s/1l1AnBgkAAEhh0vI5_loWKw提取码:2xq4 创建数据集:https://www.cnblogs.com/xi ...

  5. flask blueprint出现的坑

    from flask import Blueprint admin = Blueprint('admin',__name__) def init_bule(app): app.register_blu ...

  6. windows下安装spark-python

    首先需要安装Java 下载安装并配置Spark 从官方网站Download Apache Spark™下载相应版本的spark,因为spark是基于hadoop的,需要下载对应版本的hadoop才行, ...

  7. 基于 HTML5 WebGL 的发动机 3D 可视化系统

    前言     工业机械产品大多体积庞大.运输成本高,在参加行业展会或向海外客户销售时,如果没有实物展示,仅凭静态.简单的图片说明书介绍,无法让客户全面了解产品,不仅工作人员制作麻烦,客户看得也费力.如 ...

  8. DOTNET CORE源码分析之IServiceProvider、ServiceProvider、IServiceProviderEngine、ServiceProviderEngine和ServiceProviderEngineScope

    首先谈一下IServiceProvider IServiceProvider只提供给了一个根据类型获取对象的功能,试想一下IOC总得有一个找到对象,具体如下 public interface ISer ...

  9. Journal of Proteome Research | Prediction of an Upper Limit for the Fraction of Interprotein Cross-Links in Large-Scale In Vivo Cross-Linking Studies (分享人:张宇星)

    题目:Prediction of an Upper Limit for the Fraction of Interprotein Cross-Links in Large-Scale In Vivo ...

  10. IE 跨域session丢失问题

    在测试时发现session 取不到值,以为是session赋值除了问题,但是在Chrome中一切正常,故排除此原因.那问题肯定出在浏览器身上里.于是一步一步调试,发现在IE中,如果页面跳转,Sessi ...