4. Graphentheorie. 4.1 Theorie und praktische Bedeutung Einführung Anwendungsgebiete aus dem Bereich des OR

Größe: px
Ab Seite anzeigen:

Download "4. Graphentheorie. 4.1 Theorie und praktische Bedeutung. 4.1.1 Einführung. 4.1.2 Anwendungsgebiete aus dem Bereich des OR"

Transkript

1 . Graphentheorie. Theorie und praktische Bedeutung.. Einführung Viele Objekte und Vorgänge in verschiedenen Bereichen besitzen den Charakter eines Systems, d.h.: Sie setzen sich aus einer Anzahl von Bestandteilen, Elementen zusammen, die in gewisser Weise in Beziehung stehen. Sollen an einem solchen System Untersuchungen durchgeführt werden, dann ist es oft zweckmäßig, den Gegenstand der Betrachtungen durch ein graphisches Schema (Modell) zu veranschaulichen. Dabei stehen grundsätzlich immer Elemente untereinander in Beziehung, d.h.: Die Theorie des graphischen Modells ist ein Teil der Mengenlehre, die binäre Relationen einer abzählbaren Menge mit sich selbst behandelt. Bsp.: Es ist K = {A, B, C, D} eine endliche Menge. Es ist leicht die Menge aller geordneten Paare von K zu bilden: K K = {(A,A),(A,B),(A,C),(A,D),(B,A),(B,B),(B,C),(B,D),(C,A),(C,B),(C,C),(C,D),(D,A),(D,B),D,C),(D,D)} Gegenüber der Mengenlehre ist die Graphentheorie nicht autonom. Die Graphentheorie besitzt ein eigenes, sehr weites und spezifisches Vokabular. Sie umfaßt viele Anwendungsungsmöglichkeiten in der Physik, dem Fernmeldewesen, dem Operations Research. Im OR sind es vor allem Organisations- bzw. Verkehrsund Transportprobleme, die mit Hilfe der Graphentheorie untersucht und gelöst werden... Anwendungsgebiete aus dem Bereich des OR Reihenfolgeprobleme Hier umfaßt der Organisationsprozeß eine bestimmte Anzahl von Arbeitsgängen A, B, C,..., die auf mehrere Arten hintereinander ausgeführt werden können, aber bestimmten technische Voraussetzungen erfüllen müssen. Für den Produktionsablauf muß eine im Hinblick auf eine gegebene Nutzenfunktion optimale Lösung gefunden werden. Netzplantechnik Unter Netzplantechnik (NPT) versteht man alle Verfahren zur Analyse, Beschreibung, Planung, Steuerung und Überwachung von Abläufen. Die Anwendungsbereiche sind vielfätig und umfassen:

2 - Forschungs- und Entwicklungsprojekte - Fertigungsabläufe - Wartungsarbeiten - Bau- und Konstruktionsvorhaben im Schiffs-, Flugzeug-, Brückenbau - Produkteinführungsvorhaben - Vorhaben zur Entwicklung von Absatzstrategien. Bei diesen Anwendungsfällen handelt es sich um Projekte. Der Begriff Projekt legt fest, daß eine bestimmte Leistungserstellung einmalig in ganz bestimmter Art und Weise durchgeführt wird (engl. Ausdruck one-time-through ). Projekte sind in einzelne Teilabschnitte und Aktivitäten zerlegbar, die ablauftechnisch, zeitlich, kapazitäts- und kostenmäßig voneinander abhängen. Bei der Durchführung eines Projekts hat man für die einzelnen Schritte bestimmte Zeitspannen einzuhalten. Man will sich über den zeitlichen Spielraum informieren, über den man zu Beginn einer jeden Operation verfügt. Außerdem will man den Zeitpunkt wissen, ob das vollständige Programm nicht mehr zeitgerecht abgeschlossen werden kann. Es wird ein sogenannter kritischer Weg bestimmt, auf den man alle Kraft konzentrieren muß, um die gegebenen Termine einzuhalten. Dieses Problem führt man auf das Auffinden eines Wegs mit einem maximalen Wert in einem Graphen zurück. Die traditionellem Planungsverfahren (GANTT-Charts, Balkendiagramme) waren für komplexe Ablaufdiagramme, wie sie die bei Projekten vorliegen, nur bedingt geeignet. Wegen der nur bedingten Eignung der Gantt-Diagramme entstanden 9/ unabhängig voneinander auf der Basis der Graphentheorie die grundlegenden Verfahren der Netzplantechnik (NPT): CPM (Critical Path Method) Sie wurde 9 in den USA beim Chemiekonzern DuPont de Nemours für Umstellungs- und Installationsarbeiten entwickelt PERT (Program Evaluation and Review Technique) Sie wurde 9 beim Special Force Office der US - Navy zur Entwicklung der Polaris-Rakete benutzt. MPM (Metra Potential Method) Sie wurde 9 in Frankreich für den Bau von Atomkraftwerken entwickelt.

3 .. Definition und Darstellung von Graphen Ein einführendes Beispiel Es ist K = {A,B,C,D} ein endliche Menge. Es ist leicht die Menge aller geordneten Paare von K zu bilden: K K= {(A,A),(A,B),(A,C),(A,D),(B,A),(B,B),(B,C),(B,D),(C,A),(C,B),(C,C),(C,D),(D,A),(D,B),D,C),(D,D)} Die Menge dieser Paare kann auf verschiedene Arten dargestellt werden. Koordinatendarstellung A B C D A B C D Darstellung durch Punkte (Kreise) und Kanten (ungerichteter Graph) A B C D Eine Kante (A,A) nennt man Schlinge

4 Darstellung durch Punkte (Kreise) und Pfeile (gerichteter Graph) A B D C Einen Pfeil (A,A) nennt man eine Schlinge. Zwei Pfeile mit identischem Anfangsund Endknoten nennt man parallel. Analog lassen sich parallele Kanten definieren. Ein Graphen ohne parallele Kanten bzw. Pfeile und ohne Schlingen bezeichnet man als schlichte Graphen. Darstellung durch paarweise geordnete Paare A A B B C C D D Abb Darstellung mit Hilfe einer Matrix A B C D A B C D Einige der geordneten Paare aus der Produktmenge K K sollen eine bestimmte Eigenschaft haben, während die anderen sie nicht besitzen.

5 Eine solche Untermenge von K K ist : G = {(A,B),(A,D),(B,B),(B,C),(B,D),(C,C),(D,A),(D,B),(D,C),(D,D)} Üblicherweise wird diese Untermenge (Teilgraph) so dargestellt: A B D C Betrachtet man hier die Paare z.b. (A,B) bzw. (A,D), so kann man feststellen: Von A erreicht man, den Pfeilen folgend, direkt B oder D. B und D heißt auch die "Inzidenzabbildung" von A und {B,D} das volle Bild von A. Verwendet man das Symbol Γ zur Darstellung des vollen Bilds, dann kann man das vorliegende Beispiel (vgl. ) so beschreiben: Γ( A) = ( B, D) Γ( B) = ( B, C, D) Γ( C) = C Γ( D) = ( A, B, C, D). Bezeichnungen, Definitionen () Gegeben ist eine endliche (nicht leere) Menge K. Ist G eine Untermenge der Produktmenge K K, so nennt man ein Element der Menge K einen Knoten von G. Die Elemente der Knotenmenge K können auf dem Papier durch Punkte (Kreise) markiert werden. () Ein Element von G selbst ist eine (gerichtete) Kante. Im vorstehenden Bsp. sind (A,B), (A,D), (B,B), (B,C), (B,D), (C,C), (D,A), (D,B), (D,C), (D,D) (gerichtete) Kanten. (a) Ein Graph wird durch die Menge seiner Knoten K und die seiner Inzidenzabbildungen beschrieben: G=(K,Γ) (b) Ein Graph kann aber auch folgendermaßen beschrieben werden: G = (K,E). E ist die Menge der Kanten (gerichtet, ungerichtet, gewichtet). In gewichteten Graphen werden jeder Kante ganze Zahlen (Gewichte, z.b. zur Darstellung von Entfernungen oder Kosten) zugewiesen. Gewichtete gerichtete Graphen werden auch Netzwerke genannt. () In einer Kante, z.b. ( S, Z) E, ist S der Startknoten und Z der Zielknoten der Kante. Ein Weg (Pfad) ist eine Folge von Kanten, bei der jeweils der Zielknoten

6 einer Kante der Startknoten der folgenden Kante ist. Im vorliegenden Graphen ist ((A,B),(B,C),(C,D)) ein Weg mit Startknoten A und Zielknoten D. Ein Zyklus bezeichnet einen Weg, bei dem Startknoten und Zielknoten gleich sind. Im vorliegenden Bsp. bilden ((A,B),(B,C),(C,D),(D,A)) einen Zyklus, aber auch ((A,B),(B,A)). () Ein Graph ist zusammenhängend, wenn von jedem Knoten zu jedem anderen Knoten im Graph ein Weg (Pfad) existiert. X X X X X Dieser Graph ist streng zusammenhängend. Man kann sehen, daß es zwischen je Knoten mindestens einen Weg gibt. Dies trifft auf den folgenden Grafen nicht zu: X X X X X X Hier gibt es bspw. keinen Weg von X nach X. Ein Graph, der nicht zusammenhängend ist, setzt sich aus zusammenhängenden Komponenten zusammen. () Ein Graph ohne Zyklen ist ein Baum. Eine Gruppe nicht zusammenhängenden Bäume wird Wald genannt. Ein spannender Baum ist ein Teilgraph, der alle Knoten enthält, doch nur so viele von den Kanten, daß er einen Baum bildet.

7 Die stark ausgezogenen Kanten im vorliegenden Graphen bestimmen einen spannenden Baum. Ein Graph besitzt genau einen spannenden Baum, falls er zusammenhängend ist. Einen spannenden Baum mit minimaler Summe der Kantenbewegungen bezeichnet man als minimalen spannenden Baum. Zu dem folgenden Graphen gehört der folgende minimale spannende Baum Minimaler spannender Baum () Falls die Anzahl der Knoten in einem Graphen "n" ist, dann liegt die Anzahl der Kanten zwischen und n ( n ) im ungerichten Graphen. Ein gerichteter Graph kann bis zu n ( n ) Pfeile besitzen. () Kanten (Pfeile) werden benachbart oder adjazent genannt, wenn es einen Knoten gibt, der Endknoten einen Kante und Anfangsknoten der anderen Kante ist. Knoten heißen benachbart oder adjazent, wenn sie durch einen Kante (Pfeil) unmittelbar verbunden sind. Kanten (Pfeile), die denselben Anfangs- und Endknoten haben, heißen parallel. (9) Ein Graph heißt schlicht, falls er weder parallele Kanten noch Schlingen besitzt.

