خوارزمية الشبكة

خوارزمية ريتي ( تُلفظ / ˈriːtiː / ري - تي ، / ˈreɪtiː / راي - تي ، ونادرًا / ˈriːt/ ريت ، / rɛˈteɪ / ري - تاي ) هي خوارزمية لمطابقة الأنماط تُستخدم لتنفيذ الأنظمة القائمة على القواعد . طُوّرت هذه الخوارزمية لتطبيق العديد من القواعد أو الأنماط بكفاءة على العديد من الكائنات ، أو الحقائق ، في قاعدة المعرفة . تُستخدم لتحديد أي من قواعد النظام يجب تفعيلها بناءً على مخزن البيانات الخاص به ، أي حقائقه. صمّم خوارزمية ريتي تشارلز إل. فورجي من جامعة كارنيجي ميلون ، ونُشرت لأول مرة في ورقة عمل عام 1974، ثم جرى تطويرها لاحقًا في أطروحته للدكتوراه عام 1979 وفي ورقة بحثية عام 1982. [ 1 ]

ملخص

قد يقوم تطبيق بسيط لنظام خبير بفحص كل قاعدة مقابل الحقائق المعروفة في قاعدة المعرفة ، وتفعيل تلك القاعدة عند الضرورة، ثم الانتقال إلى القاعدة التالية (والعودة إلى القاعدة الأولى عند الانتهاء). حتى بالنسبة لقواعد المعرفة متوسطة الحجم التي تحتوي على قواعد وحقائق، فإن هذا النهج البسيط بطيء للغاية. توفر خوارزمية Rete الأساس لتطبيق أكثر كفاءة. يبني نظام خبير قائم على Rete شبكة من العقد ، حيث تتوافق كل عقدة (باستثناء العقدة الجذرية) مع نمط يظهر في الجانب الأيسر (جزء الشرط) من القاعدة. يحدد المسار من العقدة الجذرية إلى عقدة طرفية الجانب الأيسر الكامل للقاعدة. تحتوي كل عقدة على ذاكرة للحقائق التي تحقق ذلك النمط. هذا الهيكل هو في الأساس شجرة بحث معممة . مع تأكيد حقائق جديدة أو تعديلها، تنتشر على طول الشبكة، مما يؤدي إلى إضافة تعليقات توضيحية إلى العقد عندما تتطابق تلك الحقيقة مع ذلك النمط. عندما تتسبب حقيقة أو مجموعة من الحقائق في استيفاء جميع أنماط قاعدة معينة، يتم الوصول إلى عقدة طرفية ويتم تفعيل القاعدة المقابلة.

استُخدمت لغة Rete في البداية كمحرك أساسي للغة نظام الإنتاج OPS5 ، والتي استُخدمت لبناء أنظمة مبكرة، بما في ذلك R1 لشركة Digital Equipment Corporation . وأصبحت Rete أساسًا للعديد من محركات القواعد وأنظمة الخبراء الشائعة، مثل CLIPS و Jess و Drools و IBM Operational Decision Management و BizTalk Rules Engine و Soar و Evrete . كلمة "Rete" لاتينية الأصل وتعني "شبكة" أو "مشط". وتُستخدم الكلمة نفسها في اللغة الإيطالية الحديثة بمعنى "شبكة". ويُذكر أن تشارلز فورجي قد صرّح بأنه اعتمد مصطلح "Rete" نظرًا لاستخدامه في علم التشريح لوصف شبكة من الأوعية الدموية والألياف العصبية. [ 2 ]

صُممت خوارزمية Rete لتقليل استهلاك الذاكرة مقابل زيادة السرعة. في معظم الحالات، تصل الزيادة في السرعة مقارنةً بالتطبيقات البسيطة إلى عدة مراتب (لأن أداء Rete نظريًا مستقل عن عدد القواعد في النظام). مع ذلك، في أنظمة الخبراء الضخمة جدًا، تميل خوارزمية Rete الأصلية إلى مواجهة مشاكل في استهلاك الذاكرة والخادم. ومنذ ذلك الحين، صُممت خوارزميات أخرى، مبتكرة وأخرى مبنية على Rete، تتطلب ذاكرة أقل (مثل Rete* [ 3 ] أو Collection Oriented Match [ 4 ] ).

وصف

تُقدّم خوارزمية Rete وصفًا منطقيًا مُعمّمًا لتنفيذ وظيفة مطابقة مجموعات البيانات ("الحقائق") مع قواعد الإنتاج (" القواعد ") في نظام إنتاج قائم على مطابقة الأنماط (وهو نوع من محركات القواعد ). يتكون الإنتاج من شرط واحد أو أكثر ومجموعة من الإجراءات التي يُمكن اتخاذها لكل مجموعة كاملة من الحقائق التي تُطابق الشروط. تختبر الشروط سمات الحقائق ، بما في ذلك مُحدّدات/معرّفات أنواع الحقائق. تتميز خوارزمية Rete بالخصائص الرئيسية التالية:

  • يقلل أو يزيل أنواعًا معينة من التكرار من خلال استخدام مشاركة العقد.
  • يخزن النظام التطابقات الجزئية عند إجراء عمليات الربط بين أنواع الحقائق المختلفة. وهذا بدوره يسمح لأنظمة الإنتاج بتجنب إعادة تقييم جميع الحقائق بالكامل في كل مرة تُجرى فيها تغييرات على ذاكرة العمل الخاصة بنظام الإنتاج. بدلاً من ذلك، يحتاج نظام الإنتاج فقط إلى تقييم التغييرات (الفرق) في ذاكرة العمل.
  • يسمح ذلك بإزالة عناصر الذاكرة بكفاءة عند سحب الحقائق من الذاكرة العاملة.

