In der Arbeit verwendete Forschungsmethoden. Inferenzmethoden basierend auf Vorwärts- und Rückwärtsverkettung. Ein Beispiel für eine Methodenbeschreibung in einer Abschlussarbeit

Methoden zum Ableiten und Suchen von Lösungen in Produktionssystemen.

Inferenzmethoden basierend auf Vorwärts- und Rückwärtsverkettung.

Bei der Produktionsdarstellung wird ein Wissensbereich durch eine Reihe von Produktions-Wenn-Dann-Regeln dargestellt, und Daten werden durch eine Reihe von Fakten über die aktuelle Situation dargestellt.

Die Inferenz-Engine vergleicht jede in der Datenbank gespeicherte Regel mit den in der Datenbank enthaltenen Fakten. Wenn der Wenn-Teil der Regel (Bedingung) mit der Tatsache übereinstimmt, wird die Regel ausgelöst und ihr Dann-Teil (Aktion) durchgeführt. Eine ausgelöste Regel kann viele Fakten ändern, indem sie einen neuen Fakt hinzufügt, wie in Abbildung 6.1 dargestellt. Buchstaben in DB und KB werden zur Darstellung von Situationen und Konzepten verwendet.

Abb.6.1. Zyklus des Inferenzmechanismus durch das Match-Fire-Verfahren

Vergleich von Teilen, wenn Regeln mit Fakten erstellt werden Ausgangskette. Die Inferenzkette zeigt, wie das ES Regeln anwendet, um eine Schlussfolgerung zu ziehen. Betrachten Sie ein einfaches Beispiel, um die kettenbasierte Inferenzmethode zu veranschaulichen.

Nehmen wir an, die Datenbank umfasst zunächst die Fakten A, B, C, D und E und die Wissensdatenbank enthält nur drei Regeln:

Regel 1. Y&D → Z

Regel 2. X&B&E→Y

Regel 3. A→X

Die Ausgabekette in Abb. 6.2. zeigt, wie das ES Regeln anwendet, um die Tatsache Z abzuleiten.

Abb.6.2. Ein Beispiel für eine Ausgabekette.

Zuerst wird Regel 3 ausgeführt, um eine neue Tatsache X aus der veröffentlichten Tatsache A abzuleiten. Anschließend wird Regel 2 ausgeführt, um Tatsache Y aus den ursprünglich bekannten Tatsachen B und E sowie der bereits bekannten Tatsache X abzuleiten. Schließlich gilt Regel 1 die ursprünglich bekannte Tatsache D und die neu gewonnene Tatsache Y für Ankunft und Schlussfolgerung Z.

Das ES kann seine Schlussfolgerungskette widerspiegeln, um zu erklären, wie eine bestimmte Entscheidung getroffen wurde; Dies ist ein wesentlicher Teil seiner Erklärungskraft.

Die Inferenzmaschine muss entscheiden, wann die Regeln ausgelöst werden sollen. Es gibt zwei grundsätzliche Möglichkeiten, die Regeln umzusetzen. Eine wird als Vorwärtskette (bedingt abgeleitet) und die andere als Rückwärtskette (Ziel abgeleitet) bezeichnet.

In diesem Beispiel wird die direkte Ausgabeverkettung verwendet.

Produktionssysteme, in denen zunächst der vorausgehende Teil (Bedingungen) analysiert wird, verfügen über eine sogenannte bedingte Inferenzarchitektur. Ein Beispiel für ein Expertensystem einer solchen Architektur ist META-DENDRAL.

Ein alternativer Architekturtyp, der in Expertensystemen häufig verwendet wird, sind zielinferenzielle (aktionsinferenzielle oder folgeschlussfolgernde) Produktionssysteme. Zum Beispiel eine Regel wie

kann interpretiert werden als

„Die logische Verbindung von A, B und C impliziert D“ oder

„Um D zu beweisen, ist es notwendig, A, B, C festzustellen.“

Im letzteren Fall muss das Ziel durch deduktive Schlussfolgerung erreicht werden. Dazu werden die Konsequenzen der Regeln untersucht, um eine Regel zu finden, die das Erreichen des Ziels ermöglichen würde. Wenn eine solche Regel gefunden wird, werden alle ihre Bedingungen auf Wahrheit überprüft. Wenn die Bedingungen wahr sind, wird der Ausgang aktiviert. Ansonsten geht die Suche nach passenden Produkten weiter.

Schauen wir uns ein vereinfachtes Beispiel eines Produktionssystems mit einer konsequenten Inferenzarchitektur an. Die Buchstaben geben hier die Elemente der Datenbank an und gelten als wahr, wenn sie darin enthalten sind.

Regel 1: A&B&C→D

Regel 2: D&F→G

Regel 3: A&J→G

Regel 4: B→C

Regel 5: F→B

Regel 6: L→J

Regel 7: G→H

Angenommen, das Ziel besteht darin, die Wahrheit von H abzuleiten. Der erste Schritt besteht darin, zu überprüfen, ob H in der Datenbank vorhanden ist. Da dies in diesem Fall nicht der Fall ist, versucht das System, mithilfe von Regeln, bei denen H auf der rechten Seite steht, auf die Wahrheit von H zu schließen. Dies ist Regel 7. Nun versucht das System, auf die Wahrheit von G zu schließen, da die Wahrheit von G die Wahrheit von H mit sich bringt. Die Datenbank wird erneut überprüft: Es gibt kein G in der Datenbank, daher enthält die Regel einen Pol G auf der rechten Seite ist organisiert. Es gibt mehrere solcher Regeln (zwei oder drei). Als Strategie zur „Konfliktlösung“ gehen wir davon aus, dass die Regeln nach Priorität geordnet sind, wobei die Regel mit der niedrigsten Nummer der höchsten Priorität entspricht.

In diesem Fall wird Regel 2 gewählt, sodass das Ziel nun darin besteht, die Wahrheit von D und F abzuleiten. Dazu reicht es zu zeigen, dass A wahr ist (da es in der Datenbank steht), B wahr ist (gemäß gemäß Regel 5) ist C wahr (gemäß Regel 4). Da die Wahrheit von D und F bewiesen ist, folgt die Wahrheit von G aus Regel 2 und die Wahrheit von H aus der Wahrheit von G (Regel 7). Damit ist das Ziel erreicht. Elemente, die sich als wahr erwiesen haben, werden der Datenbank hinzugefügt. In diesem Fall sind dies die Elemente H, G, D, C.V. Beispiele für zielinferenzielle Architektur sind MYCIN.

Rückschluss auf Frames und semantische Netzwerke.

Ausgabe auf Frames.

Rahmendatenstruktur.

Bevor wir uns mit der Ausgabe in einem Frame-System befassen, werfen wir einen genaueren Blick auf die Frame-Datenstruktur.

Ein Rahmensystem ist eine hierarchische Struktur, deren Knoten Rahmen mit einer bestimmten Datenstruktur sind.

1. Rahmenname. Dies ist die dem Frame zugewiesene Kennung. Der Rahmen muss einen Namen haben, der in einem bestimmten Rahmensystem eindeutig ist (eindeutiger Name). Jeder Frame besteht aus einer beliebigen Anzahl von Slots, wobei einige davon normalerweise vom System selbst definiert werden, um bestimmte Funktionen auszuführen, und der Rest vom Benutzer definiert wird. Dazu gehört ein Schlitz, der den Frame anzeigt – das übergeordnete Element dieses Frames; ein Pointer-Slot für untergeordnete Frames, bei dem es sich um eine Liste von Pointern für untergeordnete Frames handelt; Slot zur Eingabe des Benutzernamens, des Definitionsdatums, des Änderungsdatums, der Kommentarrate und anderer Slots. Jeder Slot wiederum wird auch durch eine spezifische Datenstruktur repräsentiert.

2. Slot-Name. Dies ist die dem Steckplatz zugewiesene Kennung; Ein Slot muss in dem Frame, zu dem er gehört, einen eindeutigen Namen haben. Normalerweise hat der Slot-Name keine Bedeutung und dient nur zur Identifizierung dieses Slots. In einigen Fällen kann er jedoch eine bestimmte Bedeutung haben. Zu diesen Namen gehören: Haltung; direkter untergeordneter Frame-Zeiger; Rahmendefinitionsdatum; Rahmenänderungsdatum usw.

3. Vererbungszeiger. Diese Hinweise betreffen nur hierarchische Typrahmensysteme, die auf hierarchischen Typbeziehungen basieren, die auf abstrakt-konkreten Beziehungen basieren. Sie zeigen, welche Attributinformationen über Slots in einem Frame der obersten Ebene von Slots mit denselben Namen in einem Frame der unteren Ebene geerbt werden.

4. Indikator des Datentyps (Slot-Attribute). Zeigt an, dass der Slot einen numerischen Wert oder einen numerischen Wert hat, oder dient als Zeiger auf einen anderen Frame (d. h. er zeigt den Namen des Frames an). Zu den Datentypen gehören Zeiger, Ganzzahlen, reelle Zahlen, boolesche Werte, angehängte Prozeduren, Text, Listen, Tabellen, Ausdrücke usw.

5. Slot-Wert. Hier wird der Slot-Wert eingegeben. Der Wert eines Slots muss mit dem angegebenen Datentyp dieses Slots übereinstimmen und die Vererbungsbedingung muss ebenfalls erfüllt sein.

6. Verfahren - Daemon. Es gibt die folgenden Arten von Prozeduren – Daemons: if-needed, if-changed, if-added, if-removed.

Ein Daemon gibt eine Prozedur an, die automatisch gestartet wird, wenn eine bestimmte Bedingung erfüllt ist. Diese. wenn das Attribut im bedingten Teil der if-Anweisung über den Status des Dämons seinen Wert ändert. Verfahren – Daemons werden immer dann aktiviert, wenn versucht wird, Daten zu einem Slot hinzuzufügen oder daraus zu entfernen (Standard). Daemons werden gestartet, wenn auf den entsprechenden Slot zugegriffen wird. Beispielsweise wird der If-Necessary-Daemon gestartet, wenn sein Wert zum Zeitpunkt des Zugriffs auf den Slot nicht festgelegt war; if-added wird ausgelöst, wenn ein Wert in den Slot eingesetzt wird; if-remote wird ausgeführt, wenn der Slot-Wert gelöscht wird. Darüber hinaus ist ein Daemon eine Art angehängte Prozedur.

7. Angehängte Prozedur (Prozedur – Diener). Der Slot-Wert kann als prozedurales Programm namens verwendet werden offiziell(in LISP-Sprache) und Methode(in Smalltalk-Sprache). In diesem Fall wird die angehängte Prozedur durch eine Nachricht ausgelöst, die von einem anderen Frame übermittelt wird, oder wenn die vom Benutzer beim Erstellen des Frames angegebenen Bedingungen erfüllt sind.

Wenn wir sagen, dass Modelle der Wissensrepräsentation durch Frames prozedurales und deklaratives Wissen kombinieren, betrachten wir auch die damit verbundenen Prozeduren als prozedurale Werte. Darüber hinaus verfügt die Wissensdarstellungssprache mit Frames nicht über einen speziellen Ausgabekontrollmechanismus, sodass der Benutzer diesen Mechanismus mithilfe einer angehängten Prozedur implementieren muss.

Ausgabe in einem Rahmensystem.

Im Rahmen des Rahmenansatzes wird davon ausgegangen, dass Wissen im System in Form separater Wissenscluster oder Unterstrukturen dargestellt wird, die Informationen über Stereotypen (d. h. über einige allgemeine Merkmale einer bestimmten Klasse von Objekten oder Situationen) enthalten Nach dieser Annahme bedeutet das Verstehen der Situation für das System, in der Liste angesammelte Strukturen zu suchen, die die betrachtete Situation am besten beschreiben. In diesem Fall werden die Slots mit einigen Informationen gefüllt und der gefüllte Rahmen wird auf Angemessenheit der gegebenen Situation überprüft Im Falle einer Nichtübereinstimmung wird nach einem neuen Frame gesucht und der Prozess fortgesetzt.

Somit können wir drei Hauptprozesse unterscheiden, die in Rahmensystemen ablaufen:

1. Erstellen Sie eine Frame-Instanz. Um eine Instanz eines Frames zu erstellen, müssen Sie einen geeigneten Frame finden und seine Slots mit Informationen füllen, die die Besonderheiten der betrachteten Situation beschreiben. Zur Besetzung der Plätze werden spezielle Informationen genutzt, um potenzielle „Füller“ der Plätze zu finden. Diese Informationen werden häufig in prozeduraler Form gespeichert.

2. Aktivierung von Frames. Wenn ein Rahmen zur Beschreibung einer bestimmten Situation als geeignet erachtet wird, wird er durch einen globalen Prozess aktiviert. Werden zu viele Unterschiede zwischen dem Inhalt der Frames und den Besonderheiten der betrachteten Situation festgestellt oder sind diese von ausreichend schwerwiegender Natur, wird die Suche nach einem anderen, geeigneteren Frame organisiert. In diesem Fall kann der „abgelehnte“ Rahmen Hinweise darauf enthalten, welche Rahmen anstelle dieses untersucht werden sollten (z. B. allgemeinere oder umgekehrt speziellere). Einige der Daten, die zum Füllen der Plätze des „abgelehnten“ Rahmens verwendet werden, können bei der Prüfung neuer Kandidaten verwendet werden.

