小编Fra*_*ank的帖子

SMT 求解器与 Prolog

SMT 求解器(例如 CVC4)和 Prolog 之间的主要区别是什么?一个人能做别人做不到的事吗?

我的计划是使用 R 生成查询,将它们发送到 SMT 求解器,并根据 SMT 输出修改查询。我基本上是在给定一组标准的情况下寻找最大的最佳路径。我相信我可以在 Prolog 或 SMT 中解决这个问题,但我找不到任何一个系统的优缺点列表。

prolog smt

6
推荐指数
0
解决办法
1253
查看次数

情节地显示时间,但我只想要日期

尝试使用plotly js 绘制日期图,但由于某种原因它显示时间和日期。

如何从该图中删除时间?谢谢!

x = ["2023-02-13", "2023-02-14"];
y = [3, 4];
var trace1 = {
    type: "scatter",
    mode: "lines",
    name: '',
    x: x,
    y: y,
    line: {color: '#17BECF'}
}
var layout = {
    xaxis: {
        type: 'date',
    },
    title: '',
};
var data = [trace1];
Plotly.newPlot('plotDiv', data, layout);

Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

javascript datetime-format plotly plotly.js

4
推荐指数
1
解决办法
635
查看次数

检查大型稀疏矩阵中非有限值的有效方法

我有一个大的稀疏矩阵。在用一些数学运算填充矩阵后,我意识到由于除以零错误,我有一些无限值。如何检查该矩阵的非有限值?

这是一个玩具矩阵。

A <- Matrix(nrow = 150000, ncol = 150000, data = 0, sparse = TRUE)
A[1, 1] = Inf
A[1, 3] = NA
A[2, 1] = -Inf
Run Code Online (Sandbox Code Playgroud)

试图找到它的非有限值给我一个错误:

test <- A[!is.finite(A)]
#Error: cannot allocate vector of size 83.8 Gb
Run Code Online (Sandbox Code Playgroud)

我也尝试逐行扫描这个矩阵,但它需要很长时间。

library(magrittr)

for(i in 1:nrow(A)){
    if((
        A[i, ] %>% .[!is.finite(.)] %>% length
    ) > 0) print(i)
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试并行运行它,但我认为这是矫枉过正。更何况,还需要很长的时间。

library(parallel)
library(magrittr)

numCores <- detectCores() - 1
cl <- makeCluster(numCores)
clusterExport(cl, c("A"))
clusterEvalQ(cl, library(magrittr))
out <- A %>% nrow %>% seq %>% …
Run Code Online (Sandbox Code Playgroud)

performance r matrix sparse-matrix

3
推荐指数
1
解决办法
175
查看次数

是否可以在字符串中使用 R 中的希腊字母

是否可以像在 Mathematica 中一样在 R 中用希腊字母书写?在一个字符串就足够了。在 rSymPy 中使用希腊字母会很好。

不谈论情节,更感兴趣的是在字符串中使用希腊字母。

r

2
推荐指数
1
解决办法
795
查看次数