تُستخدم خوارزمية Rete على نطاق واسع لتنفيذ وظائف المطابقة داخل محركات مطابقة الأنماط التي تستغل دورة المطابقة والحل والتنفيذ لدعم الاستدلال والتسلسل الأمامي .

  • يوفر وسيلة للمطابقة بين العديد من العناصر، وهي ميزة مهمة عندما يجب العثور على العديد من الحلول الممكنة أو جميعها في شبكة البحث.

تُعدّ شبكات Rete رسومًا بيانية موجهة غير دورية تمثل مجموعات قواعد عالية المستوى. ويتم تمثيلها عادةً أثناء التشغيل باستخدام شبكة من الكائنات الموجودة في الذاكرة. تربط هذه الشبكات شروط القواعد (الأنماط) بالحقائق (صفوف البيانات العلائقية). تعمل شبكات Rete كنوع من معالجات الاستعلام العلائقي، حيث تُجري عمليات الإسقاط والاختيار والربط بشكل مشروط على عدد غير محدد من صفوف البيانات.

عادةً ما يقوم المحللون والمطورون بتسجيل وتحديد قواعد الإنتاج باستخدام لغة قواعد عالية المستوى. ثم تُجمع هذه القواعد في مجموعات قواعد تُترجم، غالبًا أثناء التشغيل، إلى ملف تنفيذي.

عند "تأكيد" الحقائق في الذاكرة العاملة، يُنشئ المحرك عناصر ذاكرة عاملة (WMEs) لكل حقيقة. الحقائق عبارة عن مجموعات بيانات ، وبالتالي قد تحتوي على عدد غير محدد من عناصر البيانات. قد يحتوي كل عنصر ذاكرة عاملة على مجموعة بيانات كاملة، أو بدلاً من ذلك، قد تُمثل كل حقيقة بمجموعة من عناصر الذاكرة العاملة، حيث يحتوي كل عنصر ذاكرة عاملة على مجموعة بيانات ذات طول ثابت. في هذه الحالة، تكون مجموعات البيانات عادةً ثلاثية (مجموعات من 3 عناصر).

يدخل كل عنصر WME إلى شبكة Rete من عقدة جذرية واحدة. تقوم العقدة الجذرية بتمرير كل عنصر WME إلى عقدها الفرعية، ويمكن بعد ذلك نشر كل عنصر WME عبر الشبكة، وربما يتم تخزينه في ذاكرات وسيطة، حتى يصل إلى عقدة نهائية.

شبكة ألفا

يشكل الجانب الأيسر ( ألفا ) من مخطط العقد شبكة تمييز مسؤولة عن اختيار وحدات إدارة البيانات (WMEs) الفردية بناءً على اختبارات شرطية بسيطة تُطابق سمات وحدات إدارة البيانات مع قيم ثابتة. قد تُجري العقد في شبكة التمييز أيضًا اختبارات تُقارن سمتين أو أكثر لنفس وحدة إدارة البيانات. إذا تمت مطابقة وحدة إدارة البيانات بنجاح مع الشروط التي تُمثلها إحدى العقد، يتم تمريرها إلى العقدة التالية. في معظم المحركات، تُستخدم العقد الفرعية المباشرة للعقدة الجذرية لاختبار مُعرّف الكيان أو نوع الحقيقة لكل وحدة إدارة بيانات. وبالتالي، فإن جميع وحدات إدارة البيانات التي تُمثل نفس نوع الكيان عادةً ما تجتاز فرعًا مُحددًا من العقد في شبكة التمييز.

في شبكة التمييز، ينتهي كل فرع من فروع عقد ألفا (وتُسمى أيضًا عقد الإدخال الواحد) عند ذاكرة تُسمى ذاكرة ألفا . تخزن هذه الذاكرة مجموعات من عناصر الذاكرة العاملة (WMEs) التي تُطابق كل شرط في كل عقدة ضمن فرع معين. أما عناصر الذاكرة العاملة التي لا تُطابق شرطًا واحدًا على الأقل في الفرع، فلا تُخزَّن في ذاكرة ألفا المقابلة. وقد تتفرع فروع عقد ألفا لتقليل تكرار الشروط.

شبكة بيتا

يُعنى الجانب "الأيمن" ( بيتا ) من الرسم البياني بشكل أساسي بعمليات الربط بين وحدات إدارة البيانات المختلفة. وهو اختياري، ولا يُضاف إلا عند الحاجة. ويتكون من عقدتين، لكل منهما مدخل "أيسر" ومدخل "أيمن". تُرسل كل عقدة بيتا مخرجاتها إلى ذاكرة بيتا .

في وصف شبكة Rete، يشيع استخدام مصطلح "تمرير الرموز" ضمن الشبكة التجريبية. مع ذلك، سنصف في هذه المقالة انتشار البيانات باستخدام قوائم WME بدلاً من الرموز، وذلك مراعاةً لخيارات التنفيذ المختلفة والغرض الأساسي من الرموز واستخدامها. عند مرور أي قائمة WME عبر الشبكة التجريبية، قد تُضاف إليها عناصر WME جديدة، ويمكن تخزين القائمة في ذاكرة تجريبية. تمثل قائمة WME في الذاكرة التجريبية تطابقًا جزئيًا مع شروط عملية إنتاج معينة.

تمثل قوائم WME التي تصل إلى نهاية فرع من عقد بيتا تطابقًا تامًا لعملية إنتاج واحدة، وتُمرر إلى العقد الطرفية. تُسمى هذه العقد أحيانًا بالعقد p ، حيث يرمز الحرف "p" إلى عملية الإنتاج . تمثل كل عقدة طرفية عملية إنتاج واحدة، وتمثل كل قائمة WME تصل إلى عقدة طرفية مجموعة كاملة من قوائم WME المطابقة لشروط تلك العملية. لكل قائمة WME تتلقاها، تُفعّل عقدة الإنتاج نسخة إنتاج جديدة في "جدول الأعمال". تُنفذ جداول الأعمال عادةً على شكل طوابير ذات أولوية .