3. Organisation der Inferenz, die aus einer sequentiellen Suche nach Aktivierung im Netzwerk von Frames besteht, bis der am besten geeignete gefunden wird und auf dieser Basis eine Frame-Instanz erstellt wird.

In T. Winograd wurde vorgeschlagen, die Vorteile der deklarativen und prozeduralen Darstellung in Frames zu kombinieren. Der Kern seines Vorschlags besteht darin, dass Wissen über die Funktionen ihrer direkten Darstellung mithilfe von Frames in deklarativer Form und Wissen über die Verwendung von Frames in prozeduraler Form gespeichert werden sollte.

Insbesondere können Verfahren Wissen speichern, das es ihnen ermöglicht, folgende Fragen zu beantworten:

1. Wann muss der Rahmen aktiviert werden? Wie „Dämonen“ können Frames sich selbst aktivieren, wenn die entsprechende Situation erkannt wird.

3. Wann sollten die Plätze besetzt werden – zum Zeitpunkt der Ausschreibung oder später, je nach Bedarf?

Die Implementierung dieser Funktionen kann angehängten Prozeduren zugewiesen werden. Verfahren können auch Heuristiken implementieren, die darauf abzielen, Informationen zu finden, die zum Füllen von Slots erforderlich sind.

Unsicherheit.

Eines der gemeinsamen Merkmale der dem Entscheidungsträger zur Verfügung stehenden Informationen ist ihre Unvollkommenheit. Informationen können unvollständig, inkonsistent, unsicher, unzuverlässig, unklar, zufällig oder verschiedene Kombinationen dieser Beschreibungen sein. Mit anderen Worten: Die Informationen sind oft nicht vollständig zur Lösung des Problems geeignet. Der Experte überwindet diese Mängel jedoch und kann in der Regel gute Urteile und Entscheidungen treffen. Ein intelligentes DSS muss auch mit Unsicherheiten umgehen und zu vernünftigen Schlussfolgerungen kommen können.

Grundsätzlich werden vier Quellen unsicheren Wissens im intelligenten DSS identifiziert: unbekannte Daten, ungenaue Sprache, impliziter semantischer Inhalt und Schwierigkeiten im Zusammenhang mit der Kombination der Ansichten verschiedener Experten.

Obwohl Unsicherheit in der realen Welt weit verbreitet ist, ist ihr Umgang in praktischen KI-Systemen recht begrenzt.

Unsicherheit ist ein ernstes Problem. Der Versuch, es nicht zu berücksichtigen und die Möglichkeiten der Arbeit damit zu erkennen, kann nicht die beste Strategie bei der Entwicklung intelligenter DSS sein.

Daher ist es notwendig, die Methoden zum Umgang mit Unsicherheit zu verbessern.

Intelligente DSS und ES müssen in der Lage sein, mit Unsicherheiten umzugehen, denn Jeder reale Themenbereich enthält ungenaues Wissen und Sie müssen sich mit unvollständigen, widersprüchlichen oder sogar fehlenden Daten auseinandersetzen. Es wurden verschiedene Methoden entwickelt, um mit der Unsicherheit in intelligenten und Expertensystemen umzugehen. Wir werden die bekanntesten Ansätze zum Unsicherheitsmanagement betrachten: Bayesianisches probabilistisches Denken und seine Erweiterungen, Gewissheitstheorie, Fuzzy-Logik.

Wahrscheinlichkeitsschluss.

Probabilistischer Ansatz.

Zufällige (oder probabilistische) Unsicherheit kann mit der Zufälligkeit von Ereignissen verbunden sein, beispielsweise von wirtschaftlichen Situationen, Objektbedingungen, der Zufälligkeit von Geräteausfällen und anderen Faktoren. Bei der Gestaltung intelligenter DSS und der Organisation der Arbeit mit Wissensdatenbanken variiert der Grad der Zuverlässigkeit und Zuverlässigkeit vieler Kenntnisse, Fakten, Ereignisse und Daten. Um das Denken unter Bedingungen stochastischer Unsicherheit zu formalisieren, werden Wahrscheinlichkeitstheorie und statische Lösungen verwendet. Bei der Implementierung einer Argumentation unter Berücksichtigung der Unsicherheit zur Berechnung der Wahrscheinlichkeit einer bestimmten Hypothese für eine Lösungsoption ist es möglich, diese zu verwenden Bayesianischer Ansatz.

Betrachten wir die wichtigsten Bestimmungen der Bayes'schen Methode und der Bayes-Regel.

Lassen A ist ein Ereignis in der Realität, und IN- eine weitere Veranstaltung. Nehmen wir an, dass Ereignisse A Und IN schließen sich nicht gegenseitig aus, sondern treten bedingt auf, wenn sich das andere manifestiert. Die Wahrscheinlichkeit, dass das Ereignis A wird passieren, wenn das Ereignis eintritt IN, angerufen bedingte Wahrscheinlichkeit.

Die bedingte Wahrscheinlichkeit wird mathematisch als bezeichnet P(A|B), wobei der vertikale Balken „eingetreten“ darstellt und der vollständige Wahrscheinlichkeitsausdruck als „Die bedingte Wahrscheinlichkeit, dass das Ereignis eintritt“ interpretiert wird A IN».

p(A|B)=(6.1)

Anzahl möglicher Gelenkmanifestationen A Und IN oder die Wahrscheinlichkeit, dass A Und IN wird gemeinsam geschehen, genannt gemeinsame Wahrscheinlichkeit A Und IN.

Mathematisch erscheint dies P(AÇB).

Anzahl möglicher Erscheinungsformen IN ist die Wahrscheinlichkeit IN, P(B), und dann

(6.2)

Außerdem die bedingte Wahrscheinlichkeit, dass ein Ereignis eintritt IN vorausgesetzt, dass die Veranstaltung stattgefunden hat A bestimmt

(6.3)

p(ÇÇÀ) =p(Ò|Ç)´p(À)(6.4)

Die gemeinsame Wahrscheinlichkeit ist also kommutativ

p(AÇB)= p(BÇ A)

Somit

p(AÇB) =p(B|A)´P(A)(6.5)

Das Einsetzen von (6.5) in (6.2) führt zu folgender Gleichung:

(6.6)

p(A|B) A vorausgesetzt, dass die Veranstaltung stattgefunden hat IN;

p(B|A)– bedingte Wahrscheinlichkeit, dass ein Ereignis eintritt IN vorausgesetzt, dass die Veranstaltung stattgefunden hat A;

p(A) A;

p(B)- die Wahrscheinlichkeit, dass ein Ereignis eintritt IN.

Gleichung (6.6) ist als Bayes-Regel (oder Formel) bekannt und nach Thomas Bayes benannt, dem britischen Mathematiker des 18. Jahrhunderts, der diese Regel vorgeschlagen hat.

Das Konzept der bedingten Wahrscheinlichkeit wird vorgeschlagen, wenn angenommen wird, dass ein Ereignis vorliegt A war ereignisabhängig IN. Dieses Prinzip lässt sich auf den Fall des Ereignisses erweitern A hängt von einer bestimmten Anzahl inkompatibler Ereignisse ab B 1, B 2, ..., B n.

Aus (6.2) lässt sich folgender Gleichungssatz ableiten:

p(AÇB 1) =p(A|B 1)´p(B 1)

p(AÇB 2) =p(A|B 2)´p(B 2)

p(АÇВ n) =p(А|В n)´p(В n)

Oder nach der Fusion.

(6.7)

Wenn (6.7) über die gesamte vollständige Liste der Ereignisse B i summiert wird, erhalten wir

(6.8)

Dies führt zu der folgenden bedingten Wahrscheinlichkeitsgleichung, d. h. P(A) ausgedrückt mit der Gesamtwahrscheinlichkeitsformel:

(6.9)

Wenn die Manifestation eines Ereignisses A hängt beispielsweise nur von zwei sich gegenseitig ausschließenden Ereignissen ab IN Und NICHT IN, dann sieht (6.9) so aus:

p(A)=p(A|B)´p(B)+p(A\ØB)´p(ØB) (6.10)

Wobei Ø das logische NICHT ist.

p(B)=p(B|A)´p(A)+p(B\ØA)´p(ØA) (6.11)

Setzen wir nun (6.11) in die Bayes-Formel (6.6) ein, was zu führt

Gleichung (6.12) bildet die Grundlage für die Verwendung der Wahrscheinlichkeitstheorie zur Bewältigung der Unsicherheit in intelligenten Systemen.

Bayesianische Schlussfolgerung.

Mit Gleichung (6.12) können wir nun unsere Aufmerksamkeit von der Wahrscheinlichkeitstheorie wieder auf intelligente Systeme richten. Angenommen, alle Regeln in der Wissensdatenbank werden in der folgenden Form dargestellt:

Wenn N WAHR

Dann MIT wahr (mit Wahrscheinlichkeit R}.

Diese Regel impliziert, dass, wenn ein Ereignis N eintritt, dann ist die Wahrscheinlichkeit, dass das Ereignis eintritt MIT wird passieren R.

Was passiert, wenn das Ereignis MIT ist passiert, aber wir wissen nicht, ob das Ereignis passiert ist N? Erwägen Sie die Möglichkeit, die Wahrscheinlichkeit eines Ereignisses zu berechnen N ist auch passiert.

Gleichung (6.12) ermöglicht uns dies. Wir verwenden einfach N Und MIT anstatt A Und IN. In intelligenten Systemen N bezeichnet normalerweise Hypothesen und MIT– Beweise zur Stützung dieser Hypothesen.

Somit sieht Gleichung (6.12), ausgedrückt in Hypothesen und Beweisen, so aus

p(H)a priori (bedingungslose) Wahrscheinlichkeit dass die Hypothese N ist wahr;

p(C|H)– die Wahrscheinlichkeit, dass die Hypothese N wahr ist, wird das Ergebnis von Beweisen sein MIT;

p(ØН)- a priori (bedingungslose) Wahrscheinlichkeit, dass die Hypothese N ist falsch;

p(С|ØН)– Wahrscheinlichkeit, Beweise zu finden MIT auch wenn die Hypothese N FALSCH.

Gleichung (6.13) legt nahe, dass die Wahrscheinlichkeit einer Hypothese N, p(H) muss vor der Beweisaufnahme geklärt werden.

Im intelligenten DSS sind Wahrscheinlichkeiten erforderlich, um von Experten gestellte Probleme zu lösen. Der Experte ermittelt A-priori-Wahrscheinlichkeiten für eine mögliche Hypothese p(H) Und p(ØН) sowie bedingte Wahrscheinlichkeiten für die beobachteten Beweise MIT, wenn die Hypothese N WAHR, p(C|H), und wenn die Hypothese N FALSCH p(С|ØН). Benutzer geben Auskunft über die beobachteten Beweise und das intelligente System berechnet p(C|H) für eine Hypothese N unter Berücksichtigung der vom Benutzer vorgelegten Beweise MIT. Wahrscheinlichkeit p(C|H) angerufen hintere Wahrscheinlichkeit Hypothesen N mit beobachtbaren Beweisen MIT.

Betrachten wir Situationen, in denen ein Experte auf der Grundlage einfacher Beweise vorgeht MIT, kann keine einfache Hypothese auswählen, sondern liefert vielmehr mehrere Hypothesen N 1, N 2,…, N t. Oder wenn es zahlreiche Beweise gibt C 1, C 2, …, C n und der Experte generiert auch viele Hypothesen.

Wir können Gleichung (6.13) unter Berücksichtigung zahlreicher Hypothesen verallgemeinern N 1, N 2, …, N t und zahlreiche Zeugnisse C 1, C 2, …, C n. Aber sowohl Hypothesen als auch Beweise müssen sich gegenseitig ausschließen.

Für einfache Beweise C und mehrere Hypothesen N 1, N 2, …, N t folgt:

(6.14)

Für zahlreiche Beweise C 1, C 2, …, C n und zahlreiche Hypothesen N 1, N 2, …, N t folgt:

(6.15)

Die Anwendung von Gleichung (6.15) erfordert die Ermittlung der bedingten Wahrscheinlichkeiten aller möglichen Beweiskombinationen für alle Hypothesen. Diese Anforderung stellt für den Sachverständigen eine enorme Belastung dar und macht seine Aufgabe nahezu unmöglich.

Daher sollten in intelligenten DSS und ES die Feinheiten des gemeinsamen Einflusses mehrerer Beweise nicht berücksichtigt werden, sondern eine bedingte Unabhängigkeit zwischen verschiedenen Beweisen zugelassen werden.

Folglich erhalten wir anstelle der nicht realisierbaren Gleichung (6.15).

