options random home http://nobi.ethz.ch/group/stud_proj.html (PC Press Internet CD, 03/1996)

Diplom- & Semesterarbeiten SS96


Gruppe Prof. J. Nievergelt



Algorithmen und Datenstrukturen

Wir arbeiten in den Bereichen algorithmische Geometrie und Heuristik, und es interessieren uns vor allem parallele Algorithmen und deren Implementation. Die meisten Themen können als Diplom- oder als Semesterarbeit behandelt werden.

Branch-and-Cut-Algorithmus [DA,SA]
Parallele Alpha-Beta-Suche [DA,SA]
Schnelle Memoryfunktionen bei Branch and Bound Algorithmen [DA,SA]
Partial reverse search [SA]
Einsatz von Parallelrechnern für erschöpfendes Suchen in grossen Zustandsräumen [DA,SA]
Parallelisierung unregelmässiger Probleme [DA,SA]
Heuristiken für Retrograde Analysis [DA]
Portable 2D/3D-Interface-Definition und -Library [DA]
Heuristischer Algorithmus für die Datenbankkompression [DA]
Computational Geometry & Applications [DA]


Informatikdidaktik

Visualisierungen und Animationen: Didaktik in der Informatik [DAs]
Spielprogramme für den Unterricht [DA]
Karel the Robot - in Java [SA]



Branch-and-Cut-Algorithmus [DA,SA] up

Der Branch-and-Cut-Algorithmus ist eine Erweiterung des Branch-and-Bound für kombinatorische Optimierungsprobleme. Dabei werden mittels Methoden der linearen Programmierung Schranken fuer das Optimum berechnet. In der Arbeit soll das Knapsack- oder ein ähnliches Problem mit Branch-and-Cut gelöst werden. Vorhandene Bibliotheken können verwendet werden. Eventuell wird die Software auf Parallelrechner portiert.

Kontaktperson und Betreuung: Ambros Marzetta marzetta@inf.ethz.ch


Parallele Alpha-Beta-Suche [DA,SA] up

Der in Zweipersonenspielen verwendete Alpha-Beta-Algorithmus soll auf einem Parallelrechner (z.B. GigaBooster) implementiert werden. Als Anwendung sind diverse Spiele denkbar.

Kontaktperson und Betreuung: Ambros Marzetta marzetta@inf.ethz.ch


Schnelle Memoryfunktionen bei Branch and Bound Algorithmen [DA,SA] up

Branch and Bound ist ein häufig eingesetztes Werkzeug zum Lösen von kombinatorischen Optimierungsproblemen. Anhand eines selbstgewählten Beispiels (a. B. NP vollständiges Graphenproblem, ...) sollen die Möglichkeiten von schnellen Memoryfunktionen (Hashing, History, Node-Ordering) ausgelotet werden. Zur Implementation in C steht eine komfortable Umgebung (auch für Parallelrechner) zur Verfügung.

Kontaktperson und Betreuung: Adrian Brüngger bruengg@inf.ethz.ch


Partial reverse search [SA] up

Partial reverse search ist eine mit dem Simplex-Algorithmus verwandte Methode, um ganzzahlige lineare Programme zu lösen. In einer Semesterarbeit sollen dieser Suchalgorithmus effizient auf einem Parallelrechner implementiert und eventuell die Resultate graphisch dargestellt werden.

Kontaktperson und Betreuung: Ambros Marzetta marzetta@inf.ethz.ch


Einsatz von Parallelrechnern für erschöpfendes Suchen in grossen Zustandsräumen [DA,SA] up

Wir arbeiten an verschiedenen rechenintensiven Suchproblemen. Beispiele: kombinatorische Rechnungen wie das Traveling Salesman Problem; Berechnen der optimalen Spielweise für gewisse Teilspiele in Schach und Mühle. Auf einer seriellen Maschine dauert die Suche nach Lösungen Tage oder Wochen. Wir möchten effiziente Suchalgorithmen für Parallelrechner entwickeln, um grössere Probleme lösen zu können.

Kontaktperson und Betreuung: Ambros Marzetta marzetta@inf.ethz.ch


Parallelisierung unregelmässiger Probleme [DA,SA] up

Es gibt viele Probleme, die nicht so einfach parallelisierbar sind wie die Multiplikation zweier Matrizen: zum Beispiel Einpersonenspiele (Schiebepuzzle, Rubikwürfel,...), Knapsackproblem, Färben von Graphen, Traveling Salesman, Zweipersonenspiele usw. Es geht darum, derartige Probleme auf den Parallelrechnern Music, Paragon oder GigaBooster zu implementieren, den Erfolg der Parallelisierung zu messen und Gemeinsamkeiten bzw. Unterschiede zwischen den Algorithmen festzustellen.

Kontaktperson und Betreuung: Ambros Marzetta marzetta@inf.ethz.ch


Heuristiken für Retrograde Analysis [DA] up

