https://mp.weixin.qq.com/s/W1cS9sgwLFjOOm86d05NIA

 
介绍各类型节点如何确定星型绑定所包含的连接数。
 
 
1. 定义
 
resoveStar方法以抽象方法的形式定义于抽象类MixedNode中,用于确定星型绑定所包含的连接数。
 
其参数说明如下:
a. iKnow:输入侧已知边的个数;
b. oKnow:输出侧已知边的个数;
c. iStar:输入侧星号的个数;
d. oStar:输出侧星号的个数;
 
 
2. SourceNode
 
SourceNode只能作为上游节点,没有输入边。
a. iStars = iKnown = 0:没有输入边;
b. oStars <= 1:输出侧最多只能有一个星型绑定;
c. po.size == oKnown即所有的边都是已知的,或者oStars = 1即必须有一个星型绑定;
d. po.size >= oKnown:po.size为全部输出边的数量;
 
所以返回值:
a. iStar = 0:没有输入边;
b. oStar = po.size - oKnown:输出边总数减去已知的输出边数量,即是星型绑定所包含的连接数;
 
 
3. SinkNode
 
参考SourceNode。
 
 
4. MixedAdapterNode
 
 
因为是一个Mixed节点,所以可以同时有输入边和输出边。
 
1) oStars+iStars <= 1
 
输入星和输出星的总数不能超过1;也就是说,要么输入侧有一个星号,要么输出侧有一个星号,要么都没有。
 
2) oStars > 0
 
意味着oStars = 1, iStars = 0。也就是说所有输入边已知,需要确定一个输出星所包含的连接数。所以返回值为iStar = 0, oStar = iKnown - oKnown;
 
这里直接使用iKnown - oKnown进行计算,包含一个假设,即在星号确定之后,输入边的数量与输出边的数量是相等的。
 
也可以得出另一个结论,mapParamsD和mapParamsU只是进行映射,不改变参数的个数:
 
注意里面的require(n == p.size),其中的n即是本节点另一侧边的个数:
 
即oPorts.size == diParams.size。
 
3) iStars > 0
 
如2)。
 
4) oStars = iStars = 0
 
没有星号,所以返回值都是0:(0, 0)
 
 
5. MixedNexusNode
 
 
1) !outputRequiresInput || oKnown == 0 || iStars + iKnown != 0
 
这个判断为假需同时满足如下三个条件:
a. outputRequiresInput = true:输出边依赖于输入边;
b. oKnown > 0:有输出边;
c. iStars + iKnown = 0:没有输入边;
 
也就是说有输出边,并且输出依赖于输入边,但却没有输入,只能报错。
 
2) !inputRequiresOutput || iKnown == 0 || oStars + oKnown != 0
 
如1)。
 
3) iKnown = oKnown = 0
 
既没有已知输入边,也没有已知输出边。无论是否有星型绑定,都认为其包含0条连接。
 
4) iKnown != 0 || oKnown != 0
 
有已知输入边或已知输出边。无论是否有星型绑定,都认为其包含1条连接。如果没有星型连接,这个1则不会被统计,总连接数目并不会增加。
 
5) 输入边的数目和输出边的数目并不一定相同,取决于实际的连接数:

 
6) 总结
 
可以看到MixedNexusNode极力想把星型绑定包含的连接数最小化,最好是不出现在图中。若非要出现在图中,则以最少的连接出现。
 
可能是因为不知道连接总数信息。
 
理解有限,暂且如此。

