Stochastik - Ihre Homepage bei Arcor

Werbung
Stochastische
Prozesse
Betriebswirtschaftliche
Fragestellungen
(Pseudo-)Zufallszahlen
Markov Prozeß
Warteschlangen M/M/1-Prozeß
Simulation
Objektorientierte Programmierung
Prof. Dr. Dr. J. Hansohm
Marktanteilsentwicklung
5 Waschmittelmarken Ariel, Dash, Persil,
Omo, Tandil
anfangs gleicher Marktanteil von 20 %
nächste Periode kaufen 60 % Ariel-Kunden
wieder Ariel und jeweils 10 % Dash, Persil,
Omo und Tandil
Dash-Käufer entsprechend 10%, 50%, 20%, 10%, 10%
Persil-Käufer entsprechend 10%, 10%, 70%, 5%, 5%
Omo-Käufer entsprechend 10%, 10%, 0%, 40%, 40%
Tandil-Käufer entsprechend 15%, 15%, 15%, 15%, 40%
Wie entwickeln sich die Marktanteile?
Prof. Dr. Dr. J. Hansohm
Instandhaltungsplanung
2 Maschinen M1, M2 technisch voneinander
unabhängig
Wartung von einer einzelnen Person bei zufälliger
Störung
M1 hat Vorrang vor M2 bei der Behebung von
Störfällen
Störanfälligkeit von M1 von 2,5 % für die nächste Minute
Störanfälligkeit von M2 von 5 % für die nächste Minute
Behebung der Störung mit 20 %
Wahrscheinlichkeit in der nächsten Minute
Wieviel % der Gesamtzeit laufen beide
Maschinen?
Prof. Dr. Dr. J. Hansohm
Lagerhaltung
Nachfrage nach einem Gut N (100, 30) - verteilt
Lieferzeit 5 Tage, Auffüllung sofort wirksam
Fehlmengen werden nachgeliefert
Fehlmengenkosten 1 GE pro Tag (=ZE) und ME
Lagerkosten
0,1 GE pro Tag und ME
Bestellkosten
20 GE unabhängig von der
Menge
Welches ist die optimale (s, S)-Politik?
Prof. Dr. Dr. J. Hansohm
Personaleinsatz
18 Kfz-Mechaniker in einer Autowerkstatt
zur Reparatur von Kundenwagen
ca. alle 30 min benötigt ein Mechaniker ein
Ersatzteil
Abfertigung bei der Materialausgabe dauert
ca. 5 min
Wieviel Beschäftigte sollten in der
Materialausgabe eingesetzt werden?
Prof. Dr. Dr. J. Hansohm
Abfertigung
Autobahntankstelle mit 4
Universalzapfsäulen
Fahrzeuge, die warten müssen, stehen auf
einer Wartefahrbahn vor den Zapfsäulen.
Wie groß ist die durchschnittliche
(maximale) Warteschlange?
Wie viel trägt die Abfertigungsdauer zur
Warteschlange bei?
Prof. Dr. Dr. J. Hansohm
Zufallszahlen

Zufallszahlen aus dem Intervall (0, 1)
gleichverteilt

Andere Verteilung durch Transformation

Generierung von (0, 1)-gleichverteilten
"Zufallszahlen" durch Pseudozufallszahlen
mittels algorithmischer Berechnung

Generierung von (0, 1)-gleichverteilten echten
Zufallszahlen durch spezielle Hardware
Prof. Dr. Dr. J. Hansohm
Pseudozufallszahlen
4 letzten Ziffern der internen Uhr geteilt
durch 10000
 Midsquare (John v. Neumann)
4-ziffrige Zahl quadrieren, die mittleren 4
Ziffern nehmen (und durch 10000 teilen)
z.B. 3917
3428
7511
4151
2308
 multiplikative Kongruenzmethode
yi+1 = a · yi mod m
(i-te Zufallszahl yi/m)
z.B. a=7, m=10000, yo=3917:
7419
1933
3531

Prof. Dr. Dr. J. Hansohm
Pseudo- und echte Zufallszahlen

