Konkursy programowania naukowego

15

Regularnie biorę udział w tak zwanych „konkursach programistycznych”, w których rozwiązujesz trudne problemy algorytmiczne za pomocą własnego kodu i umiejętności rozwiązywania problemów w ograniczonym czasie. Aby zapoznać się z przykładowymi przykładami tego, jak mogą one wyglądać, wyszukaj konkursy takie jak np. Google Code Jam lub ACM-ICPC.

(Jeśli wiesz, jakie są konkursy programistyczne, możesz pominąć następujący akapit)

W tych konkursach możesz rywalizować indywidualnie lub w zespołach, na stronie fizycznej lub w Internecie, a celem jest rozwiązanie jak największej liczby problemów przed zakończeniem konkursu. Każdy problem wiąże się z pewnymi ograniczeniami, które musi spełnić twoje rozwiązanie, takimi jak czas działania, wykorzystana pamięć itp. Trudność problemu może wahać się od „oczywistych sposobów rozwiązania” do „wymagających dużej wiedzy lub dużej pomysłowości do złamania”. Głównym celem jest oczywiście dobra zabawa, ale sukces może w niektórych przypadkach prowadzić do nagród pieniężnych, honoru, a nawet wywiadu z rekruterami z najlepszych firm, takich jak Google.

(Jeśli pominąłeś powyższy akapit, przestań go pomijać, bo oto moje pytanie)

Dzięki konkursom programistycznym byłem w stanie rozwinąć prawdziwe zainteresowanie algorytmiką, ogólnie informatyką i ogólnym poczuciem znaczenia, jeśli chodzi o kodowanie i rozwijanie moich umiejętności rozwiązywania problemów. Chciałbym to zrobić również w informatyce naukowej.

Pytanie: Czy istnieją jakieś konkurencje w tym samym stylu co czysto algorytmiczne, ale z naciskiem na analizę numeryczną, optymalizację i tak dalej?

Próbowałem Googlinga, ale na pierwszy rzut oka nie mogłem znaleźć…

Dodatek: Mam propozycję sprawdzenia projektu Euler, ale tak naprawdę nie tego szukałem. To, czego chcę, to bardziej arena do ćwiczenia bardziej „brudnych” liczb, takich jak kreatywność ze schematami rozwiązań dla pde, rozwiązywanie problemów optymalizacji numerycznej i tak dalej. Dla porównania, Kaggle to strona, na której możesz ćwiczyć eksplorację danych, uczenie maszynowe itp. W różnych regularnie organizowanych konkursach. Chcę czegoś takiego, ale do wdrażania i kreatywności dzięki schematom numerycznym i tym podobnym.

Popiół
źródło
1
Spójrz na Project Euler: https://projecteuler.net/ . Są to problemy matematyczne o silnym składniku obliczeniowym.
GoHokies,
@ GoHokies Dzięki za sugestię, ale do tej pory byłem tam od dobrych trzech lat (ponad 100 problemów rozwiązanych). Ta strona jest trochę bardziej „czysta” / kombinatoryczna w matematyce niż to, czego chcę. To, czego szukam, to bardziej arena do ćwiczenia bardziej „brudnych” rzeczy, takich jak rozwiązywanie liczbowe pde lub stosowanie metod / algorytmów optymalizacyjnych. Tak naprawdę nie robisz tego w konkursach programistycznych, ani nie robisz tego na Project Euler lub podobnych stronach. Na przykład Kaggle jest witryną dla konkursów eksploracji danych, chcę coś takiego dla konkretnych liczb.
A.Sh

Odpowiedzi:

12

Nie znam żadnych aktualnych konkursów, ale zdecydowanie możesz rzucić okiem na 100-cyfrowe wyzwanie SIAM. Jest to zestaw 10 problemów, dla których konkurs wymagał 10 poprawnych cyfr na problem. Wszystkie problemy są typu „jeśli zrobisz to na ślepo, dostaniesz tylko kilka cyfr” (chyba że skorzystałeś z arytmetyki wieloprecyzyjnej, w niektórych przypadkach wymagającej ogromnej ilości cyfr). Zobacz tutaj stronę Wikipedii zawierającą tylko wyzwania i 10-cyfrowe rozwiązania

Książka „ The SIAM 100-Digit Challenge ” omawia wszystkie dziesięć problemów i zapewnia różne podejścia do uzyskania poprawności 10 lub więcej cyfr. Serdecznie polecam. Ale fajnie jest spróbować najpierw bez podglądania, a następnie przeczytać o wszystkich zgrabnych algorytmach numerycznych, które istnieją w celu rozwiązania tych problemów.

GertVdE
źródło
Przynajmniej tego właśnie problemu szukam. Rzucę okiem na odniesienia w artykule Wiki.
A.Sh
Tak, to była świetna kolekcja problemów. Całkowicie podobało mi się myślenie o nich, kiedy wyszli!
Wolfgang Bangerth,
3

Jedną alternatywą byłyby najlepsze konkursy w dziedzinie kodowania danych. Nie pasuje do twojego opisu, ale bardzo często możesz spotkać się z konkursami, które są kombinacją algorytmów - rachunku kombinatorycznego - rachunku numerycznego - uczenia maszynowego. Miałem ich na oku.

Link do strony głównej konkursów z zakresu nauki o danych znajduje się tutaj .

Aurelian Tutuianu
źródło