問題タブ [expert-system]

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 に答える
2774 参照

python - Clips Expert システムから Python 関数を使用する

PyClips を使用して、Python インタープリターからデータを動的に取得するルールを Clips に構築しようとしています。これを行うには、マニュアルで概説されているように、外部関数を登録します。

以下のコードは、問題のおもちゃの例です。私がこれを行っているのは、Clips を使用して推論したい SQL データベースの形式で、大量のデータのコーパスを持つアプリケーションがあるためです。ただし、Clip を Python の名前空間に直接「プラグイン」するだけでよいのであれば、このすべてのデータを Clips アサーションに変換するのに時間を無駄にしたくありません。

ただし、ルールを作成しようとすると、エラーが発生します。私は何を間違っていますか?

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

machine-learning - クリップ内の一致するファクト内のスロットの逆参照

ルールの LHS で一致するファクトのスロットをどのように逆参照しますか? 変数がファクトに一致する場合、そのファクト内のスロットに一致する条件をさらに作成する方法がわかりません。

たとえば、以下のコードでは、"(do (action ?action))" という形式のファクトがある場合にテキストを出力したいと考えています。ただし、 ?action はそれ自体が事実であり、その事実の「名前」スロットが「実行」である場合にのみルールをトリガーする必要があります。どうすればこれを達成できますか?

0 投票する
4 に答える
6150 参照

lisp - エキスパートシステムを書くのに最適な言語は何ですか?

LISPまたはJessのようなものが最良の選択ですか?ユーザーの回答に基づいて提案するプログラムを書くことに興味があります。計算上の考慮事項は実際には要因ではありません。これはほとんどパターンマッチングエンジンです。また、このためのアプリを作ってウェブに載せたいと思います。

更新:これをブログやウェブサイトに載せて、そこから人々に使ってもらいたいと思います。私の質問は、.NETファミリ、PHP、またはその効果をもたらす何かで動作する特定の推論エンジンがあると思いますか?各オプションなどの長所と短所は何ですか。

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

artificial-intelligence - Clips ルールの RHS で既存のファクトをカウントする

Clipsのルールの RHS に事実が存在することをどのようにテストしますか? 目標事実がいくつ存在するかを数えることによって、現在の状態を「スコアリング」するルールを設計しようとしています。LHS で事実をテストする方法は明らかですが、RHS で同等のテストを行う方法が見つかりません。

これは有効なClipsコードではありませんが、次のようなことをしたいです:

そのため、ゴール状態が存在しない場合、事実 (スコア (値 0)) が存在します。逆に、すべてのゴール状態が存在する場合、事実 (スコア (値 3)) が存在します。

リファレンス マニュアルには関数 fact-existp が記載されていますが、これにはファクト アドレスを渡す必要があるようです。(fact-existp (goal-1)) のように使用してみましたが、Clips で構文エラーが発生します。

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

python - PyClips でのクリップ エラー メッセージの伝播

PyClips を使用して開発するのは非常に難しいと思います。Clips によってスローされる有用なエラー メッセージが、一般的な「構文エラー」メッセージに置き換えられているように見えるからです。これにより、PyClip を使用する場合、大規模なコードベースでのデバッグが非常に面倒になり、事実上不可能になります。

次の例を考えてみましょう。乗算演算子を含む非常に大きな式を書きましたが、誤って 2 番目の引数を追加するのを忘れていました。PyClips は、単に引数が不足していることを伝える代わりに、構文エラーがあることを伝えました。訂正するのに 1 秒かかるはずだったのに、間違いを探して大きな表情を探し回ったため、訂正するのに 5 分かかりました。

要約版は次のとおりです。

Clips では、役立つエラー メッセージが表示されます。

PyClips では、役に立たないエラー メッセージが表示されます。

Clipsによってスローされた実際のエラーをPyClipsに与えるにはどうすればよいですか?

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

algorithm - エキスパートシステム(?)アルゴリズム

このタスクに還元できるアルゴリズムの問​​題があります。

