意大利数学家Z.高津托

意大利伟大数学家Sire Zepartzatt Gozinto的生卒年代是一个谜[1],但是他发明的 “高筋图” 在 制造资源管理、物料清单(BOM)管理、智能阅读科学文献影响因子计算 等方面具有重要应用。

高津托图

下图是一个制造业物料需求高津托图,节点FP1、FP2分别表示最终产品的需求量,边上的数值表示组装部件所需要的上游零部件的数量,物料清单(BOM)系统需要知道所有零部件的总需求。图中:

Primary Demand(主需求) -- 市场对零部件的需求数量
Secondary Demand(次需求) -- 因产品组装产生的对零部件的需求
Total Demand(总需求)-- 以上两个需求之和
Product No. (产品(拓扑次序)编号)-- 根据组装约束对零部件产品进行拓扑排序的次序数

数学模型

设图中的零部件类型数为n,装配关系(边)数为m

设pd[i]为节点i的主需求(常量)
sd[i]为节点i的次需求(决策变量)
td[i]为节点i的总需求(被动变量)
pd[i]为节点i的产品拓扑次序编号(决策变量)

根据装配逻辑,对任何边k,如果边k的起始节点为a[k],终止节点为b[k],权值为c[k],则:

  1. sd[i]=sum{k=1,...,m;a[k]==i}(c[k]td[b[k]]) | i=1,...,n
  2. td[i]=sd[i]+pd[i]|i=1,...,n

把零部件从装配上游到下游排序:

  1. pn[b[k]] >= pn[a[k]] + 1 | k=1,...,m
  2. pn[i]>=1|i=1,...,n
  3. pn[i]<=n|i=1,...,n

+Leapms模型:

  1. min sum{i=1,...,n}pn[i]
  2. subject to
  3.  
  4. sd[i]=sum{k=1,...,m;a[k]==i}(c[k]td[b[k]]) | i=1,...,n
  5. td[i]=sd[i]+pd[i]|i=1,...,n
  6.  
  7. pn[b[k]] >= pn[a[k]] + 1 | k=1,...,m
  8. pn[i]>=1|i=1,...,n
  9. pn[i]<=n|i=1,...,n
  10.  
  11. where
  12. m,n are numbers
  13. e,pd are sets
  14. a[k],b[k],c[k] are numbers | k=1,...,m
  15. sd[i],td[i] are variables of nonnegative numbers|i=1,...,n
  16. pn[i] is a variable of nonnegative number|i=1,...,n
  17.  
  18. data_relation
  19. m=_$(e)/3
  20. n=_$(pd)
  21. a[k]=e[3k-2]|k=1,...,m
  22. b[k]=e[3k-1]|k=1,...,m
  23. c[k]=e[3k] |k=1,...,m
  24. data
  25. pd={150 50 20 230 0 0 0 0}
  26. e={
  27. 3 1 1
  28. 4 1 2
  29. 4 2 3
  30. 4 3 3
  31. 4 5 2
  32. 5 2 4
  33. 6 3 4
  34. 6 4 5
  35. 7 4 3
  36. 7 5 1
  37. 8 5 2
  38. }

求解:

  1. +Leapms>load
  2. Current directory is "ROOT".
  3. .........
  4. gozinto.leap
  5. .........
  6. please input the filename:gozinto
  7. ================================================================
  8. 1: min sum{i=1,...,n}pn[i]
  9. 2: subject to
  10. 3:
  11. 4: sd[i]=sum{k=1,...,m;a[k]==i}(c[k]td[b[k]]) | i=1,...,n
  12. 5: td[i]=sd[i]+pd[i]|i=1,...,n
  13. 6:
  14. 7: pn[b[k]] >= pn[a[k]] + 1 | k=1,...,m
  15. 8: pn[i]>=1|i=1,...,n
  16. 9: pn[i]<=n|i=1,...,n
  17. 10:
  18. 11: where
  19. 12: m,n are numbers
  20. 13: e,pd are sets
  21. 14: a[k],b[k],c[k] are numbers | k=1,...,m
  22. 15: sd[i],td[i] are variables of nonnegative numbers|i=1,...,n
  23. 16: pn[i] is a variable of nonnegative number|i=1,...,n
  24. 17:
  25. 18: data_relation
  26. 19: m=_$(e)/3
  27. 20: n=_$(pd)
  28. 21: a[k]=e[3k-2]|k=1,...,m
  29. 22: b[k]=e[3k-1]|k=1,...,m
  30. 23: c[k]=e[3k] |k=1,...,m
  31. 24: data
  32. 25: pd={150 50 20 230 0 0 0 0}
  33. 26: e={
  34. 27: 3 1 1
  35. 28: 4 1 2
  36. 29: 4 2 3
  37. 30: 4 3 3
  38. 31: 4 5 2
  39. 32: 5 2 4
  40. 33: 6 3 4
  41. 34: 6 4 5
  42. 35: 7 4 3
  43. 36: 7 5 1
  44. 37: 8 5 2
  45. 38: }
  46. ================================================================
  47. >>end of the file.
  48. Parsing model:
  49. 1D
  50. 2R
  51. 3V
  52. 4O
  53. 5C
  54. 6S
  55. 7End.
  56. ..................................
  57. number of variables=24
  58. number of constraints=43
  59. ..................................
  60. +Leapms>solve
  61. The LP is solved to optimal.
  62. 找到线性规划最优解.非零变量值和最优目标值如下:
  63. .........
  64. pn1*=4
  65. pn2*=4
  66. pn3*=3
  67. pn4*=2
  68. pn5*=3
  69. pn6*=1
  70. pn7*=1
  71. pn8*=1
  72. sd3*=150
  73. sd4*=1360
  74. sd5*=200
  75. sd6*=8630
  76. sd7*=4970
  77. sd8*=400
  78. td1*=150
  79. td2*=50
  80. td3*=170
  81. td4*=1590
  82. td5*=200
  83. td6*=8630
  84. td7*=4970
  85. td8*=400
  86. .........
  87. Objective*=19
  88. .........
  89. +Leapms>