8 .. Darstellung in Rechnerprogrammen. Der abstrakte Datentyp (ADT) für gewichtete Graphen Ein gewichteter Graph besteht aus Knoten und gewichteten Kanten. Der ADT beschreibt die Operationen, die einem solchen gewichteten Graphen Datenwerte hinzufügen oder löschen. Für jeden Knoten K i definiert der ADT alle benachbarten Knoten, die mit K i durch eine Kante E(K i,k j ) verbunden sind. ADT Graph Daten Sie umfassen eine Menge von Knoten {K i } und Kanten {E i }. Eine Kante ist ein Paar (K i, K j ), das anzeigt: Es gibt eine Verbindung vom Knoten K i zum Knoten K j. Verbunden ist mit jeder Kante die Angabe eines Gewichts. Es bestimmt den Aufwand, um entlang der Kante vom Knoten K i nach dem Knoten K j zu kommen. Operationen Konstruktor Eingabe: keine Verarbeitung: Erzeugt den Graphen als Menge von Knoten und Kanten Einfuegen_Knoten Eingabe: Ein neuer Knoten Vorbedingung: keine Verarbeitung: Füge den Knoten in die Menge der Knoten ein Ausgabe: keine Nachbedingung: Die Knotenliste nimmt zu Einfügen_Kante Eingabe: Ein Knotenpaar K i und K j und ein Gewicht Vorbedingung: Ki und Kj sind Teil der Knotenmenge Verarbeitung: Füge die Kante (K i,k j ) mit dem gewicht in die Menge der Kanten ein. Ausgabe: keine Nachbedingung: Die Kantenliste nimmt zu Loesche_Knoten Eingabe: Eine Referenz für den Knoten K l Vorbedingung: Der Eingabewert muß in der Knotenmenge vorliegen Verarbeitung: Lösche den Knoten aus der Knotenliste und lösche alle Kanten der Form (K,K l ) bzw. (K l,k), die eine Verbindung mit Knoten K l besitzen Loesche_Kante Eingabe: Ein Knotenpaar K i und K j Vorbedingung: Der Eingabewert muß in der Kantenliste vorliegen Verarbeitung: Falls (K i,k j ) existiert, loesche diese Kante aus der Kantenliste Ausgabe: keine Nachbedingung: Die Kantenmenge wird modifiziert Hole_Nachbarn: Eingabe: Ein Knoten K Vorbedingung: keine Verarbeitung: Bestimme alle Knoten K n, so daß (K,K n ) eine Kante ist Ausgabe: Liste mit solchen Kanten Nachbedingung: keine Hole_Gewichte Eingabe: Ein Knotenpaar K i und K j Vorbedingung: Der Eingabe wert muß zur Knotenmenge gehören Verarbeitung: Beschaffe das Gewicht der Kante (Ki, Kj), falls es existiert

9 Ausgabe: Gib das gewicht dieser Kante aus (bzw. Null, falls die Kante nicht existiert Nachbedingung: keine. Abbildung der Graphen Es gibt zahlreiche Möglichkeiten zur Abbildung von Knoten und Graphen in einem Rechnerprogramm. Eine einfache Abbildung speichert die Knoten in einer sequentiellen Liste. Die Kanten werden in einer Matrix beschrieben (Adjazenzmatrix), in der Zeile i bzw. Spalte j den Knoten K i und K j zugeordnet sind. Jeder Eintrag in der Matrix gibt das Gewicht der Kante E ij =(K i,k j ) oder den Wert an, falls die Kante nicht existiert. In ungewichteten, gerichteten Graphen hat der Eintrag der (booleschen) Wert oder, je nachdem, ob die Kante zwischen den Knoten existiert oder nicht, z.b.: A B E C D B A C D E 9

10 In der Darstellungsform Adjazenzstruktur werden für jeden Knoten alle mit ihm verbundenen Knoten in eine Adjazenzliste für diese Knoten aufgelistet. Das läßt sich leicht über verkettete Listen realisieren. In einem gewichteten Graph kann zu jedem Listenelement ein Feld für das Gewicht hinzugefügt werden, z.b.: C A B E D Knoten: Liste der Nachbarn: A B C B C C B D C E B A B C D E A B C D B A C C D E A E C

11 . Grundlegende Algorithmen.. Die Ermittlung kürzester bzw. längster Wege nach dem Algorithmus von Ford. Welches Problem löst dieser Algorithmus? Er löst das Problem, einen Weg mit minimalem (oder maximalem) Wert zwischen Knoten eines Graphen zu finden. Anstatt von minimalen Wegen spricht man häufig auch von kürzesten Wegen. Unter der Länge eines Wegs wird in diesem Fall die we ( ) der den Pfeilen des Weges zugeordneten Bewertungen (Gewichte) w( e)verstandem. Es wird nach dem Weg zwischen den Knoten X und X n gesucht, für den die Gesamtbewertung möglichst klein ist. Ein Streckenwert w( e) kann bspw. Kosten, Zeit oder Länge symbolisieren.. Beschreibung des Algorithmus a) Bestimmen eines Wegs mit minimalem Wert X ist der Ausgangsknoten. Von ihm ausgehend sind die Weglängen zu anderen Knoten auszurechnen, X erhält am Anfang den Wert L =, alle anderen Knoten X i den Wert l i = zugeordnet. Ist l i der Wert von X i, so sucht man eine gerichtete Kante mit der Eigenschaft: l i -l j >w(x i,x j ) w(x i,x j ): Wert der gerichteten Kante Es ist eine Strecke (X i,x j ) zu bestimmen, für die l j -l i >w(x i,x j ) zutrifft. l i ist danach durch l i =l i +w(x i,x j )<l j zu ersetzen. Dabei ist l j >, falls j <> ist. Der Vorgang ist solange zu wiederholen, bis es durch keine direkte gerichtete Kante mehr möglich ist, die l i zu verringern. Man hat danach die minimalen Werte, die von X ausgehen und zu anderen Knoten führen, erhalten. Bsp.: In einer Stadt wird die kürzeste Verbindung zwischen Kreuzungen gesucht. Die mittlere Fahrtdauer auf den möglichen Verbindungen zwischen den einzelnen Kreuzungen ist bekannt. Wie kann man einen minimalen Weg (z.b. zwischen "S" und "Z") errechnen?

12 E A I S 9 B C H F Z Zum Knoten S schreibt man, zu allen anderen. Man erhält dann fortlaufend: l I =, l I =+=< l E =, l E =+=< l B =, l B =+=< l A =, l A =+=< l H =, l H =+9=9< l C =, l C =+=< l F =, l F =9+=< l Z =, l Z = + = < l I = l E = l B =, l B = + = < oder l B =9+=<(InBwirddurchersetzt) l A =, l A =+=9< l H =9,l H = + = > 9 (H bleibt unverändert) l C =, l C = + = <, l C =9+=< l F = l Z =, l Z =+=< Wenn man auf diese Weise fortfährt, dann stellt man fest, daß in keinem Knoten der Wert weiter reduziert werden kann. Man hat damit den optimalen Weg gefunden. b) Bestimmen eines Wegs mit maximalem Wert - Am Anfang ist l = und l i = zu setzen. - Bestimmen einer gerichteten Strecke (X i,x j ) für die l j -l i <w(x i,x j ) zutrifft. Dann ist l j durch l j =l i +w(x i,x j )>l j zu ersetzen. - Fortsetzen dieser Verfahrensweise bis keine weitere Vergrößerung der l i mehr möglich ist. c) Zusammenfassung

13 In der Praxis wird das Verfahren von Ford, falls der Graph zyklenfrei ist, folgendermaßen abgeändert:. Suche des Weges mit dem maximalen Wert l =... l = max ( l + w( X, X )) j ( X, X ) E i j j i i j E j : Menge, der in X j einmündenden Strecken des Graphen.. Suche des Weges mit minimalem Wert l =... l = min ( l + w( X, X )) j ( Xi, X j) Ej i i j UnteralleninX j einmündenden Strecken (X i,x j ) ist diejenige mit dem kleinsten Wert l i +w(x i,x j ) zu nehmen. Das dem Knoten X n zugeordnete l n ist gleich dem Wert des optimalen Weges zwischen X und X n.. PERT Fordsches Verfahren Gegeben ist der folgende zyklenfreie Graph: () () 9 (9) 9 () () Der vorliegende Graph könnte einen Netzplan beschreiben, z.b. ein Arbeitsprojekt mit einer bestimmten Anzahl von Tätigkeiten. Die Knoten symbolisieren die

