1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12:...

22
Version 07/05/22 Software Engineering I VE 12: Logische Basiskonzepte 1 1 Dozenten: Markus Rentschler Andreas Stuckert Vorlesung Software Engineering I Logische Basiskonzepte 2 Regeln Expertensystem Entscheidungsbäume Entscheidungstabellen

Transcript of 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12:...

Page 1: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 1

Dozenten:Markus RentschlerAndreas Stuckert

Vorlesung

Software Engineering I

Logische Basiskonzepte 2

RegelnExpertensystem

EntscheidungsbäumeEntscheidungstabellen

Page 2: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 2

Dozenten:Markus RentschlerAndreas Stuckert

Systemsichten und Modellierung

Beschreiben das Verhalten und die

Veränderungen während der Laufzeit.

Beschreiben die feste Struktur des Systems, die sich während der Laufzeit nicht ändert.

Beschreiben die Programmfunktion

logisch und mathematisch

Page 3: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 3

Dozenten:Markus RentschlerAndreas Stuckert

Regeln

• Regeln sind logische Ausdrücke, mit denen aus bekannten Fakten neue Fakten gefolgert werden können

• Eine Produktionsregel (auch Regel oder Produktion genannt) ist ein geordnetes Paar (P,Q) der beiden Wörter P und Q. Das Wort P wird Prämisse und das Wort Q Konklusion der Regel (P,Q) genannt.

• Die Regeln liegen in der Form: WENN … DANN … SONST  

(IF THEN ELSE) vor. Eine Regel könnte beispielsweise folgendermaßen aussehen:– WENN Herdplatte heiß UND kein Topf auf Herd DANN schalte

Herd aus

• Der WENN-Teil der Regel ist also die Prämisse, der DANN-Teil die Konklusion.

Page 4: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 4

Dozenten:Markus RentschlerAndreas Stuckert

Geschäftsregeln

WENN das Telefonat länger als 30 Minuten gedauert hat UND das Telefonat zwischen 18:00 Uhr und 24:00 Uhr geführt wurde UND der Tarif des Besitzers Student 30+ heißt

DANN wende 10 % Rabatt auf das geführte Telefonat an.

Eine kognitive Anwendung haben Produktionsregeln in regelbasierten Systemen: Hier spricht man von Produktionsregeln oder Geschäftsregeln, wenn die Regeln, mit denen das System arbeitet, innerhalb eines industriellen Produktionsprozesses angewendet werden, z.B.:

Page 5: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 5

Dozenten:Markus RentschlerAndreas Stuckert

Regelbasiertes System

• Ein regelbasiertes System besteht aus:– Der Regelbasis, die das gespeicherte Wissen enthält– Der Faktenbasis, in der die zu interpretierenden Fakten (aktuelle

Systemdaten) abgelegt sind– Dem Inferenzmechanismus, der die Schlussfolgerung zieht, also

die Regeln auf die Fakten anwendet.

Page 6: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 6

Dozenten:Markus RentschlerAndreas Stuckert

Regelbasierte Expertensysteme

• Aufgabe des Inferenzmechanismus (Kontrollsystems) ist die Identifikation geeigneter Regeln, das Anwenden ausgewählter Regeln, sowie die Aktualisierung der Datenbank.

• Auswahlmechanismen für die nächste anzuwendende Regel sind entweder datengetrieben, zielgetrieben oder eine Kombination dieser beiden Möglichkeiten.

– Datengetrieben (forward chaining) oder Vorwärtsverkettung• Ein Fakt liegt vor – eine „WENN Fakt DANN …“-Regel wird

angewendet. Hier wird versucht, auf Grundlage von Fakten eine Diagnose zu stellen, also zu einem meist noch unbekannten Ziel zu kommen.

– Zielgetrieben (backward chaining) oder Rückwärtsverkettung• Ein Fakt liegt vor – eine „WENN … DANN Fakt“-Regel wird

angewendet. Hier wird versucht, eine Hypothese zu beweisen.

• Regelbasierte Systeme sind neben fallbasierten Systemen die Grundlage von Expertensystemen.

Page 7: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 7

Dozenten:Markus RentschlerAndreas Stuckert

Geschäftsregeln

Geschäftsregeln können auf verschiedene Arten formuliertwerden:

