Abgabe Effiziente Programme WS08/09

Abgabe Effiziente Programme WS08/09

Sie können ein beliebiges Beispiel wählen.

Wer nichts anderes vorhat, kann die unten vorgegebene Aufgabe für dieses Semester wählen.

Natürlich können Sie, wenn Sie wollen, auch die Implementierung eines anderen Problems optimieren; allerdings hat das einige Nachteile: Sie müssen einen Teil der Zeit Ihrer Präsentation für die Erklärung des Problems und des Algorithmus aufwenden, und die Ergebnisse sind nicht direkt vergleichbar. Der Vorteil (vor allem, wenn Sie einen späteren Termin wählen) ist, dass Sie nicht das wiederholen, was andere gemacht haben, oder ein langsameres Programm präsentieren.

Bereiten Sie eine 15-18-minütige Präsentation vor (am besten machen Sie einen Probelauf, damit sich die Präsentation auch sicher in der Zeit ausgeht). Da Sie dabei nicht soviel Zeit haben wie ich in der Vorlesung, präsentieren Sie die meisten Schritte nur im Überblick (also eventuell nur, wieviel er gebracht hat), und nur ein paar besonders interessante Schritte mit mehr Details. Besonders interessant sind u.a. die Schritte, die unerwartet viel oder wenig bringen.

Vorgegebene Aufgabe: Mastermind

Und zwar geht es um Mastermind mit acht Farben und fünf Stiften.

Das Ausgangsprogramm ist mastermind.c. Es übernimmt die Rolle des Raters in dem Spiel und wählt bei jedem Zug die Kombination so, dass aus der Antwort des Codierers möglichst viel Information gewonnen wird. Nebenbei übernimmt es auch noch die Aufgabe, aus dem Code des Codierers die richtige Antwort zu berechnen.

mastermind wird mit dem zu findenden Code (bestehend aus Ziffern 1-8) als Parameter aufgerufen. Der Code kann bis zu 8 Ziffern lang sein, aber der Aufwand steigt exponentiell mit der Anzahl der Ziffern, und das Programm ist jenseits von 5 Ziffern zu langsam für den praktischen Einsatz. Hier ein Beispiel für Compilation und Aufruf:

[g0:~/mastermind:19457] gcc -O3 -Wall mastermind.c -o mastermind -lm
[g0:~/mastermind:19458] papiex -q -e PAPI_TOT_INS -e PAPI_BR_MSP mastermind 75532
Guess: 12344 Result: 0 black 2 white
Guess: 53165 Result: 0 black 3 white
Guess: 38671 Result: 0 black 2 white
Guess: 65212 Result: 2 black 0 white
Guess: 75253 Result: 2 black 3 white
Guess: 75532 Result: 5 black 0 white

papiex output is in mastermind.papiex.g0.831
24835860         Real usecs
66063385580      Real cycles
24810210         Proc usecs
65995157390      Proc cycles
0                I/O cycles
125610546739     PAPI_TOT_INS
1063386446       PAPI_BR_MSP
Für den Vergleich mit dem Ausgangsprogramm und den Lösungen anderer Teilnehmer verwenden Sie 75532 als Eingabe.

Aufgaben vom [WS02/03 | WS03/04 | WS04/05 | WS05/06 | WS06/07 | WS07/08 ]

Termin/Anmeldung zur Präsentation

Die Termine sind:
13.1.,  20.1., 27.1.   Anmeldung: 11.11.-12.1.
Die Terminvergabe erfolgt, wenn die Termine feststehen, über unser Web-Anmeldesystem. Und zwar müssen Sie dabei folgendermaßen vorgehen: Im WS 2008/2009 ist im Normalfall eine Gruppengröße von drei Personen vorgesehen. Wenn Sie eine andere Gruppengröße bilden wollen, schreiben Sie ab 19.11. an studass@complang.tuwien.ac.at. Beachten Sie allerdings, dass die Anzahl der Termine begrenzt ist, sodass wir nur eine begrenzte Zahl kleinerer Gruppen akzeptieren können.
Anton Ertl
[ICO]NameLast modifiedSizeDescription

[DIR]Parent Directory  -  
[TXT]mastermind.c10-Nov-2008 21:55 6.2K 

Apache/2.2.22 (Debian) DAV/2 mod_fcgid/2.3.6 PHP/5.4.36-0+deb7u3 mod_python/3.3.1 Python/2.7.3 mod_ssl/2.2.22 OpenSSL/1.0.1e mod_perl/2.0.7 Perl/v5.14.2 Server at www.complang.tuwien.ac.at Port 80