Expertensystem auf Schienen

Der Artikel ist der Schaffung eines Expertensystems gewidmet. Am Anfang des Artikels befindet sich ein Blockdiagramm aus einem Buch aus der Referenzliste, dann eine Beschreibung der Datenbank und des Algorithmus. Als nächstes folgt die „Hilfe zum Erstellen dieses Projekts“, in der der Algorithmus zum Erstellen dieses Projekts beschrieben wird. Am Ende des Artikels befindet sich eine Referenzliste. Es hat auch ein paar Screenshots.


Flussdiagramm

Die Datenbank enthält drei Tabellen - Bilder, Fragen und Ergebnisse. Die erste davon ist die wichtigste in „Klassifizierung und Identifizierung“, enthält ein Zeichen für eine erfolgreiche Erkennung (Flaggenfeld) und die Anzahl der „Objekt, Antwort“ -Paare in der „Trainingsstichprobe“ (Feld n). Die zweite enthält genau diese Auswahl (Wertefeld) sowie die Namen der „Eigenschaften und Attribute“ (Namensfeld) und das im Erkennungsalgorithmus verwendete Regelfeld. Schließlich enthält die dritte Tabelle mögliche Antworten (Regen / kein Regen usw.).


Action Show

Der Algorithmus funktioniert wie folgt. Bei der aktuellen Iteration überschreitet die Summe von Regel * Wert Regel * n nicht (da der Wert einen von zwei Werten hat: 0 oder 1). Bei der nächsten Iteration überschreitet der einzelne Wert der Regel diese Summe, dh Regel = Regel * n + 1.

Die Anzahl der Trägheiten, von denen eine Einheit abgezogen wird (die Antwort ist bei der ersten Iteration mit einer Nullsumme unbekannt), ist die Anzahl der Antworten (für K. Naylor bedeutet eine positive Summe von Regeln * Wert die erste Antwort, negativ - die zweite).

Offensichtlich ist bei der ersten Iteration (Standardregel Nullwerte) die Summe der Werte ebenfalls Null. Bei der zweiten Iteration liegt es im Bereich [1, n] (siehe Formel für die obige Regel), bei der dritten im Bereich [n + 1, (n + 1) * n]; im vierten Bereich wird es so sein: [(n + 1) * n + 1, ((n + 1) * n + 1) * n] und so weiter.

Somit wird der rechte Rand des Bereichs durch die Formel sum = (sum + 1) * n berechnet. Wenn alle möglichen Antworten überprüft wurden, setzen wir die Regel zurück.


Wie es in einem Webbrowser aussieht

Hilfe bei der Erstellung dieses Projekts


Fast alle Projektdateien können mit Befehlen erstellt werden

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 

Schreiben Sie in der Datei db / migrate / yyyyMMddhhmmss_create_images.rb anstelle der Zeile t.boolean: flag t.boolean: flag, default: false. Wir fügen außerdem null Standardwerte für die Felder images.n, question.value und question.rule hinzu. Und harke db: migriere.

Als Nächstes ordnen wir in der Datei config / route.rb die Ressourcen für Fragen und Ergebnisse der Bildressource unter. Fügen Sie auch in der Datei app / models / image.rb has_many: Fragen und has_many: Ergebnisse hinzu. Es bleibt in den Controllern und Ansichten, die Pfade entsprechend zu ändern: Ersetzen Sie question_path durch image_questions_path (params [: image_id]) usw.

Wir erstellen die Partials _question.html.erb und _outcome.html.erb und rendern sie dann in der Ansicht images / show.html.erb. Sie können mehr über diese Technik erfahren, indem Sie sich die Rails 5-Videotour ansehen, die sich auf der Hauptseite der offiziellen Website dieses Webframeworks befindet.

Infolge all dieser Aktionen werden die Ansichten new.html.erb und edit.html.erb für beide untergeordneten Ressourcen unterbrochen. Zusammen mit dem einzelnen Teil _form.html.erb erhalten sie denselben Pfad für die Aktion dieses Formulars, was falsch ist. Wir korrigieren.

Der Algorithmus mit Neuberechnung der Regelfeldwerte (falls erforderlich) ist oben beschrieben. Es beginnt, wenn die von der Show-Aktion des ImageControllers angezeigte Webseite aktualisiert wird.

Und schließlich das automatische Testen. Aufgrund der Änderung der Routen sind entsprechende Änderungen auch bei Tests und Vorrichtungen erforderlich.

Literatur


C. Naylor. So bauen Sie Ihr Expertensystem auf - Energoatomizdat Publishing House, 1991

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


All Articles