14 Ereignisse. Je nachdem, ob ein Knoten ein Anfangs- oder Endknoten eines Pfeils ist, ist als Ereignis der Beginn oder der Abschluß der dem Pfeil entsprechenden Tätigkeit zu deuten. Den Zeitpunkt, zu dem das Ereignis E eintreten kann, erhält man folgendermaßen: Vom Anfangsereinis E sucht man den Weg nach E mit der maximalen Zeitsumme. Diese Summe ist der gesuchte Zeitpunkt. Da sie maximal ist, besteht Gewißheit, daß für sämtliche Tätigkeiten genügend Zeit zur Durchführung bereit steht. Allgemein läßt sich so der Zeitpunkt des frühestens Eintreffens von einem Ereignis E i als Summe aller Streckenwerte des Weges mit dem maximalen Wert zwischen E und E i bestimmen (frühester Eintrittstermin). Bestimmen der frühesten Eintrittstermine nach dem Fordschen Verfahren: Knoten erhält die Zeit zugeordnet. Zum Knoten führt ein einziger Pfeil, E erhält den frühesten Termin zugeordnet (Diese Zahl wird neben dem Knoten eingetragen). Zum Knoten führen Pfeile (,) und (,). Es ist zu vergleichen: + = und. wird eingetragen. Zum Knoten führen Pfeile (,) und (,). Es ist zu vergleichen: 9 und ( + ) =. wird neben dem Knoten eingetragen. Auf diese Weise kann man schließlich am Knoten eintragen. Bestimmen der spätesten Eintrittstermine: Zum spätesten Eintrittstermin ist der Beginn der Tätigkeiten einzuleiten, damit das Gesamtprojekt nicht verzögert wird. Zwischen Ereignis E i und E existiert ein Weg mit der maximalen Zeitsumme. Dieser stellt die erforderliche optimale Zeit für die Ausführung aller Tätigkeiten zwischen E i und E dar. Der gesuchte späteste Eintrittstermin ergibt sich aus der Differenz: (Minimale Zeit für die Erledigung aller Tätigkeiten zwischen E i und E ) - Endtermin von E (= )) Knoten wird mit markiert Vom Knoten gehen Pfeile (,) und (,) aus. Von den Werten - = und - = ist als spätester Wert von E der kleinere Wert zu nehmen. Vom Knoten 9 geht ein einzelner Pfeil aus, der späteste Termin ist also - =. Von Knoten geht nur der Pfeil (,) aus, der späteste Termin für E ist-=. Vom Knoten gehen Pfeile aus (,9), (,), (,), (,). Von den Werten ( - = 9, - =, - = 9 und - = wird 9 als der kleinste Wert dem Knoten zugeordnet. Auf diese Weise erreicht man schließlich den Knoten. Je Ereignis wurden Termine erhalten: - frühester Eintrittstermin t i des Ereignisses E i (bezogen auf t i =) - spätester Eintrittstermin t i * des Ereignisses E i, der nicht zu einer Verzögerung des Projektabschlusses führt. Die Differenz der beiden Termine wird als gesamte Pufferzeit bezeichnet. Für bestimmte Ereignisse fallen die Termine zusammen. Derartige Ereignisse heißen kritisch.

15 .. Netzplantechnik... Grundlagen Ein Netzplan wird durch Strukturelemente beschrieben:. Als Ereignisse bezeichnet man die einzelnen Zustände im Projektablauf, die durch den Beginn oder den Abschluß bestimmter Aktivitäten gekennzeichnet sind.. Als Vorgänge bezeichnet man die einzelnen Aktivitäten (Tätigkeiten). Sie beanspruchen Zeit und Kapazität und verursachen Kosten. Der Begriff ist sehr weit zu fassen (personelle und maschinelle Arbeiten, Beratungen, Lieferzeiten, Wartezeiten).. Als Anordnungsbeziehungen bezeichnet man die strukturelle und zeitliche Aufeinanderfolge zweier Vorgänge. Ereignisse, Vorgänge und Anordnungsbeziehungen (AOB) können auf verschiedene Weise im Netzplan dargestellt werden. In Vorgangspfeil-Netzplänen (VPN) werden Vorgänge durch Pfeile und Ereignisse durch Knoten dargestellt. Die Pfeile werden mit der Vorgangsdauer bewertet. Eine solche Struktur liegt z.b. CPM (Vorgangspfeil-Netzplan) und PERT (Ereignisknoten-Netzplan) zugrunde. CPM ist vorgangsorientiert, PERT ereignisorientiert. Vorgangspfeil-Netzplan (kantenorientierter Netzplan) Ereignis Vorgang (+ AOB) Ereignis Ereignisknoten-Netzplan Ereignis Ereignis AOB Vorgangsknoten-Netzplan (knotenorientierter Netzplan) Vorgänge werden beschrieben und durch Knoten dargestellt. Kanten beschreiben die Anordnungbeziehungen (mit Zeitwerten) der Vorgänge. Ereignisse werden nicht dargestellt Vorgang i Dauer i Anordnungsbeziehung Vorgang j Dauer j

16 ... CPM Grundbegriffe Einführendes Beispiel: Netzplan einer Motorüberholung E F H 9 A G K L B D C A... Motor ausbauen B... Zylinderkopf zerlegen C... Ventile einschleifen D... Kopf zusammenbauen E... Kurbelwelle und Kolben ausbauen F... Kurbelwelle schleifen G... Zylinder schleifen H... Pleuellager erneuern I... Kolben ersetzen K... Motorblock zusammenbauen L... Motor zusammenbauen und einbauen Vorgänge werden durch Zuordnungspfeile dargestellt, die Ereignisse verbinden. Die Länge der Zuordnungspfeile ist unabhängig von der Dauer der Vorgänge. Jedem Vorgang entspricht genau ein Pfeil, und umgekehrt entspricht jedem Pfeil genau ein Vorgang. Jeder Vorgang beginnt mit einem Anfangsereignis und endet mit einem Endereignis. Die durch einen Pfeil oder mehrere aufeinanderfolgende Pfeile hergestellte Verbindung zweier Ereignisse heißt Weg. Ein Ereignis kann erst stattfinden, wenn alle zu ihm führenden Vorgänge beendet sind. Der früheste Zeitpunkt FZ Das ist der Zeitpunkt, in dem Ereignis frühestens stattfinden kann. In das vorliegende Bsp. sind die frühestmöglichen Zeitpunkte in die linken Teil der bei den Knoten befindlichen Köstchen eingetragen:

17 9 Der späteste Zeitpunkt SZ Zu diesem Zeitpunkt darf ein Ereignis spätestens stattfinden, ohne daß gesamte Projekt verzögert wird. das 9 Definition "Kritischer Weg" Vorgänge, die sich nicht verschieben lassen, ohne daß das Projektende verzögert wird, heißen kritische Vorgänge. Die Folge aller kritischen Vorgänge heißt kritischer Weg.

18 Aufgaben: In den folgenden Netzplänen sind die kritischen Wege und die frühesten bzw. spätesten Zeitpunkte zu ermitteln. 9 9

19 . Aufstellen eines CPM-Netzplans ) Stelle den in folgenden Balkendiagramm abgebildeten Vorgang A in einem CPM- Netzplan dar! A t A ) Der Vorgang B darf erst nach Beendigung des Vorgangs A begonnen werden. A B t A B ) Die Vorgänge B und C dürfen erst nach Beendigung von A begonnen werden A B C t A C B 9

20 ) Der Vorgang B beginnt während des Vorgangs A A A A B t Ist die folgende Darstellung erlaubt? A B Nein. Es wurde vereinbart, daß jeder Vorgang mit einem Ereignis beginnt und mit einem Ereignis schließt. Wie kann der im vorstehenden Balkendiagramm vorgegebene Sachverhalt dann dargestellt werden? A B A ) Wie würde der folgende in einem Balkendiagramm wiedergegebene Sachverhalt in einem Netzplan dargestellt werden? A B Eine solche Darstellung ist in Netzplänen nicht zugelassen, denn es gilt folgende Vereinbarung: Knoten dürfen nur durch einen Vorgang verbunden werden. t

21 Eine eindeutige Darstellung ist nur über ein neues Grundelement, den Scheinvorgang erreichbar. Scheinvorgänge zeigen Anordnungsbeziehungen auf. Sie werden durch gestrichelte Pfeile dargestellt. Das gegebene Balkendiagramm kann demnach durch folgende Netzpläne beschrieben werden: ) Welche Netzpläne entsprechen dem folgenden Balkendiagramm? A A B C D E t C B E D A A A B C A D E ) In dem folgenden Netzplan sollen die Bedingungen "Vorgang E darf erst nach Beendigung von B und Vorgang H darf erst nach Beendigung von D stattfinden" eingebaut werden?

22 B A S C D E S F G I H S und S erfüllen die geforderten Bedingungen. Dieser Netzplan ist aber keine richtige Darstellung des angegebenen Prozesses. Nach diesem Netzplan darf der Vorgang H erst nach Beendigung des Vorgangs B stattfinden. Die Ereignisse Ende S und Anfang S sind daher zu trennen. Das kann so erfolgen: A D B C S S F E G S I H. Berechnung ) Berechnung der Vorgangszeiten Bei CPM stehen die Vorgänge im Mittelpunkt der Betrachtung. Die Berechnung soll eine Tabelle liefern, in der alle wichtigen Zeitwerte der Vorgänge erscheinen.

23 Nr. Endknoten Nr. Anfangsknoten Vorgangsdauer Frühester Anfangs- Zeitpunkt FZ i Frühester End- Zeitpunkt FZ j Spätester Anfangs- Zeitpunkt SZ i 9 ) Berechnung der Pufferzeiten der Vorgänge Spätester End- Zeitpunkt SZ j Gesamtpufferzeit GP Das ist die Zeitspanne, um die man die Länge eines Vorgangs verschieben kann, ohne den Endtermin zu beeinflussen GP j =SZ j -FZ i -D ij D ij GP ij FZ i SZ i FZ j SZ j Die Gesamtpufferzeit GP kann aufgeteilt werden in: - freie Pufferzeit FP - freie Rückwärtspufferzeit FRP - unabhängige Pufferzeit UP Freie Pufferzeit FP Das ist die Zeitspanne, um die ein Vorgang gegenüber seiner frühesten Lage verschoben werden kann, ohne die früheste Lage anderer Vorgänge zu beeinflussen: FP ij =FZ j -FZ i -D ij FP ij D ij FRP ij FZ i SZ i FZ j SZ j

24 Freie Rückwärtspufferzeit FRP (bedingt verfügbare Pufferzeit) Das ist die Zeitspanne, um die ein Vorgang gegenüber seiner spätesten Lage verschoben werden kann, ohne die späteste Lage anderer Vorgänge zu beeinflussen: FRP ij =SZ j FZ j (FRP ij =Gp ij FP ij ) Unabhängige Pufferzeit Das ist die Zeitspanne, um die ein Vorgang verschoben werden kann, wenn sich seine Vorgänge in spätester Lage und seine Nachfolger in frühester Lage befinden UP ij D ij FZ i SZ i FZ j SZ j Für UP ij >= gilt: UP ij =FZ j -SZ i -D ij Ist UP ij <, dann setzt man UP ij =. Für alle Vorgänge, deren Anfangsknoten am kritischen Weg liegen, gilt UP = FP. Aufgaben:. Berechne die Pufferzeiten zum einführenden Beispiel Nr. i Nr. j Dij FAZ FEZ SAZ SEZ GP ij FP ij FRP ij UP ij 9

