问题标签 [inference]

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 投票
2 回答
3662 浏览

java - Java Generics Silly Thing(为什么我不能推断类型?)

我会尽量简短,因为这个问题没有得到很好的回答。对于详细的解释,请阅读本简报。

我会展示我想要做什么。像这样的东西(从构造函数推断传入类型,以便在另一个方法 getLeaderHerd 作为返回类型中使用它)...:

或这个

所以我可以从 Main 调用类似的东西:

即使不可能,我为什么要认为那是不合理的?如果编译器是智能的并且比典型的 ZooCage 类冗余更少,那么它的类型是安全的,这不是必需的

我正在评估将泛型用于特定行为。我设法让它工作,但我不明白为什么我不能从 arg 推断类型。所以我创建了这个例子,它运行良好,没有警告,目的是简化实际架构。

(直接查看最后 2 行片段以获得快速简报)

假设我有这两个课程。目标一:

想象一下,笼子里只能有脊椎动物(昆虫/蛛形纲动物不至于大猩猩/章鱼需要水生介质)

另一个类 Main.java

这编译OK并打印

我想知道的是:有什么方法(只使用类型/泛型而不使用 supressingWarnings 或铸件)来避免整个 ZooCage 类的典型化?我尝试了数千种方法来从 ZooCage 的构造函数 arg 中推断出类型到 getHerdLeader 的返回值。当他的构造函数带有预期的类型时,应该没有必要指定 ZooCage。似乎多余,让您必须事先知道类型!

非常感谢所有可以提供帮助的人!

0 投票
3 回答
1219 浏览

jena - 是否有任何免费的猫头鹰推理器可以在不将所有数据加载到内存的情况下进行推理?

我使用 Jena 和 TDB 来存储 RDF,我想对它做一些推断。但是 RDF 数据很大,Jena 的猫头鹰推理器必须将所有数据加载到内存中。所以我想找到一个推理器,可以在不将所有数据加载到内存的情况下进行推理,有没有一个?

0 投票
5 回答
298 浏览

java - Java 泛型(简单的案例,推理的清晰之谜)

我有这门课,只是为了学习:

有没有办法在没有警告和强制转换和失去类型安全性的情况下从构造函数中推断传入对象到方法的返回类型,但最重要的是没有使整个类 GENERIC (对我来说似乎是多余的)?如果不是,为什么我认为这对编译器不可行?

这是我已经做过的重新表述的问题,但这是我的第一个问题,我学会了如何清楚地揭露它,因为没有人理解。我后来试图编辑原始问题,但一切都被埋没了。我更改并简化了示例并尝试使其简单。原始问题:Java Generics Silly Thing (Why can't I infer the type?)

如果有任何问题,请告诉我,我会删除它。

0 投票
2 回答
19132 浏览

c++ - 顺序蒙特卡罗方法的实现(粒子过滤器)

我对这里给出的粒子过滤器的简单算法感兴趣:http ://www.aiqus.com/upfiles/PFAlgo.png看起来很简单,但我不知道如何实际操作。关于如何实现它的任何想法(只是为了更好地理解它是如何工作的)?

编辑: 这是一个很好的简单示例,解释了它是如何工作的:http ://www.aiqus.com/questions/39942/very-simple-particle-filters-algorithm-sequential-monte-carlo-method-implementation?page= 1#39950

我尝试在 C++ 中实现它:http: //pastebin.com/M1q1HcN4但我确定我是否以正确的方式进行操作。你能检查一下我是否理解得很好,还是根据我的代码有一些误解?

0 投票
1 回答
1598 浏览

sparql - 我可以使用推理和 TDB 配置 Jena Fuseki 吗?

我想用 TDB 支持的推理模型配置 Fuseki。

我已经能够使用内存模型配置它,但不能使用可以更新三元组的 TDB 模型。

我正在使用以下汇编程序描述:

它工作正常,它能够进行 RDFS 推理,甚至插入新的三元组。但是,一旦我停止并重新启动服务器,就会引发以下异常:

0 投票
2 回答
1759 浏览

artificial-intelligence - 人工智能和专家系统

我从生成这样的决策树开始构建我的专家系统:决策树: http: //obrazki.elektroda.pl/6125718100_1336340563.png

我用PC-Shell搭建专家系统,主要代码如下:

ETC...

那么人工智能在哪里呢?它不是像基于文本的游戏一样工作,您可以在其中回答并最终得到结果吗?在这个例子中将如何进行推理(向前和向后)?

0 投票
1 回答
2878 浏览

c# - C# Linq to Entities:连接子句中的表达式之一的类型不正确。类型推断失败

我正在尝试使用 C# linq 将两个表连接到实体。

一张桌子有客户,另一张桌子有许可证。这些表由 Client_ID 和 ClientLicence_ClientID 连接。由于某种原因(它们不是我的表),Client_ID 是一个 int,而 ClientLicence_ClientID 是一个字符串。

我的代码是:

当我尝试编译它时,我得到一个错误:join 子句中的表达式之一不正确。调用“GroupJoin”时类型推断失败。

如果我注释掉 where 语句,那么它就可以工作(尽管没有过滤结果)。

过滤器变量是一个传递给函数的类。它只有一个属性:int clientId。

0 投票
2 回答
1012 浏览

sparql - 在 Virtuoso 中使用超过 1 个输入推理

input inference在 Virtuoso Open Source 中有一个,它是从goodrelations网站定义的——

-- 我在查询中使用的 --

现在我想整合所有具有相同名称的品牌,owl:sameAs对其进行推断,并插入到规则集中——

但是,当我添加更多推理时,Virtuoso 告诉我我不能向查询添加超过 1 个推理。

我该怎么做?谢谢 :)。