تُجري عقد بيتا عادةً عمليات ربط بين قوائم عناصر إدارة الذاكرة (WME) المخزنة في ذاكرة بيتا وعناصر إدارة الذاكرة الفردية المخزنة في ذاكرة ألفا. ترتبط كل عقدة بيتا بذاكرتي إدخال. تحتوي ذاكرة ألفا على بيانات إدارة الذاكرة (WM) وتُفعّل عقدة بيتا "من اليمين" في كل مرة تُخزّن فيها عنصر إدارة ذاكرة جديد. بينما تحتوي ذاكرة بيتا على قوائم عناصر إدارة الذاكرة وتُفعّل عقدة بيتا "من اليسار" في كل مرة تُخزّن فيها قائمة عناصر إدارة ذاكرة جديدة. عند تفعيل عقدة الربط من اليمين، تُقارن سمة واحدة أو أكثر من سمات عنصر إدارة الذاكرة المُخزّن حديثًا من ذاكرة ألفا المُدخلة مع سمات عناصر إدارة الذاكرة المحددة في كل قائمة عناصر إدارة ذاكرة موجودة في ذاكرة بيتا المُدخلة. عند تفعيل عقدة الربط من اليسار، تجتاز قائمة عناصر إدارة الذاكرة المُخزّنة حديثًا في ذاكرة بيتا، وتسترجع قيم سمات عناصر إدارة الذاكرة المُعطاة. ثم تُقارن هذه القيم مع قيم سمات كل عنصر إدارة ذاكرة في ذاكرة ألفا.

تُخرج كل عقدة تجريبية قوائم WME التي تُخزن إما في ذاكرة تجريبية أو تُرسل مباشرةً إلى عقدة طرفية. تُخزن قوائم WME في الذاكرة التجريبية كلما قام المحرك بتنفيذ عمليات تنشيط إضافية على العقد التجريبية اللاحقة.

منطقيًا، تُعدّ عقدة بيتا في رأس فرع من عقد بيتا حالةً خاصة، لأنها لا تستقبل أي مدخلات من أي ذاكرة بيتا أعلى في الشبكة. وتتعامل المحركات المختلفة مع هذه المسألة بطرقٍ متباينة. فبعضها يستخدم عقدًا وسيطة متخصصة لربط ذاكرات ألفا بالمدخل الأيسر لعقد بيتا. بينما تسمح محركات أخرى لعقد بيتا باستقبال المدخلات مباشرةً من ذاكرتي ألفا، مع اعتبار إحداهما مدخلًا "أيسر" والأخرى مدخلًا "يمينيًا". وفي كلتا الحالتين، تستقبل عقد بيتا "الرأسية" مدخلاتها من ذاكرتي ألفا.

للتخلص من تكرار العقد، يمكن استخدام ذاكرة ألفا أو بيتا واحدة لتفعيل عدة عقد بيتا. بالإضافة إلى عقد الربط، قد تحتوي شبكة بيتا على أنواع عقد إضافية، بعضها موضح أدناه. إذا لم تحتوي شبكة Rete على شبكة بيتا، فإن عقد ألفا تُرسل الرموز المميزة، التي يحتوي كل منها على WME واحد، مباشرةً إلى عقد p. في هذه الحالة، قد لا تكون هناك حاجة لتخزين WMEs في ذاكرات ألفا.

حل النزاعات

خلال أي دورة مطابقة-حل-تنفيذ، يبحث المحرك عن جميع التطابقات الممكنة للحقائق المُسجلة حاليًا في الذاكرة العاملة. بمجرد العثور على جميع التطابقات الحالية، وتفعيل حالات الإنتاج المقابلة لها في جدول الأعمال، يُحدد المحرك ترتيبًا لتنفيذ حالات الإنتاج. يُسمى هذا حل التعارض ، وتُسمى قائمة حالات الإنتاج المُفعّلة مجموعة التعارض . قد يعتمد الترتيب على أولوية القاعدة ( البروز )، أو ترتيب القواعد، أو وقت تسجيل الحقائق في كل حالة في الذاكرة العاملة، أو تعقيد كل إنتاج، أو معايير أخرى. تسمح العديد من المحركات لمطوري القواعد بالاختيار بين استراتيجيات مختلفة لحل التعارض أو ربط مجموعة مختارة من الاستراتيجيات.

لا يُعرَّف حل النزاعات كجزء من خوارزمية Rete، ولكنه يُستخدم بالتوازي معها. بعض أنظمة الإنتاج المتخصصة لا تُجري عملية حل النزاعات.

تنفيذ الإنتاج

بعد إتمام عملية حل التعارضات، يقوم المحرك الآن بتشغيل أول نسخة إنتاجية، مُنفذاً قائمة من الإجراءات المرتبطة بها. وتؤثر هذه الإجراءات على البيانات المُمثلة في قائمة WME الخاصة بنسخة الإنتاج.