25 . Gegeben ist der folgende CPM-Netzplan. 9 Berechne die frühesten Zeitpunkte Fz i bzw. FZ j, die spätesten Zeitpunkte Sz i und SZ j, die Gesamtpufferzeit Gp ij, die freie Pufferzeit Fp ij und die unabhängige Pufferzeit Up ij. Die errechnete Werte trage in die folgende Tabelle zur Zeitanalyse ein. Nr. i Nr. j D ij FAZ FEZ SAZ SEZ GP ij FP ij FRP ij UP ij Modelle der Netzplantechnik als lineare Programme Bsp.: Ein Projekt wird folgendermaßen beschrieben: Vorgang Vorgangsdauer Nachfolger A C B C, D C - D -

26 Diese Beschreibung führt zum folgenden CPM-Netzplan: Bezeichnen t,t,t und t die Zeitpunkte des Eintretens der Ereignisse, so führt die Zielsetzung, die gesamte Pufferzeit zu minimieren, auf das folgende lineare Programm: () t, t, t, t >= () t - t >= t - t >= t - t >= t - t >= t - t >= () Z min = t Es handelt sich um ein Standard-Minimum-Problem, das mit dem dualen Simplex- Verfahren gelöst werden kann. Aufgabe: Gib zu diesem linearen Programm das zugehörige Simplex-Tableau an und führe die Optimierung durch. t t t t RS Z max y y y y y

27 t t t t RS Z max y y y y y t t t t RS Z max y y y y y. Rechnerprogramm für CPM-Netzpläne Ein Netzplan wird bekanntlich durch einen azyklischen gerichteten Graphen beschrieben. Diese spezielle Struktur wird bei der Berechnung von Netzplänen in Rechnerprogrammen genutzt. Diese grundlegende Operation bezieht sich auf die Verarbeitungsreihenfolge der Knoten: Kein Knoten wird vor einem auf ihn zeigenden Knoten verarbeitet. Der zugehörige Algorithmus ist unter dem Namen Topologisches Sortieren bekannt.

28 Übung.-: Implementierung eines Rechnerprogramms für CPM-Netzpläne. Grundlagen Zwei wichtige Voraussetzungen sind für die Bearbeitung von Netzplänen mit Rechnerprogrammen zu klären: Gefordert ist zunächst eine geeignete Datenorganisation (. Voraussetzung) für den gerichteten Graphen, die einen einfachen Algorithmus (. Voraussetzung) ermöglicht. Datenorganisation Eine elegante, aber für den vorliegenden Anwendungsfall recht umständliche Datenorganisation ist eine Matrix.. Matrizen in der Form von zweidimensionalen Feldern verbrauchen zur Speicherung großer Graphen viel zu viel Speicherplatz. Bei umfangreichen Matrizen ist es vorteilhaft, statt zweidimensionaler Felder dynamische Datenstrukturen zu verwenden. An dieser Stelle werden spezielle Listen (sog. Adjazenzlisten) benutzt. Die Anfangszeiger dieser Listen werden in einem Feld gespeichert. Die Listenelemente enthalten eine Spaltennummer und einen Zeiger auf das nächste Listenelement. Bsp.: Gegeben ist Ein gerichteter, zyklenfreier Graph Dieser Graph besitzt folgende Adjazenzliste : Knotennummer Feld A [] () [] () [] () [] () Datenstruktur der Adjazenzliste für den Beispielgraphen Die Anfangszeiger dieser Listen werden in einem Feld A gespeichert. Jedes Element A[I] des Felds A besitzt einen Zeiger A[I].Nachf, der auf eine Adjazenzliste zeigt, und einen Zähler A[I].Zaehler. Das Zählerfeld soll mitteilen, wie viele unmittelbare Vorgänger der aktuelle Knoten hat. Die dazugehörigen ganzzahligen Werte sind in der vorliegenden Darstellung mit Klammern umschlossen. Jedes Element in der Adjazenzliste stellt eine Kante dar. Adjazenzlisten sind gut geeignet für die Ermittlung aller unmittelbaren Nachfolger eines gegebenen Knotenpunktes. Nachfolger von Knotenpunkten zu bestimmen ist ein wesentlicher Arbeitsgang bei der Berechnung eines Netzplans. Damit ist neben der Bestimmung der vgl.

29 Datenorganisation auch die zweite Voraussetzung für die Implementierung eines Rechnerprogramms für Projektplanungen erfüllt. Im vorliegenden Beispiel lassen sich die Knoten, und als unmittelbare Nachfolger von Knoten leicht aus der Adjazenzliste bestimmen. Diese Listen sind aber nicht gut geeignet, falls die unmittelbaren Vorgäger eines Knoten im Graphen gefunden werden sollen. Ist bspw. der Vorgänger von Knoten zu bestimmen, so kann das nur müsam aus der Liste ermittelt werden. Zur Ermittlung von Vorgängern sollte man invertierte Adjazenzlisten verwenden. Sie enthalten die Knotenpunktnummern der unmittelbaren Vorgäger anstatt der unmittelbaren Nachfolger.. Topologisches Sortieren Graphen der Netzplantechnik sind azyklisch. Für azyklische Graphen kann man die Konstruktionsnummern als Folge schreiben: Für eine Kante (I,J) (topologische Folge) erscheint die Knotennummer I vor der Knotennummer J (toplogische Folge). Für jeden Graphen kann es mehrere topologische Folgen geben. So bildet bspw. jede der Sequenzen und eine topologische Folge des folgenden Graphen: Das Problem des topologischen Sortierens besteht darin, die teilweise Ordnung in eine lineare Ordnung einzubetten. Grapisch bedeutet dies die Anordnung der Knoten des Graphen in eine Zeile: Anordnung der Knoten des Beispielgraphen in einer topologischen Folge Gewöhnlich sind nicht alle topologischen Folgen erforderlich, sondern es genügt eine beliebige dieser Folgen. Ein Programm zur Ermittlung topologischer Folgen soll folgende Konstanten, Datentypen und (globale) Variable benutzen: const Feldgroesse = ; type KantenZeiger Kante Knoten Eingabesatz = ^Kante; = record Num : integer; Nachf : KantenZeiger; end; = record (* identifizierende bzw, beschreibende Merkmale *) Zaehler : integer; Verkettung : KantenZeiger; end; = record Kn, Kn : integer; end; 9

30 var A : array[..feldgroesse] of Knoten; D : file of Eingabesatz; Minim, Maxim : integer; K : integer; N : integer; Start : integer; Die Knotenpunktnummern (vgl. Datentyp Eingabesatz) werden aus einer Datei (Variable D) gelesen, so daß sie mehrmals überprüft werden können. Auch der Minimal- und Maximalwert aller Knotenpunktnummern ist bereits in der globalen Variablen Maxim bzw. Minim gespeichert. Die Anzahl der zu belegenden Feldelemente ergibt sich dann aus N := Maxim - Minim + ; Intern werden dann die Knotenpunktnummern (identifizierende bzw. beschreibende Merkmale) aus I := Eingabe.Kn - Minim; J := Eingabe.Kn - Minim; errechnet. Eingabe ist hier eine Variable vom Typ Eingabesatz und enthält den aktuellen Satz aus der Datei mit den Scheitelpunktnummern. Bsp.: Für den folgenden Graphen ergibt sich Minim =, Maxim =, N = und die internen Knotenpunktnummern sind,,,. Speicherplatz wird für A[], A[],..., A[] belegt. Ein Teil der reservierten Feldelemente wird nicht benötigt. Zur Kennzeichnung dieser Feldelemente wird das Zählfeld eines solchen Elements (A[I].Zaehler) mit dem Wert - belegt. So liegt zu Beginn des Aufbaus der Adjazenzlisten folgende Struktur vor: Knotennummer Feld A [] (-) [] (-) [] (-) [] (-) Datenstruktur der Adjazenzliste für den Beispielgraphen zu Beginn. Die Adjazenzliste ist im Rahmen der Prozedur KreiereAdjazenztabelle zu erstellen. Dazu sind aus einer Datei (Variable D), die die Zahlenpaare für jede Kante des Graphen enthält, die Scheitelpunktnummern zu den

31 Kanten bestimmen, in die interne Darstellung umzuwandeln und die Verkettung der Adjazenzlisten in der vorgegebenen Form einzurichten. procedure KreiereAdjazenztabelle; var Eingabe : Eingabesatz; I, J : integer; Z : KantenZeiger; begin reset(d); while not eof(d) do begin read(d,eingabe); I := Eingabe.Kn - Minim; J := Eingabe.Kn - Minim; if A[I].Zaehler = - then A[I].Zaehler := ; if A[J].Zaehler = - then A[J].Zaehler := ; new(z); Z^.Num := J; Z^.Nachf := A[I].Verkettung; A[I].Verkettung := Z; A[J].Zaehler := A[J].Zaehler + ; end; end;. Zur Bestimmung der gewünschten topologischen Folge wird mit den Knotenpunktnummern begonnen, deren Zählfelder den Wert enthalten. Sie verfügen über keine Vorgänger und erscheinen in der topologischen Folge an erster Stelle. Der Algorithmus ersetzt dazu die Zählfelder mit dem Wert durch Indexwerte. Dies geschieht dadurch, daß die Feldelemente aller Knotenpunkte ohne Vorgänger in einer linearen Liste geführt werden. Die Integervariable Start fungiert als Anfangszeiger der Liste. Sie entspricht dem Index des ersten Listenelements und der Wert - bezeichnet das Ende der linearen Liste. Gilt Start := ; A[].Zaehler := ; A[].Zaehler := ; A[].Zaehler := -; dann haben die Knotenpunktnummern, und keine Vorgänger. Die folgende Prozedur ermittelt die Anweisungen, die einen Stapel von Knoten in Form einer linearen Liste erstellen, die keinen Vorgänger haben. (* Einen verknuepften Stapel von Knoten erstellen, die keinen Vorgaenger haben *) Start := -; for K := to N - do if A[K].Zaehler = then begin A[K].Zaehler := Start; Start := K; end;. In der anschließenden Prozedur TopSort wird der Graph allmählich verkleinert, in dem jedesmal die Knotenpunkte gelöscht werden, die keinen Vorgänger haben. Bei einem azyklischen Graphen bleiben bei dieser Vorgehenswese keine Knotenpunkte übrig (sonst existiert ein Ring). Die Liste der Knoten ohne Vorgänger wird als Stapel genutzt, Einfügen und Löschen erfolgt nur am Anfang der Liste. Löscht man einen Vorgänger, so werden alle unmittelbaren Nachfolger auf den Stapel geschoben, da es sich bei ihm (nach dem Löschen) um Scheitelpunkte ohne Vorgänger handelt.

