问题标签 [black-box]
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.
python - Python CLI 进度条/微调器,无需迭代
关于 Python 脚本执行时终端中进度条的显示存在许多现有问题,但每个问题都基于执行操作然后更新进度图形的循环。
不幸的是,我想显示其进度的函数——或者至少是一个显示它正在工作的微调器对象——是一个我不能(至少真的,真的不应该)改变的黑匣子。本质上,我想做的是:
尽管理想情况下这将是省略号的动画,而不是打印多行。不过,在我开始构建愚蠢的 ascii 动画之前,有一个主要障碍:
有没有办法同时spinner
运行blackbox()
?或者,是否有一种技巧可以暂停blackbox()
,无论其内容如何,每隔几百毫秒更新微调器图形,然后从中断的地方继续?
我已经用进度模块尝试过这个,但没有运气......我什至无法让示例代码工作,它在我开始迭代后就挂了,直到我 Ctrl+C 退出。
scala - 端口名称问题在 BlackBox 中定义
假设有一个B
模块,其中A
是一个实例。
A
模块说明:
黑盒的声明A
:
您必须在 BlackBox 中使用 io_ 前缀定义端口名称,否则B
RTL 中生成的端口列表将与A
模块不匹配。对于 Module 实例化,挂接 u_A 端口的方法是
对于 BlackBox 实例化,挂钩 u_A 端口的方法是
你能告诉我是否有更方便的方法吗?
search - 排列上的黑盒组合优化
我正在解决一般的黑盒优化问题,例如:x*: f(x) -> min,其中 x 是长度为 N 的排列(例如,N = 50,因此无法进行强力搜索)。目标函数 f(x) 由独立的计算机代码表示,x 表示复杂系统的配置,其响应由 f(x) 模拟。
我了解到,在这种情况下,我可以使用许多启发式方法。但是,这些方法中的大多数总是使用某种局部搜索,这需要在搜索空间(在我的例子中是排列空间 x)有合适的距离度量。在合适的距离度量下,我的意思是满足“局部性”属性的度量,例如排列 x 的微小变化会产生目标函数 f(x) 的微小变化。在我的情况下,不知道具有此属性的任何合适的距离度量,因此任何类型的本地搜索几乎都是随机搜索。
我有几个问题:
是否有任何可用的启发式黑盒组合优化方法,它不使用本地搜索和/或搜索空间中的任何距离度量?我需要克服问题的低“局部性”或简单的事实,即搜索空间中任何合适的距离度量都是未知的。
一般来说,“局部性”属性在组合优化中真的如此受限吗?可能是我错过了一些东西......,但大多数现实世界的黑盒组合问题具有低或非常低的“局部性”,因为常见的排列距离度量(Hamming、Kendal 等)不是一般合适的指标。
是否有任何通用方法如何在搜索空间中找到合适的距离度量以至少近似地满足“局部性”?
补充说明:
在现实中,黑盒函数 f(x) 是通过独立的确定性仿真代码实现的,其中 x 起着模拟物理系统的离散配置的作用。因此,函数 f(x) 具有明确定义的属性,但这些属性非常困难,不可能简单地利用它。
由于上述函数 f(x) 的复杂内部特性,不可能在搜索空间中找到满足“局部性”的适当距离度量 d(x,x')(在任何距离度量产生的意义上类似的 x 和 x'类似的反应 f(x) 和 f(x'))
所以,最后,我正在寻找任何优化启发式方法,它只能通过适应空间中 f(x) 的属性可用的信息来找到任何合适的次优解决方案。例如,像 EDA(分布算法估计)一样。
这个问题的主要原因是,什么样的优化启发式适合解决这类问题。
python - 优化求解器的目标函数(黑盒函数)评估,无论它使用什么算法?
这里的主要思想是了解如何在目标函数定义中使用黑盒函数以及优化算法如何调用这些函数。
假设我们有一个定义如下的函数:
f 是针对给定问题最小化的目标函数。让我们说:
f(Xi,Yi)=(Ai.Xi)+(Bi.Xi.Yi) 对于 i=1,2...n
其中 Yi= N(X1,X2,...Xn) 是一个黑盒函数(模拟),其分析形式未知,它将所有 Xi 作为输入
N 表示正在模拟的网络。
Ai 和 Bi 是常数
该问题有以下限制:
X1+X2+...+Xn = C
下面的函数定义只是为了展示我如何调用我的模拟结果并将其用于我的优化目标。如果可以做得更好,我也愿意接受建议。(但我的主要问题遵循我的函数定义)
我现在调用 python 优化求解器。
问题:
对于算法的每次迭代,是否会调用目标函数进行评估?
如果是,那么我编码的方式
是在求解器的每次迭代中使用黑盒函数评估返回目标函数的适当方式吗?此外,如果任何 python 优化包或类似问题和示例中存在或类似问题,请分享他们的链接或线程。
感谢您抽出宝贵的时间,您的经验可能会帮助我解决这个问题。
python - 使用线性约束最小化非线性和可微分的黑盒函数。- Python
我从 python 开始,我正在尝试解决 Fmincon 在 Matlab 中解决的问题。
基本上,我的问题有 12 个变量,并创建了一个包含 2000 个值的列表(线性),我的目标是最大化这个列表的最大值。
此外,该问题具有线性约束。
我尝试过使用 scipy,但没有成功,但在我尝试过的所有自由梯度求解器或近似梯度中,无法插入线性约束。
我也尝试过使用 cvxopt,但我没有找到任何自由梯度求解器或近似梯度。
此外,我不喜欢使用遗传算法、PSO、Harmony Search 等工具。
我想使用可以插入线性约束的自由梯度求解器或近似梯度,例如 Matlab 中的 Fmincon。
这是我的目标函数:
向量 X 代表 12 个变量,包含 12 个元素,并且该向量的总和必须等于 1。这是我的约束。
除此之外,每个变量都有不同的界限。所以求解器必须允许插入边界。
向量 X(所有 12 个变量),输入 f 和 CONST_CVAR,创建向量 REC (1x2000),我的目标是最大化向量 REC 的最大值。
这样,我需要一个求解器,它允许:
- 自由梯度或近似梯度
- 线性约束
- 非线性函数
- 界限
- Python
任何人都可以建议任何求解器吗?
javascript - 在 DevTools 中过滤可分析脚本(黑盒)
我尝试调查现有站点上的错误,因此我使用 devtools“Perfomance”和 JavaScript 分析器来了解调用链。报告中脚本过多的问题。调试时有一个很好的功能——黑盒,它有助于隐藏第三方脚本。但是有没有办法在探查器中进行黑盒?
javascript - JavaScript — 单元测试子任务
他们说:
“你应该测试接口,而不是实现。”
换句话说,您应该关注最终结果,而不是如何完成(黑盒测试)。
也有人说您不应该测试私有函数,而应该只测试公开的公共接口。但我的问题是...
对于依赖于多个私有子任务的公开暴露的接口(例如函数),您会怎么做?你应该如何进行测试?
考虑下面的函数calculateDiscountedPrice
。 让我们假设第一个函数是公开可用的(想想 export default),而其他 3 个函数是私有的。
示例用法:
如您所见,calculateDiscountedPrice
是我们公开的公共功能,因此我们应该对其进行单元测试。但是其他三个子任务呢?为什么我们不应该测试这些?calculateDiscountedPrice
涵盖其他三个的测试是否也包括在内?
php - 如何保护容器即服务 (caas) 中的源代码和数据库结构?
容器即服务 (caas) 是我们在我们周围听到的嗡嗡声。但是我在互联网上没有找到关于这个模型的一些混淆。
实际上,我们为客户提供的服务包括敏感数据(财务文件等)。因此,我们的一些客户不愿与我们分享数据。
因此,他们需要 docker 容器形式的解决方案。因此,在这种情况下,所有数据和我们的应用程序都将托管在它们自己的服务器中。我们将无权访问他们的数据。我们将按月向他们收费。
简而言之,我们需要将docker 容器中的所有应用程序(源代码和数据库)作为 blackbox交付。因此,客户端只能通过网络与 docker 容器交互,但无法进入 docker 容器查看我们的源代码和数据库结构。
这就是为什么我很困惑我们如何保护我们的源代码和数据库结构。(源代码是PHP,DB是PGSQL)
其次,我们如何将 docker 容器的代码与更新的代码同步?
对此问题的任何帮助将不胜感激。
prometheus - Prometheus 未从 file_sd_configs 读取黑盒目标
我正在配置 blackbox 来监控我的网站。Prometheus 静态配置目标正在工作,但也有点混乱。我想把我所有的目标都归档,但它根本不起作用。
码头工人撰写:
普罗米修斯.yml
blackbox_targets.yml
没有 blackbox_targets.yml 可以看到 prometheus batleter 中的目标丢失。
chisel - 如何使用黑盒生成 RTL 代码?
当我想用黑盒将代码凿子转换为verilog时,出现错误。我该如何解决?