Wissenschaftliche Programmierwettbewerbe


15

Ich nehme regelmäßig an sogenannten "Programmierwettbewerben" teil, bei denen Sie schwierige algorithmische Probleme mit Ihrem eigenen Code und Problemlösungsfähigkeiten in einem begrenzten Zeitraum lösen. Für Referenzbeispiele, wie diese aussehen könnten, suchen Sie nach Wettbewerben wie z. B. Google Code Jam oder ACM-ICPC.

(Wenn Sie wissen, was Programmierwettbewerbe sind, können Sie den folgenden Absatz überspringen.)

Bei diesen Wettbewerben können Sie entweder einzeln oder in Teams an einem physischen Ort oder online antreten. Ziel ist es, so viele Probleme wie möglich zu lösen, bevor der Wettbewerb beendet ist. Jedes Problem ist mit bestimmten Einschränkungen verbunden, die Ihre Lösung erfüllen muss, z. B. Laufzeit, belegter Speicherplatz usw. Die Schwierigkeit des Problems kann von "offensichtlichen Lösungsansätzen" bis zu "hohen Anforderungen an das Wissen oder hohem Einfallsreichtum beim Knacken" reichen. Das Hauptziel ist natürlich, Spaß zu haben, aber Erfolg kann in einigen Fällen zu Geldpreisen, Ehre und vielleicht sogar zu einem Interview mit Personalvermittlern erstklassiger Unternehmen wie Google führen.

(Wenn Sie den obigen Absatz übersprungen haben, hören Sie auf zu überspringen, denn hier kommt meine Frage)

Durch Programmierwettbewerbe konnte ich ein echtes Interesse für Algorithmen, Informatik im Allgemeinen und ein allgemeines Verständnis für das Kodieren und Entwickeln meiner Fähigkeiten zur Problemlösung entwickeln. Das möchte ich auch im wissenschaftlichen Rechnen tun.

Frage: Gibt es Wettbewerbe in der gleichen Art wie die rein algorithmischen, jedoch mit Schwerpunkt auf numerischer Analyse, Optimierung und so weiter?

Ich habe es mit Googeln versucht, konnte aber auf den ersten Blick keine finden ...

Nachtrag: Ich habe den Vorschlag bekommen, Project Euler zu testen, aber das ist nicht wirklich das, wonach ich gesucht habe. Was ich will, ist mehr eine Arena, um die "schmutzigeren" Arten von Zahlen zu üben, wie kreativ zu werden mit Lösungsschemata für PDEs, numerische Optimierungsprobleme zu lösen und so weiter. Zum Vergleich: In Kaggle können Sie Data Mining, maschinelles Lernen usw. in verschiedenen Wettbewerben üben, die regelmäßig stattfinden. Ich möchte so etwas, aber um mit numerischen Schemata und dergleichen kreativ zu werden.


1
Schauen Sie sich Project Euler an: https://projecteuler.net/ . Dies sind mathematische Probleme, die eine starke rechnerische Komponente haben.
GoHokies

@GoHokies Danke für den Vorschlag, aber ich bin seit gut drei Jahren dort (über 100 Probleme auch gelöst). Diese Seite ist ein bisschen "reiner" / kombinatorischer in der Mathematik als das, was ich will. Was ich suche, ist eher eine Arena, um die "schmutzigeren" Dinge zu üben, wie das numerische Lösen von PDEs oder das Anwenden von Optimierungsmethoden / -algorithmen. Das machen Sie nicht wirklich bei Programmierwettbewerben oder auf Project Euler oder ähnlichen Websites. Zum Beispiel ist Kaggle eine Seite für Data Mining-Wettbewerbe, ich möchte so etwas für konkrete Zahlen.
A.Sh

Antworten:


12

Ich kenne keine aktuellen Wettbewerbe, aber Sie können auf jeden Fall einen Blick auf die SIAM 100-stellige Herausforderung werfen. Es ist ein Satz von 10 Problemen, für die der Wettbewerb 10 korrekte Stellen pro Problem erforderte. Alle Probleme sind vom Typ "Wenn Sie es blind machen, erhalten Sie nur ein paar Ziffern" (es sei denn, Sie haben auf Multipräzisionsarithmetik mit in einigen Fällen sehr vielen benötigten Ziffern zurückgegriffen). Die Wikipedia-Seite mit den Herausforderungen und den 10-stelligen Lösungen finden Sie hier

Das Buch " The SIAM 100-Digit Challenge " behandelt alle zehn Probleme und bietet verschiedene Ansätze, um 10 oder mehr Ziffern richtig zu machen. Ich kann es nur empfehlen. Aber es macht Spaß, es zuerst zu versuchen, ohne einen Blick darauf zu werfen, und dann alle nützlichen numerischen Algorithmen zu lesen, die es gibt, um diese Probleme zu lösen.


Zumindest ist dies genau die Art von Problemen, nach denen ich suche. Ich schaue mir auch die Referenzen im Wiki-Artikel an.
A.Sh

Ja, das war eine großartige Sammlung von Problemen. Ich habe es sehr genossen, an sie zu denken, als sie herauskamen!
Wolfgang Bangerth

3

Eine Alternative wären Top-Codierer-Data-Science-Wettbewerbe. Es passt nicht zu Ihrer Beschreibung, aber Sie können sehr oft auf Wettbewerbe stoßen, die eine Kombination aus Algorithmen - kombinatorische - numerische Berechnung - maschinelles Lernen sind. Ich würde ein Auge auf diese haben.

Ein Link zur Homepage für Data Science-Wettbewerbe ist hier .


2

Haben Sie die von GECCO (Genetic and Evolutionary Computation Conference) organisierten Wettbewerbe gesehen? http://gecco-2016.sigevo.org/index.html/HomePage#&panel1-1

Es gibt verschiedene Wettbewerbe für die Konferenz 2016 auf der Seite: http://gecco-2016.sigevo.org/index.html/Competitions

Einige der Wettbewerbe können versucht werden, obwohl Sie nicht die Absicht haben, an der Konferenz teilzunehmen.


Ich habe bis jetzt noch nie von ihnen gehört. Danke für den Tipp!
A.Sh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.