Rocket - diplomacy - resolveStar的更多相关文章

  1. Rocket - diplomacy - LazyModule的组织方式

    https://mp.weixin.qq.com/s/vaDUekxkFkOJLmzg5jCngw 简单介绍LazyModule/LazyModuleImp的组织方式. 1. LazyModule L ...

  2. Rocket - diplomacy - LazyModule的实例化(补)

    https://mp.weixin.qq.com/s/rgCRorjPYyyD6i7moIzbZg   介绍LazyModule和Node构造方法的执行过程,即实例化过程.     1. NullIn ...

  3. Rocket - diplomacy - LazyModule的实例化

    https://mp.weixin.qq.com/s/9PsBt4_4qHx4i6C5XtuiUw   介绍LazyModule和Node构造方法的执行过程,即实例化过程.     1. NullIn ...

  4. Rocket - diplomacy - LazyModule

    https://mp.weixin.qq.com/s/FBU8fE4u9-UK6mRGQOlvbQ   介绍LazyModule的实现.     ​​   1. children   LazyModu ...

  5. Rocket - diplomacy - MixedNode

    https://mp.weixin.qq.com/s/zgeAI2n-2cHJi7-Ra5rYZA   介绍MixedNode的实现.     1. 类定义   ​​ ​​   2. inner/ou ...

  6. Rocket - diplomacy - ValName

    https://mp.weixin.qq.com/s/so-2x5KLfYF0IMCCqNThwQ   简单调试ValName实现:   1. 使用     ​​   Desugar之后如下: ​​ ...

  7. Rocket - diplomacy - NodeHandle相关类

    https://mp.weixin.qq.com/s/GWL41P1G1BXm2sTeLmckdA   介绍NodeHandle相关的类.     ​​   1. NoHandle   顶层类(tra ...

  8. Rocket - diplomacy - DUEB参数模型的设计

    https://mp.weixin.qq.com/s/9PEEpe1pkQDN9RWpOGSUCQ   介绍DUEB参数模型的设计,不包含实现(实现对设计做了简化).     1. DUEB   di ...

  9. Rocket - diplomacy - 模块结构信息

    https://mp.weixin.qq.com/s/cTRxXwWNEeb4-XX_t4bRcg   讨论模块结构信息的来源及使用方式.     ​​   1. diplomacy   diplom ...

随机推荐

  1. 【FPGA篇章五】FPGA函数任务:对讲解函数与任务专题展开详解

    欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 任务和函数也属于过程块,多用于仿真文件设计中,使用两者的目的有所区别: 函数(function):对输入的值执行一些处理,返回一个新的值. ...

  2. Nacos下动态路由配置

    前言 Nacos最近项目一直在使用,其简单灵活,支持更细粒度的命令空间,分组等为麻烦复杂的环境切换提供了方便:同时也很好支持动态路由的配置,只需要简单的几步即可.在国产的注册中心.配置中心中比较突出, ...

  3. VA01销售订单批导问题解决

    1业务场景 事务代码:VA01创建销售订单,VA02修改销售订单 可以通过BAPI_SALESORDER_CREATEFROMDAT2批量创建 可以通过BAPI_SALESORDER_CHANGE批量 ...

  4. 利用一个VI写入或读取另一个VI的控件值

    利用一个VI写入或读取另一个VI的控件值(转载自浅浅的小草) 有一个VI,叫未命名1.vi.   还有一个vi,叫未命名2.vi     现在,我在 1.vi里要对2.vi的字符串控件进行写入.  可 ...

  5. 使用Python创建一个系统监控程序--李渣渣(lizaza.cn)

    最近在做个人网站,但是由于服务器资源不足,偶尔会出现系统崩溃的现象,所以想写一个程序来实时监控系统状态.当系统资源占用过高时发送邮件提醒. psutil(进程和系统实用程序)是一个跨平台的库,用于检索 ...

  6. dokcer入门

    背景: 由于最近在做基于Headless chrome + Robotframework + Docker +Jenkins架构的web自动化测试的预研工作,其中涉及到web自动化持续集成,需要搭建自 ...

  7. css3复杂选择器

    一.复杂选择器 1.兄弟选择器 兄弟元素,具备相同父元素的平级元素之间称为兄弟元素 兄弟选择器,只能找弟弟,不能找哥哥,只能往后找,不能往前找 ①相邻兄弟选择器 选择器 + 选择器{} 获取紧紧挨在某 ...

  8. scrapy中间件之下载中间件使用(网易新闻爬取)

    scrapy项目中的middlewarse.py中间件 爬虫中间件:目前先不介绍 下载中间件(需要在settings.py中开启) (1)请求处理函数:process_request(self, re ...

  9. k8s搭建实操记录干货二(node)

    #注:172.16.110.111为master,172.16.110.112\114为node1\node2(kubeadm join部分要等master完成后手工操作,其它可执行本脚本一键安装) ...

  10. 模板:DOM常用场景【表单提交】——javascript结合HTML DOM(或者JQuery)运用

    一.删除行为前的提示 首先要有一个onclick的DOM(点击)事件,和一个JavaScript弹出框:confirm()确认框 <script> function del(){ var ...