close

Anmelden

Neues Passwort anfordern?

Anmeldung mit OpenID

Kuenstliche Intelligenz und Simulation

Einbetten
Diese Arbeit schildert ein allgemeines Verfahren zur Modellierung von sozialen Institutionen. Ein mit dem Verfahren erzeugtes Modell soll die realen sozialen Institutionen abbilden. Das im Zusammenhang mit dieser Arbeit geschriebene Computerprogramm
Dr. Jamel Tazarki
book.statistics@web.de
Dr. Jamel Tazarki
Künstliche Intelligenz und Simulation
mit Prolog
If you would like to make a donation please email book.statistics@web.de
Dr. Jamel Tazarki
2
book.statistics@web.de
Vorwort
Diese Arbeit schildert ein allgemeines Verfahren zur Modellierung von
sozialen Institutionen. Ein mit dem Verfahren erzeugtes Modell soll die
realen sozialen Institutionen abbilden. Das im Zusammenhang mit dieser
Arbeit geschriebene Computerprogramm simuliert das Zusammenwirken
von logischen und physischen Vorgängen innerhalb einer sozialen
Institution. Diese Forschungsarbeit entstand in den Instituten für
Mathematik und für Logik & Wissenschaftstheorie der Universität
München.
In Kapitel I werden Techniken zur Wissenspräsentation vorgestellt. Die
abgehandelten Themen umfassen die Merkmale von Wissen, Wissensbasen,
Regeln, Frames und der Verwendung von Logik zur Präsentation von
Fakten, Relationen und Daten. Unter Daten versteht man generell "Symbole
für Informationen". Daraus wird deutlich, daß Daten Ziffern sein können
oder Zahlen, aber auch Buchstaben oder andere Symbole, Worte, Texte
usw...
Der
erfahrene
Rechnerbenutzer
weiß,
daß
in
Datenverarbeitungsprozessen mit Zahlen effizienter gearbeitet werden kann,
als mit Buchstaben oder Texten. Deshalb werden alle Daten der betrachteten
sozialen Institutionen mit Zahlenwerten codiert. Man spricht in diesem
Zusammenhang von der sog. Codierung und entwickelt zu diesem Zweck
ein Codebuch, in dem aufgezeichnet wird, in welcher Weise die
Ausgangsinformationen codiert werden.
In diesem ersten Kapitel wird die gesamte Datenmenge, die für das
Programm der künstlichen Intelligenz notwendig ist, mit Hilfe von Frames
definiert. Dieses Kapitel bildet die Basis für die restliche Arbeit.
In Kapitel II werden Zufallsexperimente mit ganzzahligem, also
diskretem Ausgang x betrachtet, und es wird die Verteilungsfunktion als
Hilfsmittel zur Beschreibung diskreter Wahrscheinlichkeitsverteilungen
erläutert. Ein Programm, in der Programmiersprache Prolog geschrieben,
wird benutzt, um das "Leben" innerhalb einer sozialen Institution zu
simulieren. Mit der vordefinierten Funktion RANDOM werden
Zufallszahlen erzeugt. Sie können, gemäß dem Codebuch, mit bestimmten
Handlungen von bestimmten Abteilungen einer Firma gleichgesetzt werden.
Mit Hilfe von Zufallsgrößen wird versucht, der Komplexität der
abzubildenden Realität näher zu kommen. Dies bedeutet, daß von Periode
Dr. Jamel Tazarki
3
book.statistics@web.de
zu Periode innerhalb eines Simulationsmodells die Änderungen der
Modellvariablen nicht allein in Abhängigkeit von deren Modellgrößen und
den zwischen den Variablen bestehenden Funktionalbeziehungen bestimmt
werden, sondern (mindestens zu einem Teil oder zu bestimmten Perioden)
durch den Zufall. Als Beispiel werden in dem Programm der Künstlichen
Intelligenz (KI) die Handlungen der verschiedenen Gruppen per Zufall
generiert.
Dabei interessiert in diesem Zusammenhang nicht, was der Begriff "Zufall"
überhaupt bedeuten soll. Möglicherweise wird damit nur eine Umschreibung
geboten für die Vielzahl verschiedener Einflußfaktoren, die quantitativ nicht
erfaßbar oder vielleicht sogar völlig unbekannt sind.
Bei anspruchsvolleren Modellen (und dazu kann man die
computergestützten Simulationsmodelle durchaus zählen) wird versucht,
diesem
unbekannt
bleibenden
Wirkungshintergrund
durch
Zufallskomponenten in den Modellbausteinen Rechnung zu tragen. Man
kann sich sogar Modelle vorstellen, bei denen die Zufallskomponente der
entscheidende Baustein ist.
Die Zufallseinflüsse spielen im sozialwissenschaftlichen Bereich eine große
Rolle. Allein schon wegen der Vielgestaltigkeit von Einflußfaktoren, die das
menschliche Verhalten innerhalb sozialer Strukturen und Systeme
beeinflussen können und wegen der faktischen empirischen
Undurchdringlichkeit der entsprechenden Beziehungs-geflechte, muß mit
Zufallskomponenten gearbeitet werden.
Wie sonst könnte man Verhaltensänderungen (zum Beispiel
Wahlentscheidungen oder Aktionen und Reaktionen in Konfliktsituationen)
modellhaft abbilden (wenn die tatsächlich wirksamen Einflußfaktoren nicht
völlig quantifizierbar sind), als durch die Aufnahme zufallsabhängiger
Komponenten in die entsprechenden Modelle?
In Kapitel III wird ein Modell für das intendierte System konstruiert.
Durch Variationen von Modellparametern, von Modellbeziehungen oder
von Rahmenbedingungen des Modells können, wenn man die
computergestützte Modellierung vorzieht, insbesondere alternative
Entwicklungen durchgespielt werden, um aus den unterschiedlichen
Modellreaktionen zu entnehmen, wie das im Modell abgebildete System
aufgrund solcher Variationen reagiert.
Dr. Jamel Tazarki
4
book.statistics@web.de
Ich lege ein (von Balzer,1993) entwickeltes Modell zugrunde, das wie folgt
charakterisiert ist:
- Erstens ist das Modell der sozialen Institutionen eine Struktur; es besteht
aus Objektmengen und Relationen, die durch die Begriffe einer
vorgegebenen Sprache bezeichnet werden, also deren Denotate sind:
X= (J,A, G, H, CH, ST, REAL, INT, MACHT) wobei
i) J und A sind nicht-leere, endliche, disjunkte Mengen (von Personen und
Handlungen).
ii) G ist eine Menge von Teilmengen von J (Gruppen) und H eine Menge
von Teilmengen von A.
iii)CH (charakteristische Funktion) ist eine Funktion,
die
jeder
Gruppe eine Menge von (für sie charakteristischen) Handlungstypen
zuordnet.
iv) ST ist eine zweistellige Relation (Statusrelation) zwischen Gruppen.
v) REAL steht für die Relation: Person i realisiert Handlung a
vi) INT steht für die Relation : Person i intendiert, daß Person J Handlung b
tut
vii) MACHT steht für die Relation : Person i übt mit Handlung a MACHT
über Person j aus, so daß j Handlung b tut.
-Zweitens sind in diesem Modell Axiome gültig. Modelle sind
stets
Modelle für bestimmte Axiome. Ein Modell für eine gegebene Menge von
Axiomen ist per Definition eine Struktur, in der all diese Axiome gültig
sind. Modelle enthalten nicht nur Denotate für sprachliche Ausdrücke. In
Modellen müssen darüber hinaus diese Denotate in den ‘richtigen’
Verhältnissen zueinander stehen, nämlich so, wie es in den Axiomen
ausgedrückt ist. Wenn alle Axiome einer gegebenen Menge A in einer
Struktur X gültig sind, sagt man, daß X die Axiome erfüllt und daß die
Axiome X charakterisieren. Ein Modell für eine Axiomenmenge ist nun eine
Struktur, die alle Axiome der Menge erfüllt (Balzer, 1993).
Für die zuletzt gegebene Struktur werden die folgenden Axiome definiert:
a1) Jede Person (J) ist in eine Machtrelation involviert.
a2) Jede von einer Person i ausgeführte Handlung (H) ist charakteristisch
für eine der Gruppen, zu denen i gehört.
a3) Wenn Gruppe g’ (G) höheren Status als Gruppe g hat, dann üben die
Mitglieder von g’ mehr Macht über die von g (G) aus als umgekehrt.
Genauer gilt:
Dr. Jamel Tazarki
5
book.statistics@web.de
i) fast alle Personen in g’ üben MACHT über Personen in g aus und ein
großer Teil der Mitglieder von g wird dadurch betroffen
ii) nur ein kleiner Teil der Personen in g übt MACHT über Personen in g’
aus und nur ein kleiner Teil von g’ wird davon betroffen.
a4) Die Statusrelation "ST" ist transitiv und es gibt genau eine
"Spitzengruppe" mit höchstem Status.
Es wird versucht, mit Hilfe eines Programmes der KI zu beweisen, daß eine
Struktur X= (J,A, G, H, CH, ST, REAL, INT, MACHT) ein Modell einer
sozialen Institution ist.
In dieser Arbeit werde ich mich auf den Bereich des Verlagswesens
konzentrieren (Buchverlag), da ich über eine 4-jährige Erfahrung in dieser
Branche als Systemprogrammierer bei einem großen Verlag in München
verfüge. Diese wird mir die Arbeit bei der Definition von den
Makromodellen, Mikromodellen und bei der Konstruktion der Datenbasis
erleichtern. Dieses Kapitel dient als Abstraktion der sozialen Institutionen
und als Überblick über den Bereich des Buchverlagswesens, welcher als
intendiertes System in Betracht genommen wird.
In Kapitel IV wird eine Einleitung zum gesamten Simulationsprogramm
(in der Sprache Prolog geschrieben) bearbeitet.
In den Anhängen I bis VI werden die verschiedenen Simulationsmodule
aufgelistet und diskutiert. Der Leser, der nicht an den Einzelheiten der
Prologprogrammierung interessiert ist, kann sich auf die allgemeine
Beschreibung der Input- und Outputbereiche der verschiedenen Module im
Kapitel IV beschränken.
Ein Wort noch zur Erfahrungsgrundlage dieser Arbeit. Als Grundlage diente
zum einen die Analyse von rund 30 sozialwissenschaftlichen
Simulationsmodellen und die Schriften von Wolfgang Balzer (besonders
von 1993), zum anderen die Mitarbeit an zwei Simulationsprojekten unter
seiner Leitung. Es handelt sich einmal um die Simulation von
Machtbeziehungen wie folgt:
Dr. Jamel Tazarki
6
book.statistics@web.de
Auf einem System von 24 Transputern1 an der technischen Universität
München haben wir eine Prologversion (BRAIN AID PROLOG) installiert.
Transputer bestehen wie ein Personalcomputer aus
- einem Arbeitsspeicher : SRAM
- einem 16-bit/32-bit-Prozessor
- 4 LINKS für die Kommunikation mit anderen Transputern.
Die Transputer kommunizieren über serielle Leitungen, LINKS, von denen
jeder Transputer vier besitzt. Es handelt sich dabei um zwei Drahtleitungen,
die pro Kanal eine Transferrate von 20 Mbit/s ermöglichen.
Um die Transputer zu verwalten, braucht man eine Art
Eingabe/Ausgabegerät. Dieses Gerät ist im allgemeinen ein normaler PC,
ein sogenanter HOST :
┌────────────────┐
│PC MIT TASTATUR │
│UND BILSCHIRM
│
└───────┬────────┘
┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐
│ 1 ├──┤ 2 ├──┤ 3 ├──│ 4 ├──┤ 5 ├──┤ 6 ├──┤ 7 ├──┤ 8 │
└─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘
│
│
│
│
│
│
│
│
┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐
│ 9 ├──┤10 ├──┤11 ├──┤12 ├──┤13 ├──┤14 ├──┤15 ├──┤16 │
└─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘
│
│
│
│
│
│
│
│
┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐
│17 ├──┤18 ├──┤19 ├──┤20 ├──┤21 ├──┤22 ├──┤23 ├──┤24 │
└───┘ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘
24 Transputer
Unter Brain AID Prolog besetzt jeder Transputer eine Hauptschleife:
repeat
rec_msg(sender,Msg),
call(Msg),
sen_msg(sender,Msg),
fail.
Diese Hauptschleife läßt sich wie folgt graphisch darstellen:
1
Ein „Verteiltes System'' ist eine Sammlung autonomer Rechner, welche
durch ein Netz miteinander verbunden sind und über eine Software für
verteilte Systeme verfügen, die integrierte Berechnungen ermöglicht.
Diese Software soll es den Rechnern ermöglichen, ihre Aktivitäten
miteinander zu koordinieren und die Ressourcen des gesamten Systems
gemeinsam zu nutzen. Dabei sind unter „Ressourcen“' Hardware, Software
sowie Daten zu verstehen.
Dr. Jamel Tazarki
7
book.statistics@web.de
┌─────────>────────┐
│
┌──────────────┴───────────────────┐
│
│ Hole Anweisungen von der Mailbox │
│
│ und registriere die Adresse der │
│
│ Absender.
│
│
└────────────────┬─────────────────┘
│
┌────────────────┴─────────────────┐
│
│ führe die Anweisungen
│
│
│ des Absenders aus
│
│
└────────────────┬─────────────────┘
│
┌────────────────┴─────────────────┐
│
│ Schicke die Ergebnisse der
│
│
│ ausgeführten Anweisung an
│
│
│ den Absender zurück
│
│
└────────────────┬─────────────────┘
└─────────<──────────┘
Jeder Transputer kann Server und Client sein, in Abhängigkeit davon, ob er
Anweisungen an seine Nachbarn gibt, oder ob er Befehle erhält:
┌────────────────────────┐ ┌──────────────────────────┐
│
Server:
│ │Client:
│
│ ┌─
│ │ ┌─
│
│ │repeat
│ │ │send_msg(Dest,Task3) ─>┐│
│┌>│rec_msg(sender,Msg), │ │ │rec_msg(Dest,reply)
││
││ │call(Msg),
│ │ └─
││
││ │send_msg(sender,Msg),│ │
││
││ │fail.
│ │
││
││ └─
│ │
││
││
MailBox
│ │
││
││
┌──
│ │
││
││
│ Task1
│ │
││
││
│ Task2
│ │
││
│└────┤ Task3 <─────────┼─┼─────────────<───────────┘│
│
│ ...
│ │
│
│
└─
│ │
│
└────────────────────────┘ └──────────────────────────┘
Beispiel: Der Transputer Nr. 3 (client) verlangt von Transputer Nr. 5
(server) die Fakultät der Zahl 4 zu berechnen und ihm das Ergebnis zu
übermitteln.
Diese Transaktion läuft wie folgt:
Dr. Jamel Tazarki
8
book.statistics@web.de
1) client (Transputer Nr 3):
send_msg(5,fakultaet(4))
wobei DEST :=5 und Task :=fakultaet(4)
2)server (Transputer Nr 5):
i) rec_msg(3,fakultaet(4))
wobei sender:=3 und Msg:= fakultaet(4)
ii) call(fakultaet(4))
dabei wird das Ergebnis von 4!=12 an der
Variablen Msg zugewiesen : Msg:=12.
iii) send_msg(3,12)
Wobei sender:=3 und Msg:=12.
Für die Machtbeziehungsanalyse enthält die Datenbasis jedes Transputers
a) eine Liste von Handlungen der Form L=[h(k,i,e_1,w_1,e_2,W_2)] wobei
e_1, e_2 e {0,1,2,3,4,5,6,7,8,9,10}
w_1, w_2 e {0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,0,1,2,3,4,5,6,7,8,9,10}
ie {1,2}
e_1 ist der Einsatz der ersten Person (Transputer), damit die Handlung
stattfindet.
e_2 ist der Einsatz der zweiten Person (Transputer),.
W_1 der Wert, den die erste Person (Transputer), nach Ausführung der
Handlung haben wird.
W_2 der Wert, den die zweite Person (Transputer), nach Ausführung der
Handlung haben wird.
Ziffer 1 steht für den bestimmenden Akteur.
Ziffer 2 steht für den betroffenen Akteur.
b) ein Prädikat der Form s(k,a).
s(k,a) steht für: "Knoten (Transputer) k hat die Stärke a".
Jeder Knoten kann jedem Nachbarknoten befehlen, daß dieser eine zum
Handlungstyp h(k,i,e-1,w-1,e-2,W-2) gehörige Handlung ausführt:
Das zweite Projekt ist eine an der University of Groningen (Evert Jan
Stokking, 1991) durchgeführte Simulationsstudie, die ich auf den Bereich
der sozialen Institutionen anzuwenden versucht habe.
Dr. Jamel Tazarki
München 2003
Dr. Jamel Tazarki
9
book.statistics@web.de
Kapitel I
Datenbasis
Logische Programmierung
Logische Programmierung wird oft auch als wissensbasierte
Programmierung bezeichnet. In der Sprache der Logik besteht das Wissen
aus einer Menge von wahren Aussagen. Gibt der Benutzer eine Behauptung
ein, so versucht sich das System ,sie auf der Grundlage des Wissens, das in
einem Rechner gespeichert ist, als richtig oder falsch zu beweisen.
Darauf aufbauend kann man logisches Programmieren als einen
Berechnungsformalismus bezeichnen , der folgende Prinzipien vereint:
i) Er benutzt Logik als Sprache zur Formalierung von Sachverhalten
(Wissen).
ii) Er benutzt Herleitungsstrategien, um dieses Wissen zu benutzen und zu
manipulieren.
Wenn wir irgendwelche Sachverhalte der uns umgebenden Welt beschreiben
wollen, benutzen wir dazu normaleweise deklarative Sätze einer natürlichen
Sprache, z.B.:
Sokrates ist ein Mensch
Die Menschen sind sterblich
Bei Anwendung einer gewissen Ableitungsregel können wir eine
Beschreibung nutzen, um daraus Rückschlüsse zu ziehen. Wenn wir nun die
beiden Aussagen oben kennen, ist es möglich daraus zu schließen : Sokrates
ist sterblich.
Dieses Beispiel reflektiert die prinzipielle Idee von logikprogrammieren,
nämlich die Beschreibung von endlichen Relationen zwischen Objekten, um
Schlussfolgerungen zu ziehen. Logisches Programmieren ist somit
Programmeirung durch Beschreibung. Die Definition eines LogikProgramm nach L. Sterling und E. Shapiro: „ Ein Logik-Programm ist eine
Menge von Axiomen oder Regeln, die Relationen zwischen Objekten
definert. Die Berechnung eines logischen Progamms ist eine deduktive
Folgerung des Programms. Ein Programm definiert eine Menge von
Folgerungen, wellche gleichzeitig sein Inhalt sind. Die Kunst der logischen
Prograammieren ist es kurze und elegante Programme zu konstruiren,die die
gefordete Bedeutung haben“.
Dr. Jamel Tazarki
10
book.statistics@web.de
Wissenspräsentation
In diesem Kapitel sollen Techniken zur Darstellung von Wissen diskutiert
werden. Wir werden damit Programme erstellen, die intelligente Qualitäten
haben. KI-Programme hängen sehr von der Präsentation der verschiedenen
Arten von Wissen ab. Hier werden einige der wichtigsten Techniken zur
Präsentation von Wissen vorgestellt. Die Techniken variieren von einfachen
Darstellungen wie Fakten bis hin zu komplexen Wissensstrukturen. Prolog
enthält effiziente Einrichtungen zur Entwicklung von Techniken zur
Wissenspräsentation.
Die klassischen Datenstrukturen
Traditionelle Programme verwenden Datenstrukturen wie arrays, records
oder struktures, um Information zu spreichern. Diese Datenstrukturen sind
zur Speicherung bestimmter Datentypen sehr nützlich; wenn man aber die
komplexen Beziehungen darstellen muß, die man in einem KI-Programm
(z.B. Expertensystem) findet, so wird man feststellen, daß diese
Datenstrukturen sehr einschränkend verwendbar sind. Um die
Leistungsfähigkeit von KI-Programmen zu erhöhen, wurden bessere
Techniken zur Speicherung und Nutzung von Wissen entwickelt.
Verschiedene Arten von Wissen
Es ist kaum möglich, eine ideale Wissensdarstellung anzugeben, die es dem
Computer ermöglicht, das intelligente "Menschendenken" nachzuahmen.
Trotzdem hat es sich in der KI-Forschung als hilfreich erwiesen, die
verschiedenen Arten menschlichen Wissens in Klassen einzuteilen:
* statisches Wissen,
* dynamisches oder aktives Wissen,
* oberflächliches Wissen,
* profunde Kenntnisse,
* prozedurales Wissen,
* deklaratives Wissen.
Statisches Wissen ändert sich nicht während der gesamten Lebensdauer
eines Programms. Mit diesr Art von Wissen ist es einfach zu arbeiten. Man
muß es nur einmal darstellen. Die folgenden Prädikate
rund(kugel)
rechteckig(kasten)
drücken allgemeingültige Eigenschaften aus.
Dr. Jamel Tazarki
11
book.statistics@web.de
Diese Eigenschaften werden in der Datenbasis als Prädikate dargestellt und
drücken Beziehungen aus, die immer erfüllt sind und jedesmal ohne weitere
Änderungen verwendet werden können. Statisches Wissen ist trotzdem sehr
begrenzt. Programme, die nur statisches Wissen nutzen, sind nicht
leistungsfähig und sehr ungeeignet zur Lösung komplexer KIAnwendungen.
Dynamisches Wissen kann während der Ausführung eines Programms
wachsen und sich ändern. Diese sind deshalb viel effizienter als statische
Wissensbasen. So kann man beispielsweise durch dynamisches Zufügen und
Löschen von Prädikaten in einer Wissensbasis sehr bequem den Kontostand,
die Stärke, die Verluste und die Gewinne zweier Individuen, die sich in
einem mehrmaligen Spiel engagiert haben,(während des Spiels) in Prolog
ändern.
Man könnte die notwendige Darstellung in Prolog mit der databaseKlausel:
spieler(symbol), kontostand(symbol,real,symbol), Stärke(symbol,real),
Verluste(symbol,real,symbol), Gewinne(symbol,real,symbol),
erzeugen. Mit dieser Struktur ließe sich jetzt dynamisches Wissen erstellen,
indem Fakten mit diesen Prädikaten während des Spiels eingefügt oder
gelöscht werden. Beispielsweise wird die Anweisung:
assert(kontostand(karl_seebauer,5000,DM)
den Kontostand des Spielers Karl Seebauer der Datenbasis hinzufügen.
Man kann auch jederzeit Wissen über die eingebaute retract-Klausel
löschen. Die Anweisung retract(kontostand(karl_seebauer,_,_)) löscht das
entsprechende Faktum. Um nur den Inhalt zu gewinnen, schreibt man:
kontostand(karl_seebauer,X,Y). Man kann während des Programmlaufs mit
der retract-Klausel altes Wissen herausnehmen und mit assert neues
anhängen.
Oberflächliches Wissen beinhaltet das Alltagswissen, das die Individuen
durch Anschauung gewinnen. Es repräsentiert die oberflächliche Seite eines
Problems. Vertiefte Kenntnisse dagegen können sich nur auf Theorien,
Fakten und Prinzipien eines bestimmten Fachgebiets basieren.
Prozedurales Wissen läßt sich als Prozedur darstellen. In
Computerprogrammen wird eine Prozedur als Code und nicht als Daten
gespeichert. Die Mehrzahl der Programmiersprachen ist eine Form
Dr. Jamel Tazarki
12
book.statistics@web.de
prozeduralen Wissens. Diese Prozeduren legen fest, wie eine Aufgabe mit
Hilfe der Programmiersprache bearbeitet wird.
Deklaratives Wissen läßt sich dagegen in Form von Daten speichern. Es
bietet die Speicherungsmöglichkeit unabhängig vom Programmcode. Die
deklarative Bedeutung betrifft die logischen Relationen des Programms.
Prolog ist nicht nur eine deklarative Sprache, sondern auch eine
prozedurale. Sie bestimmt die logischen Relationen des Programms und legt
fest, wie diese Relationen bearbeitet werden. Betrachten wir dazu das
folgende Beispiel: AA if BB,CC,DD.
aus der deklarativen Sicht kann die Klausel gelesen werden als "AA ist
wahr, wenn BB,CC und DD wahr sind" und aus prozeduraler Sicht kann die
Klausel gelesen werden als:"Damit AA erfüllt ist, muß zuerst BB, dann CC
und dann DD erfüllt werden".
Der prozedurale Aspekt erlaubt die Ablaufkontrolle eines Programms. Es
wird bestimmt, wie ein goal beantwortet werden muß. Es ist sehr wichtig für
die KI, daß man die Logik und die Kontrolle eines Programms als getrennte
Elemente behandeln kann. Man beachte jedoch, daß die ausschließlich
deklarative oder ausschließlich prozedurale Darstellung einem Programm
nicht die Flexibilität verleiht, die zur Erstellung intelligenter Programme
notwendig ist. Jeder Ansatz hat natürlich seine Vorzüge.
Wissenspräsentation mit Frames
Ein effizientes Konzept zur Darstellung von Wissen wurde vom Marvin
Minsky entwickelt und nennt sich Frames. Das Frames-Konzept besteht in
der Trennung von Wissen in bestimmten Kategorien. Frames sind wie
Wörterbücher organisiert. Sie werden oft als tabellenartige Datenstruktur
implementiert, in der alle Information einer gegebenen Kategorie
zusammengefaßt ist.
Frames können wie Tabellen verschiedene Felder haben, in die man
Information speichern kann. Man nennt diese Felder Slots. Ein Frame z. B.
zur Beschreibung von Firmen könnte die folgenden Slots beinhalten:
Firmen_Name
Adresse
Kapital
Eingentümer
Produktionsbereich
Typ
Dr. Jamel Tazarki
13
book.statistics@web.de
Der Slot "Typ" definiert, ob es sich um eine AG, GmbH, usw handelt.
Eine wichtige Besonderheit von Frames besteht darin, daß die Solts
Standarddaten haben können. Das bedeutet, daß nicht alle Fakten angegeben
werden müssen. Im Frame-Beispiel für Firmen könnte man für den Slot
"Typ" den Standardwert "AG" wählen. Dieser Standardwert wird immer
dann benutzt, wenn die Informationen für diesen Slot nicht angegeben
wurden. Dadurch werden Situationen bewältigt, in denen nicht alle
Informationen vorhanden sind.
Slots können auch auf andere Frames verweisen. Es entsteht ein sogenanntes
Child-Frames. Dadurch bekommen sie eine große Flexibilität. So kann ein
Frame auf einen anderen verweisen, der wiederum auf weitere Frames
verweist. Als Beispiel werden wir einen Buchverlag mit seinen
verschiedenen Abteilungen mit Hilfe von Frames betrachten.
Dieser Ansatz zur Wissenspräsentation ist die Basis für viele Tools zur
Erstellung von Expertensystemen. Frames können dynamisch mit anderen
Frames verbunden werden und so das hierarchische Wissen über ein
Problem darstellen. In unserem Beispiel läßt sich sowohl die
Grundkonfiguration als auch die aktuelle Konfiguration eines Verlages
beschreiben.
Die folgende Abbildung :
Name
Stufe
Eltern
Kommentar
Slotname Slottype ...
Bezeichner
enthält das Muster für einen Frame, der zur Konfiguration eines Verlages
eingesetzt werden kann. Er enthält Felder zur Aufnahme allgemeiner
Informationen über den Frame selbst, wie Name, Stufe, Eltern.
Das Feld "Eltern" enthält den Namen des Frames, der auf diesen verweist.
Das Feld "Stufe" gibt die Hierarchieebene dieses Frames an. Außerdem hat
jeder Frame Slots, deren Anzahl nicht begrenzt ist. Slots können auch
Hilfsfelder oder Attribute haben. Diese Felder sind als Hilfe für die
Definition und Beschreibung der Slotwerte gedacht. Beispielsweise wird der
Geltungsbereich für numerische Slotwerte durch die Ober- und Untergrenze
angegeben. Für nicht-numerische Werte enthält das Feld "erlaubte Werte"
Dr. Jamel Tazarki
14
book.statistics@web.de
eine Liste mit den erlaubten Werten. Der Standartwert wird verwendet,
wenn keine andere explizite Information verfügbar ist.
In dieser Darstellung ist das Wissen leicht zugänglich. Frames sind gut zur
Bearbeitung komplexer Strukturen geeignet. Sie haben eine hierarchische
Struktur ähnlich der von Datenbäumen und sie vereinfachen den Umgang
mit Standardwerten, die nicht explizit erfaßt wurden. Die Frames und die
Slots werden in dieser Arbeit wie folgt definiert:
a) Frames :
frame(F-name,Par-name,Stufe,Anzahl,Bezeichnung):
F-name = integer Name des Frames: In diesem Fall
Name der Abteilung.
Par-name =integer Name des Eltern_Frames
Stufe = integer
Das Feld Stufe gibt die Stufe des
Frames in der Gesamtstruktur an.
Anzahl = integer Anzahl der Mitarbeiter
Bezeichnung = symbol
Name der Abteilung
Beispiel: Die Abteilung "Anzeigen" hat den Code 0, die Hierarchieebene 3
und 4 Mitglieder. Sie wird durch das frame(0,15,3,4,"Anzeigen")
dargestellt, wobei 15 der Code des "Eltern-Frame" ist, das die
Vertriebsleitung repräsentiert.
Für den Verlag bekommen wir die folgenden Frame-Definitionen:
frame(0,15,3,4,"Anzeigen"). frame(1,16,3,50,"Autoren").
frame(2,21,3,2,"Betriebsrat"). frame(3,23,3,4,"Buchherstellung").
frame(4,23,3,2,"Herstellung-Werbemittel").
frame(5,21,3,11,"EDV"). frame(6,15,3,9,"Werbung").
frame(7,15,3,2,"Vertreter"). frame(8,0,1,3,"Verlagsleitung").
frame(9,15,3,2,"Adresswesen").
frame(10,15,3,4,"Verkauf"). frame(11,21,3,2,"Poststelle").
frame(12,16,3,5,"Buchprogrammplanung").
frame(13,21,3,5,"Personalabteilung").
frame(14,15,3,5,"Marketing"). frame(15,8,2,3,"Vertriebsleitung").
frame(16,8,2,3,"Programmleitung").
frame(17,16,3,7,"LektoratBuch"). frame(18,23,3,5,"Graphik/Layout").
frame(19,15,3,5,"Lager+Versand"). frame(20,3,15,11,"Kunden").
frame(21,8,2,3,"Kfm.Verwaltung"). frame(22,23,3,4,"Einkauf").
frame(23,2,8,3,"Herstellungsleitung").
frame(24,21,3,7,"Finanzbuchhaltung").
Dr. Jamel Tazarki
15
book.statistics@web.de
Die Argumente für diese Klausel sind der Name des Frames, der Name des
Eltern-Frames, die Anzahl der Mitarbeiter, die Stufe und die Bezeichnung
des Frames. Der Name des Eltern-Frames liefert eine Verknüpfung zum
übergeordneten Frame und es entsteht dadurch die hierarchische Ordnung
des Wissens. In unsere Beispiel gibt die Bezeichnung den Namen der
Abteilung an. Wir haben 24 verschiedene Abteilungen und dazu 24
verschiedene Frames.
b) Slots : slot(F-name,S-name,S-type,S-Up-val,S-Low-val, Ausführer,A-Upval,A-Low-val,Bezeichner)
F-name = integer
ist der Name des frames, zu dem der SLOT gehört.
S-name = integer
SLOT_Name
S-type=string
Handlungstyp oder konkrete Handlung
S-Up-val=integer
Maximale Anzahl der Slots (Handlungen) für eine
Abteilung (wegen der Zufallsfunktion)
S-Low-val=integer
Minimale Anzahl der Slots (Handlungen) für eine
Abteilung (wegen der Zufallsfunktion)
A-Up-val=integer
Manimale Anzahl der Personen, die einen Slot
(Handlung) ausführen dürfen (wegen
der
Zufallsfunktion)
A-Low-val=integer
Maximale Anzahl der Personen, die einen Slot
(Handlung) ausführen dürfen (wegen
der
Zufallsfunktion)
Ausführer
Die ausführende Person
Bezeichner=string
Handlungsname
Die "slot"-Klausel ist eine Stuktur, die verschiedene Argumente hat, wie
z.B. den Frame-Namen, den Slot-Namen, den Slot-Wert und die
Bezeichnung des Slots. In diesem Beispiel gibt es zwei Typen von Slots
"Khd" und "Ht": Konkrete Handlung und Handlungstyp.
Beispiel: slot(0,3,"Khd",1,36,2,1,4,"ANZEIGEN_PLANEN").
Dieser Slot entspricht der Handlung, die mit der Zahl 3 codiert wurde, und
die zur Abteilung (Frame) mit dem Code 0 (Anzeigen) gehört. Diese
Handlung der Gruppe Anzeigen wird von dem Mitglied mit dem Code 2
durchgeführt. Die Abteilung Anzeigen (das Frame mit dem Code 0) hat 36
verschiedenen Handlungen (1 bis 36) und besteht aus 4 Mitgliedern (1 bis
4).
Dr. Jamel Tazarki
16
book.statistics@web.de
Die Slots (Handlungen) für das Frame (Gruppe) mit dem Code 0 werden in
der datei f_0.dat gespeichert. Die Slots (Handlungen) für das Frame
(Gruppe) mit dem Code 1 werden in der datei f_1.dat gespeichert usw.
S-Low-val gibt die minimale Anzahl der Handlungen für ein Frame
(Abteilung) an.
S-Up-val gibt die maximale Anzahl der Handlungen für ein Frame
(Abteilung) an.
S-Low-val und S-Up-val werden in der Zufallsfunktion benutzt: Es wird
eine Zahl X, die einer Handlung der Abteilung entspricht, durch den
Zufallsgenarator erzeugt, so daß S-Low-val <= X <= S-Up-val
A-Low-val gibt die minimale Anzahl der Mitglieder eines Frames
(Abteilung) an. A-Up-val gibt die maximale Anzahl der Mitglieder eines
Frames (Abteilung) an. A-Low-val
und A-Up-val werden in der
Zufallsfunktion benutzt: Es wird eine Zahl Y, die einem Mitglied einer
Abteilung entspricht, durch den Zufallsgenarator erzeugt, so daß A-Low-val
<= Y <= A-Up-val.
Die Slots für den Frame 0 (Abteilung mit dem Namen 0) werden in der
Datei f_0.dat gespeichert. Mit dem Befehl consult("f_0.dat") werden die
Slots in die Datenbasis eingefügt.
Die Slots für den Frame 1 (Abteilung mit dem Namen 1) werden in der
Datei f_1.dat gespeichert. Mit dem Befehl consult("f_1.dat") werden die
Slots in die Datenbasis eingefügt. Usw Für die Programmierung von Frames
und Slots siehe Anhang I.
Dr. Jamel Tazarki
17
book.statistics@web.de
Kapitel II
Computersimulation und
stochastische Verfahren.
Simulation auf dem Computer
Für unser Programm der künstlichen Intelligenz werden sogenannte
Pseudozufallszahlen (also keine echten Zufallszahlen) vom Computer
erzeugt. Ohne diese Zahlen könnten wir keine Zufallsexperimente
simulieren. Wir wollen des Wesentliche dieser Begriffsbildung gleich am
Beispiel des sogenannten Kongruenzgenerators besprechen.
Der Kongruenzgenerator ist der wichtigste Pseudozufallsgenerator für die
Praxis. Er wird wie folgt bestimmt: Man wählt vier positive ganze Zahlen a,
b, c und x0 (dabei ist x0 der sogenannte Startwert). Mit diesen vier Zahlen
wird eine Zahlenfolge x0, x1, x2, x3, x4, ... xn, ... nach dem folgenden
Algorithmus erzeugt:
x1 = (a + b* x0)mod c, x2 = (a + b* x1)mod c, ... xn+1 = (a + b* xn)mod c,
(a + b* xn)mod c ist der ganzzahlige Rest bei der Division von a + b* xn
durch c. Beispiel: a:=2, b:=3, c:=7 und als Startwert nehmen wir x0:=1 :
x1 =(2+3*1) mod 7 = 5; x2 =(2+3*5)mod 7 = 3; x3 =(2+3*3)mod 7 =4;
x4 =(2+3*4)mod 7 =0; x5 =(2+3*0)mod 7 =2; x6 =(2+3*2)mod 7 =1= x0
Für geeignete ganze Zahlen a,b,c (in den statistischen Programmpaketen ist
diese Wahl meistens schon festgelegt) durchläuft die Folge xi den ganzen
Zyklus der Zahlen 1,2,... , (c-1), als wäre sie das Resultat eines echten
Zufallsexperimentes. Somit kann man auf dem Computer mit arithmetischen
Operationen Zahlenfolgen generieren, die sich genauso verhalten wie die
Ausgänge echter Zufallsprozesse. Man spricht aus diesem Grunde von
Pseudozufallszahlen. Ihre Erzeugung erfordert keine Urnen oder sonstige
Mittel. Man benutzt daher heute allgemein Pseudozufalls-zahlengeneratoren
für Simulationszwecke.
Im folgenden wird das Leben innerhalb einer Institution simuliert. Die
Simulationsprozedur unseres Programms der künstlichen Inteligenz wird
Gruppen, Personen und Handlungen mit Hilfe einer Zufallsfunktion
Dr. Jamel Tazarki
18
book.statistics@web.de
auswählen. Durch mehrmalige Anwendung der Zufallsfunktion innerhalb
einer bestimmten Zeitspanne erhalten wir eine Gleichverteilung. Der
erfahrene Rechnerbenutzer weiß, daß in Datenverarbeitungsprozessen mit
Zahlen effizienter gearbeitet werden kann, als mit Buchstaben oder Texten.
Deshalb werden alle Daten der betrachteten sozialen Institutionen in
Zahlenwerte transformiert. Beispiel: Die Handlung der Personalabteilung
"Mitarbeiter einstellen", die vom Personalchef genehmigt und vollzogen
wird, wird folgendermaßen codiert: hand(2,12,3). Dabei wird gesetzt:
2="Mitarbeiter
einstellen";
12="Personalabteilung"
und
3="Personalchef".
Man spricht in diesem Zusammenhang von der sog. Codierung und
entwickelt zu diesem Zweck ein Codebuch, in dem aufgezeichnet wird, in
welcher Weise die Ausgangsinformationen codiert werden.
Unsere Vorgehensweise ist folgende:
1) Die Gruppe gi bekommt den Code i, wobei 0<=i<=24.
2) Es sind 24 Gruppen vorhanden. Jeder Gruppe wird eine Datei
zugeordnet, die alle möglichen Handlungen (Slots) dieser Gruppe (Frame)
enthält: Den Gruppen g0 bis g24 ordnen wir jeweils die externen Dateien
f_0.dat bis f_24.dat zu. Die Datei f_0.dat enthält z. B. die Slots
(Handlungen) der Gruppe (Frame) g0 mit dem Code 0. Diese Datei enthält
die Slots der Form:
slot(0,_,"Khd",_,_,_,_,_,_). Im allgemeinen enthält die Datei f_I1.dat die
Sltots (Handlungen) der Gruppe (Frame) gI1 mit dem Code I1. Diese Datei
enthält die Slots der Form: slot(I1,I2,"Khd",H1,H2,I3,1,4,Bezeichner).
Die Variable I1 beinhaltet den Code für die Abteilung (Gruppe) gI1.
Die Variable I2 beinhaltet den Code für eine Handlung der Gruppe mit dem
Code I1 und die Variable I3 beinhaltet den Code für den Ausführer der
Handlung mit dem Code I2. Die Werte für die Variablen I1, I2 und I3
werden durch Zufall wie folgt definiert: Die in Prolog vordefinierte
Zufallsfunktion „random(25,I1)“ weist eine Zahl zwischen 0 und 24 der
Variaben I1 zu. Diese Zahl bestimmt eine Gruppe innerhalb der Institution.
Die Zufallsfunktion „random(60,I2)“ weist eine Zahl zwischen 0 und 59 der
Variaben I2 zu. Diese Zahl bestimmt eine Handlung I2 der Gruppe I1
innerhalb der Institution. Die Zufallsfunktion „random(4,I3)“ weist eine
Zahl zwischen 0 und 3 der Variaben I3 zu. Diese Zahl bestimmt eine
zugehörige Person der Gruppe I1, die die Handlung I2 ausführt. Die
simulierten Handlungen hand(I1,I2,I3) werden jeweils in den Dateien
rea_i1.dat gespeichert. Es gilt 0<= i1 <=24.
Dr. Jamel Tazarki
19
book.statistics@web.de
In diesem Fall besteht der Rahmen für die Handlungsmöglichkeiten der
Akteure aus 25*100*9=22500 Handlungen. Es gibt 25 Gruppen und im
Durchschnitt hat jede Gruppe 9 Mietglieder und 100 Handlungen. Wir
brauchen eine Zufallsfunktion, die eine Untermenge von den 22500
möglichen Aktionen der Akteure aussucht. Wir wollen dabei eine
Gleichverteilung erreichen. Zu diesem Zweck werden (wie oben erklärt
wurde) drei unabhängige Aufrufe der Zufallsfunktion ausgeführt. Der erste
Aufruf der Zufallsfunktion bestimmt den Code einer Gruppe. Der zweite
Aufruf bestimmt den Code einer Handlung innerhalb der Gruppe. Der dritte
Aufruf bestimmt die Person, die die Handlung ausführt (falls verschiedene
Personen die gleiche Handlung innerhalb einer Gruppe durchführen
können).
Bemerkung: Eine Zufallsfunktion über die gesamten 22500 Handlungen
wird im Durchschnitt 2250000 Aufrufe benötigen, um sich der
Gleichverteilung anzunähern. Bei einer größeren Institution wird es schwer
sein, eine Gleichverteilung über die gesamte Menge der Handlungen der
verschiedenen Gruppen zu erreichen. Deshalb muß man die Zufallsfunktion
in drei verschiedenen, unabhängigen Aufrufen durchführen:
code = 4000
domains
I1, I2, I3 = integer.
file = test; test1.
record = hand(integer,integer,integer).
database
hand(integer,integer,integer).
predicates
repeat1(file).
repeat.
zufall.
datei(integer,symbol).
lese(integer,integer,integer,symbol).
clauses
repeat.
repeat if repeat.
repeat1(_).
repeat1(File) if not(eof(File)), repeat1(File).
zufall if time(_,M1,_,_),!, repeat, random(24,I), random(60,J),
random(4,K), datei(I,R), lese(I,J,K,R), write("gpe="), write(I), nl,
write("hand="), write(J), nl, write("Pers="), write(K), nl, time(_,M2,_,_),
Dr. Jamel Tazarki
20
book.statistics@web.de
X=M2-M1, X>2,!.
lese(I,J,K,R) if closefile(test), openread(test,R),!, readdevice(test),
repeat1(test), readterm(record,hand(II1,II2,II3)), II1=I, II2=J,
II3=K,!.
datei(1,"f1.dat") if !. datei(2,"f2.dat") if !. datei(3,"f3.dat") if !.
datei(4,"f4.dat") if !. datei(5,"f5.dat") if !. datei(6,"f6.dat") if !.
datei(7,"f7.dat") if !. datei(8,"f8.dat") if !. datei(9,"f9.dat") if !.
datei(10,"f10.dat") if !. datei(11,"f11.dat") if !. datei(12,"f12.dat") if !.
datei(13,"f13.dat") if !. datei(14,"f14.dat") if !. datei(15,"f15.dat") if !.
datei(16,"f16.dat") if !. datei(17,"f17.dat") if !. datei(18,"f18.dat") if !.
datei(19,"f19.dat") if !. datei(21,"f21.dat") if !. datei(22,"f22.dat") if !.
datei(23,"f23.dat") if !. datei(24,"f24.dat") if !. datei(25,"f25.dat") if !.
datei(26,"f26.dat") if !. datei(27,"f27.dat") if !. datei(28,"f28.dat") if !.
datei(29,"f29.dat") if !. datei(30,"f30.dat") if !.
Das folgende Programm gibt eine konkrete Vorstellung der erreichten
Verteilung der Zufallsfunktion:
Wahrscheinlichkeitsfunktion und
Verteilungsfunktion
Die Güte des Zufallszahlengenerators ist abhängig von der Wahl des
Moduls und des Faktors. Ein Zufallszahlengenerator muß daher eine
umfangreiche Testserie durchlaufen, bis er akzeptiert werden kann.
Mögliche Tests sind der Chi-Quadrat-Test, der Runtest und der Spektraltest.
Bei der Prüfung einer Verteilungshypothese untersucht man, ob die in einer
Stichprobe beobachtete Verteilung mit der für die unbekannte Verteilung
der Grundgesamtheit gemachten Annahme in Widerspruch steht oder nicht.
Anders formuliert: Man entscheidet, ob die Unterschiede zwisehen der in
der Stichprobe beobachteten und der auf Grund der Verteilungsannahme in
der Stichprobe erwarteten Verteilung noch dem Zufall zugeschrieben
werden können oder nicht. Da hier die Güte der Anpassung einer
theoretischen Verteilung an eine empirische Verteilung überprüft wird,
spricht man auch von einem sogenannten Anpassungstest.
Ein weit verbreitetes Testverfahren zur Prüfung von Verteilungshypothesen
ist der Chi-Quadrat- Test in der Form des Chi-Quadrat-Anpassungstests. Die
Nullhypothese lautet hier immer, daß die Grundgesamtheit einer bestimmten
Verteilung gehorcht.
Für die Definition der Chi-Quadrat Verteilung benötigen wir die Definition
von Zufallsvariablen, Verteilungsfunktionen und der Normalverteilung.
Dr. Jamel Tazarki
21
book.statistics@web.de
Zufallsvariable
Eine Zufallsvariable ist eine Funktion, deren Definitionsbereich der
Ereignisraum und deren Wertebereich eine Teilmenge der reellen Zahlen ist;
also eine Funktion (oder Abbildung) X von S nach R: X  R.
Eigenschaften von Erwartungswert und Varianz:
1)
geg.: a, b bel. Reelle Zahlen
E(aX + b) = aE(X) + b
2)
geg.: 1(X), 2(X) zwei beliebige Funktionen der Zufallsvariable X
E[1(X) + 2(X)] = E[1(X)] + E[2(X)]
3)
Var(aX + b) = a2 Var(X)
Die Verschiebung (b) beeinflußt die Varianz nicht, a ist ein
Formfaktor, der die Funktion beeinflußt.
4)
Verschiebesatz: Var(X) = E(X2) - [E(X)]2
Diskreter Fall:
Als Verteilungsfunktion F(x) der Zufallsvariablen X bezeichnen wir die
Funktion:
F ( x )  P ( X  x )  P ({ e k  S : X ( e k )  x } ) 

