问题标签 [topology]

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 投票
3 回答
364 浏览

algorithm - 简化省份生成

我需要一些聪明且相当简单的解决方案来解决我的问题 - 省份形状生成。假设该映射是矩阵 NxM。每个单元格由自然数表示。0 表示该图块不属于任何省份。数字 1 表示它属于省 nr 1,nr 2 表示小区属于省 nr 2... 等等。

考虑这张 4x4 的地图:

这张地图代表了 16 个不属于任何省份的图块。

这是包含 1 个省份的地图:

这是大小为 5 的省,id = 1。它没有邻居。

考虑 3 个省份:

所以省 1 是 2 和 3 的邻居。省 3 只是 1 的邻居,省 2 只是 1 的邻居。还有 7 个不相关的图块。

我的问题是:我想在地图 NxN 上生成 k 个省份。还有一些简单的规则:

  • 有省的最大大小和省的最小大小(例如 min = 2, max = 10)
  • 省的所有瓷砖都应该连接(垂直或水平,但不是角落)

无效省份示例(未连接):

  • 不应该有飞地(省内省)
  • 形状应该是随机的

我试图通过洪水填充修改来实现它,但它有一些缺点。我很高兴听到一些想法或任何帮助。地图可以是 300x300,有 200 个或更多省份,所以它也应该是一些聪明的算法。

0 投票
2 回答
1064 浏览

objective-c - 网络拓扑信息

我有一个带有几个交换机、终端设备但只有一个路由器的小型企业网络。我想像图表一样显示网络拓扑(路由器在顶部)。

我只能访问网络层地址,因此我设法为网络上的每个设备获取它的 ip 地址和 ip 网络,即设备具有的每个接口的 192.168.2.9 和 192.168.2.0(掩码 255.255.255.0)。

我的猜测是我可以分析数据并建立网络的逻辑连接。所以,我想问的是我是否在正确的道路上了解网络拓扑(至少对于它的逻辑连接)。

这一切都是以编程方式完成的(c 和 Objective-c),并且是针对学校项目的。

PLUS:有谁知道任何可以绘制(给定此信息)拓扑的库?

0 投票
1 回答
5170 浏览

topology - 使用 JTS,如何从外部点找到多边形边界上最近的点?

使用 JTS,如何从外部点找到多边形边界上最近的点?

0 投票
3 回答
628 浏览

geometry - 如何确定一条线是否在二维空间中循环回自身,并找到包含在该循环中的点

这是一个很难用语言解释的问题,尽管我很容易在脑海中捕捉到它。如果我在下面的解释不清楚,请告诉我。

假设用户正在二维表面上绘图。他们正在用鼠标或手写笔绘制曲线。只是为了清楚定义,我会说曲线由起点(最初放下触控笔的点)、中间点(触控笔拖过的点)和终点组成(最后一点,用户将触控笔从表面抬起)。

如何检测用户曲线是否创建了一些封闭的形状? 例如,如果你模糊你的眼睛并看下面的图('.' 表示曲线上的点,'0' 表示不在曲线上的点),第一个确实创建了一个封闭的空间,第二个没有.

此外,给定某个点 (x1,y1),我如何确定该点是在封闭空间的内部还是外部?

0 投票
1 回答
807 浏览

network-programming - 命名此网络拓扑?由叶子稀疏连接的多个星网络

我正在尝试查找我的同事正在研究的网络结构的现有示例(甚至名称)。该网络看起来像许多中心集线器,每个集线器都有自己的叶节点,但其中一些叶节点连接到 2 个集线器。集线器彼此不连接。

0 投票
5 回答
5867 浏览

java - 比较用于绘制网络拓扑的开源 Java 图形绘制框架(JUNG 和 Prefuse)

哪些开源 Java 图形绘制框架可用于具有以下要求的网络图?该图将包含少于 1000 个节点。

1) 具有平行边
2) 单个图中的有向和无向边
3) 由图像表示的节点
4) 用户与节点和边的交互
5) 动态添加/删除节点和边
6) 节点和边上的多个标签,不同级别的标签可以由用户关闭/打开。(如在图层中绘制和关闭/打开图层)
7)不同的布局算法来显示星形、环形、网格拓扑

我评估了 JUNG 和 Prefuse。这是我为我的每个要求找到的。

1) Prefuse 在 JUNG 支持时无法显示平行边。可以操纵 prefuse 代码以显示平行边缘吗?由于这涉及到基本的数据级别更改,我相信这将比通常的自定义渲染更改更加困难。

2)我在 prefuse 和 JUNG 中都没有找到对组合图(有向和无向边)的任何引用。还有人知道吗?

