Diplomarbeit. Thema: Bauhaus-Universität Weimar Fakultät Bauingenieurwesen Professur CAD in der Bauinformatik

Größe: px
Ab Seite anzeigen:

Download "Diplomarbeit. Thema: Bauhaus-Universität Weimar Fakultät Bauingenieurwesen Professur CAD in der Bauinformatik"

Transkript

1 Bauhaus-Universität Weimar Fakultät Bauingenieurwesen Professur CAD in der Bauinformatik Diplomarbeit Thema: Entwurf und Umsetzung eines Werkzeugs eingereicht von Christian Weiprecht geb. am : in: Bad Salzungen Reg.-Nr.: B/2007/22 Erstprüfer: Prof. Dr.-Ing. B. Firmenich Zweitprüfer: Dipl.-Ing. E. Tauscher Dipl.-Ing. Ch. Koch Pflichtkonsultation: 14-tägig Bearbeitungsdauer: 3 Monate Ausgabetermin: Abgabe am: Prof. Dr.-Ing. habil. C. Könke Vorsitzender des Prüfungsausschusses

2 Ausgangssituation und Zielsetzung: Bei der Planung von Gebäuden ist eine Fluchtwegplanung durchzuführen. Zur Lösung dieser Aufgabe werden sowohl geometrische Informationen in Form der Baustruktur als auch topologische Informationen in Form der Raumstruktur benötigt. Auf dieser Basis sind Rettungswege zu ermitteln, die die Vorschriften aus den jeweils geltenden gesetzlichen Regelwerken (Brandschutzverordnungen, Landesbauordnungen usw.) erfüllen. Gegenstand der Diplomarbeit ist der Entwurf und die exemplarische Umsetzung eines Ingenieurwerkzeugs für die Unterstützung der Fluchtwegplanung. Dazu sind relevante Regelwerke zu ermitteln und zu analysieren. Die sich daraus ergebenden Anforderungen wie beispielsweise die maximale Länge eines Rettungsweges sind maßgebend für die Bearbeitung der Aufgabe. Es ist zweckmäßig, die Planung von Rettungswegen auf der Basis von Gebäudegrundrissen durchzuführen. Daher soll die Anwendung in der Umgebung eines verfügbaren CAD-Systems ausführbar sein. Aufgabenstellung 1. Beschreibung des Stands der Technik bei rechnergestützten Fluchtwegplanung 2. Ermittlung und Analyse maßgebender Regelwerke 3. Konzeptionelle Erstellung eines Werkzeugs innerhalb einer CAD-Umgebung Verarbeitung: Erstellung, Bearbeitung und Berechnung von Fluchtweginformationen Auswertung: Automatisierte Überprüfung der im Punkt 2 ermittelten Anforderungen an Fluchtwege Visualisierung: Graphische Darstellung der Fluchtweginformationen Schnittstellen: Textbasierter Import und Export der Fluchtweginformationen 4. Exemplarische Umsetzung des Entwurfs innerhalb des CAD-Systems CADEMIA 5. Verifikation des Werkzeugs an einem ausgewählten Planungsszenario 6. Zusammenfassung und Fazit Bearbeitung: Die Diplomarbeit ist vom bis zum zu bearbeiten. Der Stand der Bearbeitung ist regelmäßig vorzustellen. Abgabe der Arbeit: Die Diplomarbeit ist in digitaler und gebundener Form (2 Exemplare) abzugeben. Die Ergebnisse sind in Form einer Webseite kurz zusammenzufassen. Die Arbeit ist gemäß Diplomprüfungsordnung der Fakultät Bauingenieurwesen anzufertigen. Weimar, den Prof. Dr.-Ing. B. Firmenich

3 für die Fluchtwegplanung Abkürzungen und Symbole Abkürzungen und Symbole Abkürzungen 2-D zweidimensional, es handelt um ein ebenes Koordinatensystem 3-D dreidimensional, es handelt sich um ein räumliches Koordinatensystem API BGV CAD CAFM DIN DXF FM GML Application Programming Interface, Programmierschnittstelle Berufsgenossenschaftliche Vorschriften Computer Aided Design / Drafting, Rechnergestütztes Entwerfen / Zeichen Computer Aided Facility Management, Rechnergestütztes Anlagenmanagement Deutsches Institut für Normung e.v., Normungsorganisation der Bundesrepublik Deutschland Drawing Interchange Format, CAD-Austauschformat der Firma Autodesk Facility Management, Anlagenmanagement Graph Modeling Language, Modellierungssprache für Graphen GraphML Graph Markup Language, Auszeichnungssprache für Graphen GUI GVBl GXL ISO JDOM LAR MBO MVC NFPA SAX SVG UML Graphical User Interface, grafische Benutzerschnittstelle / Benutzeroberfläche Gesetz- und Verordnungsblatt Graph exchange Language, Austauschsprache für Graphen Internationale Organisation für Normung, ISO stammt vom griechischen Wort isos, was gleich bedeutet Java Document Object Model, XML-Darstellung in Java Richtlinien über brandschutztechnische Anforderungen an Leitungsanlagen Musterbauverordnung Model-View-Controller, Modell-Präsentation-Steuerung National Fire Protection Association, US-amerikanische Brandschutz Vereinigung Simple API for XML, Standard zum Parsen von XML-Daten Scalable Vector Graphics, Skalierbare Vektorgrafiken Unified Modeling Language, standardisierte Sprache für die Modellierung von Software und anderen Systemen 3

4 für die Fluchtwegplanung Abkürzungen und Symbole VdS XGMML XML früher Verband der Sachversicherer e.v., heute VdS Schadenverhütung GmbH extensible Graph Markup and Modeling Language, erweiterbare Auszeichnungs- und Modellierungssprache für Graphen extensible Markup Language, erweiterbare Auszeichnungssprache, zur Darstellung hierarchisch strukturierter Daten in Form von Textdateien, wird bevorzugt für den Austausch eingesetzt Symbole Element von Teilmenge von Produktmenge (zweier Mengen) unendlich A der Startknoten einer Kante A G a i,j B B G b i,j d[x] E e G L P u V v Adjazenzmatrix des Graphen G Element der Adjazenzmatrix A in der i-ten Zeile und der j-ten Spalte der Endknoten einer Kante Inzidenzmatrix des Graphen G Element der Inzidenzmatrix B in der i-ten Zeile und der j-ten Spalte Entfernung eines Knoten x zum Startknoten Kantenmenge eines Graphen Kante eines Graphen Graph die Länge einer Kante Weg innerhalb eines Graphen Knoten eines Graphen Knotenmenge eines Graphen Knoten eines Graphen 4

5 für die Fluchtwegplanung Inhaltsverzeichnis Inhaltsverzeichnis Abkürzungen und Symbole... 3 Abkürzungen... 3 Symbole... 4 Inhaltsverzeichnis Einleitung Motivation Ziel der Arbeit Grundlagen der Graphentheorie Grundbegriffe Definitionen Graphen und Matrizen Adjazenzmatrix Inzidenzmatrix Graphen und Listen Adjazenzliste Inzidenzliste Kürzeste Wege in Graphen Stand der Technik Grafische Werkzeuge zum Erstellen von Fluchtwegplänen Flucht-, Rettungs- und Alarmpläne Fluchtplan Direkt Symbolbibliotheken für AutoCAD Evakuierungssimulationen Kapazitätsanalyse Strömungsmodelle Individualmodelle Maßgebende Regelwerke Verordnungen

6 für die Fluchtwegplanung Inhaltsverzeichnis 4.2 Bauordnungen und Richtlinien Rettungs- und Fluchtwege Der Weg aus dem Aufenthaltsraum Die notwendigen Flure Die Treppen Die Treppenräume Die Kennzeichnung von Rettungswegen Der zweite Rettungsweg Flucht- und Rettungswegpläne Konzept für ein Werkzeug zur Fluchtwegplanung in einem CAD-System Verarbeitung Erstellung Bearbeitung Berechnung Auswertung Überprüfung der Anforderungen gemäß Regelwerke Visualisierung Schnittstellen Import und Export Umsetzung in dem CAD-System CADEMIA Verarbeitung Erstellung Bearbeitung Berechnung Auswertung Überprüfung der Anforderungen gemäß Regelwerke Visualisierung Schnittstellen Export Import

7 für die Fluchtwegplanung Inhaltsverzeichnis 7 Verifikation an einem Planungsszenario Anordnung der Knoten und Kanten im Grundriss Anwendung an einem Planungsszenario Fazit Zusammenfassung Bewertung Ausblick Literaturverzeichnis...I Abbildungsverzeichnis...IV Tabellenverzeichnis...VI Formelverzeichnis... VII Verzeichnis der Code Listings...VIII Selbstständigkeitserklärung...IX Thesen... X 7

8 Einleitung 1 Einleitung 1.1 Motivation Bei der Planung und Konstruktion von Bauwerken muss ein Architekt oder Bauingenieur eine Fülle von Brandschutzanforderungen erfüllen, um dem wichtigsten Brandschutzziel der Personensicherheit gerecht zu werden. Um die Anforderungen zur sicheren Rettung und Bergung von Menschen sowie die Anforderungen für einen wirksamen Löschangriff der Feuerwehr zu gewährleisten, ist die Bemessung der Länge und die Gestaltung von Rettungswegen eine wichtige Aufgabe im Planungsprozess. Um die Schutzziele im Bereich der Rettungsund Fluchtwege zu erreichen, hat der Gesetzgeber und die zuständigen Gremien verbindliche Aussagen über die maximale Länge von Flucht- und Rettungswegen getroffen. Um die Länge von Rettungswegen zu bestimmen, existieren bis heute keinerlei softwaretechnische Hilfsmittel. Als Stand der Technik wird in den Konstruktionszeichnungen die Rettungsweglänge per Hand nachgemessen. Einzig für die Erstellung von Flucht- und Rettungswegplänen sind Computerprogramme erhältlich. Diese fungieren jedoch nur als Symbolbibliotheken zur Unterstützung, um die entsprechenden Symbole, Legenden und Schriften in einen Flucht- und Rettungsplan einzufügen. Die zweite Alternative sind Simulationsprogramme, welche Personenströme beim Verlassen eines Gebäudes simulieren. Damit ist es möglich die Zeit bis zur vollständigen Evakuierung zu bestimmen, jedoch nicht die gesetzlich vorgegebenen Anforderungen zur maximalen Rettungsweglänge. 1.2 Ziel der Arbeit Ziel dieser Arbeit soll es sein, eine Softwarelösung mit einfacher Bedienung für die Anwendung im Ingenieuralltag zu entwerfen und umzusetzen. Sie soll die Einhaltung der maximalen Flucht- und Rettungsweglängen überprüfen. Die Einbettung eines solchen Werkzeuges zur Planung und Überprüfung von Flucht- und Rettungsweglängen in ein CAD-System, macht es möglich die Distanzen zwischen zwei Punkten direkt aus der Konstruktionszeichnung abzugreifen und diesen Wert für eine automatische Berechnung zu nutzen. Dazu wird ein Graph in einen Gebäudegrundriss 1 eingefügt. Der Graph stellt alle möglichen Flucht- und Rettungswege in diesem Gebäudegrundriss dar. Durch die im CAD-System ermittelbaren Abstände zwischen den Knoten des Graphen, kann eine Berechnung sämtlicher Flucht- und Rettungsweglängen stattfinden. Das gibt dem Planer die Möglichkeit die ermittelten Flucht- und Rettungsweglängen mit den gesetzlichen Vorschriften zu vergleichen, und die Einhaltung der geltenden Gesetze und Normen zum Brandschutz nachzuweisen. 1 der Begriff Grundriss wird in dieser Arbeit als Synonym für alle horizontalen Schnittzeichen von Gebäudestockwerken gebraucht, die die Baustruktur im Sinne eines Grundrisses darstellen 8

9 Einleitung Um das notwendigen Grundwissen zu schaffen, wird als erstes ein Einblick in die Graphentheorie und die damit verbundenen Algorithmen zu Berechnung kürzester Wege in einem Graphen vorgenommen. Danach wird auf den Stand der Technik eingegangen und die vorhandenen Softwaresysteme zur computerunterstützten Flucht- und Rettungswegplanung behandelt. Woran sich ein Überblick zu den gesetzlichen, bauordnungsrechtlichen und arbeitsschutzbedingten Vorschriften und Regeln für die Bemessung der maximalen Flucht- und Rettungsweglänge anschließt. Danach folgt das Konzept für die Umsetzung eines Werkzeuges zur Fluchtwegplanung in einer CAD-Umgebung. Es werden die Anforderungen an eine solche Applikation genannt und die dazu passenden Lösungsansätze diskutiert. Das erstellte Konzept wird im darauffolgenden Kapitel in ein Plugin zur Erweiterung des Open Source CAD Systems CADEMIA umgesetzt. Dabei wird die entstandene Applikation erläutert und Schritt für Schritt beschrieben. Als beispielhafte Anwendung und zum besseren Bedienverständnis wird im 7. Kapitel ein Planungsszenario durchgespielt. Dies soll die Anwendung des Werkzeugs zur Flucht- und Rettungswegplanung im Ingenieuralltag zeigen. Das letzte Kapitel beinhaltet die Zusammenfassung und Bewertung der Arbeit. Im Hinblick auf eine Weiterentwicklung werden im Ausblick Problemstellungen beschrieben, die noch zu untersuchen sind. 9

10 Grundlagen der Graphentheorie 2 Grundlagen der Graphentheorie Dieses Kapitel gibt einen Überblick über ausgewählte Grundbegriffe und Zusammenhänge der Graphentheorie. Nach den Grundlagen werden die möglichen Formen der Repräsentation eines Graphen im Computer vorgestellt. Abschließend erfolgt die Betrachtung eines Algorithmus zur Berechnung der kürzesten Wege in einem Graphen. 2.1 Grundbegriffe Die nachfolgend erläuterten Grundbegriffe stellen eine Auswahl dar. Es sind die für diese Arbeit relevanten Begriffe gewählt worden. Die Definitionen und Aussagen stammen aus den Quellen [4] und [5] sowie [7] bis [11]. Der Begriff Graph wurde zuerst von J.J. Sylvester im Jahre 1878 als Abkürzung von graphischen Darstellungen, der in der Chemie benutzten Art von Graphen, den sogenannten Chemicographen, verwendet. Als grundlegendes Werk zur heutigen Graphentheorie gilt die Theorie der Endlichen und Unendlichen Graphen von Denes König aus dem Jahre [11] Dies zeigt, dass es sich um ein sehr junges Gebiet in der Mathematik handelt. Die Mathematik ist auf der Verknüpfung von Mengen durch Relationen aufgebaut. Die Menge als grundlegendes Element der Mathematik fasst einzelne Elemente (z.b. Zahlen) zusammen. Die Relationen beschreiben eine bestimmte Beziehung zwischen ausgewählten Elementen der Mengen. Dabei sind die Relationen ebenfalls Mengen, welche Tupel enthalten. Unter einem Tupel versteht man die geordnete Zusammenstellung von n Elementen. Dabei ist n die Anzahl der Elemente in einem Tupel. (a, b) Formel Tupel Die Elemente a und b werden hier als Tupel dargestellt. Auf diese Weise wird die Beziehung zwischen den beiden Elementen der Mengen dargestellt. Eine solche Verknüpfung von Elementen in Form von Relationen kann auch als Diagramm dargestellt werden. In einem Diagramm werden die Elemente als Knoten und die Beziehungen als Kanten visualisiert. Diese Form der Darstellung verdeutlicht sehr gut eine Relation. Bei solch einem Diagramm spricht man von einem Graphen. Ein Graph stellt also eine Relation dar, d.h. die Grundlage der Graphentheorie ist die Mengenalgebra. Um die besondere Bedeutung der Relationen hervorzuheben, wird auch häufig der Begriff Relationenalgebra verwendet. In dieser Arbeit werden ausschließlich einfache Graphen verwendet. Zu den einfachen bzw. schlichten Graphen zählen die ungerichteten und gerichteten Graphen. 10

11 Grundlagen der Graphentheorie Abbildung 2.1 ungerichteter Graph gerichteter Graph Die Abbildung zeigt den Unterschied zwischen einem ungerichteten und einem gerichteten Graphen. Bei einem ungerichteten Graphen spielt es keine Rolle wo die Kante beginnt und wo sie endet. Bei einem gerichteten Graphen ist es wichtig zwischen einem Start- und einem Endknoten zu unterschieden. Aus diesem Grund erhält die Kante einen im gerichteten Graphen einen Richtungspfeil. Zum Verständnis eines Graphen sind weitere Begriffe notwendig, um Graphen besser zu verstehen. Der Graph wird als Gebilde von Knoten und Kanten angesehen. Bilden nun mehrere zusammenhängende Kanten einer Folge, so spricht man von einem Kantenzug. Ein Kantenzug kann einen Weg oder einen Zyklus darstellen. Ein Weg ist eine Folge von Kanten. Ein Zyklus ist ein Weg, bei dem Start- und Endknoten identisch sind. Weitere Begriffe sind der Pfad und der Kreis. In einem Pfad müssen alle Kanten der Kantenfolge voneinander verschieden sein. Bei einem Kreis handelt es sich um einen Pfad, in dem der Start- und der Endknoten identisch sind. Diese Begriffe sind notwendig um die Eigenschaften eines Graphen zu beschreiben und zu beurteilen. Eine weitere Eigenschaft zur Beurteilung ist der Zusammenhang eines Graphen. Der Zusammenhang kann unterschiedlich stark für ungerichtete und gerichtete Graphen ausgeprägt sein. In dieser Arbeit wird jedoch nur der Zusammenhang einem ungerichteten Graphen behandelt. Zwei Knoten befinden sich in einem zusammenhängenden Graphen, wenn es einen ungerichteten Weg zwischen diesen beiden Knoten gibt. 11