بشكل افتراضي، سيستمر المحرك في تشغيل كل نسخة إنتاجية بالتسلسل حتى يتم تشغيل جميع النسخ الإنتاجية. سيتم تشغيل كل نسخة إنتاجية مرة واحدة فقط، على الأكثر، خلال أي دورة مطابقة-حل-تنفيذ. تُسمى هذه الخاصية بالانكسار . ومع ذلك، يمكن مقاطعة تسلسل تشغيل النسخ الإنتاجية في أي مرحلة عن طريق إجراء تغييرات على ذاكرة العمل. يمكن أن تحتوي إجراءات القاعدة على تعليمات لتأكيد أو سحب وحدات إدارة ذاكرة العمل (WMEs) من ذاكرة العمل الخاصة بالمحرك. في كل مرة تُجري فيها أي نسخة إنتاجية واحدة تغييرًا واحدًا أو أكثر من هذه التغييرات، يدخل المحرك فورًا في دورة مطابقة-حل-تنفيذ جديدة. يتضمن ذلك "تحديثات" لوحدات إدارة ذاكرة العمل الموجودة حاليًا في ذاكرة العمل. يتم تمثيل التحديثات بسحب وحدة إدارة ذاكرة العمل ثم إعادة تأكيدها. يقوم المحرك بمطابقة البيانات المتغيرة، والتي بدورها قد تؤدي إلى تغييرات في قائمة النسخ الإنتاجية على جدول الأعمال. وبالتالي، بعد تنفيذ الإجراءات الخاصة بأي نسخة إنتاجية محددة، قد يتم إلغاء تنشيط النسخ التي تم تنشيطها مسبقًا وإزالتها من جدول الأعمال، وقد يتم تنشيط نسخ جديدة.

كجزء من دورة المطابقة والحل والتنفيذ الجديدة، يقوم المحرك بحل التعارضات في جدول الأعمال، ثم ينفذ أول حالة حالية. ويستمر المحرك في تشغيل حالات الإنتاج، والدخول في دورات مطابقة وحل وتنفيذ جديدة، حتى لا تبقى أي حالات إنتاج أخرى في جدول الأعمال. عند هذه النقطة، يُعتبر محرك القواعد قد أنجز عمله، ويتوقف.

تدعم بعض المحركات استراتيجيات انكسار متقدمة حيث لا يتم إعادة تنفيذ بعض حالات الإنتاج التي تم تنفيذها في دورة سابقة في الدورة الجديدة، على الرغم من أنها قد لا تزال موجودة على جدول الأعمال.

من الممكن أن يدخل المحرك في حلقات لا نهائية لا تصل فيها قائمة المهام إلى حالة الفراغ. لهذا السبب، تدعم معظم المحركات أفعال "إيقاف" صريحة يمكن استدعاؤها من قوائم إجراءات الإنتاج. كما قد توفر هذه المحركات خاصية الكشف التلقائي عن الحلقات ، حيث يتم إيقاف الحلقات اللانهائية تلقائيًا بعد عدد محدد من التكرارات. تدعم بعض المحركات نموذجًا لا يتوقف فيه المحرك عند فراغ قائمة المهام، بل يدخل في حالة انتظار حتى يتم تأكيد حقائق جديدة خارجيًا.

فيما يتعلق بحل التعارضات، فإن تشغيل نسخ الإنتاج المُفعّلة ليس من خصائص خوارزمية Rete. مع ذلك، يُعدّ هذا الأمر ميزة أساسية في المحركات التي تستخدم شبكات Rete. بعض التحسينات التي توفرها شبكات Rete لا تُفيد إلا في الحالات التي يُجري فيها المحرك دورات متعددة من المطابقة والحل والتنفيذ.

التكميمات الوجودية والعالمية

تُستخدم الاختبارات الشرطية عادةً لإجراء عمليات الاختيار والربط على الصفوف الفردية. مع ذلك، من خلال تطبيق أنواع عقد بيتا إضافية، يُمكن لشبكات Rete إجراء عمليات التحديد الكمي . يتضمن التحديد الكمي الوجودي اختبار وجود مجموعة واحدة على الأقل من وحدات الذاكرة العاملة المتطابقة (WMEs). أما التحديد الكمي الشامل فيتضمن اختبار استيفاء مجموعة كاملة من وحدات الذاكرة العاملة لشرط مُحدد. قد يختبر أحد أشكال التحديد الكمي الشامل استيفاء عدد مُحدد من وحدات الذاكرة العاملة، مُستمدة من مجموعة منها، لمعايير مُحددة. قد يكون ذلك من خلال اختبار عدد مُحدد أو حد أدنى لعدد التطابقات.

لا يُطبَّق التحديد الكمي بشكلٍ شامل في محركات Rete، وعند دعمه، توجد عدة اختلافات. يُعدّ أحد أنواع التحديد الكمي الوجودي، المعروف بالنفي، مدعومًا على نطاق واسع، وإن لم يكن عالميًا، وقد وُصِفَ في وثائق أساسية. تتضمن الشروط والروابط المنفية وجوديًا استخدام عُقد بيتا مُتخصصة تختبر عدم وجود عناصر WME مُطابقة أو مجموعات من عناصر WME. تنشر هذه العُقد قوائم WME فقط عند عدم العثور على أي تطابق. يختلف التنفيذ الدقيق للنفي. في أحد الأساليب، تحتفظ العُقدة بعدّ بسيط لكل قائمة WME تتلقاها من مُدخلها الأيسر. يُحدد هذا العدّ عدد التطابقات التي تم العثور عليها مع عناصر WME المُستلمة من المُدخل الأيمن. تنشر العُقدة قوائم WME التي يكون عدّها صفرًا فقط. في أسلوب آخر، تحتفظ العُقدة بذاكرة إضافية لكل قائمة WME مُستلمة من المُدخل الأيسر. تُعدّ هذه الذواكر شكلًا من أشكال ذاكرة بيتا، وتُخزّن قوائم WME لكل تطابق مع عناصر WME المُستلمة من المُدخل الأيمن. إذا لم تحتوي قائمة WME على أي قوائم WME أخرى في ذاكرتها، يتم نشرها عبر الشبكة. في هذا النهج، تقوم عقد النفي عادةً بتنشيط عقد بيتا إضافية مباشرةً، بدلاً من تخزين مخرجاتها في ذاكرة بيتا إضافية. توفر عقد النفي شكلاً من أشكال " النفي كفشل ".