n病気とm症状のリストがあるとします。
病気dや症状ごとsに、次の3つのオプションのいずれかがあります。

  • 症状は病気と正の相関があります:s => d
  • 症状は病気と負の相関関係があります:s => ~d
  • 症状は病気とは無相関です

アルゴリズムの目標は、症状に関するイエス/ノーの質問のリストを作成することです(またはさらに良いのは、質問の二分木です)。これにより、症状に応じて正確な病気を推測できます。

特定のアルゴリズム、関連するソフトウェアツール、さらにはドメイン固有の専門用語への参照をいただければ幸いです。

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

drools - ルールエンジンについての神話は何ですか?

ルールエンジンテクノロジー、特にJBossDroolsについてのプレゼンテーションを書いています。

ルールエンジンに関する「神話」のいくつかは何ですか。

私が考えることができるのは、ビジネスユーザーがルールエンジンを制御できることです。それは可能だと思いますが、制御と教育が必要です。すべてのビジネスユーザーがそれを実行できるわけではありません。

賛成/反対ですか?他に何か考えはありますか?

クリエイティブ・コモンズの下で私の最後の「発見」をリリースして幸せです...

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

expert-system - コンピュータ ハードウェア トラブルシューティング エキスパート システムの開発

コンピュータのハードウェアの問題をトラブルシューティングするエキスパート システム (より一般的には知識ベースのシステム) を開発したいと考えています。

言語として Python を選択し、推論エンジンとしてPykeを選択しました。

問題は、どこから始めればよいのか、どのように行動するための事実やルールを設計すればよいのかわからないことです。

そのプロジェクトに似たオープン ソースを検索しましたが、見つかりませんでした。

どんな助けでも大歓迎です。

0 投票する
4 に答える
3127 参照

c# - What algorithm to use for Dynamic Scheduling System?

I'm planning to develop an expert system that automatically fits the school faculty's work load (time, teaching load, etc), and generate class sections, room that is at least 90% accurate with what the Director of a certain department wants to assign the schedule for a certain semester.

What algorithm to use? Heuristics? Optimization? Any suggestions or help is highly appreciated!

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

java - デシジョンツリーとルールエンジン(Drools)

私が現在取り組んでいるアプリケーションでは、ある種のサービスに対する何万ものオブジェクトの適格性を定期的にチェックする必要があります。決定図自体は次の形式で、はるかに大きくなっています。決定図

各エンドノード(円)で、アクションを実行する必要があります(オブジェクトのフィールドの変更、情報のログなど)。Drool Expertフレームワークを使用してみましたが、その場合、エンドノードにつながるダイアグラム内のすべてのパスに対して長いルールを作成する必要があります。Drools Flowも、そのようなユースケース向けに構築されていないようです。オブジェクトを取得し、途中の決定に応じて、エンドノードの1つに到達します。そして再び別のオブジェクトのために。またはそれは?そのようなソリューションの例/リンクをいくつか教えてください。

アップデート:

Drools Flowの呼び出しは、次のようになります。

つまり、アプリケーションオブジェクトを取得し、そのための新しいプロセスを開始します。プロセスが終了したら(最後のアクションノードはアプリケーションを何らかの方法で変更します)、作業メモリからオブジェクトを削除し、次のプロセスを繰り返します。新しいAppオブジェクト。このソリューションについてどう思いますか?

解決策:
Drools Flowを使用することになり、非常に正常に機能しています。私の意思決定プロセスは、Drools Expertが要求するほど単純ではなく、意思決定ツリーのどこにあるかによって、データベースからオブジェクトのリストをロードし、変換し、意思決定を行い、すべてをログに記録する必要があります。私はProcessオブジェクトを使用します。これはパラメーターとしてプロセスに渡され、すべてのグローバル変数(プロセス用)と、ツリー内のさまざまなポイントで繰り返されるいくつかの便利なメソッドを格納します(Script TaskノードでのJavaコードの記述自体はあまり便利ではないため)。また、Javaを使用して意思決定を行うことになりました(mvelルールではありません)。Javaの方が高速で、制御が簡単だと思います。私が使用するすべてのオブジェクトはパラメーターとして渡され、コード内で通常のJava変数として使用されます。