12 e5 Entwurf und Umsetzung eines Werkzeugs Grundlagen der Graphentheorie v 2 e 3 v 4 e 1 v 1 e 2 e 4 v 3 v 5 v 6 Abbildung 2.2 Graph mit einem Weg von v 1 zu v 6 In einem Graphen gehören die Knoten und v zu einem zusammenhängenden Graphen, weil es einen Weg zwischen und v gibt. v1 6 v Definitionen Um die bis hierher erklärten Begriffe auch mathematisch auszudrücken, werden sie an dieser Stelle definiert. Ein Graph G = ( V, E) Formel 2.2 Graph ist eine Struktur, die aus zwei Bestandteilen besteht: eine Menge V und einer Relation E, wobei E V V Formel 2.3 Kante als 2-elementige Teilmenge der Knotenmenge über diese Menge V ist. Für die Abbildung 2.2 ergeben sich folgende Knoten- und Kantenmengen: V = v 1,..., v } Formel 2.4 Knotenmenge { 6 E = e 1,..., e } Formel 2.5 Kantenmenge { 7 Die Elemente v der Menge V nennt man die Knoten des Graphen G, die Elemente e = (u,v) der Menge E sind seine Kanten. Die Kante e verbindet die Knoten v und u. v heißt deshalb auch Startknoten und u Endknoten von e. [8] Besitzt die Kantenmenge E eines Graphen G = ( V, E) die Eigenschaft, das die Relation E V V auch symmetrisch ist, d.h. mit jedem ( u, v) E erhält man auch ( v, u) E, dann spricht man von einem ungerichteten Graphen. In der Diagrammdarstellung wird eine Linie ohne Pfeile gezeichnet. [8] 12

13 Grundlagen der Graphentheorie Was im nachfolgenden als Graph G bezeichnet wird, soll immer einen ungerichteten Graphen ohne Mehrfachkanten darstellen. Ohne Mehrfachkanten bedeutet, dass es zwischen zwei Knoten nur eine verbindende Kante e gibt. Ein Weg ist ein nicht leerer Graph in der Form: P = ( V, E) Formel 2.6 Weg V { 0 k = v,..., v } und E e,..., e }, Formel 2.7 Knoten- und Kantenmenge = { 0 k 1 eines Weges wobei paarweise verschieden sind. Die Knoten v und v sind die Endknoten von P, die v i Knoten v 1,..., v k 1 seine inneren Knoten. [7] Für den Graph aus Abbildung 2.3 ergibt sich eine Knoten- und Kantenmenge von: 0 k V = v, v, v, } und E = e, e, }, { v 6 { 2 4 e7 Formel 2.8 Knoten- und Kantenmenge aus Abb. 2.3 Als Pfad wird ein Weg in einem Graphen bezeichnet, bei dem keine Kante zweimal durchlaufen wird. Ein geschlossener Pfad ist ein Kreis. Zwei Knoten u und v eines ungerichteten Graphen G = ( V, E) heißen zusammenhängend, wenn es in G einen Weg P von u nach v gibt. [8] 2.2 Graphen und Matrizen Graphen werden häufig in Form von Matrizen abgebildet. Diese Darstellung ermöglicht es die Eigenschaften von Graphen in eine übersichtliche Form mit Zeilen und Spalten abzubilden. v 2 e 3 (4) v 4 e 1 (5) v 1 e 2 (3) e 4 (3) v 3 v 5 e5 (6) v 6 Abbildung 2.3 Beispielgraph mit Kantenbewertungen 13

14 Grundlagen der Graphentheorie Um die verschiedenen Repräsentationsformen im Computer besser zu verstehen, wird der Graph aus Abbildung 2.3 jeweils als Beispiel dienen. Der Graph aus Abbildung 2-2 wurde erweitert und mit bewerteten Kanten versehen. Es handelt sich um einen ungerichteten Graphen Adjazenzmatrix Für G = ( V, E) mit der Knotenmenge V = v,..., v } ergibt sich die n n -Matrix A G = a i, j ) 1 i, j n { 1 n ( mit Formel 2.9 Adjazenzmatrix a i, j = 1, falls ( v i, v j ) E und a i, j = 0, sonst, und heißt Adjazenzmatrix von G. i j Die Adjazenzmatrix ist eine 0,1-wertige Matrix, die die Nachbarschaftsstrukturen des jeweilig dargestellten Graphen widerspiegeln. Eine 1 im Schnittpunkt der i-ten Zeile und der j-ten Spalte von A G zeigt die Existenz einer Kante im zugehörigen Graphen G an, die vom i-ten Knoten v zum j-ten Knoten v führt. Die Adjazenzmatrix A ist (nach Festlegung einer Knotennummerierung) eindeutig durch den Graphen G bestimmt und umgekehrt, aus einer 0,1- wertigen Matrix A kann eindeutig ein Graph G rekonstruiert werden, für den gilt: A =. [8] Formel 2.10 Adjazenzmatrix mit bewerteten Kanten A G = Für einen Graphen mit bewerteten Kanten, wie in Abbildung 2.3, werden die Werte der Kanten anstatt einer 1 in die Adjazenzmatrix eingetragen. G A G Inzidenzmatrix Für G = ( V, E) mit der Knotenmenge V = v,..., v } und der Kantenmenge ergibt die n m -Matrix { 1 n E = { e 1,..., e m } B G = ( b i, j ) mit 1 i n und 1 j m zu: Formel 2.11 Inzidenzmatrix b i, j = 1, falls v i ein Anfangs- oder Endknoten von e j ist und b i, j = 0, sonst, 14

15 Grundlagen der Graphentheorie 15 und heißt Inzidenzmatrix von G. Die Inzidenzmatrix ist eine Knoten-Kanten-Matrix, sie beschreibt die Beziehung von Knoten und Kanten. Die 1,0-wertige Matrix zeigt durch eine 1 in der i-ten Zeile (Knoten ) und der j-ten Spalte (Kante ) von die Zugehörigkeit des Knoten zur Kante im zugehörigen Graphen G an. Die Inzidenzmatrix ist (nach Festlegung einer Knoten- und Kantennummerierung) eindeutig durch den Graphen G bestimmt und umgekehrt, aus einer 0,1- wertigen Matrix B kann eindeutig ein Graph G rekonstruiert werden, für den gilt: v i j e G B i v j e B G B G B =. [8],[11] = G B Formel 2.12 Inzidenzmatrix mit bewerteten Kanten Für den Graphen aus Abbildung 2.3, können auch hier die Werte der Kanten, anstatt einer 1 in die Inzidenzmatrix eingetragen werden. 2.3 Graphen und Listen Neben der Matrix ist die Liste eine weitere Möglichkeit um Graphen abzubilden. In Form einer verketten Liste werden die Beziehungen eines Graphen widergespiegelt. Je nach Problemstellung kann dies eine einfach oder mehrfach verkettete Liste sein. Mit Hilfe einer Liste ist es ebenfalls möglich einen Graphen exakt zu beschreiben Adjazenzliste Abgesehen von der Adjazenzmatrix ist die Darstellung eines Graphen ist auch in einer Adjazenzliste möglich. Der Graph wird in Form einer verketteten Liste gespeichert. Die erste Liste enthält alle Knoten },..., { 1 n v v V = des Graphen ), ( E V G =. Jeder Knoten der ersten Liste ist mit einer weiteren Knotenliste verknüpft. Diese beinhaltet seine Nachbarknoten. [12] = }, { },, { }, { },, { }, { }, { v v v v v v v v v v v v v v v v v v v v G Formel 2.13 Adjazenzliste für den Graph G aus Abbildung 2.3 Diese Adjazenzliste ergibt sich für den Graphen aus Abbildung 2.3.

16 Grundlagen der Graphentheorie Inzidenzliste Die Inzidenzliste ist wie schon die Inzidenzmatrix auf die Beziehung zwischen Knoten und Kanten ausgelegt. Wie in der Adjazenzliste bildet eine Liste aller Knoten die Grundlage. Diese Knoten verweisen hier jedoch auf eine Liste aller von ihnen ausgehenden Kanten. v1 { e1, e2} v 2 { e1, e3} v 3 { e2, e4, e5} G = v 4 { e3, e6} v 5 { e4, e6, e7} v 6 { e5, e7} Der Graph aus Abbildung 2.3 wird durch diese Inzidenzliste dargestellt. Formel 2.14 Inzidenzliste für den Graph G aus Abbildung Kürzeste Wege in Graphen Für die Berechnung der kürzesten Wege in einem Graphen, existierten mehrere Algorithmen. Dazu gehören: der Algorithmus von DIJKSTRA, der Algorithmus von FLOYD und WARSHALL, der Algorithmus von BELLMAN und FORD und der Algorithmus von JOHNSONS. Der nach dem niederländischen Informatiker Edsger W. DIJKSTRA benannte Algorithmus zur Berechnung des kürzesten Weges in einem Graphen ist der bekannteste und auch die Grundlage der anderen oben genannten Algorithmen. Er dient dazu den kürzesten Pfad zwischen einem Startknoten und einem beliebigen Knoten im Graph zu finden. Als Bedingung müssen die Kanten des Graphen bewertet bzw. gewichtet sein. Eine Bewertung kann eine Längen-, Zeit- oder Kosteneinheit sein. Weiterhin darf die Kantenbewertung nicht negativ sein, sonst kommt es zu Endlosschleifen; z.b. wird eine Kante mit negativer Bewertung durchlaufen, so wird der Wert immer kleiner und der Algorithmus findet bei jedem Durchlauf einen noch kürzeren Weg als vorher. Der Algorithmus von DIJKSTRA ist ein Greedy-Algorithmus 2. Es wird die günstigste (billigste) Lösung gesucht. In diesem Fall wird der kürzeste Pfad, d.h. der Kantenzug mit den geringsten Bewertungen zwischen einem Startknoten und einem beliebigen Knoten ermittelt. Der in dieser Arbeit angestrebte Fluchtweggraph besitzt mehrere Knoten, deren Entfernungen zu einem oder mehreren Notausgangsknoten bestimmt werden sollen. Dieses Problem löst der 2 englisch greedy = gierig 16

17 Grundlagen der Graphentheorie Algorithmus von DIJKSTRA, er untersucht die möglichen Wege zwischen einem beliebigen Knoten und einem Notausgangsknoten und ermittelt dabei nicht nur den kürzesten Pfad eines Knoten, sondern den kürzesten Abstand aller Knoten zu einem Notausgangsknoten in einem zusammenhängenden Graphen. Somit ist der Algorithmus von DIJKSTRA bestens geeignet um die Fluchtweglängen in einem Gebäudegrundriss zu ermitteln. Die Funktionsweise wurde bereits kurz angeschnitten und soll nun mit Hilfe eines Pseudocodes näher erklärt werden. Zu jedem Knoten müssen die von ihm ausgehenden Kanten zu benachbarten Knoten und deren Länge L bekannt sein. Außerdem hat jeder Knoten eine Eigenschaft d, die seinen Abstand zum Startknoten speichert (d. h. die Entfernung zwischen dem betreffenden Knoten und dem Startknoten ist höchstens so groß wie der entsprechende Eintrag in d). Bei bereits im Algorithmus besuchten Knoten v ist dies auch die endgültige Länge des kürzesten Weges. Bei Nachfolgern von v gibt d die Länge der kürzesten Verbindung an, welche über die schon besuchten Knoten v führt. Bei den anderen, bisher nicht besuchten Knoten, ist d gleich unendlich. für alle Knoten x ist die Entfernung (zum Startknoten) d[x] gleich unendlich, nur d[startknoten]=0 solange (es Knoten mit d[x] = gibt) führe aus v := der Knoten mit kleinstem d[v] wähle v aus und markiere ihn als besucht über alle Kanten von v zu einem nachfolgenden Nachbarn u der Länge L führe aus wenn d[v]+l < d[u] dann d[u] = d[v]+l /* kürzerer Weg hin zu u gefunden, führt über v*/ ende über alle ende solange Code Listing 2.1 Pseudocode Algorithmus von DIJKSTRA [18] Als erstes wird die Eigenschaft d[x] = die Entfernungen eines Knoten vom Startknoten, für alle Knoten auf unendlich gesetzt; für den Startknoten gleich 0. Danach beginnt eine Schleife, über alle noch nicht besuchten Knoten des Graphen zu suchen, und den Knoten mit der kleinsten Entfernung auszuwählen. Dies ist am Anfang der Startknoten. Über alle von ihm ausgehenden Kanten werden die Nachfolger u ermittelt. Für jeden Nachfolger u fragt die innere Schleife den Abstand zum besuchten Knoten v ab. Wenn die Kantenlänge L plus dem Betrag d des gerade besuchten Knoten v kleiner ist als der Betrag d des Nachfolgerknotens u so wird beim Nachfolgerknoten v der Betrag von d plus die Kantenlänge L als neues d des Nachfolgerknotens u gesetzt. 17

18 Grundlagen der Graphentheorie Die äußere Schleife arbeitet alle Knoten, die noch nicht besucht sind nach der Größe von d ab, immer beginnend mit dem kleinsten d. Nachdem alle Knoten besucht worden, gibt es für jeden Knoten ein d mit dem kürzesten Abstand zum Startknoten. An dem Beispielgraphen aus Abbildung 2.3 soll die Berechnung gezeigt werden. Dazu notiert man die ermittelten Entfernungen an den Knoten und einer Tabelle. Der Startknoten soll v 1 sein, und es werden die kürzesten Wege zu allen Knoten ermittelt. v 2 e 3 (4) v 4 v 1 0 e 1 (5) e 2 (3) e 4 (3) v 3 v 5 e5 (6) e7 (2) e6 (2) v 6 Abbildung 2.4 Gesucht: Die kürzesten Wege von v 1 zu allen Knoten Zuerst schreibt man eine 0 neben, weil die Entfernung von nach v gleich 0 ist. Nun sucht man die zu benachbarten Knoten ( und ), und stellt fest, wie weit diese von v entfernt sind und wählt den am nächsten gelegenen Knoten aus. Das ist schreibt man die Entfernung zu. v1 v1 1 v1 v 2 v 3 1 v 1 v 3. Neben v 3 18

19 Grundlagen der Graphentheorie v 2 e 3 (4) v 4 v 1 0 e 1 (5) e 2 (3) e 4 (3) v 3 v 5 3 e5 (6) e7 (2) e6 (2) v 6 Abbildung 2.5 Der erste Knoten ist gefunden Nun sucht man über alle Nachbarknoten von v1 und alle Nachbarknoten von v 3 (das sind v 2,, v ) und alle Kanten, die zu ihnen führen und berechnet die Längen. v 5 6 Weg e e 1 2, e4 e 2, e5 Länge Tabelle 2.1 kürzesten Wege - erster Vergleich Der Weg über die Kante hat die kürzeste Entfernung von. Also schreibt man neben v die Zahl 5 und markiert die Kante. e1 v1 2 e 1 5 v 2 e 3 (4) v 4 e 1 (5) v 1 e 2 (3) e 4 (3) v 3 v e5 (6) v 6 Abbildung 2.6 Die Kante e 1 wurde markiert 19

20 Grundlagen der Graphentheorie Nun sucht man alle Nachbarknoten von v 2 und v 3, und ihre verbindenden Kanten. Die benachbarten Knoten sind v 4, v 5 und v 6. Diese Wege werden in der Tabelle eingetragen und verglichen. Weg e 1, e e 3 2, e4 e 2, e5 Länge Tabelle 2.2 kürzeste Wege - zweiter Vergleich Der kürzeste Weg führt über die Kanten und zum Knoten v. Die Länge beträgt 6 und wird an dem Knoten notiert. e2 e4 5 e 1 (5) e5 (6) e7 (2) e6 (2) Abbildung 2.7 Die Kante e 4 wird markiert Jetzt werden wieder alle benachbarten Knoten, der bisher gefunden Knoten gesucht. Es werden und gefunden. Die Verbindungskanten sind,, und e. Die Längen von v 1 v 4 v 6 e3 e6 e5 7 aus gemessen ergeben: Weg e 1, e e 3 2, 4, e e 6 e 2, e4, e7 2 e, e5 Länge Tabelle 2.3 kürzeste Wege - dritter Vergleich Die beiden Knoten und erhalten beide als Entfernungsangabe die 8. Die kürzesten v 4 Wege führen dabei über die Kanten und e. Nur diese Kanten werden jetzt markiert und die Entfernung zu v wird an die Knoten und v geschrieben. 1 v 6 e6 7 v

21 Grundlagen der Graphentheorie e 1 (5) e5 (6) e7 (2) e6 (2) Abbildung 2.8 Für jeden Knoten wurde der kürzeste Weg gefunden Der Algorithmus hat für jeden Knoten den kürzesten Weg vom Knoten aus gefunden. Dabei wurde für jeden Knoten die Entfernung zum Knoten berechnet und am Graphen eingetragen. Die markierten Kanten zeigen die kürzesten Wege zum Knoten gezeichneten Kanten führt kein kürzester Weg zum Knoten. v 1 v 1 v 1 v 1 an. Über die grau 21

22 Stand der Technik 3 Stand der Technik Um eine Rettungs- und Fluchtweglänge in einem Gebäudegrundriss zu ermitteln, ist es Stand der Technik, diese Weglängen durch das Ausmessen von Hand zu überprüfen. Dazu wird eine Linie konstruiert, welche den längsten Rettungsweg innerhalb des Grundrisses zu einem notwendigen Treppenraum oder einem Ausgang ins Freie oder in einen anderen Brandabschnitt markiert. Anschließend wird die Länge dieser Linie als Fluchtweglänge ermittelt. In der Bauplanungspraxis existieren aber auch Softwarelösungen, die zwar nicht die Fluchtweglänge messen, aber die Brandschutzplanung durch Simulationsprogramme unterstützen. Es handelt sich hierbei um Evakuierungssimulationen, die das Zeitfenster für eine Gebäuderäumung im Brandfall ermitteln. Noch zu nennen sind die grafischen Hilfsmittel, welche dem Planer zur Verfügung stehen, um einen Rettungs- und Fluchtwegplan gemäß der aktuellen DIN : zu erstellen. Diese grafischen Werkzeuge gibt es als eigenständige Programme und als Erweiterungen zu dem CAD-System AutoCAD Grafische Werkzeuge zum Erstellen von Fluchtwegplänen Als eigenständige Programme fungieren die Software Flucht-, Rettungs- und Alarmpläne der Firma WEKA Media GmbH & Co. KG aus Kissing und Fluchtplan Direkt des Forum Verlag Herkert GmbH aus Merching, beide aus der Umgebung von Augsburg Flucht-, Rettungs- und Alarmpläne Bei dem System Flucht-, Rettungs- und Alarmpläne, welches in der Version 5.0 als Demoversion vorlag, handelt es sich um ein CAD-System. Über verschiedene Werkzeugleisten werden Wände, Türen und Fenster zu einem Grundriss zusammengestellt. Für das Einzeichnen von Flucht- und Rettungswegen stehen weitere Werkzeugleisten zur Verfügung. Diese sind unterteilt in: Fluchtweg, dies beinhaltet das Einzeichnen des Fluchtwegs, als einzelne Linie oder als Polygon in verschiedenen Farben für Flure und Treppen, Rettungswege, hier befindet sich die Möglichkeit zum Einfärben von Flächen, um die Rettungswege zwischen Wänden und ähnlichen Bauteilen stärker hervorzuheben, Brandschutzsymbole, diese Werkzeugleiste beinhaltet Bibliotheken zum Einfügen von Rettungszeichen, Brandschutzzeichen, Feuerwehrzeichen, Brandklassen, 3 eingetragenes Warenzeichen der Firma Autodesk 22

23 Stand der Technik Richtungszeichen, Warnzeichen, Verbotszeichen, Gebotszeichen, Legenden, Explosionsschutzzonen, Verkehrszeichen, Alarmplänen und Feuerwehrlaufkarten. Abbildung 3.1 WEKA - Flucht-, Rettungs-, und Alarmpläne Die Erstellung der Grundrisse erfolgt auf einem Raster mit Hilfe der Werkzeugleisten, die die verschiedenen Bauteile, Grafiken, Symbole und Legenden zur Verfügung stellen. Die Farben und Symbole des Flucht- und Rettungsplans entsprechen den in der DIN festgelegten. Weiterhin ist die Erstellung von Feuerwehrplänen, Lärmschutzpläne und Explosionsschutzzonenpläne möglich. 23

24 Stand der Technik Abbildung 3.2 WEKA 3-D Ansicht des Grundrisses Durch die objektorientierte Zusammenstellung der Bauteile ist auch eine 3-dimensionale Ansicht möglich. Als weiteres Merkmal ist noch der Import von Zeichnungen im DXF-Format zu nennen. Die einzige Möglichkeit zum Ermitteln der Fluchtweglänge besteht jedoch darin, eine Bemaßung anzubringen Fluchtplan Direkt Die Software Fluchtplan Direkt ist eine Demoversion mit Stand: Oktober Das Computerprogramm aus dem Forum-Verlag verfügt ebenfalls über einen DXF-Import und arbeitet mit einfachen Werkzeugen zum Erstellen. Dabei werden Außen-, Innenwände und Einrichtungsgegenstände mit unterschiedlich starken Linien gezeichnet. Auch hier ist die farbliche Füllung der Flächen für Rettungswege und Treppenräume möglich. Die Symbole und Grafiken für die Flucht-und Rettungpläne werden aus Objektbibliotheken ausgewählt und eingefügt. Legenden und Rahmen werden ebenfalls zur Verfügung gestellt. Die Software verspricht eine normgerechte Erstellung von Flucht- und Rettungsplans und Feuerwehrplänen. Die Symbolbibliothek ist sehr umfangreich und enthält Symbole in den Kategorien Absperreinrichtung, Bauliche Einrichtung, Brandschutz, Elektrotechnik, Gebotszeichen, Gefahrstoffe, Löscheinrichtungen, Rettungszeichen, Schmutzwasser, Strahlenschutz, Verbotszeichen und Warnzeichen. 24

25 Stand der Technik Abbildung 3.3 Forum - Fluchtplan Direkt Durch die Erstellung mittels Linien und Polylinien handelt es hier um ein 2-D CAD-System. Die Zeichnungen werden in Projekten verwaltet und gespeichert. Auch dieses System bietet keine Möglichkeit zum Bestimmen der Fluchtweglängen. Es ist lediglich das Nachmessen von Hand möglich. Das Hauptziel ist die Darstellung des Grundrisses in einem passenden Zeichenbereich für den Ausdruck im Format DIN A4 bis DIN A Symbolbibliotheken für AutoCAD Bei den Applikationsprogrammen _pit-flucht- und Rettungsplan von der Firma pit-cup GmbH aus Heidelberg und PLANX! der Firma Bohnhardt+Partner GbR aus Kassel handelt es sich um Symbolbibliotheken für AutoCAD. Das Programm PLANX! ist auch im Paket Technisches FM als Erweiterung zu der CAFM-Software 4 FAMOS der Firma Kessler Real Estate Solutions GmbH aus Leipzig erhältlich. Bei beiden Softwaresystemen war es leider nicht möglich sie zu testen. Daher beziehen sich die folgenden Aussagen auf die Verkaufsprospekte der Firmen. 4 CAFM Computer Aided Facility Management, deutsch: Rechnergestütztes Anlagenmanagement 25

26 Stand der Technik Abbildung 3.4 Flucht- und Rettungsplan von PLANX! Beide Programme stellen ein Erweiterungsmodul, für die Nutzung von Symbolbibliotheken für Flucht- und Rettungspläne, in AutoCAD dar. Die Programme können nur in diesem CAD- System betrieben werden. Die Hersteller werben damit, das Rettungs- und Fluchtwegpläne sowie Feuerwehrpläne mit Hilfe ihrer Applikationen normgerecht erstellt werden. Die Symbolauswahl enthält Symbole in den Kategorien Brandschutz, Feuerwehr, Rettungswege, Erste Hilfe, Gebotszeichen, Verbotszeichen, Gefahrengutkennzeichnung und Warnungen. 26

27 Stand der Technik Abbildung 3.5 _pit-flucht- und Rettungsplan mit Beispielsymbolen Dabei werden die Symbole mit Hilfe einer Platzierroutine in der Zeichnung abgesetzt. Des Weiteren gibt es noch Objektgruppen für Legenden, Verhaltensanweisungen, Infotafeln und Rahmen für die Layoutgenerierung. Da es sich hier um Symbolbibliotheken, welche eine Datenbank an Objekten zur Verfügung stellt, handelt; besitzen die Applikationen keine Möglichkeit die Fluchtweglänge anzuzeigen. Die Länge der Flucht- und Rettungswege muss auch hier wieder von Hand nachgemessen werden. 3.2 Evakuierungssimulationen Evakuierungssimulationen sind eine Möglichkeit zur Überprüfung von Rettungs- und Fluchtwegen. Dabei werden per Handrechnung oder am Computer verschiedene Szenarien berechnet, um ein Gebäude zu evakuieren. Da sich auf dem Markt keinerlei Produkte zur direkten Überprüfung von Rettungs- und Fluchtweglängen innerhalb von Gebäuden finden, sollen auch diese Verfahren und Systeme mit in die Betrachtung einfliesen. Die rechnerischen Evakuierungsmodellierungen reichen dabei von einfachen, empirisch abgeleiteten Relationen bis hin zu komplexen rechnergestützten Simulationsmodellen. Die Modelle lassen sich in drei Hauptgruppen unterteilen: empirisch abgeleitete Relationen zur Kapazitätsanalyse, hydraulische Modelle (Strömungsmodelle), inklusive Netzwerkmodelle und Individualmodelle. 27

28 Stand der Technik Kapazitätsanalyse Die erste Hauptgruppe, die empirisch abgeleiteten Relationen zur Kapazitätsanalyse, nutzt die Beziehungen zwischen der Breite eines Durchgangs und der Personen, die hindurchgeleitet werden. Es handelt sich hier um die Breite eines Ausgangs, einer Treppe oder eines Korridors. Die Kapazität ist die maximale Anzahl der Personen, die pro Zeiteinheit einen Bereich bestimmter Breite passieren können. Dazu kommen Faktoren wie: die effektive Breite, sie entsteht durch Mindestabstand zwischen Personen und den geometrischen Begrenzungen (Bauteile), individuelle Aspekte, d.h. körperliche Merkmale, Mobilität und bestimmte Verhaltensweisen. Die sogenannten Handrechenverfahren[16] zählen zu den analytischen Verfahren. Dazu gehören die Verfahren nach: NFPA 130, es handelt sich hier um eine amerikanische Norm für Evakuierungszeiten an Bahnhöfen, NELSON und MACLENNAN, ein Handrechenverfahren, welches sich am Personenfluss durch Ausgangstüren orientiert. Als Probleme des Relationenmodells gelten, das Zusammentreffen von mehreren Personenströmen und die Behandlung unterschiedlicher Fluchtwegalternativen. Da dies nicht berücksichtigt werden kann Strömungsmodelle Im Gegensatz dazu fliesen in ein Strömungsmodell die oben genannten Probleme ein. Unter den hydraulischen Modellen gibt es,zum Teil noch von Hand ausführbare, erweiterte Kapazitätsanalysen bis hin zu rechnergestützten Netzwerkmodellen. In diesen Modellen wird die Gesamtheit der zu evakuierenden Personen als ein fliesendes Medium angesehen, so wie eine kompressible Flüssigkeit. Die wesentlichen Eigenschaften des Personenstromes sind Strömungsgeschwindigkeit und Dichte. Die Dichte wird dabei in Abhängigkeit von der Länge und Breite der Rettungswege sowie der Breite des Ausgangs bestimmt. Um Fehleinschätzungen zu vermeiden, ist es wichtig, dass die bei den Modellen angewandten empirischen Relationen auch für den konkreten Anwendungsfall geeignet sind. Damit ist die charakteristische Personengruppe gemeint; so gibt es Unterschiede zwischen Besuchern eines Fußballspiels und den Bewohnern einer Seniorenresidenz. Ein Verfahren für die hydraulischen Modelle ist das Verfahren nach PREDTETSCHENSKI und MILINSKI. Der Personenstrom ist vereinfacht ein Rechteck, welcher sich je nach Personendichte und Geschwindigkeit unterschiedlich schnell bewegt. Dazu kommen noch Faktoren, die z.b. das Potential einer Gefahrensituation beschreiben. [16] 28

29 Stand der Technik Individualmodelle In den Individualmodellen sind die Personen eigenständige mobile Individuen mit körperlichen Merkmalen, wie Körpergröße und Fortbewegungsgeschwindigkeit, sowie elementaren Verhaltensmustern. Diese Merkmale sind wesentlich für den Ablauf einer Evakuierung. In den Individualmodellen gibt es unterschiedliche Herangehensweisen. Eine Variante ist es, die räumliche Umgebung stark vereinfacht zu beschreiben, in Form eines Netzwerks. Eine andere Möglichkeit ist die Abbildung von Personen und ihrer Bewegung im dreidimensionalen Raum. Dabei werden die verschieden Gebäudeebenen dreidimensional erstellt und durch Treppenräume verbunden. Individualmodelle werden in Simulationssysteme angewendet, welche den Ablauf eines Evakuierungsfalles nachahmen. Diese Systeme basieren auf verschiedenen empirisch bestimmten Evakuierungsmodellen. Im Hinblick auf das Schutzziel Personensicherheit werden die Evakuierungszeiten untersucht. Anwendung finden diese Systeme angefangen von der Wohnhausevakuierung bis hin zur Räumung von Hochhäusern und Großanlagen. Als Beispiele für Simulationsprogramme werden die Systeme ASERI, buildingexodus und PedGo kurz vorgestellt. Es handelt sich dabei um eine Auswahl von Computersimulationssystemen für Evakuierungsszenarien. Weltweit gibt es über 20 solcher rechnergestützten Simulationsprogramme [19]. ASERI ist ein Computerprogramm der Firma I.S.T - Integrierte Sicherheitstechnik GmbH aus Frankfurt am Main, zur Simulation der zielgerichteten Bewegung von Personen in komplexen Gebäuden und Anlagen, mit dem Schwerpunkt Evakuierung und Räumung. Abbildung 3.6 Aseri [20] 29

30 Stand der Technik Die Abbildung stammt von der Internetseite der Firma I.S.T. Zu sehen ist, dass das Modell bei ASERI auf die körperlichen Ausmaße Rücksicht nimmt, und sich dahingehend von den beiden nachfolgenden Beispielen unterscheidet. Das Programm kann unter anderem: die Räumungszeiten bestimmen, die Bewegung einzelner Personen, auch innerhalb von Gruppen oder Personenströmen, visualisieren, individuelle Eigenschaften der Personen bzw. Gruppen berücksichtigen und externer Einflussgrößen (z.b. die Wirkung von Brandgasen und Rauch) in die Simulation einbeziehen.[13] Das Simulationsprogramm buildingexodus, wurde von der Fire Safety Engineering Group der Universität Greenwich entwickelt und vertrieben. Es handelt sich um ein Netzwerkmodell, das einem zellularen Automaten 5 entspricht. Hier belegen die Personen eine Zelle und bewegen sich von einer Zelle zur nächsten. Abbildung 3.7 buildingexodus - Simulation mit Rauchgas [21] Dies ist eine buildingexodus Beispielanwendung. Das Bild zeigt das frühe Stadium der Evakuierung eines Gebäudes bei Rauch und Feuer. Das Feuer und die Rauchgase (Rauch, 5 zellularen Automaten dienen der Modellierung räumlich diskreter dynamischer Systeme, wobei die zeitliche Entwicklung der einzelnen Zellen von den Zellzuständen der Nachbarzellen und vom eigenen Zustand abhängt 30

31 Stand der Technik Hitze und giftige Gase) sind durch die schwarzen und grauen Farben dargestellt Die dunkelste Farbe stellt die schwerste Konzentration des Rauches dar. Das Computersimulationsprogramm PedGo der Firma TraffGO HT GmbH aus Duisburg dient der Simulation von Personenströmen im Bereich von Gebäuden oder Fahrzeugen (Kreuzfahrtschiffe). Auch hier handelt es sich um einen zellularen Automaten. Abbildung 3.8 PedGo - Simulation in einem Kreuzfahrtschiff [22] Die Abbildung zeigt die Animation einer Evakuierung in den beiden hinteren Feuerzonen eines Kreuzfahrtschiffes. Wie schon eingangs erwähnt, stellt die Evakuierungssimulation eine weitere Möglichkeit für die Überprüfung von Rettungs- und Fluchtwegen dar. Mit Hilfe dieser Softwareanwendungen kann ermittelt werden, ob die Brandschutzkonzepte im Fall einer Rettung von Personen stimmig sind. Ob die geplanten Rettungs- und Fluchtweglängen eingehalten werden, wird hier nicht bestimmt. Die Simulation ermittelt mit Hilfe von Personenströmen den Zeitraum bis zur vollständigen Räumung eines Gebäudes. 31

32 Maßgebende Regelwerke 4 Maßgebende Regelwerke Gesetze und Verordnungen sowie Normen, Regeln und Richtlinien stellen die Grundlage des gesellschaftlichen Zusammenlebens dar. Teil dieser Regeln sind die Brandschutzanforderungen. Das beginnt im Grundgesetz, mit dem Freiheitsrecht: Jeder hat das Recht auf Leben und körperliche Unversehrtheit, geht über das Bürgerliche Gesetzbuch und Strafgesetzbuch bis hin zu den Arbeitsstättenverordnungen, Landesbauordnungen, Sonderbauordnungen und Richtlinien für bestimmte Bauwerke. In den letztgenannten Bauordnungen und Richtlinien finden sich neben weiteren Vorschriften für Rettungs- und Fluchtwege unter anderem auch die maximal zulässigen Längen für Rettungs- und Fluchtwege. Diese maximalen Längen der Rettungs- und Fluchtwege werden in den verschiedenen Regelwerken vorgegeben und durch Bedingungen und Faktoren bestimmt. Brandschutz Technische Brandschutzmaßnahmen Organisatorische Brandschutzmaßnahmen Bauliche Brandschutzmaßnahmen Anlagentechnische Brandschutzmaßnahmen Abwehrende Brandschutzmaßnahmen Betriebliche Brandschutzmaßnahmen Abbildung 4.1 Struktur des Brandschutzes im Bauwesen nach [23] Diese Unterteilung zeigt die Struktur des Brandschutzes. Im Vordergrund steht dabei der bauliche und abwehrende Brandschutz. Die Gesetzgebung jedoch gibt dem baulichen Brandschutz den Vorrang[15]. Die Einhaltung der Flucht- und Rettungsweglängen ordnen sich in die Technischen Brandschutzmaßnahmen ein, und gehören zu den Baulichen Brandschutzmaßnahmen. 32

33 Maßgebende Regelwerke Landesbauordnung Bauliche Anlagen Bauliche Anlagen besonderer Art und Nutzung Durchführungsverordnungen Bauvorlagenverordnung Allgemeine Durchführungsverordnung Feuerungsverordnung Bautechnische Prüfungsverordnung Überwachungsverordnung Sonderbauverordnungen Geschäftshausverordnung Garagenverordnung Krankenhausverordnung Sonstige Verordnungen Sonstige Verordnungen Brandschutz Forderungen Technische Baubestimmungen sonstige Normen und technische Richtlinien Versammlungsstättenverordnung Verwaltungsvorschriften z.b. Hochhausrichtlinie Abbildung 4.2 Zusammenhänge zwischen bauaufsichtlichen Brandschutzvorschriften, Normen und technischen Richtlinien nach [23] Die Abbildung 4.2 zeigt die Zusammenhänge zwischen den bauaufsichtlichen Brandschutzvorschriften, Normen und technischen Richtlinien. Dabei stellt die jeweilige Landesbauordnung wichtigste Vorschrift dar. Die Darstellung soll weiterhin die Komplexität und die Vielzahl an Anforderungen zum Brandschutz verdeutlichen. 33

34 Maßgebende Regelwerke 4.1 Verordnungen Zu den Verordnungen gehört die Arbeitsstättenverordnung mit den dazugehörigen Arbeitsstättenrichtlinien BGV 6 A8 [14]. Es handelt sich hier um bundesweit geltende Vorschriften, die für Bauausführende von Bedeutung sind. Zur Einhaltung des Brandschutzes fordern die Arbeitstättenverordnungen eine entsprechende Ausgestaltung von Rettungs- und Fluchtwegen an einer Arbeitstätte bzw. am Arbeitsplatz. Es handelt sich bei der Arbeitsstättenverordnung um eine Unfallverhütungsvorschrift für die Sicherheits- und Gesundheitskennzeichnung am Arbeitsplatz. Diese Vorschrift verlangt den Aushang von Flucht- und Rettungsplänen am Arbeitsplatz. Auf der Grundlage, dass auch Verkehrs- und Rettungswege, Sozialräume, Unterrichtsräume, Maschinenräume und Lagerbereiche zu den Arbeitsstätten gehören. 4.2 Bauordnungen und Richtlinien Die Bauordnung stellt das Hauptregelwerk für die Erstellung und Unterhaltung von baulichen Anlagen dar. Durch das föderalistische Staatswesen der Bundesrepublik Deutschland sind die ortstypischen Sonderregelungen in den Landesbauordnungen der Bundesländer geregelt. Um eine gleiche Grundvoraussetzung für das Bauen zu schaffen, haben sich die verantwortlichen obersten Regierungsstellen des Bundes auf einheitliche Grundlagen geeinigt, die in der Musterbauordnung (MBO) geregelt sind. Die Musterbauordnung und die Landesbauordnungen beziehen sich in den wesentlichen Punkten auf den Wohnungsbau. Für die Bauordnungen, Sonderbauordnungen und Richtlinien stellen sich die Rettungs- und Fluchtwege je nach Gebäudetyp und Nutzung verschieden dar. Eine grundlegende Aussage zu Rettungs- und Fluchtwegen zeigt das folgende Kapitel und geht auf die jeweiligen Abschnitte eines Rettungsweges detaillierter ein. Die Gliederung und die Aussagen sind dabei aus [1] entnommen. 4.3 Rettungs- und Fluchtwege Rettungs- und Fluchtwege sind ungehindert begehbare Gänge, Flure und Treppenanlagen, die über Ausgänge in sichere Bereiche oder unmittelbar zu ebener Erde ins Freie führen, und der Personenrettung dienen. Es wird im Bauordnungsrecht zwischen dem ersten und zweiten Rettungsweg unterschieden. Bei dem ersten Rettungsweg handelt es sich um Wege innerhalb des Gebäudes, die als feste bauliche Einrichtung ständig vorhanden sind, und sofort ohne fremde Hilfe begangen werden können. Dies sind die normalen Verkehrswege im Gebäude, die den Nutzern bekannt sind und deshalb im Ernstfall von ihnen aufgesucht werden. Diese Wege sind auch Angriffswege der Feuerwehr. Der zweite Rettungsweg muss in Abhängigkeit von 6 Berufsgenossenschaftliche Vorschriften 34

35 Maßgebende Regelwerke der Gefährdungsklasse des Gebäudes entweder über Rettungsgeräte der Feuerwehr oder über einen zweiten baulichen Rettungsweg sichergestellt werden. Grundsätzlich müssen in jedem Geschoß zwei Rettungswege vorhanden sein, außer es gibt einen Sicherheitstreppenraum, in den Feuer und Rauch nicht eindringen können. Die Planung und die Ausgestaltung des ersten Rettungsweges sind äußerst wichtig. Die Rettungswege müssen mindestens für die Dauer des Fliehens standhalten und dürfen nicht durch Raucheintritt gefährdet werden, d.h. sie müssen bautechnisch dementsprechend ausgelegt werden. Ein Rettungsweg setzt sich zusammen aus: dem Weg aus dem Aufenthaltsraum, notwendige Flure, Treppe, Treppenraum, Ausgang ins Freie und dem Weg bis zur öffentlichen Verkehrsfläche. An jeden dieser Abschnitte stellen die Bauordnungen und Sonderbauordnungen Anforderungen an die Verkehrssicherheit und Erreichbarkeit. Des Weiteren werden Anforderungen an die Brennbarkeit der verwendeten Baustoffe von Bauteilen, Dämmschichten, Bekleidungen und Fußbodenbelägen, an die Feuerwiderstandsdauer der Bauteile sowie an die Belüftung und Beleuchtung. Die konkreten Anforderungen unterscheiden sich nach Gebäudetyp und Nutzung. Der Gebäudetyp und die Nutzung geben Auskunft darüber welche Anzahl von Personen gefährdet sind, deren Ortskenntnis und in bestimmten Fällen ihre Beweglichkeit. Der Ansatz wird deutlich wenn man z.b. ein Krankenhaus mit bettlägerigen Patienten im Vergleich zu einem Einfamilienhaus sieht. Eine weitere Gemeinsamkeit in allen Bauordnungen ist: in Fluren ist eine Stufenfolge von weniger als drei Stufen unzulässig, da der flüchtende Mensch mindestens drei oder mehr aufeinander folgende Stufen erwartet. Die Breite von Rettungswegen muss nach der maximalen Anzahl von Personen, die im Ernstfall darauf angewiesen sind, bemessen werden. Die notwendige Mindestbreite darf nicht durch Einbauten eingeengt werden. Dies ist notwendig um Staus zu vermeiden. Bei Bauten besonderer Art und Nutzung muss eine Notbeleuchtung sichergestellt sein, die durch eine, von der sonstigen Energieversorgung, unabhängige Energiequelle versorgt wird. An die Verkehrssicherheit der Rettungswege werden Anforderungen bezüglich der Rettungsweglänge gestellt. Hier gibt es Werte in den verschiedenen Bauordnungen und Sonderbauordnungen die zwischen 10 m und 130 m liegen. Sie sind abhängig vom Gebäudetyp und den damit verbunden Gefahren. z.b. für offene Garagen gilt 50 m, da hier der Rauch schnell abgeführt werden kann, maximal 130 m können in Verkaufsstätten erreicht werden, wenn hier alle Möglichkeiten ausgeschöpft werden. Zum Beispiel kann ein Rettungsweg 25 m innerhalb des Verkaufsraumes, 35 m in der Ladenstraße, wenn sie Rauchabzüge hat, 35 m im notwendigen Flur, wenn die Verkaufsstätte gesprinklert ist, und 35 m in der Treppenraumerweiterung. Dies ergibt in der Summe 130 m. 35

36 Maßgebende Regelwerke Gemessen werden diese Längen in effektiver Weglänge (Lauflänge) oder in Luftlinie, jedoch nicht durch Bauteile hindurch (Garagenverordnung von Nordrhein-Westfalen). Bauordnungen Von jeder Stelle eines Aufenthaltraumes bis zum Treppenraum oder ins Freie Hochhäuser Von jeder Stelle eines Aufenthaltraumes bis zum Treppenraum oder ins Freie Krankenhäuser Von jeder Stelle eines Aufenthaltraumes bis zum Treppenraum oder ins Freie Versammlungsräume Von jedem Besucherplatz bis zum Ausgang des Versammlungsraumes je nach Höhe des Raumes Von jedem Punkt eines Flures bis zum Treppenraum Verkaufsstätten Von jedem Punkt des Verkaufsraumes bis zum nächsten Hauptgang Von jedem Punkt des Verkaufsraumes bis zum nächsten Ausgang, notwendigen Flur oder Treppenraum gemessen in Luftlinie (effektive Weglänge darf nicht länger als 35 m sein) Gaststätten Von jedem Gastplatz bis zum nächsten Hauptgang Bei mehr als 200 Gastplätzen von jedem Gastplatz bis zum nächsten Ausgang in Abhängigkeit von der Höhe des Raumes Garagen In geschlossenen und unterirdischen Garagengeschossen von jeder Stelle bis zum nächsten Ausgang oder Treppenraum In oberirdischen offenen Garagen von jeder Stelle bis zum nächsten Treppenraum oder Ausgang Schulen Von jeder Stelle eines Unterrichtsraumes bis zum nächsten Treppenraum oder Ausgang (Luftlinie) 35 m 25 m 30 m m 30 m 10 m 25 m 10 m m 30 m 50 m 35 m Tabelle 4.1 Rettungsweglängen für Nordrhein-Westfalen nach [1] Die Tabelle zeigt eine Zusammenfassung, die nach Bauordnungen und Sonderbauordnungen sortiert ist. Auf die einzelnen Abschnitte und die Ausgestaltung des Flucht- und Rettungswegs wird in den nachfolgenden Kapiteln näher eingegangen. Dabei liegt das Augenmerk auf den Längenangaben in den Rettungswegabschnitten Der Weg aus dem Aufenthaltsraum Der Weg aus dem Aufenthaltsraum ist der freigehaltene Gang innerhalb einer Nutzungseinheit, der zum nächsten notwendigen Flur oder ins Freie führt. In Nutzungseinheiten, die dem 36

37 Maßgebende Regelwerke Wohnen oder ähnlichen Zwecken dienen werden keine Anforderungen an die Ausstattung gestellt. Dies gilt auch für Flure innerhalb von Nutzungseinheiten, die einer Büro- oder Verwaltungsnutzung dienen und deren Nutzfläche in einem Geschoß unter 400 m² beträgt. Für Sonderfälle, wie z.b. Großraumbüros, müssen weitergehende Sicherheitsmaßnahmen getroffen werden. Auf jedem Fall darf eine maximale Weglänge (effektiver Weg) von jedem Punkt eines Aufenthaltsraumes bis zum nächsten Ausgang ins Freie oder bis zur nächsten notwendigen Treppe von 35 m nicht überschritten werden. In Räumen mit erhöhter Brandgefahr oder bei Räumen mit großer Ausdehnung (z.b. Versammlungs-, Verkaufs-, Produktionsoder Lagerräumen) müssen die maximalen Längen von jedem Punkt des Aufenthaltraumes bis zum nächsten Ausgang aus dem Raum und deren Gestaltung berücksichtigt werden. Dazu müssen Bestuhlungs- und Möblierungsplänen als zusätzliche Bauvorlage vorhanden sein. Hier stellen auch andere geltende Vorschriften (z.b. Arbeitsstättenverordnung) Anforderungen an die Rettungsweglängen. In Verkaufsräumen müssen nach Musterverkaufsstätten-Verordnung Hauptgänge angeordnet werden. Diese Hauptgänge müssen von jedem Punkt des Verkaufsraumes in höchstens 10 m Entfernung erreichbar sein. Die Ausgänge aus den Verkaufsräumen müssen von jeder Stelle eines Verkaufsraumes in höchstens 25 m erreicht werden können. In Versammlungsräumen muss nach der Versammlungsstättenverordnung von Nordrhein- Westfalen von jedem Besucherplatz ein Ausgang in 30 m bis höchstens 60 m (abhängig von der Raumhöhe) erreichbar sein. In Gasträumen mit mehr als 2000 Gastplätzen darf, nach Musterversammlungsstättenverordnung, der Weg von jedem Tischplatz zu einem Gang nicht länger als 10 m sein. Der Abstand von Tisch zu Tisch soll 1,50 m nicht unterschreiten. Der Weg von einem Gastplatz zum nächsten Ausgang darf nicht länger als 30 m bis 60 m (je nach Höhe des Raumes) sein. In Produktions- oder Lagerräumen muss von jedem Punkt des Raumes ein Rettungsweg, wozu auch die Hauptgänge im Raum zählen, nach 15 m zu erreichen sein. Die Hauptgänge sollen geradlinig ins Freie führen, zu einem notwendigen Treppenraum oder zu einem anderen Brandabschnitt führen. Diese Brandabschnitte müssen Ausgänge unmittelbar ins Freie, oder zu notwendigen Treppenräumen mit einem sicheren Ausgang, haben. Die Entfernung zu einem der Ausgänge darf in bis zu 5 m hohen Räumen 25 m und bei mindestens 10 m hohen Räumen 50 m betragen. Wenn eine automatische Brandmeldeanlage mit daran angeschlossener Alarmierungseinrichtung, oder eine Sprinkleranlage und eine Alarmierungseinrichtung mit mindestens Handauslösung vorhanden ist, dürfen die Entfernungen, in bis zu 5 m hohen Räumen 50 m, in mindestens 10 m hohen Räumen 70 m betragen. Die Wege dürfen in Luftlinie, unter Berücksichtigung von Bauteilen und genehmigungsbedürftigen Einrichtungen, die bei der Flucht umgangen werden müssen, gemessen werden. Die tatsächliche Lauflänge ist auf das 1,5fache der zugelassenen Entfernung beschränkt. Produktions- und Lagerräume mit Grundfläche von mehr als 200 m² müssen mindestens zwei Ausgänge haben. 37

38 Maßgebende Regelwerke Für mehrgeschossige Industriegebäude mit einer Grundfläche mit mehr als 1600 m² werden grundsätzlich zwei bauliche Rettungswege verlangt. Weitere Anforderungen an die Rettungswege sind, dass Türen in Fluchtrichtung aufschlagen oder, dass sie weder beim Öffnen noch im geöffneten Zustand die erforderliche Breite von Verkehrs- bzw. Rettungswegen und Fluren einengen. In Verkaufsstätten müssen im Erdgeschoss von jedem Punkt eines Verkaufsraumes mindestens zwei unmittelbar ins Freie oder in den Treppenraum einer notwendigen Treppe führende Ausgänge erreichbar sein, einer davon in höchstens 25 m Entfernung. Nach der Muster- Verkaufsstätten-Richtlinie darf einer der Ausgänge in gesprinklerten Verkaufsstätten auch auf Ladenstraßen führen und hier eine zusätzliche Länge von 35 m haben, wenn die Ladenstraße Rauchabzüge hat. Darüber hinaus darf der Rettungsweg eine zusätzliche Länge von 35 m aufweisen, wenn er durch notwendige Flure führt (dies gilt nur für gesprinklerte oder erdgeschossige Verkaufsstätten) Die notwendigen Flure Notwendige Flure stellen die horizontale Verbindung zwischen den Nutzungseinheiten und den Treppenräumen oder, im Erdgeschoss, mit dem Freien dar. Grundsätzlich dürfen in notwendigen Fluren keine brennbaren Einbauten eingebracht werden. Damit die Flure als wesentlicher Bestandteil des Rettungsweges ihre Funktion als Fluchtweg für die Nutzer, aber auch als Angriffsweg für die Feuerwehr, erfüllen können, müssen auch sie brandschutztechnische Anforderungen erfüllen. Für Leitungsanlagen innerhalb von notwendigen Fluren sind die Vorgaben der als technische Baubestimmung in den Ländern eingeführten Richtlinien über brandschutztechnische Anforderungen an Leitungsanlagen LAR zu befolgen. An Flurwände werden je nach Gebäudehöhe unterschiedliche Anforderungen an die Feuerwiderstandsfähigkeit gestellt, diese aufzuführen, würde an dieser Stelle jedoch zu weit führen. Sind Flure länger als 30 m, so müssen sie durch selbstschließende Rauchschutztüren nach DIN in Rauchabschnitte unterteilt werden. In Nordrhein-Westfalen dürfen Flure mit nur einer Fluchtrichtung (Stichflure) nur 10 m lang sein. Sie dürfen 20 m lang sein, wenn die Räume über einen zweiten Rettungsweg verfügen Die nutzbare Breite der Flure muss für den größten zu erwartenden Verkehr ausreichen. Konkrete Mindestangaben werden nur in einigen Bauordnungen gemacht (z.b. Brandenburg 1 m, Baden-Württemberg 1,25 m). Als Mindestmaß sollte aber auch hier 1 m wie bei Treppen nicht unterschritten werden. Für eine größere Anzahl von Nutzern kann hier die Formel der Versammlungsstättenverordnungen bzw. Versammlungsstättenrichtlinien herangezogen werden: 1 m je 150 darauf angewiesene Personen bzw. nach Musterversammlungsstättenverordnung 1,20 m je 200 darauf angewiesene Personen. 38

39 Maßgebende Regelwerke In Hochhäusern müssen nach den Hochhausrichtlinien die Flure zwischen den Treppenraumzugängen höchstens 40 m lang sein, und müssen durch Rauchschutztüren in 20 m lange Rauchabschnitte unterteilt werden. Stichflure mit nur einer Fluchtrichtung dürfen nicht länger als 10 m sein. Der Stichflur darf allerdings 20 m lang sein, wenn die Räume einen zweiten Rettungsweg, z.b. einen Rettungsbalkon, haben. In Krankenhäusern gelten dieselben brandschutztechnischen Anforderungen wie in den Bauordnungen bzw. Hochhausverordnungen, je nachdem, ob es sich um ein Gebäude mittlerer Höhe oder ein Hochhaus handelt. Die nutzbare Breite der Flure muss mindestens 1,50 m betragen; wenn Kranke liegend befördert werden, müssen sie eine nutzbare Breite von mindestens 2,25 m haben. Die nutzbare Breite darf nicht durch Einbauten eingeengt werden. In Versammlungsstätten muss die Mindestbreite der Flure 1,20 m je 200 darauf angewiesene Personen betragen. Dies gilt auch für Versammlungsräume, die größer als 1000 m² sind. In Verkaufsstätten müssen die Flure, die als Rettungswege dienen, eine Mindestbreite von 2 m haben und dürfen durch Türflügel nicht eingeengt werden. Wandbretter, Wandtische, Vitrinen und ähnliches sind in den Fluren nicht zulässig. Eine Stufenfolge von mindestens drei Stufen ist zulässig, wenn sie eine Stufenbeleuchtung hat, die an die Sicherheitsstromversorgung angeschlossen ist Die Treppen Jedes nicht zu ebener Erde liegende Geschoss muss über eine Treppe erreichbar sein (notwendige Treppen). Sie sind Bestandteil des oft einzigen direkten Verbindungsweges zwischen den Aufenthaltsräumen in den Obergeschossen und dem Freien, der im Brandfall sofort und ohne fremde Hilfe begangen werden kann. Deshalb müssen Treppen weitreichende Anforderungen erfüllen. Grundsätzlich gilt, dass Treppen für den größtmöglichen Verkehr ausreichend bemessen sein müssen. In den meisten Bauordnungen wir eine Mindestbreite von 1 m gefordert. Für Wohngebäude mit nicht mehr als zwei Wohnungen sind 80 cm als Mindestbreite zugelassen Die Treppenräume Damit eine notwendige Treppe im Brandfall ihrer wichtigen Funktion als Flucht- und Rettungsweg gerecht werden kann, müssen sie in einem eigenen Raum liegen. An diese Treppenräume werden in den Bauordnungen und Sonderbauverordnungen hohe Anforderungen gestellt. Die Anforderungen erstrecken sich auf die Lage im Gebäude, auf ihre Feuerwiderstandsdauer und auf Rauchabzugsvorrichtungen. Für einen innen liegenden Treppenraum darf der Zugang zum Treppenraum über einen Vorraum oder über einen höchstens 10 m langen Flur führen. Diese Sonderegelungen gelten in Nordrhein-Westfalen und Mecklenburg-Vorpommern. 39

40 Maßgebende Regelwerke Die Kennzeichnung von Rettungswegen In allen Sonderbauverordnungen und Richtlinien wird eine Kennzeichnung von Rettungswegen verlangt. Diese muss der DIN bzw., wenn es um gewerblich genutzte Räume handelt, den Unfallverhütungsvorschriften der Berufsgenossenschaften BGV A8 entsprechen. Die Schilder müssen so angebracht sein, dass sie von überall sichtbar sind und nicht durch Gegenstände verstellt werden. Die Kennzeichnung wird deshalb in Türhöhe angebracht. Das kann im Brandfall allerdings dazu führen, dass die Schilder, durch den sich unter der Decke ansammelnden Rauch, nicht mehr sichtbar sind. Deswegen gehen neuere Entwicklungstendenzen hin zu Fluchtweg- bzw. Sicherheitsleitsystemen, die in Bodennähe angebracht sind und entweder nachleuchtend sind (stromunabhängig) oder elektrisch versorgt werden Der zweite Rettungsweg Wird der Rettungsweg im Gebäude nicht über einen Sicherheitstreppenraum sichergestellt, muss entweder eine zweite notwendige Treppe errichtet werden, oder es muss für jede Nutzungseinheit eine anleiterbare Stelle vorhanden sein, die mit dem Rettungsgerät der Feuerwehr erreicht werden kann. Die zweite notwendige Treppe muss dieselben Anforderungen erfüllen wie die erste notwendige Treppe. Die Treppen sind im Gebäude so zu verteilen, dass die Rettungswege möglichst kurz und die Treppen von den Nutzungseinheiten in entgegen gesetzten Richtungen zu erreichen sind. Wenn dieser zweite Rettungsweg über Rettungsgerät der Feuerwehr sichergestellt, so ist darauf zu achten, dass die zum Anleitern vorgesehenen Öffnungen eine ausreichende Größe haben. Fenster, die als Rettungswege dienen, müssen im Lichten mindestens 0,90 x 1,20 m groß sein und nicht höher als 1,20 m über Fußbodenoberkante angeordnet sein (in Bayern 0,60 x 1,00 m, Brüstungshöhe 1,10 m; in Baden-Württemberg 0,90 x 0,90 m; Brüstungshöhe 1,20 m). Wenn solche Öffnungen in Dachschrägen oder Dachaufbauten liegen, so darf der Abstand zwischen ihrer Unterkante oder einem davor liegenden Austritt nur so groß sein, dass sich die Person bemerkbar machen kann (in Hessen und Schleswig-Holstein 1 m; Nordrhein- Westfalen 1,20 m). Wenn die Brüstungshöhen größer als 8 m sind, müssen Aufstellflächen für Hubrettungsfahrzeuge geschaffen werden, und für deren Freihaltung gesorgt werden Flucht- und Rettungswegpläne Manche Sonderbauordnungen (Gaststätten, Krankenhäuser) sowie das Arbeitsstättenrecht fordern Übersichtspläne, die Angaben über die im Gefahrenfall zu benutzenden Rettungswege, der Rückzugrichtung und die Feuerlöscheinrichtungen enthalten. Beispiele und Hinweise für die Gestaltung solcher Pläne finden sich in der BGV A8 Sicherheits- und Gesundheits- 40

41 Maßgebende Regelwerke schutzkennzeichnung am Arbeitsplatz, in der VdS Brandschutzplan, sowie in der DIN Nach BGV A8 sollte aus dem Plan ersichtlich sein, welche Fluchtwege der Versicherte von seinem Arbeitsplatz oder jeweiligen Standort aus zu nehmen hat, um in einen sicheren Bereich oder ins Freie zu gelangen. In diesem Zusammenhang ist es wichtig die Sammelstellen zu kennzeichnen. Außerdem sind Kennzeichnungen für Standorte von Erste-Hilfe- und Brandschutzeinrichtungen in den Flucht- und Rettungsplan aufzunehmen. Zur sicheren Orientierung ist es wichtig, den Standort des Betrachters im Flucht- und Rettungswegplan zu kennzeichnen, vorzugsweise durch einen schwarzen Punkt. Soweit auf dem Flucht- und Rettungswegplan nur ein Teil aller Grundrisse des Gebäudes dargestellt ist, sollte eine Übersichtsskizze die Lage im Gesamtkomplex verdeutlichen. Grundrisse, Sicherheitszeichen und Legenden müssen aus dem üblichem Sehabstand eindeutig erkennbar sein. Grundrisse sollten in einem Maßstab von 1:100 oder größer dargestellt werden. Empfehlenswert sind Zeichen- oder Schrifthöhen von mindestens 10 mm. Das Zeichen für den Betrachterstandort ist größer zu wählen. Bei Ausfall der Allgemeinbeleuchtung kann die Erkennbarkeit von Flucht- und Rettungswegplänen z.b. durch Verwendung lang nachleuchtender Materialien erreicht werden. Ein Maßstab von 1:100, wie er in der BGV gefordert wird, kann mitunter dazu führen, dass der Ausschnitt aus dem Geschossgrundriss für die gewünschte Übersicht zu klein oder das zu verwendende Papierformat zu groß wird. Bewährt haben sich die Formate DIN A4 und DIN A3. Nach VdS 2030 sollten Rettungswegpläne einen Maßstab von 1:200 haben. In jedem Fall sollte der Maßstab so gewählt werden, dass der Grundriss gut wiederzuerkennen ist, aber gleichzeitig genügend Platz für die anzubringenden Symbole bleibt. Die Lage des Grundrisses auf dem Plan sollte so gewählt werden, dass am jeweiligen Standort die Richtungen im Plan mit den realen Gegebenheiten übereinstimmen. Diese Empfehlungen sind auch in der DIN zu finden. Die DIN ISO (Stand November 2007), welche zurzeit als Entwurf vorliegt, ist der wahrscheinliche Nachfolger der DIN früher Verband der Sachversicherer e.v., heute VdS Schadenverhütung GmbH 41

42 Konzept für ein Werkzeug zur Fluchtwegplanung in einem CAD-System 5 Konzept für ein Werkzeug zur Fluchtwegplanung in einem CAD-System Für die Ermittlung der Rettungs- und Fluchtweglänge soll eine Computerapplikation konzipiert werden. Diese Software soll innerhalb eines Gebäudegrundrisses die Länge der Rettungs- und Fluchtwege bestimmen. Damit nicht ein eigenständiges Programm von Grund auf neu geschaffen werden muss, soll dies in einer vorhandenen 2-D-CAD-Umgebung realisiert werden. Dieses Kapitel soll die Anforderungen und die daraus resultierenden Konzepte für eine Applikation zur Bestimmung der Fluchtweglängen finden. Die grundlegende Idee besteht darin, dass durch die Integration des Programms in ein CAD- System die geometrischen Informationen, sprich die Längen- und Abstandswerte zwischen den Elementen (z.b. Bauteilen) der Konstruktionszeichnung abgegriffen werden, und für die Berechnung und Ermittlung der Flucht- und Rettungsweglängen genutzt werden. Da sich in einer Grundrisszeichnung und den Zeichnungen für die weiteren Etagen eines Gebäudes alle Strukturen (Aufenthaltsräume, Türen, Flure, Treppen, Ausgänge usw.) abzeichnen, bietet sich dieser Teil der Konstruktionszeichnungen eines Gebäudes hervorragend an, um alle möglichen Wege in einer Gebäudeebene zu ermitteln. Als Straßennetz dieser möglichen Wege soll ein Graph in den Grundriss eingefügt werden. Dabei werden Knoten des Graphen an folgenden Stellen im Grundriss eingefügt: die Stelle, die den weitesten vom Raumausgang entfernten Punkt in einem Raum markiert, an Stellen, die benötigt werden um einem Hindernis in der Lauflinie auszuweichen, an den Punkten an denen ein Richtungswechsel auf der Lauflinie eines Rettungsweg stattfindet, an den Punkten an denen sich mehrere Rettungswege kreuzen, zusammentreffen oder trennen und an den Punkten an denen der Rettungsweg endet. Das kann der Ausgang ins Freie oder der Ausgang zu einer(m) notwendigen Treppe(Treppenraum) oder der Übergang in einen anderen Brandabschnitt sein. Der entstandene Graph soll die Wege aus dem entferntesten Punkt in jedem Raum bis hin zum Notausgang darstellen. Die Kanten des Graphen können nur an den Stellen zwei Knoten verbinden, wo auch einen tatsächlicher Weg besteht (die Kanten dürfen keine Wände oder sonstige Bauteile schneiden). Die Applikation ist als Erweiterung bzw. Zusatzprogramm zu einem bestehenden CAD- System gedacht. Als zeitgemäße Implementierung soll das Computerprogramm in einer ob- 42

43 Konzept für ein Werkzeug zur Fluchtwegplanung in einem CAD-System jektorientierten Sprache (z.b. Java) umgesetzt werden. Das Konzept als Erweiterungsmodul eines CAD-Systems macht es möglich die Befehle und Elemente des CAD Systems zu nutzen und schon vorhandene Elemente zu modifizieren. So kann die Struktur, bei einem modernen System bestehend aus Modell (Datenbasis), die Präsentationsebene (grafische Nutzeroberfläche) und Steuerung (Befehle) eines CAD-Systems genutzt werden. CAD-System Präsentation löst aus visualisiert CAD-Befehle bearbeiten CAD-Modell Erweiterungsmodul Befehle bearbeiten Modell erweitert Datenmodell Abbildung 5.1 Konzept für die Struktur des Plugin Es ist jedoch auch möglich neben der Datenbasis des CAD-Systems ein eigenes Datenmodell zu schaffen, um den geplanten Graphen separat vorzuhalten. Dazu werden die Befehle des Plugins dem Befehlspool des CAD-Systems hinzugefügt, und die grafischen Komponenten dem Modellbereich. Die grafischen Komponenten kapseln dabei die Datenmodellelemente Konten und Kante. Für die grafische Darstellung des Graphen wird das CAD-Modell um das Modell des Plugins (Erweiterungsmodul) erweitert. Das Erweiterungsmodul muss darüber hinaus Algorithmen zur Ermittlung oder Berechnung der Weglängen besitzen. Diese Berechnungsschritte erfordern die Implementierung eigener Befehle, die dem CAD-System hinzugefügt werden. Dazu gehören Befehle für die Erstellung, Bearbeitung, Berechnung und Auswertung eines Graphen. Weiterhin sollten noch Schnittstellen für den Im- und Export in ein Austauschformat (z.b. textbasiertes Dateiformat) vorgesehen werden. Diese Schnittstelle kann den Datenaustausch zu anderen Systemen gewährleisten. 43

44 Konzept für ein Werkzeug zur Fluchtwegplanung in einem CAD-System 5.1 Verarbeitung Die Verarbeitung umfasst die Erstellung, Bearbeitung und Berechnung von Fluchtweginformationen. Dazu gehören das Erstellen einer Datenbasis, die Befehle um den Graphen in der Datenbasis zu erstellen und zu verändern, und die notwendigen Algorithmen zum Ermitteln der Fluchtweglängen. Auf dieser Grundlage kann dann eine Berechnung der Fluchtweglängen in einem Gebäudegrundriss erfolgen. Als Planungsmittel für die softwaretechnische Umsetzung wird UML 8 genutzt. Dadurch wird die Applikation auf dem Stand der Technik entworfen. Wie schon oben erwähnt wird eine Trennung von Modell, Steuerung und Präsentation vorgenommen werden, nach dem sogenannten MVC 9 -Konzept. Abbildung 5.2 Konzept des Plugins Das Modell wird einerseits durch die grafischen Komponenten, die in der Datenbasis des CAD-Systems abgelegt sind, und andererseits durch den Graphen mit seinen Elementen repräsentiert. Die Befehle des Erweiterungsmoduls müssen die grafischen Komponenten erstellen, löschen und verändern können. Dafür müssen sie auf das Modell in der Datenbasis des CAD-Systems zugreifen. Weiterhin sind Befehle, wie z.b. die Berechnung der Fluchtweglängen nötig, die direkt auf das Datenmodell zugreifen; und natürlich müssen auch die Befehle des CAD-Systems die grafischen Komponenten manipulieren können. Zu diesen Aktionen zählt das Transformieren, das Kopieren und das Selektieren der grafischen Komponenten. Die Präsentationsebene stellt dabei Handles, in Form der grafischen Komponenten, für die Modellkomponenten Knoten und Kante, des Graphen, bereit. 8 Unified Modeling Language, eine standardisierte Sprache für die Modellierung von Software und anderen Systemen 9 Modell-View-Controller, deutsch: Model-Präsentation-Steuerung 44

45 Konzept für ein Werkzeug zur Fluchtwegplanung in einem CAD-System Erstellung Als erstes müssen die für einen Graphen nötigen Objekte Knoten und Kante erstellt werden. Dies muss als Datenmodell und für den Nutzer sichtbar, auch als grafische Präsentation geschehen. Wie schon erwähnt kapseln die grafischen Komponenten dabei die Objekte des Datenmodells. Bei der Erstellung ist zunächst die Bildung des Datenmodells wichtig; die grafischen Komponenten für die Visualisierung werden in Kapitel 5.3 näher behandelt. Nun stellt sich Frage nach der rechnerinternen Darstellung eines Graphen. Vorzugsweise werden Graphen entweder als Matrix oder in Form einer Liste im Rechner gespeichert. Um die passende Antwort zu finden, werden die beiden Möglichkeiten im Nachfolgenden miteinander verglichen. Die Matrix bietet unter anderem die Vorteile eines schnellen Zugriffs auf einzelne Elemente. Zu den Nachteilen zählt der große Speicheraufwand. Es muss Speicherplatz für jedes belegte oder nichtbelegte Element einer Matrix vorgehalten werden, egal ob es sich um eine Adjazenz- oder Inzidenzmatrix handelt. Weiterhin erschwert die statische Speicherstruktur einen dynamischen Prozess, wie das Hinzufügen von neuen Kanten oder Knoten. In diesem Fall müsste man entweder im Vorhinein eine Matrix mit ausreichend großer Anzahl an Elementen vorhalten, wobei dann nicht alle Zeilen und Spalten benötigt werden, oder man müsste ständig die Größe der Matrix ändern. Zu den Vorteilen der Liste zählen die dynamische Speicherstruktur und der damit verbundene variable Speicherbedarf, d.h. es können Elemente hinzugefügt oder entfernt werden, ohne erst die Größe neu zu vereinbaren. Als Nachteil ist der zeitintensivere Zugriff auf die Elemente zu sehen. Wobei jeweils die gesamte Liste nach dem entsprechenden Element durchsucht wird. Als Lösung wird eine listenbasierte Speicherung im Computer favorisiert. Ausschlaggebend sind dabei der geringere Speicherbedarf und die Nähe zum mathematischen Grundprinzip der Mengen von Knoten und Kanten als Abbild eines Graphen. Dazu kommt noch die bessere Handhabbarkeit der Listen für den Algorithmus zur Berechnung der kürzesten Wege, welcher auch zur Implementierung gehört (nähere Informationen im Kapitel 5.1.3). Abbildung 5.3 Datenmodell des Graphen 45

46 Konzept für ein Werkzeug zur Fluchtwegplanung in einem CAD-System Da die Umsetzung der Applikation im Rahmen einer objektorientierte Programmiersprache geschehen soll, ist die objektorientierte Abbildung eines Graphen und seiner Knoten und Kanten selbstverständlich. Wie in Abbildung 5.3 gezeigt, kann eine Klasse Graph keinen oder beliebig viele Knoten und Kanten besitzen, und die Knoten und Kanten gehören zu einem Graphen. Eine Kante besitzt immer zwei Knoten; dagegen kann ein Knoten mit keiner bis beliebig vielen Kanten verbunden sein. Darüber hinaus sind bei den Klassen für den Graphen, den Knoten und die Kante Attribute zu erstellen. Für die Klasse Graph sind als Attribute: eine Liste mit allen Knoten und eine Liste von Kanten vorzusehen. Da es in diesem Kapitel um das Erstellen eines Graphen geht, werden die Methoden zur Bearbeitung der Knoten- und Kantenlisten im Kapitel näher betrachtet. Für die Klasse Knoten sind unterschiedliche Attribute zu erstellen. Als grundlegende Eigenschaften müssen ein Name und die Position des Knoten in der Zeichnung vorhanden sein. Darüber hinaus sind die zusätzlichen Eigenschaften: der Name des Vorgängerknoten (der Knoten in Richtung Notausgangsknoten), der Knotentyp (z.b. Notausgangsknoten) die Entfernung zum Notausgangsknoten, der nächstgelegene Notausgangsknoten, ein Skalierfaktor für die Symbolgröße und die Möglichkeit weitere Eigenschaften hinzufügen zu können wichtig. Ein Klasse Kante sollte ebenfalls als grundlegende Eigenschaften den Namen der Kante, die Länge der Kante und den Start- und Endknoten der Kante besitzen. Zusätzliche Eigenschaften sind: der Richtungsknoten für die berechnete Fluchtwegrichtung, die Zugehörigkeit zu einem unzulässigen langen Fluchtweg und die Möglichkeit weitere Eigenschaften hinzufügen zu können. Die Knoten sollten über die Nutzeroberfläche, sei es grafisch in einem Zeichenfenster oder per Kommandozeile, zum Graphen hinzugefügt und gelöscht werden. Die Kanten jedoch dürfen nur mit Hilfe von existierenden Knoten erstellt werden, d.h. eine Kante verbindet zwei Knoten. 46

47 Konzept für ein Werkzeug zur Fluchtwegplanung in einem CAD-System Bearbeitung Die Bearbeitung umfasst die Befehle und dadurch ausgelösten Methoden um die Objekte Graph, Knoten und Kante zu editieren. Dazu zählt, dass man einen Graph erstellen, löschen, laden, importieren, speichern, exportieren und verändern kann. Das Objekt Graph, welches die Elemente Knoten und Kanten in sich aufnimmt und verwaltet, sollte wie schon im vorangegangenen Kapitel über eine Liste aller Knoten, eine Liste aller Kanten, einen Wahrheitswert, ob es sich um einen unberechneten (ungerichteten) Graphen oder einen Graphen mit berechneten Fluchtweglängen (gerichtet) handelt. Weiterhin muss die Klasse Graph über die notwendigen Methoden für die Manipulation des Graphen verfügen. Zu den Methoden zählen: die Abfrage, ob ein Graph unberechnet oder berechnet (bereits mit Fluchtweglängen) ist, die Methoden, um Knoten zu erstellen, zu löschen, zu verschieben (in einem 2-D- Koordinatensystem), den Knotentyp zu ändern und seine Eigenschaften (z.b. die Nachbarknoten) zu ermitteln, die Abfrage der gesamten Knotenliste, ob der Knoten der Knotenliste angehört und die Anzahl der Elemente der Knotenliste die Abfrage, ob ein Knoten der Anfangsknoten oder Endknoten einer Kante, die Methoden, um eine Kante zu erstellen, zu löschen, die Kante zu ermitteln (über ihren Startknoten A und Endknoten B) die Abfrage, der gesamten Kantenliste und ob eine Kante zur Kantenliste gehört und die Abfrage der Kanten, welche an einem Knoten anliegen (beginnen oder enden). Zum Konzept einer Klasse Knoten gehören seine Attribute und Methoden. Wie in den Methoden der Klasse für einen Graphen gezeigt wurde; muss es möglich sein einen Knoten zu erstellen, zu löschen und zu editieren. Seine Attribute können jedoch nicht alle editierbar sein. Für die einzelnen Eigenschaften bedeutet das: die Position (im Koordinatensystem) ist veränderbar, der Name des Knoten muss eindeutig sein und sollte deshalb von der Applikation vergeben werden, und nicht vom Nutzer editierbar sein, es muss möglich sein eine Kopie des Knoten zu erstellen (d.h. eine einfache Kopie erzeugt einen Klon des Knoten mit einem neuen eindeutigen Namen, eine mehrfache Kopie erzeugt mehrere Klone des Knoten mit jeweils neuen eindeutigen Namen, die die Applikation vergibt) und 47

48 Konzept für ein Werkzeug zur Fluchtwegplanung in einem CAD-System der Knotentyp darf vom Nutzer geändert werden (z.b. Notausgangsknoten oder Normalknoten). Auch eine Kante kann durch die Methoden der Klasse Graph erstellt werden. Dabei ist es wichtig, dass die Kante von einem Startknoten A zu einem Endknoten B führt, und eine Kante ohne die zwei Knoten nicht existieren darf. Zur Bearbeitung ihrer Attribute ist zu sagen: der Name der Kante soll eindeutig sein, somit wird dieser von der Applikation vergeben und ist vom Nutzer nicht änderbar, die Länge der Kante ergibt sich immer aus dem positiven Abstand zwischen dem Knoten A und B in der Ebene und wird somit von der Applikation berechnet, wird der Knoten A oder der Knoten B einer Kante entfernt, so muss auch diese Kante aus dem Graphen entfernt werden, eine Kante darf nicht verschoben werden, sie ist immer an den Knoten A und Knoten B gebunden, die Verschiebung muss daher über die Knoten realisiert werden, eine Kante soll kopierbar sein (einfach und mehrfach) im Zusammenhang mit ihren Knoten A und B; für den Sonderfall das nur die Kante kopiert wird (einfach oder mehrfach), so sollen zwei neue Knoten A und B entstehen, damit eine (mehrere) Kopie(n) der Kante entstehen kann (können), und die Knoten A und B einer Kante sollen nicht editierbar sein, sondern nur beim Erstellen bzw. beim Kopieren einer Kante festgelegt werden. Die Knoten und Kanten, visualisiert durch ihre grafischen Komponenten in der Präsentationsebene des CAD-Systems, müssen mit den Befehlen des CAD-Systems manipulierbar sein. Dazu gehören neben den Befehlen zum Transformieren, Kopieren und Selektieren auch die Befehle Redo (Rückgängig), Undo (Wiederherstellen) und Again (Wiederholen) des CAD- Systems Berechnung Mit der Berechnung ist in der Applikation die Ermittlung der Fluchtweglängen im Graphen gemeint. Nachdem ein Fluchtweggraph in einen Gebäudegrundriss eingetragen wurde, und ein oder mehrere Knoten als Notausgangsknoten typisiert wurden, soll ein Algorithmus den kürzesten Weg jedes Knoten zum Notausgangsknoten berechnen. Dies soll über den Algorithmus von DIJKSTRA passieren, der kürzeste Pfade in Graphen von jedem Knoten des Graphen zu einem oder mehreren Ausgangsknoten ermittelt. Jeder Knoten, der sich in einem zusammenhängenden Graphen mit mindestens einem Notausgangsknoten befindet, soll nach der erfolgreichen Berechnung folgende zusätzliche Eigenschaften mit Werten belegen: 48

49 Konzept für ein Werkzeug zur Fluchtwegplanung in einem CAD-System den Richtungsknoten (er zeigt die Richtung zum Notausgangsknoten an), den Namen des Notausgangsknoten, welcher dem Knoten am nächsten ist (mehrere Notausgangsknoten sind zulässig), und die Entfernung zu dem nächsten Notausgangsknoten (der kürzeste Weg zwischen Knoten und Notausgangsknoten). Ist der Knoten nicht über einen Weg im Graphen mit einem Notausgang verbunden, so sollen die Eigenschaften Notausgangsknoten und Vorgänger unbesetzt bleiben, und die Entfernung wird auf unendlich gesetzt. Jede Kante soll, nach der Berechnung der kürzesten Wege im Graphen, als zusätzliche Eigenschaften erhalten: den Richtungsknoten (das ist der Knoten A oder B der Kante, welcher die geringer Entfernung zum Ausgang aufweist) und einen Wahrheitswert, ob die Kante zu einem unzulässig langen Fluchtweg gehört (zu einem Weg zwischen einem Notausgangsknoten und einem Knoten, der länger ist, als die vom Nutzer vorgegebene maximale Fluchtweglänge). Gehört die Kante nicht zu einem kürzesten Weg, soll der Eintrag des Richtungsknoten leer bleiben. 5.2 Auswertung Die Auswertung sollte nach der Berechnung der Abstände zwischen den einzelnen Knoten und einem (oder mehreren) Notausgangsknoten erfolgen. Um dies sichtbar zu machen, muss für jeden Knoten die berechnete Entfernung zum Notausgangsknoten (v 1 in der Abbildung 5.4:), mit der vom Nutzer eingegeben maximalen Fluchtweglänge abgeglichen werden. Je nachdem ob es sich um einen Knoten im Bereich der maximalen Fluchtweglänge handelt bzw. um einen Knoten, der zu weit entfernt vom Notausgangsknoten ist, wird der Knoten farblich hervorgehoben. Für einen Knoten in zulässiger Entfernung (v 2, v 3, v 4, v 5 ) wäre die Farbe Grün angebracht; für eine unzulässige Entfernung (v 4 ) ist die Signalfarbe Rot sinnvoll. Wenn es keine Verbindung zu einem Notausgangsknoten gibt, d.h. es existiert kein Weg zwischen dem Knoten (v 6 ) und einem Notausgangsknoten, sollte keine Farbänderung erfolgen. 49

50 Konzept für ein Werkzeug zur Fluchtwegplanung in einem CAD-System e 1 e6 e 1 e6 Abbildung 5.4 Die farbliche Kennzeichnung im unberechneten und berechneten Zustand Für die Kanten gilt ähnliches. Sie sollten grün gefärbt und mit einem Richtungspfeil versehen werden, wenn sie zu einem Fluchtweg gehören (e 2, e 4 ). Falls dies nicht der Fall ist (e 6 ), bleibt ihre Farbe ebenfalls unverändert und es wird kein Richtungspfeil dargestellt. Bei einem Knoten (v 4 ), der über eine unzulässig lange Entfernung zum Notausgangsknoten verfügt, sollen zusätzlich die Kanten (e 1, e 3 ) auf dem berechneten kürzesten Weg zwischen dem Notausgangsknoten und diesem Knoten rot eingefärbt werden, um diesen Knoten im Graphen leichter aufzufinden Überprüfung der Anforderungen gemäß Regelwerke Da die maßgebenden Regelwerke, je nach Gebäudetyp und Gebäudeklasse einen anderen maximalen Wert für die Fluchtweglänge fordern, muss dieser, entsprechend dem untersuchten Gebäudegrundriss, vom Nutzer eingegeben werden. Als voreingestellter Standardwert wird 35 m empfohlen, da dies der Wert für die meisten Anwendungsfälle ist. Dazu ist es notwendig den Wert für die maximale Fluchtweglänge in einer Variablen abzuspeichern, um sie zur Überprüfung für die Methoden anderer Klassen, zur Verfügung zu stellen. Dies macht es möglich die zulässige Fluchtweglänge mit den berechneten Werten der Knoten zu vergleichen. Die grafischen Komponenten der Knoten könnten diese Werte aus den zusätzlichen Eigenschaften: Entfernung zum Notausgangsknoten und Vorgängerknoten beziehen, und daraufhin die Zeichenfarbe der Knoten festlegen. Die grafischen Komponenten der Kanten könnten ebenso auf die zusätzlichen Eigenschaften: Richtungsknoten und Wahrheitswert (über ihre Zugehörigkeit zu einem unzulässig langen Fluchtweg) zugreifen. Sind diese Eigenschaften belegt wird die Kante dementsprechend farblich hervorgehoben als Teil des zulässigen oder unzulässigen Fluchtwegs bzw. es erfolgt keine Änderung der Farbe. 50

51 Konzept für ein Werkzeug zur Fluchtwegplanung in einem CAD-System Neben der Hervorhebung, durch das auffällige Einfärben des Graphen, kann auch ein Hinweisfenster sinnvoll sein, um den Nutzer vom Überschreiten der maximalen Fluchtweglänge zu unterrichten. 5.3 Visualisierung Da die Applikation die Präsentationsebene eines CAD-System nutzt, bietet es sich an, die bereits vorhandenen Möglichkeiten zur Darstellung des Graphen zu nutzen. Dazu zählen: die grafische Oberfläche für die 2-D-Geometrie, sie dient der Abbildung von Knoten und Kanten des Graphen, die gleichzeitige Darstellung der Gebäudegrundrisse (die es erst möglich macht den Graphen darin zu konstruieren), die Manipulation von Knoten und Kanten über die grafischen Handles (erstellen, löschen, verschieben, usw.), die Hilfsmittel für das exakte Konstruieren des Graphen, und nicht zu vergessen der Hauptzweck: das direkte Auslesen der Abstände und Längen im Gebäudegrundriss, zur Berechnung der Fluchtweglängen. Um einen Graphen in einem CAD-System als solchen erkennbar und handhabbar zu machen, ist es notwendig eigene Objekte zur Darstellung von Knoten und Kanten zu schaffen. Angelehnt an die Darstellung der Knoten als Punkt und zur besseren Sichtbarkeit, wird ein Symbol in Form eines Kreises vorgeschlagen. Für eine Kante reicht die Darstellung einer Linie aus, die die Kreise verbindet. Die Größe der Objekte muss an den Maßstab anpassbar sein. Sinnvoll wäre ein Skalierfaktor. Des Weiteren muss das Verhalten der Knoten- und Kantenobjekte im CAD-System an ihre Eigenschaft als Graph angepasst sein. Wichtige Verhaltensmuster sind: die Kanten sind nicht ohne Knoten existent und dürfen somit nur mit einem Anfangs- und Endknoten dargestellt werden, wird ein Knoten verschoben, so müssen alle von ihm ausgehenden Kanten der Verschiebung folgen, die Verbindung der Knoten (Kreise) durch Kanten (Linien) sollten nur von Kreislinie zu Kreislinie gezeichnet werden, um eine Verwechslung mit normalen Linien zu vermeiden, es muss klar zu erkennen sein, ob es sich um einen berechneten (gerichteten) oder unberechneten (ungerichteten) Graphen handelt, dafür sollte ein farbliche Differenzierung und das Verwenden von Richtungspfeilen an den Kanten sorgen, und 51

52 Konzept für ein Werkzeug zur Fluchtwegplanung in einem CAD-System für den berechneten Fluchtweggraphen muss eine unzulässige Fluchtweglänge farblich abgesetzt werden. 5.4 Schnittstellen Um den Graph für andere Systeme nutzbar zu machen, sollte eine Schnittstelle zum Austausch des Fluchtweggraphen vorhanden sein. Neben dem Speichern des Graphen in dem CAD eigenem Datenformat, würde eine Schnittstelle die Speicherung in einem etablierten Austauschformat bedeuten. Ein textbasiertes etabliertes Format ist XML. Die Beschreibungssprache XML Extensible Markup Language ist bedingt durch den Aufbau aus Textzeichen, für den Menschen lesbar. Auf der Basis von XML gibt es verschiedene spezifische XML-Sprachen, die für eine Beschreibung von Graphen zweckmäßig sind. Dazu gehört auch GraphML [17]. GraphML ist wie XML eine Beschreibungssprache, die mit wenigen strukturellen und inhaltlichen Einschränkungen, eine Sprache für die Darstellung von Graphen definiert. Neben GraphML gibt es noch weitere Austauschformate für Graphen, dazu zählen: GXL - ein XML-basiertes Austauschformat für Graphen, GML - ein häufig verwendetes Austauschformat für Graphen, welches nicht auf XML basiert, XGMML - ein XML-basiertes Format für Graphen auf der Basis von GML SVG - ein XML-basiertes Grafikformat, mit dem sich Graphen darstellen lassen, welches aber hauptsächlich für allgemeine skalierbare Vektorgrafiken gedacht ist [17]. Als Schnittstelle und Austauschformat sollte GraphML gewählt werden, weil es frei verfügbar ist und nur wenige Grundanforderungen mit sich bringt. Es nutzt keine weitreichende Syntax, sondern schreibt nur die Grundelemente jedes Graphen vor, und lässt dem Nutzer so die Freiheit seine speziellen Erweiterungen in einem Element mit dem Namen <data> abzulegen. (im Kapitel 6.4 wird näher auf die Syntax von GraphML eingegangen) Import und Export Das Datenmodell des Graphen, welches in das textbasierte GraphML-Format exportiert werden soll, enthält alle relevanten Daten für die Austauschdatei. Dazu gehören die grundlegenden und die zusätzlichen Eigenschaften der Knoten und Kanten (siehe Kapitel 5.1), sowie der Wahrheitswert des Graphen (berechnet oder unberechnet). Für den Import sollte ein XML-Parser verwendet werden, der die GraphML-Datei ausliest und in die Datenbasis der Applikation einfügt. Hierfür gibt es, in der objektorientierten Programmiersprache Java, zwei grundlegende Systeme. Zum ersten existiert ein ereignisorientier- 52

53 Konzept für ein Werkzeug zur Fluchtwegplanung in einem CAD-System te Parser, welcher die GraphML-Datei durchwandert und immer dann einen Methodenaufruf auslöst, wenn ein z.b. ein Element beginnt oder endet. Die zweite Möglichkeit ist, dass das GraphML-Dokument eingelesen wird. Dabei wird das Dokument im Speicher vorgehalten und es kann dort nach seinen Elementen abgefragt werden, und diese können verändert oder auch um neue Elemente ergänzt werden. Da schon eine Datenbasis für den Graphen vorgesehen ist, sollte der ereignisbasierte Parser zum Import gewählt werden. Die zweite Möglichkeit, auf Basis der gespeicherten Dokumentenstruktur, bietet sich für den Export besser an, da hier das Dokument aus der Datenbasis der Applikation aufgebaut werden kann, und dann als fertiges Dokument in eine GraphML-Datei ausgegeben wird. 53

54 Umsetzung in dem CAD-System CADEMIA 6 Umsetzung in dem CAD-System CADEMIA Nachdem im Kapitel 5 das Konzept für eine Applikation zur Bestimmung der Fluchtweglängen in einem Gebäudegrundriss erläutert wurde und die damit entstehenden Anforderungen formuliert wurden, beschreibt dieses Kapitel die Umsetzung in eine des Konzeptes in eine Computerapplikation. Für die Umsetzung wurde das Open Source CAD-System CADEMIA [25] in der Version (CAPE TOWN) gewählt. Die Software, welche ursprünglich für die Forschung und Lehre an der Bauhaus-Universität Weimar entwickelt wurde, ist auch für den praktischen Einsatz geeignet. CADEMIA versteht sich als modulare, leicht erweiterbare Plattform für 2D- CAD-Anwendungen im Bauingenieurwesen. Da das Programm in Java geschrieben wurde, kann man von einer plattformunabhängigen Software sprechen, die unter Windows, Linux und Mac OS X lauffähig ist. CADEMIA ist in zwei Varianten erhältlich. Als frei verfügbare Community Edition, die bereits den gesamten Funktionsumfang bietet und unter GPL 10 steht; und als Professional Edition, die mit einem Support durch die Entwickler über die Universitätsausgründung Lombego Systems angeboten wird. [26] Die Applikation zur Bestimmung der Fluchtweglängen wird als Plugin (Erweiterungsmodul) für das CAD-System CADEMIA erstellt. Das Plugin wird in Java programmiert (einer objektorientierten Programmiersprache), wie auch das CAD-System CADEMIA. In der 2D- CAD-Umgebung wird dann durch Einfügen eines Graphen in einen Gebäudegrundriss, und dessen Berechnung, die maximale Rettungs- bzw. Fluchtweglänge bestimmt. Dabei werden die Befehle und Teilsysteme des CAD-Systems genutzt bzw. ihre Wirkung auf den Graphen wird angepasst. Für die grafischen Komponenten wird die Datenbasis und die grafische Nutzeroberfläche von CADEMIA genutzt. Im Hintergrund wird ein gesondertes Datenmodell für den Graphen geschaffen, um den Graphen als eigenes Modell vorzuhalten. Die grafischen Komponenten zur Darstellung des Graphen in der Präsentationsebene von CADEMIA werden ebenfalls erstellt. Weiterhin wird in die Applikation der Algorithmus zur Berechnung der kürzesten Wege in einem Graphen der Algorithmus nach DIJKSTRA implementiert. Da für das Ausführen von Aktionen auf dem Graphen eigene Befehle notwendig sind, werden zu den schon vorhanden Befehlen von CADEMIA weitere Befehle, für die Erstellung, Bearbeitung, Berechnung, Auswertung sowie den Im- und Export des Graphen, erstellt. Wie schon erwähnt, gewährleistet der Im- und Export, als Schnittstelle zu anderen Systemen, den Datenaustausch. 10 General Public License, eine Lizenz zur freien Weitergabe, Vervielfältigung und Veränderung von Software, um diese Freiheit sicherzustellen wird eine Lizenz im Sinne des Urheberrechts vergeben 54

55 Umsetzung in dem CAD-System CADEMIA Datenmodell Algorithmus Befehle grafischen Komponenten Import und Export Abbildung 6.1 Paket-Diagramm Das Plugin wird dabei in folgende Pakete untergliedert: das Datenmodell für die rechnerinterne Darstellung eines Graphen, die Berechnungsalgorithmen, für die Ermittlung des kürzesten Weges im Fluchtweggraphen, die grafischen Komponenten zur Darstellung und zum Handling in der Nutzeroberfläche von CADEMIA, die Befehlen die dem CAD System CADEMIA zur Steuerung des Graphen hinzugefügt werden und die Import- und Exportfunktion für das XML-Dateiformat GraphML. Das Plugin erweitert die Funktionen von CADEMIA um die Darstellung und Manipulation eines Graphen. Der Graph soll aber auch durch CADEMIA Befehle manipuliert werden. Wie dies geschieht, wird in den nachfolgenden Kapiteln beschrieben. Dabei wird eine Unterteilung in die Verarbeitung, die Auswertung und die Visualisierung des Graphen, sowie die Betrachtung der Schnittstellen für den Austausch der Grapheninformationen vorgenommen. 6.1 Verarbeitung Die Verarbeitung beinhaltet die Erstellung und Bearbeitung des Graphen und Berechnung der Fluchtweginformationen. Als erstes muss ein Datenmodell geschaffen werden. Dazu gehört die objektorientierte Abbildung des Graphen in Java und die Umsetzung des im Konzept gezeigten Datenmodells. Weiterhin sind die Befehle umzusetzen, die den Graphen in einen Gebäudegrundriss eintragen. Diese Befehle werden in die Befehlsliste von CADEMIA eingetragen, um sie später wieder Rückgängig zu machen, oder um sie wiederholen zu können. Des 55

56 Umsetzung in dem CAD-System CADEMIA Weiteren wird gewährleistet, dass wie bei anderen CADEMIA-Befehlen, die Möglichkeit zum Abbrechen (Cancel) und Unterbrechen (Interrupt) besteht Erstellung Erstellt wird eine Klasse Graph, eine Klasse Knoten und eine Klasse Kante als Datenmodell. Wie für einen Graphen benötigt, stellt die Klasse Graph Methoden zu Verfügung, um die Objekte Knoten und Kante zu erstellen, zu verändern und zu löschen. Dafür wurden zunächst die Klassen für das Datenmodell, und später die für die Präsentationsebene verantwortlichen Klassen erstellt. Die zuletzt genannten sind die grafischen Handles für das Datenmodell. (näheres dazu im Kapitel 6.3 Visualisierung) 1 Graph +iscalc : boolean... +addknoten(k : Knoten) +addkante(ka : Kante) * 0..* Knoten +name : String... +getx() +setx(x : double) * Kante +kna : Knoten... +getwert() +getknotena()... Abbildung 6.2 Klassendiagramm Graph-Knoten-Kante Das Klassendiagramm zeigt die Beziehungen der Klassen Graph, Knoten und Kante untereinander. Dabei zeigt die Multiplizität an, dass ein Knoten oder eine Kante immer einem Graphen zugeordnet sind, und dass zu einem Graphen beliebig viele oder auch keine Knoten und Kanten gehören können. Zu einer Kante gehören immer zwei Knoten; jedoch an einem Knoten können beliebig viele oder auch keine Kanten anliegen. Als nächstes stellt sich die Frage der rechnerinternen Darstellung. Der Vergleich im Konzept hat die Liste als Lösung hervorgebracht, wobei für die Umsetzung nicht mit einer Knotenund Kantenliste im Sinne einer verketteten Liste in Java gearbeitet wird, sondern als Menge (in Java: Set) realisiert wird. Somit muss keine Behandlung der Nachfolger und Vorgänger 56

57 Umsetzung in dem CAD-System CADEMIA eines Listenelements beim Hinzufügen und Löschen erfolgen. Zu einer Menge kann man ein Element einfach hinzufügen und es wieder herauslöschen. Dazu kommt noch der Vorteil, dass in einer Menge ein Element nur einmal vorhanden sein darf. Dies entspricht dem Prinzip eines Graphen. Ein Knoten muss eindeutig identifizierbar sein und darf nur einmal vorkommen. Eindeutig wird der Knoten über seinen Namen identifiziert. private HashMap<String, Knoten> graph; private Set<Kante> kantenmenge; public Graph() { graph = new HashMap<String, Knoten>(); kantenmenge = new HashSet<Kante>(); } Code Listing 6.1 Knoten- und Kantenmenge in der Klasse Graph Um einen besseren Zugriff auf die Knoten zu gewährleisten, wurde eine HashMap (eine Zugriffstabelle) implementiert, wobei auf die Knoten in der Knotenmenge über Ihren Namen zugegriffen wird. Das Ziel der HashMap ist, die zeitintensive Suche in einer Menge und damit auch der langsamere Zugriff auf einen Knoten zu beschleunigen. Für die Kanten, die ebenfalls in einer Menge gespeichert werden, ist ein HashSet implementiert worden, um auch hier den Zugriff zu beschleunigen. Für den Algorithmus zur Berechnung der kürzesten Wege ist dies auch von Vorteil. Dadurch kann der Algorithmus über die Namen der Knoten auf diese zugreifen, um die notwendigen Berechnungen vorzunehmen. Zu den Attributen der Klasse Graph gehört die HashMap graph mit einem Set von Knoten als Wert (Value) und dem Namen des Knoten als Schlüssel (Key); sowie und ein Hash- Set der Kanten. Die Methoden zur Bearbeitung der Knoten- und Kantenmengen werden im Kapitel näher erläutert. Die Klasse Knoten besitzt als grundlegende Attribute: den Namen des Knoten, der mit den Methoden getname()ausgelesen und mit setname(string name) gesetzt wird, die Position des Knoten im Koordinatensystem, die mit getx(), gety()ausgelesen, und mit setx(double x), sety(double y) und set- Point2D(Point2D p) gesetzt werden. Die zusätzlichen Eigenschaften werden in einer PropertyMap mit dem Namen knotenproperty vorgehalten. Hierbei bezeichnet der Schlüssel (Key) die Eigenschaft, vom Typ String, und der Wert (Value) beinhaltet den Variablenwert mit dem Typ Object. Dazu gehören, die von der Berechnung unabhängigen Eigenschaften: 57

58 Umsetzung in dem CAD-System CADEMIA mit dem Key NODE_TYPE für den Knotentyp (mit den Values DEFAULT oder EXIT ) und SCALE_FACTOR (der Wert ist hier 1.0) für die maßstäbliche Darstellung im Gebäudegrundriss. Außerdem die von der Berechnung abhängigen zusätzlichen Eigenschaften (knotenproperty): PRED der Vorgängerknoten (Knoten in Richtung Notausgangsknoten), EXIT_DIST die Entfernung zum Ausgang und EXIT der nächstgelegene Notausgangsknoten (nicht zu verwechseln mit dem Wert der Eigenschaft NODE_TYPE die den Knoten als Ausgang kennzeichnet), bei der Eigenschaft mit dem Key EXIT wird der Name des jeweiligen Notausgangsknoten als Wert eingetragen. Weiter geht es mit der Klasse Kante, für diese Klasse existieren die grundlegenden Eigenschaften: der Name der Kante, dieser ist nur für den Export in das GraphML-Format nötig und wird deshalb aus den Präfix ka_, dem Namen des Knoten A, einem Bindestrich - und dem Namen des Knoten B zusammengesetzt; die Methode getname() gibt den Namen als String zurück, die Länge der Kante, welche sich aus dem positiven Abstand zwischen dem Knoten A und dem Knoten B ergibt, die Länge wird durch getwert() abgefragt und gibt einen double-wert zurück. Die zusätzlichen Eigenschaften der Klasse Kante werden analog zur Klasse Knoten in einer Map mit den Namen kantenproperty gespeichert. Der Key DEST_NODE liefert als Wert den Richtungsknoten für die berechnete Fluchtrichtung zurück und, für den Key TO_LONG erhält man einen String, der die Zugehörigkeit zu einem unzulässig langen Fluchtweg angibt. Ist der Fluchtweg zu lang so ist der Wert des String gleich TO_LONG. Diese Form der Speicherung von Eigenschaften in einer PropertyMap birgt die Möglichkeit in sich, zu einem späteren Zeitpunkt oder Entwicklungsstadium der Applikation weitere Eigenschaften hinzufügen zu können. Dies geschieht über die Methode setkantenproperty(string key, Object value) für die Klasse Kante und setknotenproperty(string key, Object value) für den Klasse Knoten. Bei der Erläuterung der Befehlsklassen wird im weiteren Verlauf der Arbeit immer eine Tabelle vorangestellt. Da bei den folgenden Befehlen der Tabellenkopf wegelassen wird; soll in der ersten Spalte immer der Name der Java-Klasse stehen, in der zweiten Spalte das Kommando zum Aufrufen des Befehls in CADEMIA, in dritten Spalte das zugehörige Icon (Symbol) aus der Menüleiste und in der letzten Spalte die Aktion, die der Befehl auslöst. 58

59 Umsetzung in dem CAD-System CADEMIA Java-Klasse Kommando Symbol Aktion AddKnoten knoten Es wird ein Knoten eingefügt. Tabelle 6.1 Befehl AddKnoten Um einen Knoten zu erstellen und dem Graphen hinzuzufügen bedarf es einem Befehl. Dazu wird ein Befehl AddKnoten implementiert, mit dem ein Knoten in das Koordinatensystem der Präsentationsebene von CADEMIA eingefügt wird. Dabei wird die Position des Knoten durch die im CADEMIA vorhanden Eingabemöglichkeiten gewählt. Dazu gehören: per Eingabe des x- und y-wertes über die Kommandozeile, per Platzierhilfen Locate, Intersect, Project oder Vectorial mit den Einstellungen für relative oder absolute Koordinaten, Pick, Grid oder Digitize. AddManyKnoten mknoten Es werden solange Knoten eingefügt, bis der Button Done gedrückt wird. Tabelle 6.2 Befehl AddManyKnoten Als zweite Möglichkeit wird ein Befehl mit dem Namen AddManyKnoten implementiert, bei dem mehrere Knoten nacheinander platziert werden können. Hier stehen weiterhin die unter Knoten genannten Platzierhilfen und Einstellungen zur Verfügung. Für den Fall, dass der Befehl AddManyKnoten abgebrochen wird, so werden alle innerhalb des Befehls bis dahin gesetzten Knoten wieder entfernt. AddKante kante Es wird eine Kante zwischen zwei selektierten bzw. noch zu selektierenden Knoten eingefügt. Tabelle 6.3 Befehl AddKante Wie schon mehrfach genannt dürfen Kanten nur mit Hilfe von existierenden Knoten erstellt werden, d.h. eine Kante verbindet zwei Knoten. Als erste Variante erzeugt der Befehl Add- Kante eine Kante zwischen zwei vorhandenen Knoten. Der Nutzer wird aufgefordert den Start- und den Endknoten zu selektieren. Dabei besteht auch die Möglichkeit die Knoten vorher zu selektieren, und dann den Befehl AddKante aufzurufen. Die Kante wird zwischen den selektierten Knoten erstellt. Selektiert wird durch anklicken der geometrischen Abbildung der Knoten, d.h. es können die Aussenkreislinie, die Innenkreislinie oder die Hilfslinien an der Innenkreislinie angeklickt werden. AddManyKanten mkanten Es werden solange zwei Knoten 59

60 Umsetzung in dem CAD-System CADEMIA mit Knoten verbunden, bis Done gedrückt wird. Dies geschieht entweder separat (nacheinander Anfangs- und Endknoten der Kante selektieren) oder poly (der letzte Endknoten ist der nächste Anfangsknoten der Kante). Tabelle 6.4 Befehl AddManyKanten Als zweite Variante steht der Befehl AddManyKanten zur Verfügung. Nach dem Aufrufen des Befehls kann man zwei Knoten nacheinander selektieren, die dann durch eine Kante verbunden werden. Danach kann man im Befehlsmenü wählen, zwischen Poly und Separate. In der Einstellung Poly werden die Knoten in Form einer Kette mit Kanten verbunden. Der Endknoten der vorhergehenden Kante ist gleichzeitig der Startknoten der nachfolgenden Kante. In der Einstellung Separate wird nach einander immer erst ein Start- und dann ein Endknoten selektiert. Falls Knoten schon vor dem Aufrufen des Befehls AddKante bzw. AddMany- Kanten selektiert sind, gibt es drei Möglichkeiten um die Knoten mit einer Kante zu verbinden: ein Knoten ist selektiert, dann ist dieser automatisch der Anfangsknoten der Kante und man wird aufgefordert den zweiten Knoten zu selektieren, es sind zwei Knoten selektiert, dann verbindet die Kante automatisch die beiden Knoten, es sind mehr als zwei Knoten selektiert, so gibt es eine Fehlermeldung und es wird keine Kante erzeugt Bearbeitung Die Bearbeitung beschreibt mit welchen Methoden die Objekte Graph, Knoten und Kante editiert werden. Für die Klasse Graph existieren, die in Kapitel bereits genannten, Attribute: Knotenmenge, Kantenmenge und der Wahrheitswert, der über eine Methode iscalculated() zurückgegeben wird. Zu den notwendigen Methoden für die Manipulation des Graphen gehören: iscalculated() Die Abfrage ermittelt, ob ein Graph noch unberechnet bzw. bereits berechnet ist, es wird der false bzw. true zurückgegeben. addknoten(knoten k) Ein Objekt Knoten wird der HashMap graph des Graphen hinzugefügt. removeknoten(string knoten) Ein Knoten wird, an Hand seines Namens, aus der HashMap graph des Graphen gelöscht. 60

61 Umsetzung in dem CAD-System CADEMIA getknoten(string knoten) Für den Zugriff auf einen Knoten über seinen Namen, es wird ein Knoten zurückgegeben, der dem aufgerufenen Namen trägt (um diesen zu verschieben x- und y-koordinaten in einem 2D-Koordintensystem verändern, den Knotentyp zu ändern, um seine Nachbarknoten zu ermitteln). knotencoll() Die Abfrage gibt die gesamte Knotenmenge, d.h. die Werte der HashMap graph, als Collection 11 zurück. containsknoten(knoten k) Die Abfrage klärt ob ein Knoten der Knotenmenge angehört, falls ja wird true ansonsten false zurückgegeben. isknotenfromkante(kante ka, Knoten kn) Die Abfrage ermittelt ob der Knoten A bzw. B der Anfangsknoten bzw. Endknoten der Kante ist, oder ob der Knoten einer der beiden Knoten der Kante ist. Ist die Anfrage erfolgreich true wird zurückgegeben, falls nicht false. addkante(kante kante) Es wird dem HashSet kantenmenge, des Graphen, das übergebene Objekt vom Typ Kante hinzugefügt. addkante(string knotena, String knotenb) Die beiden Knoten werden, an Hand ihrer Namen, aus der HashMap graph des Graphen bestimmt, danach wird ein Objekt Kante erzeugt und dem HashSet kantenmenge hinzufügt. removekante(kante ka) bzw. removekante(string kna, String knb) Eine Kante wird aus dem HashSet kantenmenge des Graphen gelöscht, entweder durch das Entfernen des Objekts ka bzw. wird durch die Angabe ihrer Knoten kna und knb, die entsprechende Kante gesucht und dann aus dem HashSet entfernt. getkante(string kna, String knb) Die Abfrage liefert das Objekt Kante mit den Knoten kna und knb zurück, dabei ist die Reihenfolge der Knoten egal. isknotenafromkante(kante ka, Knoten kna) Die Abfrage ermittelt, ob eine Kante ka mit einem fraglichen Knoten kna existiert, und gibt dementsprechend true für ja oder false für nein zurück. isknotenbfromkante(kante ka, Knoten knb) Falls es eine Kante ka mit einem fraglichen Knoten knb gibt, wird true ansonsten false zurückgegeben. getkantenmenge() Die Abfrage gibt die gesamte Kantenmenge kantenmenge als Set zurück. getkantenmenge(knoten kn) Die Abfrage gibt ein Set der Kanten zurück, welche an dem Knoten kn anliegen (d.h. beginnen oder enden). 11 ist die Basis der dynamischen Datenstrukturen in Java (außer Assoziativspeicher), die Schnittstelle Collection wird erweitert durch die Schnittstelle Set 61

62 Umsetzung in dem CAD-System CADEMIA containskante(kante ka) Falls die Kante ka zum HashSet kantenmenge gehört, wird true ansonsten false zurückgegeben. isempty() Die Abfrage gibt true zurück, wenn die HashMap graph keinen Eintrag besitzt (d.h. es gibt keine Knoten im Graphen), falls mindestens ein Knoten in der HashMap eingetragen ist wird false zurückgegeben. size() Gibt die Anzahl der Elemente (Knoten) in der HashMap graph zurück. Die Klasse Knoten repräsentiert die objektorientierte Abbildung eines Knoten im Graphen. Dazu muss ein Knoten zu erstellen, zu löschen und editierbar sein. Seine Attribute sind: x und y Sind vom Typ double, und repräsentieren die Position des Knoten im Koordinatensystem von CADEMIA. Die Werte werden durch das Hinzufügen des Knoten in der Präsentationsebene von CADEMIA festgelegt. Die Position des Knoten kann durch die CADE- MIA-Befehle Translate, Mirror und Rotate - verschoben, gespiegelt und verdreht werden (dabei verdreht sich das Symbol des Knoten jedoch nicht, da es nur einen Translationspunkt besitzt und sich immer an der x- und y-achse ausrichtet). name Der Name des Knoten, er wird beim Erstellen und Kopieren eines Knoten eindeutig vom Namensraum des CAD-Systems CADEMIA vergeben; er setzt sich zusammen aus dem Präfix kn und einer fortlaufenden natürlichen Zahl, beginnend mit 0, ist der Name vom Nutzer nicht editierbar. Der Knotentyp des Knoten, wird beim Erstellen in der Map knotenproperty mit dem Key NODE_TYPE auf den Wert DEFAULT gesetzt. Durch den Befehl SetExit wird der Knotentyp eines selektierten Knoten von Normal zu Notausgangsknoten geändert. Der Wert ändert dabei sich von DEFAULT zu EXIT. Die weiteren Keys sind EXIT für den Notausgangsknoten, EXIST_DIST für die Entfernung zum nächsten Notausgangsknoten, PRED für den nächsten Knoten in Richtung Notausgangsknoten, sie werden bei der Berechnung des Graphen vom System geändert bzw. wenn der Graph in den unberechneten Zustand übergeht wieder auf die Standardwerte zurückgesetzt. Sie können vom Nutzer nicht editiert werden. Der Key SCALE_FACTOR für einen Skalierfaktor des Knotensymbols, kann im Featuredialog geändert. Er wird dort zusammen mit den anderen Keys angezeigt. Mit den Methoden der Klasse Knoten können die x- und y-werte, der Name des Knoten und die Werte der Map knotenpoperty gesetzt und abgefragt werden. Die Methode tostring() liefert als Rückgabewert den Namen und den x- und y-wert des Knoten als String. SetExit setexit Der selektierte Knoten wird zum als Ausgang gesetzt, falls er schon Ausgang ist wird er als Default gesetzt. Tabelle 6.5 Befehl SetExit 62

63 Umsetzung in dem CAD-System CADEMIA Weiterhin ist ein Knoten kopierbar, d.h. es wird eine einfache Kopie mit dem Befehlen Copy translate, Copy rotate oder Copy mirror erzeugt. Die Befehle erzeugen einen Klon des Knoten mit einem neuen eindeutigen Namen (der vom Namensraum vergeben wird), und fügen die Kopie an der gewählten Stelle ein. Eine mehrfache Kopie wird mit dem Befehl Copy rectangular array erzeugt. Es entstehen mehrere Klone des Knoten mit neuen eindeutigen Namen, die das System automatisch vergibt. Eine Kante wird, wie schon gesagt, erstellt in dem ein Knoten A und ein Knoten B selektiert wird. Für die Kante gibt es weniger Möglichkeiten, sie zu editieren. Sie ist grundsätzlich an ihre Knoten gebunden und ist somit nicht frei verschiebbar oder rotierbar. Wird ein Knoten, an dem eine oder mehrere Kante anliegen bewegt, so folgen auch alle anliegenden Kanten der Bewegung des Knoten. Aus der Forderung heraus: eine Kante darf nicht ohne die zwei Knoten A und B existieren, wird jede Kante die an einem Knoten anliegt, welcher gelöscht wird, auch gelöscht. Hier werden noch einmal die Grundregeln für eine Kante formuliert: die Länge der Kante ergibt sich immer aus dem positiven Abstand zwischen dem Knoten A und B in der Ebene, wird ein Knoten A oder B einer Kante entfernt, so muss auch diese Kante entfernt werden, eine Kante darf nicht verschoben werden, sie ist immer an ihre Knoten A und B gebunden, wird eine Kante zusammen mit ihren beiden Knoten kopiert, so wird ein Klon der Kante erstellt und dieser erhält die Klone der Knoten, mit ihren neuen eindeutigen Namen, als Knoten A und B, wird nur ein Knoten z.b. Knoten A und die Kante kopiert; Knoten B jedoch nicht, so verläuft die Kopie der Kante zwischen der Kopie des Knoten A (mit neuem Namen) und dem Knoten B. Für das Kopieren einer einzelnen Kante soll als Ausnahme gelten: Wird nur eine Kante und keiner ihrer Knoten A und B vor dem Kopieren selektiert, so wird eine Kopie der Kante an der gewünschten Stelle erstellt. Da diese jedoch nicht ohne Knoten existieren darf, werden zwei neue Knoten für die Kante erstellt, und diese werden als die Knoten A und B der Kante zugeordnet, dies gilt für eine einfache und mehrfache Kopie einer Kante. Für eine schon existierende Kante ist es nicht möglich, der Kante neue Knoten zuzuordnen, d.h. die Knoten A und B einer Kante sind nicht editierbar, sondern werden nur beim Erstellen einer Kante festgelegt bzw. beim Kopieren der Selben. 63

64 Umsetzung in dem CAD-System CADEMIA Die Länge der Kante wird nicht als Attribut vorgehalten. Sie wird mit der Methode get- Wert() abgerufen. Dabei wird der Abstand zwischen den beiden Knoten A und B der Kante berechnet und als Wert vom Typ double zurückgegeben. Weiterhin besitzt die Klasse Kante noch Methoden um die Knoten A und B, und die Werte in der Map kantenproperty zu setzen und zurückzugeben. Diese Werte werden im Featuredialog angezeigt. Da der Name der Kante und ihre Länge erstellt werden, kann man diese Werte nur abfragen. Der Nutzer darf eine Kante nur über ihre Knoten ändern; kann aber nicht an der Kante Änderungen vornehmen. Die Knoten und Kanten werden visualisiert durch ihre grafische Darstellung in der Präsentationsebene von CADEMIA und sind auch durch weitere Befehle manipulierbar, dazu gehören die Befehle Redo (Rückgängig), Undo (Wiederherstellen) und Again (Wiederholen) des Systems CADEMIA Berechnung Mit Hilfe des Algorithmus von DIJKSTRA werden die kürzesten Wege von jedem Knoten des Graphen zu einem oder mehreren Notausgangsknoten berechnet. Für die Berechnung der kürzesten Wege im Graphen ist die Klasse Dijkstra zuständig. CalcEscape dijks Der Algorithmus nach Dijkstra berechnet die Abstände der Knoten zum Ausgang und zeigt an Hand der Kanten die Richtung an. Ein zu weit entfernter Knoten wird rot eingefärbt. Tabelle 6.6 Befehl CalcEscape Durch das Kommando dijks wird der Befehl CalcEscape aufgerufen. Dabei wird untersucht, ob es im Graphen mindestens einen Knoten vom Typ EXIT gibt, wenn nicht erfolgt eine Ausgabe über das Fehlen eines solchen Knotentyps. Beim Vorhandensein von mindestens einem Notausgangsknoten wird die Klasse Dijkstra mit ihren Methoden zur Berechnung der kürzesten Wege im Graphen aufgerufen. Für die Möglichkeit das mehrere Notausgangsknoten in einem Graphen vorhanden sind, sind in der Klasse Dijkstra die Methoden dijkstra(graph g, Knoten start) und dijkstrainit(graph g) implementiert. Die Methode dijkstrainit(graph g)wird nur einmal vor der Berechnung der Fluchtweglängen aufgerufen. Sie setzt die Knoten und Kanten des Graphen auf die Defaultwerte. Dies geschieht auch wenn der Graph im berechneten Zustand verändert wurde. Dann werden ebenfalls alle berechneten Werte wieder auf Standard gesetzt. 64

65 Umsetzung in dem CAD-System CADEMIA Die Methode dijkstra(graph g, Knoten start) wird so oft aufgerufen, wie es Notausgänge im Graphen gibt. Somit kann für jeden Knoten der nächstgelegene Notausgangsknoten gefunden werden. Den Methoden werden der gesamte Graph und der Notausgangsknoten übergeben. Gesetzt werden im Algorithmus die Entfernung zum Notausgang und der Vorgänger, d.h. der Knoten auf dem Fluchtweg in Richtung Notausgang. Der Name Vorgänger ist gewählt worden, weil sich der Algorithmus vom Notausgang bis zum entferntesten Knoten vorarbeitet und so immer vom Vorgänger aus die nächsten Knoten untersucht. public static void dijkstra(graph g, Knoten start) { PriorityQueue<VorlKuerzWeg> warteschlange = new PriorityQueue<VorlKuerzWeg>(); for (Knoten kn : g.knotencoll()) { besucht.put(kn.getname(), false); } entfzumausg.put(start.getname(), 0.0); vorgaenger.put(start.getname(), null); warteschlange.add(new VorlKuerzWeg(start, 0)); while (!warteschlange.isempty()) { VorlKuerzWeg best = warteschlange.remove(); Knoten kn = best._knoten; if ( besucht.get(kn.getname()) ) continue; besucht.put(kn.getname(), true); for (Kante ka : g.getkantenmenge(kn)) { Knoten knnachf = ka.getknotenb(); double l = ka.getwert(); if (l < 0) throw new RuntimeException("Laenge ist Negativ."); if ( entfzumausg.get(knnachf.getname()) > (entfzumausg.get(kn.getname()) + l) ){ } } } entfzumausg.put(knnachf.getname(), entfzumausg.get(kn.getname())+ l ); knnachf.setknotenproperty(knoten.exit_dist, entfzumausg.get(knnachf.getname())); vorgaenger.put(knnachf.getname(), kn.getname()); knnachf.setknotenproperty(knoten.exit,start); warteschlange.add(new VorlKuerzWeg(knNachf, entfzumausg.get(knnachf.getname()))); Code Listing 6.2 Die Methode dijkstra(graph g, Knoten start) Für den Algorithmus verfügen die Knoten noch über die zusätzliche Eigenschaft des Besucht- Status. Wenn der Algorithmus einen Knoten untersucht hat, markiert er diesen als besucht, 65

66 Umsetzung in dem CAD-System CADEMIA um ihn nicht noch ein zweites Mal zu untersuchen. Als erstes wird für alle Knoten der Besucht-Status auf false gesetzt, um in der nachfolgenden Schleife die Knoten, die der Algorithmus besucht hat, mit solch einer Markierung zu versehen. Begonnen wird bei dem Notausgangsknoten. Seine Entfernung zum Ausgang wird auf 0.0 und sein Vorgänger auf null gesetzt. Der Notausgangsknoten und seine Entfernung zum Ausgang werden dann in eine PriorityQueue, eine Warteliste, welche ihre Elemente (Knoten) mit Hilfe der inneren Klasse VorlKuerzWeg nach der Eigenschaft w, dem Längenwert sortiert. Es handelt sich um die Entfernung zum Notausgangsknoten, d.h. wenn ein Element aus der Warteschlange entnimmt, so bekommt man das Element mit der kürzesten Entfernung zum Ausgang. Nun beginnt die while-schleife, die erst endet wenn die Warteschlange leer ist. Als erstes wird die kürzeste Entfernung aus der Schlange entnommen und dabei sofort aus der Warteschlange gelöscht, und der Knoten in das Element best vom Typ vorlkuerzweg gespeichert. Nun wird überprüft ob der Knoten schon besucht wurde, wenn ja gibt es eine Sprung zum Anfang der Schleife, wenn nicht wird sein Besucht-Status auf besucht true gesetzt. Eine for-schleife über seine anliegenden Kanten ermittelt die Nachfolgerknoten. Die Länge der anliegenden Kanten werden im Wert l gespeichert. Jetzt wird überprüft, ob die Länge größer als 0 ist, d.h. keine negativen Längen vorkommen, wenn doch erfolgt ein Laufzeitfehler. Falls der Abstand zwischen dem Nachfolger des gerade besuchten Knoten und dem Notausgangsknoten größer ist, als der Abstand zwischen dem gerade besuchten Knoten und dem Notausgangsknoten, wird der Wert in der Map entfzumausg (Entfernung zum Ausgang) für den Nachfolger berechnet und gesetzt. Dazu erhält der Nachfolger den gerade besuchten Knoten als Eintrag in der Map vorgaenger. Der aktuelle Notausgangsknoten wird als Wert unter der zusätzlichen Eigenschaft mit dem Key EXIT gespeichert, und der Nachfolger wird in die Warteschlange eingefügt. Wenn der Abstand des Nachfolgers zum Ausgang geringer ist, passiert nichts und es wird der nächste Nachfolger vom gerade besuchten Knoten untersucht. Somit landen nur Knoten mit vorläufig kürzesten Wegen in der Warteschlange und werden dort nur bei einer Änderung ihres Abstandes zum Notausgangsknoten wieder eingefügt. Wenn der Graph mehr als einen Notausgangsknoten besitzt, wird die Methode dijkstra(graph g, Knoten start) erneut, jetzt aber mit dem nächsten Notausgangknoten, aufgerufen. Dabei werden alle Knoten vorher auf nicht besucht gesetzt. Der Vergleich der Entfernung zum Notausgangsknoten, mit den vorhandenen Werten, führt dann zum Überschreiben der Values in vorgaenger in der Klasse Dijkstra und für EXIT in der knotenproperty. Nachdem alle Notausgangsknoten untersucht worden sind, werden in der Methode setfluchtweg(graph g) die Eigenschaften des Vorgängers eines Knotens und die Richtungsknoten einer Kante auf die Knoten und Kanten des Graphen übertragen. 66

67 Umsetzung in dem CAD-System CADEMIA Zusammenfassend ist zu sagen, dass jeder Knoten, der sich in einem zusammenhängenden Graphen mit mindestens einem Notausgangsknoten befindet, als zusätzliche Eigenschaft in seiner PropertyMap, folgende Werte für den genannten Key erhält: PRED, den Vorgängerknoten (Richtungsknoten in Richtung Notausgangsknoten) als Wert, EXIT, den nächstgelegenen Notausgangsknoten, da im Graphen auch mehrere Notausgangsknoten existieren können, EXIT_DIST die Entfernung zu dem Notausgangsknoten, welche die kürzeste Verbindung darstellt, zwischen dem Knoten und dem nächstgelegenen Notausgangsknoten. Ist ein Knoten nicht über einen Weg im Graphen mit einem Notausgang verbunden, so bleiben die oben genannten Eigenschaften Notausgangsknoten und Vorgänger unbesetzt; und die Entfernung zum Notausgangsknoten verbleibt auf dem Wert unendlich. Dies sind auch die Defaultwerte bzw. Grundeinstellungswerte beim unberechneten Graphen. Jede Kante, wenn sie zu einem kürzesten Weg im berechneten Graphen gehört, bekommt folgende Werte in die kantenproperty eingetragen. Die Werte werden bei den hier folgenden Keys gespeichert: DEST_NODE hier wird der Knoten eingetragen, der als Richtungsknoten zum Notausgangsknoten hin zeigt, TO_LONG bekommt als Wert den String TO_LONG, wenn die Kante zu einem unzulässig langen Weg gehört, (zwischen dem Notausgangsknoten und einem zu weit entfernten Knoten). Falls die Kante nicht zu einem kürzesten Weg gehört, behalten diese beiden Einträge ihre Defaultwerte. Dies sind die gleichen, wie sie die Kante auch im nicht berechneten Zustand besitzt: null. Im Befehl CalcEscape müssen die Notausgangsknoten, falls mehr als einer im Graphen berechnet wurde, wieder die Entfernung 0.0 gesetzt bekommen, da diese Eigenschaft beim mehrfachen Durchlaufen des DIJKSTRA-Algorithmus auch verändert wird. So z.b. bekommt der zu erst berechnete Notausgangsknoten, bei der Berechnung mit einem zweiten Notausgangsknoten, die Entfernung zum zweiten Notausgangsknoten als Abstand gesetzt. 6.2 Auswertung Die Auswertung erfolgt nach der Berechnung der Abstände zwischen den einzelnen Knoten und einem oder mehreren Notausgangsknoten. Um dies sichtbar zu machen, wird in der visuellen Komponente des Knoten die berechnete Entfernung zum Notausgangsknoten mit der vom Nutzer eingegeben maximalen Fluchtweglänge abgeglichen. Eine farbliche Hervorhe- 67

68 Umsetzung in dem CAD-System CADEMIA bung (in der Farbe grün) erfolgt dann, wenn es sich um einen Knoten handelt, der zu einem Notausgang führt und die maximale Fluchtweglänge nicht überschreitet. Wenn der Knoten zu weit entfernt ist, wird er rot eingefärbt. Keine Farbänderung erfolgt, wenn es keine Verbindung zu einem Notausgang gibt. Die grün eingefärbten Kanten werden zusätzlich mit einem Richtungspfeil versehen, falls sie zu einem Fluchtweg gehören; ist das nicht der Fall bleibt ihre Farbe ebenfalls unverändert und es wird kein Richtungspfeil dargestellt. Bei einem Knoten, der über eine unzulässig lange Entfernung zum Notausgangsknoten verfügt, werden zusätzlich die Kanten auf dem kürzesten Weg zwischen dem Notausgangsknoten und dem Knoten rot eingefärbt, jedoch auch mit Richtungspfeil. Die grafischen Komponenten der Knoten erhalten diese Informationen aus der knotenproperty über die Keys EXIT_DIST und PRED. Die grafischen Komponenten der Kante überprüft dies mit dem Vorhandensein der Werte zu den Keys DEST_NODE und TO_LONG, der Map knatenproperty, in ihrem Objekt Kante. Verglichen wird der Wert aus EXIT_DIST mit dem Wert für die maximale Fluchtweglänge aus der Klasse Tools. Dieser wird mit der Methode getmaxfluchtweg() gelesen und mit setmaxfluchtweg(double maxfluchtweg) gesetzt Überprüfung der Anforderungen gemäß Regelwerke Da die Regelwerke, je nach Gebäudetyp und Gebäudeklasse einen anderen maximalen Wert für die Fluchtweglänge fordern, muss dieser entsprechend für den untersuchten Gebäudegrundriss vom Nutzer eingegeben werden. SetMaxFluchtweg setmaxfw Hier wird die maximale Fluchtweglänge eingegeben (default = 35). Tabelle 6.7 Befehl SetMaxFluchtweg Das Kommando setmaxfw mit der Klasse SetMaxFluchtweg zeigt den aktuellen Wert für die Fluchtwegberechnung an, und fragt nach einem geänderten Wert für den maximale Fluchtweglänge. Nach der Berechnung findet ein Abgleich der Weglängen mit diesem Wert statt, und bei nicht Einhaltung wird dies ersichtlich, durch das Einfärben der unzulässigen Knoten und der Kanten, die zu diesen Knoten führen, mit der Farbe Rot. 6.3 Visualisierung Die Visualisierung findet in dem CAD-System CADEMIA statt, dort werden die bereits vorhandenen Möglichkeiten genutzt. Dazu zählen: die grafische Oberfläche für 2D-Geomtrie (Abbildung von Knoten und Kanten), 68

69 Umsetzung in dem CAD-System CADEMIA die Darstellung von Gebäudegrundrissen (in die der Graph eingetragen wird), die 2D-Objekte, welche bearbeitet werden können (gemeint ist die Manipulation von Knoten und Kanten), die Vektorgrafik für exaktes Konstruieren. Die Einpassung in das vorhandene System birgt einen hohen Nutzen in sich. Die bereits vorhandenen Möglichkeiten und die Einsparung einer selbstständigen Umgebung, für das Werkzeug zur Fluchtwegplanung, sind ein Vorteil. Es muss kein neues System installiert und gestartet werden. Die Applikation findet in einer, für den Nutzer, vertrauten Umgebung statt. Als grafische Komponenten werden für die Darstellung von Knoten Kreise und für die Kanten Linien geschaffen. Die Größe der Objekte kann durch einen Skalierfaktor an den Maßstab angeglichen werden. Für das Verhalten des Graphen muss das CAD-System CADEMIA angepasst werden. Für die speziellen Anforderungen, die die Darstellung eines Graphen mit sich bringt, wird als erstes eine Klasse StartFluchtweg implementiert. StartFluchtweg startfw Das Plugin erstellt einen Graph und startet alle notwendigen Listener 12 zur Steuerung des Plugins. Tabelle 6.8 Befehl StartFluchtweg Diese wird als Befehl aufgerufen und initiiert einen Graphen und dessen Repräsentation als Datenmodell im Hintergrund. Des Weiteren werden in dieser Klasse Listener gestartet, die die Aktionen am Graphen überwachen und die weitere Steuerung ermöglichen. Dazu gehören: dass Knoten und Kanten dem Datenmodell des Graphen hinzugefügt bzw. aus diesen entfernt werden, wenn die grafischen Komponenten, in der Präsentationsebene von CADEMIA, vom Nutzer hinzugefügt bzw. entfernt werden, die entsprechende Reaktion auf die Kopierbefehle, d.h. die richtige Zuordnung von kopierten Kanten, zu den ebenfalls kopierten Knoten, das Aufheben des berechneten Zustands und Überführen in den unberechneten Zustand, falls eine Änderung am berechneten Graph eintritt, das Entfernen das Graphen beim Speichern der CADEMIA-Datenbasis und das wieder Hinzufügen, nachdem die CADEMIA-Datenbasis gespeichert wurde; diese Aktion wurde gewählt, um die Gebäudegrundrisse von dem Fluchtweggraphen getrennt zu halten und zu speichern, 12 Im Event(Ereignis)-Modell von Java warten (lauschen) die Listener auf bestimmte Ereignisse, um im Fall des Auftretens eine bestimmte Aktion auszuführen. 69

70 Umsetzung in dem CAD-System CADEMIA des Weiteren übernimmt die Klasse StartFluchtweg die Aufgabe, durch Aktualisierung der Präsentationsebene die Komponente Kante immer an der Komponente Knoten anzubinden und so eine Darstellung von einer nachfolgenden Kante an einem Knoten, der verschoben wird besonders realistisch wirken zu lassen, die gestarteten Listener werden jeweils an- bzw. abgemeldet, wenn das CAD- System CADEMIA sein Datenbasis speichert bzw. damit fertig ist, um einem Fehler zu entgehen, wenn nicht serialisierbare Objekt wie Listener gespeichert werden. Es werden für das CAD-System CADEMIA folgende Components für die Darstellung in der Präsentationsebene erstellt. Für die Knoten wird die Klasse ComponentKnoten und für die Kanten die Klasse ComponentKante implementiert. Modell (Proxies) Datenmodell des Plugins 0..* ComponentKnoten 1 1 Knoten * Graph ComponentKante Kante * Abbildung 6.3 Die Beziehung des Modells zu den Components Die Abbildung 6-9 zeigt die Kapselung der Knoten und Kanten aus dem Datenmodell des Plugins durch die Components. Die Components stellen in den CADEMIA-Proxies (Stellvertretern) die grafische Komponente des Graphenmodells dar. Ihre Eigenschaften (Position im Koordinatensystem) beziehen sie aus den gekapselten Objekten Knoten und Kante, des Datenmodells. Damit wird die Darstellung in der Präsentationsebene von CADEMIA erst möglich. 70

71 Umsetzung in dem CAD-System CADEMIA Abbildung 6.4 Kapselung der Modellkomponenten in den Components Die Abbildung 6-4 zeigt, dass die beiden Modellkomponenten Knoten und Kante von den grafischen Komponenten gewrappt (gekapselt) werden, um so, wie in Abbildung 6-3 zu sehen ist, dem Modell von CADEMIA zu entsprechen. Eine grafische Komponente Graph ist nicht notwendig. Die Befehl AddKnoten erzeugt beim Aufruf einen neuen Knoten. Dieser wird an ComponentKnoten übergeben. Wenn der grafische Vertreter des Knotens in der 2D-Ebene eingefügt wird, so gibt er die Koordinaten an den von ihm gekapselten Knoten weiter. Die x- und y-koordinaten werden nicht in ComponentKnoten, sondern in der Klasse Knoten gespeichert. Die in den Listener-Methoden der Klasse StartFluchtweg integrierten Abfragen registrieren das Hinzufügen der grafischen Komponente zur Datenbasis von CADEMIA. Diese Methoden greifen daraufhin auf den erstellten Knoten in der grafischen Komponente zu, und fügen das Knotenobjekt der HashMap graph des Graphen hinzu. Die grafische Komponente des Knoten zeichnet sich in der Präsentationsebene als ein Symbol mit einem äußeren und einem inneren Kreis ab. Der äußere Kreis wurde mit eine Durchmesser von 80 cm gewählt (wenn man den Maßstab 1 Zeicheneinheit gleich 1 m annimmt); was eine gute Erkennung und Handhabung der Knoten für übliche Grundrisszeichnungen zulässt. Für den inneren Kreis wurde ein Durchmesser von 45 cm gewählt, was der durchschnittlichen Schulterbreite eines Menschen entspricht. 71

72 Umsetzung in dem CAD-System CADEMIA Abbildung 6.5 Platzierungshilfen für Symbol Knoten Um für die Platzierung der Knoten eine Hilfestellung zu erhalten, wurden an dem inneren Kreis kurze Linien angefügt. Diese Linien enden in den Ecken eines gedachten Quadrates mit der Kantenlänge 45 cm. Dies ermöglicht eine einfache Positionierung der Knoten an Wandinnenecken und an Wandaussenecken. Der Einfügepunkt des Knoten liegt im Mittelpunkt der Kreise und ermöglicht dadurch das Zentrieren zwischen Wänden oder in Türen. Die grafische Komponente für die Kanten durch ComponentKante, geht in ihrer Darstellung über die normale Linie hinausgehen. Als wichtige Eigenschaft zählen: die Verbindung der Kreise (Knoten) durch die Linien (Kanten) werden nur von äußerer Kreislinie zu äußerer Kreislinie dargestellt, der Anfang und das Ende der Kante befindet sich jedoch im Mittelpunkt der Knoten, die Kanten sind nicht eigenständig verschiebbar und dürfen nicht ohne Knoten existieren, wird ein Knoten verschoben, müssen die anliegenden Kanten mit verschoben werden. 72

73 Umsetzung in dem CAD-System CADEMIA Abbildung 6.6 Farben für Knoten und Kanten Die Symbole des unberechneten Graphen haben als Linienfarbe Schwarz und die Füllfarbe für die Knoten ist Grau. Der Notausgangsknoten wird durch ein Symbol mit schwarzer Zeichenund grüner Füllfarbe, was dem Rettungszeichen E09 aus der BGV A8 [14] nachempfunden ist, dargestellt. Der berechnete Graph ist durch Knotensymbole mit der Zeichenfarbe Schwarz und der Füllfarbe Grün gekennzeichnet. Für die Kanten ist, in diesem Fall, die Zeichen- und die Kantenfarbe Grün. Für einen unzulässig langen Fluchtweg wird als Füllfarbe bei den Knoten Rot und die Zeichen- und Füllfarbe der Kante ebenfalls Rot verwendet. 6.4 Schnittstellen Das Datenmodell des Graphen kann wie die CADEMIA eigene Datenbasis in einem Dateiausgabestrom von Java abspeichert werden oder mittels eines textbasierten etablierten Formats wie XML. Das XML-Format hat den Vorteil, dass es durch den Aufbau aus Textzeichen auch für Menschen lesbar ist. Darüber hinaus stellt es ein Austauschformat dar. Die Informationen aus dem erstellten Fluchtweggraphen können so auch für andere Systeme lesbar gemacht werden. Auf der Basis von XML gibt es eine spezifische XML-Sprache für die Beschreibung von Graphen GraphML. Wie schon im Kapitel 5.4 erwähnt ist dieses Format durch seine geringen strukturellen und inhaltlichen Einschränkungen bestens geeignet als Schnittstelle für den Fluchtweggraphen. Zwingend vorgeschrieben ist wie in XML der Dokumentenaufbau, angefangen vom Wurzelelement über die Kennzeichnung mit Beginn- und Endtag und die Verwendung von standardisierten Bezeichnungen. Für GraphML werden im Folgenden die wichtigsten Elementnamen vorgestellt. Es handelt sich dabei um eine Auswahl der vorgeschriebenen Elemente: <graphml> ist das Wurzelelement jeder GraphML-Datei; innerhalb des Elements wird die Adresse des verwendeten Namensraums der GraphML-Datei angegeben. 73

74 Umsetzung in dem CAD-System CADEMIA <graph> diese Element umschließt die Beschreibung des Graphen, wobei ein Dokument auch mehrere Graphen enthalten kann. Zu dem Element kann noch ein Attribut edgedefault mit dem Wert directed oder undirected zur Festlegung, ob der Graph gerichtet oder ungerichtet ist hinzugefügt werden. <key> in diesem Element können Attribute vereinbart werden und mit dem Wort for werden sie den entsprechenden Elementen (z.b. node, edge, ) zugewiesen. Der Name des Attributs wird mit attr.name und der Datentyp mit attr.type angegeben (mögliche Werte sind: boolean, int, long, float, double, und string ), die Standardwerte werden in dem Element <default> definiert und jedes Attribut erhält eine id einen Identifikator (eindeutiger Bezeichner). <node> in dem Element Knoten ist nur die Angabe des Namen des Kotens mit dem Attribut id zwingend, <edge> beinhaltet nicht nur das Attribut id für den Namen der Kante sondern auch source mit dem Namen des Anfangsknoten der Kante und target mit dem Namen des Endknotens der Kante. <data> innerhalb dieses Elements können die unter <key> vereinbarten Attribute ihre Werte erhalten. Dieses Element lässt dem Nutzer den Freiraum seine eigenen spezifischen Daten abzulegen und GraphML zu erweitern. Es wird unter Nennung der id mit dem Schlüsselwort key der jeweilige Wert eingefügt. GraphML ist somit optimal erweiterbar, der Nutzer kann strukturierte Inhalte in die Elemente <data> und <default> einfügen und zu jedem GraphML Element Attribute hinzufügen. Die geringe Syntax und die einfache Erweiterung sind neben der Verfügbarkeit als freies Dateiformat die Hauptgründe, warum GraphML als Schnittstelle gewählt wurde Export ExportGraph exportg Der Graph wird in eine Datei im GraphML Format geschrieben. Tabelle 6.9 Befehl ExportGraph Nach dem Aufruf des Befehls ExportGraph erfolgt der Export des Graphen in das XML- Format GraphML. Dies geschieht mit Hilfe eines JDOM 13 Dokument. Das JDOM-Dokument stellt das XML- Dokument als Baumstruktur im Speicher dar. Dabei wird die Dokumentenstruktur einer 13 eine Java-API, für die XML-Darstellung, begründet von J. Hunter und B. McLaughlin, Internet: (aufgerufen am ) 74

75 Umsetzung in dem CAD-System CADEMIA GraphML-Datei eingelesen und dann mit den Elementen Konten und Kante und ihren Attributen angereichert. Wenn der komplette Graph dem Dokument hinzugefügt wurde, kann das Dokument als GraphML-Datei wieder ausgegeben werden. <?xml version="1.0" encoding="utf-8"?> <graphml xmlns=" xmlns:xsi=" xsi:schemalocation=" <key id="d1" for="node" attr.name="x" attr.type="double"/> <key id="d2" for="node" attr.name="y" attr.type="double"/> <key id="d3" for="node" attr.name="node_type" attr.type="string"> <default>default</default> </key> <key id="d4" for="node" attr.name="exit" attr.type="string"> <default>not_available</default> </key> <key id="d5" for="node" attr.name="exit_dist" attr.type="double"> <default>infintiy</default> </key> <key id="d6" for="node" attr.name="scale_factor" attr.type="double"> <default>1.0</default> </key> <key id="d7" for="edge" attr.name="dest_node" attr.type="string"> <default>not_available</default> </key> <graph id="g" edgedefault="undirected"> </graph> </graphml> Code Listing 6.3 Die Datei base.graphml Die Klasse GraphmlWriter liest als erstes die GraphML-Datei base.graphml ein. Der Inhalt wird JDOM-Dokument im Speicher zur Verfügung gestellt. Die Datei base.graphml enthält bereits das Wurzelelement <graphml>, das Element <key> und die zu vereinbarenden Attribute für die Knoten: die x- und y-koordinaten - x und y, den Knotentyp node_type, der Name des Notausgangs für den Knoten exit, 75

76 Umsetzung in dem CAD-System CADEMIA die Entfernung zum nächsten Notausgang exit_dist und den Skalierfaktor scale_factor; und für die Kanten: der Knoten in Fluchtrichtung dest_node. Weiterhin ist im Element <graph>, das Attribut edgedefault vorhanden, was den Wert undirected (ungerichtet) besitzt. Die Datei enthält keine Elemente <node> (Knoten) oder <edge> (Kante). In dieser Struktur wird als erstes das Attribut edgedefault des Graphen überprüft, wenn es sich um einen berechneten Fluchtweggraphen handelt erhält das Attribut den Wert directed (gerichtet) bzw. beim unberechneten Graphen wird der Wert nicht verändert. Danach wird über die gesamte Knotenmenge iteriert und jeder Knoten wird mit seinem Namen im Attribut id und seinen Eigenschaften im Element <data> abgelegt. <node id="kn48"> <data key="d1">16.0</data> <data key="d2">0.3</data> <data key="d3">default</data> <data key="d4">kn21</data> <data key="d5">15.05</data> <data key="d6">1.0</data> </node> Code Listing 6.4 Das Element <node> mit Eigenschaften Für den Knoten mit dem Namen kn48, werden im Unterelement <data> der x-wert (x = 16.0), der y-wert (y = 0.3), der Knotentyp (node_type = DEFAULT), der Name des nächst gelegenen Notausgangs für den Knoten (exit = kn21), die Entfernung zum nächsten Notausgang (exit_dist = 15.05) und der Skalierfaktor (scale_factor = 1.0) in das Dokument eingefügt. <edge id="ka_kn55-kn21" source="kn55" target="kn21"> <data key="d7">kn21</data> </edge> Code Listing 6.5 Das Element <edge> mit Eigenschaften Als nächstes erfolgt eine Iteration über die Kantenmenge und jede Kante wird als Element mit ihrem Namen (ka_kn55-kn21)im Attribut id, der Knoten A (kn55) unter source, der Knoten B (kn21) unter target und im Element <data> wird der Knoten in Fluchtrichtung (dest_node = kn21) eingefügt. Nachdem die Elemente in die Baumstruktur des Dokuments eingefügt worden, kann das JDOM-Dokument mit Hilfe eines Dateiausgabestrom in 76

77 Umsetzung in dem CAD-System CADEMIA eine GraphML-Datei geschrieben werden. Vorher wird durch die Methode getpretty- Format() (aus dem JDOM-Paket) eine ansprechende Formatierung für die GraphML-Datei erstellt Import ImportGraph importg Ein Graph wird aus einer Datei im GraphML Format geladen. Tabelle 6.10 Befehl ImportGraph Der Befehl ImportGraph öffnet eine GrapML-Datei und initiiert einen SAX-Parser 14, der eine XML-Datei ereignisbasiert durchläuft. Der SAX-Parser ruft für bestimmte Ereignisse (Beginn oder Ende eines Elements, usw.) beim sequentiellen durchlaufen eines XML-Dokuments Methoden in einer Klasse auf, die die Klasse DefaultHandler aus dem org.sax-paket erweitert. Um diese Ereignisse dann zu verarbeiten, werden in die Methoden die entsprechenden Behandlungsabläufe für das Ereignis implementiert. Die Klasse GraphmlHandler erweitert die Klasse DefaultHandler. Dabei werden folgende Ereignisse zum Auslesen der GraphML-Datei genutzt. Wenn das Ereignis Anfang des Dokumentes (startdocument()) auftritt, wird ein Objekt m_graph vom Typ Graph neu erstellt und instanziiert. Für das Ereignis ein Zeichen wird gelesen (characters(char ch[], int start, int length)) werden diese Zeichen alle gelesen, zu einem String zusammengefasst und in der Variablen m_str abgelegt. Das Ereignis ein Element beginnt (Methode mit den Namen startelement), wird zuerst ermittelt, um welches Element es sich handelt. Für das Element: <key> wird der String für das aktuell gefundene Element (m_tempelemname) auf KEY gesetzt; die Namen und Werte für die Attribute der Knoten in eine Map für Knoten eingetragen. Die Namen und Werte für die Attribute der Kanten werden in eine Map für Kanten eingetragen. <data> wird die Bezeichnung des Attributes id in die Variable m_keyid eingetragen, <node> wird nach dem Abgleich, ob der Knotenname mit dem Präfix kn beginnt, der Knoten dem Graphen hinzugefügt und der String für das aktuell gefundene Element (m_tempelemname) auf NODE gesetzt, <edge> werden die Werte für die Knoten A und B der Kante ausgelesen und die Kante wird dem Graphen hinzugefügt. Der String für das aktuell gefundene Element (m_tempelemname) wird auf EDGE gesetzt. 14 Simple API for XML, von D. Megginson, eine API zum Parsen von XML-Dateien, Internet: (aufgerufen am ) 77

78 Umsetzung in dem CAD-System CADEMIA Für das Ereignis das Element endet (endelement()) wird über eine Auswahl bestimmt, was für ein Element gerade endet, dazu wird der String m_tempelemname abgeglichen. Falls es sich um: <node> handelt, wird die Map der Knotenattribute abgefragt, ob ein Bezeichner mit der passenden id für die x- oder y-werte übereinstimmt, wenn ja werden die Werte aus dem String m_str in eine Gleitkommazahl umgewandelt und dem aktuell gültigen Knoten hinzugefügt, falls es sich um die zusätzliche Eigenschaften des Knotens, wie Knotentyp, Skalierfaktor handelt werden diese ebenfalls dem Knoten hinzugefügt. Anschließend wird der String m_str wieder geleert. Die Klasse ImportGraph liest, den so erstellt Graphen, mit der Methode getgraph() der Klasse GraphmlHandler, aus und fügt den Graphen der Datenbasis von CADEMIA hinzu. Dies geschieht durch das Erstellen der grafischen Komponenten, welche ihrerseits das Datenmodell der Applikation zur Bestimmung der Fluchtweglängen füllt. Zuvor wird noch überprüft, in wie weit die Knotennamen von ihrem Zähler (die natürlich Zahl nach dem Präfix) her schon vergeben wurden. Dabei wird der größte ermittelte Knotenzähler dem Namensraum von CADEMIA mitgeteilt, so dass jetzt für neu erstellte Knoten, die Generierung der Namen erst mit dieser Zahl weiter geht. Die Namenskombination besteht aus kn plus der fortlaufenden Zahl. Durch das Hinzufügen des Graphen zu Datenbasis von CADEMIA findet für den Graphen eine Änderung statt. Dadurch geht jeder Graph automatisch in den unberechneten Zustand über. Alle Werte des berechneten Graphen und damit die Werte in den Knoten und Kanten werden auf die Defaultwerte gesetzt. Aus diesem Grund werden die Eigenschaften des berechneten Graphen nicht ausgelesen. Des Weiteren kann jeder unberechnete Graph, durch aufrufen des Befehls CalcEscape, sofort berechnet werden. 78

79 Umsetzung in dem CAD-System CADEMIA Java-Klasse Kommando Symbol Aktion StoreGraph saveg Der Graph wird im binären Format gespeichert. StoreAsGraph saveasg Der Graph wird im binären Format unter einem neuen Namen gespeichert. LoadGraph loadg Ein Graph wird aus dem binären Format geladen. ShowGraph show Der Graph wird in Textform auf der Konsole ausgegeben (zu Testzwecken). SelectByName selectbyname Es wird zusätzlich eine Eingabe mit einer Wildcard am Ende des Namen unterstützt (z.b. kn* liefert alle Objekte mit den Anfangsbuchstaben kn). Tabelle 6.11 Weitere Befehlsklassen und Kommandos Auf die in Tabelle 6.5 gezeigten Befehle wird nicht näher eingegangen, da sie zum Teil Zwischenschritte bzw. eine Hilfestellung bei der Entwicklung des Programms darstellen. Die Speicherung (StoreGraph)und das Laden (LoadGraph) des Graphen im binären Format ist eine Möglichkeit den Graphen zu sichern. Der Befehl ShowGraph gibt die Namen der Knoten und sein anliegenden Kanten zur Kontrolle desselben auf der Konsole aus. Der Befehl SelectByName überschreibt den gleichnamigen CADEMIA-Befehl. Die Modifikation des Befehls ist eine Unterstützung beim jeweiligen Selektieren aller Knoten oder aller Kanten. 79

80 Verifikation an einem Planungsszenario 7 Verifikation an einem Planungsszenario 7.1 Anordnung der Knoten und Kanten im Grundriss Der Fluchtweggraph wird erstellt, indem seine Knoten und Kanten in die Zeichenebene eingefügt werden. Für den Knoten ist es auch möglich in der Kommandozeile die entsprechenden x- und y-koordinaten einzugeben. Für die Kanten ist die Kommandozeileneingabe nicht möglich, hier muss ein Start- und ein Endknoten in der Zeichenebene selektiert werden. Die Knoten des Fluchtweggraphen sind an den Punkten in einem Raum anzuordnen, die am weitesten vom Ausgang dieses Raumes entfernt sind. Weiterhin sollen Knoten an den Punkten angeordnet werden, an denen ein Richtungswechsel auf dem Flucht- und Rettungsweg stattfindet. Dazu zählen die Punkte an denen sich mehrere Rettungswege kreuzen, zusammentreffen, trennen; und die Punkte an denen die Flucht- und Rettungswege enden. Das kann ein Ausgang ins Freie, oder der Übergang zu einer (einem) notwendigen Treppe (Treppenraum), oder der Übergang in einen anderen Brandabschnitt sein. Die Kanten des Fluchtweggraphen sollen den effektiven Weg auf dem Flucht- und Rettungsweg darstellen. Mit dem effektiven Weg ist die tatsächliche Lauflinie gemeint. Somit dürfen die Kanten keine Wände, Einrichtungsgegenstände oder sonstige Hindernisse, die ein Mensch nicht passieren kann, nicht schneiden. 7.2 Anwendung an einem Planungsszenario Gedacht ist ein Szenario, in dem ein Planer einen Grundriss entwirft, und dieser dann von ihm selbst oder einem anderen Fachplaner auf die Einhaltung der gültigen Rechtsvorschriften und Bauordnungen bzw. Sonderbauordnungen überprüft. Inhalt der Überprüfung ist die maximal zulässige Länge des Flucht- und Rettungsweges von jeder Stelle eines Aufenthaltsraumes bis zu einer Treppe oder ins Freie. In diesem Planungsszenario wird, von der Musterbauordnung ausgehend, eine maximale Rettungsweglänge von 35 m gefordert.. 80

81 Verifikation an einem Planungsszenario Abbildung 7.1 Grundriss Als erstes wird eine Grundrisszeichnung erstellt. Dies geschieht durch den Architekten oder Ingenieur nach seinen Vorstellungen Abbildung 7.2 Anordnung der Knoten Danach werden die Knoten eingefügt. Die Endknoten werden in den weitesten Ecken der Räume positioniert. Dabei ist die unterschiedliche Positionierung zu beachten; die Endknoten in den Wandinnenecken, die Abbiegeknoten an den Wandaußenecken oder an sonstigen Bauteilen oder Einrichtungsgegenständen, denen ausgewichen werden muss. Dabei helfen die Hilfslinien, die an dem Innenkreis des Knotensymbols angebracht sind. Diese Schnitt- und Endpunkte im Knotensymbol können mit der Einstellung Pick gefangen werden. Die Türknoten werden mittig in der Türöffnung platziert. Dabei hilft der Einfügepunkt des Knoten der im Mittelpunkt der Kreise liegt. 81

82 Verifikation an einem Planungsszenario Abbildung 7.3 Grundriss mit Knoten Auf den Laufwegen der Flure müssen Knoten eingefügt werden; und nicht zu vergessen ist der Knoten auf der Treppe welcher als Fluchtziel dienen soll. Abbildung 7.4 Grundriss mit Knoten und Kanten 82

83 Verifikation an einem Planungsszenario Als nächstes werden die Knoten durch Kanten verbunden, wobei darauf zu achten ist, dass nur Kanten zwischen zwei Knoten eingefügt werden können, wenn dies auch einen begehbaren Weg darstellt. Kanten müssen immer durch den freien Raum und durch Türen geführt werden und dürfen dabei keine Bauteile kreuzen. Abbildung 7.5 EXIT-Knoten setzen Nun wird der Ausgangsknoten festgelegt, durch markieren und drücken des Notausgangssymbols EXIT. Abbildung 7.6 Ergebnisgraph Jetzt kann die Berechnung ausgelöst werden. Das Ergebnis ist ein unzulässig langer Fluchtweg von mehr als 35 m. 83

84 Verifikation an einem Planungsszenario Abbildung 7.7 Knoten mit Feature Dialog Mit diesem Ergebnis erfüllt der Entwurf nicht die Anforderungen nach Musterbauordnung, und wird somit nicht von den zuständigen Stellen genehmigt. Was folgt ist eine Überarbeitung des Entwurfs dahingehend die bestehenden Regeln einzuhalten. Der Fluchtweggraph wurde vorher unabhängig von der Zeichnung in dem Austauschformat GraphML gespeichert. Abbildung 7.8 Export ins GraphML-Format 84

85 Verifikation an einem Planungsszenario Abbildung 7.9 Änderung des Entwurfs Nach der Überarbeitung kann in den zweiten Entwurf der Fluchtweggraph importiert werden, um auch ihn anzupassen. Abbildung 7.10 Knoten verschieben und Kante einfügen Jetzt wird erneut die Berechnung gestartet, um die Fluchtweglänge zu überprüfen. Diese ergibt einen regelkonformen Entwurf. 85

86 Verifikation an einem Planungsszenario Abbildung 7.11 Fluchtweglänge ist eingehalten Der Fluchtweggraph in der oben stehenden Abbildung enthält nur Fluchtweglängen, die kürzer sind als 35 m. 86

Entwurf und Umsetzung eines Werkzeugs für die Fluchtwegplanung

Entwurf und Umsetzung eines Werkzeugs für die Fluchtwegplanung Entwurf und Umsetzung eines Werkzeugs für die Fluchtwegplanung Diplomarbeit Christian Weiprecht Bauhaus-Universität Weimar Fakultät Bauingenieurwesen Professur CAD in der Bauinformatik Inhaltsübersicht

Mehr

Relationen und Graphentheorie

Relationen und Graphentheorie Seite Graphentheorie- Relationen und Graphentheorie Grundbegriffe. Relationen- und Graphentheorie gehören zu den wichtigsten Hilfsmitteln der Informatik, die aus der diskretenmathematik stammen. Ein Graph

Mehr

Elektrische Anlagen und Bauordnungsrecht

Elektrische Anlagen und Bauordnungsrecht VDE-Schriftenreihe 131 Elektrische Anlagen und srecht Zusammenhänge, dargestellt am Beispiel der n BayBO unter Berücksichtigung und Gegenüberstellung der Musterbauordnung (MBO) Bearbeitet von Joachim Jackisch

Mehr

Routing A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung

Routing A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

Graphentheorie Graphentheorie. Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke

Graphentheorie Graphentheorie. Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke Graphen Graphentheorie Graphentheorie Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke 2 Was ist ein Graph? Ein Graph ist in der Graphentheorie eine abstrakte Struktur,

Mehr

Algorithmen und Datenstrukturen 2-1. Seminar -

Algorithmen und Datenstrukturen 2-1. Seminar - Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 7 Algorithmus von Dijkstra Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)

Mehr

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

Mehr

Routing Algorithmen. Begriffe, Definitionen

Routing Algorithmen. Begriffe, Definitionen Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen) WS 2015/16 Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Institut für Programmierung Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2016 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Schilda-Rallye Was steckt

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2010/2011 1/59 Graphische Darstellung von Zusammenhängen schon

Mehr

3. Die Datenstruktur Graph

3. Die Datenstruktur Graph 3. Die Datenstruktur Graph 3.1 Einleitung: Das Königsberger Brückenproblem Das Königsberger Brückenproblem ist eine mathematische Fragestellung des frühen 18. Jahrhunderts, die anhand von sieben Brücken

Mehr

Einheit 11 - Graphen

Einheit 11 - Graphen Einheit - Graphen Bevor wir in medias res (eigentlich heißt es medias in res) gehen, eine Zusammenfassung der wichtigsten Definitionen und Notationen für Graphen. Graphen bestehen aus Knoten (vertex, vertices)

Mehr

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme Universität Hamburg Fachbereich Mathematik Seminar: Proseminar Graphentheorie Dozentin: Haibo Ruan Sommersemester 2011 Ausarbeitung zum Modulabschluss Graphentheorie spannende Bäume, bewertete Graphen,

Mehr

Kürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring

Kürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring Kürzeste Wege in Graphen Orte mit Straßenverbindungen Orte als Knoten eines Graphen Straßenverbindungen als Kanten eines Graphen Ungerichteter Graph G = (V,E) Kanten Knoten Knotenmenge V = {,,n} oder {,,n

Mehr

Für die Sicherstellung von Flucht- und Rettungswegen sind in der Regel mindestens folgende Voraussetzungen erforderlich:

Für die Sicherstellung von Flucht- und Rettungswegen sind in der Regel mindestens folgende Voraussetzungen erforderlich: TECHNISCHE INFORMATION Brandlasten in Flucht- und Rettungswegen Über Flucht- und Rettungswege in Gebäuden müssen im Brandfall grundsätzlich die Eigen- und Fremdrettung von Menschen und Tieren ins Freie

Mehr

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008 Technische Universität München Fakultät für Informatik Lehrstuhl für Informatik 15 Computergraphik & Visualisierung Prof. Dr. Rüdiger Westermann Dr. Werner Meixner Wintersemester 2007/08 Lösungsblatt 9

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/42 Graphische Darstellung von Zusammenhängen schon an vielen Stellen

Mehr

Motivation Kap. 6: Graphen

Motivation Kap. 6: Graphen Motivation Kap. 6: Graphen Warum soll ich heute hier bleiben? Graphen sind wichtig und machen Spaß! Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund Was gibt es

Mehr

André Krischke Helge Röpcke. Graphen und Netzwerktheorie Grundlagen Methoden Anwendungen

André Krischke Helge Röpcke. Graphen und Netzwerktheorie Grundlagen Methoden Anwendungen André Krischke Helge Röpcke Graphen und Netzwerktheorie Grundlagen Methoden Anwendungen 8 Grundbegriffe der Graphentheorie für die Kante, die die beiden Knoten und verbindet. Der linke Graph in Bild. kann

Mehr

Graphen. Definitionen

Graphen. Definitionen Graphen Graphen werden häufig als Modell für das Lösen eines Problems aus der Praxis verwendet, wie wir im Kapitel 1 gesehen haben. Der Schweizer Mathematiker Euler hat als erster Graphen verwendet, um

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 02. Mai 2017 [Letzte Aktualisierung: 10/07/2018,

Mehr

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert:

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert: KAPITEL 3 Graphen Man kann als Ursprung der Graphentheorie ein Problem sehen, welches Euler 1736 von Studenten aus Königsberg gestellt bekam. Der Fluss Pregel wird von 7 Brücken überquert, und die Frage

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 7 und 8: Euler- und Hamilton-Graphen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 17. April 2018 1/96 WIEDERHOLUNG Eulersche

Mehr

Graphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007

Graphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007 Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 25. Oktober 2007 1 / 20 2 / 20 Wir werden Optimierungsprobleme vom folgenden Typ betrachten: gegeben eine Menge X und eine Funktion

Mehr

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten

Mehr

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2 1 Graphen Definition: Ein Graph G = (V,E) setzt sich aus einer Knotenmenge V und einer (Multi)Menge E V V, die als Kantenmenge bezeichnet wird, zusammen. Falls E symmetrisch ist, d.h.( u,v V)[(u,v) E (v,u)

Mehr

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45 Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009

Mehr

Brandschutztechnische Stellungnahme als Brandschutznachweis

Brandschutztechnische Stellungnahme als Brandschutznachweis 28.12.2017 Brandschutztechnische Stellungnahme als Brandschutznachweis Projekt : Errichtung einer Saftreinigungsanlage auf dem Gelände der Zuckerfabrik Anklam Objekt : Suiker Unie GmbH & Co. KG Zuckerfabrik

Mehr

Bipartite Graphen. Beispiele

Bipartite Graphen. Beispiele Bipartite Graphen Ein Graph G = (V, E) heiÿt bipartit (oder paar), wenn die Knotenmenge in zwei disjunkte Teilmengen zerfällt (V = S T mit S T = ), sodass jede Kante einen Knoten aus S mit einem Knoten

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 16: Erste Algorithmen in Graphen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für

Mehr

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

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen)

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen) WS 2016/17 Diskrete Strukturen Kapitel 2: Grundlagen (Mengen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

DIN Fassung Juni Gebäudetreppen Begriffe, Messregeln, Hauptmaße

DIN Fassung Juni Gebäudetreppen Begriffe, Messregeln, Hauptmaße Derzeit ist in der Liste der als Technische Baubestimmungen eingeführten technischen Regeln mit Bekanntmachung des Bayerischen Staatsministeriums des Innern vom 3. Dezember 2010 Az.: IIB9-4132- 014/91

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (2) Spannbäume Kürzeste Wege Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 455 Wiederholung Traversierung eines Graphen via Tiefendurchlaufs

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Tutorium 24-6. Sitzung Marcus Georgi tutorium@marcusgeorgi.de 04.12.2009 1 Repräsentation von Graphen im Rechner Adjazenzlisten Adjazenzmatrizen Wegematrizen 2 Erreichbarkeitsrelationen

Mehr

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie Dipl-Math. Wolfgang Kinzner 2.4.2012 Kapitel 1: Grundlagen der algorithmischen Graphgentheorie

Mehr

Kodieren Von Graphen

Kodieren Von Graphen Kodieren Von Graphen Allgemeine Anwendungen: Routenplaner Netzpläne Elektrische Schaltungen Gebäudeerkennung aus Luftaufnahmen Definitionen:? Graph Ein Graph G besteht aus einem geordneten Paar G = (V,E)

Mehr

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009

Mehr

Schäden durch mangelhaften Brandschutz

Schäden durch mangelhaften Brandschutz Schadenfreies Bauen Herausgegeben von Dr.-Ing. Ralf Ruhnau Begründet von Professor Günter Zimmermann Band 4S Schäden durch mangelhaften Brandschutz Von Dr-Ing Gerd Geburtig Dipl.-Ing. Ingo Schlegel Fraunhofer

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 14. Mai

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 15: Graphen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik

Mehr

Flucht-, Rettungs- und Bestuhlungspläne

Flucht-, Rettungs- und Bestuhlungspläne Verbindlicher Standard für die Erstellung von Flucht-, Rettungs- und Bestuhlungspläne des Immobilienservicebetriebes der Stadt Bielefeld Stadt Bielefeld Immobilienservicebetrieb August-Bebel-Str. 92 33602

Mehr

ÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG

ÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG ÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG Unter objektorientierter Modellierung versteht man das detailgetreue Darstellen einer zu programmierenden Szene durch Skizzen in UML. UML steht für Unified Modelling

Mehr

Rettungswege. Inhalte Vorlesung: Prinzip der Rettungswege (erster u. zweiter Rettungsweg) Anforderungen an Rettungswege geregelter Bauten

Rettungswege. Inhalte Vorlesung: Prinzip der Rettungswege (erster u. zweiter Rettungsweg) Anforderungen an Rettungswege geregelter Bauten Rettungswege Inhalte Vorlesung: Prinzip der Rettungswege (erster u. zweiter Rettungsweg) Anforderungen an Rettungswege geregelter Bauten 1 2 Rettungswege Rettung für wen? wie? 3 Rettungswege Rettung für

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung. Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines

Mehr

Herzlich Willkommen Brandschutz!!! Frage: Bestandsschutz??? Brandschutzplanung Martin Amler

Herzlich Willkommen Brandschutz!!! Frage: Bestandsschutz??? Brandschutzplanung Martin Amler Herzlich Willkommen Brandschutz!!! Frage: Bestandsschutz??? 1 07.11.2016 Gibt es Bestandsschutz im Brandschutz? 2 Woher gründet der Begriff Bestandsschutz? Grundgesetz für die Bundesrepublik Deutschland

Mehr

6. Übung zur Linearen Optimierung SS08

6. Übung zur Linearen Optimierung SS08 6 Übung zur Linearen Optimierung SS08 1 Sei G = (V, E) ein schlichter ungerichteter Graph mit n Ecken und m Kanten Für eine Ecke v V heißt die Zahl der Kanten (u, v) E Grad der Ecke (a) Ist die Anzahl

Mehr

Leseprobe zum Download

Leseprobe zum Download Leseprobe zum Download Eisenhans / fotolia.com Sven Vietense / fotlia.com Picture-Factory / fotolia.com Liebe Besucherinnen und Besucher unserer Homepage, tagtäglich müssen Sie wichtige Entscheidungen

Mehr

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik Foliensatz 16 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 45 Graphen TU Ilmenau Seite 2 / 45 Graphen 1 2 3 4 5 6 7 8

Mehr

Graphen. Graphen und ihre Darstellungen

Graphen. Graphen und ihre Darstellungen Graphen Graphen und ihre Darstellungen Ein Graph beschreibt Beziehungen zwischen den Elementen einer Menge von Objekten. Die Objekte werden als Knoten des Graphen bezeichnet; besteht zwischen zwei Knoten

Mehr

Die Sonderbauordnungen Überblick am Beispiel des Landes NRW

Die Sonderbauordnungen Überblick am Beispiel des Landes NRW Vorlesung M. Sc. REM & CPM 2008 Teil 3-01- Die Sonderbauordnungen Überblick am Beispiel des Landes NRW Die Landesbauordnung NRW ist mit allen ihren Vorschriften aus einer Norm für Wohnungsbauten entstanden.

Mehr

Fachgebiet Brandschutz Wintersemester 2016/2017. Sonderbauten - VI.6: Versammlungsstätten -

Fachgebiet Brandschutz Wintersemester 2016/2017. Sonderbauten - VI.6: Versammlungsstätten - ZIELSETZUNG DES TAGES Fachgebiet Brandschutz Wintersemester 2016/2017 Sonderbauten - VI.6: Versammlungsstätten - Prof. Dr.-Ing. Architekt Gerd Geburtig SV und Prüfingenieur für Brandschutz Analyse möglicher

Mehr

Teil 2: Graphenalgorithmen

Teil 2: Graphenalgorithmen Teil : Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Problemstellung Ungewichtete Graphen Distanzgraphen Gewichtete

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 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/ws0809

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

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V. Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.

Mehr

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0. 8.4 Digraphen mit negativen Kantengewichten 8.4.1 Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0. k 4 5 1 s 1 3 2 C k 0 k 3 1 1 1 k 1 k 2 v Sollte ein Pfad von s nach C und

Mehr

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale

Mehr

2. Repräsentationen von Graphen in Computern

2. Repräsentationen von Graphen in Computern 2. Repräsentationen von Graphen in Computern Kapitelinhalt 2. Repräsentationen von Graphen in Computern Matrizen- und Listendarstellung von Graphen Berechnung der Anzahl der verschiedenen Kantenzüge zwischen

Mehr

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1 Lösungen zu den Übungsaufgaben im Kapitel 4 des Lehrbuches Operations Research Deterministische Modelle und Methoden von Stephan Dempe und Heiner Schreier Aufgabe 1: Berechnen Sie für den in Abbildung

Mehr

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie Referenzen zum Nacharbeiten: Diskrete Mathematik Sebastian Iwanowski FH Wedel Kap. 6: Graphentheorie Lang 6 Beutelspacher 8.1-8.5 Meinel 11 zur Vertiefung: Aigner 6, 7 (7.4: Algorithmus von Dijkstra) Matousek

Mehr

KARL-FRANZENS-UNIVERSITÄT GRAZ. Seminar aus Reiner Mathematik. Die Museumswächter. Krupic Mustafa Wintersemester 2013/14

KARL-FRANZENS-UNIVERSITÄT GRAZ. Seminar aus Reiner Mathematik. Die Museumswächter. Krupic Mustafa Wintersemester 2013/14 KARL-FRANZENS-UNIVERSITÄT GRAZ Seminar aus Reiner Mathematik Die Museumswächter Krupic Mustafa Wintersemester 2013/14 Inhaltsverzeichnis 2 Inhaltsverzeichnis 1 Einleitung 3 2 Museumswächter-Satz 6 2.1

Mehr

Anforderungen an notwendige Treppen und Treppenräume

Anforderungen an notwendige Treppen und Treppenräume Anforderungen an notwendige Treppen und Treppenräume Ein eminent wichtiger Teil der Rettungswegführung in Gebäuden sind Treppen und Treppenräume, die in der Musterbauordnung (MBO) im fünften Abschnitt

Mehr

Graphalgorithmen 1. Tillmann Zipperer Tillmann Zipperer Graphalgorithmen / 40

Graphalgorithmen 1. Tillmann Zipperer Tillmann Zipperer Graphalgorithmen / 40 Graphalgorithmen 1 Tillmann Zipperer 03.06.2015 Tillmann Zipperer Graphalgorithmen 1 03.06.2015 1 / 40 1 Grundlagen Definition Graphtypen Implizite Graphdarstellung Tillmann Zipperer Graphalgorithmen 1

Mehr

Vorbemerkungen zur Neuregelung der Rauchableitung

Vorbemerkungen zur Neuregelung der Rauchableitung FK Bauaufsicht der ARGEBAU MVStättV, MVkVO, MIndBauRL Stand Dezember 2012 Vorbemerkungen zur Neuregelung der Rauchableitung 1 Im Regelfall dienen bauordnungsrechtlich geforderte Maßnahmen zur Rauchableitung

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Graphen und Bäume Prof. Dr. Nikolaus Wulff Weitere Datentypen Als wichtige abstrakte Datentypen (ADT) kennen wir bis lang die Liste, den Stapel und die Warteschlange. Diese

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

UML (Unified Modelling Language) von Christian Bartl

UML (Unified Modelling Language) von Christian Bartl UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...

Mehr

Sonnenschutz in Rettungswegen

Sonnenschutz in Rettungswegen Sonnenschutz in Rettungswegen Stand August 2015 Sonnenschutz in Rettungswegen Stand 08/2015 Seite 3 1. Einleitung Grundsätzlich existieren keine eindeutigen Vorgaben für die Anbringung von Sonnenschutz

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Graphen 9/1 Begriffsdefinitionen Ein Graph besteht aus Knoten und Kanten. Ein Knoten(Ecke) ist ein benanntes Objekt. Eine Kante verbindet zwei Knoten. Kanten haben ein Gewicht

Mehr

Kapitel 4: Netzplantechnik Gliederung der Vorlesung

Kapitel 4: Netzplantechnik Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Netzplantechnik 5. Minimal spannende Bäume 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

Glossar. zum Projekt. Dynamische Geometrie-Software. Version 1 vom Gruppe geo09, Projektleiter: Andy Stock

Glossar. zum Projekt. Dynamische Geometrie-Software. Version 1 vom Gruppe geo09, Projektleiter: Andy Stock Glossar zum Projekt Dynamische Geometrie-Software Version 1 vom 03.05.03 Erstellt von: R. Hrushchak, P. Kongsto, A. Stock Seite 1 von 5 Animation: Folge von Schritten zur Erstellung und Veränderung einer

Mehr

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Dynamische Programmierung. Problemlösungsstrategie der Informatik als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung

Mehr

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7 1 Kürzeste Pfade Woche 6 7 Hier arbeiten wir mit gewichteten Graphen, d.h. Graphen, deren Kanten mit einer Zahl gewichtet werden. Wir bezeichnen die Gewichtsfunktion mit l : E R. Wir wollen einen kürzesten

Mehr

Feuerwehr-, Flucht- und Rettungspläne

Feuerwehr-, Flucht- und Rettungspläne Feuerwehr-, Flucht- und Rettungspläne Bearbeitet von WEKA MEDIA 1. Auflage 2011. Buch. ISBN 978 3 8111 9560 8 Format (B x L): 14,8 x 21 cm Gewicht: 1010 g Wirtschaft > Spezielle Betriebswirtschaft > Arbeitsplatz,

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen

Mehr

Grundbegriffe der Informatik Tutorium 8

Grundbegriffe der Informatik Tutorium 8 Grundbegriffe der Informatik Tutorium 8 Tutorium Nr. 16 Philipp Oppermann 22. Dezember 2014 KARLSRUHER INSTITUT FÜR TECHNOLOGIE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

Isomorphie von Bäumen

Isomorphie von Bäumen Isomorphie von Bäumen Alexandra Weinberger 23. Dezember 2011 Inhaltsverzeichnis 1 Einige Grundlagen und Definitionen 2 1.1 Bäume................................. 3 1.2 Isomorphie..............................

Mehr

Landratsamt Kelheim Brandschutzvorschriften der BayBO 2008

Landratsamt Kelheim Brandschutzvorschriften der BayBO 2008 Brandschutzvorschriften der BayBO 2008 Grundlagen Begriffe Anforderungen an Bauteile/Baustoffe Rettungswege Bayerische Bauordnung 2008 Verfahrensrecht Materielles Recht verfahrensfreie Bauvorhaben vereinfachtes

Mehr

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 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/ws1314

Mehr

Fachgebiet Brandschutz Wintersemester 2016/2017

Fachgebiet Brandschutz Wintersemester 2016/2017 Fachgebiet Brandschutz Wintersemester 2016/2017 Bauliche Anlagen besonderer Art oder Nutzung - Grundlagen und Sonderbaueinstufung Prof. Dr.-Ing. Architekt Gerd Geburtig SV und Prüfingenieur für Brandschutz

Mehr

Forderungen der Bauordnungen an Fenster als Rettungswege / Notausstiegsöffnungen

Forderungen der Bauordnungen an Fenster als Rettungswege / Notausstiegsöffnungen Forderungen der en an als Rettungswege / Notausstiegsöffnungen Musterbauordnung September 2012 Definitionen: Aufenthaltsräume Aufenthaltsräume sind Räume, die zum nicht nur vorübergehenden Aufenthalt von

Mehr

Installationsgruppen

Installationsgruppen Installationsgruppen 1. Leitfaden-Inhaltsverzeichnis 1. Leitfaden-Inhaltsverzeichnis 1 2. Ein Vorwort 3 3. Erstellen von Installationsgruppen 4 3.1. Eigenschaften von CAD-Objekten 4 3.2. Bearbeitungsarten

Mehr

Beitrag Dokumentinformation Name: Markus Kraft Thema: Inhalte der Kapitel 1, 2, 3 und 4 Unternehmen: Hagen-Ingenieure, Kleve

Beitrag Dokumentinformation Name: Markus Kraft Thema: Inhalte der Kapitel 1, 2, 3 und 4 Unternehmen: Hagen-Ingenieure, Kleve Beitrag senden an: Betreffzeile: beitrag@rimea.de Beitrag Absender Dokumentinformation Name: Markus Kraft Thema: Inhalte der Kapitel 1, 2, 3 und 4 Unternehmen: Hagen-Ingenieure, Kleve Bezug: Richtlinie

Mehr

Zeichnen von Graphen

Zeichnen von Graphen von Graphen Fabio Valdés Programmierpraktikum WS 2016/17 Lehrgebiet Datenbanksysteme für neue Anwendungen FernUniversität in Hagen Programmierpraktikum Zeichnen von Graphen 08.10.2016 1 / 28 Gliederung

Mehr

8. Übung Algorithmen I

8. Übung Algorithmen I INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik Grundlagen

Mehr

Aufenthaltsräume sind Räume, die zum nicht nur vorübergehenden Aufenthalt von Menschen bestimmt oder geeignet sind.

Aufenthaltsräume sind Räume, die zum nicht nur vorübergehenden Aufenthalt von Menschen bestimmt oder geeignet sind. Kommentar zur Musterbauordnung von Prof. Messer und Thorsten Häßler Definitionen: Nutzungseinheiten Unter einer Nutzungseinheit versteht man ein oder mehrere Aufenthaltsräume, die von einem Nutzer so genutzt

Mehr

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Datenstrukturen und Algorithmen 2. Klausur SS 2001 UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................

Mehr

16. November 2011 Zentralitätsmaße. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 87

16. November 2011 Zentralitätsmaße. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 87 16. November 2011 Zentralitätsmaße H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 87 Darstellung in spektraler Form Zentralität genügt Ax = κ 1 x (Herleitung s. Tafel), daher ist x der Eigenvektor

Mehr