Cómo inventar nuevos algoritmos

En un sentido personal, creo que un algoritmo no se inventa, se descubre. Si hay un problema hay una solución. Más correctamente puede haber muchas soluciones. Al igual que la física, la química y otras ciencias. El algoritmo no es más que una solución paso a paso a un problema. En casos muy raros, no existe una solución a un problema.
Siento que el “enfoque” es importante para obtener una solución. La única razón por la que no hay una solución a una pregunta es porque nadie ha pensado en un enfoque particular antes. Al igual que la prueba de primitividad AKS aquí.

Respondiendo la pregunta directamente. Puede usar el método más común, la fuerza bruta o el método de prueba y golpe para ver si el algoritmo obtiene la respuesta correcta como la del problema de satisfacción booleana. O puede utilizar algunos enfoques como codicioso, programación dinámica, aleatorización, aproximación, etc. Ver fuente Introducción a los algoritmos | La prensa del MIT. O puede crear un enfoque completamente nuevo que podría no serle útil pero que ayudará a otros a llegar a sus soluciones. Pero la parte más importante es no crear un algoritmo, sino obtener una mejor complejidad, esa es una historia diferente.

Piensa diferente de los demás para crear algo nuevo.

No estoy seguro de haber inventado alguno. Pero la mayoría de las veces me preocupa el problema en cuestión. Entendiéndolo y descubriendo si coincide con algo que lo haya visto antes. Si hay una similitud, entonces si la solución existente se puede modificar para resolver un nuevo problema. Si no, ¿cuál es la diferencia básica entre el nuevo problema y el problema para el cual existe el algoritmo y cómo esta diferencia se manifiesta en el algoritmo? Esto puede llevar a algo en la línea de inventar un nuevo algoritmo.

En esencia, prefiero concentrarme más en el problema en cuestión y comprender cada pequeño detalle sobre el uso de ejemplos, algoritmos existentes y algunas conjeturas informadas.

Si desea un detalle personal sobre cómo un algoritmo proviene simplemente de comprender el problema y dividir su esencia en subproblemas adicionales, puede consultar el documento original sobre la codificación de Huffman. Su intención nunca fue inventar un algoritmo, sino resolver un problema de tarea dado por su profesor. El problema no se había resuelto antes que él, no lo conocía. Me gusta cómo describe todo el problema y su llegada a la solución. Parece bastante natural y nada misterioso. Este es el enlace para lo mismo:

Página en compress.ru

More Interesting

¿Crees que la ciencia (por ejemplo, la física teórica) será asumida por la inteligencia de la computadora, dado el creciente poder de cálculo y búsqueda de patrones?

¿Cómo algún sitio web reduce la velocidad de descarga?

¿Debo hacer Informática o Mbbs después del 12º estándar?

¿Cómo funcionan los diccionarios Hunspell?

¿Cuáles son las áreas más prometedoras en CS? ¿Por qué?

¿Cuáles son las mejores prácticas para probar software matemático y científico?

¿Cómo calculan las CPU / GPU funciones matemáticas especiales como sin, cos y sigmoid?

¿Cuál es la clase más difícil requerida para obtener un título de CS en el MIT?

¿Cómo se comparan las capacidades y trayectorias de aprendizaje automático de Facebook y Google? ¿Por qué esto importa en términos del desempeño futuro de las dos compañías?

Solo hay tantos componentes que puede meter en un chip de computadora. ¿Se ha alcanzado el límite o hay otra forma de hacer una computadora?

Cómo desarrollar suficiente conocimiento de aprendizaje automático para comprender a fondo los trabajos de investigación que se publican en DeepMind

¿Cuánto tiempo antes de que cada uno tenga un Watson en nuestra computadora de la misma manera que todos los dispositivos iOS tienen Siri?

¿Por qué se habilita Superfetch después de un tiempo o después de reiniciar la computadora?

¿Puede una persona aprender Java sin C ++?

¿Resolver una versión restringida de un problema NP-completo en tiempo polinómico implica que todos los problemas NP-completos, cuando se restringen a esa versión, pueden resolverse en tiempo polinomial?