• in Deutsch• in formalem Deutsch• in formaler Logik• in Fuzzy-Logik• in einer deklarativen Computersprache (z.B. SQL)• in einer prozeduralen Computersprache (z.B. Java)• als Entscheidungsbäume• als Entscheidungstabellen

Page 8: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 8

Dozenten:Markus RentschlerAndreas Stuckert

Entscheidungsbäume

• Entscheidungsbäume sind eine spezielle Darstellungsform von Entscheidungsregeln.

Page 9: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 9

Dozenten:Markus RentschlerAndreas Stuckert

Entscheidungsbaum, Beispiel „Erste Hilfe“

• Entscheidungsbäume veranschaulichen sequentielle hierarchische Entscheidungen

• Beispiel Erste Hilfe:

Page 10: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 10

Dozenten:Markus RentschlerAndreas Stuckert

Entscheidungsbaum: Konstruktion (1)

Beispielmenge

Page 11: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 11

Dozenten:Markus RentschlerAndreas Stuckert

Entscheidungsbaum: Konstruktion (2)

Page 12: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 12

Dozenten:Markus RentschlerAndreas Stuckert

Entscheidungsbaum: Konstruktion nach ID3

• Konstruktion nach ID3-Algorithmus:

Start – mit leerem Baum & voller Beispielmenge– finde Attribut, dass die Datenmenge am Besten

klassifiziert (höchster „information gain“).– Blatt für dieses Attribut erstellen und die

Datenmenge entsprechend aufteilen. Beenden

– Falls nicht mehr zu klassifizieren– Falls alle Daten verwendet

Page 13: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 13

Dozenten:Markus RentschlerAndreas Stuckert

Entscheidungsbaum: Konstruktion (3)

Page 14: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 14

Dozenten:Markus RentschlerAndreas Stuckert

Entscheidungsbaum: Konstruktion (4)

Vorteil:

• ID3-Algorithmus liefert kleineren Suchbaum

• Kein Unterschied bei der Klassifikation

• „Occam‘s Razor“: „entities must not be multiplied beyond necessity" (prefer the simplest hypothesis that fits the data)

bei sonst gleichwertigen Erklärungsalternativen die kürzere / „einfachere“ wählen

Page 15: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 15

Dozenten:Markus RentschlerAndreas Stuckert

Entscheidungstabellen

• Entscheidungstabellen sind eine Möglichkeit, komplexe Regelwerke in übersichtlicher Weise darzustellen.

– Unter einer Regel ist dabei eine Vorschrift zu verstehen, welche Aktionen bei Vorliegen einer gegebenen Komposition von Bedingungen durchzuführen sind.

– Ein Regelwerk ist eine Zusammenstellung unterschiedlicher Regeln.

• Entscheidungstabellen werden u. a. beim Entwurf von Programmen eingesetzt, um komplexe Abhängigkeiten zwischen mehreren Bedingungen und dem jedes Mal auszuführenden Code übersichtlich und vollständig darzustellen.

Page 16: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 16

Dozenten:Markus RentschlerAndreas Stuckert

Entscheidungstabelle

• Die Begriffe und der Aufbau einer Entscheidungstabelle sind seit 1979 durch die Norm DIN 66241 festgelegt. Sie besteht demnach aus vier Teilen:

– Der Bedingungsteil enthält die Beschreibung der für die Entscheidungssituation relevanten Bedingungen.

– Der Aktionsteil enthält die Beschreibung aller möglichen Aktionen.

– Der Bedingungsanzeigeteil enthält die möglichen Kombinationen von Bedingungen in Form von Symbolen ((j)-Bedingung erfüllt, (n)-Bedingung nicht erfüllt, (–)-Bedingung irrelevant).

– Im Aktionsanzeigeteil sind die möglichen Aktionen in Abhängigkeit von bestimmten Bedingungen durch Symbole markiert ((x)-Aktion ausführen, (–)-Aktion nicht ausführen).

Page 17: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 17

Dozenten:Markus RentschlerAndreas Stuckert

Grundstruktur einer Entscheidungstabelle

Page 18: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 18

Dozenten:Markus RentschlerAndreas Stuckert

Entscheidungstabelle

• Ordnung der Bedingungen und Aktionen– Bedingungen und Aktionen sinnvoll ordnen zur besseren