3) 使用 Prefuse 和 JUNG 似乎很容易

4) prefuse 和 JUNG 再次为用户交互提供支持。

5) prefuse 和 JUNG 都支持。每个框架在重绘图形时如何执行?我在另一篇文章中看到 prefuse 在动态更新方面表现不佳(Prefuse Toolkit:动态添加节点和边

6)这归结为修改图形并重新绘制它。所以问题变得与5相同)

7) JUNG 和 prefuse 都有多种布局算法。但是当我尝试在 JUNG 和 Prefuse 中使用 FruchtermanReingoldLayout 显示相同的数据集时,我得到了不同的显示。任何想法为什么?尽管 Prefuse 中的大多数布局算法都基于 JUNG 实现,但 Prefuse 中的布局算法似乎显示出比 JUNG 更好的布局(我认为渲染也更好)。Prefuse 布局,例如 ForceDirectedLayout/FruchtermanReingoldLayout 和 CircleLayout 直接映射到星形、圆形、网状拓扑。

除了这些要求之外,prefuse 对表达式和查询语言有很好的支持,但看起来不像 JUNG 那样积极开发。哪一个有更好的可视化?关于哪一个合适以及如何克服缺点的任何建议?

我可以使用任何其他框架吗?

0 投票
1 回答
98 浏览

algorithm - 是否有自组装一组对等节点的最佳实践解决方案?

我有一个节点网络,受以下属性的约束:

  • 全局集包含 N 个节点。
  • 每个节点都能够发现 X 个邻居,其中 X << N。
  • 发现邻居是单向操作(即邻居不一定知道自己被发现了,也不一定发现原来的节点)。

我需要完成的是让这些节点自组装一个有效的网络拓扑,这样所有节点都可以用最少的跳数进行通信(我感兴趣的是实用的最小值,而不是理论上的优化最小值,如果它需要解决方案携带额外的复杂性)。这已经是一个普遍解决的问题了吗?也就是说,是否有标准的最佳实践解决方案?

如果我要手动组装节点,我可能会创建一个层次结构,其中一些节点充当其他节点组之间的网关。但是,我不太确定让这些节点自组装的最佳方法是什么。组/层次结构拓扑不是必需的,它只是一个直观的示例。

请注意,一旦拓扑就位,我并不是在寻找有效的消息路由算法(尽管我当然希望拓扑尽可能高效,并且每个节点都尽可能使用接近 X 的通信通道)。

0 投票
3 回答
8564 浏览

mysql - MySQL 星型拓扑

我有一个中央数据库,其中包含 MySQL 5.1-lastest-stable 中的所有数据。
我想以主主关系连接多个客户端。

问题

如何设置一个星型拓扑,中间有 1 个中央服务器和多个客户端数据库,以便一个客户端中的更改首先传播到中央服务器,然后从那里传播到所有其他客户端数据库?

数据库信息

我对所有表都使用了 inno-db,并且我已经启用了二进制日志。
除此之外,我还学会了如何在数据库之间进行主控。
所有表都有主键primary integer autoincrement。自动增量偏移量和开始调整到不同的客户端数据库永远不会发生主键冲突。

我为什么要这个

我有连接到笔记本电脑上本地 MySQL 数据库的客户端软件(不是网站或 php),这需要同步到中央数据库,以便所有在笔记本电脑上使用该程序的人都能看到其他人所做的所有其他更改.
我不想直接连接中央数据库,因为如果笔记本电脑和中央数据库之间的互联网连接断开,我的应用程序就会死掉。
在此设置中,应用程序继续进行,笔记本电脑只是在重新建立与中央数据库的连接之前不会从其他人那里获得更新。

0 投票
4 回答
1668 浏览

matlab - 圆形几何随机图

我想生成一组在半径为 R 的球内随机均匀分布的坐标。在 Matlab 中有没有任何方法可以在没有 for 循环的情况下以类似矩阵的形式做到这一点?

谢谢

更新:我很抱歉造成混乱。我只需要在半径为 R 的圆上随机均匀地生成 n 个点,而不是球体。

0 投票
2 回答
1299 浏览

deployment - NServiceBus 每个消息类型一个分发器的最佳实践背后的原因是什么?

我已经看到它多次提到作为一种最佳实践,应该为每种消息类型配置一个分发器进程,但从未解释过为什么会这样。由于增加分销商的数量会增加部署的复杂性,我想知道其背后的原因。我的猜测是,如果给定消息类型的所有可用订阅者都忙,分发者可能会等待一个释放,而可能有空闲订阅者的其他类型的消息堆积在分发者的工作队列中。这是准确的吗?还有其他原因吗?