عند إجراء تغييرات على ذاكرة العمل، قد تتطابق قائمة WME التي لم تكن تتطابق سابقًا مع أي WMEs مع WMEs جديدة. في هذه الحالة، يجب سحب قائمة WME المُعمَّمة وجميع نسخها الموسعة من ذاكرات بيتا الموجودة في أسفل الشبكة. يُستخدم النهج الثاني المذكور أعلاه غالبًا لدعم آليات فعالة لإزالة قوائم WME. عند إزالة قوائم WME، يتم تعطيل أي مثيلات إنتاجية مقابلة وإزالتها من جدول الأعمال.

يمكن إجراء التحديد الكمي الوجودي من خلال دمج عقدتي نفي بيتا. يُمثل هذا دلالات النفي المزدوج (على سبيل المثال، "إذا لم يكن هناك أي عناصر WME مطابقة، فإن..."). هذا نهج شائع تتبعه العديد من أنظمة الإنتاج.

فهرسة الذاكرة

لا تفرض خوارزمية Rete أي منهجية محددة لفهرسة الذاكرة العاملة. مع ذلك، توفر معظم أنظمة الإنتاج الحديثة آليات فهرسة. في بعض الحالات، تُفهرس ذاكرات بيتا فقط، بينما في حالات أخرى، تُستخدم الفهرسة لكل من ذاكرات ألفا وبيتا. تُعد استراتيجية الفهرسة الجيدة عاملاً رئيسياً في تحديد الأداء العام لنظام الإنتاج، خاصةً عند تنفيذ مجموعات قواعد تُؤدي إلى مطابقة أنماط عالية التوافق (أي الاستخدام المكثف لعقد ربط بيتا)، أو، بالنسبة لبعض المحركات، عند تنفيذ مجموعات قواعد تُجري عددًا كبيرًا من عمليات سحب WME خلال دورات مطابقة-حل-تنفيذ متعددة. غالبًا ما تُنفذ الذاكرات باستخدام تركيبات من جداول التجزئة، وتُستخدم قيم التجزئة لإجراء عمليات ربط شرطية على مجموعات فرعية من قوائم WME وWMEs، بدلاً من محتويات الذاكرات بأكملها. وهذا بدوره يُقلل بشكل كبير من عدد عمليات التقييم التي تُجريها شبكة Rete.

إزالة شركات إدارة الثروات العالمية وقوائمها

عند سحب عنصر إدارة الذاكرة العاملة (WME) من الذاكرة العاملة، يجب إزالته من جميع ذاكرات ألفا التي يُخزَّن فيها. إضافةً إلى ذلك، يجب إزالة قوائم عناصر إدارة الذاكرة العاملة التي تحتوي على هذا العنصر من ذاكرات بيتا، كما يجب تعطيل مثيلات الإنتاج المُفعَّلة لهذه القوائم وإزالتها من جدول الأعمال. توجد عدة طرق لتنفيذ ذلك، بما في ذلك الإزالة القائمة على الشجرة والإزالة القائمة على إعادة المطابقة. يمكن استخدام فهرسة الذاكرة في بعض الحالات لتحسين عملية الإزالة.

التعامل مع الشروط المحددة

عند تعريف قواعد الإنتاج في مجموعة قواعد، من الشائع السماح بتجميع الشروط باستخدام رابط "أو ". في العديد من أنظمة الإنتاج، يُعالج هذا الأمر بتفسير قاعدة إنتاج واحدة تحتوي على أنماط متعددة مرتبطة برابط "أو" على أنها مكافئة لقواعد إنتاج متعددة. تحتوي شبكة Rete الناتجة على مجموعات من العقد الطرفية التي تمثل، مجتمعة، قواعد إنتاج واحدة. يمنع هذا النهج أي شكل من أشكال اختصار شروط "أو". كما يمكن أن يؤدي، في بعض الحالات، إلى تفعيل نسخ مكررة من قواعد الإنتاج في جدول الأعمال عندما تتطابق نفس مجموعة عناصر إدارة العمليات (WMEs) مع قواعد إنتاج داخلية متعددة. توفر بعض المحركات خاصية إزالة التكرار من جدول الأعمال لمعالجة هذه المشكلة.

رسم بياني

يوضح الرسم التخطيطي التالي بنية شبكة Rete الأساسية، ويُظهر الارتباطات بين أنواع العقد المختلفة والذاكرة.

يوضح الشكل الأساسي للشبكة.
  • تستخدم معظم التطبيقات عقد النوع لإجراء المستوى الأول من الاختيار على عناصر ذاكرة العمل الخاصة بالصفوف. يمكن اعتبار عقد النوع بمثابة عقد اختيار متخصصة، حيث تميز بين أنواع علاقات الصفوف المختلفة.
  • لا يوضح الرسم التخطيطي استخدام أنواع العقد المتخصصة مثل عقد الربط المنفي. تُطبّق بعض المحركات عدة تخصصات مختلفة للعقد بهدف توسيع الوظائف وتحقيق أقصى قدر من التحسين.
  • يُقدّم المخطط عرضًا منطقيًا لشبكة Rete. قد تختلف التطبيقات في تفاصيلها المادية. على وجه الخصوص، يُظهر المخطط مدخلات وهمية تُفعّل التنشيطات الصحيحة في بداية فروع عقدة بيتا. قد تُطبّق المحركات أساليب أخرى، مثل المحولات التي تسمح لذاكرات ألفا بتنفيذ التنشيطات الصحيحة مباشرةً.
  • لا يوضح الرسم التخطيطي جميع إمكانيات مشاركة العقد.

للحصول على وصف أكثر تفصيلاً وشمولاً لخوارزمية Rete، انظر الفصل 2 من كتاب مطابقة الإنتاج لأنظمة التعلم الكبيرة لروبرت دورينبوس (انظر الرابط أدناه).

البدائل

شبكة ألفا