Um zu verdeutlichen, wie ein intelligentes System alle Posterior-Wahrscheinlichkeiten berechnet und letztendlich eine potenziell wahre Hypothese einordnet, betrachten Sie ein einfaches Beispiel.

Angenommen, ein Sachverständiger verfügt über drei bedingt unabhängige Beweisstücke C 1, C 2 Und C 3, erstellt drei sich gegenseitig ausschließende Hypothesen N 1, N 2 Und N 3 und liefert A-priori-Wahrscheinlichkeiten für diese Hypothesen – p(H 1), p(H 2) Und p(H 3) jeweils. Der Experte bestimmt außerdem die bedingten Wahrscheinlichkeiten jedes notierten Beweises für alle möglichen Hypothesen.

In Tabelle 6.1. Vom Experten bereitgestellte A-priori- und bedingte Wahrscheinlichkeiten werden angezeigt.

Tabelle 6.1.

Priori- und bedingte Wahrscheinlichkeiten.

Wahrscheinlichkeiten Hypothesen
i=1 i=2 i=3
P(H i) P(C 1 |H i) P(C 2 |H i) P(C 3 |H i) 0.4 0.3 0.9 0.6 0.35 0.8 0.0 0.7 0.25 0.5 0.7 0.9

Nehmen wir an, wir beobachten zunächst den Beweis C 3 . Das intelligente System berechnet A-Posteriori-Wahrscheinlichkeiten für alle Hypothesen mithilfe von Gleichung (6.14):

Auf diese Weise

Wie man nach Betrachtung der Beweise sehen kann C 3, Vertrauen in die Hypothese H 2 und wird gleich dem Vertrauen in die Hypothese H 1. Auch das Vertrauen in die Hypothese H 3 nimmt zu und erreicht sogar annähernd das Vertrauen in die Hypothesen H 1 Und H 2.

Nehmen wir nun an, dass wir Beweise beobachten C 1. Posterior-Wahrscheinlichkeiten werden mit Gleichung (6.16) berechnet:

Auf diese Weise

Hypothese H 2 gilt heute als das wahrscheinlichste, weil Das Vertrauen in die Hypothese nimmt stark ab.

Nachdem ich die Beweise gesehen habe C 2 Smart DSS berechnet außerdem die neuesten Posterior-Wahrscheinlichkeiten für alle Hypothesen:

Auf diese Weise

Obwohl die vom Experten vorgeschlagene ursprüngliche Rangfolge lautete H 1, H 2 und H 3, nur Hypothesen H 1 Und N 3 blieb nach all den Beweisen zur Prüfung übrig ( C 1, C 2 Und C 3), die beobachtet wurden. Hypothese H 2 kann nun vollständig beseitigt werden.

Beachten Sie, dass die Hypothese N 3 jetzt als der Hypothese vorzuziehen angesehen H 1.

Bei der Verwendung von Methoden, die auf der Bayes'schen Logik basieren, treten Schwierigkeiten bei der Beschaffung der großen Datenmenge auf, die zur Bestimmung bedingter Wahrscheinlichkeiten erforderlich ist.

In der Praxis wird von der Unabhängigkeit der Beobachtungen ausgegangen, was sich offenbar auf die Genauigkeit des statischen Modells auswirkt. Ähnliche Annahmen liegen in der Methode vor, die auf dem in vorgeschlagenen Bayes'schen Ansatz basiert.

Duda, Hart und Nielson modifizierten die Formeln von Bayes für wissenstechnische Inferenz und schlugen eine Inferenzmethode namens Subjekt-Bayes vor.

Die Hauptziele dieser Methode wurden von ihnen erfolgreich im Expertensystem PROSPECTOR umgesetzt.

Ungefähre Begründung.

In der klassischen Theorie der Aussagenrechnung ist der Ausdruck „Wenn A, Dann IN", Wo A Und IN– propositionale Variablen (eine propositionale Variable ist eine Variable für Sätze, die nur im Hinblick auf ihre Wahrheit oder Falschheit betrachtet werden), geschrieben als A®B, wobei die Implikation (®) als Konnektiv betrachtet wird, dessen Bedeutung durch die Wahrheitstabelle bestimmt wird.

Auf diese Weise А®ВºØАВ (6.17)

In dem Sinne, dass A®B(A impliziert B) und ØАÚВ(nicht A oder B) haben identische Wahrheitstabellen. Wichtiger in unserem Fall ist vage Aussage"Wenn A, Dann IN", knapp A®B, indem A(Vorläufer) und IN(konsequent) – Fuzzy-Mengen, keine Satzvariablen („Satz“ bedeutet Satz, Ausdruck, Aussage).

Typische Beispiele für Aussagen:

Wenn „groß“, dann „klein“

Wenn „rutschig“, dann „gefährlich“;

Sie sind Abkürzungen von Sätzen:

Wenn x „groß“ ist, dann ist y „klein“;

Wenn die Straße „rutschig“ ist, dann ist das Fahren „gefährlich“.

Sätze dieser Art beschreiben im Wesentlichen eine Beziehung zwischen zwei undefinierten Variablen. Dies bedeutet, dass eine unbestimmte Aussage als unscharfe Relation im Sinne von (5.25) und nicht als Konnektiv im Sinne von (6.17) definiert werden sollte.

Hier empfiehlt es sich zunächst zu ermitteln kartesisches Produkt zwei Fuzzy-Sets.

Lassen A-Fuzzy-Teilmenge des Argumentationsbereichs U lassen Sie es gehen IN ist eine unscharfe Teilmenge eines anderen Argumentationsbereichs V. Dann das kartesische Produkt A Und IN, bezeichnet А´В ist wie folgt definiert

(6.18)

Wo U´V bedeutet kartesisches Produkt von Mengen U Und V, d.h.

Beachten Sie, wann A Und IN– nicht unscharf, (6.18) wird in die übliche Definition eines kartesischen Mengenprodukts umgewandelt.

Mit anderen Worten, (6.18) bedeutet das А´В unscharfer Satz geordneter Paare ( u, v), , mit Grad der Mitgliedschaft (u, v) Zu (A´B), gegeben durch die Formel. In diesem Sinne А´В Es besteht ein unklarer Zusammenhang U Und V.

Beispiel 6.1. Lassen

U=1+2(6.19)

V=1+2+3 (6.20)

A=1/1+0,8/2 (6.21)

B=0,6/1+0,9/2+1/3 (6.22)

A´B=0,6/(1,1)+0,9/(1,2)+1/(1,3)+0,6/(2,1)+0,8/(2,2 )+0,8/(2,3) (6.23)

Die in (6.17) definierte Beziehung kann durch die Beziehungsmatrix dargestellt werden

Die Bedeutung einer unscharfen Aussage der Form „Wenn A, Dann IN„ wird deutlich, wenn wir es als Sonderfall der Bedingungsanweisung „Wenn“ betrachten A, Dann IN, Ansonsten MIT", Wo A, IN Und MIT– Fuzzy-Teilmengen, möglicherweise aus unterschiedlichen Bereichen U Und V, jeweils.

In Bezug auf das kartesische Produkt ist der letzte Satz wie folgt definiert:

Wenn A, Dann IN, Ansonsten MIT (6.25)

Wobei + die Vereinigung von Fuzzy-Mengen bedeutet А´В Und (ØА´С).

Nehmen wir Folgendes an, um das Konzept der materiellen Implikation auf Fuzzy-Mengen zu verallgemeinern U Und V– zwei möglicherweise unterschiedliche Universalsätze, und A, B Und MIT– Fuzzy-Teilmengen von Mengen U, V Und V jeweils.

Lassen Sie uns zunächst die Bedeutung der Aussage bestimmen

Wenn A, Dann IN, Ansonsten MIT, und dann definieren wir

Wenn A, Dann IN als Sonderfall der Aussage If A, Dann IN, Ansonsten MIT.

Definition. Aussage Wenn A, Dann IN, Ansonsten MIT Es gibt eine binäre Fuzzy-Relation U´V, wie folgt definiert:

Wenn A, dann B, sonst C=A´B+ØA´C (6.26)

Das heißt, wenn A, B Und MIT– unäre Fuzzy-Relationen in U, V Und V, dann wenn A, Dann IN, Ansonsten MIT– binäre Fuzzy-Relation in U´V, das ist die Vereinigung des kartesischen Produkts A Und IN(siehe (5.23)) und das kartesische Negationsprodukt A Und MIT.

Nächste Aussage Wenn A, Dann IN kann als Sonderfall der Aussage If betrachtet werden A, Dann IN, Ansonsten Mit der Annahme Was MIT- Komplett-Set V.

Das. Wenn A, Dann IN Wenn A, Dann IN, Ansonsten V=À´Â+ØÀ´V(6.27)

Im Wesentlichen entspricht dies der Interpretation der Aussage If A, Dann IN Aussage Wenn A, Dann IN, Ansonsten gleichgültig.

Beispiel 6.2. Abbildung (6.26) und (6.27)

Tun wir mal so

A=klein=1/1+0,4/2

B=groß=0,4/2+1/3

C=nicht groß=1/1+0,6/2

Dann wenn A, Dann IN, Ansonsten С=(1/1+0,4/2)´(0,4/2+1/3)+(0,6/2+1/3)´ (1/1+0,6/2)= 0,4/(1,2)+1/ (1,3)+0,6/(2,1)+0,6/(2,2)+0,4/(2,3)+1/ (3,1)+0,6/(3,2)

Was kann als Beziehungsmatrix dargestellt werden?

Wenn A, Dann IN, Ansonsten C=

Ebenfalls

Wenn A, Dann Â=(1/1+0,4/2)´(0,4/2+1/3)+(0,6/2+1/3)´(1/1+1/2+1/3 ) =0,4/(1,2 )+1/(1,3)+0,6/(2,1)+0,6/(2,2)+0,6/(2,3)+ 1/(3,1)+1/(3,2)+1/(3,3)

Oder gleichwertig

Wenn A, Dann B=

Inferenz in neuronalen Netzen.

Hopfield-Netzwerk.

Hopfield nutzte die Energiefunktion als Werkzeug zum Aufbau wiederkehrender Netzwerke und zum Verständnis ihrer Dynamik. Hopfields Formalisierung verdeutlichte das Prinzip der Speicherung von Informationen als dynamisch stabile Attraktoren und machte die Verwendung wiederkehrender Netzwerke für das assoziative Gedächtnis und zur Lösung kombinatorischer Optimierungsprobleme populär.

Die dynamische Änderung von Netzwerkzuständen kann auf mindestens zwei Arten erfolgen: synchron und asynchron. Im ersten Fall werden bei jedem Zeitschritt alle Elemente gleichzeitig geändert, im zweiten Fall wird zu jedem Zeitpunkt ein Element ausgewählt und verarbeitet. Dieses Element kann zufällig ausgewählt werden. Die Haupteigenschaft der Energiefunktion besteht darin, dass sie während der Entwicklung von Netzwerkzuständen gemäß der Gleichung abnimmt und ein lokales Minimum (Attraktor) erreicht, in dem sie die Energie konstant hält.

Assoziatives Gedächtnis

Wenn es sich bei den im Netzwerk gespeicherten Mustern um Attraktoren handelt, kann es als assoziatives Gedächtnis genutzt werden. Jedes Beispiel, das sich im Anziehungsbereich einer gespeicherten Probe befindet, kann als Zeiger für deren Wiederherstellung verwendet werden.

Das assoziative Gedächtnis arbeitet typischerweise in zwei Modi: Speichern und Abrufen. Im Speichermodus werden die Gewichte der Verbindungen im Netzwerk bestimmt, sodass sich die Attraktoren die Menge merken p n-dimensionale Proben ( x 1 , x 2 ,..., x p), die gespeichert werden muss. Im zweiten Modus wird das Eingabebeispiel als Anfangszustand des Netzwerks verwendet, und dann entwickelt sich das Netzwerk entsprechend seiner Dynamik weiter. Das Ausgabemuster wird festgelegt, wenn das Netzwerk das Gleichgewicht erreicht.

Wie viele Beispiele können online gespeichert werden? N binäre Elemente? Mit anderen Worten: Wie hoch ist die Speicherkapazität des Netzwerks? Es ist endlich, da das Netzwerk mit N Binärelemente haben ein Maximum 2n verschiedene Zustände, und nicht alle von ihnen sind Attraktoren. Darüber hinaus können nicht alle Attraktoren nützliche Muster speichern. Falsche Attraktoren können auch Proben speichern, sie unterscheiden sich jedoch von den Trainingssatzbeispielen.

Energieminimierung. Das Hopfield-Netzwerk entwickelt sich in Richtung einer Reduzierung seiner Energie. Damit können kombinatorische Optimierungsprobleme gelöst werden, wenn sie als Energieminimierungsprobleme formuliert werden können. Insbesondere das Problem des Handlungsreisenden lässt sich ähnlich formulieren.

Einige andere Trainingsalgorithmen aus Tabelle 6.3 werden in den folgenden Werken beschrieben: Adaline und Madaline, lineare Diskriminanzanalyse, Sammon-Projektionen, Hauptkomponentenanalyse.