Genauigkeit ist beschränkt
z.B. 0,31253 wird nie realisiert

Werden alle Möglichkeiten getroffen?

Wann wiederholt sich die Reihe?

Ist die Verteilung annähernd gleich?

Sind aufeinanderfolgende Zahlen
regellos?
Prof. Dr. Dr. J. Hansohm
Zufallszahlentests

Pokertest

Run-Test

Chi-Quadrat-Test

Kovarianzen

graphisches Bild
Prof. Dr. Dr. J. Hansohm
Chi-Quadrat Test
Bilde u Zufallszahlen
1 1
2
0  x  ,  x  ,...
r r
r
 Bilde r gleiche Teilbereiche
 Zähle, wie viel Zufallszahlen in dem r-ten
Teilbereich liegen. Diese Zahl sei gleich uk
 Bilde Testwert

2
u

uk  

r 
r
v 
asymptotisch  2 r  1
u
k 1
r
u
(möglichst r  5,  5, u  30. Fraktil der  2  verteilung
r
2
1
annä hernd ~
x  2u  1 mit ~
x Fraktil der N(0,1)  verteilung)
2


Prof. Dr. Dr. J. Hansohm
Zahlentheorie
m  p1e1 p2e2 ... pkek
 
l pe
Pr imzahlzerlegung
2 e1 für p  2, e  1 oder e  2
 e2
 2
für p  2, e  2
( p  1) p e1 sonst

    
l (m)  kgV l p1e1 ,..., l pkek
Prof. Dr. Dr. J. Hansohm
Periodenlänge-multiplikative Kongruenzmethode
Sei yo und m teilerfremd und die kleinste natürliche Zahl s
mit as = 1 mod m ist gleich l(m), dann ist auch die
Periodenlänge der Kongruenzmethode gleich lm)
z.B. a = 3 mod 8 (5 mod 8), m = 2e (e 3): yO = 1 mod 4
(3 mod 4): alle Zahlen 4k + 1 (4k + 3)
werden getroffen
z.B. m = 231 - 1 Primzahl, a  0 mod m: alle Zahlen 1, ...,
m-1 werden getroffen
Prof. Dr. Dr. J. Hansohm
Erzeugung nicht gleichverteilter Zufallszahlen
Sei u eine (0,1)-gleichverteilte Zufallszahl
 z = (b-a) · u + a ist (a, b)-gleichverteilt
 z = Trunc (r · u) + 1 ganzzahlig gleichverteilt
zwischen 1 und r
 z = F-1(u) ist F-verteilt
