Droolsチュートリアル:ルールエンジン Archi構造と図

⚡ スマートサマリー

Droolsは、 Java ビジネスロジックとアプリケーションコードを分離します。このリソースでは、ルール、Rete アルゴリズム、Drools アーキテクチャとコンポーネントについて説明します。 Eclipse プラグインの設定方法と、Hello Worldルールの例。

  • ⚙️ コア定義: よだれは JavaReteパターンマッチングアルゴリズムを使用してビジネスルールを実行する、BRMSベースのシステム。
  • 📜 ルール構造: ルールは「~ならば~する」という形式に従い、その条件がワーキングメモリ内の事実と一致する場合にのみアクションを実行します。
  • 🏗️ Archi構造: ルールはルールベースにロードされ、事実はワーキングメモリに格納され、エンジンはそれらを照合してアジェンダに沿って実行します。
  • 🔌 Eclipse セットアップ: Droolsプラグインは Eclipse jBPM配布用ZIPファイルと「新規ソフトウェアのインストール」ダイアログを通してインストールします。
  • 🔄 チェインモード: Droolsは、事実から結論へと進む順方向推論と、目標から事実へと戻る逆方向推論の両方をサポートします。

よだれチュートリアル

よだれとは何ですか?

Drools オープンソースのビジネスルール管理ソフトウェア(BRMS)で、 Java ビジネス ルール エンジン、Web オーサリング、ルール管理アプリケーション、意思決定モデルと表記モデルのランタイム サポートなど、さまざまな機能をユーザーに提供します。Rete パターン マッチング アルゴリズムの高度な実装システムを使用します。

Drools は Apache License 2.0 に基づいてリリースされ、あらゆる JVM と互換性があり、Maven Central Repository でも利用できます。

Drools ツールは、ビジネス プロセス内で見つかったロジックとデータを分離して推論するのに役立ちます。 前方および後方の連鎖推論ベースの drools ルール エンジンをサポートします。

よだれは XNUMX つの部分に分かれています。

  • オーサリング – ルール ファイルの開発が含まれます。
  • ランタイム – これには、ワーキングメモリの作成とアクティベーションの処理が含まれます。

ルールとは何ですか?

ルールは、「特定の条件が発生した場合には、いくつかのタスクを実行する」というように表現されることが多い知識の一部です。

ルールの最も重要な部分は、 を特定いたします。 一部。 一度 を特定いたします。 部分的には満足ですが、 その後 部分がトリガーされます。

構文:

When
<Condition is true>
Then
<Take desired Action>

パターンマッチング手法

パターン マッチング手法は、新しいまたは古い事実を生成ルールと比較するのに役立ちます。 これは推論エンジンによって完成されます。

Algorithms パターン マッチングに使用されるものは次のとおりです。

  • Reteアルゴリズム
  • リープアルゴリズム
  • 線形アルゴリズム
  • 治療アルゴリズム

ただし、Drools で主に使用されるアルゴリズムは Rete アルゴリズムです。

Reteアルゴリズム

Rete アルゴリズムは、プロダクション ルール システムの実装を可能にする便利なパターン マッチング アルゴリズムです。 速度を上げるためにメモリを犠牲にするのに役立ちます。 また、ノード共有の助けを借りて、特定の種類の冗長性を削減または排除します。 異なるファクトタイプ間で結合を実行する際に、部分一致を保存します。

よだれルールエンジン

よだれルールエンジン は、Drools ソフトウェアに Expert システムを実装するためのルールベースのアプローチです。 ルール エンジンは、何を行うか、どのように行うかなどの決定を支援する知識ベースのシステムであるエキスパート システムを提供します。 知識を推論に使用できる知識ベースに収集します。

Drools ツールスイート

この Drools Rule Engine チュートリアルでは、Drools Tool Suite について学びます。 Drools スイートの一部として提供される XNUMX 種類のツールを次に示します。

  • よだれガブナー: これは、Drools KnowledgeBase の一元的なリポジトリです。
  • よだれが流れる: ワークフローとビジネスプロセスを提供します。
  • よだれフュージョン: 複雑なイベント処理に使用されるツール
  • Drools エキスパートまたはルール エンジン: 推論を実行するための便利なツールです。
  • よだれプランナー: To は、NP の難しい計画問題を含む自動計画を提供します。

Drools の重要なコンポーネント

この Drools チュートリアルでは、Drools の重要なコンポーネントについて学びましょう。

Drools で使用される重要な用語は次のとおりです。

  • 事実 – ファクトは、ルールの入力として機能するデータを表します
  • ワーキングメモリ – ファクトを含むストレージ。パターン マッチングに使用されます。 変更、挿入、削除が可能です。
  • ナレッジセッション – このコンポーネントは、ルールの実行に必要なすべてのリソースを保持します。 ここでは、すべてのファクトが単一のセッションに挿入され、一致するルールが起動されます。
  • ナレッジベース – Drools エコシステム内の知識を表します。ルールが見つかるリソースの構成を保存します。
  • モジュール – これは、異なるセッションを保持できる複数のナレッジベースを保存するモジュールです

Archiよだれの構造

よだれルールエンジン Archi構造
よだれルールエンジン Archi構造

Drools アーキテクチャの動作システムは次のとおりです。

ステップ1) ルールはルール ベースにロードされ、いつでも利用できます。

ステップ2) 事実はワーキングメモリに主張され、そこで修正または再解釈される可能性がある。tracテッド。

ステップ3) 新規または既存のファクトを運用ルールと照合するプロセスはパターン マッチングと呼ばれ、ルール エンジンによって実行されます。

ステップ4) アジェンダを使用すると、競合解決戦略を利用して、競合するルールの実行順序を管理できます。