f ( xi ) ,
xi  x
die folgende Eigenschaften besitzt:
1)0  F(x)  1
2)F(x) ist monoton wachsend, d.h. für x1 < x2  F(x1)  F(x2).
3)F(x) ist eine Treppenfunktion mit einer endlichen (abzählbar unendlichen)
Anzahl von Sprungstellen. Die Sprungstellen sind jeweils jene Werte xk, für
welche f(xk) > 0 ist. Der Wert von F(x) an der Sprungstelle ist stets der
größere Wert der beiden Stückenden.
4)P(a < X  b) = F(b) - F(a)
stetiger Fall:
Die Verteilungsfunktion F(x) wird analog definiert:
F (x)  P( X  x) 

x

f ( x' )dx'
mit folgenden Eigenschaften:
1)0  F(x)  1
2)F(x) ist monoton wachsend
3)
4)
df ( x)
 f (x)
dx
P(a < X  b) = F(b) - F(a)
Dr. Jamel Tazarki
22
book.statistics@web.de
Dichtefunktion
Ein Ereignisraum mit überabzählbar unendlich vielen Elementen wird durch
die stetige Zufallsvariable X auf ein Intervall der reellen Achse abgebildet.
An die Stelle der diskreten Wahrscheinlichkeitsfunktion f(x) tritt hier die
stetige Wahrscheinlichkeitsdichte, die wir ebenfalls mit f(x) bezeichnen.
Die Frage nach P(X = x) ist hier nicht sinnvoll, da für jedes x : P(X = x) = 0
wird. Sinnvoll ist nur die Frage nach der Wahrscheinlichkeit, daß X einen
Wert in einem Intervall (a,b] annimmt:
P (a  X  b) 

b
f ( x)dx .
a
Eigenschaften:
1)f(x)  0 für alle x, f(x) > 0 zumindest für ein Intervall
2) P (  
 X  ) 



f ( x)dx  1
Normalveteilung: Die Normalverteilung ist wohl die wichtigste
statistische Verteilung überhaupt. Sie ist eine stetige Verteilung und besitzt
die symetrische Dichtefunktion :
n(x) 
n
2 

e
x  
2
2
2
n (x )




+
x
Dr. Jamel Tazarki
23
book.statistics@web.de
ist der Erwartungswert.  ist die Varianz. „n“ ist die Anzahl der
Individuen in der Stichprobe.
„n(x)“ ist die Anzahl der Individuen, die die Eigenschaft „x“ besitzen.
Es lässt sich zeigen, daß die Dichtefunktion der Normalverteilung ihr
Maximum bei x=  annimmt und die beiden Wendepunkte bei x=  - 
und
x=  +  liegen.
Die Normalverteilung ist symetrisch.
68% der Individuen liegen zwischen  -  und =  + :
95% der Individuen liegen zwischen =  - 2 und =  + 2:
99,7% der Individuen liegen zwischen =  - 3 und =  + 3:

Die Chi-Quadrat-Verteilung ²
Der Chi-Quadrat –Verteilung entspricht das folgende stochastische Modell:
Sind Z1, Z2, …, Zv unabhängig standartnormalverteilte Zufallsvariablen, so
besitzt die Quadratumme : X2 (Z1) 2 + ( Z2) 2+ …+( Zv ) 2 eine Chi-QuadratVerteilung mit „v“ Freiheitsgraden.
Die Zufallsvariable ² hat folgende Wahrscheinlichkeitsdichte:

f (x)  
 K
K
n
x  0
0
n2
n
x
2
x
e
2
x  0
1

n
2
(x) 
n
 
 2
2


e
t
t
x 1
dt , ( Gamma
 Funktion
)
0
Man benötigt sie als Grundlage für den Chi-Quadrat-Anpassungstest, den
Chi-Quadrat-Homogenitätstest sowie den Chi-Quadrat-Unabhängigkeitstest.
Außerdem benötigt man sie zur Bestimmung von Konfidenzintervallen für
Varianzen.
Parameter: E(²) = n, Var(²) = 2n
Mit wachsendem n nähert sich die Chi-Quadrat-Verteilung einer
Normalverteilung mit den Parametern  = n ² = 2n.
Dr. Jamel Tazarki
24
book.statistics@web.de
Gleichverteilung
Eine diskrete Zufallsvariable ist gleichverteilt, wenn jede ihrer k
Ausprägungen x1, ..., xk die gleiche Wahrscheinlichkeit besitzen, wenn also
P ( X  x) 
1
(z.B.: ein idealer Würfel).
k
Eine stetige Zufallsvariable X heißt gleichverteilt, wenn sie folgende
Wahrscheinlichkeitsdichte besitzt:
a, b  R, a < b


f (x)  
b

x  a
0
1
a  x  b
 a
0
x  b

0
x  a
F (X )  
b  a
1

E(X ) 
a  b
x  a
a  x  b
x  b
, Var ( X ) 
2
(b  a )
2
12
Spezialfall: a = 0, b = 1
Die entsprechende Zufallsvariable wird mit U(0,1) bezeichnet. Für sie gilt
insbesonders: P(U  u) = F(u) = u für 0  u  1. In diesem Fall wird die
Zufallsvariable mit U bezeichnet (uniformément répartie). Sie besitzt die
Wahrscheinlichkeitsdichte:
1
0
1
Dr. Jamel Tazarki
x
fU
25
book.statistics@web.de
si 0  x  1
1
 I  0 ,1   x   
