¿Podemos diseñar un algoritmo de aprendizaje automático para resolver la programación competitiva?

¡Potencialmente!

Para resolver la programación competitiva, necesitaríamos sistemas que puedan:

  1. Analiza, comprende y razona sobre el lenguaje natural.
  2. Utilice los ejemplos de entrada-salida proporcionados para restringir su espacio de búsqueda / servir como comprobaciones de generalización.
  3. Escriba código sintácticamente y semánticamente correcto (!) En un lenguaje de programación legible por humanos que sea coherente con el texto y los ejemplos de E / S.

¡Todas las partes de este problema son increíblemente difíciles, pero se está progresando (lentamente)!

En particular, el aprendizaje profundo está ayudando a avanzar mucho en la escritura del código (Aprendiendo a escribir programas, complemento descarado: Aprendizaje del programa neuronal bajo E / S ruidosa), sin embargo, todavía hay muchos avances que deben hacerse para comprender el texto y usarlo para restringir nuestra búsqueda a través del espacio de programas. Es un área emocionante y tiene un gran potencial (OpenAI lo incluyó en sus proyectos especiales en algún momento).

La tarea de escribir un programa, competitivo o no, es esencialmente un esfuerzo creativo cuando se divide en pedazos. Como resultado, siempre habrá múltiples formas de resolver un problema dado.

Suponiendo que los resultados que busca se filtran según la métrica de eficiencia o velocidad, necesitaría una red neuronal equipada con algoritmos evolutivos similares a los que caracterizan el cerebro humano.

Y ni siquiera he mencionado los sofisticados algoritmos de análisis y procesamiento del lenguaje natural que necesitaría para comprender correctamente el problema en cuestión, y la capacitación que necesitará para dar a la red neuronal para escribir código sintácticamente limpio y correcto.

Es un problema interesante pero complicado.

Hola mi nombre es piyush mishra.

He investigado mucho en este campo, y que yo sepa, ya se ha desarrollado una IA (inteligencia artificial) que se llama “Wave net”. Puede aprender muchos detalles al respecto en wikipedia.

Está desarrollado por un nuevo tipo de IA que se conoce con el nombre de “redes neuronales”. Funciona de manera similar a como lo hace nuestro cerebro. Si competimos una red neuronal con otra, obtenemos resultados sorprendentes en los que una red neuronal enseña a la otra y la hace aprender. Puede leer un poco más sobre esto haciendo una investigación en “google GO”. Como se usó la misma tecnología para vencer al campeón mundial de un antiguo juego de China: “GO”. Era la primera vez que se usaba una IA para aprender a mejorar e improvisar y, finalmente, ganar el juego.

Puede echar un vistazo a esta tecnología y a algunas acciones en vivo en este enlace:

rishiswethan / Competitivo-programación-Preguntas-Solucionador-

Esta es mi IA que puede resolver preguntas de programación competitivas con una precisión bastante buena. El único inconveniente es que necesita una buena cantidad de datos que consisten en entradas y salidas. También he incluido un ejemplo de un problema de hackerrank resuelto con una precisión del 99,9%.