für stetiges F und berechenbares F-1
z.B.
mit F(x) =
1-exp (-lx) für x 0,
0
sonst
ist z = -(1/l)ln(u) exponentialverteilt
{
Prof. Dr. Dr. J. Hansohm
Multiplikaltive Kongruenzmethode als ASM-Rout.
//multi_y *= multi_a;
//multi_y = multi_y&32767;
#ifndef WIN32
__asm
{
mov ax,multi_y
;//multi_y in den Akkumulator
mul multi_a
;//multipliziere mit multi_a
and ax,7FFFh
;//setze höchstes Bit auf 0
mov multi_y,ax
;//schreibe Akkumulator auf multi_y
}
return multi_y;
#endif
Prof. Dr. Dr. J. Hansohm
Modulo 2^31-1 Berechnung als ASM-Rout.
//multi_y *= multi_a;
//addiere Rest + Multiplikator
//wenn > 2^31-1 dann ziehe 2^31-1 ab
#ifdef WIN32
__asm
{
mov eax,multi_y
;//multi_y in den Akkumulator
mul multi_a
;//multipliziere mit multi_a
shld edx,eax,1 ;//schiebe edx nach links und fülle mit höchstem Bit von eax auf
and eax,7FFFFFFFh ;//lösche höchstes Bit in eax (ist jetzt letztes Bit in edx)
and edx,7FFFFFFFh ;//lösche höchstes Bit in edx
add eax,edx
;//addiere Multiplikator (edx) und mod 2^31 (eax)
jno
WEITER
;//kein Überlauf bei Addition ==> O.K.
add eax,80000001h ;//ziehe 2^31-1 ab
WEITER: mov multi_y,eax ;//schreibe Akkumulator auf multi_y
}
return multi_y;
#endif
Prof. Dr. Dr. J. Hansohm
Zufallszahlen - Verfahren von Elkins
const unsigned int maxpos=32767;
const unsigned int f1=179;
const unsigned int f2=183;
const unsigned int f3=182;
const unsigned int m1=32771;
const unsigned int m2=32779;
const unsigned int m3=32783;
 Periodenlänge über 2 Milliarden
 3 x multiplikative Kongruenzmethode
do {
do {
do start_x=(start_x*f1)%m1;
while (start_x-- > maxpos);
start_y=(start_y*f2)%m2;
}
while (start_y-- > maxpos);
start_z=(start_z*f3)%m3;
}
while (start_z-- > maxpos);
return (start_x+start_y+start_z)&maxpos;
 Zufälligkeit durch Ausnahmeregel
Prof. Dr. Dr. J. Hansohm
Verwerfungsmethode
Sei f Dichtefunktion einer stetigen Verteilung mit
f(0) f(y) M für y (a,b) und
f(y) = 0 für y  (a, b)
Ausgehend von einer Folge von Paaren (0,1)gleichverteilter Zufallszahlen (x1, x2), (x3, x4), ...
wähle man
z = a + (b-a) x2k-1 falls x2k f (a+(b-a)x2k-1)/M
ansonsten verwerfe man das Paar (x2k-1, x2k)
Die Folge zk der aus den nicht verworfenen Paaren
gebildeten Zufallszahlen ist dann verteilt mit der
gewünschten Dichte f
Prof. Dr. Dr. J. Hansohm
Verwerfungsmethode - Begründung
P(Y1 <= z | Y2 <= f(Y1)) = P(Y1 <= z, Y2 <= f(Y1)) / P(Y2 <= f(Y1)) = F(z)
z
für F(z) = 1/((b - a) M)  f(y) dy
a
und Y1 (a,b)-gleichverteilt, Y2 (0,M)-gleichverteilt
Prof. Dr. Dr. J. Hansohm
Spezialfall - Normalverteilung

ist
so ist
X
N(0,1)-verteilt,
sX + mN(m,s) -verteilt

 ui - 6 annähernd N(0,1)-verteilt nach
i=1
dem zentralen Grenzwertsatz (bei (0,1)-Gleichverteilung
ist m= 1/2, s2 = 1/12)

(Box & Muller)
z1 = -2 ln(u1) sin(2p u2), z2 = -2 ln(u1) cos(2p u2)
12
sind N(0,1)-verteilt und unabhängig, wenn u1, u2
unabhängig
Prof. Dr. Dr. J. Hansohm
Spezialfall - Permutation
u sei(0,1)-gleichverteilt und a1, ...,
an Reihenfolge
i = n, n-1, ..., 1
j = Trunc (i * u) + 1
vertausche aj mit ai
obige Prozedur liefert eine zufällige Permutation
Zufällige Auswahl von k Elementen aus a1, ..., an
durch Permutationsbildung und Wahl der ersten k Elemente
Prof. Dr. Dr. J. Hansohm
Einplanen per zufälliger Reihenfolge
für i=1, ..., n
ermittle Zufallszahl aus [0, 1]
bestimme hieraus eine Permutation
plane in dieser Reihenfolge ein
vergleiche Ergebnis mit dem bisher
besten Ergebnis und speichere es u.U.
Prof. Dr. Dr. J. Hansohm
Stochastische Modelle (1)
Beispiel 1:
Die Waschmittelmarken Ariel, Dash, Persil, Omo, und Tandil teilen sich
den Markt zu jeweils gleichen Teilen (20% Marktanteil). Aus
Haushaltspennals wurde ermittelt, daß 60% der Ariel-Käufer in der
nächsten Periode wieder Ariel kaufen und jeweils 10% die Marke Dash,
Persil, Omo und Tandil. Für die Dash-Käufer lauten die Zahlen 10 %,
50 %, 20%, 10 %, 10 %. Für die Persil-Käufer lauten die Zahlen 10
%,10 %, 70 %, 5 %, 5 %. Für die Omo-Käufer lauten die Zahlen 10 %,
10 %, 0 %, 40 %, 40 % und für die Tandil-Käufer 15 %, 15 %, 15 %, 15
% und 40 %.
Wie entwickelt sich der Marktanteil von Ariel, Dash, Persil, Omo und
Tandil unter den obigen Voraussetzungen bei der zugrundegelegten
Kundschaft?
Prof. Dr. Dr. J. Hansohm
Stochastische Modelle (2)
Beispiel 2:
In einer neuen Fabrikationshalle sollen zwei Maschinen
gleichen Typs mit einer erwarteten Lebensdauer von
jeweils 10 Perioden aufgestellt werden. Die Maschinen
werden dann von einem Mechaniker gewartet, der in einer
Periode genau eine Maschine reparieren kann, die dann in
der nächsten Periode wieder einsatzbereit ist. Das
Management überlegt, ob es sinnvoll ist, eine dritte
Maschine anzuschaffen. Dies wäre dann zu erwägen,
wenn die Wahrscheinlichkeit, daß gar keine dieser beiden
Maschinen in einer Periode einsatzbereit ist, größer als
5 % ist.
Prof. Dr. Dr. J. Hansohm
Transitionsgraphen
Ariel
Dash
2 Maschinen
o.K.
1 Maschine
o.K.
Persil
0 Maschinen
o.K.
Omo
Tandil
Prof. Dr. Dr. J. Hansohm
Definitionen
Ein stochastischer Prozeß S ist eine Folge
von Zufallsvariablen Xt; d.h.
S = {X1, ..., Xt, ...}
Ein stochastischer Prozeß heißt diskret, wenn
T = {1,...}.
Ein diskreter stochastischer Prozeß wird auch
Kette genannt.
Prof. Dr. Dr. J. Hansohm
Markov-Kette
Eine homogene Markov-Kette ist durch die
Angabe der Übergangsmatrix
P = (pij)n,n
mit pij = Wahrscheinlichkeit, daß sich das System
in der nächsten Periode im Zustand zj befindet,
wenn es sich in der jetzigen im Zustand zi befindet,
und der Angabe des "Anfangszustandes"
P(0)T = (p1(0), ..., pn(0))
mit 0 pi(0) 1, Si pi(0) = 1
eindeutig bestimmt.
Prof. Dr. Dr. J. Hansohm
Markow-Kette - Beispiel 1
Ariel
Dash
Persil
Omo
Tandil
P
A
D
P
O
T
0,6
0,1
0,1
0,1
0,15
(0,2
0,1
0,5
0,1
0,1
0,15
0,2
0,41
0,2
0,7
0
0,15
0,2
0,1
0,1
0,05
0,4
0,15
0,2
0,1
0,1
0,05
0,4
0,4
0,2)
Prof. Dr. Dr. J. Hansohm
Markow-Kette - Beispiel 2
Maschinen
o.k.
2
1
0
mit 0 p 
P
2
(1-p)2
1-p
0
(1
1
2p(1-p)
p
1
0
0
p2
0
0
0)
Prof. Dr. Dr. J. Hansohm
Berechnung der nächsten Verteilungen
P P P,P2 P P P P  P
allgemein: P(t+1)T = P(t)T PP(0)T Pt+1
Grenzverteilung
P lim { P(t) | t  }
stationäre Verteilung
PT P= PT

Jede Grenzverteilung ist stationär

Jede stationäre Verteilung ist auch
Grenzverteilung zu ihrer eigenen Startverteilung
Es existiert immer eine stationäre Verteilung

Prof. Dr. Dr. J. Hansohm
Ergodizität (1)
Eine homogene Markow-Kette heißt ergodisch,
wenn es genau eine stationäre Verteilung gibt und
diese Grenzverteilung zu jeder Startverteilung ist.
Berechnung einer stationären Verteilung:
PT = PT PPT (P- E) = 0
mit PT = (p1, ..., pn), Si pi = 1
Prof. Dr. Dr. J. Hansohm
Ergodizität (2)
Beispiel 2
L = 1/p mit L = Lebensdauer; d.h. erwarteter Wert der Anzahl der Perioden,
die die Maschine ohne Wartung läuft und mit Ausfallwahrscheinlichkeit p
p
= 1/10 = 0,1 und
0,81 0,18 0,01
P 0,9



0,1
0
PT = (p1, p2, p3)
0
1
0
- 0,19 p1 + 0,9 p2
=0
p2 = 0,19/0,9 p1 = 0,2111 p1
0,18 p1 - 0,9 p2 + p3 = 0
0,01 p1
- p3 = 0
p3 = 0,01p1
p1 +
p 2 + p3 = 1
p1 + 0,2111p1 + 0,01p1
=1
p1 = 1/1,2211 = 0,819
p2 = 0,173, p3 = 0,008
Prof. Dr. Dr. J. Hansohm
Ergodizität (3)
Fazit:

In 81,9 % aller Perioden laufen beide Maschinen

in 17,3 % aller Perioden wird gerade eine
repariert

in 0,8 % aller Perioden ist der Mechaniker
überfordert
Prof. Dr. Dr. J. Hansohm
Ergodensatz
Sei P eine Matrix von Übergangswahrscheinlichkeiten mit der Eigenschaft, daß
für irgendeine Potenz Pk von P diese eine
Spalte mit nur positiven Elementen enthält
{Pm |m  } = W
 Jede Zeile von W ist der gleiche Vektor wT
 Jede Komponente von w ist positiv
 lim
P ist dann ergodisch und w ist die
stationäre Verteilung
Prof. Dr. Dr. J. Hansohm
Lagerhaltungsproblem
Nachfrage:
0, 1, 2, 3 (z.B. Ersatzteile, die kaputt gehen)
Verteilung:
20% (0), 50% (1), 20% (2), 10% (3)
Kosten:
Bestellkosten cB (pro Bestellung)
Lagerkosten (-satz cL) (pro Mengeneinheit und Tag)
Fehlmengenkosten (-satz cF) (pro Mengeneinheit und Tag)
Politiken:
(q, Dt)
(s, q)
(s, S)
nach Dt Zeiteinheiten wird eine Bestellung
von q Einheiten getätigt
wenn Bestand < s, dann bestelle q Stück
wenn Bestand < s, dann fülle bis S auf, d.h.
bestelle S - Bestand + nicht erfüllte Nachfrage
abzüglich bestellter, aber noch nicht eingetroffener Mengen
Prof. Dr. Dr. J. Hansohm
Beispiel (s, S)-Politik
Lager Nachfrage Bestand Zustand Bestellung Lager Neu
2
2
2
2
3
3
3
3
3 (0,1)
2 (0,2)
1 (0,5)
0 (0,2)
3 (0,1)
2 (0,2)
1 (0,5)
0 (0,2)
-1
0
1
2
0
1
2
3
z1
z2
z3
z4
z2
z3
z4
z5
4
3
2
0
3
2
0
0
3
3
3
2
3
3
2
3
(s, S)-Politik mit s=1 und S=3
Anfangszustand: Lager gefüllt (Zustand z5)
Prof. Dr. Dr. J. Hansohm
Ergebnis des Markov-Prozeß (s, S)-Politik
z2
0,1
0,1
0,1
0,2
0,1
0
z3
0,2
0,2
0,2
0,5
0,2
0
z4
0,5
0,5
0,5
0,2
0,5
0
z5
0,2
0,2
0,2
0
0,2
1
Bestandsentwicklung
1,2
1
Wahrscheinlichkeit
z1
z2
z3
z4
z5
Anfang
z1
0
0
0
0,1
0
0
z1
0,8
z2
0,6
z3
z4
0,4
z5
0,2
0
0
1
2
3
4
5
10
15
20
25
Periode
z1
0
1
2
3
4
5
10
15
20
25
stat. Lösung
0
0
0,042
0,0465
0,04431
0,03815
0,0384623
0,03846154
0,03846154
0,03846154
0,03846154
z2
0
0,1
0,291
0,276
0,26256
0,13815
0,1384623
0,13846154
0,13846154
0,13846154
0,13846154
z3
0
0,2
0,699
0,6672
0,63369
0,31445
0,31538689
0,31538461
0,31538462
0,31538462
0,31538462
z4
0
0,5
0,465
0,4431
0,42192
0,38555
0,38461311
0,38461539
0,38461538
0,38461538
0,38461538
z5
1
0,2
0,282
0,2628
0,2505
0,1237
0,12307541
0,12307693
0,12307692
0,12307692
0,12307692
Prozeß ist
ergodisch
Prof. Dr. Dr. J. Hansohm
Simulation versus analytische Lösung

Theorie



klare deduktive Lösung, Veränderung der Ausgangsgrößen anhand der Veränderung der Eingangsgrößen gut studierbar
ev. starres Modell, ev. wesentliche Anforderungen
der Realität nicht berücksichtigt
Simulation


komplexe, realitätsnähere Modelle behandelbar
Abhängigkeit der Ausgangsgrößen durch die
Eingangsgrößen nur durch experimentelle
Vorgehensweise erfahrbar
Prof. Dr. Dr. J. Hansohm
Warteschlangen
Ankunftsstrom
Warteraum
Abfertigung
Abgangsstrom
Klassifizierung nach Kendall (1951) und Lee(1966):
Art des Zugangsprozesses /
Art des Abgangsprozesses /
Anzahl Schalter
:
(max. Anzahl im System /
Abfertigungsdisziplin)
z. B.: M/M/1:(/FIFO)
für Markov-Ankunfts- und
Abgangsprozeß, einen Schalter, unendlich großen Warteraum, First In First Out
Prof. Dr. Dr. J. Hansohm
Ankunft als Markov-Prozeß
Annahme:  Kundenreservoir unendlich

kein Engpaß bei der Warteschlange (Warteraum)

Wahrscheinlichkeit, daß einer kommt unabhängig davon, ob
kurz vorher einer kam oder lange vorher keiner kam

Zeitspanne Dt klein genug, so daß höchstens einer kommt

T = durchschnittliche Zeit zwischen zwei Ankünften
Zustände:
a0 = keiner, a1 = einer, a2 = 2 im System, etc.
Übergang: aiai = 1-Dt/T, aiai+1 = Dt/T, sonst = 0
Start von a0: nach mDt Zeiteinheiten ergibt sich Zustand an, wenn n mal
einer gekommen ist und m-n mal keiner gekommen ist
( m)
n
P
 m Dt n
Dt m n
   ( ) (1  )
T
 n T
n
(
l
t
)
m


e  lt für
n!
mDt  t
und
l
1
T
Poisson-Verteilung
Prof. Dr. Dr. J. Hansohm
Abfertigung als Markov-Prozeß
Analog zum Ankunftsprozeß. Betrachtet man Ankunft und Abgang, so
anan-1:(1-lDt) mDt
anan: (1-lDt) (1- mDt)
anan+1: lDt(1- mDt)
Hieraus ergibt sich eine dreibandige Übergangsmatrix, die durch fortgesetzte Multiplikation mit sich selbst im Diagonalenbereich immer
breiter wird. Der Markov-Prozeß ist demnach ergodisch.
Stationäre Lösung
w = (w0, w1, ..., wN) ergibt: wi = l/m wi-1 und damit
wn = (l/m)n w0 und wegen w0 + w1 + ... + wN =1
wn = pn(1-p)/(1-pN+1) für p= l/m 
Für N  : w0 = 1-p, wn = pn(1-p) mit p = l/m
und pn als Wahrscheinlichkeit, daß n oder mehr
Personen im System sind
Prof. Dr. Dr. J. Hansohm
Warteschlangenkenngrößen

mittlere Anzahl von Elementen im System
L=p/(1-p)

mittlere Anzahl von Wartenden im System
Lw=p2/(1-p)

mittlere Anzahl von Elementen am Schalter
L-Lw=p
(durchschnittliche Auslastung)

mittlere Verweilzeit im System
Z=1/(m(1-p))

mittlere Wartezeit
Zw=p/(m(1-p))
Prof. Dr. Dr. J. Hansohm
Warteschlange - Beispiel
An einem Postamt mit einem Schalter wird eine mittlere Bedienzeit von 2 min und eine Warteschlange von durchschnittlich
3,2 Personen ermittelt. Es wird ein M/M/1 -Prozeß unterstellt.
Wie hoch ist:

die mittlere Abfertigungsrate

die mittlere Ankunftsrate

die Wahrscheinlichkeit, daß niemand am Schalter wartet

die Wahrscheinlichkeit, daß mehr als 2 Personen warten

die mittlere Anzahl von Personen im System

die mittlere reine Wartezeit
Prof. Dr. Dr. J. Hansohm
Konzept der Objektorientierung
Umweltausschnitt
Programmstruktur
1:1
Prof. Dr. Dr. J. Hansohm
Stadien der objektorientierten Entwurfstechnik

Objektorientierte Analyse OOA

Objektorientiertes Design OOD

Objektorientierte Programmierung OOP
Prof. Dr. Dr. J. Hansohm
Wertpapiere, Auswahl gebräuchlichster Typen

Stammaktie

Vorzugsaktie

Straightbond

Zerobond

laufende Tilgung mit festem Plan

laufende Tilgung durch Annuität
Prof. Dr. Dr. J. Hansohm
Wertpapiere - Strukturierung
Portfolio
Strukturierung der
Wertpapiertypen
Part-of
Wertpapier
Gen-Spec
Aktie
Stamm
Anleihe
Vorzug
Straight
Bond
Endfällig
ZeroBond
Getilgt.
Anleihe
Fester
Plan
Annuit.
Plan
Prof. Dr. Dr. J. Hansohm
Eigenschaften objektorientierter Entwurfstechnik
Abstraktion
 Einkapselung


Entwickler bestimmt Zusammenspiel
zwischen Funktion und Daten
Vererbung
 Komm. d. Nachrichten

Prof. Dr. Dr. J. Hansohm
Objektorientierte Programmiersprachen
SIMULA 67
 CLOS
 OBERON
 C++
 SMALLTALK
 EIFFEL
 (ADA)

Prof. Dr. Dr. J. Hansohm
Klassendefinition in C++ (1)
class PORTFOLIO {
public:
virtual double wert();
virtual double verzinsung();
// .
// .
private:
Liste wertpapierliste;
};
Prof. Dr. Dr. J. Hansohm
Klassendefinition in C++ (2)
class Wertpapier {
public:
char* emittent;
int wkn;
double kaufkurs;
long int kaufzeit;
double nennwert;
double aktuellerkurs;
double stückelung;
virtual double wert() { return aktuellerkurs; }; // inline
virtual double verzinsung()=0; //pure
};
Prof. Dr. Dr. J. Hansohm
Klassendefinition in C++ (3)
class Aktie : public Wertpapier {
public:
double dividendenhöhe;
long int dividendenzeitpunkt;
virtual double wert();
virtual double verzinsung();
};
Prof. Dr. Dr. J. Hansohm
Implementation in C++ (1)
#include "Portflio.h"
double Portfolio::wert() {
double summe = 0;
Wertpapier w;
for (wertpapierliste.anfang();
!wertpapierliste.ende(); wertpapierliste++) {
w = wertpapierliste.gebe_wertpapier();
summe += w.wert() *
wertpapierliste.gebe_anzahl();
}
return summe;
}
Prof. Dr. Dr. J. Hansohm
Implementation in C++ (2)
double Aktie::verzinsung()
{
return dividendenhöhe / kaufkurs;
}
Prof. Dr. Dr. J. Hansohm
Herunterladen