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.


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.


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 .


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.


Eu nunca ouvi falar deles até agora. Obrigado pela dica!
— A.Sh
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.