32 procedure TopSort; var I, J, K : integer; begin for I := to N - do begin while A[I].Zaehler = - do I := I + ; if Start = - then writeln('zyklische Abhaengigkeit'); (* Knoten vom Stapel nehmen, ausgeben und Anzahl direkter Nachfolger um vermindern. Falls die aktualisierte Anzahl der Nachfolger ist, auf den Stapel bringen und den Randknoten der Adjazenztabelle entfernen *) J := Start; Start := A[J].Zaehler; write((minim + J):,'':); while A[J].Verkettung <> nil do begin K := A[J].Verkettung^.Num; A[K].Zaehler := A[K].Zaehler - ; if A[K].Zaehler = then begin A[K].Zaehler := Start; Start := K; end; A[J].Verkettung := A[J].Verkettung^.Nachf; (* Entfernen eines nicht mehr benoetigten Knoten *) end; end; end;. Projektplanung Projektbeschreibung über Tätigkeiten und Ergebnisse in einem Netzplan Jedes Projekt besteht aus einer Vielzahl von Tätigkeiten, von denen einige aufeinander bezogen sein können. Diese Tätigkeiten können in einem gerichteten, azyklischen Graphen entweder über Knoten oder Kanten (Pfeile) dargestellt werden. Hier sollen die Kanten (Pfeile) die Tätigkeiten symbolisieren. Neben einem Knotenpaar ist jeder Tätigkeit ein Schätzwert der zur Erledigung der Tätigkeit notwendigen Zeitspanne (Dauer) zugeordnet. Das Knotenpaar, das die Tätigkeit einrahmt, beschreibt das Anfangs- bzw. Endereignis. Eine Projektbeschreibung könnte damit über einen gerichteten Graphen so aussehen: Handbucherstellung Erstelle Tage Software Teste Software Korrigiere Fehler Tage Tage Tage Bestelle Hardware Tage Die Ereignisse und beschreiben Anfang und Ende des Projekts. Aufnahme der Knoten (Ereignisse) in die Adjazenzliste Die Knoten (eines Netzplans sind gewöhnlich beliebig durchnummeriert. Zur Aufnahme in die Adjazenzliste empfiehlt es sich, die Anzahl der zu belegenden Feldkomponenten aus N= GroessteNummer - KleinsteNummer +

33 zu errechnen. Im vorliegenden Fall ist N = - + =, d.h.: Feldkom-ponenten sind in der Adjazenzliste belegt. Speicherplatz wird für A[], A[],...,A[] belegt. Intern berechnen sich dann die Knotennummern aus: D.Kn - KleinsteNummer D.Kn - KleinsteNummer Ein Teil der reservierten Feldkomponenten der Adjazenzliste wird nicht benötigt. Zur Kennzeichnung dieser Feldkomponenten wird ihr Zählerfeld mit dem Wert - belegt. Beschreibung der Tätigkeiten Die Projekttätigkeiten sind in einer Datei beschrieben. Die Datei enthält die beiden Ereignis-Nummern, Dauer und Beschreibung. Die Datei besteht für den vorstehenden Netzplan aus folgenden Datensätzen: Bestelle Hardware Erstelle Software Teste Software Korrigiere Fehler Handbucherstellung Derartige Datensätze sind durch das folgende Format festgelegt: Eingabesatz = record Kn, Kn : integer; Dauer : integer; Beschr : String; end; Diese Datei soll hier durch die Variable D : file of Eingabesatz; beschrieben sein. Vereinbarungen Die bei der Behhandlung des topologischen Sortierens festgelegten Datenstrukturen müssen um einige wenige Feldkomponenten erweitert werden: const Feldgroesse = ; type AktivitaetenZeiger = ^Aktivitaet; Aktivitaet = record Num : integer; Dauer : integer; Nachf : AktivitaetenZeiger; end; Ereignis = record Zaehler : integer; FZ, SZ : integer; Verkettung : AktivitaetenZeiger; end; var A : array[..feldgroesse] of Ereignis; Minim, (* kleinste Nummer *) Maxim : integer; (* groesste Nummer *) K : integer; N : integer; (* Anzahl der zu belegenden Feldkomponenten *) Start : integer;

34 Zmax : integer; Zu Beginn hat die Adjazenztabelle folgende Gestalt: Ereignis-Nummer [] [] [] [] Ereignis-Indizes - ~ ~ - - ~ - ~ Zähler (Anzahl Vorgänger) FZ/SZ ~ ~ ~ Verkettung Die Feldkomponente der Adjazenzliste A sind ergänzt durch A[I].FZ (frühester Ereignispunkt) und A[I].SZ (spätester Ereignispunkt). Am Anfang sind alle Felder von FZ auf Null gesetzt. Aufbau der Adjazenzliste Sie erfolgt über die Prozedur KreiereAdjazenzliste: procedure KreiereAdjazenztabelle; var Eingabe : Eingabesatz; I, J : integer; Z : AktivitaetenZeiger; begin reset(d); while not eof(d) do begin read(d,eingabe); I := Eingabe.Kn - Minim; J := Eingabe.Kn - Minim; if A[I].Zaehler = - then A[I].Zaehler := ; if A[J].Zaehler = - then A[J].Zaehler := ; new(z); Z^.Num := J; Z^.Dauer := Eingabe.Dauer; Z^.Nachf := A[I].Verkettung; A[I].Verkettung := Z; A[J].Zaehler := A[J].Zaehler + ; end; end; Daraus folgt folgende Datenstruktur:

35 Ereignis-Nummer [] [] [] [] Ereignis-Indizes ~ ~ ~ ~ Zähler (Anzahl Vorgänger) ~ ~ ~ FZ/SZ ~ ~ ~ ~ ~ ~ ~ ~ Verkettung Nummer Dauer Nachf Nummer Dauer Nachf Mit (* Verknuepften Stapel von Ereignissen bilden, die keinen Vorgaenger haben *) Start := -; for K := to N - do if A[K].Zaehler = then begin A[K].Zaehler := Start; Start := K; end; erfolgt die Verkettung der vorgängerlosen Elemente: Start Ereignis-Nummer [] [] [] [] Ereignis-Indizes ~ ~ ~ ~ - Zähler (Anzahl Vorgänger) ~ ~ ~ ~ ~ FZ/SZ ~ ~ ~ ~ ~ ~ ~ Verkettung Nummer Dauer Nachf Nummer Dauer Nachf

36 Berechnung der frühesten Ereigniszeitpunkte Die Prozedur FZBest errechnt die frühesten Ereigniszeitpunkte der Nachfolger eines Ereignisses. Der größte Ereigniszeitpunkt ist die für das Projekt notwendige maximale Zeitspanne (Wird gespeichert in der globalen Variablen Zmax ). procedure FZBest; var I, J, K : integer; Z : integer; begin for I := to N - do begin while A[I].Zaehler = - do I := I + ; if Start = - then writeln('zyklische Abhaengigkeit'); (* Knoten vom Stapel nehmen, ausgeben und Anzahl direkter Nachfolger um vermindern. Falls die aktualisierte Anzahl der Nachfolger ist, auf den Stapel bringen und den Randknoten der Adjazenztabelle entfernen *) J := Start; Start := A[J].Zaehler; while A[J].Verkettung <> nil do begin K := A[J].Verkettung^.Num; A[K].Zaehler := A[K].Zaehler - ; Z := A[J].FZ + A[J].Verkettung^.Dauer; if Z > A[K].FZ then A[K].FZ := Z; if Z > ZMax then Zmax := Z; if A[K].Zaehler = then begin A[K].Zaehler := Start; Start := K; end; A[J].Verkettung := A[J].Verkettung^.Nachf; (* Entfernen eines nicht mehr benötigten Knoten *) end; end; end; Berechnung der Spätesten Ereigniszeitpunkte (SZ(I) - SZ(J) - Dauer_von_(I,J) ) Es müssen alle unmittelbaren Nachfolger J des Ereignisses I berücksichtigt werden. Ausgangspunkt ist: der größte Wert aller frühesten Ereigniszeitpunkte. Die spätesten Ereigniszeitpunkte werden daraus über eine rückwärts gerichtete Rechnung ermittelt. Zur Rückwärtsverkettung werden invertierte Adjazenzlisten benötigt. Die frühesten Ereigniszeitpunkte bilden den Ausgangspunkt für die Erstellung von Adjazenzlisten: (* Invertierte Adjazenztabelle erstellen *) for K := to N - do if A[K]. Zaehler <> - then begin A[K].SZ := Zmax; A[K].Zaehler := ; A[K].Verkettung := nil; end; Die Prozedur KreiereInvAdjTab erstellt die invertierte Adjazenztabelle. Im Zählerfeld dieser Tabelle sind die unmittelbaren Nachfolger des Knotenpunkts angegeben. Die zu einem Knoten in der invertierten Adjazenztabelle verankerten Listen beschreiben Elemente, die die unmittelbar auf den Knoten zeigenden Kanten enthalten. procedure KreiereInvAdjTab; var Eingabe : Eingabesatz; I, J : integer;

37 Z : Aktivitaetenzeiger; begin reset(d); while not eof(d) do begin read(d,eingabe); I := Eingabe.Kn - Minim; J := Eingabe.Kn - Minim; new(z); Z^.Num := I; Z^.Dauer := Eingabe.Dauer; Z^.Nachf := A[J].Verkettung; A[J].Verkettung := Z; A[I].Zaehler := A[I].Zaehler + ; end; end; Alle nachfolgenden Elemente werden mit Hilfe einer linearen Liste verkettet: Start := -; for K := to N - do if A[K].Zaehler = then begin A[K].Zaehler := Start; Start := K; end; Start Ereignis-Nummer [] [] [] [] Ereignis-Indizes ~ ~ ~ ~ Zähler (Anzahl Vorgänger) ~ ~ ~ ~ ~ ~ FZ/SZ ~ ~ Verkettung ~ ~ ~ ~ Nummer Dauer Nachf Nummer Dauer Nachf Alle Ereignisse werden danach über die Prozedur SZBest in umgekehrter topologischer Folge bearbeitet: procedure SZBest; (* Spaeteste Ereigniszeit fuer jeden Knoten *)

38 var I, J, K : integer; Z : integer; begin for J := to N - do begin while A[J].Zaehler = - do J := J + ; I := Start; Start := A[I].Zaehler; while A[I].Verkettung <> nil do begin K := A[I].Verkettung^.Num; A[K].Zaehler := A[K].Zaehler - ; Z := A[I].SZ - A[I].Verkettung^.Dauer; if Z < A[K].SZ then A[K].SZ := Z; if A[K].Zaehler = then begin A[K].Zaehler := Start; Start := K; end; A[I].Verkettung := A[I].Verkettung^.Nachf; end; end; end; Ausgabe Früheste und späteste Zeitpunkte befinden sich nach Ablauf der prozeduren FZBest bzw. SZBest in der Adjazenztabelle. Bei der Programmausgabe sollen die Ergebnisse zusammen mit den zugeordneten Tätigkeiten erscheinen. Für jede Tätigkeit (I,J) ist der früheste Anfangszeitpunkt FAZ(I,J), der früheste Endezeitpunkt FEZ(I,J), der späteste Anfangszeitpunkt SAZ(I,J) und der späteste Endezeitpuinkt SEZ(I,J) nach folgenden Formeln zu berechnen: FAZ(I,J) = FZ(I) FEZ(I,J) = FZ(I) + DAUER(I,J) SAZ(I,J) = SZ(J) - DAUER(I,J) SEZ(I,J) = SZ(J) Entspricht bei einer Tätigkeit der frühest mögliche dem spätest zulässigen Anfangszeitpunkt, so liegt die Tätigkeit auf dem sogenannten kritischen Pfad. Das Zeitintervall, in der sich der Beginn der Projektphase ohne Auswirkung auf den Beendigungszeitpunkt verschieben darf, ist nach folgender Formel zu berechnen: LUFT(I,J) = SAZ(I,J) - FAZ(I,J) procedure Ausgabe; var Einsatz : Eingabesatz; I, J, FAZ, FEZ, SAZ, SEZ, Luft : integer; begin writeln; write(' I','':,' J','':,'DAUER','':,'FAZ','':,'SAZ','':); write('fez','':,'sez','':,'luft ','BESCHREIBUNG'); writeln; writeln; reset(d); while not eof(d) do begin read(d,einsatz); I := Einsatz.Kn - Minim; J := Einsatz.Kn - Minim; FAZ := A[I].FZ; (* fruehester Anfangszeitpunkt *)

39 SEZ := A[J].SZ; (* spaetester Endzeitpunkt *) FEZ := FAZ + Einsatz.Dauer; SAZ := SEZ - Einsatz.Dauer; Luft := SAZ - FAZ; write(einsatz.kn:,'':,einsatz.kn:,'':); write(einsatz.dauer:,'':); write(faz:,'':,saz:,'':,fez:,'':,sez:,'':); write(luft:,einsatz.beschr:); writeln; end; end; 9

40 ... MPM Grundbegriffe Grundelemente eines knotenorientierten Netzplans sind Vorgänge. Ein Vorgang wird folgendermaßen dargestellt: ANFANGS-SEITE FAZ SAZ Bezeichnung Dauer (Zeiteinheiten) FEZ SEZ ENDE-SEITE Die zur Fertigstellung des Vorgangs benötigte Zeit wird in das Feld mit der Bezeichnung "DAUER" eingetragen. Einem Vorgang sind Zeitwerte zugeordnet: FAZ... frühester Anfangszeitpunkt (frühester Anfang) SAZ... spätester Anfangszeitpunkt (spätester Anfang) FEZ... frühester Endzeitpunkt (frühestes Ende) SEZ... spätester Endzeitpunkt (spätestes Ende) Ein Vorgang muß im Intervall zwischen frühestem und spätesten Anfang beginnen und im Intervall zwischen frühestem und spätestem Ende fertig werden. FEZ = FAZ + DAUER SEZ = SAZ + DAUER Ein Vorgang beansprucht Zeit und Hilfsmittel. Eine Anordnungsbeziehung vom Ende eines Vorgangs zum Anfang seines Nachfolgers heißt Normalfolge (NF). Bsp.: "Motorüberholung" Vorgangnr. Bezeichnung Dauer (in / Std.) Start Motor ausbauen Kurbelwelle und Kolben ausbauen Zylinderkopf zerlegen Kurbelwelle schleifen Zylinder schleifen Kolben ersetzen Ventile schleifen 9 Block zusammensetzen Kopf zusammenbauen Motor zusammenbauen Ende

41 Netzdarstellung: 9 Mit Hilfe der vorgegebenen Netzplanstuktur und der Vorgangsliste werden berechnet:. FAZ. SAZ 9 Zwei Arten von Vorgängen sind erkennbar

42 . FAZ = SAZ und FEZ = SEZ Vorgänge mit diesr Eigenschaft müssen genau zum angegebenen Zeitpunkt beginnen und auch enden. Ihre Ausführung ist für die Einhaltung des Endtermins wichtig (kritische Vorgänge). FAZ < SAZ und FEZ < SEZ Diese Vorgänge lassen sich im Intervall zwischen FAZ und SEZ verschieben und beeinflussen den Endtermin nicht, solange sie in diesem Intervall verbleiben. Vorgänge mit dieser Eigenschaft müssen genau zum angegebenen Zeipunkt beginnen und auch enden. Ihre Ausführung ist für die Einhaltung des Endtermins wichtig (kritische Vorgänge). Sie werden durch den sog. kritischen Weg, der vom Start zum Ende führen muß, verbunden.. Anordnungsbeziehungen ) Aufstellen eines Netzplans Vorarbeiten Vor dem Aufstellen eines Netzplans ist auszuführen:. Unterteilung des Gesamtvorhabens in einzelne Abschnitte. Ermittlung der Dauer (in Zeiteinheiten [ZE]) je Einzelvorgang.. Ermittlung der Abhängigkeiten je Einzelvorgang Ablauf von Vorgängen a) Einzelner Vorgang A Zeit b) Normalfolgen B A C A C Zeit

