Concursos de programación científica

15

Regularmente compito en los llamados "Concursos de programación", donde resuelves problemas algorítmicos difíciles con tu propio código y habilidades de resolución de problemas durante un período de tiempo limitado. Para obtener ejemplos referenciales de cómo se verían, busque competencias como, por ejemplo, Google Code Jam o ACM-ICPC.

(Si sabe qué son los concursos de programación, puede omitir el siguiente párrafo)

En estos concursos, puede competir individualmente o en equipo, en un sitio físico o en línea, y el objetivo es resolver tantos problemas como sea posible antes de que termine el concurso. Cada problema está asociado con ciertas restricciones que su solución debe cumplir, como el tiempo de ejecución, la memoria utilizada, etc. La dificultad del problema puede variar desde "obvio cómo resolver" hasta "exigir un gran conocimiento o un gran ingenio para resolver". El objetivo principal es, por supuesto, divertirse, pero el éxito en algunos casos puede conducir a premios en efectivo, honor y quizás incluso una entrevista con reclutadores de empresas de primer nivel como Google.

(Si omitió el párrafo anterior, deje de omitir, porque aquí viene mi pregunta)

A través de concursos de programación, he podido desarrollar un interés genuino por los algoritmos, la informática en general y un sentido general de significado cuando se trata de codificar y desarrollar mis habilidades para resolver problemas. Me gustaría hacerlo también en informática científica.

Pregunta: ¿Existe alguna competencia en el mismo sentido que el tipo puramente algorítmico, pero con un enfoque en análisis numérico, optimización, etc.?

Intenté buscar en Google, pero no pude encontrar ninguno a primera vista ...

Anexo: Recibí la sugerencia de revisar el Proyecto Euler, pero eso no es realmente lo que estaba buscando. Lo que quiero es más un campo para practicar el tipo de números más "sucios", como ser creativo con esquemas de solución para pde, resolver problemas de optimización numérica, etc. Solo para comparar, Kaggle es un sitio donde puedes practicar minería de datos, aprendizaje automático, etc. en varios concursos que se realizan regularmente. Quiero algo así, pero para implementar y ser creativo con esquemas numéricos y similares.

Ceniza
fuente
1
Echa un vistazo al Proyecto Euler: https://projecteuler.net/ . Estos son problemas matemáticos que tienen un fuerte componente computacional.
GoHokies
@GoHokies Gracias por la sugerencia, pero he sido miembro allí durante unos buenos tres años hasta ahora (más de 100 problemas resueltos también). Ese sitio es un poco más "puro" / combinatorio en matemáticas que lo que quiero. Lo que estoy buscando es más arena para practicar el tipo de cosas más "sucias", como resolver numéricamente los pde o aplicar métodos / algoritmos de optimización. Realmente no haces eso en concursos de programación, ni lo haces en Project Euler o sitios similares. Por ejemplo, Kaggle es un sitio para concursos de minería de datos, quiero algo así para números concretos.
A.Sh

Respuestas:

12

No conozco ningún concurso actual, pero definitivamente puedes echar un vistazo al desafío SIAM de 100 dígitos. Es un conjunto de 10 problemas para los cuales el concurso requirió 10 dígitos correctos por problema. Todos los problemas son del tipo "si lo haces a ciegas, solo obtendrás un par de dígitos" (a menos que recurras a la aritmética de precisión múltiple con, en algunos casos, una gran cantidad de dígitos necesarios). Vea aquí la página de Wikipedia con solo los desafíos y las soluciones de 10 dígitos

El libro " El desafío de 100 dígitos de SIAM " analiza los diez problemas y ofrece diferentes enfoques para obtener 10 o más dígitos correctos. Lo recomiendo de todo corazón. Pero es divertido intentar primero sin mirar y luego leer sobre todos los algoritmos numéricos que existen para resolver esos problemas.

GertVdE
fuente
Este es exactamente el tipo de problemas que estoy buscando, al menos. Echaré un vistazo a las referencias en el artículo Wiki también.
A.Sh
Sí, esa fue una gran colección de problemas. ¡Disfruté muchísimo pensando en ellos cuando salieron!
Wolfgang Bangerth
3

Una alternativa serían las competencias de ciencia de datos de primer nivel. No se ajusta a su descripción, pero a menudo puede encontrar concursos que son una combinación de algoritmos: cálculo combinatorio, numérico y aprendizaje automático. Yo estaría pendiente de eso.

Un enlace a la página de inicio para los concursos de ciencia de datos está aquí .

Aurelian Tutuianu
fuente