0 投票
1 回答
134 浏览

functional-programming - 将变量/类型添加到打字环境

我有一个环境,其中包含一组我已经遇到过的令牌;当我查看一个新令牌时,我想将该令牌添加到当前环境中。基本上我想在我执行解析的环境上表达一个集合联合操作。

像Γ' = {Γ, x}

如果我想删除变量“x”(从环境中删除 x)

Γ' = Γ - x 如果 x ∈ Γ 。

写这两种形式的正确方法是什么。谢谢。

0 投票
0 回答
1342 浏览

bayesian - 贝叶斯扑克:如何找到使用组合学找不到的分布

这是我关于 stackoverflow 的第一个问题,也是我第一次实现 Baysian 网络,所以我会提前为我犯的任何新手错误道歉。

我项目的目标是实现一个进行贝叶斯推理的扑克玩家。由 Kevin Korb 领导的澳大利亚莫纳什大学的一个小组在这方面做了一些工作,我用来参考。你可以在这里找到他们的作品:

第一个参考书,作为一本书,更有帮助和详细(参见第 5.5 章和第 11 章的扑克)。我正在使用名为 Leduc Hold'em 的简化版德州扑克开始。

Leduc Hold'em 是一款两人扑克游戏。Leduc Hold'em 中使用的牌组包含六张牌、两张 J、两张 Q 和两张 K,并且在玩一手牌之前要洗牌。在一手牌开始时,每位玩家向底池支付一个筹码赌注并获得一张私人牌。然后从玩家一开始进行一轮下注。在一轮下注之后,从牌堆中显示一张公共牌,双方玩家都用它来构组自己的手牌。这张牌称为翻牌。翻牌后发生另一轮下注,再次从玩家一开始,然后进行摊牌。在摊牌时,如果任一玩家将他们的私人牌与公共牌配对,他们将赢得底池中的所有筹码。如果没有玩家配对,则拥有较高牌的玩家被宣布为获胜者。

每一轮投注都遵循相同的格式。第一个行动的玩家可以选择过牌或下注。下注时,玩家将筹码添加到底池中,并且行动转移给其他玩家。当玩家面临下注时,他们可以选择弃牌、跟注或加注。弃牌时,玩家放弃这手牌,底池中的所有钱都分配给对方玩家。跟注时,玩家将足够的筹码放入底池以匹配所面对的下注,下注回合结束。加注时,玩家必须将比当前所面对的赌注更多的筹码投入底池,并将行动转移给对方玩家。如果第一个玩家最初过牌,则第二个玩家可以过牌以结束下注轮或下注。在 Leduc Hold'em 中,每轮有一次下注和一次加注的限制。下注和加注的大小是固定的。

如果您查看 pg.185,图 5.14 中的第 5.5.2.1 节,则有一个用于扑克的贝叶斯网络图。这与我在项目中使用的基本相同,但假设在 Leduc Hold'em 中没有上牌,则上牌的两个相应节点不适用于它。我能够计算节点对(BPP_Win,BPP_Fin),(BPP_Win,OPP_Fin),(OPP_Fin,BPP_Fin),(OPP_Fin,OPP_Curr)和(BPP_Fin,BPP_Curr)之间的联合概率表,但我不知道如何计算 (OPP_Curr, OPP_Action) 的联合概率。据我了解,某种采样技术是必要的。

作为一个后续问题,如果我能够计算这个联合概率,那么我应该能够通过使用 BP 并将联合概率作为因素来计算给定我当前卡的 BPP_win 的边际概率,对吗?