0
s in o n
und die Verteilungsfunktion :
1
0
0

FU  x    x

1
1
si x  0
si 0  x  1
si x  1
Eigenschaften :

 U

t fU t  dt 


1



2
U 



L U


0
1
t 
1
t dt    
2
 2 0
2
1
t
1 
t 
1

t  t   dt  

 
2 
4 0
12

 3
L 1  U
3
2

Chi-Quadrat-Anpassungstest
Die Vorgehensweise beim Chi-Quadrat-Anpassungstest soll für die diskrete
Verteilung der Handlungen innerhalb der Institution erläutert werden. Die
Dr. Jamel Tazarki
26
book.statistics@web.de
folgende Tabelle gibt die absoluten beobachteten2 hio Häufigkeiten3 der
Handlungen für Simulationsdauer von 5 Minuten an.
Auf einem Signifikanzniveau von α=0,05 soll geprüft werden, ob die
Annahme, daß es sich hier um eine Gleichverteilung handelt, abgelehnt
werden muß oder nicht.
Handlun Häufigkeit
g
1
33
2
32
3
30
4
32
5
32
6
31
H0 : Die Handlungen sind gleichverteilt.
HA: Die Handlungen sind nicht gleichverteilt.
α=0,05
S = 33 + 32 + 30 + 32 + 32 + 31 = 190 und hie = S/ 6 = 190/6 = 31,6.
Bei Gültigkeit der Nullhypothese wären die erwarteten (englisch: expected)
absoluten Häufigkeiten4 hie = 31,6
Es läßt sich zeigen, daß die Prüfgröße ², deren konkrete Realisation
n

2


i 1
 h io
 h ie

2
h ie
ist, näherungsweise einer Chi-Quadrat-Verteilung mit v=k-1 Freiheitsgraden
folgt, wobei k die Anzahl der Merkmalsausprägungen bezeichnet.
Veraussetzung für die Anwendung der Chi-Quadrat-Verteilung ist
allerdings, daß die erwarteten absoluten Häufigkeiten hie nicht zu klein sind,
wobei sich als Faustregel hie > 5 für i=1,…,k eingebürgert hat; diese
Bedingung ist in unserem Fall erfüllt. - In Fällen, in denen diese Bedingung
nicht erfüllt ist, müssen vor Anwendung des Tests Merkmalsklassen zu
stärker besetzten Klassen zusammengefaßt werden.
Kritischer Bereich: Aus der Tabelle der Chi-Quadrat-Verteilung erhält
man für das Signifikanzniveau α=0,05 und v = 6 -1 = 5 Freiheitsgrade den
2
englisch: observed
Der Index „o“ steht für „observed“
4
Der Index „e“ steht für „ expected “
3
Dr. Jamel Tazarki
27
book.statistics@web.de
kritischen Wert 11,070. Für ² > 11,070 würde man die Nullhypothese
ablehnen, für ² < 11,070 kann die Nullhypothese nicht abgelehnt werden.
Berechnung der Prüfgröße: ² = [(31,6 – 33) ² + (31,6 – 32) ² + (31,6 – 30) ²
+ (31,6 – 32) ² + (31,6 – 32) ² + (31,6 – 31) ² ] * (1/31,6) = 3,304
Entscheidung und Interpretation:
Da ² < 11,070 ist, kann die Nullhypothese ,, Die Handlungen
sind gleichverteilt " nicht abgelehnt werden (vgl. Abbildung).
Da die Chi-Quadrat-Verteilung zu den Stetigen Verteilungen gehört, die
Prüfgröße ² jedoch diskret ist, läßt sich die Güte der Approximation durch
eine Stetigkeitskorrektur (Yates-Korrektur) verbessern. Die konkrete
Realisation der korrigierten Prüfgröße lautet:
n

2
korr


i 1
 h io
 h ie
 0 ,5 