43 c) In dem folgenden Bsp. darf der Vorgang B erst ZE nach Beendigung von A beginnen: A B Zeit Zur Darstellung solcher Verbindungen gibt es Anordnungsbeziehungen zwischen den Vorgängen (logich zeitliche Verbindungen) ) Quantifizierbare Abhängigkeiten Möglichkeiten Man unterscheidet die folgenden quantifizerbaren Beziehungen bzgl. der Abhängigkeiten:. Anfang - Anfang - Beziehung (Anfangsfolge, AA). Anfang - Ende - Beziehung (Sprungfolge, AE). Ende - Anfang - Beziehung (Normalfoge, NN). Ende - Ende - Beziehung (Endfolge, EF) Diese Folgearten lassen sich in der Vorgangsknotentechnik ohne Schwierigkeiten darstellen (im Gegensatz zur Vorgangspfeilknotentechnik). MPM benutzt ausschließlich die Anfangsfolge. AA-Beziehung A B Vorgang B kann frühestens ZE nach dem Anfang von A beginnen EA-Beziehung A B Vorgang B kann frühestens ZE nach dem Ende von A beginnen

44 EE-Beziehung A B Vorgang B kann frühestens ZE nach dem Ende von A beendet sein. AE-Beziehung A B Vorgang B kann frühestens ZE nach dem Anfang von A beendet sein. Systematik der Anordnungsbeziehungen und Zeitabstände im Vorgangspfeil- und Vorgangsknotennetzplan Der Zeitwert a ij der Anordnungsbeziehung kann größer, kleiner oder gleich der Vorgangsdauer sein. Vorgänge können - direkt aufeinander folgen - durch eine Wartezeit getrennt sein - sich überschneiden - parallel ablaufen - im speziellen Fall gleichzeitig beginnen oder enden. Anordnungbeziehungen zwischen Vorgängen Direkte Aufeinanderfolge DAUER i DAUER j Zeit a) Darstellung im CPM-Netzplan i= j=

45 b) Darstellung in MPM-Netzplan i j Wartezeit DAUER i DAUER j Zeit a) Darstellung im CPM-Netzplan i= WZ j= b) Darstellung in MPM-Netzplan i j Überschneidung DAUER i DAUER j Zeit a) Darstellung im CPM-Netzplan i = i = j = j = b) Darstellung in MPM-Netzplan i j

46 Parallelität DAUER i DAUER j Zeit a) Darstellung im CPM-Netzplan i = i = i = j= j = b) Darstellung in MPM-Netzplan i j Gleichzeitiger Beginn DAUER i DAUER j Zeit a) Darstellung im CPM-Netzplan j= i = i = j = b) Darstellung in MPM-Netzplan i j Gleichzeitiger Abschluß

47 DAUER i DAUER j Zeit a) Darstellung im CPM-Netzplan i = i = j= j = b) Darstellung in MPM-Netzplan i j. Die zeitlichen Restriktionen in den Anordnungsbeziehungen Für Vorgangsknotennetzpläne lassen sich Typen zeitlicher Restriktionen in den Anordnungsbeziehungen unterscheiden: a) Der Vorgang j kann frühestens min{a ij } [ZE] nach Beginn des Vorgangs i anfangen. t t + a aij t t a j i ij j i ij i a ij j b) Der Vorgang j soll spätestens max{a ij } [ZE] nach Beginn des Vorgangs i anfangen t t + a j i ij t t a i j ij i -a ij j c) Der Vorgang j muß genau a ij [ZE] nach Beginn des Vorgangs i anfangen. a + a = ij ij

