問題タブ [conjunctive-normal-form]

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 投票する
1 に答える
510 参照

list - Racket のリストのリストからスペースを削除する

PL ロジック リゾルバーに取り組んでおり、入力にスペースがないか、等間隔であることを確認する必要があります。スペースを削除する方が簡単だと思います。だから私は入力からスペースを削除する関数を書いています。

これまでのところ、私は持っています:

しかし、それは明らかに間違った出力を与えています。

スペースがまだ残っているだけでなく、出力は入力の奇妙な組み合わせです。誰でもこれについて私を助けることができますか?

私はこのようなものを取得したい:

読んでくれてありがとう。

編集:入力の形式を統一しようとしています。新しいサンプル入力では、(~~Boy) は 2 つの記号、(~~Boy) は 1 つの記号、(~~ Girl) は 3 つの記号として解析されます。これは解析が難しいと思います。特に、記号/演算子/スペースのさまざまなバリエーションがあります。(つまり、"Child^" は "Child"、"^"、または "Child^" 全体の記号として解析されますか?)

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

solr - queryResponse.getFacetFields() のカーディナリティが結合正規形のクエリを反映するように Solr を構成することは可能ですか?

ファセット検索用の Apache Solr API は非常に直感的です。SolrQuery クラスを使用すると、AND 連結クエリを簡単に作成し、リポジトリに対してテーマを実行し、結果を処理できます。非常に優れた機能として、Solr は残りのファセットの適合されたカーディナリティを提供する FacetField リストを含む queryResponse オブジェクトを返します。

私の質問は次のとおりです。これらの返されるカーディナリティが結合正規形式 (CNF) のクエリ、つまり、異なるファセット フィールドの AND 連結と同じファセット フィールドの OR 連結のクエリを反映するように Solr を構成することは可能ですか?

少なくともデフォルトの構成では、queryResponse.getFacetFields()AND 連結されたクエリのみが想定されているようです。回避策なしで使用queryResponse.getFacetFields()したいのですが、問題が構成の問題であることを願っています。

ここで理解を深めるために、Solr API の実際の戻り値と期待される戻り値を使用した具体的な使用例を示します。1000 個のアイテムのセットが想定されています。各アイテムには、コレクションの概念とモードの割り当てがいくつかある場合があります。そのため、アイテム ドキュメントの solr スキーマには、c概念とmoc収集モードの 2 つのフィールドがあります。これらのフィールドでは、ファセット検索が有効になっています。

ここでは、疑似コードでの関連するクエリと結果セットのカーディナリティを簡単に理解できます。F(c:position)概念位置が割り当てられたF(moc:postal)アイテムのセットを意味し、集荷郵便のモードが割り当てられたアイテムのセットを意味します。Qiクエリと結果セットを示します|Qi|。カーディナリティです。

次の図は、セットとサブセットのカーディナリティを示しています。

ファセット検索のベン図

ここで特定の検索を開始します。Q9 は対象のクエリです。任意のファセットが選択されます。ファセットは期待値を示しています。Q1 は 252、Q2 は 393、Q3 は 464 です。ユーザーはファセットc:positionを選択し、結果セットのカーディナリティを 1000 から 252 に減らします。基になるクエリは Q1 です。返されたファセットには、 の 24 個のアイテムmoc:telefonicと の 43 個のアイテムが表示されmoc:postalます。これらの値は、これらのファセットの 1 つを選択すると、結果セットが 24 (= 14 + 10) または 43 (= 33 + 10) 項目に制限されることを示しています。2 番目のステップで、ユーザーはさらに facet を選択しmoc:postalます。基になるクエリは Q5 です。結果セットの実カーディナリティと期待カーディナリティは互いに対応しており、43 です。

moc:telefonic前の選択で CNF クエリが与えられた場合に返されると予想されるファセットのカーディナリティはどれですか? 14項目を予定しています。ファセットを選択するとmoc:telefonic、結果セットはこれらの追加アイテムに関して 43 から 57 に増加します。残念ながら、Solr は 10 アイテムを表示します。すべてのファセットが AND 連結されている場合、これは正しいでしょう。結果セットに 53 項目ではなく 57 項目があるため、ユーザーとして混乱します。

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

logic - 変数を標準化しない理由は、解決の完全性に違反するだけです

一次論理 (FOL) 文を接続正規形 (CNF) に変換し、解決を実行することに関するいくつかのメモを読んでいます。

CNF に変換する手順の 1 つは、 ですStandardize variables

変数を標準化しない場合、解決アルゴリズムの完全な条件が違反し、健全性が違反しない理由を見つけるために検索してきました。

完全性に違反し、健全性が維持される理由を誰でも追加できますか?

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

prolog - 接続法正規形による推論

このコードを CNF に変換する必要があります (これは試験の準備段階であり、宿題ではありません!):

これが私がしたことです:

私の推論は正しいですか?

ここに別の質問があります:

r を使用してデータベースにクエリを実行します。データベースにどの句を追加する必要がありますか?

私はこれをまったく理解していません。単純化後のデータベースは基本的に r です。r は本当ですね。

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

python - 結合を使用した SQL Alchemy でのクエリ

文字列のリストと、リスト内のすべての文字列の組み合わせまたは組み合わせに基づくクエリを取得しようとしています。このようなことが以下でできるかどうか知りたいです。

したがって、基本的には、リスト内の各項目を繰り返し処理し、連結して接続詞を作成しようとしています。ポイントは、リストに含まれる項目の数がわからないということです...しかし、論理的にビットごとに論理積を付けて、それらがすべて結合を形成するようにしたいのです。次のエラーが発生します。

TypeError: &: 'int' および BinaryExpression のサポートされていないオペランド型

実際には、ビットごとの OR 記号を使用してこれを記述するつもりはありません... "|" しかし、ANDでそれを行うことができれば、ORでも機能するはずです。