004 Datenverarbeitung; Informatik
Refine
Year of publication
Document Type
- Diploma Thesis (48) (remove)
Has Fulltext
- yes (48)
Is part of the Bibliography
- no (48)
Keywords
- Algebraische Gleichung (1)
- BMRT (1)
- BRDF (1)
- BTF (1)
- Beleuchtungsmodell (1)
- Computerlinguistik (1)
- Contextual Equivalence (1)
- Echtzeitprogrammierung (1)
- GPI (1)
- Gleichheitsanalyse (1)
Institute
- Informatik (46)
- Geowissenschaften (1)
- Informatik und Mathematik (1)
Klassische Bildmanipulation spielt sich meist im Zweidimensionalen, also in der reinen Bild-ebene ab. So werden beispielsweise Objekte aus Fotos entfernt, indem die dahinterliegende Struktur nachgezeichnet wird, oder es werden mehrere Teilbilder zu einem neuen, verfälschten Motiv zusammengesetzt. Bei der sogenannten Bildretuschierung werden unschöne Bereiche übermalt, um einen besseren Gesamteindruck zu erreichen. All diese Manipulationen haben im Grunde das gleiche Ziel: Das Erstellen einer möglichst realistischen Verfälschung der darge-stellten Szene indem die eigentlich dreidimensionalen Elemente in 2D imitiert werden.
Ziel dieser Arbeit ist es, von der reinen Zweidimensionalität eines Bildes Abstand zu nehmen und ein neues Verfahren zu entwickeln, Manipulationen im wirklichen 3D-Inhalt des Fotogra-fierten vorzunehmen. Dazu wird die klassische Bildmanipulation mit aktuellen Verfahren aus dem Bereich Multi View Stereo verknüpft. In einem ersten Schritt wird aus einer Fotoserie ein 3D-Modell mit passenden Texturen erstellt, welches anschließend nach Belieben manipuliert werden kann. Diese Veränderungen werden schließlich wieder in die Originalbilder übertragen, wodurch eine 3D-unterstützte Bildmanipulation realisiert wird.
Die praktische Umsetzung des vorgestellten Verfahrens basiert teilweise auf bereits vorhan-dener Software, die mit dem Ziel der Bildmanipulation neu kombiniert und durch eigene Um-setzungen ergänzt wird. So entsteht eine funktionierende Implementierung, die den kompletten Weg vom Original bis hin zum manipulierten Bild abdeckt.
Wir betrachten das auf der Crypto '97 vorgeschlagene gitterbasierte Kryp- tosystem von Goldreich, Goldwasser und Halevi (GGH) [11]. Die Autoren veröffentlichten Challenges zu den Sicherheitsparametern 200, 250, 300, 350 und 400 [12]. Jeder Challenge besteht aus dem öffentlichen Schlüssel, sowie einem Ciphertext. Für den Angriff entwickeln wir numerisch stabile Gitterreduktionsalgorithmen, die es ermöglichen, das System in diesen Dimensionen anzugreifen. Es werden Methoden zur Orthogonalisierung, die sogenannten House- holder-Reflexionen und Givens-Rotationen behandelt, und eine praktikable Gleitpunkt-Arithmetik Version des LLL-Algorithmus nach Lenstra, Lenstra und Lov'asz [16] angegeben. Wir entwickeln und analysieren den LLL-Block- Algorithmus, der die Gitterreduktion in Blöcken organisiert. Die Gleitpunkt-Arithmetik Version des LLL-Block-Algorithmus wird experimentell auf das GGH-Schema angewendet und mit der LLL-Reduktion in den Dimensio- nen 100 bis 400 verglichen. Neben der besseren numerischen Stabilität ist die LLL-Block-Reduktion um den Faktor 10 bis 18 mal schneller als die gewöhnliche LLL-Reduktion. Das GGH-Kryptosystem wurde ebenfalls von Nguyen [22] angegriffen, und die ursprünglichen Nachrichten wurden bis in Dimension 350 rekonstruiert. Wir stellen weitere Angriffe auf das Kryptosystem vor. Es zeigt sich, dass die öffentlichen Parameter für erfolgreiche Angriffe benutzt werden können. Der private Schlüssel in der Dimension 200 wird nach ca. 10 Stunden rekonstruiert und Ciphertext-Attaken sind bis in Dimension 300 erfolgreich.
Wir betrachten in dieser Diplomarbeit die Sicherheit des ringbasierten Public Key Kryptosystems NTRU, das 1996 von J. Hoffstein, J. Pipher und J.H. Silverman vorgeschlagen wurde. Dieses Kryptosystem bietet schnelle Kodierung und Dekodierung in Laufzeit O(n exp 2) bei kleinem Sicherheitsparameter n. Die Sicherheit des Systems beruht auf einem Polynomfaktorisierungsproblem (PFP)im Polynomring Zq[X]/(X exp n -1). Das PFP wurde von Coppersmith und Shamir auf ein Kürzestes Vektor Problem im Gitter Lcs reduziert. Die neuen Ergebnisse dieser Arbeit bauen auf dem Gitter Lcs auf. Wir betrachten die Nachteile von Lcs und konstruieren verbesserte Gitterbasen zum Angriff auf das NTRU-Kryptosystem. Dabei nutzen wir Strukturen des Polynomrings Zq[X]/(X exp n -1) und der geheimen Schlüssel aus. Durch die neuen Gitterbasen wird der Quotient aus der Länge des zweitkürzesten und der Länge des kürzesten Gittervektors vergrößert. Da wir Approximationsalgorithmen zum Finden eines kürzesten Vektors verwenden, beschleunigt dies die Attacken. Wir präsentieren verschiedene Methoden, wie man die Dimension der Gitterbasen verkleinern kann. Durch die verbesserten Gitterattacken erhalten wir eine Cryptanalyse des NTRU-Systems in der vorgeschlagenen mittleren Sicherheitsstufe. Beträgt die Zeit zum Brechen eines Public-Keys unter Verwendung der Coppersmith/Shamir-Basis 1 Monat, so verringert sich die Laufzeit durch einen kombinierten Einsatz der neuen Gitterbasen auf ca. 5 Stunden auf einem Rechner und bei Parallelisierung auf ca. 1:20 Stunde auf 4 Rechnern. Wir erwarten, daß die neuen Methoden NTRU in hoher Sicherheitsstufe n = 167 brechen, obwohl für dieses n bisher nur "schwache" Schlüssel gebrochen wurden. Trotz signifikanter Verbesserungen deuten die experimentellen Ergebnisse auf ein exponentielles Laufzeitverhalten bei steigendem Sicherheitsparameter n hin. Der Laufzeitexponent kann allerdings gesenkt werden, so daß man n größer wählen muß, um Sicherheit gegenüber den neuen Attacken zu erzielen. Auch wenn das NTRU-Kryptosystem nicht vollständig gebrochen wird, verliert es seinen größten Vorteil gegenüber anderen Public Key Kryptosystemen: Die effiziente Kodierung und Dekodierung bei kleinem Sicherheitsparameter n.
Lernplattformen sind E-Learning-Systeme, deren Kernfunktionalität die Verwaltung und Verteilung von Lernmaterialien über das World Wide Web ist. In dieser Arbeit wurde untersucht, wie durch Aufzeichnung (Tracking), Auswertung und Visualisierung von Lernaktivitäten in Lernplattformen eine Verbesserung der Lernqualität erreicht werden kann. Der Ansatzpunkt dafür war, Informationen zu Lernaktivitäten in geeigneter Weise Lehrenden und Lernenden zu präsentieren, so dass diese Rückschlüsse ziehen können, um Lernprozesse eigenständig zu optimieren. Viele Lernplattformen verfolgen bereits diesen Ansatz und verfügen deshalb über entsprechende Funktionalität.
Es mussten zwei wesentliche Fragen beantwortet werden:
1. Was müssen Lernende und Lehrende über erfolgte Lernaktivitäten wissen?
2. Wie werden Lernaktivitäten in geeigneter Weise präsentiert?
Diese Fragen wurden durch Betrachtung existierender Lernplattformen (State of the Art) sowie Befragung von Experten in Form von Interviews beantwortet. Zur Beantwortung der 2. Frage wurden außerdem allgemeine Grundlagen der Auswertung und Visualisierung von Daten verwendet sowie (zu einem geringen Teil) Auswertungs- und Visualisierungsverfahren von Systemen, die keine Lernplattformen sind. Besondere Aufmerksamkeit wurde auch dem
Datenschutz gewidmet.
Beruhend auf den gewonnenen Erkenntnissen wurde dann ein Konzept für ein Auswertungs-/Visualisierungssystem entwickelt das in verschiedenen Punkten eine Verbesserung des State of the Art darstellt.
Teile des Konzepts wurden schließlich für das webbasierte Softwaresystem LernBar, das über einen Großteil der Funktionalität einer Lernplattform verfügt, prototypisch implementiert. Durch die Implementierung soll es ermöglicht werden, das Konzept im praktischen Einsatz zu evaluieren, was im Rahmen dieser Arbeit nicht möglich war.
Das Bumpmapping-Verfahren, eine Methode zur realistischen Darstellung rauer Oberflächen, existiert schon seit 30 Jahren, aber erst durch aktuelle Entwicklungen der Hardware lässt es sich in Echtzeitumgebungen einsetzen. Die aktuellen Verfahren ermöglichen viele darüber hinausgehende Effekte, jedoch haben sie auch mit Problemen zu kämpfen. Das Ziel dieser Diplomarbeit ist die Weiterentwicklung der Verfahren zu betrachten. In dieser Arbeit werden die Grenzen der aktuellen Bumpmapping-Algorithmen aufgezeigt und nach neuen Wegen geforscht. Das erste Verfahren erzeugt durch ein Multipassrendern fraktale Landschaften im Shader. Die darin verwendeten Methoden lassen sich für einen weiteren Algorithmus nutzen, mit dem feine Unebenheiten der Oberfläche an jedem Pixel ausgewertet werden. So können anisotrope Materialien wie gebürstete Metalle oder Mikropartikellacke simuliert werden. Den Abschluss bilden zwei neue Verfahren für prozedurale Shader. Die zu imitierende Oberfläche wird im Modell nachgebildet und per Raytracing für jeden Oberflächenpixel ausgewertet. Durch diese Methode werden viele Probleme texturbasierter Verfahren komplett umgangen.
In dieser Diplomarbeit wird ein Echtzeit-Verfahren vorgestellt, um einen wassergefüllten Ballon zu simulieren. Grundlage des Verfahrens ist ein Feder-Masse-Dämpfer–System, das zusammen mit Methoden zur Erhaltung des Innenvolumens sowie einer topologieerhaltenden Datenstruktur kombiniert wurde. Die Masse des Wassers wird dabei auf Massepartikel an der Oberfläche des Gummiballons aufgeteilt, an denen die Wirkung der physikalischen Kräfte Gravitation, Innendruck und elastische Zugkraft der Oberfläche ausgewertet wird. Dies erfolgt durch iterative Anwendung eines Simulationsschrittes, bei dem die auf die Massepartikel wirkenden Beschleunigungen ermittelt und in eine Bewegung übertragen wird. Bei der Umsetzung in C++ wurde das Verfahren mit Hilfe des Echtzeit-3D-Szenengraphen OGRE (Object-oriented Graphics Rendering Engine) implementiert.
Mögliche Einsatzgebiete sind interaktive Simulationsumgebungen oder andere Echtzeit-Anwendungen in den Bereichen Multimedia und Unterhaltung sowie Nicht-Echtzeit-Verfahren zur Bildgenerierung und physikalischen Simulation.
Eine 1-1-Korrespondenz zwischen einer Klasse von Leftist-Bäumen und erweiterten t-nären Bäumen
(2006)
Leftist-Bäume sind eine Teilmenge der geordneten Bäume mit der Eigenschaft, daß der [kürzeste] Weg von jedem inneren Knoten zu einem Blatt des Teilbaums mit diesem Knoten als Wurzel immer über den am weitesten links stehenden Sohn dieses Knotens verläuft.
In der vorliegenden Arbeit wird eine 1-1-Korrespondenz zwischen erweiterten t-nären Bäumen und der Klasse der Leftist-Bäumen mit erlaubten Knotengraden 0, t, 2t-1, ... 1+t(t-1) präsentiert. Diese 1-1-Korrespondenz verallgemeinert ein Ergebnis von R. Kemp.
ALPHA ist die Architektur einer lokationssensitiven Puppe für hydropneumatische Animation. Es ist ein Animations-Eingabegerät. Die Puppe soll ein Objekt repräsentieren, welches animiert werden soll. Ihre Gliedmaßen, welche aus Knochen und Gelenken bestehen, sind beweglich. Sie wird an einen Computer angeschlossen und die gegenwärtige Stellung ihrer Gelenke kann mittels eines ebenfalls entwickelten Treibers von diesem Computer eingelesen werden. Des Weiteren wird erklärt was eine hydropneumatische Animation ist. Die Diplomarbeit weist die folgende Gliederung auf: • Motivation • Technische Grundlagen und State-Of-The-Art-Analyse • Anforderungsanalyse • Das eigene Konzept, die lokationssensitive Puppe (ALPHA) • Evaluation • Ausblick Die Motivation beschäftigt sich mit der Entwicklung der Filmanimation und einiger Errungenschaften in der Laufbahn der Animationstechnologischen Entwicklung. Die technischen Grundlagen beschränken sich auf die Funktionsweise von Messapparaturen, welche als Gelenkstellungssensoren fungieren können. Im Einzelnen sind das der optische Resolver, der Optoencoder und die Kombination von einem Drehpotentiometer und einem Analog/Digital-Wandler. Zur State-Of-The-Art-Analyse gehört die Erläuterung bereits entwickelter Stellungs- und Bewegungsmessender Technologien, wie das Stop-Motion-Verfahren, das Motion-Capturing, das Dinosaur-Input-Device und der Datenhandschuh. Eine Zusammenstellung der Defizite dieser Verfahren schließt dieses Kapitel ab. Die Analyse der Anforderungen an ein zu entwickelndes System ist im Kapitel Anforderungsanalyse zu finden. Zum eigenen Konzept gehört die gesamte Entwicklung einer lokationssensitiven Puppe. Die Puppe ist das Ebenbild des Skeletts eines zu animierendes Objekts. Sie besteht aus mehreren Gliedmaßen, welche an ihren Gelenken beweglich sind. Die Gelenkstellung wird von Potentiometern gemessen, dessen Signal ein A/D-Wandler empfängt. Die Umschaltung der einzelnen Messwerte erfolgt über Analog-Multiplexer. Die gesamte Steuerung der Bauteile und das Auslesen des A/D-Wandler werden durch einen Treiber über den Parallelport eines PCs gesteuert. Die Funktionsweise des Treibers und seine Implementierung werden ebenfalls in diesem Kapitel erläutert. Im Kapitel Evaluation befindet sich eine Bewertung des Konzepts und der Erfüllung der Anforderungsanalyse. Schließlich zeigt der Ausblick die Möglichkeiten der Anwendungen der Puppe und einen Blick in zukünftige Technologien.
In dieser Arbeit wurde ausgehend von aktuellen Matchmaking Systemen ein 3D Lobbysystem geschaffen. Dabei wurde speziell auf ein intuitives Matchmaking und eine einfache Bedienung wertgelegt, um dieses nicht nur für Core Gamer, sondern auch für Casual Gamer interessant zu machen. Zudem versteht sich dieses Lobbysystem nicht als endgültig, sondern mehr als ein flexibles leicht anpassbares System. Daher ist sie besonders einfach für zukünftige Spiele anpassbar: Sämtliche Szenen, Avatare, Animationen, Einstellungen und GUI Dialoge lassen sich ohne Änderung des Quelltextes nur über Scripte, XML Tabellen und Datenbanken sehr leicht modifizieren. Um ein so komplexes Projekt in kurzer Zeit umzusetzen, war es nicht möglich ohne vorhandene Bibliotheken auszukommen. Aus diesem Grund wurden neben Nebula 2 als 3D Engine, das Mangalore Game Framework, sowie für die Netzwerktechnik die Rakknet Multiplayer Network Engine bei der Implementation des Lobbysystems verwendet. Wie die Tests zeigen befindet sich das entwickelte System in einem einsatzfähigen Zustand. So können sich gleichzeitig in der Lobby bis zu 200 Spieler aufhalten und das Matchmaking durchführen, ohne mit Lags oder Timeouts vom Server rechnen zu müssen. Lediglich die Framerate der einzelnen Clients kann bei sehr vielen eingeloggten Nutzern unter 20 FPS fallen. Je nach der erwarteten Anzahl von Spielern sollte hier ggf. auf Avatare mit weniger Polygonen zurückgegriffen werden.
Moderne Softwaresysteme gewinnen zunehmend an Komplexität und bestehen inzwischen aus einer für Menschen nicht mehr überschaubaren Menge an Quellcode-Zeilen. Die Problematik könnte damit zusammenhängen, dass Programmiersprachen als Sprachen linear orientiert sind. Es stellt sich die Frage, ob graphische Darstellungen besser geeignet wären. Durch das Hinzufügen einer zweiten Dimension könnten Vererbungshierarchien und vernetzte Zusammenhänge – wie beispielsweise Funktionsaufrufe – besser visualisiert und durch das Ausblenden von Implementierungsdetails auf einen Blick erfasst werden. In dieser Arbeit werden Möglichkeiten der Visualisierung untersucht, bei denen der Sourcecode graphisch dargestellt wird und bei denen eine Änderung in der graphischen Darstellung in einem veränderten Sourcecode resultiert. Die Kernfrage, die in dieser Arbeit untersucht werden soll, ist, ob graphisch orientierte Tools die Programmierung wesentlich beschleunigen können. Dabei wird hauptsächlich auf die Visualisierung der vernetzten Strukturen von Klassen und Methoden Wert gelegt sowie auf die automatische Generierung. Ohne eine Automatisierung muss zu viel Zeit investiert werden, um die Darstellung zu erzeugen und mit geänderten Code konsistent zu halten. Dabei werden bisherige Konzepte wie die graphische Modellierungssprache UML beschrieben und die Umsetzung in unterschiedlichen Programmen untersucht. Die Abbildung von UML-Diagrammen in Sourcecode und von Sourcecode in UMLDiagramme bereitet jedoch einige Probleme, da viele Konzepte von UML zu stark abstrahieren und eine Abbildung nicht eindeutig und teilweise nicht möglich ist. Aus diesem Grund wird aufbauend auf den vorhandenen Möglichkeiten ein neues Konzept entwickelt, das prototypisch implementiert wird. Dabei werden viele Elemente von UML genutzt und auf die gestellten Anforderungen angepasst, sodass eine automatische graphische Darstellung parallel zur Programmierung in Textform möglich ist.
Manipulierte Bilder werden zu einem immer gröÿeren Problem in der aktuellen Berichterstattung und sie verursachen in vielen Fällen Empörung unter den Lesern.
In dieser Diplomarbeit werden verschiedene Ansätze aus der aktuellen Forschung aufgezeigt, die zur Erkennung von manipulierten digitalen Bildern benutzt werden können. Hierbei liegt der Schwerpunkt besonders auf verschiedenen statistischen Ansätzen von Farid, Johnson und Popescu. Ein Abriss über die wichtigsten inhaltsbasierten Algorithmen wird ebenfalls gegeben.
Weiterhin wird für die Algorithmen, die im Hinblick auf technische Realisierbarkeit, Laufzeit und ein breites Spektrum von möglichen Szenarien vielversprechend wirken, eine Automatisierung entwickelt, die die Analyse ohne weitere Benutzereingaben durchführt. Das Augenmerk liegt hier besonders darauf, dass die zu analysierenden Bilder möglichst wenige Vorraussetzungen erfüllen müssen, damit es eine Möglichkeit der korrekten Erkennung gibt.
Diese Automatisierungen werden implementiert, wenn möglich verbessert und auf einer Menge von Bildern getestet. Enthalten sind sowohl zufallsgenerierte Bilder, als auch aus geometrischen Formen synthetisierte und natürliche Bilder. Die Erkennung der auf die Bilder angewandten Fälschungstechniken beschäftigt sich vor allem mit Duplikationen, Einfügen und Interpolation von Bereichen.
Der Test dieser Implementierung konzentriert sich auf die absolute Effektivität und Effiienz gegen die gegebene Testmenge, betrachtet jedoch auch die spezifischen Vor- und Nachteile der ursprünglichen Algorithmen und der entwickelten Verbesserung. Ihre Ergebnisse, die sie auf den Testbildern erbringen, legen die Grundlage für eine Beurteilung der Algorithmen bezüglich Laufzeit und Effiienz.
Aufbauend auf diesen Analysen wird eine Bewertung der Algotihmen vorgenommen, die auch einen Ausblick auf mögliche Szenarien in der digitalen Bildbearbeitung und der Erkennung von Fälschungen für die nächsten Jahre geben soll.
Im Rahmen dieser Diplomarbeit wurde ein Konzept zur Extraktion von semantischen Informationen aus Wiki-Systemen entwickelt. Ausgangspunkt ist die Tatsache, dass in einem Wiki-System eine Reihe von Informationen in strukturierten, semi-strukturierten oder unstrukturierten Texten vorliegen, deren Semantik nicht immer auf den ersten Blick ersichtlich ist. Daher umfasste die Analyse zum einen, welche Informationen explizit und welche implizit vorhanden sind und zum anderen, welche Beziehungen sich aus den gefundenen Informationen ableiten lassen. Dabei handelt es sich beispielsweise um Beziehungen zwischen verschiedenen Seiten oder um Beziehungen zwischen Wörtern. Hierfür wurde eine Schablone definiert, die jede Information, die extrahiert werden kann, im Detail beschreibt. Dies beinhaltet sowohl die Semantik und die Datenquelle, aus der die Informationen extrahiert werden können, als auch eine Anleitung zur Extraktion und die abschließende Darstellung als XML-Element. Da aber nicht jede Information und deren Semantik sicher ist, wird zwischen sicheren und unsicheren Informationen unterschieden. Die Analyse hat allerdings ergeben, dass es eine Reihe an Informationen gibt, denen nicht automatisch eine Semantik zugewiesen werden kann. Außerdem wurden die Gemeinsamkeiten und Unterschiede der verschiedenen Wiki-Systeme analysiert, die für die Entwicklung des Konzeptes notwendig waren. Im Konzept ist die Gesamtarchitektur zur Extraktion von semantischen Informationen enthalten. Zwei Hauptsystemkomponenten waren hierfür notwendig: Wrapper und Mediator. Aufgrund der Unterschiede der Wiki-Systeme, wie beispielsweise die verwendete Programmiersprache, Datenbank oder Datei und Wiki-Syntax, wurde eine Wrapper eingesetzt. Der Mediator dient hingegen als Vermittler zwischen der jeweiligen Anwendung und dem Wiki-System. Durch die prototypische Implementation des Konzeptes ist die Durchführbarkeit bewiesen, bestimmte semantische Informationen zu extrahieren und diese in eine für die Weiterverarbeitung geeignete Form zu bringen. Das heißt, bestimmte Informationen können automatisch oder halb-automatisch in eine semantische Beziehung zueinander gesetzt werden.
Diese Diplomarbeit hatte das Ziel ein Konzept zu erstellen, welches es ermöglicht, interessante und weniger interessante Artikel innerhalb eines Wikis zu erkennen und diese Informationen in verständlicher Form zur Recherche visuell bereitzustellen.
Dabei sollte das Konzept möglichst offen sein, so dass theoretisch jedes Wiki an die Visualisierung hätte angebunden werden können. Hier lag bereits das erste Problem, zum Zeitpunkt der Arbeit existieren bereits mehr als 100 unterschiedliche Wikis mit unterschiedlichen Architekturen. Wegen der Unterschiede der jeweiligen Wikisysteme entschloss man sich daher zwei Konzepte zu erarbeiten, ein allgemeines, welches wie in der gestellten Zielsetzung, das Einbinden jedes Wikis ermöglicht und ein Spezialfall, der die Vorteile einer API nutzt. Der Spezialfall wurde in ähnlicher Form in einer Implementierung umgesetzt.
Zu Beginn der Diplomarbeit mussten die unterschiedlichen Möglichkeiten der Extraktion von Informationen aus einem Wiki untersucht werden. Es hatte sich ziemlich früh herausgestellt das Links, Backlinks sowie Kategorien wichtige Indikatoren zur Bewertung eines Artikels darstellen. Damit die Bewertung der Informationen nicht nur alleine auf der Struktur eines Wikis beruht, wurde ein Thesaurus zur unterstützenden Bewertung miteinbezogen. Dieser lieferte durchgehend gute Ergebnisse, wobei - wie erwartet - der Thesaurus sehr schnell an seine Grenzen gekommen war, insbesondere wenn man die Anzahl der Artikel eines großen Wikis mit der Anzahl der Wörter die im Thesaurus gespeichert sind vergleicht.
Die extrahierten und gewichteten Informationen wurden im zweiten Schritt visualisiert, dabei hatte sich der Radial-Graph als eine gute Lösung zur Darstellung der Informationen herausgestellt. Neben einem Graphen mit gewichteten Knoten wurden in der Visualisierung unterschiedliche Ansichten der extrahierten Daten bereitgestellt: eine Autorenansicht, die zum gesuchten Artikel die Autoren darstellt, eine semantische Ansicht, die Wortbeziehungen veranschaulicht sowie eine Artikelansicht, die den Nutzer neben den gewichteten Artikeln auch wie gewohnt in einer Wiki lesen lässt.
A und B möchten digitale Unterschriften auf faire Weise austauschen, d.h. A soll genau dann eine Unterschrift von B erhalten, wenn B eine Unterschrift von A erhält. Der triviale Ansatz zum Austausch zweier Unterschriften, daß A seine Unterschrift an B sendet und dann B seine Unterschrift an A schickt, ist nicht fair, da B nach Erhalt der Unterschrift von A das Protokoll vorzeitig beenden oder eine ungültige Unterschrift senden kann. Bei den bekannten praktikablen Protokollen zum fairen Austausch unterteilen die Teilnehmer die Unterschriften in kleine Blöcke aus wenigen Bits und tauschen die Blöcke dann schrittweise aus. Diese Protokolle garantieren einerseits, daß man sofort überprüfen kann, ob ein erhaltener Block korrekt ist. Andererseits geben die bereits ausgetauschten Blöcke so wenig wie möglich über den restlichen Teil der Unterschrift preis. Versucht in diesem Fall ein Teilnehmer zu betrügen, indem er beispielsweise einen falschen Wert sendet, so kann der andere Teilnehmer dies unmittelbar bemerken und stoppen. Da die noch nicht ausgetauschten Blöcke fast nichts über den übrigen Teil der Unterschrift preisgeben, hat der Betrüger höchstens einen Block mehr als der ehrliche Teilnehmer erhalten. Ist die Blockgröße hinreichend klein, kann der ehrliche Teilnehmer den Nachteil durch Raten bzw. Probieren ausgleichen. In dieser Diplomarbeit entwickeln wir Protokolle zum fairen Austausch sogenannter Diskreter- Logarithmus-Unterschriften. Die bekannten praktikablen Protokolle zum Austausch dieses Unterschriftentyps verwenden als Sicherheitsvoraussetzung die Faktorisierungsannahme. Im Unterschied dazu beruht die Sicherheit unseres Austauschprotokolls auf der Diskreten- Logarithmus-Annahme und damit auf der des Unterschriftenverfahrens. Ferner erlauben unsere Protokoll die Herausgabe der Blöcke in beliebiger, auch vom Protokollverlauf abhängiger Reihenfolge, während die Reihenfolge bei den bisherigen Protokollen von vornherein festgelegt ist.
Fraktale Planetengenerierung
(2006)
Wie die Diplomarbeit gezeigt hat, lassen sich zwar ganze Planeten ohne größere Verzerrungen mit Hilfe fraktaler Methoden modellieren. Allerdings stößt die Darstellungsqualität an ihre Grenzen, da sich gängige Level-of-Detail-Algorithmen, wie ROAM bzw. Röttger, nicht einfach an die durch das Surface-Refinement gegebenen Bedingungen anpassen. Insbesondere die Triangulierung durch gleichseitige Dreiecke hat sich als problematisch erwiesen. Ohne diese LOD-Techniken kann aber nur eine relativ geringe Auflösung berechnet werden. Der vorgestellte Level-of-Detail-Algorithmus stellt zwar keinen Ersatz für die obengenannten Verfahren dar. Er bietet aber eine sehr gute Grundlage, denn er schränkt einfach und dadurch sehr schnell den Bereich ein, in dem sich der Betrachter bzw. die virtuelle Kamera befindet. Dies ist vorallem auch deshalb wichtig, weil die bisher entwickelten LOD-Algorithmen nur mit vergleichsweise kleinen Flächen wirklich effizient funktionieren. Eine Kombination aus dem in der Diplomarbeit entwickelten Verfahren und einem ROAM/Röttger-ähnlichen Algorithmus würde deren jeweiligen Schwächen beheben. Die eigentliche Modellierung der Landschaft bzw. der Gebirgszüge lässt sich dagegen problemlos auch auf sphärische Körper übertragen, zumindest wenn man dafür den Plasma-Algorithmus verwendet.
Die Gotik ist eine Kunstepoche des Mittelalters, die eine große Anzahl beeindruckender Bauten hervorgebracht hat. Hierbei sind besonders die monumentalen Sakralbauten dieser Zeit mit ihren eindrucksvollen Fenstern hervorzuheben. Rosetten gehören zu den größten Fenstern in gotischen Kathedralen. Sie sind kreisförmige Fenster, die vor allem durch ihre komplexe Aufbauweise auffallen. Das Grundbauelement der Rosetten ist das sog. Maßwerk - ein Steinwerk das als dekoratives Muster für Fenster und Wände in gotischen Bauten eingesetzt wird. Charakteristisch für diese Muster sind sich wiederholende, verschieden große geometrische Formen, was an die Eigenschaft der Selbstähnlichkeit bei Fraktalen erinnert.
Die manuelle Modellierung gotischer Fenster ist auf Grund deren komplexen Aufbaus sehr aufwendig. Eine prozedurale Generierung hingegen automatisiert den Modellierungsprozess weitgehend und verringert damit den Zeit- und Modellierungsaufwand per Hand.
In der vorliegenden Arbeit wurde eine prozedurale Methode beschrieben, die die aufwendige manuelle Modellierung der Rosetten bzw. des Maßwerks zum größten Teil ersetzt. Diese Methode basiert auf der Analyse der fraktalen Struktur des Maßwerks und nutzt dabei dessen Selbstähnlichkeit aus, um Rosetten automatisch zu generieren. Mit der in dieser Arbeit entwickelten Implementierung ist es mögliche, eine große Vielfalt gotischer Rosetten zu beschreiben und mit Hilfe der 3D-Grafik-Engine OGRE graphisch darzustellen.
Diese Arbeit behandelt das Thema der Darstellung und der Simulation von Pflanzen mit Lindenmayer-Systemen. Zur Darstellung der aus Lindenmayer- Systemen entwickelten Strukturen wird das Programm Linde 3D entwickelt, welches dem Benutzer das Erstellen und die Simulation von Objekten unter Verwendung von deterministischen, geschachtelten, stochastischen, kontextsensitiven, umgebungssensitiven und offenen Lindenmayer-Systemen ermöglicht.
Neben der Entwicklung des Programms Linde 3D liegt ein weiterer Schwerpunkt dieser Arbeit auf der Simulation der biologischen Prozesse Vernalisation und Stratifikation. Für die Simulation dieser Prozesse werden Lindenmayer- Systeme entwickelt, welche die Grundfunktionalität der Prozesse simulieren und in Abhängigkeit dieser dreidimensionale Modelle der Pflanze erzeugen.
Das Programm Linde 3D ist so konzipiert, dass es allgemein eingesetzt werden kann. Neben dem Verständnis für die abstrakten Modelle der Lindenmayer-Systeme werden keine speziellen Kenntnisse des Anwenders vorausgesetzt. Die Eingabe der L-Systeme erfolgt entweder über die Auswahl vordefinierter Lindenmayer-Systeme und Umweltdaten oder durch Komposition von Lindenmayer-Systemen und Umweltdaten durch den Anwender. Die graphische Interpretation der Lindenmayer-Systeme erfolgt unter Verwendung des Schildkröten-Modells. Die Ausgabe des Programms Linde 3D besteht zum einen aus einer direkten Darstellung der generierten Szene im Programm und zum anderen aus der Ausgabe der Szene in Form einer oder mehrerer Dateien für den POVRay Raytracer. Die erzeugten Dateien können durch externe Programme aufbereitet und zu einer Animation zusammengefügt werden.
Die vorliegende Arbeit beginnt mit einer kurzen Einführung in das Thema der Fraktale und Lindenmayer-Systeme, sowie den nötigen Grundlagen für das Verständnis der biologischen Hintergründe. Im Anschluss werden dem Leser die notwendigen theoretischen Grundkenntnisse zu Lindenmayer-Systemen und ein Einblick in aktuelle Anwendungen und Entwicklungen vermittelt. Nach einer Beschreibung der Anforderungen, des Aufbaus und der Implementierung des Programms Linde 3D werden die erworbenen Grundkenntnisse im Bereich der Lindenmayer-Systeme und das Programm Linde 3D eingesetzt, um Schritt für Schritt Lindenmayer-Systeme für die Simulation der biologischen Prozesse Vernalisation und Stratifikation zu entwickeln. Nach der Konstruktion der L-Systeme werden die erworbenen theoretischen Grundlagen für den Bereich des Testens von Parser und Schildkröten-Modell auf Funktionalität benötigt. Im Ausblick werden Ideen für Anwendungen und Erweiterungen des Programms Linde 3D beschrieben.
Diese Diplomarbeit beschäftigt sich sowohl mit der Akquisition, der Verwaltung und der winkelabhängigen, spektralen Reflexionsfunktion BRDF (Bidirectional Reflectance Distribution Function) und BTFs (Bidirection Texture Functions) von einigen ausgewählten realistischen Materialoberflächen bei fester Beleuchtung, als auch der Generierung der BTFs aus vorhandenen BRDFs und BTFs und der Anwendung der Beschreibung von Oberflächen mittels BRDFs und BTFs bei Erzeugungen von 3D-Szenen. Im Rahmen dieser Diplomarbeit werden Konzepte für eine effektivere Nutzung von BTFs in der photorealistischen Bilderzeugung entwickelt und prototypisch umgesetzt. Der Fokus liegt dabei auf einer vereinfachten Synthese von BTFs aus vorhandenen BRDF- und BTF-Daten, sowie in einer effizienten Nutzbarmachung dieser Informationen für Rendering-Prozesse.
Gegenstand der Arbeit ist ein Gleichheitskalkül für den Kern einer nicht-strikten funktionalen Programmiersprache. Funktionale Programmiersprachen unterstützen bestens die Prinzipien Abstraktion, Einkapselung, Hierarchiesierung und Modularisierung, die gemeinhin als Grundelemente des Software-Engineering betrachtet werden. Darüber hinaus bieten funktionale Programmiersprachen aufgrund ihrer Entwicklung aus dem Lambda-Kalkül eine große Nähe zu mathematischen Modellen. Daher besitzen sie im Bereich der Programmverifikation ausgeprägte Vorteile gegenüber imperativen oder objekt-orientierten Programmiersprachen. In der Arbeit wird nun ein Gleichheitsbegriff für Ausdrücke in funktionalen Programmiersprachen entwickelt und dessen Praktikabilität durch die Implementierung eines Beweisers untermauert. Dieser Gleichheitsbegriff ist die kontextuelle Gleichheit, die Ausdrücke aufgrund ihres Terminierungsverhaltens als Unterprogramme in allen möglichen Kontexten einordnet. Kontextuelle Gleichheit wird in Kapitel 2 vorgestellt, nachdem der klassische und der sogenannte "lazy" Lambda-Kalkül eingeführt wurden. Kapitel 3 enthält einen Überblick über die funktionale Programmierung, da auch die Implementierung des o.g. Beweisers in einer funktionalen Programmiersprache, nämlich Haskell, durchgeführt wird. In Kapitel 4 wird die funktionale Kernsprache, die Gegenstand der Untersuchung sein wird, beschrieben. Sie enthält alle wesentlichen Elemente wie z.B. Funktionsdefinition und -anwendung sowie Datentypen. Im selben Kapitel wird auch der Gleichheitsbegriff für diese Kernsprache definiert. Kapitel 5 schließlich entwickelt auf Basis der zuvor erfolgten Definitionen einen Kalkül für den Gleichheitsbeweis. Außerdem wird in diesem Kapitel auch die Umsetzung dieses Gleichheitskalküls präsentiert. Aus der Dissertation von Marko Schütz werden hierbei Erkenntnisse über die Kontextanalyse verwendet, um erfüllende Belegungen von freien Variablen zu berechnen. Die Arbeit schließt mit Beispielanalysen und Meßwerten sowie einer Diskussion der Ergebnisse und möglicher Erweiterungen.
Wir haben ein Softwaresystem entwickelt, das in der Lage ist, Beschreibungen von Termersetzungssystemen höherer Ordnung, deren Reduktionsregeln auf einer strukturellen operationalen Semantik basieren, einzulesen und zu interpretieren. Das System ist dabei fähig, Reduktionskontexte für die Redexsuche zu benutzen, die entweder vom Benutzer definiert werden können oder automatisch anhand der strikten Positionen berechnet werden. Außerdem dürfen Kontexte und spezielle Definitionen für Term-Mengen, die wir Domains nennen, in den Reduktionsregeln verwendet werden. Mit dem resultierenden Reduktionssystem-Format können wir somit nicht nur den „lazy“ Lambda-Kalkül, den Call-by-Value Lambda-Kalkül und verwandte, um Konstruktoren und Fallunterscheidungen erweiterte Kalküle, wie die in Kapitel 4 vorgestellten Kernsprachen KFP und PCF, darstellen, sondern auch den (in Abschnitt 4.3 vorgestellten) Call-by-Need Lambda-Kalkül, welcher sich durch die Verwendung von Kontexten innerhalb der Regeln deutlich von den anderen Kalkülen abhebt. Allerdings hält sich der Call-by-Need Lambda-Kalkül damit nicht an das in Kapitel 5 vorgestellte GDSOS-Format, das u.a. sicherstellt, dass Bisimulation eine Kongruenz ist. Wir haben dabei in Abschnitt 5.3.3 bewiesen, dass sich ein GDSOS-Reduktionssystem in ein äquivalentes strukturiertes Auswertungssystem nach Howe übersetzen lässt. Unser System ist in der Lage, die GDSOS-Bedingungen zu prüfen und gibt eine Warnung aus, falls eine der nötigen Bedingungen nicht erfüllt ist (wobei aus dieser auch gleich der Grund des Verstoßes hervorgeht). Wie wir gesehen haben, ist unser System nicht nur befähigt, die einzelnen Reduktionsschritte für kleinere Bespiele ordnungsgemäß auszuführen, sondern es ist durchaus in der Lage, auch aufwendigere KFP-Ausdrücke, wie in unserem Quicksort- Beispiel, auszuwerten.
Ziel dieser Arbeit war es, ein System zu entwickeln, mit dem Sätze von Reduktionsdiagrammen auf ihre Vollständigkeit überprüft werden können. Das System sollte in der puren, funktionalen Programmiersprache Haskell realisiert werden und speziell auf einen nichtdeterministischen Kalkül mit Konstruktoren, einem case-Konstrukt und einem rekursiven let- Ausdruck (letrec) ausgerichtet sein. Dazu wurde in Kapitel 2 der lambda-Kalkül und funktionale Programmiersprachen eingeführt, um die Entwicklung der Kalküle lambda-nd und lambda-nd,rec zu motivieren. Die Basis-Kalküle lambda-nd und lamda-nd,rec wurden in Kapitel 3 bezüglich ihrer Sprachdefinition und Reduktionsregeln vorgestellt. Die Implementierung der beiden Kalküle und der Parser für die verwendete Kernsprache wurden ebenso angegeben wie die Mechanismen zur Markierung und Reduktion der Terme. Die Unterscheidung eines reduzierbaren Terms in NO- und internen Redex, sowie deren Erkennung wurde in diesem Kapitel besonders herausgestellt, da sie die Grundlage für die zu validierenden Reduktionsdiagramme darstellt. Damit ist der Grundstock für diese Arbeit gelegt worden. In Kapitel 4 haben wir kurz Methoden vorgestellt, die lamda-Kalkülen und deren Derivate eine Bedeutung zuzumessen versuchen, um Programme oder Terme miteinander vergleichen zu können. Also nicht nur ihre Termstruktur, sondern ihr Verhalten zu vergleichen. Dabei ist festgestellt worden, daß für nichtdeterministische Kalküle nur eine Methode verfügbar ist, und zwar die der kontextuellen Äquivalenz. Da wir gängige Programmtransformationen dahingehend überprüfen wollten, ob sie der kontextuellen Äquivalenz genügen, also nicht die Auswertung oder das Ergebnis derselben verändern, haben wir ein Kontext-Lemma vorgestellt. Mit Hilfe des Kontext-Lemmas ist es uns möglich gewesen, die Gültigkeit von Beweisen in Reduktionskontexten auf beliebige Kontexte auszudehnen. Für die eigentlichen Beweise werden Reduktionsdiagramme benötigt, die Reduktionsfolgen in verschiedener Weise umstellen. Wir haben die Reduktionsdiagramme ebenfalls in Kapitel 4 definiert. Die Reduktionsdiagramme müssen an jeder Stelle einer Reduktionsfolge anwendbar sein, da sonst die Äquivalenz-Beweise nicht möglich sind. D. h. es müßte bewiesen werden, daß mindestens ein Reduktionsdiagramm einer definierten Menge von Reduktionsdiagrammen für jeden Term und jede seiner Reduktionsfolgen anwendbar ist. Der naive Weg wäre, alle Terme und seine Reduktionsfolgen dahingehend zu überprüfen. Da dies jedoch nicht möglich ist, haben wir uns dazu entschlossen so viele Terme wie möglich zu untersuchen, nicht um die Vollständigkeit der Diagramme zu beweisen, sondern um zu zeigen, daß auf viele verschiedenartige Terme Reduktionsdiagramme erfolgreich angewendet werden können. Die Generierung der Terme haben wir in Kapitel 5 ausführlich dargestellt. In Kapitel 6 haben wir die Sprache zur Darstellung von Reduktionsdiagrammen und die Implementierung der Diagramm-Validierung beschrieben. Weiterhin haben wir ein Verfahren vorgestellt, mit dem wir fehlende Diagramme für Terme suchen und meist auch finden können. Das gesamte System haben wir so aufgebaut, daß eine große Menge an Termen generiert wird, für die Diagramme anwendbar sein müssen. Wenn keines der Diagramme auf einen Term anwendbar ist, also nicht validiert werden kann, dann wird ein passendes Diagramm gesucht. Mit Hilfe des entwickelten Systems Jonah sind in Kapitel 7 verschiedene Programmtransformationen dahingehend überprüft worden, ob die angegebenen Reduktionsdiagramme für große Mengen von Termen gültig sind. Dabei ist als Ergebnis herausgekommen, daß ein vollständiger Satz an Reduktionsdiagrammen für die (cp)-Reduktion nur sehr schwer zu finden ist. Selbst neu hinzugefügte Transformationen, die dabei helfen sollten, die Schwierigkeiten zu umgehen, konnten nicht verwendet werden, da es uns ebenfalls nicht möglich gewesen ist, für sie vollständige Diagrammsätze zu finden. Daraufhin haben wir den Basis-Kalkül zweimal erweitert, um die Schwierigkeiten der (cp)-Diagramme in den Griff zu bekommen. Aber auch diese Ansätze haben kein zufriedenstellendes Ergebnis geliefert. Als positives Ergebnis dieser Arbeit kann aber festgestellt werden, daß das System Jonah bei der Entwicklung nichtdeterministischer Kalküle auf Basis von lambda-Kalkülen eine sehr gute Hilfestellung sein kann, auch wenn es nicht zum vollständigen Beweis der Gültigkeit von Reduktionsdiagrammen dienen kann.
Konzeption und Implementierung einer Kommunikation zwischen Second Life und Web 2.0 Anwendungen
(2009)
Im Rahmen dieser Arbeit haben wir ein Konzept und einen Prototypen zur Kommunikation zwischen Second Life und Web 2.0 entwickelt.
Im Rahmen dieser Diplomarbeit wird ein Konzept und ein Prototyp zur Kommunikation zwischen Second Life und Web 2.0-Anwendungen entwickelt. In der Übung zur Veranstaltung "Einführung in das Projektmanagement" wurden Meetings in Second Life abgehalten. Dabei haben die Studierenden im Rahmen der Übung Protokolle erstellt, die sie im Internet veröffentlichten. Die Protokollierung musste immer manuell durchgeführt werden und war dadurch fehleranfällig und nicht ausfallsicher. Hier entstand der Wunsch, die Protokollierung zu automatisieren und somit den administrativen Aufwand zu reduzieren.
Im Kapitel 2 werden die Grundlagen behandelt, die für das Verständnis der Arbeit notwendig sind. Hierbei werden Second Life, sowie Blog und Wiki als Repräsentanten von Web 2.0 vorgestellt. Außerdem wird eine klare Abgrenzung zwischen diesen Technologien aufgezeigt.
Die Analyse dieser Diplomarbeit umfaÿt unter anderem die verschiedenen Möglichkeiten der Übertragung der Informationen zwischen Second Life und den Web 2.0-Anwendungen.
Im Konzept ist die Gesamtarchitektur zur Kommunikation zwischen Second Life und den Web 2.0 Anwendungen enthalten. Die Hauptsystemkomponenten, die dafür notwendig sind, stellen eine Ansammlung aus Second Life Skripten, dem HTTP Supervisor und den Wiki Bot Skripten dar. Die Second Life und die Wiki Bot Skripten sind eine Ansammlung von Unterprogrammen, die jeweils auf eine Aufgabe spezialisiert sind. Die genaue Erklärung wird im Kapitel 4 Aufgrund der Unterschiede der Web 2.0 Anwendungen wurde ein Bot eingesetzt, der eine Web 2.0 Anwendung bedient. Der HTTP Supervisor dient der Vermittlung dient der Vermittlung der Daten zwischen Second Life und der Web 2.0 Anwendung. Auÿerdem speichert er die Daten in temporäre Dateien. Der Second Life Teil des Programms dient der Steuerung des gesamten Systes.
Durch die prototypische Umsetzung ist die Durchführbarkeit bewiesen, die Daten aus Second Life herauszuführen und im MediaWiki zu speichern.
In erstem Teil der Arbeit wurde der Begriff Drehbuch in Hinsicht auf die Erstellung von eLearning Kursen erläutert und eLearning Inhalte auf ihre typischen Merkmale untersucht. Dabei war es wichtig zu verstehen, ob und wie die kooperative Arbeit an Inhalten in gängigen Textbearbeitungsprogrammen unterstützt wird und welche Vor- und Nachteile der jeweilige Editor aufweist. Wie sich herausgestellt hat, setzen bestehende Lösungen auf Auszeichnungen von Textbausteinen und der Kursstruktur mit Hilfe von speziellen Makros, so dass beim Transformieren des Kurses diese wiedererkannt werden können. Leider sind diese Lösungen auf einen bestimmten Editor spezialisiert und betrachten die kooperativen Aspekte der Arbeit an Inhalten nicht.
Da das Drehbuch in einem Textbearbeitungsprogramm erstellt wird, ist die Möglichkeit der Wahl von einem Editor für die Autoren vorteilhaft. Deshalb sieht der Lösungsansatz in meiner Arbeit vor, dass die Umsetzung des Drehbuches nicht auf einen bestimmten Editor beschränkt ist und dass für jeden Editor kooperative Bearbeitung ermöglicht wird. Dies wird zum einen durch Verwendung eines Versionskontrollesystems und zum anderen durch die kooperativen Eigenschaften der Editoren erreicht.
Das Transformieren eines Drehbuches zu einem eLearning Kurs wurde einheitlich gestaltet, da HTML als ein gemeinsames Format der Ausgabe von Editoren ausgewählt wurde. In der Implementierung des Lösungsansatzes konnte am Beispiel des Autorensprogramms LernBar die Unterstützung von bereits drei Editoren erreicht werden.
Einige Einschränkungen sind bei der Verwendung dieser Lösung zu beachten. Bei den Veränderungen in der HTML-Ausgabe der Editoren sind möglicherweise auch Anpassungen im Programm vorzunehmen. Die Verwendung von Tabellen impliziert, dass ihre Struktur durch den Autor nicht geändert wird, was durchaus auch versehentlich passieren kann. Bei der Erstellung von Tests ist eine umfassende Validierung empfehlenswert, damit die Tests wie erwartet durchgeführt werden können. Es wurden in der Implementierung nur einige Testtypen umgesetzt und möglicherweise sind einige Tests nicht für die Erfassung im Drehbuch geeignet. In dem Fall müssen sie in den verwendeten Autorenprogramm direkt erstellt werden.
Die rasante Entwicklung von Internettechnologien wird sicherlich neue Möglichkeiten sowohl für die kooperative Arbeit, als auch für Textbearbeitungsfunktionalitäten anbieten. Allein im Jahr 2010 wurden mehrere Neuerungen auf dem Markt von Online-Editoren eingeführt. Microsoft hat eine Online-Version1 von seiner Office-Suite veröffentlicht und damit eine neue Alternative zu Google Docs angeboten. In Google-Docs werden nahezu im monatlichen Takt neue nützliche Funktionen implementiert, die sowohl die Textverarbeitung als auch die Kooperation verbessern.
Um in verschiedenen Anwendungsumgebungen eingesetzt werden zu können, lässt die CORBA-Spezifikation einen weiten Spielraum für Implementierungen. Sollte CORBA in einem speziellen Umfeld eingesetzt werden, so war bisher eine Neu-Implementierung notwendig, da herkämmliche CORBA-Implementierungen nicht oder nur sehr eingeschränkt an spezielle Anwendungsumgebungen anpassbar sind. In dieser Arbeit wurde ein Ansatz für eine erweiterbare CORBA-Implementierung vorgestellt und implementiert.
In der Computergraphik werden immer wieder verschiedenste Objekte des realen Lebens modelliert. Dabei werden oft die Regeln ihres Aufbaus ausgenutzt, um diese Modelle automatisch zu erzeugen.
Gotische Architektur bietet daf¨ur gute Voraussetzungen. Auf Grund ihres hohen Grades an selbst¨ahnlichen Strukturen besteht die Möglichkeit, solche Regeln aus ihrem Aufbau abzuleiten. Wie bei vielen gotischen Elementen lassen sich auch bei den Pfeilern, die die Basis jedes gotischen Gewölbes bilden, solche Strukturen in ihrem teilweise komplexen Grundriss finden.
Die vorliegende Diplomarbeit stellt eine Methode vor, mit der die Grundrisse verschiedener gotischer Pfeiler beschrieben werden können. Die in dieser Arbeit entwickelte Querschnittsbeschreibung, wird die Darstellung der Grundrisse möglichst vieler verschiedener Pfeiler erlauben und automatisch erzeugbar sein. Der Aufbau der Beschreibung erm¨oglicht die Generierung eines 3D-Modells.
Um dies zu erreichen, wird zunächst eine Analyse der Querschnitte verschiedener gotischer Pfeiler vorgenommen. Mit den in der Analyse gewonnenen Informationen wird formal eine Querschnittsbeschreibung entwickelt, die die oben beschriebenen Anforderungen erf¨ullt. Die automatische Erzeugung erfolgt über ein parametrisches L-System. Aus der Beschreibung des Querschnitts wird schließlich das 3D-Modell erzeugt.
Die Implementierung erfolgt komplett in C++. Für die Erzeugung des 3D-Modells wird der Open Source Szenengraph Ogre3D verwendet, der die notwendige 3D-Grafik-Funktionalit¨at zur Verfügung stellt.
Mit der realisierten Anwendung ist es m¨oglich, mit wenigen Eingaben ein Modell eines komplexen gotischen Pfeilers zu erstellen.
In Abschnitt 4.1 wurden Algebren auf Mengen und Relationen vorgestellt. Desweitern wurde in Abschnitt 4.2 eine zu ALC erweiterte terminologische Wissensrepräsentationssprache ALCX definiert und gezeigt, daß die in Abschnitt 4.1 vorgestellten Algebren zur Festlegung der odell-theoretischen Semantik der Sprache ALCX benutzt werden können. Als Ergebnis einer derartigen Festlegung kann jeder terminologische Ausdruck direkt mit einem algebraischen Term assoziiert werden. Desweitern können alle in den Algebren aufgeführten universellen Identitäten in semantisch äquivalente terminologische Identitäten überführt werden. Eine mittels ALCX repräsentierte Wissensbasis ist in meinem Programm mit Hilfe der in der funktionalen Programmiersprache Gofer (Version 2.28) gegebenen Möglichkeiten formuliert. Mein Programm bietet durch Simplifizierung von Anfrageausdrücken eine optimierte Lösung des aus dem Bereich der Wissensrepräsentation bekannten Retrieval-Problems. Die Simplifizierung von Anfrageausdrücken wird in meinem Programm erzielt, indem in den oben genannten Algebren erfüllte universelle Identitäten als Simplifikationshilfsmittel benutzt werden. Die in den Algebren aufgeführten universellen Identitäten bestehen stets aus zwei äquivalenten Termen, für die eine unterschiedliche Anzahl von Reduktionsschritten zur Evaluierung benötigt werden. Es existieren universelle Identitäten, bei denen unabhängig von den Instanzen der Argumentterme ein Term gegenüber einem anderen Term effizienter auswertbar ist. Bei diesen universellen Identitäten kann eine Simplifikation von einem Term zu einem anderen Term immer unproblematisch realisiert werden. Es gibt jedoch auch universelle Identitäten, bei denen die Unabhängigkeit von den Instanzen der Argumentterme nicht gegeben ist. In diesen Fällen wird ein von der Wissensbasis abhängiges Komplexitätsabschätzungsverfahren eingesetzt, um den effizienter auswertbaren Term von zwei an einer universellen Identität beteiligten Termen zu ermitteln. Daß die Simplifikation eines Anfrageausdrucks große Einsparungen bei dessen Auswertung nach sich ziehen kann, wurde an verschiedenen Beispielen in Abschnitt 5.4.4 gezeigt. Über eine weitere Möglichkeit, die zum Simplifizieren von Anfrageausdrucken verwendet werden kann, wurde in Abschnitt 5.4.5 berichtet. Die Genauigkeit der Komplexitätsabschätzung kann erhöht werden, indem das Komplexitätsabschätzungsverfahren erweitert wird. So kann beispielsweise die Komplexität der Funktion "oder" genauer abgeschätzt werden, indem für zu vereinigende Mengen überprüft wird, ob Teilmengenbeziehungen vorhanden sind. Durch eine genauere Abschätzung der Mächtigkeit entstehender Vereinigungsmengen wird die Komplexitätsabschätzung insgesamt in ihrer Genauigkeit gesteigert. Eine Änderung der Instanzen meiner terminologischen Datenbank erfordert eine Änderung des Skripts meines Programms. Indem die Instanzen-Daten in einer veränderlichen Datenbank festgehalten würden, könnte hier Abhilfe geschaffen werden. Dies könnte im Rahmen der Erstellung einer benutzterfreundlichen Ein- und Ausgabe-Schnittstelle realisiert werden.
Point-Based Animation
(2011)
Die punktbasierte Animation ist ein relativ neues Gebiet im Bereich der Animation. Der Unterschied zu den weit verbreiteten polygonnetzbasierten Verfahren liegt darin, dass zwischen den einzelnen Punkten, welche die Oberfläche des zu animierenden Objekts definieren, keine Topologieinformationen vorhanden sind. Mit polygonnetzbasierten Techniken ist keine Volumensimulation möglich, da keine Volumeninformationen vorhanden sind. Die aktuellen Verfahren im punktbasierten Feld ermöglichen die Animation von Flüssigkeiten, Rauch oder Explosionseffekten. In dieser Arbeit wird eine Animation auf Grundlage eines zur Verfügung gestellten Punktmodells ausgeführt. Um zu gewährleisten, dass die Animation korrekt nach den Gesetzen der Physik arbeitet, wird eine Physikengine zu Hilfe genommen. Diese beiden Bereiche werden in dieser Arbeit miteinander verknüpft. Zunächst werden einfache Simulationen im Sektor der starren Körperdynamik durchgeführt. Dabei werden einzelne Punkte unter Einfluss der Gravitation auf eine Ebene fallen gelassen. Vor allem die Berechnung der Kollision mit der Ebene und der Punkte untereinander ist hierbei interessant. Um sehenswerte physikalische Effekte animieren zu können, muss die Elastizität mit berücksichtigt werden. DesWeiteren wird in der Arbeit die Animation elastischer Körper verwirklicht. Hierbei wird eine an den Ecken fixierte elastische Ebene animiert. Einzelne Punkte können aus diesem elastischen Objekt herausgezogen werden, in Folge dessen sich das Objekt selbst repariert. Ebenfalls kann ein herausgeschnittner Punkt wieder in das Objekt eingefügt werden.
Raytracing und Szenegraphen
(2006)
Raytracing ist ein bekanntes Verfahren zur Erzeugung fotorealistischer Bilder. Globale Beleuchtungseffekte einer 3D-Szene werden durch das Raytracing-Verfahren physikalisch korrekt dargestellt. Erst aktuelle Forschungsarbeiten erm¨oglichen es, das sehr rechenintensive Verfahren bei interaktiven Bildraten in Echtzeit zu berechnen.
Komplexe 3D-Szenen, wie sie beispielsweise in 3D-Spielen oder Simulationen vorkommen, können durch einen Szenengraphen modelliert und animiert werden. Damit die Rendering-Ergebnisse eines Szenengraphen n¨aher an einem realen Bild liegen, ist es erforderlich das Raytracing-Verfahren in einen Szenengraphen einzugliedern.
In dieser Arbeit werden die Möglichkeiten zur Integration eines Echtzeit-Raytracers in eine Szenengraph-API untersucht. Ziel dieser Diplomarbeit ist die Darstellung dynamischer Szenen bei interaktiven Bildraten unter Verwendung des Raytracing-Verfahrens auf einem herk¨ommlichen PC. Zun¨achst m¨ussen bestehende Open Source Szenengraph-APIs und aktuelle Echtzeit-Raytracer auf ihre Eignung zur Integration hin überprüft werden.
Bei der Verarbeitung dynamischer Szenen spielt die verwendete Beschleunigungsdatenstruktur des Raytracers eine entscheidende Rolle. Da eine komplette Neuerstellung der Datenstruktur in jedem Bild zuviel Zeit in Anspruch nimmt, ist eine schnelle und kostengünstige Aktualisierung erforderlich. Die in [LAM01] vorgestellte Lösung, eine Hüllkörperhierarchie (BVH) als Beschleunigungsdatenstruktur zu verwenden, fügt sich sehr gut in das Konzept eines Szenengraphen ein. Dadurch wird eine einfache Aktualisierung ermöglicht.
Um das Ziel dieser Arbeit zu erreichen, ist es notwendig, die Parallelisierbarkeit des Raytracing-Verfahrens auszunutzen. Purcell zeigt in [Pur04], dass Grafikprozessoren (GPUs) neben ihrer eigentlichen Aufgabe auch für allgemeine, parallele Berechnungen wie das Raytracing verwendet werden können.
Die in bisherigen Arbeiten über GPU-basiertes Raytracing entwickelten Systeme können dynamische Szenen nicht bei interaktiven Bildraten darstellen. Aus diesem Grund wird in dieser Diplomarbeit ein neues System konzipiert und implementiert, das den in [TS05] entwickelten Raytracer erweitert und in die Open Source Szenengraph-API OGRE 3D integriert.
Das implementierte System ermöglicht die Darstellung statischer und dynamischer Szenen unter Verwendung einer Consumer-Grafikkarte bei interaktiven Bildraten. Durch seine Erweiterbarkeit bildet das System das Grundger¨ust für ein Realtime-High-Quality-Rendering-System.
Raytracing und Szenengraphen
(2006)
Raytracing ist ein bekanntes Verfahren zur Erzeugung fotorealistischer Bilder. Globale Beleuchtungseffekte einer 3D-Szene werden durch das Raytracing-Verfahren physikalisch korrekt dargestellt. Erst aktuelle Forschungsarbeiten ermöglichen es, das sehr rechenintensive Verfahren bei interaktiven Bildraten in Echtzeit zu berechnen. Komplexe 3D-Szenen, wie sie beispielsweise in 3D-Spielen oder Simulationen vorkommen, können durch einen Szenengraphen modelliert und animiert werden. Damit die Rendering-Ergebnisse eines Szenengraphen näher an einem realen Bild liegen, ist es erforderlich das Raytracing-Verfahren in einen Szenengraphen einzugliedern. In dieser Arbeit werden die Möglichkeiten zur Integration eines Echtzeit-Raytracers in eine Szenengraph-API untersucht. Ziel dieser Diplomarbeit ist die Darstellung dynamischer Szenen bei interaktiven Bildraten unter Verwendung des Raytracing-Verfahrens auf einem herkömmlichen PC. Zunächst müssen bestehende Open Source Szenengraph-APIs und aktuelle Echtzeit-Raytracer auf ihre Eignung zur Integration hin überprüft werden. Bei der Verarbeitung dynamischer Szenen spielt die verwendete Beschleunigungsdatenstruktur des Raytracers eine entscheidende Rolle. Da eine komplette Neuerstellung der Datenstruktur in jedem Bild zuviel Zeit in Anspruch nimmt, ist eine schnelle und kostengünstige Aktualisierung erforderlich. Die in [LAM01] vorgestellte Lösung, eine Hüllkörperhierarchie (BVH) als Beschleunigungsdatenstruktur zu verwenden, fügt sich sehr gut in das Konzept eines Szenengraphen ein. Dadurch wird eine einfache Aktualisierung ermöglicht. Um das Ziel dieser Arbeit zu erreichen, ist es notwendig, die Parallelisierbarkeit des Raytracing-Verfahrens auszunutzen. Purcell zeigt in [Pur04], dass Grafikprozessoren (GPUs) neben ihrer eigentlichen Aufgabe auch für allgemeine, parallele Berechnungen wie das Raytracing verwendet werden können. Die in bisherigen Arbeiten über GPU-basiertes Raytracing entwickelten Systeme können dynamische Szenen nicht bei interaktiven Bildraten darstellen. Aus diesem Grund wird in dieser Diplomarbeit ein neues System konzipiert und implementiert, das den in [TS05] entwickelten Raytracer erweitert und in die Open Source Szenengraph-API OGRE 3D integriert. Das implementierte System ermöglicht die Darstellung statischer und dynamischer Szenen unter Verwendung einer Consumer-Grafikkarte bei interaktiven Bildraten. Durch seine Erweiterbarkeit bildet das System das Grundgerüst für ein Realtime-High-Quality-Rendering-System.
Grafik-Hardware ist programmierbar geworden. Graphic Processing Units (GPUs) der neuen Generation wie der GeForce3 von NVIDIA enthalten Prozessoren, die es dem Software-Entwickler erlauben kurze Routinen auf der Grafik-Hardware auszuführen. Ich gebe in dieser Arbeit einen umfassenden Überblick über die Architekur und Leistungsfähigkeit dieser neuen Chipgeneration, zeige deren Stärken und Schwächen auf und diskutiere Verbesserungsvorschläge. Als Teil der Arbeit präsentiere ich einige von mir entwickelte Schattierungsverfahren, sowie eine Wassersimulation. Diese Demonstratoren sind darauf ausgerichtet vollständig auf den Prozessoren der neuen Grafikchip- Generation zu laufen. Als Antwort auf die Mängel der zur Zeit verfügbaren Application Programming Interfaces stelle ich ein alternatives Interface zur Steuerung der neuen GPUKomponenten vor, das insbesondere die Austauschbarkeit und Kombinierbarkeit von GPU-Programmen unterstützt.
Funktionale Programmiersprachen weisen viele Eigenschaften auf, die zur modernen Softwareentwicklung benotigt werden: Zuverlässigkeit, Modularisierung, Wiederverwendbarkeit und Verifizierbarkeit. Als schwer vereinbar mit diesen Sprachen stellte sich die Einbettung von Seiteneffekten in diese Sprachen heraus. Nach einigen mehr oder weniger gescheiterten Ansätzen hat sich mittlerweile fur die nichtstrikte funktionale Sprache Haskell der monadische Ansatz durchgesetzt, bei dem die Seiteneffekte geschickt verpackt werden, so dass zumindest IO-behaftete Teile eines Haskell-Programms dem klassischen imperativen Programmierstil ähneln. S. Peyton Jones bringt dieses in [Pey01, Seite 3] auf den Punkt, indem er schreibt "...Haskell is the world's finest imperative programming language." Dies ist einerseits vorteilhaft, denn die klassischen Programmiertechniken können angewendet werden, andererseits bedeutet dies auch eine Rückkehr zu altbekannten Problemen in diesen Sprachen: Der Programmcode wird unverständlicher, die Wiederverwendbarkeit von Code verschlechtert sich, Änderungen im Programm sind aufwendig. Zudem erscheint die monadische Programmierung teilweise umständlich. Deshalb wurde im Zuge der Entwicklung in fast jede Implementierung von Haskell ein Konstrukt eingebaut, dass von monadischem IO zu direktem IO führt. Da dieses nicht mit dem bisherigen Ansatz vereinbar schien, wird es als "unsafe" bezeichnet, die entsprechende Funktion heißt "unsafePerformIO". Zahlreiche Anwendungen benutzten diese Funktion, teilweise scheint die Verwendung zumindest aus Effizienzgründen unabdingbar. Allerdings ist die Frage, wann dieses verwendet werden darf, d.h. so angewendet wird, dass es nicht "unsicher" ist, nur unzureichend geklärt. Das Zitat in Abbildung 1.1 gibt wenig Aufschluss über die korrekte Anwendung, zumal immer wieder Diskussionen entstehen, ob die Verwendung von unsafePerformIO in diesem oder jenem Spezialfall korrekt ist.
Simulation von Prüfungsordnungen und Studiengängen mit Hilfe von Constraint-logischer Programmierung
(2006)
In dieser Arbeit wurde versucht die Prüfungsordnung des Bachelorstudiengangs Informatik mit Hilfe der Constraint-logischen Programmiersprache - genauer der Programmiersprache ECLiPSe e zu simulieren und diese auf logische Fehler zu überprüfen. Hierfür wurden die beiden deklarativen Programmierparadigmen, die logische Programmierung und die Constraint-Programmierung, getrennt erläutert, da sie unterschiedliche Techniken bei der Problembehandlung einsetzen. Zunächst wurde als Grundlage die Prädikatenlogik (Kapitel 2), erarbeitet und ausführlich dargestellt. Anschließend wurde die logische Programmierung mit der, auf Prädikatenlogik basierenden, Programmiersprache Prolog erläutert (Kapitel 3). Nach der Erläuterung des logischen Teils wurde die Constraint-Programmierung (Kapitel 4) eingehend erläutert. Damit wurde eine Basis geschaffen, um die Constraint-logische Programmierung zu erläutern. Die Constraint-logische Programmierung (Kapitel 5) wurde als eine Erweiterung der logischen Programmierung um Constraints und deren Behandlung dargestellt. Dabei wurde zunächst ein allgemeiner Ansatz der Constraint-logischen Programmierung (CLP-Paradigma) erläutert. Mit der Einführung der Programmiersprache ECLiPSe, wurden alle Werkzeuge behandelt, die für die Simulation benötigt wurden. Schließlich wurde genauer auf die Modellierung des Problems und seine Implementierung in der Sprache ECLiPSe eingegangen (Kapitel 6). Grundidee der Simulation war, die Regeln der Prüfungsordnung als Constraints zu formulieren, so dass sie formal bearbeitet werden konnten. Hier wurden zwei Arten von Tests durchgeführt: • Constraint-Erfüllbarkeitsproblem: Mit dem ersten Test wurde nach eine Lösung gesucht, in der alle Constraints erfüllt sind. • Constraint-Optimierungsproblem: Hier wurde nach einer optimalen Lösung gesucht unter mehreren Kandidaten, in der alle Constraints erfüllt sind. Fazit: Die Constraint-logische Programmierung ist ein viel versprechendes Gebiet, da sie ein Mittel zur Behandlung kombinatorischer Probleme darstellt. Solche Probleme treten in vielen verschiedenen Berufsfeldern auf und lassen sich sonst nur mit großem Aufwand bewältigen. Beim Auftreten solcher Probleme kann schnell ein konzeptuelles Modell erstellt werden, das sehr einfach in ein ausführbares Programm (Design-Modell) umgewandelt wird. Programm-Modifikation ist erheblich leichter als in den prozeduralen Programmiersprachen.
Die Implementation der Striktheits-Analyse, die im Zuge dieser Arbeit vorgenommen wurde, stellt eine effiziente Approximation der abstrakten Reduktion mit Pfadanalyse dar. Durch die G#-Maschine, ein neues, auf der G-Maschine basierendes Maschinenmodell, wurde die verwendete Methode systematisch dargelegt. Die große Ähnlichkeit mit der G-Maschin, die in unserer Implementation beibehalten werden konnte, zeigt, wie natürlich die verwendete Methode der Reduktion in funktionalen Programmiersprachen entspricht. Obwohl die Umsetzung mehr Wert auf Nachvollziehbarkeit, als auf Effizienz legt, zeigt sie, daß die Methode der abstrakten Reduktion mit Pfadanalyse auch in einer funktionalen Implementierung durchaus alltagstauglich ist und Striktheits-Information findet, die Umsetzungen anderer Methoden nicht finden. Es bestehen Möglichkeiten zur Optimierung u. a. von Programmteilen, die für jede simulierte G#-Maschinen-Anweisung ausgeführt werden. Bei vorsichtiger Einschätzung erscheint eine Halbierung der Laufzeit mit vertretbarem Aufwand erreichbar.
In der heutigen Zeit werden viele Anwendungen als Webanwendungen entwickelt, weil man sie schneller auf den Markt werfen kann. Neue Methoden wurden entwickelt um den Softwareentwicklungsprozess zu verschlanken, um damit noch schneller und öfter eine Produkt auf den Markt zu bringen. Diese Methoden erschweren die Arbeit von manuellen Tester ungemein. Sie müssen jetzt noch schneller und noch öfter testen.
Um dieser Miesere entgegenzuwirken wurden Testautomatisierungsmechanismen und Testautomatisierungswerkzeuge entwickelt. In dieser Arbeit wollte ich zeigen, dass Testautomatisierung in bestehenden Projekten nachträglich noch eingefügt werden kann. Und das diese für eine verbesserte Qualität des Produktes sorgen kann.
Ich habe in dieser Arbeit den Testfallkatalog für das Produkt „Email4Tablet“ der Firma Deutsche Telekom AG zu 70% mit dem Testwerkzeug Selenium automatisiert.
In der vorliegenden Diplom-Arbeit wurde das in [19] vorgeschlagene Modell zur Partitionierung hybrider Systeme diskutiert und die Anwendbarkeit verschiedener verschiedener Optimierungsverfahren auf das Problem untersucht.
Hierbei wurde der Systemgraph um die Ein-/Ausgabe-Blöcke erweitert, damit der Systemgraph eine eine konsistente Erweiterung des des Graphen-Modells darstellt. Weiterhin wurden die Probleme und Einschränkungen aufgezeigt, die sich bei der Abbildung eines hybriden Systems auf den Systemgraphen ergeben.
In dieser Diplomarbeit wurde zunächst eine Einführung in das Gebiet der Unifikationstheorie gegeben, um dann zum Teilgebiet des Kontextmatchings zu kommen. Dieses wurde in das Gesamtgebiet der Unifikation eingeordnet. In Anlehnung an [Schm2003] wurde die Komplexität einiger Einschränkungen des Kontextmatchings betrachtet. Insbesondere wurde ein Algorithmus zur Lösung linearer Kontextmatchingprobleme in polynomieller Zeit vorgestellt. Es folgte die Einführung des Transformationsalgorithmus aus [Schm2003] zur Lösung allgemeiner Kontextmatchingprobleme, wobei nach und nach verbesserte Transformationsregeln für einzelne spezielle Problemsituationen vorgestellt wurden. Über [Schm2003] hinausgehend wurden die Regeln Split: Korrespondierende Lochpfade und Konstantenelimination vorgestellt. Im Rahmen der Diplomarbeit wurden die genannten Algorithmen in der funktionalen Programmiersprache Haskell implementiert, wobei auf eine einfache Erweiterbarkeit um neue Transformationsregeln sowie alternative Heuristiken zur Auswahl der in einem Schritt anzuwendenden Transformationsregel geachtet wurde. Die Implementierung (und damit auch die in ihr implementierten Algorithmen) wurde mit Hilfe von zufällig erzeugten Termen auf ihre Leistungsfähigkeit getestet. Hauptaugenmerk lag dabei darauf, inwiefern sich Regeln, die über die Basisregeln aus Tabelle 3.4.1 hinausgehen, positiv auf die Anzahl der Transformationsschritte auswirken. Das Ergebnis ist beeindruckend: durch die Einführung komplexerer Transformationsregeln ließen sich in unseren Testfällen bis zu 87% der Transformationsschritte einsparen, im Durchschnitt immerhin noch 83%. Speziell komplexere Kontextmatchingprobleme mit einer größeren Anzahl an Kontextvariablen profitieren hiervon. Insbesondere die Erkennung korrespondierender Positionen in Verbindung mit der Regel Split führte zu erheblichen Verbesserungen. Die implementierten Algorithmen zur Erkennung korrespondierender Positionen stellen teilweise nur ein notwendiges Kriterium für die Existenz korrespondierender Löcher dar. Dies kann zu fehlerhaften Erkennungen solcher Positionen führen. Wie sich in unseren Tests zeigte, scheint das jedoch kein gravierendes Problem zu sein, da die entsprechenden Split- Transformationen ohnehin äußerst sparsam eingesetzt werden.
Die Arbeitsgruppe für Chemie und Physik der Atmosphäre am Institut für Meteorologie und Geophysik der Johann Wolfgang Goethe-Universität Frankfurt befasst sich unter anderem mit der Entwicklung einer Continous Flow Diffusion Chamber zur Erfassung und Klassifikation von CCN und IN. Diese Partikel besitzen eine Größe im Mikrometerbereich und sind somit nicht leicht zu erfassen und zu unterscheiden. Bei vergleichbaren Versuchen beschränkte sich bisher die automatische Auswertung auf die Anzahl der Partikel. Es gibt noch kein Verfahren, welches eine Klassifikation in CCN und IN videobasiert vornehmen kann. Es lag ebenfalls kein reales Bildmaterial vor, welches zu Testzwecken für die Klassifikation geeignet gewesen wäre. Basierend auf den physikalischen und meteorologischen Grundlagen wurde mittels Raytracing ein künstlicher Bilddatensatz mit kleinen Eiskristallen und Wassertröpfchen unter verschiedenen Betrachtungsverhältnissen erstellt. Anhand dieses Bilddatensatzes wurde dann ein Verfahren zur Klassifikation entwickelt und prototypisch implementiert, welches dies mittels Methoden aus der graphischen Datenverarbeitung und durch Berechnung der Momente vornimmt. Es war notwendig, Verfahren aus der Kameratechnik zu betrachten, die später in der realen Anwendung mit sehr kurzzeitiger Belichtung, geeigneter Optik und hochauflösender CCD-Kamera detaillierte Bilder von Objekten in der Größe von einigen 10µm liefern können.
Visualisierung von E-Mail-Traffic mit Schwerpunkt auf eine inhaltliche Analyse von Wortmustern
(2010)
E-Mail hat sich zu einem sehr wichtigen Kommunikationsmittel entwickelt, leidet aber aktuell unter einer massiven Verbreitung unerwünschter und unverlangter Inhalte. Diese können für einen Anwender nicht nur lästig sein, sondern auch die vorhandene Netz- und Speicher-Infrastruktur enorm belasten.
Die Notwendigkeit einer Filterung des E-Mail-Traffic hat zu einer Reihe recht unterschiedlicher Methoden geführt, die computergesteuert eine E-Mail auf ihren Spam-Gehalt untersuchen.
Die Motivation hinter dieser Arbeit ist zu prüfen, ob die besonderen Eigenschaften der visuellen Wahrnehmung eines Menschen als unterstützendes Mittel eingesetzt werden können, um E-Mail-Inhalte zu überprüfen und eventuell vorhandene Wort-Muster, die auf Spam deuten, sichtbar zu machen.
Um dieses Ziel zu erreichen musste zuerst eine geeignete Auswahl spamspezifischer Merkmale getroffen werden. Danach wurden Methoden des Text Minings angewendet, um aus dem Inhalt einer E-Mail strukturierte Daten zu gewinnen, die sich zur Repräsentation einer Nachricht eignen und als Grundlage für eine Visualisierung herangezogen werden können. Basierend auf den vorab ausgewählten Spam-Charakteristika wurdenWorteigenschaften mit Hilfe extern angebundener Wortlisten, regulärer Ausdrücke und unter Einsatz eines Wörterbuches überprüft, und die erhaltenen Ergebnisse flossen neben einer einfachen Gewichtung von Worthäufigkeiten in Form einer anwendungsspezifischen Gewichtung mit ein.
Es wurden anschließend zwei verschiedene Sichten konzipiert, um einem Anwender einen Einblick in die extrahierten Daten zu ermöglichen. Es hat sich herausgestellt, dass besonders Treemaps geeignet sind um die anfallenden Datenmengen kompakt abzubilden, aber gleichzeitig einen notwendigen Detailgrad auf einzelne Worteigenschaften gewährleisten.
Das Konzept wurde prototypisch unter Verwendung des Mailservers Mercury/32 sowie einer MySQL-Datenbank implementiert und konnte teilweise aufzeigen, dass es anhand der von der Engine generierten Strukturen möglich ist, spamspezifische Merkmale einer E-Mail unter Verwendung der gewählten Visualisierungstechniken auf eine Weise sichtbar zu machen, die einem Anwender eine Mustererkennung erlauben.
Die Diplomarbeit wurde als Gemeinschaftsarbeit angefertigt und konnte sinnvoll in zwei Bereiche aufgeteilt werden: Die Engine und die Visualisierung. Die konzeptuellen Überlegungen für das Thema sind größtenteils gemeinsam erfolgt, jedoch liegt der Schwerpunkt von Pouneh Khayat Pour im Bereich der Analyse und der von Yvonne Neidert in der Visualisierung.