Kaiserslautern - Fachbereich Informatik
Refine
Year of publication
Document Type
- Master's Thesis (45) (remove)
Has Fulltext
- yes (45)
Keywords
- CoMo-Kit (5)
- Case-Based Planning (4)
- Fallbasiertes Schliessen (3)
- Case-Based Reasoning (2)
- Decision Trees (2)
- Entscheidungsbäume (2)
- Fallbasierte Planning (2)
- AG-RESY (1)
- AKLEON (1)
- Abstandsregeltempomat (1)
Faculty / Organisational entity
Grob skizziert soll das System in der Lage sein, aus einer vorgegebenen Konstruktionszeichnung eines Drehteils einen Plan f"ur die maschinelle Fertigung dieses Teils zu erstellen. Ausgehend vom Ansatz des fallbasierten Schliessens besteht die Aufgabe des Systems darin, aus einer Menge bekannter Drehteile, für die bereits ein Fertigungsplan erstellt worden ist, das Teil zu finden, dessen Darstellung zu der des eingegebenen Teils am ähnlichsten ist. Der Plan dieses ähnlichsten Teils ist dann so zu modifizieren und anzupassen, dass damit das vorgegebene Teil gefertigt werden kann. Ein zentrales Problem ist hierbei die Definition des Ähnlichkeitsbegriffes, der auf jeden Fall den fertigungstechnischen Aspekt berücksichtigen muss.
Eine Möglichkeit das Planen in Planungssystemen zu realisieren, ist das fallbasierte Planen. Vereinfacht kann darun ter das Lösen von neuen Planungsproblemen anhand von bereits bekannten Plänen aus der Planungsdomäne verstanden werden. Dazu werden Pläne, die in der Vergangenheit ein Planungsproblem gelöst haben, gesammelt und bei der Lösung neuer Planungsprobleme dahin gehend modifiziert, dass sie das aktuelle Planungsproblem lösen. Um eine grössere Wiederverwendbarkeit der bereits bekannten Pläne zu erreichen, kann man nun eine konkrete Problemstellung mit ihrer Lösung aus der konkreten Planungswelt in eine abstraktere Planungswelt durch eine Abstraktion transformieren.
Recently, a new Quicksort variant due to Yaroslavskiy was chosen as standard sorting
method for Oracle's Java 7 runtime library. The decision for the change was based on
empirical studies showing that on average, the new algorithm is faster than the formerly
used classic Quicksort. Surprisingly, the improvement was achieved by using a dual pivot
approach — an idea that was considered not promising by several theoretical studies in the
past. In this thesis, I try to find the reason for this unexpected success.
My focus is on the precise and detailed average case analysis, aiming at the flavor of
Knuth's series “The Art of Computer Programming”. In particular, I go beyond abstract
measures like counting key comparisons, and try to understand the efficiency of the
algorithms at different levels of abstraction. Whenever possible, precise expected values are
preferred to asymptotic approximations. This rigor ensures that (a) the sorting methods
discussed here are actually usable in practice and (b) that the analysis results contribute to
a sound comparison of the Quicksort variants.
Planung ist ein vielfach untersuchtes Gebiet im Bereich der Künstlichen Intelligenz. Die hier vorgestellte Arbeit ist in diesem Gebiet angesiedelt: es geht um ein Planungssystem, welches auf die Unterstützung der Arbeitsplanerstellung in der computerintegrierten Fertigung abzielt. Der Bereich der computerintegrierten Fertigung ist allerdings nur als ein spezieller Anwendungsbereich für das System zu sehen.
Im Rahmen dieser Diplomarbeit werden die Konzepte zur Unterstützung von datenbankorientierten Software-Produktlinien durch domänenspezifische Sprachen am Beispiel von Versionierungssystemen untersucht. Ziel dieser Arbeit ist es, die zeitlichen Kosten, die durch die Nutzung einer domänenspezifischen Sprache entstehen, zu bestimmen. Dabei werden unterschiedliche Datenbankschemata verwendet, um zu untersuchen, welcher Zusammenhang zwischen der Komplexität des Datenbankschemas und der Übersetzung einer domänenspezifischen Anweisung in eine Reihe von herkömmlichen SQL-Anweisungen besteht. Um die zeitlichen Kosten für die Reduktion zu bestimmen, werden Leistungsuntersuchungen durchgeführt. Grundlage für diese Leistungsuntersuchungen sind domänenspezifische Anweisungen, die von einem speziell für diesen Zweck entwickelten Generator erzeugt wurden. Diese generierten domänenspezifischen Anweisungen werden mit den unterschiedlichen Datenbanktreibern auf dem passenden Datenbankschema ausgeführt.
Nicht nur im Bereich der Forschung, sondern auch in der industriellen Anwendung wird die Informationsversorgung - die Bereitstellung der für Arbeitsabläufe benötigten Daten - immer wichtiger. Soll mit mehreren Personen im Team eine Aufgabe gelöst werden, so müssen die dazu benötigten Daten rechtzeitig in der erforderlichen Form zur Verfügung stehen. Die Kommunikation zwischen den Mitarbeitern und die Koordination der anfallenden Tätigkeiten ist mitentscheidend für die Leistung des Teams. Besonders wichtig wird dies, wenn die kooperierenden Personen nicht nur verschiedene Arbeitsplätze haben, beispielsweise verschiedene Bildschirme, sondern diese Arbeitsplätze weit voneinander entfernt sind. So können sich die Arbeitsplätze durchaus in verschiedenen Stockwerken eines Firmengebäudes oder an verschiedenen Orten befinden, jedoch müssen die Mitarbeiter trotzdem eng zusammenarbeiten. Die sich dabei herausbildenden Arbeitsprozesse sind keineswegs statisch, sondern müssen - bedingt durch neue Aufgaben, neue Rahmenbedingungen und neue Erkenntnisse - ständig angepasst werden.
Die Lösung einer Konfigurationsaufgabe innerhalb einer technischen Domäne besteht in der Konstruktion eines komplexen Objektes, das sowohl alle in der Aufgabe gestellten Anforderungen bezüglich seiner Funktionalität erfüllt, als auch den innerhalb der Domäne vorhandenen Restriktionen vollständig genügt. Durch die als bekannt vorausgesetzte Struktur der Anwendungsdomäne wird ein Suchraum aufgespannt, in dem es eine in diesem Sinne korrekte - und wenn möglich besonders gute - Lösung zu finden gilt. Wegen der Grösse des Suchraums wird zu diesem Zweck im allgemeinen ein Verfahren zur Tiefensuche eingesetzt.
Hadoop ist ein beliebtes Framework für verteilte Berechnungen über große
Datenmengen (Big Data) mittels MapReduce. Hadoop zu verwenden ist einfach: Der
Entwickler definiert die Eingabedatenquelle und implementiert die beiden
Methoden Map und Reduce. Über die verteilte Berechnung und Fehlerbehandlung muss
er sich dabei keine Gedanken machen, das erledigt das Hadoop-Framework.
Allerdings kann die Analyse von Big Data sehr lange dauern und da sich die
Eingabedaten jede Sekunde ändern, ist es vielleicht nicht immer die beste
Idee, die vollständige Berechnung jedes Mal aufs Neue auf die kompletten
Eingabedaten anzuwenden. Es wäre geschickter, sich das Ergebnis der
vorherigen Berechnung zu betrachten und nur die Deltas zu analysieren, also
Daten, die seit der letzten Berechnung hinzugefügt oder gelöscht wurden. In dem Gebiet der
selbstwartbaren materialisierten Sichten in relationalen Datenbanksystemen gibt
es bereits mehrere Ansätze, die sich mit der Lösung dieses Problems
beschäftigen. Eine Strategie liest nur die Deltas und inkrementiert oder
dekrementiert die Ergebnisse der vorherigen Berechnung. Allerdings ist diese
Inkrement-Operation sehr teuer, deshalb ist es manchmal besser, das komplette
alte Ergebnis zu lesen und es mit den Deltas der Eingabedaten zu kombinieren.
In dieser Masterarbeit wird ein neues Framework namens Marimba vorgestellt,
welches sich genau um diese Probleme der inkrementellen Berechnung kümmert. Einen
Map\-Re\-duce-Job in Marimba zu schreiben ist genau so einfach wie einen Hadoop-Job.
Allerdings werden hier keine Mapper- und Reducer-Klasse implementiert, sondern
eine Translator- und Serializer-Klasse. Der Translator ähnelt dem Mapper: Er
bestimmt, wie die Eingabedaten gelesen und daraus Zwischenwerte berechnet
werden. Der Serializer erzeugt die Ausgabe des Jobs. Wie diese Ausgabe berechnet
wird, gibt der Benutzer durch Implementierung einiger Methoden an, um Werte zu
aggregieren und invertieren.
Vier MapReduce-Jobs, darunter auch das Paradebeispiel für MapReduce WordCount,
wurden im Marimba-Framework implementiert. Das Entwickeln von inkrementellen
Map-Reduce-Jobs ist mit dem Framework extrem einfach geworden. Außerdem konnte
mit Performanztests gezeigt werden, dass die inkrementelle Berechnung deutlich
schneller ist als eine vollständige Neuberechnung.
Ein weiterer unter den vier implementierten Jobs berechnet
Wortauftrittswahrscheinlichkeiten in geschriebenen Sätzen. Dies kann
beispielsweise für Spracherkennung verwendet werden. Wenn ein Wort in einer
gesprochenen SMS nicht richtig verstanden wurde, hilft der Algorithmus zu raten,
welches Wort am wahrscheinlichsten an einer bestimmten Stelle stehen könnte,
abhängig von den vorherigen Wörtern im Satz. Damit dieser Algorithmus auch
brauchbare Ergebnisse liefert, ist die Menge und die Qualität der Eingabedaten
wichtig. Durchaus brauchbare Ergebnisse wurden durch die Verarbeitung von
Millionen von Twitter-Feeds, die deutsche Twitter-Nutzer in den letzten Monaten
geschrieben haben, erreicht.