Mittwoch, 25. November 2015

Wirtschaftsinformatik und Logik

Zuerst erkläre ich, warum ich diese beiden Begriffe in Zusammenhang bringe. Über Informatik und Mathematik habe ich schon des Öfteren geschrieben. Alles was ich dort sagte, lässt sich unter dieser neuen Überschrift auch sagen, vielleicht sogar etwas präziser. Möglicherweise spricht es aber andere Leser an. Vor allem aber suggeriert es Praxisbezug und Relevanz.

Wirtschaftsinformatik

Die Wirtschaftsinformatik (WI) als Studium und Beruf erscheint mir heute nicht nur praxisbezogener sondern auch umfassender zu sein als die (reine) Informatik. Manche Studierende ergriffen dieses Fach, weil sie glaubten – oder weil ihnen gesagt wurde – es sei leichter zu studieren als Informatik. Wer immer dieser Überlegung folgte, ruinierte nicht nur den Ruf des Studienfaches, er erlitt auch unweigerlich Schiffbruch im Beruf. Einen Beruf anzustreben, wo man das, was gebraucht wird, nicht tun will, ist eine schlechte Wahl. Es ist wie bei einem Arzt, der weder Kranke noch Blut sehen will. Es gibt dann noch Jobs im Marketing, in der Verwaltung oder in den beruflichen Selbstorganisationen. Die richtige Studienplanung eines WI-Studierenden muss all das abdecken, was aus der Informatik UND der Ökonomie gebraucht wird. Die folgende Einschränkung ist essentiell: Nicht alles, was man im Leben braucht, kann man in 3-5 Jahren lernen, und erst recht nicht an einer Hochschule. Das ist aber kein Grund, um nicht aus dem Studium das Beste zu machen.

Logik versus Mathematik

Die Frage, ob Logik nur ein Teil der Mathematik ist, oder ob sie neben oder gar über ihr steht, sei hier ausgeklammert. Beide behandeln abstrakte Dinge, oder anders ausgedrückt, statt mit der Realität befasst man sich nur mit ihrer Abstraktion. Nicht zwei Kühe oder fünf Schafe interessieren, sondern die Zahlen 2 und 5 und ihre Beziehung. Das vorhin bereits benutzte Konzept des Klammerns lässt sich natürlich auch abstrakt behandeln, sowohl in der Logik wie in der Mathematik. Der Mathematiker sieht gerne auf die Logik herab. Es sei eine Mathematik nur für die Zahlen 0 und 1. Der aus der Philosophie kommende Logiker bevorzugt die Bezeichnungen ‚wahr‘ und ‚falsch‘. Alle Bedeutungen und Nebenbedeutungen (Konnotationen), die Worte haben, gehen jedoch verloren, wenn man beginnt mit ihnen zu rechnen. Trotzdem lohnt es sich sehr oft zu rechnen.

Kurzer Rückblick

Das Informatikstudium in Deutschland begann als Studienfach entweder unter den Fittichen der Mathematik oder der Elektrotechnik. Für die Wirtschaftsinformatik standen Betriebswirte Pate. Entsprechend wurden die Studieninhalte definiert, Das Prinzip hieß Stammstudium – X, wobei X eine Stundenzahl für neue Inhalte war. Abhängig von der Kapazität der Ausbildungsstätte schwankte X am Anfang zwischen 10 und 20%. Erst 10-20 Jahre später wurden die Zahlen umgedreht. Es wurde zuerst definiert, was Informatiker brauchten. Die übrig gebliebenen Wochenstunden wurden dann mit Stoffen aus dem Stammstudium gefüllt. Die Überlegung dabei war, das Alte hat sich ja schon einmal bewährt. Es kann daher nicht schaden.

Schlimmer als diese aus der Not sich ergebenden Studienverhältnisse waren die Denkweisen, die sich damit einnisteten. Zum Beispiel: Informatik ist Mathematik mit etwas Elektrotechnik, oder es ist BWL mit mehr Mathematik. 

Heutige Studieninhalte