2
h ie
In der Praxis allerdings wird die Yates-Korrektur nur angewandt, wenn die
Anzahl der Freiheitsgrade v = 1 beträgt.
Wenn der Anzahl „n“ der Handlungen groß wird, hängt die Ablehnung der
Nullhypothese von der Laufzeit des Simulationsprogrammes ab. Bei n=30
wird die Nullhypothese erst bei einer Laufzeit von 30 Minuten nicht
abgelehnt. Deshalb muss das Simulationsprogramm über eine Methode für
Dr. Jamel Tazarki
die Verifikation der Gültigkeit
Abhängigkeit der Laufzeit haben.
28
der
book.statistics@web.de
gestrebten
program test(input,output);
{ Dieses Programm wird benutz, um den
Rahmen der Individuen zu definieren.
Mit der Zufallsfunktion RANDOM(i)
werden Zahlen zwichen 0 und i
erzeugt. Das eintreten der Zahl i wird durch
mat[i]= mat[i] + 1 registriert }
uses crt;
var i,j,k,x,y : integer;
mat : array[1..30] of integer;
resultat : TEXT;
begin
assign(resultat,'t30_1000.txt');
for i:=1 to 30 do
mat[i]:=0;
randomize;
for i:=1 to 1000 do
begin
randomize; x :=(random(31));
mat[x]:=mat[x] + 1;
writeln(x);
end;
clrscr;
{Graphische Darstellungg der Verteilungsfunktion }
rewrite(resultat);
for j:=1 to 30 do
begin
write(resultat,j);
write(resultat,':');
for i:=1 to mat[j] do
write(resultat,''¦');
writeln(resultat,' ');
end; close(resultat); end.
Nullhypothese
in
Dr. Jamel Tazarki
29
book.statistics@web.de
Damit das Simulationsprogramm brauchbare Werte ausgibt, muß innerhalb
der Simulationsdauer eine Gleichverteilung erreicht werden. D.h. innerhalb
dieser Zeit müssen alle Gruppen, Handlungen und Individuen gleich oft von
der Zufallsfunktion betroffen werden.
Das oben ausgeführte Pascal-Programm hat die Gleichverteilung im
günstigsten Fall erst nach einer Laufzeit von 20 Minuten erreichen können.
Wir werden die folgenden Verteilungen betrachten:
-Eine Gruppe wird zufällig aus einer Menge von Gruppen gezogen.
-Eine Person wird zufällig aus einer Menge von Personen gezogen.
-Eine Handlung wird zufällig aus einer Menge von Handlungen gezogen.
Die wesentlichen Vorzüge derComputersimulation
-Die Verwendung einer Kunstsprache kann den Theoretiker von Zwängen
der natürlichen Sprache befreien.
-Die Simulationsergebnisse sind nur durch das, was im Programm steht,
bedingt (nicht durch zusätzliche, nicht hingeschriebene Überlegungen).
-Die Computersimulation bewirkt eine Wissenskontrolle. Bei der
Modellierung des untersuchten Gegenstandes werden Lücken entdeckt.
-Man kann mit dem Aussagensystem des Simulationsmodells
experimentieren, alternative Annahmen schnell durchspielen.
-Simulationsmodelle demonstrieren die Konsequenzen alternativer
Voraussetzungen und Hypothesen. Experimente, in denen die Beziehung
zwischen Struktur und Verhalten des Modells untersucht werden, stellen
zugleich die strukturell-funktionale Analyse auf eine erweiterte Basis.
-Die Simulation ermöglicht schnelle und korrekte Ableitungen auch aus
einem komplexen Aussagensystem, während man bei verballogischem
Schlußfolgerung nur eine sehr begrenzte Zahl von Variablen gleichzeitig in
Betracht ziehen kann.
-Simulationsmodelle führen Prozesse tatsächlich als Abläufe vor Augen,
falls erwünscht, ebenfalls grafisch. Vergleichbar mit Zeitraffer und Zeitlupe
im Film kann dabei die Realzeit gerafft oder gedehnt werden.
-Simulationsmodelle erweisen sich als flexibler, wenn neue Informationen
(neue Daten, Variablen, Ereignisse, Einsichten) zu berücksichtigen sind.
Änderungen im Programm sind relativ schnell gemacht.
-Simulationsmodelle und ihre Ergebnisse sind exakter zu übermitteln.
-Wenn es in bestimmten Fälle nicht möglich ist, das Zusammenspiel
vielfältiger Hypothesen durch logische und mathematische Ableitungen zu
beschreiben und zu überschauen, erlaubt die Simulation, aus gegebenen
Dr. Jamel Tazarki
30
book.statistics@web.de
Anfangsbedingungen und Parameterkombinationen, Schlußfolgerungen zu
ziehen. Computergestützte Simulationen erlauben es, Anfangsbedingungen
und Parameterkombinationen beliebig oft zu verändern und damit eine
Übersicht über die Viefalt möglicher Folgen von Anfangsbedingungen zu
erhalten. Wenn die Computersimulation gezeigt hat, daß ein bestimmtes
nichtlineares deterministisches System ein "chaotisches" Verhalten besitzt,
weil eine geringe Änderung der Anfangsbedingungen schon nach kurzer
Zeit zu völlig anderen Ergebnisse führt, so kann man die Bedingungen der
Entstehung dieser "Instabilität" mathematisch untersuchen.
-Wer Simulationen zur Klärung gesellschaftlich relevanter Fragen
verwendet, sollte sich darüber im klaren sein, daß eine Simulation immer
nur eine Lösung eines Ansatzes für eine bestimmte Parameterkombination
ist.
-Simulationsergebnisse müssen stets systematisch an empirischen Daten
überprüft werden.
-Simulation bietet die Möglichkeit mit Modellen zu experimentieren.
Das Objekt-basierte Modell
Die Prinzipien dieses Modells stammen vom objektorientierten Paradigma.
Laut diesem Modell wird jede Agent (Individuum) als ein Objekt betrachtet,
das über eine Schnittstelle zur Verwaltung von (Zugriffs-) Messages verfügt.
Passende Objekte finden: Objektorientierte Programme bestehen aus
Objekten. Diese Objekte enthalten sowohl Daten, als auch Prozeduren, die
auf diesen Daten operieren. Prozeduren werden im allgemeinen als
Methoden oder Operationen bezeichnet. Eine Operation wird ausgeführt,
sobald ein Objekt einen Request von einem Client erhält. Solche Requests
sind der einzige Weg, um ein Objekt eine Operation ausführen zu lassen und
Operationen sind die einzige Möglichkeit, um die internen Daten eines
Objekts zu verändern. Das heißt, der interne Zustand eines Objekts ist nach
außen hin unsichtbar (verkapselt), und kann nicht direkt angesprochen
werden. Das schwierigste am objektorientierten Design ist, die soziale
Institution in Objekten aufzuteilen. Dies ist deshalb so schwierig, weil viele
Faktoren, wie Verkapselung, Abstimmung, Flexibilität, Abhängigkeiten,
Performance, Entwicklung, Wiederverwendbarkeit, usw., zusammenspielen,
und einander oftmals auch in widersprüchlicher Art beeinflussen.
Dr. Jamel Tazarki
31
book.statistics@web.de
Die strikte Modellierung der realen Welt in Objekten führt zu einem
System, welches die Realität wiederspiegelt. Die Abstraktionen die während
des Designs entstehen sind der Schlüssel dazu ein Design flexibel zu
machen.
Objekte können in ihrer Größe und Anzahl stark variieren. Sie können alles
bis hinunter zur Hardware, und wieder herauf bis zu den gesamten
Programmen repräsentieren. Design Patterns helfen zu entscheiden, was ein
Objekt ist, und was nicht.
Objektschnittstellen spezifizieren
Die Schnittstelle eines Objekts charakterisiert den kompletten Satz an
Requests die zum Objekt gesendet werden können. Ein Typ ist ein Name,
der dazu verwendet wird, eine spezielle Schnittstelle zu kennzeichnen. Ein
Objekt kann mehrere Typen haben und weitgehend verschiedene Objekte
können einen Typ teilen. Ein Teil einer Objektschnittstelle kann von einem
Typ charakterisiert werden und ein anderer Teil von anderen Typen. Zwei
Objekte des selben Typs brauchen nur Teile ihrer Schnittstelle zu teilen.
Schnittstellen können andere Schnittstellen als Teilmenge enthalten. Man
nennt einen Typ Untertyp eines anderen, wenn seine Schnittstelle die
Schnittstelle des Elterntyps enthält. Oft spricht man davon, das ein Untertyp
die Schnittstelle seines Elterntyps erbt.
Objekte sind nur durch ihre Schnittstellen nach außen bekannt. Es gibt keine
Möglichkeit etwas über ein Objekt herauszufinden, oder es zu veranlassen
etwas zu tun, ohne über die Schnittstelle zu gehen.
Die meisten Menschen verstehen Konzepte wie Objekte, Schnittstellen,
Klassen und Vererbung. Die Herausforderung liegt darin, sie zu verwenden
um flexible, wiederverwendbare Software zu entwickeln.
Vererbung versus Struktur: Die beiden gebräuchlichsten Techniken
für wiederverwendbare Funktionalitäten in objekt-orientierten System sind
Klassenvererbung und Objektstruktur. Klassenvererbung sorgt dafür, dass
Dr. Jamel Tazarki
32
book.statistics@web.de
man die Implementation einer Klasse im Hinblick auf eine andere definiert.
Mit Vererbung sind die Interna der Elternklasse oftmals für die Unterklassen
sichtbar. Objektstruktur ist eine Alternative zur Klassenvererbung. Hier
erhält man neue Funktionalitäten durch zusammenbauen oder
zusammensetzen von Objekten, um eine größere Komplexe Funktionalität
zu erhalten. Objektstruktur erfordert, dass das Objekt, welches
zusammengesetzt ist, wohl definierte Schnittstellen hat.
Vererbung und Struktur haben jeweils ihre Vor- und Nachteile.
Klassenvererbung macht es einfacher die Implementation so zu
modifizieren, dass sie wiederverwendet werden kann. Wenn eine
Unterklasse einige aber nicht alle Operationen überschreibt, kann es sich
auch auf die Operationen die sie vererbt auswirken, angenommen sie rufen
die überschriebenen Operationen auf. Aber Klassenvererbung hat auch
einige Nachteile. Der gravieremste Nachteil ist, dass durch die Vererbung an
eine Unterklasse die Details der Elternklassen Implementation offen gelegt
werden. Daher wird oftmals gesagt, das die Vererbung die Verkapselung
zerstört. Die Implementation einer Unterklasse ist so stark mit der
Implementation ihrer Elternklasse Verbunden, das jede Veränderung in der
Elternklassen- Implementation erzwingt, dass auch die Unterklasse
verändert wird. lmplementationsabhängigkeiten können Probleme
verursachen, wenn man versucht eine Unterklasse wiederzuverwenden.
Objektstruktur erfordert, dass Objekte ihre gegenseitigen Schnittstellen
respektieren. Das wiederum erfordert sorgfältiges Design der Schnittstellen,
damit ein Objekt zusammen mit mehreren anderen Objekten benutzt werden
kann. Dadurch das auf die Objekte ausschließlich über ihre Schnittstellen
zugegriffen werden kann, wird die Verkapselung gewahrt. Jedes Objekt
kann durch ein anderes ersetzt werden, welches vom gleichen Typ ist.
Andererseits besitzen objekt-orientierte Designs die mit Objektstruktur
arbeiten mehr Objekte, und das Systemverhalten hängt von ihrer Beziehung
zu einander ab, und ist nicht in einer Klasse definiert. Im allgemeinen sollte
man jedoch Objektstruktur vor der Vererbung vorziehen. Viele Designer
Dr. Jamel Tazarki
33
book.statistics@web.de
strapazieren die Vererbung zu sehr. Daher wird in Design Patterns wieder
und wieder Objektstruktur angewendet.
Der Schlüssel zur Maximierung der Wiederverwendbarkeit liegt darin neue
Anforderungen und Veränderungen der bestehenden Anforderungen
vorauszuahnen und das System so zu designen, dass es sich
dementsprechend entwickeln kann. Um ein System so zu designen, dass es
robust gegenüber solchen Veränderungen ist, muss man bedenken wie sich
das System in seiner Lebenszeit verändern können muss. Ein System
welches solche möglicherweise notwendigen Veränderung nicht beachtet,
riskiert, dass in der Zukunft eine große Neugestaltung notwendig ist. Solche
Veränderungen können Klassenneugestaltung und -neuimplementation,
Clientmodifikationen und erneutes Testen einschließen. Eine Neugestaltung
wirkt sich auf viele Teile des Softwaresystems aus und unvorhergesehene
Veränderungen sind immer sehr teuer.
Im nächsten Programmauschnitt wir wollen die Individuen als Objekte5
betrachten, die über Schnittstellen verfügen. Zum einem bestimten
Zeitpunkt darf nur eine Transaction stattfinden. Der Agent kann sich in
unendlich viele Geschäfte engagieren. Er kann zum einem Zeitpunkt nur
einen Zugriff auf sein Konto haben. Deshalb werden wir die Funktion
add_transaction mit dem Schlüsselwort synchronized. Dies bedeutet, daß zu
einem bestimmten Zeitpunkt nur eine Transaktion stattfinden kann.
import java.util.*;
import java.math.*;
import java.io.*;
class Kontos
{
int Anr;
5
Wir schreiben das Programm in Java. Sie ist eine Programmier-Sprache,
die unter Unix, Linux und Windows läuft und die sich sehr gut für die
Simulation von Sozialen Intitutionen eignet. Java ist sehr verbreitet und sehr
mächtig und dabei ist sie sehr einfach zu beherrschen.
Dr. Jamel Tazarki
34
book.statistics@web.de
float Kapital;
Kontos(int Anr, float Kapital) {
{
this.Kapital = Kapital;
this.Anr = Anr;
}
}
class Verwalter
{
public Vector stand = new Vector(10,4);
public int sema1;
void verwalter(int sema1)
{
for(int i=0; i<11;i++)
{
Kontos help = new Kontos(i,200);
stand.addElement(help);
}
this.sema1 =sema1;
}
public synchronized void add_transaction(int at,int Betrag)
{
while(sema1 != 2)
{ try
{
System.out.println("Im Waitzustand");
wait();
} catch (InterruptedException e) {}
}
sema1 = 4;
((Kontos)stand.elementAt(at)).
Kapital +=Betrag;
System.out.println("Agent = " + at +
Kapital = + ((Kontos)stand.elementAt(at)).
Kapital);
Dr. Jamel Tazarki
35
book.statistics@web.de
sema1 = 2;
notify();
}
}// Verwalter
class agent
{
int m_Anr;
int m_Staerke;
int m_Einwohner_Anzahl;
agent(int Anr, int Staerke, int Einwohner_Anzahl)
{
m_Anr = Anr;
m_Staerke = Staerke;
m_Einwohner_Anzahl = Einwohner_Anzahl;
}
}
class Sociale_Life extends Thread
{
Vector anmelden = new Vector(20,4);
verwalter m_q;
Date start_today;
int start_hours;
int start_minutes;
Date ende_today;
int ende_hours;
int ende_minutes;
boolean Threads_ende;
Sociale_Life(verwalter q)
{
m_q = q;
for(int i=0; i<1000;i++)
{
agent help = new agent(i,i,10);
anmelden.addElement(help);
}
}
Dr. Jamel Tazarki
36
book.statistics@web.de
public void run()
{
start_today= new Date();
start_hours=start_today.getHours();
start_minutes=start_today.getMinutes();
Threads_ende = true;
while (Threads_ende)
{
int person_1 = (int) ( Math.random() * 10 );
int person_2 = (int) ( Math.random() * 10 );
int z0 = ((agent)
anmelden.elementAt(person_1)).m_Staerke;
int z1 = ((agent)
anmelden.elementAt(person_2)).m_Staerke;
if (z0 > z1)
{
m_q.add_transaction(person_1, 4);
m_q.add_transaction(person_2,-4);
}
else
{
m_q.add_transaction(person_1, -4);
m_q.add_transaction(person_2, 4);
}
ende_today= new Date();
ende_minutes=ende_today.getMinutes();
if ((ende_minutes -start_minutes) > 1)
{
Threads_ende = false;
for (int i=0;i<10;i++)
{
System.out.println(" Ende: " +
"Agent = " + i +
"Kapital = " +
((Kontos)m_q.
stand.elementAt(i)).
Kapital);
}
Dr. Jamel Tazarki
37
book.statistics@web.de
}
}
}
}
public static void main(String[] argv) throws
IOException
{
verwalter n_verwalter = new verwalter(2);
Vector a = new Vector(99,4);
for(int i=0;i<99;i++)
{
Sociale_Life help = new Sociale_Life(n_verwalter);
a.addElement(help);
}
for(int i=0;i<99;i++)
{
((Sociale_Life)a.elementAt(i)).start();
}
}
}
Es gibt zwei grundlegende Arten, wie man ein Programm so organisieren
kann, dass unterschiedliche Teile „zur gleichen Zeit“' laufen. Man kann
mehrere kooperative Aufgaben innerhalb eines Programms über
unterschiedliche Threads laufen lassen oder man kann mehrere Aufgaben in
verschiedenen Programmen über unterschiedliche Prozesse laufen lassen.
Einzelne Threads können einem verhungern (wenn Threads mit niedriger
Priorität nicht an die Reihe kommen). Wenn ein Thread sich aufhängt, kann
der gesamte Prozess blockiert werden. Und wenn ein Thread einen
Betriebssystem-Aufruf macht, der etwas länger dauert, dann hängen alle
anderen Threads so lange, bis der Interpreter wieder die Konrtrolle
zugesprochen bekommt. Trotzdem sollte man sich von solchen potentiellen
Problemen nicht abschrecken lassen Mit Threads kann man auf einfache und
effiziente Art eine Parallelisierung erreichen.
Dr. Jamel Tazarki
38
book.statistics@web.de
Ein Thread kann ganz normal auf alle Variablen der Umgebung zugreifen,
in der er erzeugt wurde. Variablen, die im Thread-Block lokal sind, sind in
diesem Thread lokal und sind für andere nicht erreichbar. Was aber, wenn
man thread-eigene Variablen braucht, auf die von andern aus zugegriffen
werden soll? Thread besitzt dafür eine Eigenschaft, mit der man threadeigene Variablen erzeugen und über den Namen ansprechen kann.
In einer gut designten Applikation läßt man normalerweise die Threads ihre
Arbeit machen und mischt sich nicht ein; Zeit-Abhängigkeiten in eine MultiThread-Applikation einzubauen wird allgemein als schlechter Stil
angesehen. Trotzdem gibt es Gelegenheiten, wo man die Threads
kontrollieren muss. Man kann z.B. zwei Threads in einer klassischen
Erzeuger-Benutzer Beziehung haben, wo der Benutzer eine Pause einlegen
muss, wenn der Erzeuger in Rückstand gerät. Die Klasse Thread besitzt eine
Anzahl von Methoden, um den Thread-Scheduler zu kontrollieren. Der
Aufruf von Thread.stop stoppt den aktuellen Thread, während Thread.run
dafür sorgt, dass ein bestimmter Thread läuft. Thread.pass unterbricht den
aktuellen Thread, damit andere auch mal drankommen, usw.
Die einfachste Methode zum Blockieren anderer Threads benutzt einen
globalen „thread critical“'-Zustand. Wenn dieser Zustand auf true gesetzt ist,
dann wird der Scheduler keinem anderen existierenden Thread die Kontralle
zuteilen. Allerdings blockiert das nicht die Erzeugung und den Ablauf von
neuen Threads. Bestimmte Thread-Operationen (wie etwa Stoppen oder
Killen eines Threads, Schlafenlegen des aktuellen Threads oder das
Auslösen einer Exception) können einen Thread zur Ausführung bringen,
auch wenn man gerade in einer Critical Section ist.
Im obigen Programm haben wir eine einfache Semaphore-Blockierung für
den gegenseitigen Ausschluss des Zugriffs auf gemeinsame Daten benutzt.
Das bedeutet, dass immer nur ein Thread zur Zeit die Blockierung besitzt.
Andere Threads können sich entscheiden, zu warten, bis die Blockierung für
sie verfügbar ist oder sie melden einfach den Fehler, dass die Blockierung
nicht verfügbar ist. Eine Semaphore wird oft benutzt, wenn ein Update auf
gemeinsam benutzte Daten nur vollständig ablaufen darf.
wait und notify: Neben dem Monitorkonzept stehen mit den Methoden
wait und notify der Klasse Object noch weitere Synchronisationsprimitive
zur Verfügung. Zusätzlich zu der bereits erwähnten Sperre, die einem
Objekt zugeordnet ist, besitzt ein Objekt nämlich auch noch eine Warteliste.
Dr. Jamel Tazarki
39
book.statistics@web.de
Dabei handelt es sich um eine (möglicherweise leere) Menge von Threads,
die vom Scheduler unterbrochen wurden und auf ein Ereignis warten, um
fortgesetzt werden zu können.
Sowohl wait als auch notify dürfen nur aufgerufen werden, wenn das Objekt
bereits gesperrt ist, also nur innerhalb eines synchronized-Blocks für dieses
Objekt. Ein Aufruf von wait nimmt die bereits gewährten Sperren
(temporär) zurück und stellt den Prozeß, der den Aufruf von wait
verursachte, in die Warteliste des Objekts. Dadurch wird er unterbrochen
und im Scheduler als wartend markiert. Ein Aufruf von notify entfernt einen
(beliebigen) Prozeß aus der Warteliste des Objekts, stellt die (temporär)
aufgehobenen Sperren wieder her und führt ihn dem normalen Scheduling
zu. wait und notify sind damit für elementare Synchronisationsaufgaben
geeignet, bei denen es weniger auf die Kommunikation als auf die Steuerung
der zeitlichen Abläufe ankommt.
Das folgende Beispiel demonstriert den Einsatz von wait und notify an
einem Versand/Herstellung-Beispiel (dies simuliert das Zusammenarbeit
von Versand und Herstellung eines Buchverlages). Ein Prozeß arbeitet dabei
als Produzent, der Fließkommazahlen »herstellt«, und ein anderer als
Konsument, der die produzierten Daten verbraucht. Die Kommunikation
zwischen beiden erfolgt über ein gemeinsam verwendetes Vector-Objekt,
das die produzierten Elemente zwischenspeichert und als Medium für die
wait-notify-Aufrufe dient:
class Producer
extends Thread
{
private Vector v;
public Producer (Vector v)
{
this.v = v;
}
public void run()
{
String s;
while (true) {
synchronized (v) {
Dr. Jamel Tazarki
40
book.statistics@web.de
s = "Wert "+Math.random();
v.addElement(s);
System.out.println("Produzent erzeugte "+s);
v.notify();
}
try {
Thread.sleep((int)(100*Math.random()));
} catch (InterruptedException e) {
//nichts
}
}
}
}
class Consumer extends Thread
{
private Vector v;
public Consumer (Vector v)
{
this.v = v;
}
public void run()
{
while (true) {
synchronized (v) {
if (v.size() < 1) {
try {
v.wait();
} catch (InterruptedException e) {
//nichts
}
}
System.out.print(
" Konsument fand "+(String)v.elementAt(0)
);
v.removeElementAt(0);
System.out.println(" (verbleiben: "+v.size()+")");
}
try {
Dr. Jamel Tazarki
41
book.statistics@web.de
Thread.sleep((int)(100*Math.random()));
} catch (InterruptedException e) {
//nichts
}
}
}
}
public class Interaction
{
public static void main(String[] args)
{
Vector v = new Vector();
Producer p = new Producer (v);
Consumer c = new Consumer (v);
p.start();
c.start();
}
}
Um die Arbeitsverteilung zwischen den Prozessen etwas interessanter zu
gestalten, werden beide gezwungen, nach jedem Schritt eine kleine Pause
einzulegen. Da die Wartezeit zufällig ausgewählt wird, kann es durchaus
dazu kommen, daß der Produzent eine größere Anzahl an Elementen
anhäuft, die der Konsument noch nicht abgeholt hat. Der umgekehrte Fall ist
natürlich nicht möglich, da der Konsument warten muß, wenn keine
Elemente verfügbar sind. Eine Beispielsitzung könnte etwa so aussehen:
Produzent erzeugte Wert 0.69696765675
Konsument fand Wert 0.887686465454
Durch eine konstante Pause nach jedem produzierten Element könnte der
Produzent bewußt langsamer gemacht werden. Der schnellere Konsument
würde dann einen Großteil seiner Zeit damit verbringen, festzustellen, daß
keine Elemente verfügbar sind. Zwar würde das Beispiel (in leicht
modifizierter Form) auch ohne den Einsatz von wait/notify funktionieren.
Durch ihre Verwendung aber ist der Konsumentenprozeß nicht gezwungen,
aktiv zu warten, sondern wird vom Produzenten benachrichtigt, wenn ein
neues Element verfügbar ist. Der Rechenzeitbedarf reduziert sich dadurch
auf einen Bruchteil dessen, was andernfalls benötigt würde.
Dr. Jamel Tazarki
42
book.statistics@web.de
Das
Java
Enterprise-API
unterstützt
die
Connectivity
zu
Unternehmensdatenbanken und Legacy-Anwendungen. Mit diesen APIs
können Entwickler verteilte Client/Server-Applets in Java erstellen, die auf
jedem Betriebssystem und fast jeder Hardware-Plattform im Unternehmen
laufen.
Dr. Jamel Tazarki
43
book.statistics@web.de
Kapitel III
Modelle sozialer Institutionen und
Methodologische Überlegungen
Dieses Kapitel soll als Ausgangspunkt für das Simulationsprogramm
dienen. Es basiert insbesondere auf der Arbeit von W. Balzer 1993.
Es ist grundlegend zu wissen, was nun denn eigentlich eine Institution
ausmacht und was die Bestandteile einer Institution sind? Nach Auffassung
des Kulturanthropologen Bronislaw Malinowski (1884-1942) ist eine
Institution eine Einheit aus vier Arten von Elementen:
-die Idee der Institution, ihre Verfassung, wie sie von den Mitgliedern der
jeweiligen Gesellschaft anerkannt und festgelegt ist.
-der Personalbestand der Institution, d.h. die Gruppe von Menschen, die
die vorgesehenen Rollen spielen.
-die Regeln oder Normen des Umgangs miteinander, denen sich die
Mitglieder unterwerfen oder die ihnen auferlegt werden.
-und schließlich der sogenannte "materielle Apparat" der Institution, d.h.
die Gengenstände und Räume, die in die Institution einbezogen sind.
Sie kann nur Leben erlangen, wenn die Individuen sie in ihr Empfinden,
Denken, Sprechen und Tun einschließen. Sie wird zur Grundlage eines
Kooperationsprozesses. Deshalb verwendet die Theorie der sozialen
Institutionen Grundbegriffe aus zwei Bereichen auf verschiedenem Niveau,
zum Einem auf dem Niveau der individuellen Ebene (Mikro-Ebene) von
Personen und ihren Handlungen und zum Andren auf dem Niveau der
Makro-Ebene von Gruppen und Handlungstypen.
Makromodelle
Wir beschäftigen uns zuerst mit den Hauptbegriffen der sozialen Institution:
dem Makromodell und dem Mikromodell. Während die Makromodelle das
Verhalten einzelner Individuen nur sehr gering widerspiegeln, spielen bei
den später definierten Mikromodellen die Individuen und ihre Relation
zueinander eine beträchtliche Rolle.
Dr. Jamel Tazarki
44
book.statistics@web.de
Die Makromodelle bestehen aus drei Hauptteilen:
i) einem externen Teil,
ii) einem internen Teil,
iii) sowie aus einer Repräsentationsrelation, die die Beziehungen zwischen
beiden Teilen darstellt.
Der interne Teil ist ein Modell, das durch die folgenden Eigenschaften
charakterisiert ist:
- Es stellt die internalisierten Verhaltensweisen von Personen, sowie die
Fakten über die soziale Welt dar.
-Es spiegelt die in den Individuen vorhandenen intellektuellen Strukturen
(was Individuen wissen, glauben und schätzen) wieder.
-Es beschreibt die Regeln und Leitlinien, an denen die Individuen ihr
Benehmen ausrichten.
Wir stellen uns vor, daß sich die internen Modelle im Kopf der Individuen
befinden: als die Modelle, die sich die Individuen von ihrer Welt machen.
a) Der externe Teil des Makromodells
Die soziale Realität in einer Institution, so wie sie sich äußerlich unabhängig
von den intellektuellen Strukturen der Individuen darstellt, wird durch den
externen Teil eines Makromodells beschrieben.
Das externe Teil eines Makromodells besteht aus den Teilen, die in
folgender Liste zusammengestellt sind:
<G,T,ch,st>
Wobei gilt:
G ist eine Menge von Gruppen (die in unserem Beispiel den verschiedenen
Abteilungen entsprechen).
Im Beispiel des Buchverlages besteht G aus den Abteilungen:
"AUTOREN","LEKTORAT", "ANZEIGEN", "BETRIEBSRAT",
"BUCHHERSTELLUNG", "ADRESSWESEN", "DRUCKEREI",
"EDV", "EINKAUF", "FINANZBUCHHALTUNG",
"HERSTELLUNG", "KFM_VERWALTUNG", "KUNDEN",
"LAGER_VERSAND", "GRAFIK_LAYOUT", "LIEFERANTEN",
"PROGRAMM", "VERTRIEB", "MARKETING",
"PERSONALABTEILUNG", "POSTSTELLE", "VERKAUF",
"VERLAGSLEITUNG", "VERTRETER",
"HERSTELLUNG_WERBEMITTEL" und
"WERBUNG".
Dr. Jamel Tazarki
45
book.statistics@web.de
T ist eine Menge von Handlungstypen des Buchverlags.
ch ist eine charakteristische Funktion. Sie bildet Elemente g aus G in
Mengen t1,...,tn von Elementen von T ab.
ch(g)=t1,...,tn bedeutet, daß im externen Modell der Gruppe
Handlungstypen t1,...,tn zugeordnet sind.
g die
ST ist eine Statusrelation. Diese Statusrelation gibt an, welche von zwei
Gruppen in einer sozialen Institution höheren Status als die andere hat.
Man kann die konkreten Handlungen in Ähnlichkeitsklassen aufteilen. Eine
Ähnlichkeitsklasse besteht jeweils aus einem Handlungstyp. All die
Tätigkeiten, die zu einem Handlungstyp gehören, kann man sich zum
Beispiel durch die sprachliche Zuordnung der Tätigkeiten zu einem Verb
vorstellen, wie etwa "grüßen", "bedrohen", "befehlen" etc.
b) Der interne Teil des Makromodells
Betrachten wir die vielfältigen Formen sozialen Lebens, so erkennen wir,
daß interne Modellbildung ein wichtiger Faktor ist, der zu Intentionen,
zielgerichtetem Handeln, Überzeugungen, Werten und Verstehen führen
kann.
Auf der Makroebene sind die internen Modelle sehr einfach. Sie enthalten
Repräsentanten (Namen oder Bezeichnungen) für die Gruppen, die
Handlungstypen, und die charakteristische Funktion. Die charakteristische
Funktion wird wie folgt internalisiert:
-Die Individuen lernen durch konkrete Konditionierung, über welche
Handlungstypen sie verfügen.
-Die Individuen lernen durch konkrete
Handlungstypen andere Personen verfügen.
Hinweise,
über
welche
Auf der Makroebene hat das interne Modell drei Komponenten :
<G*,T*,ch*>
wobei
Dr. Jamel Tazarki
46
book.statistics@web.de
G* enthält Repräsentanten für die Gruppen
T* enthält Repräsentanten für die Handlungstypen
ch* ist eine Funktion die, Elemente g* aus G* in Mengen t*1,...,t*n von
Elementen von T* abbildet.
Definitionen
Wir definieren folgndes:
-M als die Menge von internen Modellen
-x als eine Funktion, die jeder Gruppe g aus G ein internes Modell x(g)
zuordnet.
-rep als eine Relation, die für jede Gruppe g Repräsentanten der Gruppen,
Handlungstypen und der charakteristischen Funktion im internen
Modell x(g) spezifiziert.
Schreibt man die Komponenten horizontal zusammen, so nimmt ein
Makromodell die folgende Form an: (G,T,ch,st,M,x,rep).
Bemerkungen
-Jede Gruppe g hat ihr eigenes internes Modell <G*,T*,ch*>.
- Das Makromodell enthält in Form der charakteristischen Funktion, die
bestimmte Handlungstypen als zulässig auszeichnet, und der zugehörigen
internen Repräsentanten, einen Rahmen für die Handlungsmöglichkeiten der
Akteure.
Zusammenfassung
Ein Makromodell besteht aus den Teilen, die in folgender Liste
zusammengestellt sind:
G: eine Menge von Gruppen
H: eine Menge von Handlungstypen
ch: eine charakteristische Funktion
st: eine Statusrelation
M: eine Menge von internen Modellen
x: eine Funktion, die jeder Gruppe g aus G ein internes Modell x(g)
zuordnet
rep: eine Relation, die für jede Gruppe g Repräsentanten der Gruppen,
Handlungstypen und der charakteristischen Funktion im internen Modell
x(g) spezifiziert
Dr. Jamel Tazarki
47
book.statistics@web.de
Mikromodelle
Die Mikrostruktur wird nützlich, um die Makrostruktur auf die Ebene der
Individuen zu projizieren (Balzer, 1993).
a) Externer Teil des Makromodells
Der externe Teil besteht aus :
i) Einer Menge J von Individuen,
ii) Einer Menge H von konkreten Handlungen,
iii) Einer 2-stelligen Realisierungsrelation realisiert. Sie erlaubt
festzustellen, welche Individuen welche Handlungen realisieren :
Individuum i realisiert die Handlung a.
iv) Einer 3-stelligen Relation intendiert(i,j,b). Sie steht für die Relation :
Person i intendiert, daß Person j Handlung b tut.
v) Einer 4-stelligen Relation macht(i,j,a,b). Sie steht für die Relation:
Person i übt mit Handlung a macht über Person j aus, so daß j Handlung b
tut.
vi) Einer Funktion y(i), die jedem Individuum i ein internes Modell y(i)
zuordnet.
vii) Einer Repräsentation rep, die für jedes Individuum i Handlungen aus
H mit repräsentierenden Propositionen im internen Modell von i in
Beziehung setzt.
Die Definitionen i) bis vii) bilden zusammen das soziale Netzwerk R.
Im Folgenden nehmen wir stets an, daß das soziale Netzwerk R eine
Relation des Intendierens enthält.
Die Realisierungsrelation realisiert läßt sich wie folgt charakterisieren:
Für alle Individuen i und Handlungen a gilt :
wenn i a realisiert, dann gibt es eine Gruppe g, zu der i gehört, sowie einen
Handlungstyp t, so daß gilt :
1) a ist eine Handlung vom Typ t
2) t ist für g charakteristisch (d.h. t  ch(g)).
Dieses Axiom läßt sich wie folgt in Prolog schreiben :
realisiert(I,X) if R1(Y,I), R2(Z,X), ch(Y,Z).
(*)
R1(Y,I) gibt die Gruppe, zu der I gehört, an (durch die Variable Y).
R2(Z,X) gibt den Handlungstyp, zu dem X gehört, an.
Dr. Jamel Tazarki
48
book.statistics@web.de
ch(Y,Z) prüft, ob der Handlungstyp Z für die Gruppe Y charakteristisch ist
(d.h. ob Zch(Y)).
R1 und R2 sind zwei Relationen, die zum sozialen Netzwerk gehören.
ch ist die charakteristische Funktion, die im Makromodell definiert wurde.
Die Klausel (*) bietet sogar den Vorteil, alle möglichen Tupel zwischen
Individuen und Handlungen implizit zu definieren und eine mühevolle
Arbeit des Auflistens und Eintippens der Prädikate zu vermeiden. Zum
Beispiel seien: g=ind1, ...,ind300, d.h. die Gruppe g besteht aus den
Individuen ind1 bis ind300.
t= a1, ...,a20, d.h. der Handlungstyp t besteht aus den Handlungen a1 bis
a20.
t ist für g charakteristisch (d.h. t  ch(g)).
Es sind 300x20 =6000 Prädikate, die ich mittels dieser Klausel implizit
definieren kann. Auf diese Weise bleibt das Programm übersichtlich und ich
mache Gebrauch von den Vorteilen, die Prolog anbietet. Von der
Programmkomplexität her habe ich nur drei Dinge zu testen :
1) indi  g
2) a i  t
3) t  ch(g)
Der Nachteil dieser Regel ist, daß sie unzulässige Handlungen für bestimmte
Individuen erlaubt. Die Sekretärin des Managements darf zum Beispiel nach
dieser Regel alle Handlungen der Leitung durchführen. Deshalb werden wir
die konkreten Handlungen zu den einzelnen Individuen explizit durch
Prädikate in der Datenbasis (mit Hilfe von Frames und Slots) angeben und
die Realisierungsrelation durch ein Prologprogramm simulieren.
Die Machtrelation läßt sich wie folgt charakterisieren (Balzer,1993, Kap.
10):
macht(i,j,a,b), wenn gilt
M1) i realisiert a und j realisiert b.
M2) i intendiert, daß j b tun soll und j intendiert nicht, b zu tun.
M3) a verursacht nach i b teilweise oder a verursacht nach j b teilweise.
Dieses läßt sich wie folgt in Prolog schreiben :
macht(I,J,A,B) if realisiert(I,A), realisiert(J,B), I<>J,
A<>B, verursacht(I,paar(A,B)),
R10(H1,I), R10(H2,J),
intendiert(H1,H2,B).
Dr. Jamel Tazarki
49
book.statistics@web.de
wobei R10(H1,I), R10(H2,J) die Gruppen angeben, zu denen I und J
gehören.
b) Interner Teil des Mikromodells
Wie bei den Makromodellen, so sind auch die externen Teile eines
Mikromodells in den Individuen internalisiert. Ein internes Modell besteht
aus einem Porpositionenraum (P,<), sowie einem Repräsentanten der
kausalen Überzeugungen der Person und nimmt also die Form
(P,<, verursacht)
an. Dabei ist
-P eine Menge von Propositionen.
-< die Relation der Bedeutungsimplikation.
-verursacht die Relation der teilweisen Verursachung.
Wir erwarten, daß der Propositionenraum Repräsentanten für alle wichtigen
Komponenten des internen Modellteils enthält.
Auf die Relation < wird hier nicht weiter eingegangen: Für gründliche
Bearbeitung siehe Balzer 1993, S89-108.
Bemerkung
Die Handlungen werden durch die gleichen Propositionen in allen internen
Modellen der Mitglieder einer Gruppe repräsentiert. Ich identifiziere die
Mitglieder einer Gruppe mit der Gruppe selbst. Es ist der Idealfall für eine
Institution, wenn es für alle Mitglieder einer Gruppe nur ein internes Modell
gibt. Die Gruppen sind homogen und ohne Widersprüche.
Beispiel
Stellen wir uns als konkretes Beispiel ein Buchverlag vor. Er besteht als
soziales System unter anderem aus einer Menge J von Individuen
(einschließlich der Kunden), sowie einer Menge H von Handlungen.
Individuen und reale Handlungen lassen sich ziemlich direkt durch
Beobachtung der Firma ermitteln. Wir stellen fest, welche Individuen
welche Handlungen realisieren. Wir beobachten die Beziehungen zwischen
den beteiligten Individuen und den von ihnen realisierten Handlungen und
erhalten eine Menge R weiterer Relationen. Die so gewonnenen
Komponenten bilden den externen Teil eines Mikromodells, also den Teil,
der unabhängig von intellektuellen Repräsentationen beschrieben werden
kann. Er hat die Form (J,H,realisiert,R) mit den Komponenten
Dr. Jamel Tazarki
50
book.statistics@web.de
J: Menge von Individuen
H: Menge von Handlungen
realisiert: Realisierungsrelation
R: soziales Netzwerk
R enthält unter anderem eine Machtrelation, sowie eine Relation, die die
Intentionen von Individuen erfaßt.
Der Buchverlag als intendiertes System
Dieser Abschnitt soll eine allgemeine Einführung in den Bereich des
Buchverlagswesen, das uns als intendiertes System dienen wird, sein.
Diese Arbeit basiert auf dem Bereich des Verlagswesens (Buchverlag). Ich
habe über eine 4-jährige Erfahrung in dieser Branche als
Systemprogrammierer bei einem Verlag in München. Dieses wird mir die
Arbeit besonders bei der Definition von Makromodellen, Mikromodellen
und bei der Konstruktion der Datenbasis erleichtern.
Schon mittlere Verlage binden außerordentlich viele und unterschiedliche
Handlungstypen an ihre Organisation. Diese Handlungstypenvielfalt ist eine
Folge der komplexen Arbeitsabläufe in einem Verlag.
Im Buchverlagswesen greifen die Arbeitsabläufe fließend ineinander und
sind entscheidungsintensiv.
Dies verlangt von allen Mitgliedern
(Mitarbeitern), auch denen der unteren Leistungsebene, ein allgemeines,
solides Wissen über das Verlagswesen.
An der Spitze steht der Verleger. Dieser kann Eigentümer oder
Geschäftsführer sein. Die Führung kann auch aus einem Team bestehen:
geschäftsführender Verlagsleiter sowie Mitglieder der Geschäftsführung mit
Leitungsfunktionen für Programm, Vertrieb usw. Häufig werden auch
Verlagsleiter für die Koordination von Programm und Herstellung
(manchmal auch zusätzlich Vertrieb) in übergeordneter Leitungsfunktion
unter dem Geschäftsführer eingesetzt. Ab einer entsprechenden
Größenordnung sind den einzelnen Abteilungen Führungskräfte zugeordnet:
Cheflektoren, Chefredakteure, Programm-, Vertriebs-, Herstellungs- und
Kaufmännische Leiter u.a. Größere Bereiche werden meist in weiteren
Ressorts oder nach Teilaufgaben untergliedert. Dem funktionalen Aufbau
entspricht der Organisationsablauf.
Dr. Jamel Tazarki
51
book.statistics@web.de
Verlagsplanung
Programm- und Vertriebsplanung eines Verlags sind die wichtigsten
Komponenten der betriebswirtschaftlichen Gesamtplanung. Sie haben die
Verantwortung für die Geschäftsplanungen
Die Entwicklung von Verlagsprodukten ist bei wissenschaftlichen Werken,
mehrbändigen Reihen und enzyklopädischen Werken sehr zeitaufwendig
und kann jahrelang dauern. Dadurch wird der geplante Gewinn erst zu
einem späten Zeitpunkt realisiert. Deshalb ist es wichtig, daß Verlage neben
einer rentablen backlist kurz- und mittelfristige Buchprojekte kontinuierlich
planen und absetzen.
Auch die sonstigen Geschäfte des Verlags, z.B. in den Bereichen Anzeigen,
Abonnenten, Lizenzen, Koproduktionen, Verkauf von Verwertungsrechten,
Dienstleistungen, Sonderaktionen, müssen entsprechend betriebswirtschaftlich geplant werden.
Die Programmplanung beeinflußt die Planung des Vertriebs und umgekehrt.
In einigen Verlagsfirmen
steuert der Vertrieb eindeutig die
Programmentwicklung.
Die Kalkulation eines Programmteils ist immer von der prognostizierten
Auflagenhöhe abhängig. Die Absatzschätzung liegt in der gemeinsamen
Verantwortung von Programm und Vertrieb. Beide Bereiche basieren ihre
Aktivitäten und Planungen auf der Ab- und Umsatzerwartung, die
weitgehend abgesichert sein muß.
Modelle
Ein Modell ist nichts weiter als eine Abstraktion eines Ausschnitts der
Realität. Die Abstraktion bei der Abbildung ist notwendig, da der
Komplexitätsgrad der Realität in der Regel so groß ist, daß erst durch
Verkürzungen, also durch vereinfachte Skizzierungen, der Zugang zu
realitätsbezogenen wissenschaftlichen Erkenntnissen möglich wird.
Um eine strukturgetreue Abbildung der Realität zu erreichen, muss diese
nach strengen Regeln erfolgen. Das Modell soll ein korrektes Abbild der
betrachteten Realität sein, damit man es gebrauchen kann. Die Überprüfung
der Strukturgetreue eines Modells ist eine der komplexesten Aufgaben in
der empirischen Sozialwissenschaft.
Dr. Jamel Tazarki
52
book.statistics@web.de
An Hand eines Modells wird versucht, in der Realität vermutete
Zusammenhänge zwischen Variablen zu erfassen und für weitere Aussagen
zu verwerten. Dabei wird unterstellt, daß die interessierenden
Zusammenhänge vielgestaltig sind, d.h. daß nur mit einer sehr großen Zahl
von Variablen und einer noch größeren Zahl von Beziehungen,
Abhängigkeiten und Beeinflussungen zwischen diesen Variablen die
Realität angemessen beschrieben und ihrer Komplexität hinreichend
Rechnung getragen werden kann.
Wollte man alle Fakten und Zusammenhänge der Realität im Modell
übernehmen, so wären die größten Rechner nicht in der Lage, diese zu
betrachten und zu realisieren. Insbesondere bei Realmodellen ist zu
erwarten, daß nicht alle Objekte und Relationen des Urbildbereichs Bilder
im Bildbereich haben (Stachowiak 1973:155-157). Deshalb sind
Verkürzungen und Abstraktionen erforderlich.
Man könnte sagen, daß derartige umfangreiche Verkürzungen nicht tragbar
sind, da dadurch der Komplexität der Realität (insbesondere der
sozialwissenschaftlichen) in keiner Weise mehr Rechnung getragen werden
kann. Aber es ist so, daß es gerade die Abstraktion ist, die zu
Erkenntnisgewinnen führen kann.
Unser Ziel ist es, auf der Basis theoretischer Betrachtungen die untersuchte
Realität so einzuschränken, daß ein verwendbares simplifiziertes Abbild
entsteht.
Wir legen ein (von Balzer,1993) entwickeltes Modell zugrunde, das wie
folgt charakterisiert ist:
- Erstens ist das Modell der sozialen Institutionen eine
Struktur; es
besteht aus Objektmengen und
Relationen, die durch die Begriffe einer
vorgegebenen
Sprache bezeichnet werden, also deren Denotate sind:
X= (J,A, G, H, CH, ST, REAL, INT, MACHT)
wobei
i) J und A sind nicht-leere, endliche, disjunkte Mengen (von Personen und
Handlungen).
ii) G ist eine Menge von Teilmengen von J (Gruppen) und H eine Menge
von Teilmengen von A.
Dr. Jamel Tazarki
53
book.statistics@web.de
iii)CH (charakteristische Funktion) ist eine Funktion,
die
jeder
Gruppe eine Menge von (für sie charakteristischen) Handlungstypen
zuordnet.
iv) ST ist eine zweistellige Relation (Statusrelation) zwischen Gruppen.
v) REAL steht für die Relation: Person i realisiert Handlung a
vi) INT steht für die Relation : Person i intendiert, daß Person J Handlung b
tut
vii) MACHT steht für die Relation: Person i übt mit Handlung a MACHT
über Person j aus, so daß j Handlung b tut.
-Zweitens sind in diesem Modell Axiome gültig. Modelle sind
stets
Modelle für bestimmte Axiome. Ein Modell für eine gegebene Menge von
Axiomen ist per Definition
eine Struktur, in der all diese Axiome
gültig sind. Modelle enthalten nicht nur Denotate für sprachliche
Ausdrücke. In Modellen müssen darüber hinaus diese Denotate in
den ‘richtigen’ Verhältnissen zueinander stehen, nämlich so, wie es in den
Axiomen ausgedrückt ist. Wenn alle Axiome einer gegebenen Menge A in
einer
Struktur X gültig sind, sagt man, daß
X
die Axiome
erfüllt und daß die Axiome X charakterisieren. Ein Modell für eine
Axiomenmenge ist nun eine Struktur, die alle Axiome der Menge erfüllt
(Balzer, 1993).
Für die zuletzt gegebene Struktur werden die folgenden Axiome definiert:
a1) Jede Person (J) ist in eine Machtrelation involviert.
a2) Jede von einer Person i ausgeführte Handlung (H) ist charakteristisch
für eine der Gruppen, zu denen i gehört
a3) Wenn Gruppe g’ (G) höheren Status als Gruppe g hat, dann üben die
Mitglieder von g’ mehr Macht über die von g (G) aus als umgekehrt.
Genauer gilt:
i) fast alle Personen in g’ üben MACHT über Personen in g aus und ein
großer Teil der
Mitglieder von g wird dadurch betroffen
ii) nur ein kleiner Teil der Personen in g übt MACHT über Personen in g’
aus und nur ein kleiner Teil von g’ wird davon betroffen
a4) Die Statusrelation "ST" ist transitiv und es gibt genau eine
"Spitzengruppe" mit höchstem Status.
Es wird versucht, mit Hilfe eines Programmes der KI zu beweisen, daß eine
Struktur X= (J,A, G, H, CH, ST, REAL, INT, MACHT) ein Modell einer
sozialen Institution ist.
Dr. Jamel Tazarki
54
book.statistics@web.de
Definition
x ist eine soziale Institution gdw es
1) J, A, G, H, Ch, ST, REAL, INT und MACHT gibt, sodaß gilt: X= (J,A,
G, H, CH, ST, REAL, INT, MACHT)
2) Die oben genanten Axiome a1 bis a4 gelten (d.h. die Daten in X
erfüllen die Axiome a1 bis a4).
Wartofsky versteht die Modellrelation als die Menge aller Tripel(S,x,y), für
die gilt: S betrachtet x als Modell von y. Gegeben S und y, ist durch diese
Relation jedoch x keineswegs eindeutig bestimmt, denn S kann sich
durchaus auf verschiedene Weise "ein Bild von y machen". Auch
umgekehrt kann x für S ein Modell für verschiedene y sein; und schließlich
kann mit <S,x,y> auch <S,y,x> Element der Modellrelation sein, wenn S x
und y als Modelle für einander betrachtet werden.
Man kann die Modelle zweier Systeme strukturell, daß heißt rein formal
vergleichen. Man versucht, gemeinsame Begriffe in beiden zu finden oder
die Begriffe des einen in die des anderen zu übersetzen. Darüberhinaus prüft
man, ob die Hypothesen für beide Modelle einander implizieren. Zum
Beispiel könnten alle Hypothesen des einen Modells aus Übersetzungen der
Hypothesen des anderen Modells ableitbar sein.
Unsere Vorgehensweise
1) Wir betrachten wirkliche Institutionen. Diese bilden die intendierten
Systeme für unsere Theorie.
2) Wir abstrahieren aus diesen intendierten Systemen eine allgemeine
Struktur, die allen Systemen gemeinsam ist. Sie wird durch Beschreibung
von Modellen niedergelegt.
Eine konkrete Anwendung eines Modells auf ein intendiertes System
verläuft wie folgt:
1) Wir sammeln aus dem realen System Daten.
2) Die Daten werden in das Vokabular transformiert, in dem unsere Modelle
definiert sind.
3) Wir prüfen, ob die Daten mit dem Modell zusammenpassen.
Wenn die Existenz eines solchen Modells nachweisbar ist, so war der
Anwendungsprozeß erfolgreich, andernfalls nicht.
Dr. Jamel Tazarki
55
book.statistics@web.de
Wichtig für eine empirische Theorie ist die Vorgabe realer intendierter
Systeme; ohne diese hängt die Modellbildung völlig in der Luft.
Datengewinung
Wir werden Erhebungstechniken anwenden, um die Datenbasis aus dem
intendierten System zu entwickeln. Ich habe mich selbst in den
Forschungsprozeß eingebracht und ich bin in aktiver Interaktion mit den
Personen des untersuchten Feldes gestanden. Diese Art von Forschung
nennt sich "Aktionsforschung" und geht auf den Sozialpsychologen Lewin
zurück. Dies erfordert, daß der Forscher Teil der Untersuchungsgruppe
werden muß, vielleicht sogar längere Zeit mit ihr leben muß, damit es
wirklich zu einem Dialog kommen kann. Die Interaktionsart und Richtungen werden für jedes Individuum in eine Interaktionsmatrix
eintragen. Diese Matrix kann auch Daten über die Relationen verursacht
und intendiert für die einzelnen Individuen enthalten.
Aus den Daten kann man entnehmen, wer in der Institution mehr Macht als
der Andere hat. Wer isoliert und inaktiv in der Institution ist, ist für die
Institution uninteressant.
Das bekannteste Beobachtungsschema zur Interaktionsprozeßanalyse (IPA)
wurde von Bales ( 1972) für die Analyse von Diskussionsgruppen
entwickelt.
Das Beobachtungsschema von Bales ist recht differenziert und erfordert
mehrere Beobachter pro Gruppe; jeder Beobachter konzentriert sich dabei
auf ein bis zwei Gruppenmitglieder und registriert deren Interaktionen mit
den anderen.
Modelltypten
Bei sozialwissenschaftlichen Modellen (auch in anderen Wissenschaftsbereichen wird in zunehmendem Maße modelltheoretisch gearbeitet) sind
verschiedene Typen, je nach der Zielsetzung, die mit dem jeweiligen Modell
angestrebt wird, voneinander zu unterscheiden. In der Literatur, die sich mit
der Modellbildung in den Sozialwissenschaften befaßt, werden verschiedene
Unterteilungskriterien benutzt, die z. T. beträchtlich voneinander
abweichen.
Prognosenmodelle
Hier geht es darum, prognostische Aussagen höherer Qualität und
Treffsicherheit zu produzieren.
Dr. Jamel Tazarki
56
book.statistics@web.de
Simulationsmodelle
Die Aufgabe von Simulationsmodellen ist weniger die Prognose sozioökonomisch relevanter Variablen als vielmehr der Versuch, zu einer
strukturbeschreibenden Abbildung (die Betonung liegt hier auf dem
Stichwort beschreibend) zu gelangen.
Natürlich hat auch ein Prognosemodell beschreibende Qualitäten, hier aber
steht dieser Aspekt im Vordergrund und wird durch einen weiteren, sehr
wichtigen Aspekt ergänzt, der ganz allgemein folgendermaßen umschrieben
werden kann:
Simulationsmodelle werden weich formuliert. Dies bedeutet, daß die
Struktur des Modells (was die einzelnen Beziehungen zwischen den
Variablen betrifft) nicht im Detail so festgelegt wird, wie dies bei einem
Prognosemodell der Fall ist. Während Letzteres, wenn es rechnergestützt
"in Gang gesetzt" wird, ein und nur ein ganz bestimmtes Ergebnis
produziert, also einen Entwicklungspfad für die interessierende Variablen
vorzeichnet, kann ein Simulationsmodell unterschiedliche Pfade realisieren.
Planungsmodelle
Planungsmodelle sind ähnlich strukturiert wie Simulationsmodelle, wobei
nun aber der Entscheidungsaspekt noch stärker in den Vordergrund des
Interesses gerückt wird. Mit ihrer Hilfe wird beispielsweise auf der
betriebswirtschaftlichen Ebene,
aber auch in gesamtwirtschaftlichen
Modellen oder in Modellen, die soziologische Strukturen abbilden,
insbesondere aber auch in politikwisschschaftlich ausgerichteten Modellen,
die Frage beantwortet "Welches sind die Konsequenzen, wenn ...".
Bei der Realisierung eines Programms muß man zwischen der Bechreibung
des Problems und seiner Lösung unterscheiden.
Die Beschreibung des Problems wird in der sogenannten
Programmspezifikation festgehalten. Wie das Programm geschrieben wird,
hängt von der Programmierersprache ab.
Die Spezifikation sagt also, was gemacht werden soll, das Programm
beschreibt, wie es gemacht wird.
Dr. Jamel Tazarki
57
book.statistics@web.de
Temporale Logik von Programmen
Unser Ziel ist es nicht, die Korrektheit oder die Terminierung eines
Software-Programmes zu beweisen Wir wollen nur zeigen, dass die Axiome
unseres Modells der Sozialen Institution und Aussagen über die betrachteten
Verteilungen im Laufe des Programmes immer erfüllt sind.
Aussagenlogik
Syntax der Aussagenlogik:
Alphabet : Die Menge der kleinen lateinischen Buchstaben, vereinigt mit der
Menge der aussagenlogischen Verknüpfungssymbole (Junktoren) : ,
,,, 
Konstruktions-Regeln für die syntaktisch korrekten Zeichenketten, hier
zulässige Ausdrücke (ZA) genannt :
1) Kleine lateinische Buchstaben, gegebenenfalls indiziert.
2) Bezeichnen A, B zulässige Ausdrücke, so sind auch: (A), A,(AB),
(AB), (AB), (AB) zulässige Ausdrücke
3) Außerste Begrenzungsklammern können weggelassen werden.
4) Für die Junktoren gelten folgende Prioritäten : , ,,, 
Semantik der Aussagenlogik
Wir ordnen den zulässigen Ausdrücken eine Bedeutung.
„1“ steht für wahr
„0“ steht für falsch
Kleine lateinische Buchstaben bedeuten Aussagenvariablen. Diese lassen
sich als „wahr“ oder „falsch“ interpretieren.
(a)=1 : a wird mit einer wahren Aussage belegt.
(a)=0 : a wird mit einer falschen Aussage belegt.
Wobei  ist eine Applikation, die jede Aussage den Wert 1 oder 0 zuordnet.
Operatoren: , ,,, 
Dr. Jamel Tazarki
58
book.statistics@web.de
Dreiwertige Logik
Für die Syntax der dreiwertigen Aussagenlogik können wir die Syntax
erklärung von der zweiwertigen Aussagenlogik beibehalten so daß jetzt :
Wir ordnen den zulässigen Ausdrücken eine Bedeutung.
„1“ steht für wahr
„0“ steht für falsch
„0.5“ steht für unbestimmt.