يتمثل أحد البدائل الممكنة في إضافة ذاكرة إضافية لكل عقدة وسيطة في شبكة التمييز. يزيد هذا من الحمل الزائد على الشبكة، ولكنه قد يكون له مزايا في الحالات التي تُضاف فيها القواعد أو تُحذف منها ديناميكيًا، مما يُسهّل تغيير بنية شبكة التمييز ديناميكيًا.

يصف دورنبوس [ 5 ] تطبيقًا بديلًا. في هذه الحالة، تُستبدل شبكة التمييز بمجموعة من الذاكرات وفهرس. يمكن تنفيذ الفهرس باستخدام جدول تجزئة . تحتوي كل ذاكرة على عناصر WME التي تطابق نمطًا شرطيًا واحدًا، ويُستخدم الفهرس للإشارة إلى الذاكرات من خلال نمطها. هذا الأسلوب عملي فقط عندما تمثل عناصر WME صفوفًا ثابتة الطول، ويكون طول كل صف قصيرًا (مثل الصفوف الثلاثية). بالإضافة إلى ذلك، ينطبق هذا الأسلوب فقط على الأنماط الشرطية التي تُجري اختبارات المساواة مقابل قيم ثابتة . عندما يدخل عنصر WME إلى شبكة Rete، يُستخدم الفهرس لتحديد مجموعة من الذاكرات التي يتطابق نمطها الشرطي مع سمات عنصر WME، ثم يُضاف عنصر WME مباشرةً إلى كل من هذه الذاكرات. في حد ذاته، لا يحتوي هذا التطبيق على عقد ذات مدخل واحد. ومع ذلك، من أجل تنفيذ اختبارات عدم المساواة، قد تحتوي شبكة Rete على شبكات إضافية ذات عقد ذات مدخل واحد يتم من خلالها تمرير عناصر WME قبل وضعها في الذاكرة. بدلاً من ذلك، يمكن إجراء اختبارات عدم المساواة في شبكة بيتا الموضحة أدناه.

شبكة بيتا

يتمثل أحد الأساليب الشائعة في إنشاء قوائم مرتبطة من الرموز، حيث يحتوي كل رمز على عنصر WME واحد. في هذه الحالة، تُمثَّل قوائم عناصر WME للمطابقة الجزئية بقائمة الرموز المرتبطة. قد يكون هذا الأسلوب أفضل لأنه يُغني عن نسخ قوائم عناصر WME من رمز إلى آخر. بدلاً من ذلك، تحتاج عقدة بيتا فقط إلى إنشاء رمز جديد يحتوي على عنصر WME الذي ترغب في إضافته إلى قائمة المطابقة الجزئية، ثم ربط الرمز الجديد برمز أب مُخزَّن في ذاكرة بيتا المُدخلة. يُشكِّل الرمز الجديد الآن رأس قائمة الرموز، ويُخزَّن في ذاكرة بيتا المُخرَجة.

تعالج عقد بيتا الرموز المميزة. الرمز المميز هو وحدة تخزين داخل الذاكرة، ووحدة تبادل بين الذاكرات والعقد. في العديد من التطبيقات، تُضاف الرموز المميزة إلى ذاكرات ألفا حيث تُستخدم لتخزين وحدات WME الفردية. ثم تُمرر هذه الرموز المميزة إلى شبكة بيتا.

تؤدي كل عقدة تجريبية وظيفتها، ونتيجةً لذلك، قد تُنشئ رموزًا جديدة لحفظ قائمة من عناصر WME التي تُمثل تطابقًا جزئيًا. تُخزَّن هذه الرموز الموسعة في ذاكرة العقد التجريبية، وتُمرَّر إلى العقد التجريبية اللاحقة. في هذه الحالة، تُمرِّر العقد التجريبية عادةً قوائم عناصر WME عبر الشبكة التجريبية عن طريق نسخ قوائم WME الموجودة من كل رمز مُستَلَم إلى رموز جديدة، ثم إضافة المزيد من عناصر WME إلى القوائم نتيجةً لعملية ضم أو أي إجراء آخر. تُخزَّن الرموز الجديدة بعد ذلك في ذاكرة الإخراج.

اعتبارات متنوعة

على الرغم من أن خوارزمية Rete لا تُعرّف ذلك، إلا أن بعض المحركات توفر وظائف إضافية لدعم تحكم أكبر في الحفاظ على صحة النتائج . على سبيل المثال، عند العثور على تطابق لإحدى قواعد الإنتاج، قد يؤدي ذلك إلى تأكيد قواعد WME جديدة، والتي بدورها تُطابق شروط قاعدة إنتاج أخرى. إذا تسبب تغيير لاحق في ذاكرة العمل في جعل التطابق الأول غير صالح، فقد يعني ذلك أن التطابق الثاني غير صالح أيضًا. لا تُعرّف خوارزمية Rete أي آلية لتحديد هذه التبعيات المنطقية للحقيقة ومعالجتها تلقائيًا. مع ذلك، تدعم بعض المحركات وظائف إضافية يُمكن من خلالها الحفاظ على تبعيات الحقيقة تلقائيًا. في هذه الحالة، قد يؤدي سحب قاعدة WME واحدة إلى السحب التلقائي لقواعد WME إضافية للحفاظ على تأكيدات الحقيقة المنطقية.

لا تُحدد خوارزمية Rete أي منهجية للتبرير. يُشير التبرير إلى الآليات الشائعة في أنظمة الخبراء وأنظمة اتخاذ القرار، حيث يُبلغ النظام، في أبسط صوره، عن كل قرار داخلي استُخدم للوصول إلى استنتاج نهائي. على سبيل المثال، قد يُبرر نظام خبير استنتاجًا بأن حيوانًا ما هو فيل من خلال الإبلاغ عن أنه كبير الحجم، رمادي اللون، وله آذان كبيرة، وخرطوم، وأنياب. تُوفر بعض المحركات أنظمة تبرير مُدمجة بالتزامن مع تطبيقها لخوارزمية Rete.

