我的问题在概念上类似于解决字谜,除了我不能只使用字典查找.我试图找到合理的词而不是真实的词.
我已经基于一堆文本中的字母创建了一个N-gram模型(现在,N = 2).现在,给定一个随机的字母序列,我想根据转移概率将它们置于最可能的序列中.我认为在开始时我需要维特比算法,但随着我看起来更深入,维特比算法根据观察到的输出优化了一系列隐藏的随机变量.我正在尝试优化输出序列.
有没有一个众所周知的算法,我可以阅读?或者我是否与Viterbi走在正确的轨道上,我只是没有看到如何应用它?
更新
我已经添加了一笔赏金来要求更深入地了解这个问题.(分析解释为什么不能采用有效的方法,除模拟退火之外的其他启发式/近似等)
algorithm machine-learning mathematical-optimization markov n-gram
我很新R.我想要做的是能够从另一个应用程序(Java)加载一个URL,该应用程序将运行一个R脚本并输出一个,JSON以便我的应用程序可以使用它.
我知道有一些框架shiny可以作为R的Web服务器,但是我找不到关于如何通过URL传递参数的框架的文档,因此R可以使用它们.
理想情况下,我需要调用以下URL:
http://127.0.0.1/R/param1/param2
Run Code Online (Sandbox Code Playgroud)
该URL将调用一个R脚本,该脚本将使用param1和param2执行某些功能并返回一个JSON我将从我的应用程序中读取的内容.
我一直在努力计算第一季度从第一年到第一季度的增长率.
在excel中,公式看起来像这样((B6-B2)/ B2)*100.
在R中实现这一目标的最佳方法是什么?我知道如何获得不同时期的差异,但不能通过4个时间段的差异来实现它.
这是代码:
date <- c("2000-01-01","2000-04-01", "2000-07-01",
"2000-10-01","2001-01-01","2001-04-01",
"2001-07-01","2001-10-01","2002-01-01",
"2002-04-01","2002-07-01","2002-10-01")
value <- c(1592,1825,1769,1909,2022,2287,2169,2366,2001,2087,2099,2258)
df <- data.frame(date,value)
Run Code Online (Sandbox Code Playgroud)
哪个会生成这个数据框:
date value
1 2000-01-01 1592
2 2000-04-01 1825
3 2000-07-01 1769
4 2000-10-01 1909
5 2001-01-01 2022
6 2001-04-01 2287
7 2001-07-01 2169
8 2001-10-01 2366
9 2002-01-01 2001
10 2002-04-01 2087
11 2002-07-01 2099
12 2002-10-01 2258
Run Code Online (Sandbox Code Playgroud) 同
df <- data.frame(id=c(1:5), v1=c(0,15,9,12,7), v2=c(9,32,6,17,11))
Run Code Online (Sandbox Code Playgroud)
如何在大于10的所有列上提取具有值的行,该列应返回:
id v1 v2
2 2 15 32
4 4 12 17
Run Code Online (Sandbox Code Playgroud)
如果在任何大于10的列上,该怎么办?
id v1 v2
2 2 15 32
4 4 12 17
5 5 7 11
Run Code Online (Sandbox Code Playgroud) 我在一个我必须写的大功能里面.在最后一部分中,我必须计算数据框中列的平均值.我操作的列的名称是作为函数的参数给出的.
C#中是否有任何优化库?
我必须在excel中优化复杂的方程,因为这个方程有一些系数.我必须根据我定义的适应度函数对它们进行优化.所以我想知道是否有这样一个库可以满足我的需求?
我正在研究一种算法,其目标是找到一组最小的软件包来安装软件包"X".
我将用一个例子更好地解释:
X depends on A and (E or C)
A depends on E and (H or Y)
E depends on B and (Z or Y)
C depends on (A or K)
H depends on nothing
Y depends on nothing
Z depends on nothing
K depends on nothing
Run Code Online (Sandbox Code Playgroud)
解决方案是安装:AEB Y.
这是一个描述示例的图像:

有没有一种算法可以在不使用蛮力方法的情况下解决问题?
我已经阅读了很多关于算法的信息,比如DFS,BFS,Dijkstra等......问题是这些算法无法处理"OR"条件.
UPDATE
我不想使用外部库.
该算法不必处理循环依赖.
UPDATE
一种可能的解决方案是计算每个顶点的所有可能路径,并且对于可能路径中的每个顶点,执行相同的操作.因此,X的可能路径是(AE),(AC).现在,对于这两个可能路径中的每个元素,我们可以做同样的事情:A =(EH),(EY)/ E =(BZ),(BY)等等......最后我们可以结合可能的SET中每个顶点的路径,并选择最小长度的路径.
你怎么看?
python java algorithm mathematical-optimization minimization
有时我想编写一个随机函数,它总是返回特定输入的相同输出.我总是通过在函数顶部设置随机种子然后继续实现它.考虑以这种方式定义的两个函数:
sample.12 <- function(size) {
set.seed(144)
sample(1:2, size, replace=TRUE)
}
rand.prod <- function(x) {
set.seed(144)
runif(length(x)) * x
}
Run Code Online (Sandbox Code Playgroud)
sample.12返回从集合中随机取样的指定大小的矢量{1, 2}和rand.prod由从均匀地选择的随机值相乘指定向量的每个元素[0, 1].通常情况下,我希望x <- sample.12(10000) ; rand.prod(x)有一个"步骤"分布,范围内的pdf 3/4和范围内的[0, 1]1/4 [1, 2],但由于我不幸选择上面相同的随机种子,我看到了不同的结果:
x <- sample.12(10000)
hist(rand.prod(x))
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我可以通过将其中一个函数中的随机种子更改为其他值来解决此问题.例如,set.seed(10000)在rand.prod我得到预期的分布:

以前在SO上,这种使用不同种子的解决方案已被接受为生成独立随机数流的最佳方法.然而,我发现解决方案不令人满意,因为具有不同种子的流可能彼此相关(可能甚至彼此高度相关); 事实上,根据以下情况,它们甚至可能产生相同的流?set.seed:
不能保证种子的不同值会以不同的方式为RNG播种,尽管任何例外都是非常罕见的.
有没有办法在R中实现一对随机函数: