小编Joh*_*hn 的帖子

Dijkstra的算法与统一成本搜索(时间复杂度)

我的问题如下:根据不同的来源,Dijkstra的算法只不过是统一成本搜索的变种.我们知道Dijkstra的算法找到了源和所有目的地之间的最短路径(单源).但是,我们总是可以修改Dijkstra以找到START和GOAL状态之间的最短路径(当目标从优先级队列中弹出时,我们只是停止); 但这样做,最糟糕的情况仍然是找到从START到所有其他节点的最短路径(假设目标是图中最远的节点).

如果我们使用最小优先级堆实现Dijkstra算法,则运行时间将为O(V log V + E),其中E是边数,V是顶点数.

由于统一成本搜索与Dijkstra(稍微不同的实现)相同,因此UCS的运行时间应该类似于Dijkstra,对吧?然而,根据我的AI类,统一成本搜索在最坏的情况下是指数的,它需要O(b 1 + [C*/ε]),其中C*是最优解的成本.(b是分支因子)

两种算法在运行时间不同时如何相同?运行时间是否相同,但我们看待它的方式是不同的?

我很感激你的帮助:) :)谢谢

dijkstra ucs

6
推荐指数
1
解决办法
2825
查看次数

如何将二维数组传递给F#中的函数?

我试图在F#中创建一个函数,它将整数的二维数组(9乘9)作为输入,然后打印其内容.以下代码显示了我所做的事情:

let printMatrix matrix=
    for i in 0 .. 8 do
        for j in 0 .. 8 do
            printf "%d " matrix.[i,j]
        printf "\n"
Run Code Online (Sandbox Code Playgroud)

问题是F#不会自动推断矩阵的类型,并且它给出了以下错误:"运算符'expr.[idx]'已被用作基于此程序点之前的信息的不确定类型的对象.考虑添加其他类型约束".

我尝试在函数的定义中使用类型注释,但我认为我做错了.知道如何克服这个问题吗?

arrays f# arguments function multidimensional-array

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

如何知道随机森林生成的回归模型是否良好?(MSE和%Var(y))

我试图使用随机森林进行回归.原始数据是218行和9列的数据帧.前8列是分类值(可以是A,B,C或D),最后一列V9的数值可以是10.2到999.87.

当我在训练集上使用随机森林时,它代表原始数据的2/3并随机选择,我得到了以下结果.

>r=randomForest(V9~.,data=trainingData,mytree=4,ntree=1000,importance=TRUE,do.trace=100)
       |      Out-of-bag   |
  Tree |      MSE  %Var(y) |
   100 | 6.927e+04    98.98 |
   200 | 6.874e+04    98.22 |
   300 | 6.822e+04    97.48 |
   400 | 6.812e+04    97.34 |
   500 | 6.839e+04    97.73 |
   600 | 6.852e+04    97.92 |
   700 | 6.826e+04    97.54 |
   800 | 6.815e+04    97.39 |
   900 | 6.803e+04    97.21 |
  1000 | 6.796e+04    97.11 |
Run Code Online (Sandbox Code Playgroud)

我不知道高方差百分比是否意味着模型是好的.此外,由于MSE很高,我怀疑回归模型并不是很好.有关如何阅读上述结果的任何想法?他们是否意味着模型不好?

r variance random-forest mean-square-error

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

将数据帧的行转换为R中的简单向量

我有一个巨大的数据框,从中只能选择几行。然后,根据条件删除一些列。假设我选择4460行,如下所示:

        V1870 V107 V1315 V1867 V1544 V1207 V1252 V1765 V342 V429 V1826 V865 V1374
4460     0    0     3     0     5     0     2     0    4    0     0    0     0
Run Code Online (Sandbox Code Playgroud)

问题是我需要将该行转换为简单的向量(这意味着我应该摆脱所有列/行名称),以便可以将其传递给另一个函数。我希望能够得到以下结果:

    [1] 0 0 3 0 5 0 2 0 4 0 0 0 0
Run Code Online (Sandbox Code Playgroud)

我尝试了as.list和as.vector,但没有一个得到我期望的结果。任何的想法?

r list matrix dataframe

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

如何为 F# 编译器 (Fsc.exe) 创建快捷方式?

我有一个愚蠢的问题要问。我刚开始学习 F#,正在尝试编译一些基础示例(例如 HelloWorld.fs)。

我创建了一个简单的 F# 文件,其路径是:C:\FSharp\HelloWorld.fs.

为了编译它,我使用了 F# 编译器的完整路径,如下所示:

C:\FSharp>"C:\Program Files\Microsoft F#\v4.0\fsc.exe" HelloWorld.fs

它工作得很好。

但是,我不想继续写编译器的完整路径:C:\Program Files\Microsoft F#\v4.0\fsc.exe. 我试图将它添加到 Windows 路径,但我不断收到错误消息fsc is not recognized as internal or external command。

如何为 F# 编译器创建快捷方式,以便每次需要编译程序时都不必使用完整路径?

windows f#

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