نظام خبير على القضبان

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


مخطط انسيابي

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


عرض العمل

الخوارزمية تعمل على النحو التالي. في التكرار الحالي ، لا يتجاوز مجموع القاعدة * قيمة القاعدة * n (حيث أن القيمة تحتوي على قيمة من قيمتين: 0 أو 1). في التكرار التالي ، تتجاوز القيمة المنفردة للقاعدة هذا المجموع ، أي ، القاعدة = القاعدة * ن +1.

عدد القصور الذاتي الذي تطرح منه وحدة (الجواب غير معروف في التكرار الأول بمجموع صفري) هو رقم الإجابة (بالنسبة لـ K. Naylor ، مجموع القواعد الإيجابية * القيمة تعني الإجابة الأولى ، السلبية - الثانية).

من الواضح أنه في التكرار الأول (القيم الافتراضية للقاعدة صفر) ، سيكون مجموع القيم صفرًا أيضًا. في التكرار الثاني ، سيكون في النطاق [1 ، n] (انظر صيغة القاعدة أعلاه) ، وفي الثالث سيكون في النطاق [n + 1 ، (n + 1) * n] ؛ في النطاق الرابع ستكون على النحو التالي: [(n + 1) * n + 1، ((n + 1) * n + 1) * n] وهكذا.

وبالتالي ، يتم حساب الحد الأيمن للنطاق بالصيغة sum = (sum + 1) * n. عندما يتم فحص جميع الإجابات الممكنة ، نقوم بإعادة تعيين القاعدة.


كيف يبدو في متصفح الويب

مساعدة حول كيفية جعل هذا المشروع


يمكن إنشاء جميع ملفات المشروع تقريبًا باستخدام الأوامر

rails generate scaffold Image name:string flag:boolean n:integer rails generate scaffold Question name:string value:integer rule:integer image:references rails generate scaffold Outcome name:string image:references 

في ملف db / ترحيل / yyyyMMddhmhms_create_images.rb ، بدلاً من السطر t.boolean: flag ، اكتب t.boolean: flag ، افتراضي: false. نضيف أيضًا قيمًا افتراضية صفرية لحقول images.n و Questions.value و Questions.rule وأشعل الخليع ديسيبل: الهجرة.

بعد ذلك ، في ملف config /ways.rb ، نجعل أسئلة الأسئلة والنتائج خاضعة لمورد الصور. أيضا في ملف التطبيق / النماذج / image.rb أضف has_many: الأسئلة و has_many: النتائج. يبقى في وحدات التحكم وطرق العرض لتغيير المسارات وفقًا لذلك: استبدل question_path بـ image_questions_path (المعلمات [: image_id]) ، إلخ.

نقوم بإنشاء جزأين _question.html.erb و _outcome.html.erb لعرضهما لاحقًا في عرض الصور / show.html.erb. يمكنك معرفة المزيد عن هذه التقنية من خلال مشاهدة جولة الفيديو على Rails 5 ، والتي هي على الصفحة الرئيسية للموقع الرسمي لإطار الويب هذا.

نتيجة لكل هذه الإجراءات ، طريقة عرض new.html.erb و edit.html.erb لكلا الموارد الثانوية. مع جزء _form.html.erb الفردي ، يحصلون على نفس المسار لإجراء هذا النموذج ، وهو غير صحيح. نحن نصحح.

تم وصف الخوارزمية مع إعادة حساب قيم حقل القاعدة (إذا لزم الأمر) أعلاه. يبدأ عند تحديث صفحة الويب التي يتم عرضها بواسطة إجراء show الخاص بـ ImageController.

وأخيرًا ، الاختبار التلقائي. نظرًا لتغيير المسارات ، يلزم إجراء التغييرات المقابلة أيضًا في الاختبارات والتركيبات.

الأدب


نايلور. كيف تبني نظامك الخبير - Energoatomizdat دار النشر ، 1991

Source: https://habr.com/ru/post/ar422971/


All Articles