48 d) Der Vorgang muß innerhalb min{a ij } und max{ a ij } [ZE] nach Beginn des Vorgangs i anfangen Bsp.: Die Tätigkeit j muß zwischen den Zeitpunkten und beginnen i j - Bei Vorgangsknotennetzwerken können demnach Zyklen auftreten, falls die Summe der Minimalabstaände nicht positiv sind. Bsp.: Interpretiere die folgenden Abbildungen ) - B kann frühestens ZE nach dem Beginn von A, C frühestens Zeitpunkte nach dem Beginn von A. aber höchstens ZE vor dem beginn von A anfangen. ) B A - C Aus dem Netzplan folgt, daß der Anfang von C mindestens ZE nach dem Beginn von A, aber höchstens ZE nach dem Beginn von A liegt. Dies ist ein Widerspruch.. Zeitrechnung ) Vorwärtsrechnung (Berechnung der frühest möglichen Anfangs- und Endzeitpunkte) Vom Ausgangspunkt FAZ = werden die frühest möglichen Beginnzeitpunkte (FAZ) ohne Berücksichtigung der negativen Anordnungsbeziehungen ermittelt. Es gelten folgende Regeln:. Ein Vorgang i kann nur einen Termin FAZ i zugeteilt erhalten, wenn alle Vorgänger V(i) bereits einen Termin haben. Hat ein Vorgang i nur einen Vorgänger h, so ergibt sich der Termin FAZ i aus: FAZ i =FAZ h +a hi

49 . Hat ein Vorgang i mehrere Vorgänger, so wird das Maximum aus den jeweiligen Summen der Endtermine FAZ h und den Zeitwerten a (i) ausgewählt: FAZ i = max {FAZ + a ε hi } hvi () Sind alle FAZ ermittelt, ist zu prüfen, ob diese Zeitpunkte wegen der negativen Anordnungsbeziehungen geändert werden müssen. Der Termin FAZ n des Vorgangs n muß korrigiert werden, wenn FAZ m +{-a nm }>FAZ n ist. Die frühest möglichen Endtermine FEZ ergeben sich durch Addition der Vorgangsdauer, z.b. für den Vorgang i aus FEZ i =FAZ i + DAUER i ) Rückwärtsrechnung Man geht vom Projektende aus. Es gelten Regeln:. Es müssen alle Nachfolger N(i) des Vorgangs i einen Termin haben.. Bei nur einem Nachfolger j ergibt sich der Termin SAZ i aus: SAZ i = SAZ j -a ij. Bei mehreren Nachfolgern gilt: SAZ i = min {SAZ jn ε () i j -a ij } Eine Korrektur des spätest zulässigen Beginnzeitpunktes (SAZ m ) wegen negativen Anordnungsbeziehungen ist erforderlich, wenn der SAZ m +{-a nm } > SAZ n ist. Der spätest zulässige Endtermin SEZ i ergibt sich aus SEZ i = SAZ i + DAUER i ) Bestimmung der Gesamtpufferzeit und des kritischen Weges Gesamtpufferzeit: GP i = SAZ i -FAZ i 9

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche

Mehr

7. Umfangreiche Aufgabenkomlexe können in Teilprojekte zerlegt, und rechnerisch zu einem Gesamtplan zusammengefaßt werden.

7. Umfangreiche Aufgabenkomlexe können in Teilprojekte zerlegt, und rechnerisch zu einem Gesamtplan zusammengefaßt werden. Netzplantechnik Sie ermöglicht uns die graphische Darstellung von mehreren Einflußfaktoren und ihrer Auswirkung in einem Plan. Einführung Unter der Netzplantechnik (network analysis) verstehen wir alle

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

0. Gliederung. Ein Einblick in die Ereignisorientierte Netzplantechnik (PERT) 1. Geschichte. 2. Grundlagen. Geschichte Grundlagen

0. Gliederung. Ein Einblick in die Ereignisorientierte Netzplantechnik (PERT) 1. Geschichte. 2. Grundlagen. Geschichte Grundlagen Ein Einblick in die Ereignisorientierte Netzplantechnik (PERT) Erstellt im Rahmen des Seminars Das Virtuelle Labor von Carmen Pohl 0. Gliederung start 1. Geschichte 3. Wahrscheinlichkeitsverteilung 4.

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

IWW Studienprogramm. Grundlagenstudium. Projektplanung Teil D. Lösungsmuster zur 1. Musterklausur

IWW Studienprogramm. Grundlagenstudium. Projektplanung Teil D. Lösungsmuster zur 1. Musterklausur Institut für Wirtschaftswissenschaftliche Forschung und Weiterbildung GmbH Institut an der FernUniversität in Hagen IWW Studienprogramm Grundlagenstudium Projektplanung Teil D Lösungsmuster zur 1. Musterklausur

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

3. Schulungsprojekt zur Einführung eines PM-Handbuchs

3. Schulungsprojekt zur Einführung eines PM-Handbuchs Netzplantechnik (NPT) Aufgaben zur Berechnung von Netzplänen In der heutigen Betriebspraxis werden Netzpläne nicht mehr per Hand gerechnet. Für diese Aufgabe werden Projektmanagement- Software-Programme

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Methoden der Unternehmensführung Übung Termin- und Kapazitätsplanung Übung 3: Termin- und Kapazitätsplanung

Methoden der Unternehmensführung Übung Termin- und Kapazitätsplanung Übung 3: Termin- und Kapazitätsplanung Übung 3: Termin- und Kapazitätsplanung Aufgabe 7: Netzplantechnik und Kapazitätsplanung Aufgabe 7: Netzplantechnik und Kapazitätsplanung Unsere Abteilung Großdieselmotoren erhält den Auftrag, auf Kundenwunsch

Mehr

Netzplantechnik bei Ablauf- und Terminsteuerung

Netzplantechnik bei Ablauf- und Terminsteuerung Netzplantechnik bei Ablauf- und Terminsteuerung Vlker Nawrath Webseite: http://www.vna.in-berlin.de/vlker/ Blg: http://vnawrath.wrdpress.cm Anmerkungen Die Netzplantechnik ist ein wichtiges Instrument

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

Entscheidungstabellen. Prozessmodellierung. Entwurf von Informationssystemen 4. Tutorium WS 11/12. Projektmanagement.

Entscheidungstabellen. Prozessmodellierung. Entwurf von Informationssystemen 4. Tutorium WS 11/12. Projektmanagement. Entwurf von Informationssystemen 4. Tutorium WS 11/12 Entscheidungstabellen Prozessmodellierung Projektmanagement Netzplantechnik 4.1 ufgabe: Entscheidungstabellen Ein Fachbereich einer Universität hat

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 3.2.07 astian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Organisatorisches / Review is zum 2.2 müssen alle Praxisaufgaben

Mehr

Anwendungshinweise zur Anwendung der Soziometrie

Anwendungshinweise zur Anwendung der Soziometrie Anwendungshinweise zur Anwendung der Soziometrie Einführung Die Soziometrie ist ein Verfahren, welches sich besonders gut dafür eignet, Beziehungen zwischen Mitgliedern einer Gruppe darzustellen. Das Verfahren

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Statistische Untersuchungen zu endlichen Funktionsgraphen

Statistische Untersuchungen zu endlichen Funktionsgraphen C# Projekt 1 Name: Statistische Untersuchungen zu endlichen Funktionsgraphen Aufgabe: Basierend auf dem Abschnitt 2.1.6. Random mappings, Kap.2, S 54-55, in [1] sollen zunächst für eine beliebige Funktion

Mehr

3. Schulungsprojekt zur Einführung eines PM-Handbuchs

3. Schulungsprojekt zur Einführung eines PM-Handbuchs Netzplantechnik (NPT) Aufgaben zur Berechnung von Netzplänen In der heutigen Betriebspraxis werden Netzpläne nicht mehr per Hand gerechnet. Für diese Aufgabe werden Projektmanagement- Software-Programme

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Wir wünschen Ihnen viel Erfolg!

Wir wünschen Ihnen viel Erfolg! Institut für Wirtschaftswissenschaftliche Forschung und Weiterbildung GmbH Institut an der FernUniversität in Hagen Name Straße PLZ, Ort IWW Studienprogramm Grundlagenstudium 2. Musterklausur: Führung

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Excel Pivot-Tabellen 2010 effektiv

Excel Pivot-Tabellen 2010 effektiv 7.2 Berechnete Felder Falls in der Datenquelle die Zahlen nicht in der Form vorliegen wie Sie diese benötigen, können Sie die gewünschten Ergebnisse mit Formeln berechnen. Dazu erzeugen Sie ein berechnetes

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Einführung in Scheduling

Einführung in Scheduling Einführung in Scheduling Dr. Julien Bidot Sommersemester 28 Institut für Künstliche Intelligenz Inhalt I. Definition und Formulierung des Scheduling- Problems II. Projektplanung III. Produktionsplanung

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

Anleitung für das MS Project Professional 2003 (Deutsche Version)

Anleitung für das MS Project Professional 2003 (Deutsche Version) Anleitung für das MS Project Professional 2003 (Deutsche Version) Erstes Starten... 2 Tutorial... 3 Hilfe... 4 Critical Path / Kritischer Weg... 5 Der Critical Path / Kritischer Weg wird nicht korrekt

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Vorlesung Betriebstechnik/Netzplantechnik Operations Research

Vorlesung Betriebstechnik/Netzplantechnik Operations Research Vorlesung Betriebstechnik/Netzplantechnik Operations Research Organisation Agenda Übungen Netzplantechnik GANTT-Diagramme Weitere Übungen 2 Übungen 3 weitere Übungen Nr. Vorgang Dauer AOB 1 Kickoff 2-2

Mehr

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:

Mehr

Inventur. Bemerkung. / Inventur

Inventur. Bemerkung. / Inventur Inventur Die beliebige Aufteilung des Artikelstamms nach Artikeln, Lieferanten, Warengruppen, Lagerorten, etc. ermöglicht es Ihnen, Ihre Inventur in mehreren Abschnitten durchzuführen. Bemerkung Zwischen

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Vorgehensweise für die Umstellung von Quicken-Konten bei Bargeldbuchungen auf ein Wertpapierkonto

Vorgehensweise für die Umstellung von Quicken-Konten bei Bargeldbuchungen auf ein Wertpapierkonto Vorgehensweise für die Umstellung von Quicken-Konten bei Bargeldbuchungen auf ein Wertpapierkonto Bevor Sie Ihre Datei nach Quicken 2010, bzw. 2011 konvertieren, können Sie in Ihrer jetzt benutzten Version

Mehr

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr

Kurze Einführung in die Netzplantechnik Januar 02. Einführung in die Netzplantechnik und einfachere Verfahren der Ablauf- und Terminplanung