ANN-Entwicklungsprozess.

Obwohl der ANN-Prozess den strukturellen Entwurfsmethoden herkömmlicher Computer-ICs ähnelt, gelten einige Schritte nur für neuronale Netzwerkanwendungen oder haben zusätzliche Faktoren. Im nachfolgend beschriebenen Prozess gehen wir davon aus, dass die vorbereitenden Schritte der Systementwicklung, wie die Ermittlung des Informationsbedarfs und die Durchführung einer Machbarkeitsstudie, vollständig abgeschlossen sind. Solche Schritte sind in jedem Informationssystem üblich.

Wie in Abb. 6.8. besteht der ANN-Anwendungsentwicklungsprozess aus neun Schritten.

An Schritt 1 Es werden Daten gesammelt, die zum Training und Testen des Netzwerks verwendet werden.

Es ist wichtig zu berücksichtigen, dass die vorliegende Aufgabe für die Erlangung einer KNN-Lösung zugänglich ist und dass für diesen Zweck ausreichende Daten vorhanden sind und beschafft werden können.

An Schritt 2 Es müssen Trainingsdaten ermittelt und ein Plan erstellt werden, um die Leistung des Netzwerks zu testen.

An Schritte 3-4 Die Netzwerkarchitektur und die Trainingsmethode werden ausgewählt. Die Verfügbarkeit spezieller ANN-Entwicklungstools kann bestimmen, welche Art von neuronalem Netzwerk aufgebaut werden soll. Die spezifische Anzahl der Neuronen und die Anzahl der Schichten sind wichtige Überlegungen.

Bestehende neuronale Netzwerkmodelle verfügen über Parameter, die das Netzwerk auf die gewünschte Ausführungsebene abstimmen. Teil des Prozesses in Schritt 5 ist die Initialisierung der Netzwerkgewichte und -parameter, die auch nach Erhalt der Ausführungsantwort erfolgt. Oftmals sind die Ausgangswerte wichtig für die Wirksamkeit und Dauer eines Trainings. Das folgende Verfahren in Schritt 6 wandelt die verwendeten Daten in den Typ und das Format um, die das neuronale Netzwerk benötigt. Dies kann bedeuten, dass Programme dazu verwendet werden Vorbehandlung Daten. Die Datenspeicherung und -manipulation muss organisiert werden, um bei Bedarf eine bequeme und effiziente Neuschulung des neuronalen Netzwerks zu ermöglichen. Auch die Art und Weise, wie die verwendeten Daten präsentiert und organisiert werden, bestimmt oft die Effizienz und möglicherweise die Genauigkeit der vom KNN erzielten Ergebnisse.

An Schritte 7-8 Training und Tests werden als Intervallprozess durchgeführt, bei dem dem Netzwerk Eingaben und gewünschte Ausgaben präsentiert werden.

Das neuronale Netzwerk berechnet die tatsächlichen Ausgaben und passt die Gewichte an, bis die tatsächlichen Ausgaben dem gewünschten Zustand entsprechen. Aus den historischen Daten (Teil der in Schritt 1 gesammelten Daten) werden die gewünschten Outputs und deren Beziehungen zu den Inputs ermittelt.

An Schritt 9 Durch diesen Prozess erhält man einen stabilen Gewichtssatz. Jetzt kann das Netzwerk die gewünschten Ergebnisse der veröffentlichten Eingaben sowie auf dem Trainingssatz reproduzieren. Das neuronale Netzwerk ist als eigenständiges System oder als Teil eines anderen Softwaresystems einsatzbereit.

Abb.6.8. Ablauf des Prozesses der Entwicklung und Konfiguration eines künstlichen neuronalen Netzwerks.

Wissenschaftliche Forschung kann als zielgerichtetes Wissen definiert werden. Forschen bedeutet studieren, Muster erkennen, Fakten systematisieren.

Wissenschaftliche Forschung weist eine Reihe von Besonderheiten auf: das Vorhandensein eines klar formulierten Ziels; der Wunsch, das Unbekannte zu entdecken; systematischer Prozess und Ergebnisse; Begründung und Überprüfung der gewonnenen Schlussfolgerungen und Verallgemeinerungen.

Dabei ist zwischen wissenschaftlichem und alltäglichem Wissen zu unterscheiden. Wissenschaftliches Wissen erfordert im Gegensatz zum Alltagswissen den Einsatz spezieller Forschungsmethoden. In diesem Zusammenhang besteht die Notwendigkeit, ständig nach neuen Methoden zur Untersuchung unerforschter Objekte zu suchen.

Was sind Forschungsmethoden?

Forschungsmethoden sind Mittel zur Zielerreichung wissenschaftlicher Arbeit. Die Wissenschaft, die diese Methoden untersucht, wird „Methodologie“ genannt.

Jede menschliche Aktivität hängt nicht nur vom Objekt (auf das sie abzielt) und dem Akteur (Subjekt) ab, sondern auch davon, wie sie ausgeführt wird, welche Mittel und Methoden verwendet werden. Dies ist die Essenz der Methode.

Aus dem Griechischen übersetzt bedeutet „Methode“ „Art des Wissens“. Eine richtig gewählte Methode trägt zu einer schnelleren und genaueren Zielerreichung bei und dient als besonderer Kompass, der dem Forscher hilft, die meisten Fehler auf seinem Weg zu vermeiden.

Der Unterschied zwischen Methode und Technik und Methodik

Sehr oft herrscht Verwirrung in den Begriffen Methode und Methodik. Eine Methodik ist ein System von Erkenntnisweisen. Beispielsweise können bei der Durchführung soziologischer Forschung quantitative und qualitative Methoden kombiniert werden. Der gesamte Satz dieser Methoden wird eine Forschungsmethodik bilden.

Der Begriff der Methodik ist in seiner Bedeutung eng mit dem Forschungsverfahren, seinem Ablauf und seinem Algorithmus verbunden. Ohne eine qualitativ hochwertige Methodik wird selbst eine richtig ausgewählte Methode kein gutes Ergebnis liefern.

Wenn Methodologie eine Möglichkeit ist, eine Methode umzusetzen, dann ist Methodologie das Studium von Methoden. Im weitesten Sinne ist die Methodik

Klassifizierung wissenschaftlicher Forschungsmethoden

Alle Methoden der wissenschaftlichen Forschung sind in mehrere Ebenen unterteilt.

Philosophische Methoden

Die bekanntesten unter ihnen sind die ältesten Methoden: die dialektische und die metaphysische. Darüber hinaus umfassen philosophische Methoden phänomenologische, hermeneutische, intuitive, analytische, eklektische, dogmatische, sophistische und andere.

Allgemeine wissenschaftliche Methoden

Die Analyse des Erkenntnisprozesses ermöglicht es, die Methoden zu identifizieren, auf denen nicht nur wissenschaftliche, sondern auch jede alltägliche menschliche Erkenntnis aufbaut. Dazu gehören Methoden auf theoretischer Ebene:

  1. Analyse ist die Aufteilung eines einzelnen Ganzen in einzelne Teile, Seiten und Eigenschaften für deren weitere detaillierte Untersuchung.
  2. Synthese ist die Kombination einzelner Teile zu einem Ganzen.
  3. Abstraktion ist die gedankliche Auswahl aller wesentlichen Eigenschaften des betrachteten Themas bei gleichzeitiger Abstraktion von einer Reihe anderer inhärenter Merkmale.
  4. Generalisierung ist die Festlegung einer einheitlichen Eigenschaft von Objekten.
  5. Induktion ist eine Methode zur Konstruktion einer allgemeinen Schlussfolgerung auf der Grundlage bekannter Einzelfakten.

Beispiele für Forschungsmethoden

Wenn man beispielsweise die Eigenschaften bestimmter Flüssigkeiten untersucht, stellt man fest, dass sie die Eigenschaft der Elastizität besitzen. Aus der Tatsache, dass Wasser und Alkohol Flüssigkeiten sind, schließen sie, dass alle Flüssigkeiten die Eigenschaft der Elastizität besitzen.

Abzug– eine Möglichkeit, auf der Grundlage eines allgemeinen Urteils eine bestimmte Schlussfolgerung zu ziehen.

Beispielsweise sind zwei Tatsachen bekannt: 1) alle Metalle haben die Eigenschaft der elektrischen Leitfähigkeit; 2) Kupfer ist ein Metall. Wir können daraus schließen, dass Kupfer die Eigenschaft der elektrischen Leitfähigkeit besitzt.

Analogie- eine Erkenntnismethode, bei der die Kenntnis einer Reihe gemeinsamer Merkmale von Objekten es ermöglicht, anhand anderer Merkmale auf deren Ähnlichkeit zu schließen.

Die Wissenschaft weiß beispielsweise, dass Licht Eigenschaften wie Interferenz und Beugung besitzt. Darüber hinaus wurde bereits früher festgestellt, dass Schall die gleichen Eigenschaften hat und dies auf seine Wellennatur zurückzuführen ist. Basierend auf dieser Analogie wurde eine Schlussfolgerung über die Wellennatur von Licht (in Analogie zum Schall) gezogen.

Modellieren– Erstellung eines Modells (Kopie) des Untersuchungsgegenstandes zum Zweck seiner Forschung.

Neben Methoden auf theoretischer Ebene gibt es Methoden auf empirischer Ebene.

Klassifikation allgemeiner wissenschaftlicher Methoden

Empirische Methoden

Methode Definition Beispiel
ÜberwachungForschung basierend auf den Sinnen; Wahrnehmung von PhänomenenUm eine der Phasen der kindlichen Entwicklung zu untersuchen, beobachtete J. Piaget manipulative Spiele von Kindern mit bestimmten Spielzeugen. Aufgrund seiner Beobachtung kam er zu dem Schluss, dass die Fähigkeit des Kindes, Gegenstände zusammenzusetzen, später einsetzt als die dafür notwendigen motorischen Fähigkeiten.
BeschreibungInformationen aufzeichnenDer Anthropologe zeichnet alle Fakten des Stammeslebens auf, ohne Einfluss darauf zu nehmen
MessungVergleich anhand allgemeiner MerkmaleBestimmung der Körpertemperatur mit einem Thermometer; Gewichtsbestimmung durch Ausbalancieren von Gewichten auf Hebelwaagen; Entfernungsbestimmung mittels Radar
ExperimentForschung basierend auf Beobachtung unter speziell für diesen Zweck geschaffenen BedingungenAuf einer belebten Stadtstraße blieben Gruppen von Menschen in unterschiedlicher Anzahl (2, 3, 4, 5, 6 usw. Personen) stehen und schauten nach oben. Passanten blieben in der Nähe stehen und begannen ebenfalls nach oben zu schauen. Es stellte sich heraus, dass der Prozentsatz derjenigen, die beitraten, deutlich zunahm, als die Versuchsgruppe 5 Personen erreichte.
VergleichForschung basierend auf der Untersuchung von Ähnlichkeiten und Unterschieden zwischen Objekten; Vergleich eines Objekts mit einem anderenVergleich der Wirtschaftsindikatoren des Basisjahres mit der Vergangenheit, auf deren Grundlage Rückschlüsse auf die Wirtschaftsentwicklung gezogen werden

Methoden auf theoretischer Ebene

Methode Definition Beispiel
FormalisierungDas Wesen von Prozessen durch symbolische Darstellung sichtbar machenFlugsimulation basierend auf der Kenntnis der Haupteigenschaften des Flugzeugs
AxiomatisierungAnwendung von Axiomen zur Konstruktion von TheorienEuklids Geometrie
Hypothetisch-deduktivEin System von Hypothesen erstellen und daraus Schlussfolgerungen ziehenDie Entdeckung des Planeten Neptun basierte auf mehreren Hypothesen. Als Ergebnis ihrer Analyse kamen sie zu dem Schluss, dass Uranus nicht der letzte Planet des Sonnensystems ist. Die theoretische Berechtigung für die Entdeckung eines neuen Planeten an einem bestimmten Ort wurde dann empirisch bestätigt

Spezifische wissenschaftliche (spezielle) Methoden

Jede wissenschaftliche Disziplin verwendet eine Reihe spezifischer Methoden, die zu verschiedenen „Ebenen“ der Methodik gehören. Es ist ziemlich schwierig, eine Methode einer bestimmten Disziplin zuzuordnen. Allerdings greift jede Disziplin auf eine Reihe von Methoden zurück. Lassen Sie uns einige davon auflisten.

Biologie:

  • genealogisch - das Studium der Vererbung, Zusammenstellung von Stammbäumen;
  • historisch – Bestimmung der Beziehung zwischen Phänomenen, die über einen langen Zeitraum (Milliarden von Jahren) stattgefunden haben;
  • biochemisch – das Studium der chemischen Prozesse des Körpers usw.

Jurisprudenz:

  • historisch und juristisch – Erwerb von Kenntnissen über die Rechtspraxis und Gesetzgebung in verschiedenen Zeiträumen;
  • Rechtsvergleichung – Suche und Untersuchung von Ähnlichkeiten und Unterschieden zwischen staatlichen Rechtsinstitutionen von Ländern;
  • Rechtssoziologische Methode – Erforschung der Realität im Bereich Staat und Recht mittels Fragebögen, Umfragen etc.