よだれの特徴

Drool の重要な機能は次のとおりです。

  • アプリケーションを動的ロジックから分離するのに役立ちます
  • 宣言型プログラミング
  • 知識の集中化
  • 速度と拡張性
  • アプリケーションからロジックを分離する
  • わかりやすいルール

Drools プラグインを追加する方法 Eclipse

この Drools チュートリアルでは、Drools プラグインを追加する方法を学びましょう Eclipse.

ステップ1) jBPM統合の「配布ZIP」をクリックします。
に行く https://www.drools.org/download/download.html jBPM統合の場合は「配布ZIP」をクリックします。ダウンロード後、tracそれをハードドライブに保存してください。

Drools プラグインを追加する Eclipse

ステップ2) 新しいソフトウェアをインストールする
In Eclipseをクリックし、「新しいソフトウェアのインストール」を選択します。

Drools プラグインを追加する Eclipse

ステップ3) 「追加」ボタンをクリックします
ソフトウェアを追加するには、「追加」ボタンをクリックします。

Drools プラグインを追加する Eclipse

ステップ4) フォルダを参照
次の画面で、「ローカル」をクリックし、フォルダー「org.drools.updatesite/」を選択し、「OK」をクリックします。

Drools プラグインを追加する Eclipse

ステップ5) 「次へ」ボタンをクリックします
インストール修復ページで、「次へ」ボタンをクリックします。

Drools プラグインを追加する Eclipse

ステップ6) 使用許諾契約に同意する
使用許諾契約に同意し、「次へ」をクリックします。

Drools プラグインを追加する Eclipse

ステップ7) リブート Eclipse
ソフトウェアがダウンロードされ、Eclipse を再起動するように求められます。

ステップ8) インストールプロセスが完了しました
In Windows > [設定] メニューに、インストールされていることを示す Drools オプションが表示されます。

Drools プラグインを追加する Eclipse

Drools プログラム Hello World の例

以下は、Hello World プログラムの Drools の例です。

package com.sample
import com.sample.DroolsTest.Message;
rule "Hello World"
 when
	m : Message( status ** Message.Hello, myMessage : message )
  then
System.out.println( myMessage );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE );
update( m );
end
 rule "GoodBye"

when
	Message( status ** Message.GOODBYE, myMessage : message )
then
System.out.println( myMessage );
end

バックワードチェーンとフォワードチェーンとは何ですか?

フォワードチェーン エンジンは事実を確認し、特定の結論を導き出します。

医療診断システムのシナリオを考えてみましょう。 患者の症状が事実として作業記憶に組み込まれれば、その患者を病気と診断するのは簡単です。

後方連鎖と前方連鎖

フォワードチェーンエンジン

逆方向連鎖エンジンには設定された目標があり、エンジンはそれを満たそうとします。

医療診断の同じシナリオを考えてみましょう。 ある病気が流行したとします。 この AI は、特定の個人がこの病気に罹患していると推定し、入手可能な情報に基づいてその診断が正しいかどうかを判断しようとすることができます。

後方連鎖と前方連鎖

バックチェーンエンジン

Drools ルール エンジンを使用する理由

Drools ルール エンジンを使用する主な理由は次のとおりです。

  • ルールは開発者にとって理解しやすく、 ビジネスアナリスト.
  • ルールは簡単に維持できます。
  • ルール エンジンは、エンジンのパフォーマンスがルールの数に依存しないという Rete アルゴリズムを使用します。
  • アプリケーションを停止せずにルールを変更および展開できます。
  • 比較的静的なコードベースからビジネス ロジックを外部化します。
  • ルールはそれほど複雑ではない形式で作成されているため、ビジネス アナリストはルールのグループを簡単に読んで検証できます。
  • ルールを使用すると、形式で実行可能な知識の倉庫を作成できます。
  • のようなツール Eclipse ルールの管理、即時応答、認証、コンテンツ サポートの取得に役立ちます。

ルールエンジンの欠点

ルール エンジンを使用する場合の欠点/短所は次のとおりです。

  • 開発者がこのプログラミング方法を理解するには多大な学習努力が必要です
  • ルール エンジンは、問題をトラブルシューティングするための安全な方法ではありません。
  • ルールエンジンの動作を理解して、より多くのメモリを消費する必要がある
  • 複雑な分岐には幅広いルールがあります。

ルールは時間の経過とともに変更される可能性があり、コードの変更によって有効になります。

よくあるご質問

はい。DroolsはApache License 2.0でリリースされており、完全に無料のオープンソースソフトウェアです。あらゆるJVM上で動作し、Maven Central Repositoryを通じて入手できるため、プロジェクトへの統合も容易です。

Droolsのルールは、when-then構造に基づいた宣言型構文であるDRL(Drools Rule Language)で記述されます。ルールは、ビジネスユーザー向けに、決定表、DMNモデル、またはドメイン固有言語を使用して作成することもできます。

ルールエンジンは、ロジックを保守しやすいルールとして外部化し、アプリケーションを再デプロイすることなく変更できるようにします。ハードコーディングされたif-elseロジックはコードベース全体に散在し、更新が難しく、条件数が増えるにつれて拡張性が低下します。

Droolsは、人間の知識をルールとして符号化することで、人工知能の古典的な分野であるエキスパートシステムを実装しています。このエンジンは、事実に基づいて推論を行い結論を導き出し、記号的AI意思決定システムと同様に、順方向および逆方向の連鎖推論をサポートしています。

はい。AIアシスタントは、平易な言語で記述された要件から深層強化学習(DRL)ルールを作成し、矛盾するルールや重複するルールを検出し、最適化を提案できます。チームは、生成されたルールを検証して、正しいビジネスロジックと信頼性の高い実行を保証します。