Implementierung

Die Implementierung erfolgte in der Programmiersprache Python (http://www.python.org), da diese Sprache leicht lesbar ist und mächtige Datentypen (zB assoziative Arrays) zur Verfügung stellt.

Programmaufruf

ppers-markov.py [p [pn [n]]]

Tabelle 1. Aufrufparameter

pPersistence-Wert
pnWahrscheinlichkeit, dass eine Station während eines Slots einen Sendebedarf bekommt
nAnzahl der Iterationen

Das Programm gibt die Wahrscheinlichkeit aus, dass die betrachtete Station nach n Schritten erfolgreich gesendet hat. Diese Wahrscheinlichkeit wird für die Fälle ausgegeben, dass zu Beginn nur die betrachtete Station senden will, eine weitere Station ebenfalls senden will oder zwei weitere Stationen auch senden wollen. Es werden also die Wahrscheinlichkeiten der Übergänge von "1", "2" oder "3" zum Endzustand ausgegeben.

Programmstruktur

Globale Variablen

index

Assoziatives Array, das die Zustandsnamen auf ihren jeweiligen Index in der Matrix abbildet. Dadurch können im Programm anstatt wenig aussagekräftiger Indizes aussagekräftigere Strings verwendet werden.

Funktion generate_matrix

generate_matrix(n);

Generiert eine n*n-Matrix, die mit 0 aufgefüllt ist.

Funktion matrix_mul

matrix_mul(x, y);

Multipliziert die Matrix x mit der Matrix y und gibt das Ergebnis zurück. Beide Matrizen müssen gleich groß und quadratisch sein.

Funktion transition

transition(matrix, src, dst, p);

Setzt den Wahrscheinlichkeitswert p für den Übergang von src nach dst in der Matrix matrix.

Funktion usage

usage(void);

Ausgabe von Informationen zum Programmaufruf.

Funktion main

main(args);

Diese Funktion wertet zuerst die Kommandozeilenparameter aus und startet nach Initialisierung aller notwendiger Variablen und der Matrix mit den Übergangswahrscheinlichkeiten die Berechnung.