Übersichtlichkeit. Die Anordnung der Bedingungen ergibt sich häufig aus der Reihenfolge, in der sie geprüft werden. Ebenso ergibt sich die Reihenfolge der Aktionen aus dem Arbeitsablauf.

• Konsolidierung– Überprüfen, ob die Anzahl der Regeln verkleinert werden kann,

indem Regeln, die zu den gleichen Aktionen führen, entfernt werden. Anstelle des Bedingungsanzeigers (j/n) tritt dann ein Irrelevanzzeichen (–), welches anzeigt, dass für die Ausführung einer Aktion eine Bedingung nicht geprüft werden muss.

– Redundante Regeln zusammenfassen• Prüfung auf Widerspruchsfreiheit

– Klären, ob die Zusammenfassung der Regel korrekt erfolgt ist. Also ob keine Regeln mit gleichen Bedingungen zu unterschiedlichen Aktionen führen.

Page 19: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 19

Dozenten:Markus RentschlerAndreas Stuckert

Ursache-Wirkungs-Graphen

Entscheidungstabellen können auch direkt aus Ursache-Wirkungs-Graphen erstellt oder ermittelt werden.

Page 20: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 20

Dozenten:Markus RentschlerAndreas Stuckert

Ursache-Wirkungs-Graphen

Ursache: Einzelne Eingabebedingung oder Äquivalenzklasse von Eingabebedingungen

Wirkung: Ausgabebedingung oder Systemtransformation

• Vorgehen– Ursachen und Wirkungen werden durch Analyse der

Spezifikation ermittelt, jeder Ursache und jeder Wirkung (=Teilspezifikation) wird eine eindeutige Nummer zugeordnet.

• Ziel– Zerlegung der Spezifikation in handhabbare Teile.– Erfassen von Abhängigkeiten zwischen Ursachen und

Wirkungen – Transformation der Spezifikation in Ursache-Wirkungs-Graph

(und-oder-Kanten) – Umformung des Graphen in eine Entscheidungstabelle

Page 21: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 21

Dozenten:Markus RentschlerAndreas Stuckert

Ursache-Wirkungs-Graphen: Beispiel

Spezifikation zaehle: • Die Prozedur zaehle liest solange Zeichen, bis ein Zeichen erkannt wird, das kein

Großbuchstabe ist, oder gesamtzahl den größten CARDINAL-Wert erreicht hat. • ist ein gelesenes Zeichen großer Konsonant oder Vokal, wird gesamtzahl um 1

erhöht. • ist der Großbuchstabe ein Vokal, so wird vokalanz um 1 erhöht. • Bei Beendigung der Prozedur werden gesamtzahl und vokalanz zurückgegeben

Ursachen U1: char ist großer Konsonant U2: char ist großer Vokal U3: gesamtzahl < max(CARDINAL)

Wirkungen W1: gesamtzahl wird inkrementiert W2: vokalanz wird inkrementiert W3: char wird gelesen W4: Prozedur wird beendet

Page 22: 1 Dozenten: Markus Rentschler Andreas Stuckert Version 22.01.2016 Software Engineering I VE 12: Logische Basiskonzepte 1 Vorlesung Software Engineering.

Version 04/26/23

Software Engineering I VE 12: Logische Basiskonzepte 1 22

Dozenten:Markus RentschlerAndreas Stuckert

Übung Entscheidungstabelle

• Erstellung einer Entscheidungstabelle anhand des folgenden Beispielszenarios:

Bereichsleiter Schmid möchte eine Mitarbeiterin im Krankenhaus besuchen. Er informiert sich telefonisch an der Information über die Besuchsmöglichkeiten und erhält folgende Antwort: Die Patientin kann ohne Einschränkungen innerhalb der Besuchszeit besucht werden, sofern keine ansteckende Krankheit vorliegt und sie kein Fieber hat. Außerhalb der Besuchszeit ist in diesem Fall eine Schwester als Begleitung erforderlich. Falls die Patientin eine ansteckende Krankheit hat, werden Besuche ganz abgelehnt. Wenn die Krankheit nicht ansteckend ist, die Patientin aber Fieber hat, darf der Besuch innerhalb der Besuchszeit maximal 30 Minuten betragen, außerhalb der Besuchszeit dürfen Patienten mit Fieber nicht besucht werden.