问题标签 [hypercube]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
838 浏览

python - 由于 wx 问题,无法使用 view_cube 命令

我看到以下问题:

在[5]中:img = open_image("2018-09-21_005.hdr")

在 [6] 中:view_cube(img,bands=[29, 19, 9])

ModuleNotFoundError Traceback(最近一次调用最后)/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/spectral/graphics/hypercube.py 在 69 尝试:---> 70 import wx 71从 wx 导入 glcanvas

ModuleNotFoundError:没有名为“wx”的模块

在处理上述异常的过程中,又出现了一个异常:

----> 1 view_cube(img, band=[29, 19, 9]) 中的 ImportError Traceback (最近一次调用最后一次)

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/spectral/graphics/graphics.py in view_cube(data, *args, **kwargs) 176 接受键盘输入。177 ''' --> 178 从spectral.graphics.hypercube 导入HypercubeWindow 179 180 如果不是running_ipython():

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/spectral/graphics/hypercube.py in 71 from wx import glcanvas 72 except ImportError: ---> 73 raise ImportError("必需依赖 wx.glcanvas 不存在") 74 75 DEFAULT_WIN_SIZE = (500, 500) # 图像帧的默认尺寸

ImportError:所需的依赖 wx.glcanvas 不存在

我使用以下命令安装 wx:“brew install wxpython”

0 投票
0 回答
133 浏览

javascript - How to show loading message in mashup Qlik Sense

im trying to show a loading message when mashup app is obtaining data from Qlik server but i don't get good result with my approach.

My approach is something like that:

First i get de current selections from getLists method and when selections change show the loading message. Then in the hypercube callback at the end of this method i hide the loading message.

The code is something like that:

In getList Method

In every HyperCube:

This code is inside of every hypercube in the panel and hide loading message() method wait for the finish of the execution of every cube like of join() method in python multiprocess package.

But my problem is getList and app.createCube method are asynchronous them sometimes the loading message is active after the execution of createcube method and dont back hide the message again.

Someone know how to improve this problem, I need to show the loading message because I'm working with large dataset and qlik sense engine is delayed to give the response data

Thank you!

0 投票
0 回答
161 浏览

qliksense - qlik 感知能力 api 10000 限制

我们已经达到超立方体的极限,需要提取超过 10000 个(数据点 - 我使用这个术语来描述 API 发送的单个单元格超过 10000 个是当您将初始宽度和高度相乘时的最大值fetch) 使用功能 API。有没有人能够获得超立方体的下一页?请注意,我们的要求是针对混搭而不是扩展。
我们做了一个解决方法,但它需要我们破坏我们的数据集,并且需要更长的时间。
让您思考,因为 Qlik 是一种数据分析工具,所以应该有一种方法可以获取您的所有数据。在我们处理数百万甚至数十亿记录的时代,10000 个数据点(甚至不是记录)是微不足道的。

我还应该自愿说我们使用它的应用程序是用于股票分析的,他们希望查看趋势并需要查看有关各个点的信息作为工具提示。通过我们通过的维度和度量的数量(总共是股票数量的 7 倍 - 大约 20 = 140),我们被限制为只有 70 天(10000/140)。

我们正在使用 qliksenseserver 11.24.4 Qlik Sense November 2017 Patch 2

0 投票
1 回答
36 浏览

scilab - 什么是从 n 维的超立方体创建所有向量的方法?

我想将超立方体在维度 n 中创建的所有向量存储在矩阵中,也就是说,对于维度 n=3,例如:

在 scilab 有什么好的方法吗?

谢谢 !

0 投票
1 回答
427 浏览

python-3.x - 在 Python 中获取 Hybercubes 的所有完美匹配

我正在研究超立方体。我目前在 python 中使用networX。我读到 networkX 是一个非常好的处理图表的库。我的问题是

1)我想构造超立方体Q4和的所有完美匹配Q5

2)然后我想验证所有完美匹配总是延伸到超立方体的哈密顿循环?

PS:它已经证明了超立方体中的所有完美匹配总是延伸到超立方体中的哈密顿循环。

我想通过计算机程序验证这两项任务。

我是 python 新手。我写了一个构建超立方体的代码。

输出

Q_4 中的节点:16

Q_4 中的边:32

这运行得很好。但我找不到任何库或函数networkX来获取所有完美匹配的列表。有人可以告诉我任何 python 库中是否有任何函数可用于在图形中获得所有完美匹配,或者有人有只为Q4和构建所有完美匹配的代码Q5。提前致谢。

0 投票
0 回答
38 浏览

java - 递归生成 GreyCode

所以我试图对超立方体提出递归解决方案,其中步行方法允许您步行到超立方体中的每个点。例如,如果你放 walk(3) 控制台应该输出:

我已经使用灰码为这个问题制定了一个迭代解决方案,因为我的心态是每个点距离另一个点只有 1 位,所以我只需要在每个循环中移位一次。然后我尝试以递归的方式做同样的事情。我不允许使用数组、列表、堆栈等任何类型的问题,这是我提出的递归解决方案:

递归解决方案:

但是,当我将 recursiveWalk(3) 放入 main 时,代码的输出如下:

这不是我所期待的。我想强调一下,我并不打算使用任何形式的问题,所以我只使用了字符串和简单的打印输出

这是我提出的可行的迭代解决方案:

0 投票
0 回答
33 浏览

algorithm - 为什么要修改“一对多”算法以适用于任意数量的进程,而不仅仅是 2 的幂?

用于并行计算的一对多广播算法是指数级的。这个想法是您从单个节点开始,并希望从该节点获取消息到超立方体中的所有其他节点。超立方体本身是 2^k 个节点。因此,从第一步中的根开始,您将该消息发送到单个其他节点,然后第二步这两个节点都发送到其他 2 个节点,然后第三步,这 4 个节点发送到其他 4 个节点,依此类推。这导致p 节点超立方体的 log2(p) 步骤。

我在《并行计算导论》第二版中遇到了一个问题,它要求读者“修改(算法),使它们适用于任意数量的进程,而不仅仅是 2 的幂”。

《并行计算简介》一书中的算法 4.1。 一对多广播算法

这是其中一种算法。如果我没有弄错使这项工作专门针对 2 的幂的部分,则与 mask := mask XOR 2^i 和 (my_id and 2^i) 行有关。

具体来说,为什么我们希望该算法适用于 2 的非幂次方?由于它是一个超立方体,它是 2 个节点的幂次方,它什么时候会发生并且对它是 2 个进程的非幂次方是有益的?

0 投票
1 回答
42 浏览

javascript - 动态生成n维超立方体m面列表的算法

我正在尝试设计一种算法,给定n,mvertices(其中n= 超立方体m的维度, = 我们尝试生成的面的维度, 并且vertices是一个-维超立方体中顶点的有序列表),返回表示n 维超立方体n中 m 面的顶点数组的数组。

这可能是一种令人困惑的措辞,所以这里有几个例子:

假设我们想要在一个立方体(3 维超立方体)中获得一组边(1 个面)。如果我们假设vertices是立方体中顶点的二进制表示的有序数组(即[[0, 0, 0], [0, 0, 1], [0, 1, 0], ..., [1, 1, 1]]),我们将有:

二维超立方体(一张脸)中的边会给出:

立方体中的面(2面)将给出:

请注意,面不是边数组的数组,而是代表面的顶点数组。cels 和任何其他 n 面也是如此,即一个 n 面由一个长度2^n的顶点数组表示。

使用汉明距离

一种解决方案(我目前正在使用)是使用顶点的二进制表示之间的汉明距离来确定它们是否是 m 面的一部分。如果2^m顶点的组合完全不同m,那么它们就形成了一个 m 面。

例如,[0, 0, 0][0, 0, 1]形成一条边(1-face),因为它们相差 1 位。

[0, 0, 0], [0, 0, 1], [0, 1, 0], 并[0, 1, 1]形成一个面(2-face),因为它们相差 2 位(即 1 位由所有三个顶点共享)。

我的算法m通过递归构建顶点组合来生成 -faces 列表。每次将顶点添加到组合中时,都会检查组合中所有顶点之间的汉明距离。如果汉明距离 > m,则组合将被忽略,否则我们将继续构建组合,直到它包含2^m顶点。如果是这样,并且汉明距离正好是m,它将被添加到m-face 列表中。这将一直持续到所有组合都被检查过。

该算法的问题在于它的效率极低。随着超立​​方体维度的增加,需要检查的组合数量呈指数n增长。一旦我开始为维度 9 及以上构建 m 面列表,算法将需要 30 秒、1 分钟、5 分钟等才能完成。

寻找模式

我想,因为提供的顶点数组总是有序的,所以一定有某种模式形成n和/或m增加。使用这种模式,我应该能够提出一种不依赖于构建组合的新算法。

n为了可视化和之间的这种关系m,我在电子表格中放置了有序的顶点,并在单元格中着色以表示 m 面。我从只看边缘开始:

当 n = 1、2、3 和 4 时的边

我立刻注意到了一些模式

  • 顶点索引之间存在n不同大小的间隙
  • 第一个i差距是2^i

然后我注意到维度的边缘列表递归地n建立在维度的边缘列表之外。n-1这是有道理的,因为 n-hypercube 几何是建立在 n-1-hypercube 几何之上的。

使用递归

我重新排列了我的电子表格并为 and 制作了n = 1..4表格m = 1..3

m = 1适用于尺寸 1 - 4

m=1,n=1-4

这里,v表示顶点的有序数组,a表示输出m-face数组,每列表示一个m-face,彩色轮廓显示与m-face列表在低维中的关系(与低维的递归关系)。

黑色方块中的数字代表 中顶点的索引v

我能够使用我注意到的模式推导出以下递归算法(其中m = 1是面部n的维度,并且是超立方体的维度)。它不是生成一个顶点数组,而是生成一个i表示第ith 个顶点的索引数组:

该算法成功地生成了维度的边列表,n并且比必须检查每个可能的顶点组合(如使用汉明距离时的情况)要高效得多

不利的一面是该算法会生成索引,因此您必须在之后将索引映射到实际顶点。它几乎可以立即为最大 14 或 15 的尺寸生成边缘列表。

m = 2然后我为and (面和单元格)制作了表格,m = 3看看我是否可以绘制任何类型的连接并扩展我的递归算法以适用于所有ms:

m = 2适用于尺寸 1 - 4

m=2 n=1-4

m = 3适用于尺寸 1 - 4

在此处输入图像描述

这就是我卡住的地方

我可以说有某种模式延伸到所有ms,我只是被精确定位并将其转换为算法的任务不知所措。

我可以说m-face 列表的m > 1构建方式与我提供的递归算法类似m = 1,我只是无法弄清楚需要添加什么。

对于这篇冗长而令人困惑的帖子,我深表歉意。正如您可能从我对可视化的需求中看出的那样,我对线性代数并不擅长,所以可能有一些明显的数学原理或我遗漏的东西。

对此算法的任何想法或帮助将不胜感激。我正在尝试使其尽可能高效——也许使用循环实现它会比递归更有效,但我只是在尝试提高效率之前尝试获得一个可行的算法。

由于这是我的第一篇文章,我不能 100% 确定我是否在正确的位置发布了这个问题,所以如果我在错误的论坛中,请告诉我。我可以看到这类问题可能更适合更多算法或以数学为中心的论坛,所以如果有更好的地方发布此问题,请告诉我!

更新

对于任何想知道的人,这是我使用Matt Timmermans 回答中描述的逻辑编写的函数: