問題タブ [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で戻り型として使用するためにコンストラクターからの着信型を侵害する)...:

またはこれ

だから私はメインから次のようなものを呼び出すことができます:

それが不可能だとしても、なぜそれを特集するのは合理的ではないと私は考える必要がありますか?コンパイラがインテリジェントで冗長性が低く、クラスZooCageを代表する必要がない場合、そのタイプセーフです。

私は、特定の動作に対してジェネリックを使用して評価しています。私はそれをうまく動かすことができましたが、なぜ引数からタイプを推測できないのかわかりません。そこで、実際のアーキテクチャを単純化する目的で、警告なしで正常に実行されるこの例を作成しました。

(簡単な説明については、最後の2行のスニペットを直接見てください)

これらの2つのクラスを取得したとします。ターゲット1:

檻の中には脊椎動物しかいないと想像してみてください(昆虫/クモ類は巨大なクモ類ではなく、タコは水生培地を必要とします)

もう1つのクラス、Main.java

これはOKでコンパイルされ、印刷されます

私が疑問に思っているのは、ZooCageクラス全体の類型化を回避する方法(タイプ/ジェネリックのみを使用し、警告やキャストを抑制しない)はありますか?ZooCageのコンストラクターargからgetHerdLeaderの戻り値に型の推論を取得するために、何千もの方法を試しました。コンストラクターに期待される型が付属している場合は、ZooCageを入力する必要はありません。冗長なようで、タイプを事前に知っておく必要があります!

助けてくれるすべての人に感謝します!

0 投票する
3 に答える
1219 参照

jena - すべてのデータをメモリにロードせずに推論できる無料のフクロウの推論者はありますか?

Jena と TDB を使用して RDF を保存していますが、その上で何らかの推論を行いたいと考えています。しかし、RDF データは大きく、Jena のフクロウ推論はすべてのデータをメモリにロードする必要があります。だから、すべてのデータをメモリにロードせずに推論できる1つの推論者を見つけたいのですが、何かありますか?

0 投票する
5 に答える
298 参照

java - Java Generics (単純なケース、推論のための明確な謎)

学習のためだけに、このクラスがあります。

コンストラクターからメソッドの戻り値の型に着信オブジェクトを推論する方法はありますか? そうでない場合、これがコンパイラにとって実行可能ではないと考える必要があるのはなぜですか?

これは私がすでに行った再定式化された質問ですが、それは私の最初の質問であり、誰も理解していなかったので、それを明確に明らかにする方法を学びました. 元の質問を後で編集しようとしましたが、すべてが埋もれていました。例を変更して単純化し、簡単にしようとしました。元の質問: Java Generics Silly Thing (型を推測できないのはなぜですか?) .

問題がある場合は、私に言ってください。削除します。

0 投票する
2 に答える
19132 参照

c++ - 逐次モンテカルロ法(粒子フィルター)の実装

ここにあるパーティクル フィルタの単純なアルゴリズムに興味があります。それを実装する方法についてのアイデアはありますか(それがどのように機能するかをよりよく理解するためだけに)?

編集: これは、それがどのように機能するかを説明する非常に単純な例です: 1#39950

C++ で実装しようとしました: http://pastebin.com/M1q1HcN4しかし、正しい方法で実装しているかどうかはわかりません。私がよく理解しているかどうか、または私のコードによる誤解があるかどうかを確認していただけますか?

0 投票する
1 に答える
1598 参照

sparql - 推論と TDB を使用して Jena Fuseki を構成できますか?

TDBでサポートされている推論モデルで布石を構成したい。

メモリ モデルで構成できましたが、トリプルを更新できる TDB モデルでは構成できませんでした。

次のアセンブラ記述を使用しています。

正常に動作し、RDFS 推論を実行でき、新しいトリプルを挿入することさえできます。ただし、サーバーを停止して再起動すると、次の例外が発生します。

0 投票する
2 に答える
1759 参照

artificial-intelligence - 人工知能とエキスパートシステム

次のような決定木を生成することから、エキスパート システムの構築を開始しました

PC-Shell を使用してエキスパート システムを構築しました。メイン コードは次のようになります。

等...

では、この中で人工知能はどこにあるのでしょうか? 答えを出して結果を出すテキストゲームみたいじゃないですか?そして、この例ではどのように推論が機能しますか (順方向と逆方向)?

0 投票する
1 に答える
2878 参照

c# - C# Linq to Entities: 結合句のいずれかの式の型が正しくありません。型推論に失敗しました

C# linq to entity を使用して 2 つのテーブルを結合しようとしています。

1 つのテーブルにはクライアントがあり、もう 1 つのテーブルにはライセンスがあります。テーブルは Client_ID と ClientLicence_ClientID によって結合されます。何らかの理由で (それらは私のテーブルではありません)、Client_ID は int であり、ClientLicence_ClientID は文字列です。

私が持っているコードは次のとおりです。

これをコンパイルしようとすると、エラーが発生します: 結合句の式の 1 つの型が正しくありません。'GroupJoin' の呼び出しで型の推定に失敗しました。

whereステートメントをコメントアウトすると、機能します(結果をフィルタリングしなくても)。

フィルター変数は、関数に渡されるクラスです。プロパティは 1 つだけです: int clientId.

0 投票する
2 に答える
1012 参照

sparql - Virtuoso で複数の入力推論を使用する

goodrelationsサイトinput inferenceから定義された Virtuoso Open Source の1 つを持っています。

-- を使用してクエリで使用したもの --

ここで、同じ名前を持つすべてのブランドを統合し、それをowl:sameAs推論して、ルール セットに挿入したいと考えています。

しかし、さらに推論を追加すると、クエリに複数の推論を追加することはできないと Virtuoso から言われました。

どうすればいいですか?ありがとうございました :)。

0 投票する
1 に答える
134 参照

functional-programming - タイピング環境への変数/タイプの追加

私はすでに遭遇したトークンのセットを含む環境を持っています。新しいトークンを見るとき、そのトークンを現在の環境に追加したいと思います。基本的には、構文解析を実行する環境での集合和集合演算を表現したいと思います。

Γ'={Γ、x}のようなもの

変数'x'を削除したい場合(環境からxを削除します)

x∈Γの場合、Γ'=Γ--x。

これらの2つの形式を書くための適切な方法は何ですか。ありがとう。

0 投票する
0 に答える
1342 参照

bayesian - ベイジアン ポーカー: 組み合わせ論を使用して見つけることができない分布を見つける方法

これは、stackoverflow に関する私の最初の質問であり、ベイジアン ネットワークを実装するのも初めてです。

私のプロジェクトの目標は、ベイシアン推論を行うポーカー プレーヤーを実装することです。オーストラリアのモナッシュ大学のケビン・コーブ率いるグループによって、これに関するいくつかの作業が行われました。ここで彼らの作品を見つけることができます:

最初のリファレンスは本で、より役に立ち、詳細です (ポーカーについては Ch.5.5 & 11 を参照してください)。私は、Leduc Hold'em と呼ばれるテキサス ホールデムの簡易版を使用して開始しています。

Leduc Hold'em は 2 人用のポーカー ゲームです。Leduc ホールデムで使用されるデッキには、6 枚のカード、2 つのジャック、2 つのクイーン、2 つのキングが含まれており、ハンドをプレイする前にシャッフルされます。ハンドの開始時に、各プレーヤーはポットに 1 チップのアンティを支払い、1 枚のプライベート カードを受け取ります。その後、プレーヤー 1 から始まる賭けのラウンドが行われます。賭けのラウンドの後、1 枚の公開カードがデッキから公開され、両方のプレイヤーが自分の手札を構築するために使用します。このカードはフロップと呼ばれます。フロップの後、プレイヤー 1 から再びベッティング ラウンドが行われ、ショーダウンが行われます。ショーダウンでは、どちらかのプレイヤーが自分のプライベート カードとパブリック カードをペアにした場合、ポット内のすべてのチップを獲得します。どちらのプレーヤーもペアにならない場合、より高いカードを持つプレーヤーが勝者と宣言されます。

各ベッティング ラウンドは同じフォーマットに従います。最初に行動するプレイヤーは、チェックまたはベットするオプションがあります。賭けをすると、プレイヤーはチップをポットに追加し、アクションは他のプレイヤーに移ります。プレーヤーがベットに直面した場合、フォールド、コール、またはレイズするオプションがあります。フォールドすると、プレーヤーはハンドを放棄し、ポット内のすべてのお金が対戦相手のプレーヤーに与えられます。コールすると、プレーヤーは直面しているベットに一致するのに十分なチップをポットに入れ、ベッティング ラウンドが終了します。レイズする場合、プレイヤーは現在直面しているベットよりも多くのチップをポットに投入する必要があり、アクションは対戦相手のプレイヤーに移ります。最初のプレーヤーが最初にチェックした場合、2 番目のプレーヤーがチェックして、ベッティング ラウンドまたはベットを終了することができます。Leduc ホールデムでは、ラウンドごとに 1 回のベットと 1 回のレイズに制限があります。ベットとレイズは固定サイズです。

185 ページの図 5.14 のセクション 5.5.2.1 を見ると、ポーカーのベイズ ネットの図があります。これは基本的に私が自分のプロジェクトで使用しているものと同じですが、Leduc Hold'em にアップカードがないことを考えると、アップカードに対応する 2 つのノードは適用されません。ノード ペア (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 の限界確率を計算できるはずですよね?