结果

参考文献

[1] Rousseau, R. . (1987). The gozinto theorem: using citations to determine influences on a scientific publication. Scientometrics, 11(3-4), 217-229.

制造业物料清单BOM、智能文档阅读、科学文献影响因子、"Celebrated Italian mathematician ZepartzatT Gozinto" 与 高津托图的更多相关文章

  1. Node.js的下载、安装、配置、Hello World、文档阅读

    Node.js的下载.安装.配置.Hello World.文档阅读

  2. 我的Cocos Creator成长之路1环境搭建以及基本的文档阅读

    本人原来一直是做cocos-js和cocos-lua的,应公司发展需要,现转型为creator.会在自己的博客上记录自己的成长之路. 1.文档阅读:(cocos的官方文档) http://docs.c ...

  3. 转:苹果Xcode帮助文档阅读指南

    一直想写这么一个东西,长期以来我发现很多初学者的问题在于不掌握学习的方法,所以,Xcode那么好的SDK文档摆在那里,对他们也起不到什么太大的作用.从论坛.微博等等地方看到的初学者提出的问题,也暴露出 ...

  4. Keras 文档阅读笔记(不定期更新)

    目录 Keras 文档阅读笔记(不定期更新) 模型 Sequential 模型方法 Model 类(函数式 API) 方法 层 关于 Keras 网络层 核心层 卷积层 池化层 循环层 融合层 高级激 ...

  5. Django文档阅读-Day1

    Django文档阅读-Day1 Django at a glance Design your model from djano.db import models #数据库操作API位置 class R ...

  6. Django文档阅读-Day2

    Django文档阅读 - Day2 Writing your first Django app, part 1 You can tell Django is installed and which v ...

  7. Django文档阅读-Day3

    Django文档阅读-Day3 Writing your first Django app, part 3 Overview A view is a "type" of Web p ...

  8. BOM,文档宽高及窗口事件小析

    (一)BOM:Browser Object Model(浏览器对象模型)页面上所有的变量都是window的属性 一.方法:1. open(,)打开一个新窗口(页面)一参为页面地址url,二参为打开方式 ...

  9. Silverlight类百度文库在线文档阅读器

    百度文库阅读器是基于Flash的,用Silverlight其实也可以做. 我实现的在线阅读器可以应用于内网文档发布,在线阅览审批等.没有过多的堆积功能,专注于核心功能.主要有以下特性: 1. 基于XP ...

随机推荐

  1. BZOJ_3110_[Zjoi2013]K大数查询_整体二分+树状数组

    BZOJ_3110_[Zjoi2013]K大数查询_整体二分+树状数组 Description 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位 ...

  2. 用 fhq_Treap 实现可持久化平衡树

    支持对历史版本进行操作的平衡树 Treap 和 Splay 都是旋来旋去的 这样平衡树可持久化听起来不太好搞? 还有 fhq_Treap ! 每次涉及操作就复制一个节点出来 操作历史版本就继承它的根继 ...

  3. java 关闭钩子函数的应用

    Runtime.getRuntime().addShutdownHook(shutdownHook); 说明:这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的 ...

  4. 如何扩展分布式日志组件(Exceptionless)的Webhook事件通知类型?

    写在前面 从上一篇博客高并发.低延迟之C#玩转CPU高速缓存(附示例)到现在又有几个月没写博客了,啥也不说,变得越来越懒了,懒惰产生了拖延后遗症. 最近一周升级了微服务项目使用的分布式日志组件Exce ...

  5. 腾讯云存储专家深度解读基于Ceph对象存储的混合云机制

    背景 毫无疑问,乘着云计算发展的东风,Ceph已经是当今最火热的软件定义存储开源项目.如下图所示,它在同一底层平台之上可以对外提供三种存储接口,分别是文件存储.对象存储以及块存储,本文主要关注的是对象 ...

  6. Vue.js 牛刀小试(持续更新~~~)

    一.前言 这个系列的文章开始于今年9月从上一家公司辞职后,在找工作的过程中,觉得自己应该学习一些新的东西,从前几章的更新日期也可以看出,中间隔了很长的时间,自己也经历了一些事情,既然现在已经稳定了,就 ...

  7. Python-爬取妹子图(单线程和多线程版本)

    一.参考文章 Python爬虫之——爬取妹子图片 上述文章中的代码讲述的非常清楚,我的基本能思路也是这样,本篇文章中的代码仅仅做了一些异常处理和一些日志显示优化工作,写此文章主要是当做笔记,方便以后查 ...

  8. ConstraintLayoutDemo【约束性布局知识梳理】【基于1.1.3】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 在较新版本的Android Studio中新建项目默认使用 ConstraintLayout进行布局的. ConstraintLay ...

  9. ES 15 - Elasticsearch中的数据类型 (text、keyword、date、geo等)

    目录 1 核心数据类型 1.1 字符串类型 - string(不再支持) 1.1.1 文本类型 - text 1.1.2 关键字类型 - keyword 1.2 数字类型 - 8种 1.3 日期类型 ...

  10. 讲解:为什么重写equals时必须重写hashCode方法

    一 :string类型的==和equals的区别: 结论:"=="是判断两个字符串的内存地址是否相等,equals是比较两个字符串的值是否相等,具体就不做扩展了,有兴趣的同学可以去 ...