In der Medizin gibt es drei Hauptgruppen von Methoden zur Untersuchung des Körpers:

  • Labordiagnostik – Untersuchung der Eigenschaften und Zusammensetzung biologischer Flüssigkeiten;
  • Funktionsdiagnostik – Untersuchung von Organen nach ihren Erscheinungsformen (mechanisch, elektrisch, klanglich);
  • Strukturdiagnostik – Veränderungen in der Körperstruktur erkennen.

Wirtschaft:

  • Wirtschaftsanalyse – das Studium der untersuchten Komponenten des Ganzen;
  • statistisch-ökonomische Methode – Analyse und Verarbeitung statistischer Indikatoren;
  • soziologische Methode - Fragebögen, Umfragen, Interviews usw.
  • Entwurf und Berechnung, wirtschaftliche Modellierung usw.

Psychologie:

  • experimentelle Methode – Umstände schaffen, die die Manifestation eines mentalen Phänomens provozieren;
  • Beobachtungsmethode – ein mentales Phänomen wird durch organisierte Wahrnehmung eines Phänomens erklärt;
  • biografische Methode, vergleichende genetische Methode usw.

Analyse empirischer Forschungsdaten

Ziel der empirischen Forschung ist die Gewinnung empirischer Daten – Daten, die durch Erfahrung und Praxis gewonnen werden.

Die Analyse solcher Daten erfolgt in mehreren Schritten:

  1. Beschreibung der Daten. In dieser Phase werden zusammengefasste Ergebnisse anhand von Indikatoren und Grafiken beschrieben.
  2. Vergleich. Ähnlichkeiten und Unterschiede zwischen den beiden Proben werden identifiziert.
  3. Abhängigkeiten studieren. Ermittlung von Zusammenhängen (Korrelation, Regressionsanalyse).
  4. Lautstärke reduzieren. Untersuchen Sie alle Variablen, wenn es eine große Anzahl davon gibt, und identifizieren Sie die aussagekräftigsten.
  5. Gruppierung.

Die Ergebnisse aller durchgeführten Untersuchungen – Analyse und Interpretation der Daten – werden auf Papier festgehalten. Das Spektrum solcher Forschungsarbeiten ist recht breit gefächert: Tests, Abstracts, Berichte, Studienarbeiten, Abschlussarbeiten, Dissertationen, Monographien, Lehrbücher usw. Erst nach einer umfassenden Untersuchung und Auswertung der Erkenntnisse werden die Forschungsergebnisse in die Praxis umgesetzt.

Statt einer Schlussfolgerung

A. M. Novikov und D. A. Novikova unterscheiden im Buch „“ auch Methoden-Operationen (ein Weg, um ein Ziel zu erreichen) und Methoden-Aktionen (Lösung eines bestimmten Problems) in Methoden der theoretischen und empirischen Forschung. Diese Angabe ist kein Zufall. Eine strengere Systematisierung wissenschaftlicher Erkenntnisse erhöht deren Wirksamkeit.

Forschungsmethoden wie sie sind aktualisiert: 15. Februar 2019 von: Wissenschaftliche Artikel.Ru

Die Dateneingabe und -ausgabe kann auf drei verschiedene Arten erfolgen (Abbildung 11.1).

Reis. 11.1. E/A-Methoden

1. Die I/O-Steuerung erfolgt durch die CPU– Softwarekanal für den Datenaustausch zwischen OP und VU

2. Die I/O-Steuerung erfolgt durch spezielle Zusatzgeräte - Direktzugriffskanal.

1. Programmierbare E/A (Bereitschaftsabfragemodus). Synchrone Steuerung. Die einfachste Methode besteht darin, dass das Benutzerprogramm eine Systemanforderung stellt, die der Kernel in einen Aufruf der Prozedur des entsprechenden Treibers übersetzt. Der Treiber beginnt dann mit dem I/O-Prozess. Während dieser Zeit führt der Treiber eine sehr kurze Programmschleife aus und fragt ständig die Bereitschaft des Geräts ab, mit dem er arbeitet (normalerweise gibt es ein Bit, das anzeigt, dass das Gerät noch beschäftigt ist). Wenn der E/A-Vorgang abgeschlossen ist, platziert der Treiber die Daten dort, wo sie benötigt werden, und kehrt in ihren ursprünglichen Zustand zurück. Das Betriebssystem gibt dann die Kontrolle an das Programm zurück, das den Aufruf getätigt hat. Diese Methode heißt Warten auf Bereitschaft oder aktives Warten und hat einen Nachteil: Der Prozessor muss das Gerät abfragen, bis es seine Arbeit abgeschlossen hat.

Der verwendete Befehlssatz umfasst I/O-Befehle, die zu den folgenden Kategorien gehören.

Kontrolle. Befehle in dieser Kategorie werden verwendet, um ein externes Gerät zu betätigen und ihm mitzuteilen, was es tun soll. Beispielsweise kann einem Magnetbandgerät der Befehl erteilt werden, eine Aufzeichnung zurückzuspulen oder vorzuspulen.

Zustand. Wird verwendet, um den Status des E/A-Controllers und der zugehörigen Peripheriegeräte zu überprüfen.

Übertragen. Wird zum Lesen und/oder Schreiben von Daten in und aus Prozessorregistern und externen Geräten verwendet.

2. Kommunikationsmodus unterbrechen (asynchrone Steuerung). Bei der zweite Weg Der Treiber startet das Gerät und fordert es auf, einen Interrupt auszugeben, wenn die E/A abgeschlossen ist. Danach gibt der Treiber die Daten zurück, das Betriebssystem blockiert ggf. das aufrufende Programm und beginnt mit der Ausführung anderer Aufgaben. Wenn der Controller das Ende einer Datenübertragung erkennt, generiert er einen Interrupt, um den Abschluss des Vorgangs zu signalisieren.

Der I/O-Prozess besteht in diesem Fall aus folgenden Schritten (Abb. 11.2):

Reis. 11.2. Interruptgesteuerte E/A

Schritt 1. Der Treiber übermittelt den Befehl an die Steuerung, indem er Informationen in die Geräteregister schreibt. Anschließend startet der Controller das Gerät

Schritt 2 . Wenn der Controller mit dem Lesen oder Schreiben der Anzahl an Bytes fertig ist, die er übertragen soll, sendet er über bestimmte Busleitungen ein Signal an den Interrupt-Controller-Chip.

Schritt 3 . Wenn der Interrupt-Controller bereit ist, einen Interrupt zu empfangen (was möglicherweise nicht der Fall ist, wenn er mit einem Interrupt mit höherer Priorität beschäftigt ist), sendet er ein Signal an einen bestimmten Prozessor-Pin, um die CPU zu informieren.

Schritt 4 . Der Interrupt-Controller legt die Gerätenummer auf den Bus, damit der Zentralprozessor sie lesen und herausfinden kann, welches Gerät gerade seine Arbeit beendet hat (schließlich können mehrere Geräte gleichzeitig arbeiten).

Sobald die CPU entschieden hat, den Interrupt zu akzeptieren, werden die Inhalte des Programmzählers (PC) und des Prozessorstatusworts (PSW) auf den aktuellen Stapel verschoben und der Prozessor wechselt in den Kernel-Modus. Die Gerätenummer kann als Index für einen Teil des Speichers verwendet werden, um die Adresse des Interrupt-Handlers für ein bestimmtes Gerät zu finden. Dieser Teil des Gedächtnisses wird aufgerufen Interrupt-Vektor. Wenn der Interrupt-Handler (der Teil des Gerätetreibers, der den Interrupt gesendet hat) seine Arbeit aufnimmt, entfernt er den Programmzähler und das Prozessorstatuswort auf dem Stapel, speichert sie und fragt das Gerät nach Informationen über seinen Status ab. Nachdem die Interrupt-Verarbeitung vollständig abgeschlossen ist, kehrt die Kontrolle zum zuvor ausgeführten Benutzerprogramm zurück, zu dem Befehl, dessen Ausführung noch nicht abgeschlossen ist.

Um die Verbindung zum Gerät nicht zu verlieren, kann ein Zeitcountdown gestartet werden, in dem das Gerät den Befehl ausführen und ein Interrupt-Anforderungssignal ausgeben muss.

Als maximales Zeitintervall wird oft das maximale Zeitintervall bezeichnet, in dem ein I/O-Gerät oder sein Controller ein Interrupt-Anforderungssignal ausgeben muss eine Zeitüberschreitung festlegen .

Wenn nach dem nächsten Befehl an das Gerät diese Zeit abläuft und das Gerät immer noch nicht antwortet, wird davon ausgegangen, dass die Kommunikation mit dem Gerät verloren gegangen ist und eine Steuerung nicht mehr möglich ist. Der Benutzer und/oder Prozess erhält eine entsprechende Diagnosemeldung.

Treiber, die im Interrupt-Modus arbeiten sind ein komplexer Satz von Softwaremodulen und können mehrere Abschnitte haben:

Startbereich,

einen oder mehrere Fortsetzungsabschnitte

● und Abschlussabschnitt.

Abschnitt „Starten“. initiiert einen E/A-Vorgang. Dieser Abschnitt wird ausgeführt, um ein E/A-Gerät einzuschalten oder einfach einen anderen E/A-Vorgang zu initiieren.

Fortsetzungsabschnitt(es können mehrere davon sein, wenn der Algorithmus zur Steuerung des Datenaustauschs komplex ist und mehrere Interrupts erforderlich sind, um eine logische Operation auszuführen) führt die Hauptarbeit der Datenübertragung aus.

Der Fortsetzungsabschnitt ist tatsächlich der Haupt-Interrupt-Handler.

Die verwendete Schnittstelle erfordert möglicherweise mehrere Sequenzen von Steuerbefehlen zur Steuerung der E/A, und das Gerät verfügt normalerweise nur über ein Interrupt-Signal.

Daher muss der Interrupt-Supervisor nach der Ausführung des nächsten Interrupt-Abschnitts beim nächsten Bereitschaftssignal die Kontrolle an einen anderen Abschnitt übergeben.

Dies geschieht durch Ändern der Interrupt-Verarbeitungsadresse nach der Ausführung des nächsten Abschnitts; wenn nur ein Interrupt-Abschnitt vorhanden ist, übergibt dieser selbst die Kontrolle an das eine oder andere Verarbeitungsmodul.

Abschlussabschnitt Schaltet normalerweise das E/A-Gerät aus oder beendet einfach den Vorgang.

Die Verwaltung von E/A-Vorgängen im Interrupt-Modus erfordert mehr Aufwand seitens der Systemprogrammierer – solche Programme sind schwieriger zu schreiben als solche, die im Polling-Modus arbeiten.

Ein Beispiel hierfür ist die Situation mit Treibern, die das Drucken ermöglichen. Daher arbeitet der Parallelport-Druckertreiber im Windows-Betriebssystem (sowohl Windows 9x als auch Windows NT) nicht im Interrupt-Modus, wie dies bei anderen Betriebssystemen der Fall ist, sondern im Bereitschaftsabfragemodus, was zu einer CPU-Auslastung von 100 % auf allen Geräten führt Zeitdruck. Gleichzeitig werden natürlich auch andere zur Ausführung gestartete Aufgaben ausgeführt, allerdings ausschließlich aufgrund der Tatsache, dass das Windows-Betriebssystem präventives Multitasking implementiert und von Zeit zu Zeit den Druckverwaltungsprozess unterbricht und den Zentralprozessor an andere Aufgaben übergibt.

3. Direkter Speicherzugriff.Dritte Methode E/A-Informationen bestehen aus der Verwendung eines speziellen Controllers für direkten Speicherzugriff (DMA, Direct Memory Access), der den Bitfluss zwischen RAM und einigen Controllern ohne ständigen Eingriff des Zentralprozessors verwaltet. Der Prozessor ruft den DMA-Chip an, teilt ihm mit, wie viele Bytes übertragen werden sollen, teilt ihm die Geräte- und Speicheradressen sowie die Richtung der Datenübertragung mit und lässt ihn selbstständig fortfahren. Nach Abschluss der Arbeit initiiert der DMA einen Interrupt, der auf die gleiche Weise wie oben beschrieben verarbeitet wird.

Das Betriebssystem kann den direkten Speicherzugriff nur nutzen, wenn es über einen Hardware-DMA-Controller verfügt, über den die meisten Systeme verfügen. Typischerweise verarbeitet ein auf dem Motherboard installierter DMA-Controller Datenübertragungsanfragen von mehreren verschiedenen E/A-Geräten, oft gleichzeitig.

Wo immer er sich physisch befindet, kann der DMA-Controller unabhängig von der CPU auf den Systembus zugreifen ( Reis. 11.3). Es enthält mehrere Register, die von der CPU gelesen und geschrieben werden können.

Reis. 11.3. I/O mit Direktzugriff