Auf meine diesbezügliche Nachfrage hin teilte mir ein WI-Student im ersten Semester mit, welche Themen aus der Logik in seiner Einführungsvorlesung vorkämen. Hier seine stichwortartige Antwort:

‚Prädikatenlogik, Aussagenlogik, KNF, DNF, DPLL Algorithmus und Resolution‘

Das waren alles bekannte Begriffe für mich. Nur beim DPLL-Algorithmus musste ich googeln. Hier die Antwort aus Kiel:

Der DPLL-Algorithmus, der im Jahr 1962 von Martin Davis, Hilary Putnam, George Logemann und Donald W. Loveland vorgeschlagen wurde, löst das Erfüllbarkeitsproblem für Formeln in konjunktiver Normalform nach dem Backtracking-Prinzip.

Die obige Antwort gab mir jedenfalls das Gefühl, dass die Ausbildung in Grundlagen der mathematischen Logik nicht zu kurz kommt. Es ist ja erst das erste Semester. Jedenfalls wird der Eindruck vermittelt, dass die Logik als Werkzeug eine zentrale Rolle in der Informatik und auch in der WI spielt. Viel mehr erwarte ich am Anfang eines Studiums auch nicht. Man wird sensibilisiert, – wie es heute so schön heißt – dass in dieser Richtung etwas zu finden ist, sollte man es brauchen. Man darf Logik und Mathematik jederzeit als Werkzeugkasten nutzen. 

Einige Anwendungen aus der Praxis

Um meine Einstellung zur Ausbildung in mathematischer Logik zu erläutern, greife ich drei Beispiele heraus, wo Logik mir in meiner beruflichen Praxis oder erst danach begegnete.

(a) Boolesche Logik und Schaltkreisentwurf

Auf boolesche Logik stützen sich die Entwerfer elektronischer Schaltkreise seit Anfang an. Sie ist der Arbeit des britischen Mathematikers George Boole (1815-1864) zu verdanken. Die Boolesche (oder logische) Algebra erlaubt es heute die logische Struktur der auf einem Chip angeordneten Schaltkreise so zu optimieren, dass sich Einsparungen in Millionenhöhe ergeben. Auf die Funktion des Chips bezogen, mögen sich Geschwindigkeitsgewinne ergeben. Wesentlich mehr ins Gewicht fallen die Platzersparnisse, wenn dieselben Chips millionenfach produziert werden. Schaltkreisoptimierung ist ein lohnendes und unverzichtbares Geschäft. Gute Methoden und gute Werkzeuge stehen in der Praxis in hohem Ansehen.

Diese Anwendung illustriert das Prinzip einer Optimierung. Wichtig ist es zu wissen, welche Änderungen der Darstellung keine Veränderung des Wertes eines Ausdrucks bedeuten. Als Ausdruck sind logische oder arithmetische Ausdrücke gemeint. Ausdrücke sind Formeln wie (x*y+3) oder (a und nicht b). Der Fachbegriff heißt: Äquivalenzklassen bilden. Die anzuwendende logische Transformation mag sehr einfach und primitiv sein. Entscheidend ist, dass kleine Ersparnisse sich hochsummieren, zuerst auf dem Chip, dann über alle jemals produzierten Chips eines Typs hinweg.

(b) Logische Programmierung und Resolutionsprinzip

Auf das Resolutionsprinzip von J. A. Robinson wurde ich in den 1970er Jahren aufmerksam. Es war der Kern der Programmiersprache Prolog, die 1972 von dem Franzosen Alain Kolmerauer von der Universität Marseille erfunden worden war. Man brauchte nur noch logische Formeln hinzuschreiben (so genannte Horn-Klauseln), und der Kompiler erzeugte daraus ein ausführbares Programm. Es wurde ein Theorem gebildet und nach dem Resolutionsverfahren bearbeitet.

