Concursos de Programação Científica

15

Eu concordo regularmente nos chamados "Concursos de programação", em que você resolve problemas algorítmicos difíceis com seu próprio código e habilidades para resolver problemas durante um período de tempo limitado. Para obter exemplos de referência de como isso pode ser, pesquise competições como, por exemplo, Google Code Jam ou ACM-ICPC.

(Se você sabe o que são concursos de programação, pode pular o parágrafo a seguir)

Nesses concursos, você pode competir individualmente ou em equipes, em um site físico ou online, e o objetivo é resolver o maior número possível de problemas antes que o concurso termine. Cada problema está associado a certas restrições que sua solução deve atender, como tempo de execução, memória utilizada etc. A dificuldade do problema pode variar de "óbvio como resolver" a "exigir grande conhecimento ou engenhosidade pesada para quebrar". Obviamente, o principal objetivo é se divertir, mas o sucesso pode, em alguns casos, levar a prêmios em dinheiro, honra e, talvez, até uma entrevista com recrutadores de empresas de primeira linha como o Google.

(Se você pulou o parágrafo acima, pare de pular, porque aqui vem a minha pergunta)

Através de concursos de programação, pude desenvolver um interesse genuíno por algoritmos, ciência da computação em geral e um sentido geral de significado quando se trata de codificar e desenvolver minhas habilidades de resolução de problemas. Eu gostaria de fazer isso também na computação científica.

Pergunta: Existem competições na mesma linha que as do tipo puramente algorítmico, mas com foco na análise numérica, otimização etc.

Eu tentei pesquisar no Google, mas não consegui encontrar nenhum à primeira vista…

Adendo: recebi a sugestão de verificar o Projeto Euler, mas não era exatamente isso que eu estava procurando. O que eu quero é mais uma arena para praticar os tipos de números mais "sujos", como ser criativo com esquemas de solução para pde's, resolver problemas de otimização numérica etc. Apenas para comparação, o Kaggle é um site onde você pode praticar mineração de dados, aprendizado de máquina etc. em vários concursos realizados regularmente. Eu quero algo assim, mas para implementar e ser criativo com esquemas numéricos e afins.

Cinza
fonte
11
Dê uma olhada no Project Euler: https://projecteuler.net/ . Estes são problemas matemáticos que têm um forte componente computacional.
GoHokies 07/04
@GoHokies Obrigado pela sugestão, mas eu sou membro há três anos até agora (mais de 100 problemas resolvidos também). Esse site é um pouco mais "puro" / combinatório em matemática do que o que eu quero. O que estou procurando é mais uma arena para praticar coisas mais "sujas", como resolver numericamente os pde ou aplicar métodos / algoritmos de otimização. Você realmente não faz isso em concursos de programação, nem no Project Euler ou em sites similares. Por exemplo, o Kaggle é um site para concursos de mineração de dados. Quero algo assim para números numéricos concretos.
A.Sh

Respostas:

12

Não conheço nenhum concurso atual, mas você pode definitivamente dar uma olhada no desafio de 100 dígitos do SIAM. É um conjunto de 10 problemas para os quais o concurso exigiu 10 dígitos corretos por problema. Todos os problemas são do tipo "se você fizer isso às cegas, terá apenas alguns dígitos" (a menos que você tenha recorrido à aritmética de precisão múltipla com, em alguns casos, uma quantidade enorme de dígitos necessários). Veja aqui a página da Wikipedia com apenas os desafios e as soluções de 10 dígitos

O livro " The SIAM 100-Digit Challenge " discute todos os dez problemas e fornece abordagens diferentes para obter 10 ou mais dígitos corretos. Eu recomendo vivamente. Mas é divertido tentar primeiro sem espreitar e depois ler sobre todos os algoritmos numéricos que existem para resolver esses problemas.

GertVdE
fonte
Este é exatamente o tipo de problemas que estou procurando, pelo menos. Também darei uma olhada nas referências no artigo da Wiki.
A.Sh
Sim, essa foi uma grande coleção de problemas. Eu gostei muito de pensar neles quando eles saíram!
Wolfgang Bangerth
3

Uma alternativa seria as principais competições de ciência de dados dos codificadores. Não se encaixa na sua descrição, mas é possível encontrar com frequência concursos que são uma combinação de algoritmos - cálculo combinatório - numérico - aprendizado de máquina. Eu ficaria de olho neles.

Um link para a página inicial de competições de ciência de dados está aqui .

Aurelian Tutuianu
fonte
2

Você já viu as competições organizadas pela GECCO (Conferência de Computação Genética e Evolutiva)? http://gecco-2016.sigevo.org/index.html/HomePage#&panel1-1

Existem várias competições diferentes para a conferência de 2016 na página: http://gecco-2016.sigevo.org/index.html/Competições

Algumas das competições podem ser realizadas, mesmo que você não tenha intenção de participar da conferência.

Lisístrata
fonte
Eu nunca ouvi falar deles até agora. Obrigado pela dica!
A.Sh