Dazu gehören ein Speicheradressregister, ein Bytezähler und ein oder mehrere Steuerregister. Steuerregister geben Folgendes an:

welcher I/O-Port verwendet werden soll,

Richtung der Datenübertragung (Lesen von oder Schreiben auf ein I/O-Gerät),

Übertragungseinheit (Daten byteweise oder wortweise übertragen),

Anzahl der Bytes, die in einem Vorgang übertragen werden sollen.

Zunächst programmiert der Zentralprozessor den DMA-Controller, stellt seine Register ein und gibt so an, welche Daten wohin verschoben werden sollen ( Schritt 1 in Abb. 11.3).

Anschließend weist der Prozessor den Festplattencontroller an, die Daten in den internen Puffer einzulesen und die Prüfsumme zu überprüfen. Sobald die Daten vom Festplattencontroller empfangen und überprüft wurden, kann DMA mit dem Betrieb beginnen.

Der DMA-Controller beginnt mit der Datenübertragung, indem er über den Bus eine Leseanforderung an den Festplattencontroller sendet ( Schritt 2). Diese Leseanforderung sieht aus wie eine normale Leseanforderung, sodass der Festplattencontroller nicht einmal weiß, ob sie von der CPU oder dem DMA-Controller stammt. Normalerweise befindet sich die Speicheradresse bereits auf dem Adressbus, sodass der Festplattencontroller immer weiß, wohin er das nächste Wort aus seinem internen Puffer senden muss.

Speicherschreibvorgänge sind ein weiterer Standard-Buszyklus ( Schritt 3).

Wenn die Aufzeichnung abgeschlossen ist, sendet der Festplattencontroller außerdem über den Bus ein Bestätigungssignal an den DMA-Controller ( Schritt 4).

Der DMA-Controller erhöht dann die verwendete Speicheradresse und verringert den Bytezähler.

Danach werden die Schritte 2 bis 4 wiederholt, bis der Zählerwert Null wird.

Im Einklang mit der Logik der wissenschaftlichen Forschung wird eine Forschungsmethodik entwickelt. Es handelt sich um einen Komplex theoretischer und empirischer Methoden, deren Kombination es ermöglicht, komplexe und multifunktionale Objekte mit größter Zuverlässigkeit zu untersuchen. Der Einsatz einer Reihe von Methoden ermöglicht eine umfassende Untersuchung des untersuchten Problems mit all seinen Aspekten und Parametern.

I. Methoden der empirischen Erkenntnis. Sie dienen der Sammlung wissenschaftlicher Fakten, die einer theoretischen Analyse unterzogen werden.

Der empirische Wissensstand umfasst:

Beobachtung von Phänomenen

Ansammlung und Auswahl von Fakten

Verbindungen zwischen ihnen herstellen.

Die empirische Ebene ist die Phase der Erhebung von Daten (Fakten) über soziale und natürliche Objekte. Auf empirischer Ebene spiegelt sich der Untersuchungsgegenstand vor allem in äußeren Zusammenhängen und Erscheinungsformen wider. Auf dieser Ebene geht es vor allem um die Faktualisierung von Aktivitäten. Diese Probleme werden mit geeigneten Methoden gelöst:

1. Beobachtung

Es handelt sich um einen aktiven kognitiven Prozess, der in erster Linie auf der Arbeit der menschlichen Sinne und seiner objektiven materiellen Aktivität, der bewussten und gezielten Wahrnehmung von Phänomenen der Außenwelt, basiert, um Phänomene zu studieren und ihre Bedeutung zu finden. Sein Wesen besteht darin, dass das untersuchte Objekt nicht vom Beobachter beeinflusst werden sollte, das heißt, das Objekt sollte sich in normalen, natürlichen Bedingungen befinden. Dies ist die einfachste Methode, die in der Regel als Element anderer empirischer Methoden fungiert.

Man unterscheidet zwischen direkter (visueller) Beobachtung, bei der Informationen ohne die Hilfe von Instrumenten gewonnen werden, und indirekter Beobachtung – Informationen werden mit Instrumenten oder automatisch mit Aufzeichnungsgeräten gewonnen.

Die Beobachtung als Erkenntnismittel liefert primäre Informationen über die Welt in Form einer Reihe empirischer Aussagen.

Im Alltag und in der Wissenschaft sollen Beobachtungen zu Ergebnissen führen, die nicht vom Willen, Gefühlen und Wünschen der Probanden abhängen. Um die Grundlage für späteres theoretisches und praktisches Handeln zu werden, müssen diese Beobachtungen uns über die objektiven Eigenschaften und Zusammenhänge real existierender Objekte und Phänomene informieren.

Um eine fruchtbare Erkenntnismethode zu sein, muss die Beobachtung eine Reihe von Anforderungen erfüllen, von denen die wichtigsten sind:

Planbarkeit;

Fokus;

Aktivität;

Systematik.

Beobachtung ist eine gezielte Wahrnehmung eines Phänomens, bei der der Forscher konkretes Faktenmaterial erhält. Gleichzeitig werden Aufzeichnungen (Protokolle) der Beobachtungen geführt. Die Beobachtung erfolgt in der Regel nach einem vorab geplanten Plan, wobei bestimmte Beobachtungsobjekte hervorgehoben werden. Folgende Beobachtungsphasen lassen sich unterscheiden:

Definition von Aufgaben und Zielen (warum, zu welchem ​​Zweck wird die Beobachtung durchgeführt);

Auswahl von Objekt, Subjekt und Situation (was zu beobachten ist);

Auswahl einer Beobachtungsmethode, die den geringsten Einfluss auf das Untersuchungsobjekt hat und die Sammlung der notwendigen Informationen (wie zu beobachten ist) am meisten gewährleistet;

Auswählen von Methoden zur Aufzeichnung der Beobachtungen (wie Aufzeichnungen geführt werden);

Verarbeitung und Interpretation der erhaltenen Informationen (was ist das Ergebnis).

Man unterscheidet zwischen eingeschlossener Beobachtung, wenn der Forscher Mitglied der Gruppe wird, in der die Beobachtung durchgeführt wird, und unbeteiligter Beobachtung – „von außen“; offen und verborgen (inkognito); kontinuierlich und selektiv.

Beobachtung ist eine sehr zugängliche Methode, hat jedoch ihre Nachteile, da die Beobachtungsergebnisse von den persönlichen Merkmalen (Einstellungen, Interessen, Geisteszustände) des Forschers beeinflusst werden.

2. Vergleich

Eine der gebräuchlichsten Erkenntnismethoden. Nicht ohne Grund heißt es: „Alles weiß man durch Vergleich.“ Es ermöglicht Ihnen, Ähnlichkeiten und Unterschiede zwischen Objekten und Phänomenen festzustellen.

Damit ein Vergleich erfolgreich ist, muss er zwei Grundvoraussetzungen erfüllen:

Es sollten nur solche Phänomene verglichen werden, zwischen denen eine gewisse objektive Gemeinsamkeit bestehen kann.

Um Objekte zu verstehen, muss ihr Vergleich nach den wichtigsten, wesentlichen (im Hinblick auf eine bestimmte kognitive Aufgabe) Merkmalen erfolgen.

Mithilfe des Vergleichs können Informationen über ein Objekt auf zwei verschiedene Arten gewonnen werden. Erstens kann es als direktes Ergebnis eines Vergleichs dienen. Zweitens ist die Gewinnung primärer Informationen sehr oft nicht das Hauptziel des Vergleichs; dieses Ziel besteht darin, sekundäre oder abgeleitete Informationen zu erhalten, die das Ergebnis der Verarbeitung von Primärdaten sind. Die gebräuchlichste und wichtigste Methode einer solchen Verarbeitung ist der Analogschluss.

3. Messung

Es ist ein genaueres kognitives Werkzeug. Messung ist das Verfahren zur Bestimmung des Zahlenwertes einer bestimmten Größe anhand einer Maßeinheit. Der Wert dieses Verfahrens besteht darin, dass es genaue, quantitative Informationen über die umgebende Realität liefert. Der wichtigste Indikator für die Qualität einer Messung und ihren wissenschaftlichen Wert ist die Genauigkeit, die vom Fleiß des Wissenschaftlers, von den von ihm verwendeten Methoden, vor allem aber von den verfügbaren Messgeräten abhängt.

4. Experimentieren

Ein Experiment ist ein speziell organisierter Test einer bestimmten Methode oder Arbeitsweise zur Feststellung ihrer Wirksamkeit. Das eigentliche Experiment besteht in der Durchführung einer Reihe von Experimenten (Erstellung experimenteller Situationen, Beobachtung, Bewältigung der Erfahrung und Messung von Reaktionen).

Die Schwierigkeiten der experimentellen Methode bestehen darin, dass die Technik ihrer Umsetzung perfekt beherrscht werden muss. Bei einem Experiment geht es darum, in die natürlichen Existenzbedingungen von Objekten und Phänomenen einzugreifen oder bestimmte Aspekte davon unter speziell geschaffenen Bedingungen zu reproduzieren.

Die experimentelle Untersuchung von Objekten hat im Vergleich zur Beobachtung eine Reihe von Vorteilen:

1) Während des Experiments wird es möglich, dieses oder jenes Phänomen in seiner „reinen Form“ zu untersuchen;

2) Das Experiment ermöglicht es Ihnen, die Eigenschaften von Realitätsobjekten unter extremen Bedingungen zu untersuchen;

3) Der wichtigste Vorteil des Experiments ist seine Wiederholbarkeit.

Jedes Experiment kann entweder direkt mit einem Objekt oder mit einem „Ersatz“ für dieses Objekt – einem Modell – durchgeführt werden.

Der Einsatz von Modellen ermöglicht die Anwendung der experimentellen Forschungsmethode auf solche Objekte, deren direkte Bedienung schwierig oder sogar unmöglich ist. Daher ist die Modellierung eine besondere Methode und wird in der Wissenschaft häufig eingesetzt.

5. Materialmodellierung

Modellierung ist eine Methode zur Untersuchung von Objekten mithilfe von Modellen, die es ermöglicht, Erkenntnisse mithilfe von Ersatzmodellen (Modellen) realer Objekte zu erlangen. Ein Modell ist ein mentales oder materiell realisiertes System, das ein anderes System ersetzt, mit dem es sich in einem ähnlichen Zustand befindet. Das Modell ersetzt das Untersuchungsobjekt und weist einige gemeinsame Eigenschaften mit dem Untersuchungsobjekt auf. Materialmodelle werden aus realen Materialien hergestellt. Die Modellierungsmethode ermöglicht es, anhand von Experimenten mit Modellen Informationen über die verschiedenen Eigenschaften der untersuchten Phänomene zu erhalten.

6. Erhebungsmethoden – Gespräch, Interview, Fragebogen.

Ein Gespräch ist eine eigenständige oder ergänzende Recherchemethode, die dazu dient, notwendige Informationen einzuholen oder zu klären, was bei der Beobachtung nicht klar genug war. Das Gespräch wird nach einem vorgeplanten Plan geführt, wobei Fragen hervorgehoben werden, die einer Klärung bedürfen. Es wird in freier Form durchgeführt, ohne die Antworten des Gesprächspartners aufzuzeichnen.

Vorstellungsgespräche sind eine Art Gespräch. Bei der Befragung hält sich der Forscher an vorgeplante Fragen, die in einer bestimmten Reihenfolge gestellt werden. Während des Interviews werden die Antworten offen aufgezeichnet.

Befragung ist eine Methode der Massensammlung von Material mithilfe eines Fragebogens. Die Adressaten der Fragebögen geben schriftliche Antworten auf die Fragen. Gespräche und Interviews werden als persönliche Befragungen bezeichnet, während Fragebögen als Korrespondenzbefragungen bezeichnet werden.

Die Wirksamkeit von Gesprächen, Interviews und Fragebögen hängt maßgeblich vom Inhalt und der Struktur der gestellten Fragen ab. Gesprächsplan, Interview und Fragebogen sind ein Fragenkatalog (Fragebogen). Beim Entwerfen eines Fragebogens muss die Art der zu erhaltenden Informationen festgelegt werden. Formulieren einer ungefähren Reihe von Fragen, die gestellt werden sollten; Erstellung des ersten Plans des Fragebogens und dessen vorläufige Erprobung durch eine Pilotstudie; Korrektur des Fragebogens und dessen abschließende Bearbeitung.

II. Methoden der theoretischen Forschung

Unter theoretischer Analyse versteht man die Identifizierung und Betrachtung einzelner Aspekte, Merkmale, Merkmale und Eigenschaften von Phänomenen. Indem wir einzelne Sachverhalte analysieren, gruppieren und systematisieren, identifizieren wir das Allgemeine und Besondere in ihnen und stellen ein allgemeines Prinzip oder eine allgemeine Regel auf. Die Analyse geht mit der Synthese einher und hilft, in das Wesen der untersuchten Phänomene einzudringen.

Die theoretische Erkenntnisebene ist mit dem Überwiegen geistiger Aktivität, mit dem Erfassen empirischen Materials und seiner Verarbeitung verbunden. Auf der theoretischen Ebene offenbart es sich