Alle Welt interessierte sich plötzlich nur noch für ‚logisches‘ Programmieren und die damit zu erstellenden Expertensysteme. Die japanische Regierung legte ein Förderungsprogramm auf, mit dem sie die Weltspitze im Computermarkt erreichen wollte. Über das Schicksal dieses ‚Fifth Generation‘-Projekts ist viel geschrieben worden. Nur so viel: Diese Form der Programmierung erwies sich nur für einen Teil der Aufgaben geeignet, für die Computer eingesetzt werden. Aber selbst auf ihrer Domäne, den Auskunftssystemen, erwiesen sich Aspekte als viel wichtiger, die überhaupt nichts mit Programmieren zu tun hatten. Google, als Beispiel, ließ neue und elegante Programmiermethoden einfache in der Ecke stehen und konzentrierte sich auf eine umfassende und aktuelle Datenbasis sowie das Problem, die Suchergebnisse zu ordnen.

Auch meine Abteilung entwickelte ein erfolgreiches Expertensystem. Wir hatten das Glück, einen erfahrenen Außendiensttechniker dafür zu gewinnen, uns seine Heuristiken anzuvertrauen, mit deren Hilfe er Hardware- und Softwarefehler bei bekannten IBM-Großsystemen lokalisierte und klassifizierte. Jüngere Techniker, die dieselben Systeme betreuten, waren begeistert. Nach einigen Jahren gab es diese spezielle Art von Systemen nicht mehr. Schon vorher war die Wissensquelle versiegt. Was ich daraus lernte: Je spezieller Methoden sind, umso besser mögen ihre lokalen und augenblicklichen Erfolge sein. Umso größer ist aber auch das Risiko, dass sie sich nicht in breiten Teilen des Marktes und über einen längeren Zeitraum hinweg einsetzen lassen.

 (c) SAT Solver und Model Checking

Alle Welt redet heute von SAT-Solvern und benutzt sie auch, teilweise ohne es zu wissen. Sie lösen Probleme, die in Klauseln der Aussagenlogik formuliert sind. Hier steckt sehr oft der DDPL-Algorithmus drin. Dank cleverer Implementierung ist man heute in der Lage, Probleme mit 100 Variablen oder Klauseln effektiv zu lösen.

Model Checking gilt als die derzeit erfolgreichste Anwendung von Logik in der Informatik. Die wirklich großen Anwendungen betrafen bisher die Verifikation von Hardware-Entwürfen und Kommunikationsprotokollen. Für den wesentlich wichtigeren Bereich der Software gibt es erste Prototypen. Die logische Theorie ist bereits recht anspruchsvoll. Entscheidend für den Erfolg ist jedoch, dass Rechenzeiten und Speicherkapazitäten eingesetzt werden können, an die man vor 10 Jahren nicht zu denken wagte. Für einen Praktiker ist entscheidend, dass ein Problem in Teilen besser gelöst wird, als dies bisher möglich war. Wenn immer der Nachweis der Systemkorrektheit durch Testautomatisierung erleichtert wird, ist dies ein Segen. Das Problem ist eines der härtesten der Branche. Alle bisherigen Ansätze blieben auf einem Niveau, das nicht befriedigte.

Ein nicht ganz überzeugendes Beispiel

Zum Schluss kommt ein Logik-Enthusiast zu Wort. Ich hatte eine mir vorher nicht bekannte Notation für eine logische Subjunktion

$x (x e F → x e T)

falsch wiedergegeben. Ich machte nämlich daraus

Für alle x (x in F → x in T).

Es war dies ein missglückter Versuch logische Formalismen leichter lesbar zu machen. Ich wurde dafür mit Recht gerügt. Außerdem wurde ich aufgefordert, einen Projektantrag zu unterstützen, der den Einsatz öffentlicher Mittel forderte für

eine Tool-Entwicklung, die solche Missdeutungen (und vieles mehr) erst gar nicht zulässt. Das ist eine Aufgabe geradezu "im nationalen Interesse" und sollte damit (aus nationalem Interesse) auch gefördert werden.  …Helfen Sie mit, bei unserem BMBF-Antrag XYZ eine Bewilligung zu erzielen.‘