Erschöpfendes Rückwärts-Suchen (Exhaustive retrogarde analysis) hat sich für die Berechnung von Zustandsräumen mit bis zu 10G Zuständen bewährt (vgl. z.Bsp. Thompson, Stiller, Gasser), grössere Räume liegen aber zur Zeit jenseits des Machbaren. Mit Expertenwissen (Heuristiken) wollen wir Teile des Zustandsraumes reduzieren (bezüglich Speicher + Rechenaufwand), wobei dabei Fehler in Kauf genommen werden müssen. Für Bauernendspiele haben wir eine Reduktion des Speichers und der Laufzeit um einen Faktor 30 bei einer Fehlerrate von 2.5% erreicht.

Ziel der Arbeit ist, diese Versuche auf weitere Schachendspiele auszudehnen, und dabei einen Satz an allgemein verwendbaren Endspielheuristiken zu implementieren.

Kontaktperson und Betreuung: Christoph Wirth wirthc@inf.ethz.ch


Portable 2D/3D-Interface-Definition und -Library [DA] up

Für die verschiedenen Anwendungen in unserer Gruppe verwenden wir die unterschiedlichsten Plattformen - Unixrechner mit X, Motif, Macintoshs und PCs unter Windows.

Ziel der Arbeit ist, eine system-unabhängige Library zu entwerfen, die einen Basissatz an Funktionen im 2D/3D anbietet. In einem zweiten Schritt soll diese Library auf den erwähnten Systemen implementiert werden.

Kontaktpersonen und Betreuung: Matthias Müller muellerm@inf.ethz.ch, Christoph Wirth wirthc@inf.ethz.ch


Heuristischer Algorithmus für die Datenbankkompression [DA] up

Unsere erschöpfenden Datenbankberechnungen erzeugen grosse Datenmengen. Um mit diesen arbeiten zu können, ist eine Kompression notwendig. Bekannte Kompressionsmethoden wie Run-length oder Lempel-Ziv Kodierung arbeiten ohne a priori Wissen über die Daten. Erfolgversprechender scheint ein Ansatz, bei dem das problemspezifische Wissen, d.h. Wissen über den betrachteten Zustandsraum, explizit verwendet wird.
Ziel dieser Diplomarbeit: Implementierung eines allgemeinen Programmmoduls, welches vom bestehenden Datenbankberechnungspaket verwendet werden kann, sowie Leistungsmessungen.

Kontaktperson und Betreuung: Thomas Lincke lincke@inf.ethz.ch


Computational Geometry & Applications [DA] up

Partitioning of graphs (e.g. finite element meshes, triangulations, and unstructured meshes for aircraft, jet engine, and space shuttle modeling) is used for optimal load balancing and minimizing interprocessor communication costs in parallel implementation. The goal of the "Diplomarbeit" is to make a comparison of several existing methods (public domain software) by applying them to the Boeing-Harwell, NASA and other test data libraries. Implementation and/or improvements of known heuristics (spectral graph partitioning, greedy algorithm, etc.) are further possibilities.

Kontaktpersonen und Betreuung: Nora Sleumer sleumer@inf.ethz.ch, E. von Stürler (CSCS) sturler@scsc.ethz.ch


Visualisierungen und Animationen: Didaktik in der Informatik [DAs] up

Im Gebiet der Informatikdidaktik werden in der Regel Visualisierungen und Animationen zu grundlegenden Themen aus dem Bereich "Algorithmen und Datenstrukturen" hergestellt. Das Spektrum solcher interaktiver Unterrichtssoftware ist sehr breit. Es sind Anwendungen aus dem Umfeld der Geometrie, der Spieltheorie, der Graphentheorie, dynamischer Datenstrukturen, Rechnerarchitekturen usw. denkbar.

Kontaktperson und Betreuung: W. Hartmann hartmann@inf.ethz.ch


Spielprogramme für den Unterricht [DA] up

Wie funktionieren Spielprogramme? Dies soll eine Unterrichtssoftware an einem Beispiel ("Awari") illustrieren. Der Anwender kann beispielsweise die Berwertungsfunktionen ändern und somit beurteilen oder die Baumsuche anhand einer Animation nachvollziehen.
Die Entwicklung der Software gliedert sich in zwei Teile: Einerseits soll ein allgemein verwendbares "Grundgerüst" für beliebige (2 Personen-) Spiele entwickelt werden. Dieser Teil basiert auf dem vorhandenen "Simple Game Board". Darauf aufbauend erfolgt die Implementierung des (Awari-) Spiels.
Entwicklungsumgebung ist die Programmiersprache "Java" auf dem Macintosh.

Kontaktperson und Betreuung: Fabian Mäser maeser@inf.ethz.ch, Silvia Ackermann ackermann@inf.ethz.ch


Karel the Robot - in JAVA [SA] up

Karel the Robot ist eine Lernumgebung zur Einführung ins algorithmische Problemlösen mittels strukturierter Programmiersprachen. Karel ist in einer einfachen, PASCAL-ähnlichen Programmiersprache geschrieben. Es beinhaltet einen einfachen "graphischen" Interpreter.

Ziel der Semesterarbeit ist es, "Karel the Robot" auf Java umzuschreiben.

Kontaktpersonen und Betreuung: W. Hartmann hartmann@inf.ethz.ch, Silvia Ackermann ackermann@inf.ethz.ch


[Department | Gruppe ]
ETH Zürich: Department of Computer Science
Institute of Theoretical Computer Science
Comments to ackermann@inf.ethz.ch
February 26, 1996