Interne Struktur und Entwicklungsmuster von Systemen und Phänomenen

Ihre Interaktion und Bedingtheit.

Um Probleme zu definieren, Hypothesen zu formulieren und gesammelte Fakten auszuwerten, sind theoretische Methoden notwendig. Theoretische Methoden sind mit dem Studium der Literatur verbunden: die Werke der Klassiker; allgemeine und spezielle Arbeiten; historische Dokumente; Zeitschriften usw.

Durch das Studium der Literatur lässt sich herausfinden, welche Aspekte und Probleme bereits ausreichend erforscht sind, welche wissenschaftlichen Diskussionen laufen, was veraltet ist und welche Fragen noch nicht gelöst sind. Die Arbeit mit Literatur umfasst den Einsatz von Methoden wie der Erstellung einer Bibliographie – einer Liste von Quellen, die für die Arbeit im Zusammenhang mit dem untersuchten Problem ausgewählt wurden; abstrahieren – eine komprimierte Zusammenfassung des Hauptinhalts eines oder mehrerer Werke zu einem allgemeinen Thema; Notizen machen – detailliertere Aufzeichnungen führen, deren Grundlage die Hervorhebung der Hauptideen und Bestimmungen der Arbeit ist; Anmerkung – eine kurze Aufzeichnung des allgemeinen Inhalts eines Buches oder Artikels; Zitat – eine wörtliche Aufzeichnung von Ausdrücken, Sach- oder Zahlenangaben, die in einer literarischen Quelle enthalten sind.

Auf der theoretischen Ebene der Forschung verwendete Methoden:

1. Abstraktion

Dies lenkt von einigen Eigenschaften der untersuchten Objekte ab und hebt die Eigenschaften hervor, die in dieser Studie untersucht werden. Es hat einen universellen Charakter, weil jeder Schritt des Denkens mit diesem Prozess oder mit der Nutzung seines Ergebnisses verbunden ist. Der Kern dieser Methode besteht in der gedanklichen Abstraktion von unwichtigen Eigenschaften, Zusammenhängen, Beziehungen, Objekten und in der gleichzeitigen Auswahl und Erfassung eines oder mehrerer für den Forscher interessanter Aspekte dieser Objekte.

Es wird zwischen dem Prozess der Abstraktion und der Abstraktion unterschieden. Der Abstraktionsprozess ist eine Reihe von Operationen, die zum Erhalten eines Ergebnisses, d. h. zur Abstraktion, führen. Beispiele für Abstraktion sind unzählige Konzepte, mit denen Menschen nicht nur in der Wissenschaft, sondern auch im Alltag operieren: ein Baum, ein Haus, eine Straße, eine Flüssigkeit usw. Der Abstraktionsprozess im System des logischen Denkens steht in engem Zusammenhang mit anderen Forschungen Methoden und vor allem zur Analyse und Synthese.

2. Axiomatisch

Es wurde erstmals von Euklid verwendet. Der Kern der Methode besteht darin, dass zu Beginn der Argumentation eine Reihe von Ausgangspunkten angegeben wird, die keines Beweises bedürfen, da sie völlig offensichtlich sind. Diese Bestimmungen werden Axiome oder Postulate genannt. Aus Axiomen wird nach bestimmten Regeln ein System schlussfolgernder Urteile aufgebaut. Die Menge der Ausgangsaxiome und der daraus abgeleiteten Sätze (Urteile) bildet eine axiomatisch konstruierte Theorie.

3. Analyse und Synthese

Die Analyse ist eine Methode, die auf dem Prozess der Zerlegung eines Objekts in seine Bestandteile basiert. Wenn ein Wissenschaftler die Methode der Analyse anwendet, trennt er gedanklich das untersuchte Objekt, das heißt, er findet heraus, aus welchen Teilen es besteht, welche Eigenschaften und Merkmale es hat.

Synthese ist die Kombination der bei der Analyse gewonnenen Teile zu einem Ganzen. Durch den Einsatz der Synthese werden die durch den Einsatz der Analyse gewonnenen Erkenntnisse in einem einzigen System zusammengefasst.

Analyse- und Synthesemethoden im wissenschaftlichen Schaffen sind organisch miteinander verbunden und können je nach den Eigenschaften des Untersuchungsgegenstandes und dem Forschungszweck unterschiedliche Formen annehmen.

Direkte (empirische) Analyse und Synthese werden in der Phase der oberflächlichen Einarbeitung in das Objekt eingesetzt. Dabei werden die einzelnen Teile des Objekts isoliert, seine Eigenschaften erfasst, einfachste Messungen vorgenommen und die direkt auf der Oberfläche des Gesamtobjekts liegenden Daten erfasst.

Strukturgenetische Analyse und Synthese ermöglichen es uns, tief in das Wesen eines Objekts einzudringen. Diese Art der Analyse und Synthese erfordert die Isolierung der Elemente in einem komplexen Phänomen, die das Wichtigste in ihnen darstellen, ihre „Zelle“, die einen entscheidenden Einfluss auf alle anderen Aspekte des Wesens des Objekts hat.

Die historische Methode wird verwendet, um komplexe sich entwickelnde Objekte zu untersuchen. Es wird nur dann verwendet, wenn die Geschichte des Objekts auf die eine oder andere Weise zum Gegenstand der Forschung wird.

4. Idealisierung

Dabei handelt es sich um die gedankliche Schaffung von Konzepten über Objekte, die in der Natur nicht existieren, für die es aber Prototypen in der realen Welt gibt. Beispiele für Konzepte, die bei der Anwendung der Idealisierungsmethode entstanden sind, sind „Ideales Gas“, „Ideale Lösung“, „Punkt“. Die Idealisierungsmethode ist nicht nur in den Naturwissenschaften, sondern auch in sozialen Disziplinen weit verbreitet.

5. Induktion und Abzug

Induktion ist eine Schlussfolgerung, die vom „Besonderen“ zum „Allgemeinen“ führt. Schlussfolgerung aus Fakten auf eine allgemeine Hypothese.

Die deduktive Methode basiert darauf, durch Argumentation vom Allgemeinen zum Besonderen eine Schlussfolgerung zu ziehen. Das heißt, neues Wissen über ein Objekt wird durch die Untersuchung der Eigenschaften von Objekten einer bestimmten Klasse gewonnen.

6. Aufstiege vom Abstrakten zum Konkreten

Der Aufstieg vom Abstrakten zum Konkreten ist eine universelle Form der wissenschaftlichen Erkenntnisbewegung, das Gesetz der Widerspiegelung der Realität im Denken. Nach dieser Methode wird der Erkenntnisprozess in zwei relativ unabhängige Phasen unterteilt.

Auf der ersten Stufe findet ein Übergang vom Sinnlich-Konkreten zu seinen abstrakten Definitionen statt. Ein einzelner Gegenstand wird zerstückelt und anhand vieler Konzepte und Urteile beschrieben. Es scheint zu „verdampfen“ und wird zu einer Reihe von Abstraktionen und einseitigen Definitionen, die durch das Denken festgelegt werden.

Die zweite Stufe des Erkenntnisprozesses ist der Aufstieg vom Abstrakten zum Konkreten. Sein Wesen liegt in der Bewegung des Denkens von abstrakten Definitionen eines Objekts zum Konkreten in der Erkenntnis. In diesem Stadium wird die ursprüngliche Integrität des Objekts sozusagen wiederhergestellt, es wird in seiner ganzen Vielseitigkeit reproduziert – aber bereits im Denken.

Beide Erkenntnisstufen sind eng miteinander verbunden. Der Aufstieg vom Abstrakten zum Konkreten ist ohne eine vorherige „Anatomisierung“ des Objekts durch Gedanken, ohne den Aufstieg vom Konkreten in der Realität zu seinen abstrakten Definitionen unmöglich. Wir können also sagen, dass es sich bei der betrachteten Methode um einen Erkenntnisprozess handelt, nach dem das Denken vom Konkreten in der Realität zum Abstrakten im Denken und von dort zum Konkreten im Denken aufsteigt.

III. Mathematische und statistische Methoden werden verwendet, um die durch Erhebungs- und Experimentiermethoden gewonnenen Daten zu verarbeiten und quantitative Zusammenhänge zwischen den untersuchten Phänomenen herzustellen. Sie helfen dabei, die Ergebnisse eines Experiments zu bewerten, erhöhen die Zuverlässigkeit von Schlussfolgerungen und liefern Grundlagen für theoretische Verallgemeinerungen. Die gebräuchlichsten mathematischen Methoden sind Registrierung, Ranking und Skalierung. Mit statistischen Methoden werden die Durchschnittswerte der erhaltenen Indikatoren ermittelt: arithmetisches Mittel; Median – Indikator für die Mitte; Grad der Streuung - Streuung oder Standardabweichung, Variationskoeffizient usw. Zur Durchführung dieser Berechnungen gibt es entsprechende Formeln und Referenztabellen.

Die mit diesen Methoden verarbeiteten Ergebnisse ermöglichen die Darstellung eines quantitativen Zusammenhangs in verschiedenen Formen: Grafiken, Diagramme, Tabellen.

Fehlerklassifizierung

Internetressourcen

Vorlesungsübersicht

Software-Debugging

Vorlesung Nr. 8.

Tambow 2011

Kurs, Gruppen BIS-11, BIS-12

Thema 6. Software-Debugging

Vorlesung 8

Disziplin Programmiertechnologie

Richtung 230400 „Informationssysteme und Technologien“

Lehrer: Minin Yuri Viktorovich

Zweck der Vorlesung

Ziel der Vorlesung ist es, ein Verständnis für den Prozess und die Techniken des Software-Debuggings zu vermitteln.

1. Klassifizierung von Fehlern

2. Software-Debugging-Techniken

3. Methoden und Mittel, um zusätzliche Informationen über den Fehler zu erhalten

4. Software-Debugging-Technik

Referenzliste

Hauptliteratur

1. Ivanova G.S. Programmiertechnik M.: Verlag der MSTU im. N.E. Bauman, 2002. - 320 S.

2. Zhogolev E.A. Programmiertechnologie M.: Wissenschaftliche Welt, 2004. - 216 S.

3. Gagarina L.G., Kokoreva E.V., Visnadul B.D. Softwareentwicklungstechnologie. M.: Verlag „FORUM“ – INFRA-M, 2008. – 400 S.

weitere Literatur

1. Kaner S., Folk D., Nguyen E. Softwaretests. M.: DiaSoft, 2001. - 544 S.

2. Braude E. Softwareentwicklungstechnologie. St. Petersburg: Peter, 2004. - 655 S.

3. Baranov S.N., Domaratsky A.N., Lastochkin N.K., Morozov V.P. Softwareproduktentwicklungsprozess. M.: FIZMATLIT, Nauka, 2000. - 176 S.

1. www.intuit.ru – Internet-Universität für Informationstechnologien.

2. http://citforum.ru/ – Zentrum für Informationstechnologien.

3. http://www.tstu.ru/r.php?r=education – TSTU Elektronische Bibliothek.

4. http://www.edu.ru/ – Bibliothek des Bundesportals „Russische Bildung“

Das Debuggen eines Programms ist eine der schwierigsten Phasen der Softwareentwicklung und erfordert umfassende Kenntnisse über:

Besonderheiten der Verwaltung der eingesetzten technischen Mittel,

Betriebssystem,

Programmierumgebung und Sprache,

Implementierte Prozesse,

Die Art und Besonderheiten verschiedener Fehler,

Debugging-Techniken und zugehörige Software.

Dieser Vortrag ist der Diskussion der letzten beiden Fragen gewidmet.

Debuggen- ist der Prozess der Lokalisierung und Korrektur von Fehlern, die beim Testen von Software gefunden werden. Lokalisierung bezeichnet den Prozess der Bestimmung einer Programmanweisung, deren Ausführung eine Störung des normalen Rechenprozesses verursachte. Um den Fehler zu beheben, müssen Sie ihn identifizieren Grund, d.h. Identifizieren Sie die Anweisung oder das Fragment, das den Fehler enthält. Die Fehlerursachen können sowohl offensichtlich als auch sehr tief verborgen sein.



Im Allgemeinen hat die Schwierigkeit des Debuggens folgende Gründe:

Erfordert vom Programmierer umfassende Kenntnisse über die Besonderheiten der Verwaltung der verwendeten Hardware, des Betriebssystems, der Umgebung und Programmiersprache, der implementierten Prozesse, der Art und Besonderheiten verschiedener Fehler, Debugging-Techniken und relevanter Software;

Psychisch unangenehm, da man nach eigenen Fehlern suchen muss und das in der Regel in begrenzter Zeit;

Es ist möglich, dass Fehler in verschiedenen Teilen des Programms zusammenwirken, beispielsweise weil der Speicherbereich eines Moduls aufgrund von Adressierungsfehlern von einem anderen gelöscht wird;

Es gibt keine klar definierten Debugging-Techniken.

Entsprechend dem Verarbeitungsstadium, in dem Fehler auftreten, werden sie unterschieden (Abb. 1):