Ich meinte, das wäre nicht meinem Problem angemessen. Obwohl ich der Popularisierung mathematischer und logischer Ausbildung auf breitester Basis nicht abgeneigt bin, halte ich Fragen der Notation als Probleme untergeordneter Bedeutung. Zu viele Diskussionen habe ich bereits erlebt, was nun besser sei, der Punkt am Ende eines Statements wie bei COBOL oder das Semikolon wie bei Pascal; Klammern wie bei LISP oder begin...ends wie bei Algol. Informatiker sollten sich für diese Art von Diskussionen zu schade sein, (junge) Wirtschaftsinformatiker erst recht.

Kommentare:

  1. Robert Ottohall aus Tübingen schrieb:

    ich glaube nicht, dass Mathematiker auf Logik herabschauen. Logik gehört zur Basis der Mathematik (siehe B. Russel). Ein Wirtschaftsinformatiker, der sich nicht mit Mathematik beschäftigen will, sollte lieber Heilpraktiker werden. ;)

    AntwortenLöschen
  2. Soeben schrieb Hartmut Wedekind aus Darmstadt:

    Zeigt mir in Sachen Logik Eure Lehrbücher. Ich zeige Euch dann meine. Dann können wir streiten und zwar massiv. So geht das im Wissenschaftsbetrieb.

    PS . Paul Lorenzen: "In der Logik handelt es sich um Operationen, die statt mit Zahlen mit Gedanken, konkret gefasst, mit sprachlichen Aussagen vorgenommen werden!", in "Collegium Logicum" 1963. Natürlich zitiert er in der Rektoratsrede für jedermann von 63 auch den Faust" Mein teurer Freund, ich rat Euch drum zuerst Collegium Logicum."

    NB (Bertal Dresen): Mich interessiert vor allem, welche Probleme der Praxis mit Werkzeugen aus der Logik gelöst werden können. Alles andere ist holde Geisteswissenschaft.

    AntwortenLöschen
    Antworten
    1. Später fügte ich hinzu:

      Ich werde mich nicht mit Ihnen (oder sonst jemandem) über 'Logiken' streiten. Genauso wenig wie über Pseudocodes oder Modelierungsprachen. Ich sah darin immer imperfekte Werkzeuge, d.h. solche für arme Leute.

      Hartmut Wedekinds Antwort:

      Es gibt keine Logiken, es gibt nur eine Logik. Es gibt keine Erlanger und Münchner Logik. Es gibt nur eine Logik, die in verschiedenen Gewändern auftritt (klassisch, konstruktiv, als Modallogik, Relevanzlogik monotone Logik). Ob eine mehrwertige Logik und „fuzzy logic“ noch zur Logik gehören, darüber darf gestritten werden, und wird es ja auch.

      Löschen
  3. Peter Hiemann aus Grasse schrieb:

    gutes Verständnis und Handwerkzeug für Programmierung ist obligatorisch für IT orientierte Berufe. Oft wird aber übersehen, dass alle Menschen Fähigkeiten besitzen, die es ihnen mehr oder weniger erlauben, in mehr oder weniger logischen oder anderen Zusammenhängen zu denken und zu handeln. Es wäre vorteilhaft und angemessen, wenn IT-Spezialisten versuchen, mit ihren Aussagen auch Nichtspezialisten anzusprechen. Einige der schlimmsten kommunikativen Engpässe entstehen, wenn mögliche weiterreichende Aspekte und Perspektiven ungenutzt bleiben:

    - Aussagen 'richtig' oder 'falsch' sind vernünftige Bewertungen, wenn es sich um Fragestellungen der Logik oder professionelle (wissenschaftliche und handwerkliche) Methoden handelt. Bei anderen Fragestellungen eröffnen sich potentiell vernünftige Vorstellungen, wenn sie im Rahmen eines Zusammenhangs 'passen' (richtig liegen).

    - Gestaltungsspielräume für Lernvorgänge sind eng, wenn sie durch enge Vorstellungen eingeschränkt werden. Gestaltungsspielräume sind weit, wenn sie für erweiterte und neue Vorstellungen offen gehalten werden.

    - Es ist wichtig, sich in andere Denkweisen versetzen zu können und Alternativen bedenken zu können.

    AntwortenLöschen
  4. Erich Ortner aus Konstanz schrieb:

    "Ein Begriff ist (formal) eine Funktion (Schema), deren Wert immer ein Wahrheitswert (wahr, falsch) ist", ist ein Begriff und damit auch die Logik von "Schaltwerken".

    "Ein Begriff ist (material) eine Funktion (Schema), deren Wert immer ein Gegenstand (Dinge, Geschehnisse) ist", ist ein Begriff und damit die Logik (d. h. die erweiterte formale Logik) des "Human Symbol Manipulation".

    Es gibt nur eine Logik!

    Die Erweiterung erfolgt vom Standpunkt der Dialogischen Logik (Logik als gerichteter Ablauf eines Geschehens) auch noch um den "Wahrheitswert" non liquet oder (neben "wahr" und "falsch" auch noch) "unklar".

    Klassische-formallogisch:

    - Die Wahrheit von Sätzen wird vorausgesetzt (Logiker sprechen von der Wahrheitsdefinitheit bzw. -determiniertheit formallogischer Sachverhalte).

    Konstruktiv-dialogisch:

    - Die Wahrheit von Sätzen muss man sich (bzw. unter Dialogpartnern) schrittweise, zirkelfrei und alles explizit machend erarbeiten. "arbeiten" ist ein Prozess, also der gerichtete Ablauf (Steuerung) eines Geschehens (Logiker sprechen von der Dialogdefinitheit bzw. -determiniertheit materiallogischer Sachverhalte).

    - Dabei kommt es zu Schlussfolgerungen, Entscheidungen & Handlungen der Menschen auch dann, wenn bei bestimmten Sätzen der Wahrheitswert (wahr, falsch) noch nicht feststeht (z. B. non liquet oder unklar ist).

    Die Dialogische Logik ist eine Mensch-involvierte Logik, denn sie schließt in ihren "gerichteten Ablauf" (=Prozess) die Möglichkeit menschlicher "Geistesblitze" oder emergente Handlungen ein (läßt sie "gerichtet" Geschehen). Dialogische Logik ist EINE Antwort auf die Frage "Wie sind synthetische (konstruktive) Urteile a priori möglich?". Dialogische Logik ist EINE Chance der Menschheit, sich (auf elegante Weise) aus der selbstverschuldeten Unmündigkeit "systematisch" (durch Bildung = Erwerb relevanten Wissens & verantwortungsvolles Handeln) zu befreien.

    AntwortenLöschen
    Antworten
    1. Ob die Menschheit diese Chance wohl je nutzt, ist noch unklar.

      Löschen
  5. Peter Hiemann aus Grasse schrieb:

    Kurt Friedrich Gödel hat meines Erachtens eine der wichtigsten Aussagen über logisches Schließen geliefert. Gödel ist berühmt dafür, dass er Mathematikern am Beginn des 20. Jahrhunderts beweisen konnte, dass sie mit einer grundlegenden Vorstellung 'falsch lagen'. Diese nahmen an, dass ein Axiomensystem mit einfachen unmittelbar einleuchtenden Axiomen existiert, das die Mathematik und Logik auf eine gemeinsame, nachweisbar konsistente Basis stellt, um für jeden mathematischen Satz beweisen zu können, ob er wahr oder falsch ist, und alle wahren Sätze sollten aus dem Axiomensystem ableitbar sein. Gödel konnte zeigen, dass sich bereits im mathematischen System der natürlichen Zahlen '0, 1, 2, 3. …....Aussagen ableiten lassen, bei denen nicht entschieden werden kann, ob sie wahr oder falsch sind.

    Im übertragenen Sinn würde Gödel vielleicht uns Normalsterblichen empfehlen: Prüft eure Vorstellungen sorgfältig darauf, wieweit sie 'tragfähig' sind. Diese Empfehlung bedeutet aber nicht, auf Vorstellungen zu verzichten, solange sie sinnvoll und nützlich sind und die Möglichkeit besteht, sie später rational und empirisch beweisen oder widerlegen zu können.

    AntwortenLöschen
  6. Über komplizierte Dinge erfolgreich nachzudenken gelingt so richtig erst dann, wenn man eine übersichtliche, knappe, wenig kryptische Notation dafür gefunden hat.

    AntwortenLöschen