0.5
1
0
0.5
0
1

1
0.5
0
1
1
1
1
0.5
1
0.5
0.5
0
1
0.5
0

1
0.5
0
1
1
1
1
0.5
0.5
1
1
0
0
0.5
1

1
0.5
0
1
1
0.5
0
.
Und
0.5
0.5
1
0.5

1
0.5
0
1
1
0.5
0
0.5
0.5
0.5
0
0
0
0
0
0
0
0.5
1
Proposition
(AB):<=> (AB)(BA)
(AB):<=>(AB) (De Morgan-Gesetz)
Dr. Jamel Tazarki
59
book.statistics@web.de
Proposition
(a) = 1-(a)
(ab) = min((a),(b))
(ab) = max((a),(b))
(ab) = min(1,1+(b)-(a))
(ab) = 1 - abs((a)-(b))
Wobei  ist eine Applikation, die jede Aussage den Wert 1 oder 0 oder 0.5
zuordnet.
Proposition
Die in der dreiwertigen Logik allgemeingültigen Ausdrücke
bestehen bei entsprechender Interpretation von variablen und
Junktoren auch in der klassischen Logik
Zwei wertige Temporale Logik
Ziel : Die Zeit als neue dimension für die bewertung der Aussagen. Wir
betrachten nur discreten Punkten der Zeit Axe.
Awendungsbereich: Sequentielle Programmierung, Programm-verification
und parallele Programmierung.
Beispiel: Sei die Aussage : A>0
A
1
0
-2
1
3
2
5
3 ...
Wobei :
0(A>0)=1
1(A>0)=0
2(A>0)=1
3(A>0)=1
Jeder i Zustand entspricht eine Bewertung der klassischen
Aussagenligik.
Dr. Jamel Tazarki
60
book.statistics@web.de
Syntax :
Alphabet : Die Menge der kleinen lateinischen Buchstaben.
Symbole : ,, , , atnext, (,)
Konstruction Regeln für die syntaktisch korrekten Zeichenketten, hier
zulässige Ausdrücke (ZA) genannt: Kleine lateinische Buchstaben,
gegebenenfalls indiziert.
Bezeichnen A und B zulässige Ausdrücke, so sind auch A, A, A,
(AB) und (A atnext B) zulässige Ausdrücke.
Disjunktoren ,,  sind wie in der klassichen Logik definiert.
Semantik :
K=0, 1, 2, 3, 4,... und Ki = i
Ki(a) = i(a)
Ki(a) = 1 iff Ki(a)=0
Ki(AB) = 1 iff Ki(A)=0 oder Ki(B)=1
Ki(A) = 1 iff Ki+1(A)=0
Ki(A) = 1 iff Kj(A)=1 für j>=i
Ki(A atnext B) = 1 iff Kj(B)=0 für j>i oder Kk(A)=1 für das kleinste k>i
mit Kk(B)=1
 := A
Für die Junktoren gelten folgende Prioritäten :
,, ,
atnext
,

Dreiwertige temporale Logik
Für den Syntax der dreiwertigen temporalen Aussagenlogik können wir die
Syntaxerklärung von der zweiwertigen temporalen Aussagenlogik
beibehalten, so daß jetzt :
„1“ steht für wahr
„0“ steht für falsch
„0.5“ steht für unbestimmt.
Semantik
Dr. Jamel Tazarki
61
book.statistics@web.de
K=0, 1, 2, 3, 4,… und Ki = i
Ki(a) = i(a)
Ki(a) = 1 -Ki(a)
Ki(AB) = min(1,1-Ki(A) + Ki(B))
Ki(A) = Ki+1(A)
Ki(A) = min(Kj(A)) für j>=i
Ki(A atnext B) :
1) Ki(A atnext B)=1 iff Kj(B)=0 oder Kj(B)=0.5 für alle j>i oder Kk(A)=1
für das kleinste k>i mit Kk(B)=1
2) Ki(A atnext B)= 0.5 für Kk(A)=0.5
für das kleinste k>i mit Kk(B)=0.5
3) Sonst Ki(A atnext B) = 0
Die Symbole  und  sind genau wie bei der dreiwertigen Logik zu
betrachten.
Definition von , ,,, :
AB für (AB)
AB für (AB)
AB für (AB)(BA)
Wobei :
Ki(ab) = min(Ki(a), Ki(b))
Ki(ab) = max(Ki(a), Ki(b))
Ki(ab) = 1 - abs(Ki(a)- Ki(b))
Beispiel
v1
v2
0
0
1
1
0.5
0
2
0
0
3
0.5
1
4
0
1
5
0.5
0
6
0
1
7
0.5
1
K0(v1 atnext v2)=1. Es gilt
K0(v2) = min(Kj(v2))=0 für j>=0
(vergleiche mit 1))
8
0
0
9
0.5
0
Dr. Jamel Tazarki
62
book.statistics@web.de
Beispiel
v1
v2
0
0
0
1
0.5
0
2
0.5
0.5

0.5
0
4
0.5
0
5
1
1
6
0
1
7
0.5
1
8
0.
1
9
.
0
K0(v1 atnext v2)=1. Es gilt:
K5(v2)=1
und
K5(v1)= K6(v1)= 6(v1)=
6(v1)= 0=1
(k=5 ist das kleinste k>i mit Kk(v2)=1)
Beispiel
A
v1
v2
0
1
0
1
1
0
2
1
0
3
1
0
4
1
0.5
5
1
0.5
6
0.5
0.5
7
1
0.5
8
1
0.5
9
1
0.5
10
.
.
K0(v1 atnext v2)=0.5. Es gilt:
K5(v2)=0.5
und
K5(v1)=
K6(v1)=
6(v1)= 6(v1)= 0.5=o.5
( k=5
ist das kleinste
k>i
mit
Kk(v2)=0.5 )
Definition
A = A
"" ist der sometime operator.
Proposition
Ki(A) = max(Kj(A)) für
Beweis
j >=i
Dr. Jamel Tazarki
63
book.statistics@web.de
Ki(A) = Kj(A) = 1-Kj(A)
= 1- min(Kj(A)) für j >=i
= 1- min(1-Kj(A)) = max(Kj(A)) für j >=i
Zu zeigen noch :
1- min(1-Kj(A)) = max(Kj(A))
der min(1-Kj(A)) ist erreicht für
max(Kj(A)) :
Wenn max(Kj(A)) = 1,
dann 1- min(1-Kj(A))=1 = max(Kj(A))
Wenn max(Kj(A)) = 0.5,
dann 1- min(1-Kj(A))=0.5 = max(Kj(A))
Wenn max(Kj(A)) = 0,
dann 1- min(1-Kj(A))=0 = max(Kj(A))
Definition
1) Eine Formel A heißt gültig für
K=0, 1, 2, 3, 4,...
falls Ki(A)=1 für alle i, wobei Ki(A)= i(A)
Notation : K A
2) Eine Formel A heißt allgemeingültig falls K A für alle K.
Notation : A
3) Aussagenlogisches Schließen: Die Aussage A heißt eine
aussagenlogische Folgerung aus der Menge F von Formeln, falls: K A für
alle Strukturen K mit K B für alle BF. Wir schreiben FA
Notation: Die Aussage „Startprog„ besagt, dass das Simulationsprogramm
gestartet wurde. Sie ist wahr solange das Simulationsprogramm aktiv ist.
Sonst ist sie falsch.
Was ich hier neu eingeführt habe, ist eine dreiwertige temporale Logik für
die Programmverifikation. Die klassische temporale Logik von Programmen
basiert auf der zweiwertigen Aussagenlogik. Sie kennt nur die Werte wahr
und falsch. Eine Aussage in einem Computerprogramm kann aber einen
dritten Wert haben: Sie kann im Wartezustand sein. Ihr Wert hängt von dem
Ergebnis eines anderen parallelen Prozesses ab, der noch nicht fertig ist.
D.h., man kann nicht sagen, ob diese Aussage wahr oder falsch ist.
Dr. Jamel Tazarki
64
book.statistics@web.de
Unser Ziel ist es nicht, die Korrektheit oder die Terminierung eines
Software-Programmes zu beweisen. Wir wollen nur zeigen, dass die Axiome
unseres Modells der Sozialen Institution und Aussagen über die betrachteten
Verteilungen im Laufe des Programmes immer erfüllt sind.
Beispiel6: Wir betrachten den folgenden Programmausschnitt:
PROGRAM hoch(INPUT,OUPUT);
VAR x,y,c: INTEGER;
BEGIN
/*  */ READ(x); READ(y); c:=1;
/*  / WHILE y<>0 DO
BEGIN
/*  */ IF odd(y) THEN BEGIN y:=y-1; c:=c*x; END;
/*  */ IF (not odd(y)) BEGIN Y:=ydiv2; x:=x*x; END;
/*  */
END;
WRITELN(c);
END.
y
Aussage A: c*x
= nm;
Wir wollen zeigen, dass die Aussage A allgemein gültig ist. D.h. K A für
alle K=0, 1, 2, 3, 4,... und
Ki = i
Wobei :
0=; 1=; 2=; 3=; 4=; 5=; …; n=.
1) Zum Zeitpunkt „ “ setzen wir x:=n; y:=m; c:=1. Somit ist die Aussage
c*xy = nm erfüllt.
2) Zum Zeitpunkt „ “ gilt: x:=n; y:=m; c:=1 und somit ist die Aussage
c*xy = nm erfüllt.
3) ) Zum Zeitpunkt „ “gilt: y:=y-1 und c:=c*x und somit ist die Aussage
c*xy = nm erfüllt.
4) Zum Zeitpunkt „“ gilt: y:=yDIV2 und x:=x*x und somit ist die Aussage
c*xy = nm erfüllt.
6
Siehe Jamel Tazarki 92, Pascal
Dr. Jamel Tazarki
Somit ist die Aussage
y
c*x
m
65
book.statistics@web.de
c*xy = nm in der Zeitachse immer wahr: 
= n
Wir schreiben : Startprog  (c*x = n )
erfüllt für alle K=0, 1, 2, 3, 4,... und alle i.
y
m
d.h. c*xy =nm ist
Die Zeitachse wird durch die diskreten Zustände 0, 1, 2, 3, 4,... des
Programmablaufs dargestellt,
wobei Ki =i
Beispiel7: Wir betrachten die folgende Funktion:
/* 0 */ FUNCTION hoch(a,b: integer);
/* 1 */ BEGIN
/* 2 */
IF b=0 THEN hoch:=1;
/* 3 */
IF ODD(b) THEN hoch:=a*hoch(a,b-1);
/* 4 */
IF (NOT ODD(b)) THEN hoch = hoch(a*a,bDIV2);
/* 5 */ END;
Aussage B: Das Ergebnis dieser Funktion ist nm.
In diesem Beispiel wollen wir durch Induktion zeigen, dass das Ergebnis
dieser Funktion nm ist. Wobei „n“ und „m“ die Aufrufparameter sind.
Beweis:
1) Zum Zeitpunkt 2 ist die Induktionshypothese für m=0 erffült.
Hoch(n,0)= n0 =1.
Wir behaupten jetzt, dass die Induktionshypothese für k < m erfüllt ist und
beweisen, dass sie auch für m erfüllt ist.
2) Zum Zeitpunkt 3 gilt: hoch(n,m)=hoch(n*n,m DIV 2)=(n*n)mDIV2 = nm
3) Zum Zeitpunkt 4 gilt: hoch(n,m)=n*hoch(n,m-1)=n*( nm-1) = nm
7
Siehe Jamel Tazarki 92, Pascal
Dr. Jamel Tazarki
66
book.statistics@web.de
Anwendung der dreiwertigen temporalen Logik
1) Ein Modell für eine Axiomenmenge M ist eine Struktur, die alle Axiome
der Menge M erfüllt (Balzer, 1993). Formal geschrieben:
Startprog  B für B M und alle K=0, 1, 2, 3, 4,...
Anders formuliert: Wenn die Aussage „ Startprog“ wahr ist, dann müssen alle
Axiome des Modelles in allen möglichen Zuständen des
Simulationsprogrammablaufs wahr sein. Dies kann man wie im obigen
Beispiel mathematisch beweisen.
2) Außer den Axiomen des Modells gibt es auch Aussagen, die nicht immer
im Laufe des Simulationsprogrammes wahr sein können. Eine empirische
Verteilung z.B. kann nach einer theoretischen Verteilung erst nach einer
bestimmten Anzahl von Zügen (anders gesagt nach Ablauf einer bestimmten
Zeit) konvergieren. Zum Beispiel, die zufällige Auswahl einer Handlung aus
30 verschidenen Handlungen konvergiert alle *30 Minuten nach einer
theoretische Gleichverteilung. Wobei  eine natürliche Zahl ist. D.h. es gibt
Konvergenz für eine Ablaufzeit gleich 30 Minuten, 60 Minuten, 90
Minuten, usw.
Sei B die Aussage : Die simulierte empirische Verteilung ist eine
Gleichverteilung.
Formal schreiben wir: Startprog  B
Anders formuliert: Wenn die Aussage „ Startprog “ wahr ist, dann ist die
Aussage B immer wieder wahr (aber nicht kontinuierlich wahr).
In diesem Fall müssen wir erstens mathematisch zeigen, dass diese Aussage
für alle K=0, 1, 2, 3, 4,... im Laufe des Programmes erfüllt ist. Und wir
müssen zweitens bestimmte parallele Prozesse anhalten und nur in i frei
geben, wo diese Aussage erfüllt ist.
3) Die Aussagen deren Wahrheitswert als Schlussfolgerung aus der
Wissensbasis im Laufe des Simulationsprogrammes bestimmt wird, werden
als unbestimmt betrachtet und erst ab einem bestimmten Zeitpunkt i
bekommen sie den Wert wahr oder falsch.
Dr. Jamel Tazarki
67
book.statistics@web.de
Kapitel IV
Beschreibung des Simulationsprogramms
Objekte und Relationen
In Prolog wird das gesammelte Wissen zu einer Problemstellung in einer
Datenbasis eingetragen. In ihrer Grundform enthält sie Beschreibungen von
Objekten und von Beziehungen zwischen den Objekten. Aus diesem Grund
kann man Prolog auch als eine objekt-orientierte Sprache bezeichnen. Ein
Objekt kann dabei ein beliebiges Element der menschlichen
Vorstellungswelt sein. Aussagen über Eigenschaften oder Beziehungen
zwischen Objekten heißen im Prolog-Sprachgrbrauch Fakten.
Mengendarstellung
Die wichtigste Datenstruktur vieler Wissenschaften ist die Strukturart
Mengen. Sie spielt nicht nur in der Mathematik, sondern auch in der Kunst
des Programmierens eine wichtige Rolle. Bei den Mengen spielt die
Reihenfolge der Elemente sowie die Zahl ihrer Vorkommnisse (im
Gegensatz zu Listen) keine Rolle. Die Menge e,f,g,e ist somit die gleiche
wie e,f,g.
In diesem Abschnitt werden die wichtigsten Megenoperationen, die im
Simulationsprogramm benutzt werden, dargestellt.
Als beste Darstellungsart für Mengen bietet sich die Liste an. Das folgende
Prädikat, das alle mehrfachen Vorkommnisse aus einer Liste entfernt,
erlaubt die Umwandlung einer Menge in eine Liste:
konvert([],[]) if !.
konvert([K|R],L1) if member(K,R),!, konvert(R,L1).
konvert([K|R],[K|L1]) if konvert(R,L1).
member(X,[X|_]).
member(X,[_|Y])if member(X,Y).
Z.B. konvert([a,b,c,a],L1)
L1=[a,b,c],
Im folgenden werden die wichtigsten Grundoperationen zur Manipulation
von Mengen vorgestellt.
Dr. Jamel Tazarki
68
book.statistics@web.de
xY
Eine der häufigsten Listenoperationen ist die Überprüfung, ob ein Objekt in
der Liste enthalten ist oder nicht. Da Prolog jede Liste in einen Kopf und
eine Restliste aufspaltet, kann folgendes Verfahren angewendet werden:
Zuerst wird das Objekt mit dem Kopf der Liste verglichen; ist dabei keine
Unifikation möglich, wird es mit dem Kopf der Restliste verglichen, danach
mit dem Kopf des Körpers der Restliste, usw. Diese Vorgehensweise ist
durch das Prädikat member() realisiert:
member[X,[X|_].
member[X,[_|Y] :- member[X,Y].
Die erste Klausel prüft, ob das Objekt mit dem Kopf der Liste identisch ist.
Man könnte diese Klausel auch ein wenig umständlicher als
member[Objekt,[Kopf|_] :- Objekt=Kopf.
schreiben. Falls diese Klausel scheitert, wird die zweite, rekursiv formulierte
Regel aufgerufen, um herauszufinden, ob das Objekt ein Element der
Restliste ist. Der Regelkörper dieser Regel muß erfüllt sein, d. h. es wird
festgestellt, ob das Objekt mit dem Kopf der Restliste übereinstimmt.
Scheitert auch dieses Ziel, wird der rekursive Vorgang solange wiederholt,
bis das Objekt gefunden ist, oder alle Elemente in der Liste abgearbeitet
sind.
Die Definition von member() ist das ideale Beispiel für eine Rekursion in
Prolog; sie beinhaltet alle notwendigen Elemente für den erfolgreichen
Ablauf der Rekursionsschleife: Zunächst die Abbruchbedingung: Die erste
Klausel sorgt dafür, daß die Programmausführung gestoppt wird, sobald das
Objekt mit dem Kopf der Liste übereinstimmt.
Falls das Objekt überhaupt nicht in der Liste enthalten ist, merkt das die
zweite Regel, da sie bei jedem Durchlauf die Liste um ein Element verkürzt,
bis sie schließlich leer ist. Da eine leere Liste keine Elemente enthält,
scheitert die Regel.
Die rekursive Regel muß so aufgebaut sein, daß die ganze Liste im Laufe
der Rekursion abgearbeitet wird, also der Reihe nach alle Elemente
überprüft werden, bis die Liste leer ist. andernfalls wird ständig das gleiche
Element überprüft, und zwar endlos lange bzw. bis zu einem
Speicherüberlauf.
XY
Dr. Jamel Tazarki
69
book.statistics@web.de
Das Prädikat untermenge(U_M,M) überprüft, ob jedes Element von U_M
in der Menge M vorkommt. Die Reihenfolge des Auftretens ist dabei
unbedeutend (Die leere Menge ist eine Teilmenge jeder beliebigen Menge).
untermenge([K|R],M) if
member(K,M),!,
untermenge(R,M),
untermenge([],M).
Z.B. gilt:
untermenge([a,b,c],[a,b,c,d,e])
TRUE
M=XY
Das Prädikat intersection(M1,M2,M) gibt die Durchnittsmenge M der
Mengen M1 und M2.
intersection([K|R],X,[K|L]) if
member(K,X),!,
intersection(R,X,L).
intersection([_|R],X,L) if !,
intersection(R,X,L).
intersection(_,_,[]) if !.
Z.B. intersection([a,b,c],[a,b,e,f],M)
M=[a,b]
Differenz
Das Prädikat diff(M1,M2) ist Wahr, wenn die beiden Listen M1 und M2
kein gemeinsames Element haben.
diff([],_) if !.
diff([K|_],L2) if member(K,L2),!, fail.
diff([_|L1],L2) if diff(L1,L2).
Z.B. diff([a,b,c],[r,e,s])
TRUE
XY
Das Prädikat union(X,Y,M) erzeugt die Menge M, welche sich aus allen
Elementen der beiden gegebenen Mengen X und Y zusammensetzt:
union([],X,X).
union([K|R],Y,Z) if
member(K,Y),!,
Dr. Jamel Tazarki
70
book.statistics@web.de
union(R,Y,Z).
union([K,R],Y, [K|Z]) if
union(R,Y,Z).
Z.B. union([a,b,c,d],[e,f,g],M)
M=[a,b,c,d,e,f,g]
Modellzweck: Analyse der Machtbeziehungen innerhalb einer sozialen
Institution am Beispiel eines Buchverlags. Es wird geprüft, ob eine Struktur
X= (J,A, G, H, CH, ST, REAL, INT, MACHT)
ein Modell für die betrachtete soziale Institution ist. Dabei müssen die
folgenden Axiome gültig sein:
a1) Jede Person ist in eine Machtrelation involviert.
a2) Jede von einer Person i ausgeführte Handlung ist charakteristisch für
eine der Gruppen, zu denen i gehört
a3) Wenn Gruppe g’ höheren Status als Gruppe g hat, dann üben die
Mitglieder von g’ mehr Macht über die von g aus als umgekehrt.
a4) Die Statusrelation g ist transitiv und es gibt genau eine
"Spitzengruppe" mit höchstem Status.
Systemgrenze: Es werden nur die internen Machtbeziehungen innerhalb der
Institution Betrachtet.
Zeitraum: Wird vom Programm online abgefragt.
Zustandsgrößen: Die verschiedenen Gruppen innerhalb der Institution, die
Individuen innerhalb der einzelnen Gruppen und die zugehörigen
Handlungen.
Beschreibung: Ein Individuum i übt Macht über ein Individuum j aus,
wenn i j vorsätzlich dazu bringt, etwas zu tun, was j ansonsten nicht getan
hätte. Reziprok dazu erleidet in einem solchen Fall das Individuum j eine
Machtausübung durch i (Balzer 1993, S165-184). Wir werden die
Machtbeziehung nur zwischen den verschiedenen Gruppen der sozialen
Institution analysieren.
Die Gruppe g hat höheren Status als Gruppe g’, wenn gilt :
i) fast alle Personen i in g’ üben MACHT über Personen j in g aus und ein
großer Teil der Mitglieder von g wird dadurch betroffen
ii) nur ein kleiner Teil der Personen j in g übt MACHT über Personen i in g’
aus und nur ein kleiner Teil von g’ ist davon betroffen
Aufruf: sim.exe
Dr. Jamel Tazarki
71
book.statistics@web.de
Bemerkung: Die Daten wurden mit Hilfe von Frames und Slots so
definiert, daß die Axiome a1 und a2 automatisch erfüllt sind. Man könnte
allerdings die Axiome a1 und a2 auch wie folgt in Prolog schreiben:
a1 if member((I,J),M)), macht(I,_); macht(_,I).
a2 if member((I,J),M), realisiert(I,A), grp(G,I), ch(G,A).
Wobei M:={(i,j)/ das Individuum i ist ein Element der Abteilung j}
Das Prädikat grp gibt dabei die Gruppe G des Individuums I an.
Das Prädikat ch ist die charakteristische Funktion, die im Kapitel III in
Paragraph „Makromodell“ definiert wurde.
Die Machtrelation "macht" und das Prädikat "realisiert" werden weiter
unten im Modul power.exe definiert.
Es folgt die Beschreibung der verschiedenen Module:
I) Frame.exe:
Das Modul Frame.exe erzeugt die Datenbasis.
Eingabedaten: Die verschiedenen Frames und die zugehörigen Slots
werden online eingegeben.
frame(F-name,Par-name,Stufe,Anzahl,Bezeichnung):
F-name = integer
Name des Frames: In diesem Fall Name der
Abteilung.
Par-name =integer
Name des Eltern-Frames
Stufe = integer
Das Feld Stufe gibt die Stufe des Frames in der
Gesamtstruktur an.
Anzahl = integer
Anzahl der Mitarbeiter
Bezeichnung = symbol Name der Abteilung
Beispiel: Die Abteilung "Anzeigen" hat den Code 0, die Hierarchieebene 3
und 4 Mitglieder. Sie wird durch das frame(0,15,3,4,"Anzeigen")
dargestellt, wobei 15 der Code des "Eltern-Frame" ist, das die
Vertriebsleitung repräsentiert.
slot(F-name,S-name,S-type,S-Up-val,S-Low-val,
Ausführer,A-Up-val,ALow-val,Bezeichner):
F-name = integer
Ist der Name des frames, zu dem der SLOT
gehört.
S-name = integer
SLOT_Name
S-type=string
Handlungstyp oder konkrete Handlung
Dr. Jamel Tazarki
S-Up-Val=integer
S-Low-val=integer
A-Up-val=integer
72
book.statistics@web.de
Maximale Anzahl der Slots (Handlungen) für
Abteilung (wegen der Zufallsfunktion)
Minimale Anzahl der Slots (Handlungen) für
Abteilung (wegen der Zufallsfunktion)
Maximale Anzahl der Personen, die einen
(Handlung) ausführen dürfen (wegen
Zufallsfunktion)
eine
eine
Slot
der
A-Low-val=integer
Maximale Anzahl der Personen, die einen Slot
(Handlung) ausführen dürfen (wegen
der
zufallsfunktion)
Ausführer
Bezeichner=string
Die ausführende Person
Handlungsname
Beispiel: slot(0,3,"Khd",1,36,2,1,4,"ANZEIGEN_PLANEN").
Dieser Slot entspricht der Handlung, die mit der Zahl 3 codiert wurde, und
die zur Abteilung (Frame) mit dem Code 0 (Anzeigen) gehört. Diese
Handlung der Gruppe Anzeigen wird von dem Mitglied mit dem Code 2
durchgeführt. Die Abteilung Anzeigen (das Frame mit dem Code 0) hat 36
verschiedenen Handlungen (1 bis 36) und besteht aus 4 Mitgliedern (1 bis
4).
Die Slots (Handlungen) für die Gruppe (Frame) mit dem Code 0 werden in
der datei f_0.dat gespeichert.
Die Slots (Handlungen) für die Gruppe (Frame) mit dem Code 1 werden in
der datei f_1.dat gespeichert usw.
Ausgabe: Die Datei f_dat.dat enthält die verschiedenen Frames:
frame(0,15,3,4,"Anzeigen"); frame(1,16,3,50,"Autoren");
frame(2,21,3,2,"Betriebsrat"); usw.
Die Datei f_0.dat enthält die Slots des Frames frame(0,15,3,4,"Anzeigen").
Sie enthält also die Handlungen für das Frame (Gruppe) g0:="Anzeigen",
das den Code 0 hat.
Die Datei f_1.dat enthält die Slots des Frames frame(1,16,3,50,"Autoren").
Sie enthält also die Handlungen für das Frame (Gruppe) g1:= "Autoren",
das den Code 1 hat.
Die Datei f_I1.dat enthält die Slots des Frames
frame(I1,I2,_,_,_). Sie
enthält also die Handlungen mit dem Code I2 für das Frame (Gruppe) gI1,
das den Code I1 hat.
Das Modul frame.exe wird in Anhang I aufgelistet und diskutiert.
Dr. Jamel Tazarki
73
book.statistics@web.de
II) Simulation.exe
Das Modul
"Simulation" erzeugt mit Hilfe einer Zufallsfunktion
Handlungen für die verschiedenen Individuen innerhalb der Institution.
Diskrete Auswahlmodelle
Diskrete Auswahlmodelle analysieren das Verhalten von Individuen bei
Ihrer Wahl zwischen einer begrenzten Menge von Handlungen
(Alternativen). Es handelt sich um eine nutzentheoretische Basierung von
multinomialen Logit-Modellen. Aus der Vielzahl der existierenden Modelle
werden einige für die Wahl der Handlungen in einer Sociale Institution
ausgewählt.
Logit-Modell: Die grundlegende Annahme ist, dass der Nutzen eines
Individuums i bei Wahl der Handlung (Alternative) j, gegeben die
Einflussfaktoren der Attribute, durch die folgende lineare Nutz-funktion
darstellen lässt:
I
V it  B 0 

X
itk
 B k für i  H mit I = H 2.
k 1
H ist die Menge der Handlungen.
Die Attribute erfassen Angaben über die individuelle Attraktivität der
Handlung i für ein Individuum t.
Vit
Bk
Xitk
Numerisch eindeutig feststellbarer Nutzen der Handlung i für das
Individuum t (wird erfaßt).
Parameter des k-ten Attributs(wird geschätzt).
Zahlenwert des Attributs k bei Alternative i für Individuum t (wird
erfaßt )
Wenn das Modell bekannt ist -d.h. die Werte von Bk liegen vor- dann kann
man für Werte von Xitk die dazugehörigen Werte von Vit berechnen. Anhand
dieser Werte erhält man mittels
p t i  
e
V it
für i H
I

j1
e
v
jt
Dr. Jamel Tazarki
74
book.statistics@web.de
die Wahrscheinlichkeit dafür, daß das Individuum t die Handlung i wählt.
Im Falle von zwei Alternativen vereinfacht sich obiger Ausdruck zu
p 1t 
e
B  Yt
1 e
mit Yt := X1t - X2t
B  Yt
Binomiales Logit-Model: Dieses Modell ist eine spezielle Art des
Logit-Modells, in dem die Logit-Funktion mit zwei Handlungen geschrieben
wurde. Die Wahrscheinlichkeit, daß die Alternative A k-mal unter der
Bedingung t=Ti gewählt wurde, berechnet sich nach der Formel
t
Pr  K i  k T i  t   
k




k


 exp   X i    
1

 

 1  exp   X i    
 1  exp   X i    
tk
Multinomial Logit-Modell (MNL-Modell )
Es wird angenommen, daß der Nutzen ähnlich wie im Logit-Modell eine
lineare Funktion ist, die aber nicht nur von objektiven Attributen sondern
auch sozio-ökonomischen Kennziffern abhängt .
I
V it  B 0 

L
X itk  B k 
k 1
Bk
Xitk
Al
Stl
S
tl
Al
l 1
Gewichtsparameter des Attributs k
Zahlenwert des Attributs k bei Alternative i für Individuum t
Gewichtsparameter der sozio-ökonomischen Größe l
Kenndaten für sozio-ökonomischen Variable l und Individuum t
Im Fall von zwei Handlungen (I=2) haben die sozio-ökonomischen
Variablen keinen Einfluß auf das Verhältnis der beiden
Wahrscheinlichkeiten:
 p 1t 
ln 
 
 1  p 1t 
K
 B k   X 1 tk
 X
2 tk

k 1
Dogit-Modell
Das Modell geht zurück auf Gaudry vom Jahr 1977. Es wird angesetzt:
Dr. Jamel Tazarki
75

V
p it  c   e it  Q


J
it


V jt
e
j 1
book.statistics@web.de




Dieser Ansatz erlaubt, eine Wichtung der Handlung i gegenüber den
anderen Handlungen vorzunehmen. Qit stellt ein Gewicht dar.
Vit
Qit
c
nicht zufällige Nutzenkomponente der Alternative i für Individuum t
nicht-negativer Parameter der Handlung i,
Proportionalitätskonstante
Es muß gelten:
J

p it  1
hieraus folgt
i 1
J
e
p it 
V it
 Q it 

e
V jt
j 1

1 


J

j 1

Q jt  


J

e
V jt
j 1
Dieses Modell ist mit dem Logit-Modell identisch, wenn Qit = 0 für alle i
gilt.
Beschreibung des Moduls:
Das Modul simuliert mit Hilfe einer Zufallsfunktion Handlungen für die
verschiedenen Individuen innerhalb der Institution wie folgt. Wir werden
hier das Dogit Modell eingesetzt. Das Programm erlaubt eine Wichtung der
Handlung i gegenüber den anderen Handlungen vorzunehmen. Qit stellt ein
Gewicht dar.
Eingabedaten: Dieses Modul benötigt die files f_0.dat bis f_24.dat. Sie
wurden mit Hilfe des Moduls frame.exe erzeugt und enthalten jeweils die
möglichen Handlungen der verschiedenen Gruppen.
Ausgabedaten: Die Datei rea_i.dat enthält die simulierten Handlungen für
die Gruppe gi. Wobei 0=i=24Die folgende Tabelle gibt die
Verteilung von rea_0.dat für eine
Simulationsdauer von 30 Minuten an.
Dr. Jamel Tazarki
76
book.statistics@web.de
Die Gültigkeit der Nullhypothese: H0 = Die Handlungen sind gleichverteilt.
wird innerhalb des Programmes mit dem Chi-Quadrat-Anpassungstest
verifiziert
Dr. Jamel Tazarki
77
book.statistics@web.de
+--------------------------------------+
¦
Simulationsdauer eingeben
¦
+--------------------------------------+
+----------------------------------------------------+
¦Der erste Aufruf der Zufallsfunktion liefert eine
¦
+>¦Zahl zwischen 0 und 24. Dieser Wert wird
¦
¦ ¦der Variablen I1 zugewiesen und damit ist die
¦
¦ ¦Gruppe festgelegt.
¦
¦ +----------------------------------------------------+
¦ +----------------------------------------------------+
¦ ¦Der zweite Aufruf der Zufallsfunktion liefert
¦
¦ ¦zwei ganze Zahlen. Der erste Wert wird der Variablen¦
¦ ¦I2 zugewiesen und damit ist die Handlung festgelegt.¦
¦ ¦Der zweite Wert wird der Variablen I3 zugewiesen und¦
¦ ¦damit ist die ausfuehrende Person festgelegt.
¦
¦ +----------------------------------------------------+
¦ +----------------------------------------------------+
¦ ¦Die simulierte Handlung Hand(I1,I2,I3) wird in
¦
¦ ¦der Datei rea-I1.dat gespeichert.
¦
¦ +----------------------------------------------------+
¦ nein
+--------------------------------------+
+------<-----¦ Simulationsdauer ist abgelaufen ?
¦
+--------------------------------------+
¦ja
+-------+
¦ ENDE ¦
+-------+
Dr. Jamel Tazarki
Handlun
g
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
78
book.statistics@web.de
Häufigkeit
Handlung Häufigkeit
43
36
32
30
32
32
34
31
39
38
38
29
34
30
36
27
31
36
35
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
35
20
38
41
39
34
43
41
36
48
39
39
42
48
34
35
38
32
Dr. Jamel Tazarki
79
book.statistics@web.de
III) Das Modul power.exe
Es erzeugt eine Liste der Machtbeziehungen zwischen den verschiedenen
Gruppen.
Beschreibung des Moduls
q(Gri,A,Grj,B) ist ein Element der Relation "verursacht" und bedeutet, daß:
-die Handlung A (der Gruppe Gri) nach Gri die Handlung B (der Gruppe
Grj) teilweise verursacht oder
- die Handlung A nach Grj B teilweise verursacht.
int(g1,g2,h2) bedeutet folgendes: die Gruppe g1 intendiert, daß die Gruppe
g2 die Handlung h2 durchführen soll.
"macht(Gri,A,I,Grj,B,J)" bedeutet folgendes: die Person I der Gruppe Gri
übt Macht mit der Handlung A auf die Person J der Gruppe Grj aus, damit
diese die Handlung B ausführt.
+---------------------------------------------------+
+>¦Lese der Reihe nach alle Elemente der Liste r6 und+<-+
¦ ¦weise sie der Variablen qGri,A,Grj,B) zu.
¦ ¦
¦ ¦
¦ ¦
¦ ¦(Die Relation "verursacht" wird durch die Liste r6 ¦ ¦
¦ ¦dargestellt).
¦ ¦
¦ +---------------------------------------------------+ 
¦ +---------------------------------------------------+no¦
¦ ¦Prüfe, ob int(Gri,Grj,B) ein Element der Relation +->¦
¦ ¦"intendiert" ist.
¦ ¦
¦ +---------------------------------------------------+ 
¦
¦ja
¦
 +---------------------------------------------------+ ¦
¦ ¦Prüfe, ob die Handlung A in den simulierten
¦no¦
¦ ¦Aktionen des Individuums I enthalten ist, d. h.,
+>-¦
¦ ¦ob die Handlung A charakteristisch für I ist.
¦ ¦
¦ +---------------------------------------------------+ ¦
¦
¦ja

 +---------------------------------------------------+ ¦
¦ ¦Prüfe, ob die Handlung B in den simulierten
¦no¦
¦ ¦Aktionen des Individuums J enthalten ist, d. h.,
+>-+
¦ ¦ob die Handlung B charakteristisch für J ist.
¦
¦ +---------------------------------------------------+
¦+-----------------------------------------------------+
¦¦Schreibe das Prädikat macht(Gr-i,A,I,Gr-j,J,B) in
¦¦die Datei st-Gri.dat. Wobei 0 = Gri = 24
¦
¦+-----------------------------------------------------+
¦no +-------------------------------------------------+
+-<-¦ wurde die Liste r6 bis zum Ende gelesen?
¦
+-------------------------------------------------+
Eingabedaten:
Dr. Jamel Tazarki
80
book.statistics@web.de
-Die files rea_0.dat bis rea_24.dat. Diese wurden von dem Modul sim.exe
erzeugt und enthalten jeweils die simulierten Handlungen der verschiedenen
Gruppen.
-Die files int0.dat bis int24.dat. Sie enthalten die Daten für die Relation
Intendiert in der Form int(g1,g2,h2).
int0.dat
int(0,11,11); int(0,13,22); int(0,13,41);
int(0,13,42); int(0,8,30); usw.
int(0,24,32);
int(0,13,23);
-Die Relation verursacht wurde durch Beobachtung innerhalb der sozialen
Institution erzeugt und wird in Form einer Liste (r6) gespeichert. Diese Liste
enthält die Elemente der Form q(Gi,A,Gj,B).
q(Gi,A,Gj,B) bedeutet, daß :
-die Handlung A (der Gruppe Gi) nach Gi die Handlung B (der Gruppe Gj)
teilweise verursacht oder
- die Handlung A nach Gj B teilweise verursacht.
Die Machtrelation:
macht(I,A,J,B) if
verursacht(Gi,A,Gj,B),
intendiert(Gi,Gj,B),
realisiert(I,A),
realisiert(J,B).
d.h. die Person I (Element der Gruppe Gi) übt Macht mit der Handlung A
auf die Person J (Element der Gruppe Gj) aus, damit sie die Handlung B
ausführt, wenn:
M1) I realisiert die Handlung A und J realisiert B.
M2) Gi intendiert, daß Gj die Handlung B tun soll.
M3) A verursacht nach Gi B teilweise oder A verursacht nach Gj B
teilweise.
Ein logit multinomial erlaubt uns diskrete Auswahlmodelle bei der
Machtausübung zu analysieren: Die Entscheidung einer Personn „i“ macht
auf der Personn J zur Zeit t auszuüben. Wir definieren in diesem
Zusammenhang die diskrete Variable Y i , j , t , wobei „i" ist die
machtausübende Personn und „j" ist die ausführende Personn und t ist die
Zeit. Y i , j , t nimmt die Werte „1“ falls „i" übt macht auf „j“ zur Zeit t sonst -
Dr. Jamel Tazarki
81
book.statistics@web.de
1. Mit einem logit multinomial ist die Wahrscheinlichkeit, daß „i" macht
über „j“ wie folgt definiert:
exp(  1 x i , j , t )
'
P (Y i , j ,t  1) 
1  exp(  1 x i , j , t )  exp( 
P (Y i , j ,t   1) 
'
'
1
x i , j ,t )
1
1  exp(  1 x i , j , t )  exp( 
'
'
1
x i , j ,t )
wobei :
xi,j,t sind die Attribute
 1 und   1 sind die entsprechenden Koeffizienten.
Ausgabedaten: Die Dateien st_0.dat bis st_24.dat enthalten die
Machtbeziehungen in Form von "macht(Gi,A,I,Gj,B,J)": d.h. die Person I
der Gruppe Gi übt Macht mit der Handlung A auf die Person J der Gruppe
Gj aus, damit diese die Handlung B ausführt.
Die Datei st_0.dat enthält die Machtbeziehungen "macht(0,_,_,_,_,_)" der
Gruppe g0 (des Frames mit dem Code 0).
Die Datei st_1.dat enthält die Machtbeziehungen "macht(1,_,_,_,_,_)" der
Gruppe g1 (des Frames mit dem Code 1).
Die Datei st_I.dat enthält die Machtbeziehungen "macht(I,_,_,_,_,_)" der
Gruppe gI (des Frames mit dem Code I)
Es folgt ein Auszug aus der Datei st_0.dat der Gruppe g0 (des Frames
mit dem Code 0):
macht(0,22,4,11,11,2); macht(0,29,4,13,23,1); macht(0,22,4,11,11,2); Usw.
Die Gültigkeit der Nullhypothese
H0 : Die Handlungen sind gleichverteilt.
wird innerhalb des Programmes mit dem Chi-Quadrat-Anpassungstest
verifiziert
Dr. Jamel Tazarki
82
book.statistics@web.de
IV) Bewerten.exe
Beschreibung des Moduls: Die Prädikate macht(Gi,A,I,Gj,B,J) wurden
vom Modul power.exe erzeugt und bedeuten folgendes:
Die Person I der Gruppe Gi übt Macht mit der Handlung A auf die Person J
der Gruppe Gj aus, damit diese die Handlung B ausführt.
Die Prädikate macht(Gi,A,I,Gj,J,B) der Gruppe Gi sind in der Datei stGi.dat gespeichert. Wobei 0<= Gi <=24.
+------------------------------------------+
¦ L=[0,1,2,3,4,5,6,7,8,9,10,11,
¦
¦ 12,13,14,15,16,17,18,19,20,21,22,23,24]. ¦
+------------------------------------------+
+-----------------------------------------------+
¦Lese der Reihe nach alle GiL und GjL :
-<-¦member(Gi,L), member(Gj,L).
¦
+-----------------------------------------------+
+-----------------------------------------------------+
¦Mit Hilfe des Prädikats macht(Gri,A,I,Grj,B,J)
¦
¦werden von jeder Gruppe die Mitglieder gezählt, die
¦an der Machtausübung beteiligt sind.
¦ Gruppe Gri hat höheren Status als Gruppe Grj, falls:
¦ i) fast alle Personen in Gri üben MACHT über
¦
Personen in Grj aus und ein großer Teil der
¦
Mitglieder von Grj wird dadurch betroffen
¦ ¦
¦ii) nur ein kleiner Teil der Personen in Grj übt
¦ ¦
¦
MACHT über Personen in Gri aus und nur ein
¦ ¦
¦
kleiner Teil von Gri’ wird davon betroffen
¦ ¦
+-----------------------------------------------------+ ¦
+---------------------------------------------------+ ¦
¦Der Machtstatus der Gruppen Gi und Gj wird in der ¦ ¦
¦externen Datei b24.dat in der Form st(Gi,Gj,N1,K2) ¦ ¦
¦gespeichert. Dabei sind st(G1,G2,N1,K2) wie folgt ¦ ¦
¦zu lesen: N1 Mitglieder der Gruppe G1 haben Macht ¦ ¦
¦auf K2 Mitglieder der Gruppe G2 ausgeübt
¦ ¦
+---------------------------------------------------+ ¦
+---------------------------------------+ja +------+ ¦
¦Die Liste L wurde bis zum Ende gelesen?+----¦ ENDE ¦ ¦
+---------------------------------------+
+------+ ¦
+---------------->------------------+
nein
In dem Machtgefüge zwischen G1 und G2 wird jedes Mitglied, das an den
Machtbeziehungen beteiligt ist, nur einmal gezählt, auch wenn von oder zu
diesem Mitglied mehrere Machtbeziehungen verknüpft sind.
Dr. Jamel Tazarki
83
book.statistics@web.de
Eingabedaten: Dieses Modul benötigt die Dateien st_0.dat bis st_24.dat.
Sie wurden durch das Modul power.exe erzeugt und enthalten jeweils die
simulierten Machthandlungen der verschiedenen Gruppen.
Ausgabedaten: Die Datei b24.dat enthält die Prädikate der Form
st(G1,G2,N1,K2), die wie folgt zu lesen sind:
N1 Mitglieder der Gruppe G1 haben Macht auf K2 Mitglieder der Gruppe
G2 ausgeübt.
Es folgt ein Auszug der Datei b24.dat: st(0,1,1,1); st(4,23,1,1).;
st(0,2,1,1); st(4,24,2,2); st(0,3,1,1); st(5,0,1,1); st(0,4,1,1); Usw.
Die Gültigkeit der Nullhypothese
H0 : Die Handlungen sind gleichverteilt.
wird innerhalb des Programmes mit dem Chi-Quadrat-Anpassungstest
verifiziert
V) Status.exe
Beschreibung des Moduls: Das Prädikat st(G1,G2,N1,K2) ist, wie folgt zu
lesen: N1 Mitglieder der Gruppe G1 haben Macht auf K2 Mitglieder der
Gruppe G2 ausgeübt.
Das Prädikat status(G1,G2,1) ist, wie folgt zu lesen: die Gruppe G1 hat
einen höheren Status als die Gruppe G2.
Das Modul Status.exe führt die Überprüfung von dem folgenden Axiom a3
aus:
Wenn Gruppe g’ (e G) höheren Status als Gruppe g hat, dann üben die
Mitglieder von g’ mehr Macht über die von g (e G) aus als umgekehrt.
Genauer gilt:
i) fast alle Personen i in g’ üben MACHT über Personen j in g aus und ein
großer Teil der Mitglieder von g wird dadurch betroffen
ii) nur ein kleiner Teil der Personen j in g übt MACHT über Personen i in
g’ aus und nur ein kleiner Teil von g’ wird davon betroffen
Dieses Axiom läßt sich wie folgt formalisieren :
Gruppe g2 hat einen höheren Status als g1, falls:
K1/card(g1) > Alpha=0.8
N2/card(g2) > Beta=0.8
N1/card(g1) < Sigma=0.3
Dr. Jamel Tazarki
84
book.statistics@web.de
K2/card(g2) < Gamma=0.3
Dabei gilt:
- N1 Mitglieder der Gruppe G1 haben Macht auf K2 Mitglieder der Gruppe
G2 ausgeübt
- N2 Mitglieder der Gruppe G2 haben Macht auf K1 Mitglieder der Gruppe
G1 ausgeübt.
Alpha, Beta, Gamma und Sigma werden vom Benutzer angegeben.
+------------------------------------------------+
¦L= [0,1,2,3,4,5,6,7,8,9,10,11,12,13,
¦
¦14,15,16,17,18,19,20,21,22,23,24]
¦
+------------------------------------------------+
+--------------------------------------------------+
¦Die Prädikate st(_,_,_,_) der Datei b24.dat
¦werden zu der Datenbasis addiert. Sie wurden
¦
¦vom Modul power.exe erzeugt.
¦
+--------------------------------------------------+
+--------------------------------------------------+
¦Alle GiL und GjL werden in der Reihenfolge
¦gelesen: member(Gi,L), member(Gj,L)
+<---+
+--------------------------------------------------+
¦
+--------------------------------------------------+
¦Es wird geprüft, ob die Prädikate st(Gi,Gj,M1,K1)
¦oder st(Gj,Gi,M2,K2) in der Datenbasis
+>---¦
¦enthalten sind. D. h. es wird geprüft, ob eine
¦nein¦
¦Machtbeziehung zwischen Gi und Gj existiert
¦
¦
+--------------------------------------------------+
¦
¦ja
¦
+--------------------------------------------------+
¦
¦Anzahl der Mitglieder der jeweiligen Gruppen
¦
¦
¦Gi und Gj werden von der Datenbasis gelesen:
¦

¦card(Gi,SGi),
¦
¦
¦card(Gj,SGj),
¦
¦
+--------------------------------------------------+
¦
+--------------------------------------------------+

¦Das Axiom a3 wird geprüft:
¦
¦
¦M1/SGi > 0.8,
¦nein¦
¦M2/SGj < 0.3,
+--->¦
¦K1/SGi < 0.3,
¦
¦
¦K2/SGj > 0.8,
¦
¦
+--------------------------------------------------+
¦
¦ja
¦
+--------------------------------------------------+
¦
¦ Schreibe "status(Gi,Gj,1)" in der Datei b13.dat. ¦

+--------------------------------------------------+
¦
+--------------------------------------------------+nein¦
¦ Wurde die Liste L bis zum Ende gelesen ?
+-->-+
+--------------------------------------------------+
Dr. Jamel Tazarki
85
book.statistics@web.de
Eingabedaten: Dieses Modul benötigt die Datei b24.dat. Sie wurde von
dem Modul Bewerten.exe erzeugt und enthält die Prädikate der Form
st(G1,G2,N1,K2): d.h. N1 Mitglieder der Gruppe G1 haben Macht auf K2
Mitglieder der Gruppe G2 ausgeübt.
Ausgabedaten: Die Datei b13.dat enthält das Endergebnis der
Machtanalyse in der Form status(G1,G2,1).
status(G1,G2,1) bedeutet, daß die Gruppe G1 einen höheren Status als die
Gruppe G2 hat.
Es folgt ein Auszug aus b13.dat: status(0,11,1); status(2,4,1); status(2,7,1);
status(2,9,1); status(2,11,1); status(2,13,1); usw.
Die Gültigkeit der Nullhypothese
H0 : Die Handlungen sind gleichverteilt.
wird innerhalb des Programmes mit dem Chi-Quadrat-Anpassungstest
verifiziert
VI) Spitzen.exe
Das Modul Spitzen.exe prüft das Axiom a4.
Das Axiom a4 sagt aus: Die Statusrelation "ST" ist transitiv und es gibt
genau eine "Spitzengruppe" mit höchstem Status.
Die Transitivität läßt sich wie folgt in prolog schreiben:
transitive if status(G1,G2,1), status(G2,G3,1),
not(status(G1,G3,1)),
write("Leider nicht transitiv"),
Der Beweis der Eindeutigkeit der Existenz der "Spitzengruppe" läßt sich
wie folgt mathematisch formulieren:
g0 (g×g0  g<g0)  g’((g(g×g’  g<g’)  g’=g0)
In Prolog läßt sich diese mathematische Formel wie folgt behandeln:
Spitzengruppe(G1) if status(G1,_,1),
not(status(_,G1,1)),
write(G1), nl.
Dr. Jamel Tazarki
86
book.statistics@web.de
Eingabedaten: Dieses Modul benötigt die Datei b13.dat. Sie wurde vom
Modul status.exe erzeugt und enthält das Endergebnis der Machtanalyse in
der Form status(G1,G2,Z).
status(G1,G2,1) bedeutet, daß die Gruppe G1 einen höheren Status als die
Gruppe G2 hat.
Ausgabedaten: Bei einer Laufzeit des Simulationsprogramms von 30
Minuten ist die Abteilung mit der Codierungszahl 8 die Spitzengruppe. Die
Machtrelation ist für diese Laufzeit nicht transitiv.
+--------------------------------------------+
¦Die Datei b13.dat enthält die Prädikate
¦status(Gi,Gj,1).
¦
¦Das Prädikat status(Gi,Gj,1) bedeutet, daß ¦
¦die Gruppe Gi Macht auf die Gruppe Gj
¦
¦ausgeübt hat.
¦
¦Der Inhalt von b13.dat wird in der
¦
¦Datenbasis gespeichert: consult("b13.dat") ¦
+--------------------------------------------+
+---------------------------------------------------+
¦Die Anzahl der Spitzengruppen wird in der Daten¦
¦ basis gespeichert:
¦
¦ Spitzengruppe
if S=0, asserta(anz2(S)),
¦
¦
consult("b13.dat"),!, status(G1,_,1),
¦
¦
not(status(_,G1,1)), write(G1),
¦
¦
anz2(H1), H2=H1+1, retract(anz2(H1)),
¦
¦
asserta(anz2(H2)), fail.
¦
+---------------------------------------------------+
+------------------------------------------------------+
¦Es wird geprüft, ob die Machtrelation transitiv ist: ¦
¦transitive if status(G1,G2,1),
¦
¦
status(G2,G3,1),
¦
¦
not(status(G1,G3,1)),
¦
¦
write("Leider nicht transitiv"), fail. ¦
+------------------------------------------------------+
+------------------------------------------------------+
¦Es wird gepr•üft, ob die Spitzengruppe ein eindeutig ist:
¦eindeutigkeit if anz2(H2), H2=1, write(‘eindeutig’). ¦
+------------------------------------------------------+
Die Verlagsleitung (mit dem integer code 8) ist in diesem Fall die
Spitzengruppe. Sie gibt mehr Befehle als sie empfängt.
Für das betrachtete intendierte System ist Machtrelation nicht transitiv, denn
es gibt auch folgende Fälle:
- G1 übt Macht auf G2 aus.
- G2 übt Macht auf G3 aus.
Dr. Jamel Tazarki
87
book.statistics@web.de
- Es gibt keine Beziehungen zwischen den Gruppen G1 und G3. Man kann
in diesem Fall nicht von Machtbeziehungen zwischen G1 und G3 sprechen,
da die Gruppen G1 und G3 keine Macht aufeinander ausüben.
Es folgt das gesamte Modul:
/*1*/ database
/*2*/ anz2(integer).
/*3*/ predicates
/*4*/ status(integer,integer,integer).
/*5*/ Spitzengruppe(integer).
/*6*/ not_transitive.
/*7*/ clauses
/*8*/ not_transitive if consult("b13.dat"),!,
/*9*/
status(G1,G2,1), status(G2,G3,1),
/*10*/
not(status(G1,G3,1)),
/*11*/
write("Leider nicht transitive"),
/*12*/
nl,
/*13*/
write("G1="), write(G1), nl,
/*14*/
write("G2="), write(G2), nl,
/*15*/
write("G3="), write(G3), nl,
/*16*/
readchar(_).
/*17*/ Spitzengruppe(G1) if O=0, asserta(anz2(O)),
consult("b13.dat"),!,
/*18*/
status(G1,_,1),
/*19*/
not(status(_,G1,1)),
/*20*/
write(G1),
/*21*/
anz2(H1), H2=H1+1,
retract(anz2(H1)),
/*22*/
asserta(anz2(H2)), fail.
/*23*/ eindeutigkeit if anz2(H2), H2=1, write(‘eindeutig’).
Anpassung des Simulationsprogramms
In diesem Abschnitt wird gezeigt, wie man das Simulationsprogramm auf
ein beliebiges intendiertes System der sozialen Institutionen anwenden kann:
1)Wir betrachten eine wirkliche Institution. Diese bildet ein intendiertes
System für unsere Theorie.
2) Für dieses intendiertes System wird eine Struktur X wie folgt definiert:
Dr. Jamel Tazarki
88
book.statistics@web.de
X= (J,A, G, H, CH, ST, REAL, INT, MACHT)
wobei
i) J und A sind nicht-leere, endliche, disjunkte Mengen (von Personen und
Handlungen).
ii) G ist eine Menge von Teilmengen von J (Gruppen) und H eine Menge
von Teilmengen von A (Handlungstypen).
iii)CH (charakteristische Funktion) ist eine Funktion, die jeder Gruppe eine
Menge von (für sie charakteristischen) Handlungstypen zuordnet.
iv) ST ist eine zweistellige Relation (Statusrelation) zwischen Gruppen.
v) REAL steht für die Relation: Person i realisiert Handlung a
vi) INT steht für die Relation: Person i intendiert, daß Person J Handlung b
tut
vi) MACHT steht für die Relation : Person i übt mit Handlung a MACHT
über Person j aus, so daß j Handlung b tut.
3) Durch Beobachtung, Umfrage und mit Hilfe von dem Modul frame.exe
werden Daten der Mengen J, A, G, H, REAL, INT zugewiesen. Die
Relationen macht, ch und st werden implizit durch Prolog-Regeln definiert.
4) Das Modul "Simulation.exe" erzeugt mit Hilfe einer Zufallsfunktion
Handlungen für die verschiedenen Individuen innerhalb der Institution.
Diese Handlungen müssen in der Frame-Wissensbasis (in die Dateien
f_0.dat bis f_24.dat) vorhanden seien.
Als output bekommen wir die Tupeln der Form hand(G,H,P). D. h. die
Personn der Gruppe G realisiert die Handlung H. Dabei sind die Variablen
G, H und P vom Typ integer und werden perzufall determiniert.
5) Das Modul power.exe analysiert die Output_Daten der Form
"hand(G,H,P)" des Moduls "Simulation.exe" und erzeugt eine Liste der
Machtbeziehungen zwischen den verschiedenen Gruppen. die Machtrelation
wird wie folgt definiert:
macht(I,A,J,B) if
verursacht(Gr_i,A,Gr_j,B),
intendiert(Gr_i,Gr_j,B),
realisiert(I,A),
realisiert(J,B).
Dr. Jamel Tazarki
89
book.statistics@web.de
d.h. die Person I (Element der Gruppe Gr_i) übt Macht mit der Handlung A
auf die Person J (Element der Gruppe Gr_j) aus, damit sie die Handlung B
ausführt, wenn:
M1) I realisiert die Handlung A und J realisiert B.
M2) Gr_i intendiert, daß Gr_j die Handlung B tun soll.
M3) A verursacht nach Gr_i B teilweise oder A verursacht nach Gr_j B
teilweise.
Als output bekommen wir Die Dateien st_0.dat bis st_24.dat der
jeweiligen Gruppen g0 bis g24. Diese enthalten die Machtbeziehungen in
Form von "macht(g1,h1,p1,g2,h2,p2)": d.h. die Person p1 der Gruppe g1
übt Macht mit der Handlung h1 auf die Person p2 der Gruppe g2 aus, damit
diese die Handlung h2 ausführt.
6) Das Modul Bewerten.exe analysiert die Output_Daten der Form
"macht(g1,h1,p1,g2,h2,p2)" des Moduls power.exe.
Als output bekommen wir die Prädikate der Form st(G1,G2,N1,K2), die wie
folgt zu lesen sind:
N1 Mitglieder der Gruppe G1 haben Macht auf K2 Mitglieder der Gruppe
G2 ausgeübt.
In dem Machtgefüge zwischen G1 und G2 wird jedes Mitglied, das an den
Machtbeziehungen beteiligt ist, nur einmal gezählt, auch wenn von oder zu
diesem Mitglied mehrere Machtbeziehungen verknüpft sind.
7) Das Modul Status.exe analysiert die Output_Daten der Form
st(G1,G2,N1,K2) des Moduls Bewerten.exe und führt die Überprüfung der
Gültigkeit vom Axiom a3 durch.
Axiom a3 wurde wie folgt definiert:
Wenn Gruppe g’ höheren Status als Gruppe g hat, dann üben die Mitglieder
von g’ mehr Macht über die von g aus als umgekehrt.
Genauer gilt:
i) fast alle Personen i in g’ üben MACHT über Personen j in g aus und ein
großer Teil der Mitglieder von g wird dadurch betroffen.
ii) nur ein kleiner Teil der Personen j in g übt MACHT über Personen i in g’
aus und nur ein kleiner Teil von g’ wird davon betroffen
Dr. Jamel Tazarki
90
book.statistics@web.de
Axiom a3 läßt sich formal wie folgt schreiben:
Gruppe g2 hat einen höheren Status als g1, falls:
K1/card(g1) > ALPHA=0.8
N2/card(g2) > BETA=0.8
N1/card(g1) < Segma=0.3
K2/card(g2) < Gamma=0.3
Dabei gilt:
-N1 Mitglieder der Gruppe G1 haben Macht auf K2 Mitglieder der Gruppe
G2 ausgeübt
- N2 Mitglieder der Gruppe G2 haben Macht auf K1 Mitglieder der Gruppe
G1 ausgeübt
Alpha, Beta, Gamma und Sigma werden online vom Benutzer angegeben.
Als output bekommen wir die Prädikate der Form status(G1,G2,1), die wie
folgt zu lesen sind: die Gruppe G1 hat einen höheren Status als die Gruppe
G2.
8) Das Modul Spitzen.exe prüft anhand der Output_Daten der Form
status(G1,G2,1) des Moduls Status.exe, ob das Axiom a4 wahr ist.
Axiom a4 wurde wie folgt definiert:
Die Statusrelation "ST" ist transitiv
"Spitzengruppe" mit höchstem Status.
und
es
gibt
genau
eine
9) Die Struktur X ist ein Modell des intendiertes System, nur wenn die
Axiome a1 bis a4 erfüllt sind.
Die Axiome a1 und a2 sind automatisch erfüllt. D. h. die Daten werden so
gesammelt und gespeichert, daß jede Person in eine Machtrelation involviert
ist und daß jede, von einer Person i ausgeführte Handlung charakteristisch
für eine der Gruppen ist, zu denen i gehört.
Man könnte allerdings die Axiome a1 und a2 auch wie folgt in Prolog
schreiben:
a1 if member((I,J),M)), macht(I,_); macht(_,I).
a2 if member((I,J),M), realisiert(I,A), grp(G,I), ch(G,A).
Wobei M:={(i,j)/ das Individuum i ist ein Element der Abteilung j}
Das Prädikat grp gibt dabei die Gruppe G des Individuums I an.
Dr. Jamel Tazarki
91
book.statistics@web.de
Anhang I
Der Aufbau von Frames mit Prolog
Wir beginnen mit der Bestimmung des Speicherformats. In dieser Arbeit
werden zwei verschiedene Klauseln verwendet: "frame" zur Speicherung
von Frames und "slot" zur Speicherung von Slots.
Die Argumente für diese Klausel sind der Name des Frames, der Name des
Eltern-Frames, die Anzahl der Mitarbeiter, die Stufe und die Bezeichnung
des Frames. Der Name des Eltern-Frames liefert eine Verknüpfung zum
übergeordneten Frame und es entsteht dadurch die hierarchische Ordnung
des Wissens. In unsere Beispiel gibt die Bezeichnung den Namen der
Abteilung an. Wir haben 24 verschiedene Abteilungen und dazu 24
verschiedene Frames.
Frames
Wir besprechen die Klausel zur Erzeugung von Frames,
"NEWFRAME":
DATABASE
/*2*/ FRAME(INTEGER,INTEGER,INTEGER,INTEGER,SYMBOL).
/*3*/ PREDICATES
/*4*/ NEWFRAME(INTEGER,INTEGER,INTEGER,SYMBOL).
/*5*/ CLAUSES
/*6*/ NEW IF INIT,NL,
/*7*/ WRITE("F-NAME GEBEN : "), NL, READINT(F-NAME), NL,
/*8*/ NL, WRITE("PAR-NAME GEBEN "), NL, READINT(PARNAME), NL,
/*9*/ NL, WRITE("ANZAL DER ABTEILUNGSMITGLIEDER GEBEN
"), NL,
/*10*/ READINT(ANZAHL), NL,
/*11*/ NL, WRITE("BEZEICHNUNG GEBEN "), NL, READLN(B), NL,
/*12*/ NL, NEWFRAME(F-NAME,PAR-NAME,ANZAHL,B).
/*13*/ NEWFRAME(F-NAME,-,-,-) IF
/*14*/ FRAME(F-NAME,-,-,-,-),
/*15*/ NL, WRITE("\NERROR - ",F-NAME,"EXISTIERT BEREITS."),
NL.
/*16*/ NEWFRAME(F-NAME,PAR-NAME,ANZAHL,BEZEICHNUNG)
IF
/*17*/ FRAME(PAR-NAME,-,PAR-STUFE,-,-),
/*18*/ F-STUFE = PAR-STUFE + 1,
Dr. Jamel Tazarki
92
book.statistics@web.de
/*19*/
ASSERTZ(FRAME(F-NAME,PAR-NAME,FSTUFE,ANZAHL,BEZEICHNUNG)),
/*20*/ OPENAPPEND(TEST,"F-DAT.DAT"),
/*21*/ WRITEDEVICE(TEST),
/*22*/ NL,
/*23*/ WRITE("FRAME("),
/*24*/ WRITE(F-NAME),
/*25*/ WRITE(","),
/*26*/ WRITE(PAR-NAME),
/*27*/ WRITE(","),
/*28*/ WRITE(F-STUFE),
/*29*/ WRITE(","),
/*30*/ WRITE(ANZAHL),
/*31*/ WRITE(",\""),
/*32*/ WRITE(BEZEICHNUNG),
/*33*/ WRITE("\")."),
/*34*/ CLOSEFILE(TEST),!.
/*35*/ NEWFRAME(PAR-NAME,-,-,-) IF
/*36*/ NL, WRITE("\NERROR - ",PAR-NAME,"EXISTIERT NICHT."),
NL.
Die Regel
NEWFRAME(F-NAME,PAR-NAME,ANZAHL,BEZEICHNUNG)
erlaubt uns, neue Frames der Datenbasis hinzufügen. Sie verifiziert zuerst
(Zeile 13 bis 15), daß der Frame noch nicht existiert. Die zweite
"newframe" Klausel (Zeile 16 bis 34) überprüft zuerst, ob der Eltern-Frame
existiert und erhöht dann die Frame-Ebene. Mit dieser Information wird
dann der neue Frame zur Datenbasis zugefügt. Die letzte "newframe"
Klausel (Zeile 34 bis 35) wird nur aufgerufen, wenn der Eltern-Frame nicht
existiert. In diesem Fall kommt es zu einer Fehlermeldung.
Die folgenden Aufrufe veranschaulichen die Verwendung der "newframe"
Klausel:
NEWFRAME(8,0,2,"VERLAGSLEITUNG").
NEWFRAME(15,8,4,"VERTRIEB").
NEWFRAME(6,15,6,"MARKETING").
Die erste Anweisung erzeugt einen Frame namens "VERLAGSLEITUNG".
Dieser Frame ist der Frame der obersten Ebene; der Name des ElternFrames ist "0".
Dr. Jamel Tazarki
93
book.statistics@web.de
Die beiden folgenden Klauseln dienen der weiteren Bearbeitung aller
Frames. Die erste initialisiert die Wissensbasis, die zweite gibt die aktuelle
Struktur aus:
/*37*/ init if retract(frame(-,-,-,-,-)), fail.
/*38*/ init if consult("f-dat.dat"),
/*39*/ assertz(frame(0,0,0,0,"Die Spitze der Frame Hierarchie")).
Die "init"-Klausel (Zeile 37) entfernt die alten Frames und fügt (Zeile 39)
einen besonderen Frame ein, der die Spitze der Frame -Hierarchie darstellt.
Alle anderen Frames sind direkt oder indirekt mit diesem Frame verbunden.
Das "fail" Prädikat (Zeile 37) in der ersten "init" Klausel führt dazu, daß
die nächste "init"-Klausel ausgeführt wird.
Slots:
Die "slot"-Klausel ist eine Stuktur, die verschiedene Argumente hat, wie
z.B. den Frame-Namen, den Slot-Namen, den Slot-Wert und die
Bezeichnung des Slots. In diesem Beispiel gibt es zwei Typen von Slots
"Khd" und "Ht" : Konkrete Handlung und Handlungstyp.
Beispiel: slot(0,3,"Khd",1,36,2,1,4,"ANZEIGEN_PLANEN"). Dieser Slot
entspricht der Handlung, die mit der Zahl 3 codiert wurde, und die zur
Abteilung (Frame) mit dem Code 0 (Anzeigen) gehört. Diese Handlung der
Gruppe Anzeigen wird von dem Mitglied mit dem Code 2 durchgeführt. Die
Abteilung Anzeigen (das Frame mit dem Code 0) hat 36 verschiedenen
Handlungen (1 bis 36) und besteht aus 4 Mitgliedern (1 bis 4).
/* FRAME(F-NAME,PAR-NAME,STUFE,ANZAHL,BEZEICHNUNG). */
FRAME(INTEGER,INTEGER,INTEGER,INTEGER,SYMBOL).
/* SLOT(F-NAME,S-NAME,S-TYPE,S-UP-VAL,S-LOWVAL,AUSFÜHRER,A-UP-VAL,A-LOW-VAL,BEZEICHNER)
*/
SLOT(INTEGER,INTEGER,STRING,INTEGER,INTEGER,INTEGER,IN
TEGER,INTEGER,STRING).
INIT-SLOT IF RETRACT(SLOT(-,-,-,-,-,-,-,-,-)), FAIL.
INIT-SLOT IF
WRITE("DATENBASIS-NUMMER :"),
READINT(S), DATEI(S,R), CONSULT(R),!, SLOT(-,-,-,-,-,-,-,-,-), FAIL.
NEU IF
Dr. Jamel Tazarki
94
book.statistics@web.de
NL,WRITE("F-NAME GEBEN : "), NL, READINT(F-NAME), NL,
WRITE("S-NAME GEBEN "), NL, READINT(S-NAME), NL, NL,
WRITE("S-TYPE GEBEN "),
NL, READLN(S-TYPE), NL, NL, WRITE("GEBEN S-UP-VAL "),
NL, READINT(S-UP-VAL), NL,
NL, WRITE("GEBEN S-LOW-VAL "), NL, READINT(S-LOW-VAL),
NL, WRITE("AUSFUEHRER "),
NL,READINT(AUSFUEHRER), NL, WRITE("A-UP-VAL"), NL,
READINT(A-UP-VAL), NL, WRITE("A-LOW-VAL"),
NL, READINT(A-LOW-VAL), WRITE("BEZEICHNER"), NL,
READLN(BEZEICHNER),
NEW-SLOT(F-NAME,S-NAME,S-TYPE,S-UP-VAL,S-LOWVAL,AUSFUEHRER,A- UP-VAL,A-LOW-VAL,BEZEICHNER).
NEW-SLOT(F-NAME,S-NAME,-,-,-,-,AUSFUEHRER,-,-) IF DATEI(FNAME,R), CONSULT(R),
SLOT(F-NAME,S-NAME,-,-,-,AUSFUEHRER,-,-,-), WRITE("\ERROR SLOT:",S-NAME, "EXISTIERT BEREITS IM FRAME:",F-NAME),
ETRACTALL(SLOT(-,-,-,-,-,-,-,-,-)),!.
NEW-SLOT(F-NAME,S-NAME,S-TYPE,S-UP-VAL,S-LOWVAL,AUSFÜHRER,A-UP-VAL,A-LOW-VAL,BEZEICHNER) IF
DATEI(F-NAME,R), CONSULT("F-DAT.DAT"), FRAME(F-NAME,-,-,,-),!, LOESCHE, SLOT-TYPE(S-TYPE),
ASSERTZ(SLOT(F-NAME,S-NAME,S-TYPE,S-UP-VAL,S-LOWVAL,AUSFÜHRER,A-UP-VAL,A-LOW-VAL,BEZEICHNER)),
DATEI(F-NAME,R), OPENAPPEND(TEST1,R),
WRITEDEVICE(TEST1), NL, WRITE("SLOT("), WRITE(F-NAME),
WRITE(","), WRITE(S-NAME), WRITE(","), WRITE(S-TYPE),
WRITE(","), WRITE(S-UP-VAL), WRITE(","),
WRITE(S-LOW-VAL), WRITE(","), WRITE(AUSFÜHRER),
WRITE(","), WRITE(A-UP-VAL), WRITE(","), WRITE(A-LOW-VAL),
WRITE(","), WRITE(BEZEICHNER), WRITE(")."),
CLOSEFILE(TEST1),!.
NEW-SLOT(F-NAME,-,-,-,-,-,-,-,-) IF WRITE("\ERROR - FRAME",FNAME,"EXISTIERT NICHT").
NEW-SLOT(-,-,-,-,-,-,-,-,-) IF LOESCHE. SLOT-TYPE(S-TYPE) IF
MEMBER(S-TYPE,[HT,KHD]).
SLOT-LOESCHEN IF NL, WRITE("F-NAME GEBEN : "), NL,
READINT(F-NAME), NL,
Dr. Jamel Tazarki
95
book.statistics@web.de
WRITE("S-NAME GEBEN "), NL, READINT(S-NAME), NL, NL,
WRITE("S-TYP GEBEN "), NL,
READLN(S-TYP), NL, NL, WRITE("AUSFUEHRER "), NL,
READINT(AUSFUEHRER), NL, NL,
DATEI(F-NAME,R), RETRACTALL(SLOT(-,-,-,-,-,-,-,-,-)),
RETRACTALL(FRAME(-,-,-,-,-)), CONSULT(R),
SLOT(F-NAME,S-NAME,S-TYP,-,-,AUSFUEHRER,-,-,-), SLOTLOESCHEN1(S-TYP,F-NAME,S-NAME,AUSFUEHRER),!.
SLOT-LOESCHEN IF WRITE("ERROR -FRAME ODER SLOT
EXISTIERT NICHT."), READCHAR(-).
SLOT-LOESCHEN1("KHD",F-NAME,S-NAME,AUSFUEHRER) IF
RETRACT(SLOT(F-NAME,S-NAME,"KHD",-,,AUSFUEHRER,-,-,-)), DATEI(F-NAME,R), SAVE(R), NL,
WRITE("SLOT WURDE VON DER DATENBASIS
GELOESCHT"), READCHAR(-), !.
SLOT-LOESCHEN1(HT,F-NAME,S-NAME,-) IF RETRACT(SLOT(FNAME,S-NAME,HT,-,-,-,-,-,-)), DATEI(F-NAME,R),
SAVE(R), NL. MEMBER(X,[X|-]). MEMBER(X,[-|Y]) IF
MEMBER(X,Y). GET1 IF NL, WRITE("F-NAME: "),
NL, READINT(F-NAME), NL, WRITE("S-NAME: "), NL,
READINT(S-NAME), NL, WRITE("AUSFUEHRER: "), NL,
READINT(AUSFUEHRER), NL, GET-SLOT(F-NAME,SNAME,AUSFUEHRER).
GET-SLOT(F-NAME,S-NAME,AUSFUEHRER) IF LOESCHE,
DATEI(F-NAME,R), CONSULT(R),
SLOT(F-NAME,S-NAME,S-TYPE,S-UP-VAL,S-LOWVAL,AUSFUEHRER,
A-UP-VAL,A-LOW-VAL,BEZEICHNER), NL, WRITE("SLOT("),
WRITE(F-NAME), WRITE(","), WRITE(SNAME),WRITE(","),WRITE(S-TYPE), WRITE(","), WRITE(S-UPVAL),WRITE(","), WRITE(S-LOW-VAL), WRITE(","),
WRITE(AUSFUEHRER), WRITE(","), WRITE(A-UP-VAL), WRITE(","),
WRITE(A-LOW-VAL),
WRITE(","), WRITE(BEZEICHNER), WRITE(")."), READCHAR(-),
NL,!.
GET-SLOT(-,-,-) IF WRITE("\SLOT EXISITIERT NICHT"), NL,
READCHAR(-).
Dr. Jamel Tazarki
96
book.statistics@web.de
Anhang II
/* Simulation.pro */
slot(integer,integer,string,integer,integer,integer,integer,integer,string).
predicates
fenster.
menu(symbol).
taste(symbol).
schleife.
wahl.
f15(integer,symbol).
repeat.
rand1(integer,real,real).
simulation.
datei(integer,symbol).
fichier(integer,symbol).
lese(integer,integer,integer,symbol).
repeat1(file).
goal fenster, schleife.
clauses
schleife if wahl, schleife; schleife.
wahl if taste(X), menu(X).
fenster if
makewindow(1,14,9,"Simulation",0,0,25,80),
makewindow(2,14,1,"menu",13,20,11,40),
shiftwindow(2),
write("s=Simulation"),nl,
write("x=Programm verlassen"), nl,
write("Bitte w"hlen Sie ").
menu(Z) if Z='s', nl, simulation.
menu(Z) if Z='x', nl, write("Programm verlassen"), exit.
taste(Z) if shiftwindow(2), readchar(Z), shiftwindow(1).
repeat.
repeat if repeat.
simulation if nl, write("Geben Sie die Zeitspanne "), nl,
readreal(HH), nl, time(H1,M1,S1,_),!, repeat,
random(25,I1), rand1(I1,I2,I3), datei(I1,R), lese(I1,I2,I3,R),
fichier(I1,R1), openappend(test,R1), writedevice(test),
nl, write("hand("), write(I1), write(","), write(I2), write(","),
write(I3), write(")."), closefile(test), time(H2,M2,S2,MS2),
Dr. Jamel Tazarki
97
book.statistics@web.de
cursor(17,4), write("Startzeit = "), write(H1), write("."),
write(M1), write("."), write(S1), nl, cursor(18,4), write("actuelle Zeit = "),
write(H2), write("."), write(M2), write("."), write(S2), write("."),
write(MS2), nl, cursor(19,4), write("Angegebene Zeitspanne= "),
write(HH), nl, X=M2 - M1, X>HH,!.
lese(I1,I2,I3,R) if closefile(test1), openread(test1,R),!, readdevice(test1),
repeat1(test1),
readterm(record,slot(F_name,S_name,_,_,_,Ausfuehrer,_,_,_)),
F_name=I1, S_name=I2, I3=Ausfuehrer,!.
rand1(0,Z2,Z3) if random(36,Z2), random(4,Z4), Z3=Z4+1, !.
rand1(1,Z2,Z3) if random(53,Z2), random(2,Z4), Z3=Z4+1, !.
rand1(2,Z2,Z3) if random(19,Z2), random(2,Z4), Z3=Z4+1, !.
rand1(3,Z2,Z3) if random(37,Z2), random(4,Z4), Z3=Z4+1, !.
rand1(4,Z2,Z3) if random(21,Z2), random(4,Z4), Z3=Z4+1, !.
rand1(5,Z2,Z3) if random(55,Z2), random(11,Z4), Z3=Z4+1, !.
rand1(6,Z2,Z3) if random(48,Z2), random(9,Z4), Z3=Z4+1, !.
rand1(7,Z2,Z3) if random(8,Z2), random(2,Z4), Z3=Z4+1, !.
rand1(8,Z2,Z3) if random(62,Z2), random(4,Z4), Z3=Z4+1, !.
rand1(9,Z2,Z3) if random(16,Z2), random(2,Z4), Z3=Z4+1, !.
rand1(10,Z2,Z3) if random(70,Z2), random(4,Z4), Z3=Z4+1, !.
rand1(11,Z2,Z3) if random(28,Z2), random(2,Z4), Z3=Z4+1, !.
rand1(12,Z2,Z3) if random(36,Z2), random(4,Z4), Z3=Z4+1, !.
rand1(13,Z2,Z3) if random(47,Z2), random(4,Z4), Z3=Z4+1, !.
rand1(14,Z2,Z3) if random(42,Z2), random(5,Z4), Z3=Z4+1, !.
rand1(15,Z2,Z3) if random(44,Z2), random(3,Z4), Z3=Z4+1, !.
rand1(16,Z2,Z3) if random(31,Z2), random(3,Z4), Z3=Z4+1, !.
rand1(17,Z2,Z3) if random(48,Z2), random(7,Z4), Z3=Z4+1, !.
rand1(18,Z2,Z3) if random(33,Z2), random(5,Z4), Z3=Z4+1, !.
rand1(19,Z2,Z3) if random(34,Z2), random(5,Z4), Z3=Z4+1, !.
rand1(20,Z2,Z3) if random(16,Z2), Z3=1, !.
rand1(21,Z2,Z3) if random(21,Z2), random(2,Z4), Z3=Z4+1, !.
rand1(22,Z2,Z3) if random(33,Z2), random(4,Z4), Z3=Z4+1, !.
rand1(23,Z2,Z3) if random(40,Z2), random(3,Z4), Z3=Z4+1, !.
rand1(24,Z2,Z3) if random(74,Z2), random(7,Z4), Z3=Z4+1, !.
fichier(0,"rea_0.dat") if !. fichier(1,"rea_1.dat") if !.
fichier(2,"rea_2.dat") if !. fichier(3,"rea_3.dat") if !.
fichier(4,"rea_4.dat") if !. fichier(5,"rea_5.dat") if !.
fichier(6,"rea_6.dat") if !. fichier(7,"rea_7.dat") if !.
fichier(8,"rea_8.dat") if !. fichier(9,"rea_9.dat") if !.
Dr. Jamel Tazarki
98
book.statistics@web.de
Literaturverzeichnis
Acham, Karl, Hrsg. (1978): Methodologische Probleme der
Sozialwissenschaften, Darmstadt (Wissenschaftliche Buchgesellschaft) 1978
(=Wege der Forschung, Band 435)
Alker, Hayward R. (1977): Computer-Simulationen: Unelegante
Mathematik und noch schlechtere Sozialwissenschaft, in: Schmutzer 1977,
S. 115-142
Balzer, Wolfgang (1976): Ho1ismus und Theoriebeladenheit der
Beobachtungssprache (Ein Beispiel), in: Erkenntnis 10 (1976), S. 337-348
Balzer, Wolfgang (1982): Empirische Theorien: Modelle - Strukturen
Beispiele, Braunschweig (Vieweg) 1982
(= Wissenschaftstheories,
Wissenschaft und Philosophie, Bd. 20)
Balzer, Wolfgang, Heide Göttner (1983): Eine logisch rekonstruierte
Literaturtheorie: Roman Jakobson, in: Balzer/Heidelberger 1983, S. 304331
Balzer, Wolfgang, Michael Heidelberger, Hrsg. (1983): Zur Logik
empirischer Theorien, Berlin/New York (de Gruyter) 1983
Balzer, Wolfgang, Soziale Institutionen, Berlin/New York (de Gruyter)
1993
Bartholomew, David J. (1973): Stochastic Models for Social Processes,
Chichester/New York/Brisbane/Toronto (Wiley) 2nd edition 1973
Bartholomew, David J. (1981): Mathematical Methods in Social Science,
Chichester/New-York/Brisbane/Toronto (Wiley) 1981 (= Handbook of
Applicable Mathematics Vol. 1)
Boudon, Raymond (1973): Mathematische Modelle und Methoden,
Frankfurt/Berlin/Wien (Ullstein) 1973
Cobb, Loren (1981): Stochastic Differential Equations for the Social
Sciences, in: Cobb/Thrall 1981
Dr. Jamel Tazarki
99
book.statistics@web.de
Cobb, Loren, Robert M. Thrall, eds. (1981): Mathematical Frontiers of the
Social and Policy Sciences, Boulder, Col. (Westview) 1981 (=American
Association for the Advancement of Science Selected Symposia Series 54)
Coleman, James S. (1964): Introduction to Mathematical Sociology, Nexv
York (Free Press) 1964
Costner, Herbert L., ed. (1971): Sociological Methodology 1971, San
Francisco/Washington/London (Jossey Bass) 1971
Craemer, Diether (1985): Mathematisches Modellieren dynamischer
Vorgänge. Eine Einführung in die Programmiersprache DYNAMO,
Stuttgart (Teubner) 1985
Diekmann, Andreas (1980): Dynamische Modelle sozialer Prozesse.
Theoretische Ansätze zur Erklarung krimineller Prozesse und Möglichkeiten
ihrer Formalisierung, Munchen/Wien (Oldenbourg) 1980
Diekmann, Andreas, Peter Mitter, Hrsg. (1984): Stochastic modeling of
social processes, Orlando (Academic Press) 1984
Dilthey, Wilhelm (1883): Einleitung in die Geisteswissenschaften. Versuch
einer Grundlegung fur das Studium der Gesellschaft und der Geschichte,
Stuttgart/Gottingen (Teubner/Vandenhoeck Ruprecht) 4. AufL 1959 (urspr.
1883) (= Gesammelte Schriften 1)
Dilthey, Wilhelm (1895/1896): Beiträge zum Studium der Individualitat, in:
Dilthey 1957, S. 241-316
Dörner, Dietrich (1984): Modellbildung und Simulation, in: Roth 1984, S.
337-350
Doreian, Patrick, Norman P. Hummon (1976): Modeling Social Processes,
New York/Oxford/Amsterdam (Elsevier) 1976
(= Progress in
Mathematical Social Sciences, vol. 8)
Drepper, F. (1987): Analyse Chaotischer Dynamik: Ein Makroskop für
Vielkomponentensysteme,
in:
Jahresbericht
1986/87
der
Kernforschungsanlage Jülich GmbH, S. 37-47
Dr. Jamel Tazarki
100
book.statistics@web.de
Erdmann, Georg (1986b): Modellierung der Entstehung und Veränderung
von Ordnungsstrukturen, Zürich (Institut für Wirtschaftsforschung der ETH
Zürich) 1986 (= Arbeitspapiere Nr. 86/67)
Erdmann, Georg (1986c): Ansätze zur Abbildung sozialer Systeme mittels
nicht-linearer dynamischer Modelle, Mannheim (ZUMA) 1986 (=ZUMAArbeitsbericht Nr. 86/07)
Forrester, Jay W. (1968): Principles of Systems, Cambridge, Mass./London
(MIT Press) 1968, 2nd preliminary edition 1980
Freudenthal, Hans, ed. (1961): The concept and the role of the model in
mathematics and natural and social sciences. Proceedings of the colloquium
sponsored by the division of philosophy of sciences of the international
union of history and philosophy of sciences organized at Utrecht, January
1960, Dordrecht/Boston (Reidel) 1961 (= Synthese Library, vol. 3)
Friedrichs, Jürgen (1973): Methoden empirischer Sozialforschung, Reinbek
(Rowohlt) 1973
Gigerenzer, Gerd (1981): Messung und Modellbildung in der Psychologie,
München/Basel (Reinhardt) 1981
Göldner, Klaus (1983): Mathematische Grundlagen der Systemanalyse.
Band 2: Ausgewählte moderne Verfahren, Thun/Frankfurt (Harri Deutsch)
1983
Gottman, John M. (1981): Time Series Analysis. A Comprehensive
Introduction for Social Scientists, Cambridge/London/New-York/NewRochelle/Melbourne/Sydney (Cambridge University Press) 1981
Greenberger, Martin, Matthew A. Crenson, Brian L. Crissey (1976): Models
in the Policy Process. Public Decision Making in the Computer Era, New
York (Russell Sage Foundation) 1976
Grünbaum, Adolf (1962a): Explanation and Prediction Are Symmetrical, in:
Krimerman 1969 (Auszug aus Grünbaum 1962b)
Dr. Jamel Tazarki
101
book.statistics@web.de
Guetzkow, Harold, ed. (1962): Simulation in Social Science: Readings,
Englewood Cliffs (Prentice Hall) 1962
Harbordt, Steffen (1974): Computersimulation in den Sozialwissenschaften.
1: Einführung und Anleitung, 2: Beurteilung und Modellbeispiele, Reinbek
(Rowohlt) 1974
Hayek, Friedrich A. von (1942): Scientism and the Study of Society, in:
Economica 9 (1942), pp.267-291; 10 (1943), pp. 34-63; 11 (1944), pp. 2739
Hempel, Carl G. (1977): Aspekte wissenschaftlicher Erklärung, Berlin/New
York (de Gruyter) 1977
Hempel, Carl G., Paul Oppenheim (1948): The Logic of Explanation, in:
Feigl/Brodbeck 1953, pp. 319-352 (reprinted from: Philosophy of Science
15 (1948), pp. 135-175)
Henize, John (1984): Critical Issues in Evaluating Socio-Economic Models,
in: Ören/Zeigler/Elzas 1984, pp. 557-590
Jarvie, Ian C. (1978): Verstehen und Erklären in Soziologie und
Sozialanthropologie. in: Acham 1978, S. 224-252
Kammler, Hans (1976): Logik der Politikwissenschaft, Wiesbaden
(Akademische Verlagsgesellschaft) 1976
(= Systematische
Politikwissenschaft Bd. 1)
Koolwijk, Jürgen van, Maria Wieken-Mayser, Hrsg. (1976): Techniken der
empirischen Sozialforschung. Band 5: Testen und Messen, München
(Oldenbourg) 1976
Kreutzer, Wolfgang (1986): System simulation. Programming Styles and
Languages. Sydney (Addison-Wesley) 1986
Krimerman, Leonard I., ed. (1969): The Nature and Scope of Social
Science. A Critical Anthology, New York (Appleton-Century-Crofts) l9G9
Kuhn, Thomas S. (1979): Die Struktur wissenschaftlicher Revolutionen,
Frankfurt (Suhrkamp) 4. Aufl. 1979
Dr. Jamel Tazarki
102
book.statistics@web.de
Lakatos.
Imre
(1974):
Falsifikation und
die
Methodologie
wissenschaftlicher Forschungsprogramme) in: Lakatos/Musgrave 1974, S.
89-189
Lakatos, Imre (19S2a): Die Methodologie der wissenschaftlichen
Forschungsprogramme. Braunschweig/Wiesbaden (Vieweg) 1982 (= Imre
Lakatos: Philosophische Schriften, Band 1)
Lakatos, Imre (1982b): Mathematik, empirische Wissenschaft und
Erkenntnistheorie, Braunschweig/Wiesbaden (Vieweg) 1982 (= Imre
Lakatos: Philosophische Schriften, Band 2)
Lakatos, Imre, Alan Musgrave, Hrsg. (1974): Kritik und Erkenntnis
fortschritt, Braunschweig (Vieweg) 1974
(= Wissenschaftstheorie,
Wissenschaft und Philosophie, Bd.9)
Land, Kenneth C. (1971): Formal Theories, in: Costner 1971, pp. 175-220
Mayntz, Renate, Hrsg. (1967): Formalisierte Modelle in der Soziologie,
Neuwied (Luchterhand) 1967 (= Soziologische Texte 39)
McCleary, Richard, Richard A. Hay Jr. (1980): Applied Time Series
Analysis for the Social Sciences, Beverly Hill/London (Sage) 1980
Müller, P. Heinz, Hrsg. (1975): Lexikon der Stochastik. Darmstadt
(Wissenschaftliche Buchgesellschaft) 2. Aufl. 1975
Neurath, Maria, Robert S. Cohen, eds. (1973): Empiricism and Sociology,
Dordrecht (Reidel) 1973 (= Vienna Circle Collection 1)
Neurath, Otto (1931): Empirical Sociology. The Scientific Content of
History and Political Economy, in: Neurath/Cohen 1973, pp. 319-421
(urspr. deutsch unter dem Titel Empirische Soziologie. Der
wissenschaftliche Gehalt der Geschichte und Nationalökonomie, Wien
(Springer) 1931)
Nicolis, John S. (1986): Dynamics of Hierarchical Systems. An
Evolutionary Approach, Berlin/Heidelberg/New York/Tokyo (Springer)
1986 (=Springer Series in Synergetics, vol. 25)
Dr. Jamel Tazarki
103
book.statistics@web.de
Orcutt, Guy H. (1986): Views on microanalytic simulation modeling, in:
Orcutt/Merz/Quinke 1986, pp. 9-26
Orcutt, Guy H., Joachim Merz, Hermann Quinke, eds. (1986):
Microanalytic simulation models to support social and financial policy,
Amsterdam/New York/Oxford (North Holland) 1986 (= Information
Research and Resource Reports, vol. 7)
Öhren, Tuncer I., Bernard P. Zeigler, Maurice S. Elzas, eds. (1984):
Simulation and Model-Based Methodologies: An Integrative View,
Berlin/Heidelberg/New-York/Tokyo (Springer) 1984 (= NATO Advanced
Science Institutes Series, Series F: Computer and Systems Science, vol. 10)
Popper, Karl R. (1971): Logik der Forschung, Tübingen (J.C.B. Mohr- Paul
Siebeck) 4. Aufl. 1971 (= Einheit der Gesellschaftswissenschaften, Bd. 4)
Rand, David A., Lai-Sang Young, eds. (1981): Dynamical Systems and
Turbulence, Warwick 1980. Proceedings of a Symposium Held at the
University of Warwick 1979/80, Berlin/Heidelberg/New York (Springer)
1981
Rapoport, Anatol (1980): Mathematische Methoden
Sozialwissenschaften, Würzburg/Wien (physica) 1980
in
den
Rapoport, Anatol (1984): Stochastic Model Building in the Social Sciences,
in: Diekmann/Mitter 1984, pp. 7-37
Rescher, Nicolas (1963): Discrete State Systems, Marcov Chains, and
Problems in the Theory of Scientific Explanation and Prediction, in:
Philosophy of Science 30 (1963), pp. 325-345
Roth, Erwin, Hrsg. (1984): Sozialwissenschaftliche Methoden. Lehr- und
Handbuch für Forschung und Praxis. München/Wien (Oldenbourg) 1984
Schmutzer, Manfred E. A., Hrsg. (1977): Mathematische Methoden in der
Politikwissenschaft, München/Wien (Oldenbourg) 1977
Dr. Jamel Tazarki
104
book.statistics@web.de
Schütz, Alfred (1953): Begriffs- und Theoriebildung in den
Sozialwissenschaften, in: Schütz 1971, S. 55-76 (Vortrag aus dem Jahr
1953, zuerst in: Journal of Philosophy 51 (1954), pp. 257-273)
Schütz, Alfred (1971): Gesammelte Aufsätze I: Das Problem der sozialen
Wirklichkeit. Den Haag (Nijhoff) 1971
Schuster, Heinz Georg (1984): Deterministic Chaos. An Introduction,
Weinheim (Physik-Verlag) 1984
Simon, Herbert A. (1952): Eine formale Theorie der Interaktion in sozialen
Gruppen. in: Mayntz 1967, S. 55-72 (im Original: A Formal Theory of
Interaction in Social Groups, in: American Sociological Review 17 (1952),
pp. 202-211; auch in: Simon 1957, pp. 99-114)
Simon, Herbert A. (1957): Models of Man, Social and Rational.
Mathematical Essays on Rational Human Behavior in a Social Setting, New
York (Wiley) 1957
Stachowiak, Herbert (1973): Allgemeine Modelltheorie, Wien/New York
(Springer) 1973
Stegmüller, Wolfgang (1969): Probleme und Resultate der
Wissenschaftstheorie
und
Analytischen
Philosophie.
Band
I:
Wissenschaftliche Erklärung und Begründung, Berlin/Heidelberg/New York
(Springer) 1969, verbesserter Nachdruck 1974, 2. Aufl. 1983
Stegmüller, Wolfgang (1973a): Probleme und Resultate der
Wissenschaftstheorie und Analytischen Philosophie. Band II: Theorie und
Erfahrung, Zweiter Teilband: Theorienstruktur und Theoriendynamik,
Berlin/Heidelberg/New York (Springer) 1973, 2. korr. Aufl. 1985
Stegmüller, Wolfgang (1973b): Probleme und Resultate der
Wissenschaftstheorie und Analytischen Philosophie. Band IV: Personelle
und Statistische Wahrscheinlichkeit, Erster Halbband: Personelle
Wahrscheinlichkeit und Rationale Entscheidung, Berlin/Heidelberg/New
York (Springer) 1973
Stegmüller, Wolfgang (1976): The Structure and Dynamics of Theories,
Berlin/Heidelberg/New York (Springer) 1976
Autor
2   documents E-mail
Document
Kategorie
Wissenschaft
Seitenansichten
10 671
Dateigröße
907 KB
Tags
intelligenz
1/--Seiten
melden