- Syntaxfehler - vom Compiler (Übersetzer, Interpreter) aufgezeichnete Fehler bei der syntaktischen und teilweise semantischen Analyse des Programms;

- Layoutfehler - Vom Linker (Link-Editor) erkannte Fehler beim Kombinieren von Programmmodulen;

- Laufzeitfehler - Fehler, auf die das Betriebssystem, die Hardware oder der Benutzer beim Ausführen eines Programms stoßen.

Abbildung 1 – Klassifizierung von Fehlern nach Programmverarbeitungsstufe

Syntaxfehler. Syntaxfehler werden als die einfachsten klassifiziert, da die Syntax der Sprache in der Regel streng formalisiert ist und Fehler von einem detaillierten Kommentar mit Angabe ihrer Position begleitet werden. Die Ermittlung der Ursachen solcher Fehler ist in der Regel nicht schwierig, und selbst bei unklaren Kenntnissen der Sprachregeln ist es in mehreren Durchläufen möglich, alle Fehler dieser Art zu beseitigen.

Es ist zu beachten, dass je besser die Regeln der Sprachsyntax formalisiert sind, desto mehr Fehler von der Gesamtzahl kann der Compiler erkennen und desto weniger Fehler werden dementsprechend in den folgenden Phasen erkannt. In diesem Zusammenhang spricht man von Programmiersprachen mit geschützter Syntax und ungeschützter Syntax. Zum ersten gehört natürlich Pascal, das eine sehr einfache und klar definierte Syntax hat, die beim Kompilieren eines Programms gut überprüft wird, und zum zweiten C/C++ mit all ihren Modifikationen. Was ist es überhaupt wert, in C/C+ eine Zuweisung in einem bedingten Operator durchführen zu können, zum Beispiel:

In diesem Fall wird nicht die Gleichheit von c und ja geprüft, sondern eine Zuweisung aus dem Wert n durchgeführt, wonach das Ergebnis der Operation mit Null verglichen wird. Wenn der Programmierer keine Zuweisung, sondern einen Vergleich durchführen wollte, dann wird dieser Fehler erst in der Ausführungsphase erkannt, wenn Ergebnisse erzielt werden, die von den erwarteten abweichen.

Layoutfehler. Layoutfehler hängen, wie der Name schon sagt, mit Problemen zusammen, die beim Auflösen externer Links auftreten. Beispielsweise wird ein Aufruf eines Unterprogramms eines anderen Moduls bereitgestellt, beim Zusammenführen von Modulen wird dieses Unterprogramm jedoch nicht gefunden oder die Parameterlisten werden nicht zusammengeführt. In den meisten Fällen können Fehler dieser Art auch schnell lokalisiert und behoben werden.

Laufzeitfehler. Zur unvorhersehbarsten Gruppe gehören Laufzeitfehler. Erstens können sie unterschiedlicher Natur sein und sich dementsprechend unterschiedlich manifestieren. Einige Fehler werden vom Betriebssystem erkannt und dokumentiert. Es gibt vier Möglichkeiten, wie sich solche Fehler äußern können:

Das Auftreten einer Fehlermeldung, die von Steuerschaltungen zur Ausführung von Maschinenbefehlen aufgezeichnet wird, z. B. Bitgitterüberlauf, Division durch Null-Situation, Adressierungsverletzung usw.;

Es erscheint eine Meldung über einen vom Betriebssystem erkannten Fehler, z. B. eine Verletzung des Speicherschutzes, ein Versuch, auf schreibgeschützte Geräte zu schreiben, das Fehlen einer Datei mit dem angegebenen Namen usw.;

- „Einfrieren“ des Computers, sowohl einfach, wenn das Programm ohne Neustart des Betriebssystems abgeschlossen werden kann, als auch „schwerwiegend“, wenn ein Neustart erforderlich ist, um weiterarbeiten zu können;

Diskrepanz zwischen den erzielten und den erwarteten Ergebnissen.

Beachten Sie, dass, wenn der Benutzer in der Ausführungsphase Fehler erkennt, der Benutzer in den ersten beiden Fällen nach Erhalt der entsprechenden Nachricht je nach Charakter, Bedarfsgrad und Erfahrung mit dem Computer entweder versuchen wird, zu verstehen, was passiert ist, sucht nach seiner Schuld, oder wird Hilfe suchen. Hilfe, oder wird versuchen, sich nie wieder mit diesem Produkt auseinanderzusetzen. Wenn der Computer einfriert, versteht der Benutzer möglicherweise nicht einmal sofort, dass etwas nicht stimmt, obwohl seine traurige Erfahrung ihn jedes Mal beunruhigt, wenn der Computer nicht schnell auf den eingegebenen Befehl reagiert, was ebenfalls zu bedenken ist. Gefährlich können auch Situationen sein, in denen der Benutzer falsche Ergebnisse erhält und diese in seiner Arbeit verwendet.

Die Ursachen für Laufzeitfehler sind sehr vielfältig und daher kann die Lokalisierung äußerst schwierig sein. Alle möglichen Fehlerursachen lassen sich in folgende Gruppen einteilen:

Falsche Definition der Quelldaten,

Logische Fehler

Anhäufung von Fehlern in den Berechnungsergebnissen (Abb. 2).

Eine falsche Identifizierung der Quelldaten tritt auf, wenn bei E/A-Vorgängen Fehler auftreten: Übertragungsfehler, Konvertierungsfehler, Fehler beim Umschreiben und Datenfehler. Darüber hinaus ist es durch den Einsatz spezieller technischer Mittel und einer fehlersicheren Programmierung möglich, nur einen Teil dieser Fehler zu erkennen und zu verhindern.

Logische Fehler sind unterschiedlicher Natur. Sie können also aus Fehlern resultieren, die während des Entwurfs gemacht wurden, beispielsweise bei der Auswahl von Methoden, der Entwicklung von Algorithmen oder der Definition der Klassenstruktur, oder sie können direkt während der Codierung des Moduls eingeführt werden. Die letzte Gruppe umfasst:

Fehler der falschen Verwendung von Variablen, zum Beispiel erfolglose Auswahl von Datentypen, Verwendung von Variablen vor ihrer Initialisierung, Verwendung von Indizes, die über die Definition von Arrays hinausgehen, Verletzungen der Datentypkorrespondenz bei Verwendung einer expliziten oder impliziten Neudefinition des gefundenen Datentyps im Speicher bei Verwendung von untypisierten Variablen, offenen Arrays, Unions, dynamischem Speicher, Adressarithmetik usw.;

Rechenfehler, zum Beispiel falsche Berechnungen bei nicht-arithmetischen Variablen, falsche Verwendung der Ganzzahlarithmetik, falsche Konvertierung von Datentypen bei Berechnungen, Fehler im Zusammenhang mit der Unkenntnis der Prioritäten von Operationen für arithmetische und logische Ausdrücke usw.;

Fehler in der Intermodulschnittstelle, zum Beispiel Missachtung von Systemkonventionen, Verletzung von Typen und Reihenfolge bei der Parameterübergabe, Nichteinhaltung der Einheit der Maßeinheiten von formalen und tatsächlichen Parametern, Verletzung des Gültigkeitsbereichs lokaler und globaler Variablen;

Andere Codierungsfehler sind beispielsweise die falsche Implementierung der Programmlogik beim Codieren, das Ignorieren der Funktionen oder Einschränkungen einer bestimmten Programmiersprache.

Die Häufung von Fehlern in den Ergebnissen numerischer Berechnungen tritt beispielsweise dann auf, wenn Nachkommastellen von Zahlen falsch verworfen werden, Näherungsberechnungsmethoden falsch verwendet werden, Einschränkungen des Ziffernrasters zur Darstellung reeller Zahlen in einem Computer ignoriert werden usw.

Alle oben genannten Fehlergründe sollten beim Debugging-Prozess berücksichtigt werden. Darüber hinaus erhöht sich auch die Komplexität des Debuggens durch den Einfluss folgender Faktoren:

Indirekte Manifestation von Fehlern;

Möglichkeit der gegenseitigen Beeinflussung von Fehlern;

Möglichkeit, äußerlich identische Erscheinungsformen verschiedener Fehler zu erhalten;

Mangelnde Wiederholbarkeit der Erscheinungsformen einiger Fehler von Start zu Start (stochastische Fehler);

Die Fähigkeit, äußere Erscheinungsformen von Fehlern in der untersuchten Situation zu beseitigen, wenn einige Änderungen am Programm vorgenommen werden, beispielsweise wenn Diagnosefragmente in das Programm aufgenommen werden, kann die äußere Erscheinungsform von Fehlern aufgehoben oder geändert werden;

Schreiben einzelner Programmteile durch verschiedene Programmierer.

Das Debuggen eines Programms erfordert in jedem Fall das Nachdenken und logische Verständnis aller verfügbaren Informationen über den Fehler. Die meisten Fehler können durch indirekte Beweise durch eine gründliche Analyse von Programmtexten und Testergebnissen erkannt werden, ohne dass zusätzliche Informationen eingeholt werden müssen. Dabei kommen verschiedene Methoden zum Einsatz:

Manuelles Testen;

Induktion;

Abzug;

Zurückverfolgen.

Manuelle Testmethode. Dies ist die einfachste und natürlichste Methode dieser Gruppe. Wenn ein Fehler erkannt wird, müssen Sie das zu testende Programm manuell ausführen und dabei die Testsuite verwenden, bei der der Fehler entdeckt wurde.

Die Methode ist sehr effektiv, eignet sich jedoch nicht für große Programme, Programme mit komplexen Berechnungen und in Fällen, in denen der Fehler auf eine falsche Vorstellung des Programmierers über die Durchführung bestimmter Operationen zurückzuführen ist.

Diese Methode wird häufig als Teil anderer Debugging-Methoden verwendet.

Induktionsmethode. Die Methode basiert auf einer sorgfältigen Analyse von Fehlersymptomen, die in Form falscher Berechnungsergebnisse oder einer Fehlermeldung auftreten können. Wenn der Computer einfach einfriert, wird ein Fragment der Fehlermanifestation basierend auf den zuletzt erhaltenen Ergebnissen und den Aktionen des Benutzers berechnet. Die auf diese Weise erhaltenen Informationen werden organisiert und sorgfältig untersucht, indem das entsprechende Fragment des Programms angezeigt wird. Als Ergebnis dieser Maßnahmen werden Hypothesen über Fehler aufgestellt, die jeweils überprüft werden. Wenn die Hypothese richtig ist, werden die Informationen über den Fehler detailliert angegeben, andernfalls wird eine andere Hypothese aufgestellt. Der Ablauf des Debuggens mit der Induktionsmethode ist in Abb. dargestellt. 3 in Form eines Algorithmusdiagramms.

Abbildung 3 – Schema des Induktions-Debugging-Prozesses

Der kritischste Schritt ist die Identifizierung der Fehlersymptome. Beim Organisieren von Daten zu einem Fehler ist es ratsam, alles aufzuschreiben, was über seine Erscheinungsformen bekannt ist, und sowohl Situationen aufzuzeichnen, in denen ein Fragment mit einem Fehler normal ausgeführt wird, als auch Situationen, in denen sich der Fehler manifestiert. Wenn sich aus der Untersuchung der Daten keine Hypothesen ergeben, sind zusätzliche Informationen über den Fehler erforderlich. Zusätzliche Informationen können beispielsweise durch die Durchführung ähnlicher Tests gewonnen werden.

Im Beweisprozess versuchen sie herauszufinden, ob alle Erscheinungsformen eines Fehlers durch eine gegebene Hypothese erklärt werden; wenn nicht alle, dann ist entweder die Hypothese falsch oder es liegen mehrere Fehler vor.

Abzugsmethode. Mithilfe der Deduktionsmethode werden zunächst verschiedene Gründe gebildet, die zu dieser Fehlererscheinung führen könnten. Schließen Sie dann bei der Analyse der Gründe diejenigen aus, die den verfügbaren Daten widersprechen. Wenn alle Ursachen ausgeschlossen sind, sollten zusätzliche Tests des untersuchten Fragments durchgeführt werden. Ansonsten versuchen sie, die wahrscheinlichste Hypothese zu beweisen. Wenn die Hypothese die empfangenen Symptome eines Fehlers erklärt, ist der Fehler gefunden, andernfalls wird die nächste Ursache überprüft (Abb. 4).

Abbildung 4 – Diagramm des Debugging-Prozesses mit der Abzugsmethode

Trackback-Methode. Bei kleinen Programmen ist die Backtracking-Methode effektiv. Sie beginnen dort, wo sie das falsche Ergebnis liefern. Zu diesem Zeitpunkt wird eine Hypothese über die Werte der Hauptvariablen erstellt, die zum Erhalt des vorhandenen Ergebnisses führen könnten. Anschließend werden auf Grundlage dieser Hypothese Vorschläge zu den Werten der Variablen am vorherigen Punkt gemacht. Der Prozess wird fortgesetzt, bis die Fehlerursache entdeckt ist.