Kurze Einführung in die Netzplantechnik Januar 02. Einführung in die Netzplantechnik und einfachere Verfahren der Ablauf- und Terminplanung Einführung in die Netzplantechnik und einfachere Verfahren der Ablauf- und Terminplanung 1 Auswirkungen von Kosten- u. Terminüberschreitungen auf den Gewinn Abweichung + Entwicklungszeit Verzögerung von

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik Abitur 8 II. Insektenpopulation LA/AG In den Tropen legen die Weibchen einer in Deutschland unbekannten Insektenpopulation jedes Jahr kurz vor Beginn der Regenzeit jeweils 9 Eier und sterben bald darauf.

Mehr

Berechnungen in Access Teil I

Berechnungen in Access Teil I in Access Teil I Viele Daten müssen in eine Datenbank nicht eingetragen werden, weil sie sich aus anderen Daten berechnen lassen. Zum Beispiel lässt sich die Mehrwertsteuer oder der Bruttopreis in einer

Mehr

Die Excel Schnittstelle - Pro Pack

Die Excel Schnittstelle - Pro Pack Die Excel Schnittstelle - Pro Pack Die Excel Pro Pack ist eine Erweiterung der normalen Excel Schnittstelle, die in der Vollversion von POSWare Bestandteil der normalen Lizenz und somit für alle Lizenznehmer

Mehr

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Wir arbeiten mit Zufallszahlen

Wir arbeiten mit Zufallszahlen Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten

Mehr

Wie löst man Mathematikaufgaben?

Wie löst man Mathematikaufgaben? Wie löst man Mathematikaufgaben? Manfred Dobrowolski Universität Würzburg Wie löst man Mathematikaufgaben? 1 Das Schubfachprinzip 2 Das Invarianzprinzip 3 Das Extremalprinzip Das Schubfachprinzip Verteilt

Mehr

Aufgabe 6 Excel 2013 (Fortgeschrittene) Musterlösung

Aufgabe 6 Excel 2013 (Fortgeschrittene) Musterlösung - 1 - Aufgabe 6 Excel 2013 (Fortgeschrittene) Musterlösung 1. Die Tabelle mit den Werten und Gewichten der Gegenstände, sowie die Spalte mit der Anzahl ist vorgegeben und braucht nur eingegeben zu werden

Mehr

Über Arrays und verkettete Listen Listen in Delphi

Über Arrays und verkettete Listen Listen in Delphi Über Arrays und verkettete Listen Listen in Delphi Michael Puff mail@michael-puff.de 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung 3 2 Arrays 4 3 Einfach verkettete Listen 7 4 Doppelt verkettete

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Guten Morgen und Willkommen zur Saalübung!

Guten Morgen und Willkommen zur Saalübung! Guten Morgen und Willkommen zur Saalübung! 1 Wie gewinnt man ein Spiel? Was ist ein Spiel? 2 Verschiedene Spiele Schach, Tic-Tac-Toe, Go Memory Backgammon Poker Nim, Käsekästchen... 3 Einschränkungen Zwei

Mehr

Dokumentation zum Spielserver der Software Challenge

Dokumentation zum Spielserver der Software Challenge Dokumentation zum Spielserver der Software Challenge 10.08.2011 Inhaltsverzeichnis: Programmoberfläche... 2 Ein neues Spiel erstellen... 2 Spielfeldoberfläche... 4 Spielwiederholung laden... 5 Testdurchläufe...

Mehr

Vorlesung Betriebstechnik/Netzplantechnik Operations Research

Vorlesung Betriebstechnik/Netzplantechnik Operations Research Vorlesung Betriebstechnik/Netzplantechnik Operations Research Organisation Agenda Netzplantechnik Grundlagen/Grundbegriffe Strukturanalyse und Erstellung des Netzplanes Vorgänge und Ereignisse Vorgangsliste

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

12.1 Einleitung... 2. 12.3 Die Vor- und Nachteile der Netzplantechnik... 8. 12.4 Selbstlernaufgaben... 8. 12.5 Zusammenfassung...

12.1 Einleitung... 2. 12.3 Die Vor- und Nachteile der Netzplantechnik... 8. 12.4 Selbstlernaufgaben... 8. 12.5 Zusammenfassung... Projektmanagement Lernheft 1. Phase: Projektplanung Projektablaufplanung Die Netzplantechnik Inhaltsverzeichnis 1.1 Einleitung... 1. Die einzelnen Schritte bei der Erstellung eines Netzplans... 3 1..1

Mehr

Algorithmische Mathematik

Algorithmische Mathematik Algorithmische Mathematik Wintersemester 2013 Prof. Dr. Marc Alexander Schweitzer und Dr. Einar Smith Patrick Diehl und Daniel Wissel Übungsblatt 6. Abgabe am 02.12.2013. Aufgabe 1. (Netzwerke und Definitionen)

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?

Mehr

Text-Zahlen-Formatieren

Text-Zahlen-Formatieren Text-Zahlen-Formatieren Beobachtung: Bei der Formatierung einer Zahl in eine Textzahl und umgekehrt zeigt Excel ein merkwürdiges Verhalten, welches nachfolgend skizziert werden soll: Wir öffnen eine neue

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Doing Economics with the Computer Sommersemester 2002. Excel Solver 1

Doing Economics with the Computer Sommersemester 2002. Excel Solver 1 Universität Bern Kurt Schmidheiny / Manuel Wälti Doing Economics with the Computer Sommersemester 2002 Excel Solver 1 Mit dem Solver unterstützt Excel eine Funktion, mit der u.a. komplex verschachtelte

Mehr

Einführung in die Vektor- und Matrizenrechnung. Matrizen

Einführung in die Vektor- und Matrizenrechnung. Matrizen Einführung in die Vektor- und Matrizenrechnung Matrizen Definition einer Matrix Unter einer (reellen) m x n Matrix A versteht man ein rechteckiges Schema aus reellen Zahlen, die wie folgt angeordnet sind:

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Bedienungsanleitung Einsatzplanung. Bedienungsanleitung Einsatzplanung. Inhalt. Bedienung einer Plan-Tabelle

Bedienungsanleitung Einsatzplanung. Bedienungsanleitung Einsatzplanung. Inhalt. Bedienung einer Plan-Tabelle Bedienungsanleitung Einsatzplanung Dieses Programm ist lizenzfrei verwendbar und gratis. Das Programm ist mit Excel 2010 erstellt worden und enthält VBA Programmierungen, also Typ.xlm, deshalb werden Sie

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011 Graphen: Einführung Vorlesung Mathematische Strukturen Zum Ende der Vorlesung beschäftigen wir uns mit Graphen. Graphen sind netzartige Strukturen, bestehend aus Knoten und Kanten. Sommersemester 20 Prof.

Mehr

Datenaufbereitung in SPSS. Daten zusammenfügen

Datenaufbereitung in SPSS. Daten zusammenfügen Daten zusammenfügen I. Fälle hinzufügen Diese Schritte müssen Sie unternehmen, wenn die Daten in unterschiedlichen Dateien sind; wenn also die Daten von unterschiedlichen Personen in unterschiedlichen

Mehr

Lösungsvorschlag zur Klausur zu Projektorganisation und Management in der Software-Entwicklung

Lösungsvorschlag zur Klausur zu Projektorganisation und Management in der Software-Entwicklung Prof. Dr. Dr. h.c. M. Broy Klausurlösung Dr. H. Ehler, S. Wagner 2. Juli 2004 Lösungsvorschlag zur Klausur zu Projektorganisation und Management in der Software-Entwicklung Aufgabe 1 Prozessmodelle (4

Mehr

Eine Logikschaltung zur Addition zweier Zahlen

Eine Logikschaltung zur Addition zweier Zahlen Eine Logikschaltung zur Addition zweier Zahlen Grundlegender Ansatz für die Umsetzung arithmetischer Operationen als elektronische Schaltung ist die Darstellung von Zahlen im Binärsystem. Eine Logikschaltung

Mehr

1 Konto für HBCI/FinTS mit Chipkarte einrichten

1 Konto für HBCI/FinTS mit Chipkarte einrichten 1 Konto für HBCI/FinTS mit Chipkarte einrichten Um das Verfahren HBCI/FinTS mit Chipkarte einzusetzen, benötigen Sie einen Chipkartenleser und eine Chipkarte. Die Chipkarte erhalten Sie von Ihrem Kreditinstitut.

Mehr

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Bereich METIS (Texte im Internet) Zählmarkenrecherche Bereich METIS (Texte im Internet) Zählmarkenrecherche Über die Zählmarkenrecherche kann man nach der Eingabe des Privaten Identifikationscodes einer bestimmten Zählmarke, 1. Informationen zu dieser Zählmarke

Mehr

Kostenstellen verwalten. Tipps & Tricks

Kostenstellen verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1.1 Kostenstellen erstellen 3 13 1.3 Zugriffsberechtigungen überprüfen 30 2 1.1 Kostenstellen erstellen Mein Profil 3 1.1 Kostenstellen erstellen Kostenstelle(n) verwalten 4

Mehr

FIS: Projektdaten auf den Internetseiten ausgeben

FIS: Projektdaten auf den Internetseiten ausgeben Rechenzentrum FIS: Projektdaten auf den Internetseiten ausgeben Ist ein Forschungsprojekt im Forschungsinformationssystem (FIS) erfasst und für die Veröffentlichung freigegeben, können Sie einige Daten

Mehr

teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep

teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep 1. Erstellen Sie ein neues Rechnungsformular Mit book n keep können Sie nun Ihre eigenen

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Kurs 1613 Einführung in die imperative Programmierung

Kurs 1613 Einführung in die imperative Programmierung Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i

Mehr

3. LINEARE GLEICHUNGSSYSTEME

3. LINEARE GLEICHUNGSSYSTEME 176 3. LINEARE GLEICHUNGSSYSTEME 90 Vitamin-C-Gehalt verschiedener Säfte 18,0 mg 35,0 mg 12,5 mg 1. a) 100 ml + 50 ml + 50 ml = 41,75 mg 100 ml 100 ml 100 ml b) : Menge an Kirschsaft in ml y: Menge an

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation (Bei Abweichungen, die bspw. durch technischen Fortschritt entstehen können, ziehen Sie bitte immer das aktuelle Handbuch

Mehr

6.2 Scan-Konvertierung (Scan Conversion)

6.2 Scan-Konvertierung (Scan Conversion) 6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster

Mehr

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

Mehr