超级立方体小记



在多指令流多数据流MIMD里面有用到基于超立方体互联的网络结构,

用《图论导引》里面简单的描述,就是处理器能通信,当且仅当他们的邻接(k元祖代表了处理器的地址)


一个 k 维立方体(或者超立方体Qk)是一种简单图,每个顶点{0,1}标记的k元祖来表示。

相邻的顶点之间的 k 元祖只有一个位置上数字不同,Qk 的生成立方体 Qj 和 Qj 本身同构。


这是Q3的表示:



仔细观察会发现,Qk图里面的每条边链接的两个顶点的k元祖里的1的个数一端是奇数,另一端为偶数,

因此包含奇数个数 1 的点可以当做一个集合,偶数的也可以,所以 Qk 为二分图。

显而易见 Qk 有 2^k个顶点,每个顶点度为 k ,那么 Qk 里面会有 k* (2^k) / 2 条边。


Qk 里面有多少个 Qj 呢?

那么到底什么是( 1,1,0,0,1,0,.............,1 ) 呢?

想想也就是 k 维世界的坐标,那么隔绝掉一维或者几个维度,剩下的就是那个世界里的空间变化情况。

可以这样想,k 维度空间的世界里面固定 j 维,假设在这样 j 维的世界里面只生产拥有 j 个维度的事物,

也就是元祖里面还剩下 k - j 个元素没有被固定,每个 j 维世界都有 2^( k - j ) 个事物( Qj ),

那么 Qk 里面就一共有 C( k,j ) * 2^( k - j ) 个 Qj。


这是一个Q4图,Q4可以看做由一个Q3沿着某个维度移动一定距离,

然后将点对链接在一起得到的。里面有8
== C(4,3) * 2^1 个Q3(绿)。






应用:

1.E-立方体路由算法

比如给定立方体中的起始点 s 和终止点 d,问从 s 到 d 的最短路径


步骤:

1.计算方向位,r[i] = s[i-1] xor d[i-1],其中i = 1,,,n

令 i = 1, v = s

2.若r[i] == 1,则从当前节点寻找下一节点 v xor 2^(i-1)

若r[i] == 0,跳过

3.i = i + 1,若 i <= n, 转2,否则退出


假设这里 s = 0110,d = 1101

step1.计算方位,r = s xor d = 1011

step2.因为 r[1] == 1,v = 0110 xor 0001 = 0111, i = 1

step3.因为 r[2] == 1,v = 0111 xor 0010 = 0101, i = 2

step4.因为 r[3] == 0,跳过 v = 0101, i = 3

step5.因为 r[4] == 1,v = 0101 xor 1000
= 1101 = d, i = 4, end

路径为 0110 -> 0111 -> 0101 -> 1101


超级立方体小记,布布扣,bubuko.com

时间: 2024-08-24 01:24:37

超级立方体小记的相关文章

SpringBoot - 二零一七0421小记

一.SpringBoot使用起来比起SpringMVC更便捷,在注解上的小变化,我记录了下面几个: @Controller + @ResponseBody = SpringMVC中用@RestController来代替前面两个注解,通过这个注解,可以将所有的前端http请求放入SpringBoot的Controller容器中,并返回json格式的数据给前端 @RequestMapping(value={"/hello","/hi"},method=RequestMe

广州postgresql用户会技术交流会小记 2015-9-19

广州postgresql用户会技术交流会小记  2015-9-19 今天去了广州postgresql用户会组织的技术交流会 分别有两个session 第一个讲师介绍了他公司使用postgresql -X2的情况 第二个讲师介绍了postgresql里面的一些执行计划分析 我个人比较关注第一个session,因为涉及到真正的应用案例 网上有对postgresql -X2的简短介绍,我先转载过来 转载:http://francs3.blog.163.com/blog/static/405767272

git 学习小记之记住https方式推送密码

昨天刚刚学了点git基础操作,但是不幸的是[email protected]给出公告说尽量使用 https 进行操作.可是在用 https 进行 push 时,都需要输入帐号和密码. 各种百度谷歌之后在[email protected]官网找到了解决方法<https方式使用[email protected]设置密码的方式>文中给出了几个方法,并且都非常简单. 关于 cache 缓存方式,我不太喜欢,因为要设置时间,而且会过期.而 store 相应的非常方便,设置全局后,方便多个库使用.当然如果

关于自动化部署之docker容器的折腾小记

docker的英文本意是码头工人,也就是搬运工,这种搬运工搬运的是集装箱(Container),集装箱里面装的可不是商品货物,而是任意类型的App,Docker把App(叫Payload)装在Container内,通过Linux Container技术的包装将App变成一种标准化的.可移植的.自管理的组件,这种组件可以在你的latop上开发.调试.运行,最终非常方便和一致地运行在production环境下. 具体什么是docker,你们自己找资料吧,应该好理解.   可以说是个运维的利器,可以把

安卓环境搭建小记

安装容易出现问题:1.更新sdk时可能无法连接服务器,可在C:\WINDOWS\system32\drivers\etc下的hosts文件最后添加:#Google主页203.208.46.146 www.google.com#这行是为了方便打开Android开发官网 现在好像不翻墙也可以打开74.125.113.121 developer.android.com#更新的内容从以下地址下载203.208.46.146 dl.google.com203.208.46.146 dl-ssl.googl

与webView进行交互,webView小记

本文转载至 http://www.verydemo.com/demo_c101_i46895.html 一.与webView进行交互,调用web页面中的需要传参的函数时,参数需要带单引号,或者双引号(双引号需要进行转义在转义字符前加\),在传递json字符串时不需要加单引号或双引号. 1 -(void)webViewDidFinishLoad:(UIWebView *)webView 2 { 3     NSString *sendJsStr=[NSString stringWithFormat

linux学习小记 (一 )

shell 学习小记: 注意:多看系统脚本  多模仿    su切换用户时需要输入目标用户密码,root(superuser)切换到任何用户都不需要输入密码,- 参数必须要是最后一个(su huhu -) sudo需要输入当前用户密码,拥有sudo特权的用户可以执行 "sudo su -"命令,使用自己的密码切换到root用户 , 所以应该在/etc/sudoers 文件中禁止 sudo 执行su命令 linux文件与颜色: /etc/DIR_COLORS   (命令dircolors

自由职业小记6

说说最近的情况 前段时间的小记里面有说到,我接了一个很糟糕的活.客户对技术没有任何了解,需求不明确,还总是改需求.原本3天就完成的工作,被断断续续的托了2个礼拜.至今最后的尾款也还没有打给我,目前已经打给我的金额大概是70%.在前面的几篇小记当中,我一直在说,目前我们这个阶段一定不能挑食,要尽可能的为顾客服务.虽然这段时间我也的确是这么做的,在我理解的工作范围内,继续给予这个客户技术支持.但是在态度上我基本上已经放弃了这个客户了.虽然说不挑食是我们目前来说的需要保持的一个态度,但是这样的客户的确

DOM性能小记

在使用DOM操作时,同样的效果用不同的方式来实现,性能方面也会有很大的差异.尤其在移动式设备上,资源本来就很有限,一旦DOM写不好的话操作就会非常卡顿.这个周末,就写个DOM性能小记吧.错漏之处,望多指教. 1.浅说reflow 首先讲讲最近我才了解到的一个比较深入且模糊的东西——reflow. 从字面上理解的话,reflow有回流.重排的意思.它是指在DOM内容更新或增删时发生的一个响应过程,可以理解为页面内容改变了,然后发生重新排版这样的一个行为.我们可以将执行DOM操作细分为以下三个过程: