Un algoritmo es la descripción de una solución automatizada a un problema . Lo que hace el algoritmo está definido con precisión. La solución podría o no ser la mejor posible, pero usted sabe desde el principio qué tipo de resultado obtendrá. Implementa el algoritmo utilizando un lenguaje de programación para obtener (una parte de) un programa .
Ahora, algunos problemas son difíciles y es posible que no pueda obtener una solución aceptable en un tiempo aceptable. En tales casos, a menudo puede obtener una solución no muy mala mucho más rápido, aplicando algunas opciones arbitrarias (conjeturas informadas): eso es una heurística .
Una heurística sigue siendo una especie de algoritmo, pero que no explorará todos los estados posibles del problema, o comenzará explorando los más probables.
Ejemplos típicos son de juegos. Al escribir un programa de juego de ajedrez, podrías imaginar intentar cada movimiento posible a algún nivel de profundidad y aplicar alguna función de evaluación al tablero. Una heurística excluiría ramas completas que comienzan con movimientos obviamente malos.
En algunos casos, no está buscando la mejor solución, sino cualquier solución que se ajuste a alguna restricción. Una buena heurística ayudaría a encontrar una solución en poco tiempo, pero también puede fallar en encontrarla si las únicas soluciones están en los estados que decidió no intentar.
Desde: http://stackoverflow.com/a/2342759
- ¿Por qué P es desigual a NP en términos simples?
- ¿Hay muchos investigadores de aprendizaje automático que son escépticos sobre el éxito del aprendizaje profundo?
- ¿La mayoría de las computadoras precompiladas admiten procesadores de diferentes marcas?
- ¿Cómo hacen los desarrolladores de hardware hacer un SDK para su producto?
- Con respecto a estas últimas noticias de NSA pirateando nuestras bases de datos e invadiendo incluso redes gubernamentales altamente confidenciales, tengo una fuerte motivación para dedicarme al campo de la Criptografía. ¿Desde dónde y cómo debo comenzar?