لا تُقدّم هذه المقالة وصفًا شاملاً لكلّ تنويعات أو امتدادات خوارزمية Rete الممكنة، إذ توجد اعتبارات وابتكارات أخرى. على سبيل المثال، قد تُوفّر المُحرّكات دعمًا مُتخصّصًا ضمن شبكة Rete لتطبيق معالجة قواعد مُطابقة الأنماط على أنواع ومصادر بيانات مُحدّدة، مثل الكائنات البرمجية ، وبيانات XML ، وجداول البيانات العلائقية . مثال آخر يتعلّق بإمكانيات ختم الوقت الإضافية التي تُوفّرها العديد من المُحرّكات لكلّ WME يدخل شبكة Rete، واستخدام هذه الطوابع الزمنية بالتزامن مع استراتيجيات حلّ التعارضات. تُظهر المُحرّكات تباينًا كبيرًا في طريقة السماح بالوصول البرمجي إلى المُحرّك وذاكرته العاملة، وقد تُوسّع نموذج Rete الأساسي لدعم أشكال المعالجة المتوازية والموزّعة.

التحسين والأداء

تم تحديد ووصف العديد من التحسينات لـ Rete في الأدبيات الأكاديمية. مع ذلك، فإن العديد منها لا ينطبق إلا على سيناريوهات محددة للغاية، وبالتالي غالبًا ما يكون تطبيقه محدودًا أو معدومًا في محرك قواعد عام. إضافةً إلى ذلك، تم تطوير خوارزميات بديلة مثل TREAT، التي طورها دانيال ب. ميرانكر [ 6 ] ، وLEAPS، وDeTI (الاستدلال في وقت التصميم)، والتي قد توفر تحسينات إضافية في الأداء.

تُعدّ خوارزمية Rete مناسبةً للسيناريوهات التي تستخدم الاستدلال الأمامي و"الاستنتاج" لحساب حقائق جديدة من حقائق موجودة، أو لتصفية الحقائق واستبعادها للوصول إلى استنتاج ما. كما تُستغلّ كآلية فعّالة نسبيًا لإجراء تقييمات تركيبية معقدة للحقائق، حيث يتطلب الأمر إجراء عدد كبير من عمليات الربط بين مجموعات الحقائق. قد تكون هناك طرق أخرى لتقييم القواعد، مثل استخدام أشجار القرار أو تطبيق المحركات التسلسلية، أكثر ملاءمةً للسيناريوهات البسيطة، وينبغي أخذها في الاعتبار كبدائل محتملة.

يعتمد أداء Rete بشكل كبير على خيارات التنفيذ (بغض النظر عن بنية الشبكة )، ومنها استخدام جداول التجزئة الذي يُحسّن الأداء بشكل ملحوظ. معظم معايير الأداء والمقارنات المتاحة على الإنترنت متحيزة بطريقة أو بأخرى. ومن الأمثلة الشائعة على هذا التحيز، والمقارنات غير العادلة: 1) استخدام مسائل بسيطة مثل مثالَي Manners وWaltz؛ هذه الأمثلة مفيدة لتقدير خصائص محددة للتنفيذ، لكنها قد لا تعكس الأداء الحقيقي في التطبيقات المعقدة؛ 2) استخدام تنفيذ قديم؛ على سبيل المثال، تقارن المراجع في القسمين التاليين (Rete II وRete-NT) بعض المنتجات التجارية بإصدارات قديمة تمامًا من CLIPS، وتدّعي أن المنتجات التجارية أسرع بكثير من CLIPS؛ وهذا يتجاهل أن CLIPS 6.30 (مع إدخال جداول التجزئة كما في Rete II) أسرع بكثير من الإصدار المستخدم في المقارنات (CLIPS 6.04).

المتغيرات

ريت 2

في ثمانينيات القرن العشرين، طوّر تشارلز فورجي خوارزميةً مُطوّرةً لخوارزمية Rete، أطلق عليها اسم Rete II . [ 7 ] على عكس خوارزمية Rete الأصلية (المتاحة للعموم)، لم تُكشف هذه الخوارزمية. تُقدّم Rete II أداءً أفضل في حلّ المسائل الأكثر تعقيدًا (بفارق يصل إلى عدة مراتب [ 8 ] )، وقد طُبّقت رسميًا في CLIPS/R2، وهي لغة برمجة C/++، وفي OPSJ، وهي لغة برمجة Java، في عام 1998. تُحسّن Rete II الأداء بنسبة 100 إلى 1 تقريبًا في المسائل الأكثر تعقيدًا، كما أظهرت معايير شركة KnowledgeBased Systems Corporation [ 9 ] .

يمكن تمييز Rete II بمجالين للتحسين؛ تحسينات محددة تتعلق بالأداء العام لشبكة Rete (بما في ذلك استخدام ذاكرة التجزئة لزيادة الأداء مع مجموعات البيانات الأكبر حجمًا)، وإضافة خوارزمية استدلال عكسي مصممة خصيصًا للعمل على شبكة Rete. ويمكن لخوارزمية الاستدلال العكسي وحدها أن تفسر معظم التغييرات في معايير الأداء المتعلقة بمقارنة Rete مع Rete II. يتم تطبيق Rete II في المنتج التجاري Advisor من FICO، والذي كان يُعرف سابقًا باسم Fair Isaac [ 10 ].

يضيف برنامج Jess (على الأقل الإصدارات 5.0 وما بعدها) أيضًا خوارزمية استدلال عكسي تجارية فوق شبكة Rete، ولكن لا يمكن القول إنه ينفذ Rete II بشكل كامل، ويرجع ذلك جزئيًا إلى حقيقة عدم توفر مواصفات كاملة بشكل عام.

الشبكة الثالثة

في أوائل العقد الأول من الألفية الثانية، طوّر تشارلز فورجي محرك Rete III بالتعاون مع مهندسي شركة FICO. خوارزمية Rete III، وهي ليست Rete-NT، علامة تجارية مسجلة لشركة FICO لمحرك Rete II، وتُطبّق كجزء من محرك FICO Advisor. وهي في الأساس محرك Rete II مزود بواجهة برمجة تطبيقات (API) تتيح الوصول إلى محرك Advisor، لأن محرك Advisor قادر على الوصول إلى منتجات FICO الأخرى. [ 11 ]

ريت-إن تي

في عام 2010، طوّرت شركة فورجي جيلاً جديداً من خوارزمية ريت. وفي اختبار معياري أجرته شركة إنفوورلد ، اعتُبرت الخوارزمية أسرع بـ 500 مرة من خوارزمية ريت الأصلية، وأسرع بـ 10 مرات من سابقتها، ريت 2. [ 12 ] وقد تم ترخيص هذه الخوارزمية الآن لشركة سباركلينج لوجيك، التي انضمت إليها فورجي كمستثمر ومستشار استراتيجي، [ 13 ] [ 14 ] لتكون محرك الاستدلال لمنتج سمارتس.

ريت-أو أو

بما أن Rete يهدف إلى دعم منطق الرتبة الأولى (أي عبارات if-then-else )، فإن Rete-OO [ 15 ] يهدف إلى توفير نظام قائم على القواعد يدعم حالات عدم اليقين (حيث تكون المعلومات اللازمة لاتخاذ القرار مفقودة أو غير دقيقة). وفقًا لاقتراح المؤلف، يمكن تحسين قاعدة " إذا كان هناك خطر، فأطلق إنذارًا " لتصبح مثل " بالنظر إلى احتمال وجود خطر، سيكون هناك احتمال معين لسماع إنذار " أو حتى " كلما زاد الخطر، زاد صوت الإنذار ". ولتحقيق ذلك، يتم توسيع لغة Drools (التي تُنفذ خوارزمية Rete بالفعل) لدعم المنطق الاحتمالي ، مثل المنطق الضبابي والشبكات البايزية .

انظر أيضاً

مراجع

  1. تشارلز، فورجي (1982). "ريتي: خوارزمية سريعة لمشكلة مطابقة أنماط متعددة/كائنات متعددة". الذكاء الاصطناعي . 19 : 17-37 . doi : 10.1016/0004-3702(82)90020-0 .
  2. ^ “تم إزالة الغموض عن خوارزمية Rete! – الجزء الأول” بقلم كارول آن ماتينيون
  3. إيان رايت؛ جيمس مارشال. "نواة تنفيذ RC++: RETE*، وهي لغة Rete أسرع مع TREAT كحالة خاصة" (ملف PDF) . مؤرشف من الأصل (ملف PDF) بتاريخ 25 يوليو 2004. تم الاطلاع عليه بتاريخ 13 سبتمبر 2013 .
  4. أنوراغ أشاريا؛ ميليند تامبي (1993). "المطابقة الموجهة نحو المجموعة" (ملف PDF) . وقائع المؤتمر الدولي الثاني لإدارة المعلومات والمعرفة - CIKM '93 . وقائع المؤتمر الدولي الثاني لإدارة المعلومات والمعرفة CIKM '93. الصفحات 516-526 . doi : 10.1145/170088.170411 . ISBN  0897916263. S2CID 5159932 . مؤرشف من الأصل (PDF) بتاريخ 2012-03-18. 
  5. مطابقة الإنتاج لأنظمة التعلم الكبيرة من مجموعة التقارير الفنية لكلية علوم الحاسوب، جامعة كارنيجي ميلون
  6. http://dl.acm.org/citation.cfm?id=39946 "TREAT: خوارزمية مطابقة جديدة وفعالة لأنظمة إنتاج الذكاء الاصطناعي"
  7. RETE2 من شركة Production Systems Technologies
  8. تقييم أداء CLIPS/R2 من تقنيات أنظمة الإنتاج
  9. KBSC
  10. "ما هو نظام Rete III؟ - مدونة إدارة القرارات" . مؤرشف من الأصل بتاريخ 2014-08-08 . تم الاطلاع عليه بتاريخ 2014-08-05 .
  11. "ما هو نظام Rete III؟ - مدونة إدارة القرارات" . مؤرشف من الأصل بتاريخ 2014-08-08 . تم الاطلاع عليه بتاريخ 2014-08-05 .
  12. أوين، جيمس (2010-09-20). "أسرع محرك قواعد في العالم | أنظمة إدارة قواعد الأعمال" . إنفوورلد . تم الاسترجاع في 2012-04-07 .
  13. «رسميًا، انضم الدكتور تشارلز فورجي إلى شركة سباركلينج لوجيك كمستشار استراتيجي» . PR.com. 31 أكتوبر 2011. تم الاطلاع عليه بتاريخ 7 أبريل 2012 .
  14. "الدكتور تشارلز فورجي، الحاصل على درجة الدكتوراه" . www.sparklinglogic.com . تم الاطلاع عليه بتاريخ 7 أبريل 2012 .
  15. سوتارا، دافيد؛ ميلو، باولا ؛ بروكتر، مارك (2010). "محرك Rete-OO قابل للتكوين للاستدلال باستخدام أنواع مختلفة من المعلومات غير الكاملة" . معاملات IEEE في هندسة المعرفة والبيانات . 22 (11): 1535-1548 . Bibcode : 2010ITKDE..22.1535S . CiteSeerX 10.1.1.713.3826 . doi : 10.1109/TKDE.2010.125 . S2CID 18895309. مؤرشف من الأصل (PDF) بتاريخ 10 يناير 2022. تم الاسترجاع بتاريخ 10 يناير 2022 .