Algoritmo no determinista

En ciencias de la computación, un algoritmo no determinista es un algoritmo que con la misma entrada ofrece muchos posibles resultados, y por tanto no ofrece una solución única.Sin embargo, los algoritmos no deterministas emplean modelos de computación tales como la Máquina de Turing probabilística, que no son deterministas.Se considera entonces que los algoritmos no deterministas son un caso especial.El algunas ocasiones, el hecho anterior puede producirse en el sentido inverso de manera que el comportamiento de un algoritmo varie pase a encontrarse en un lugar diferente En este caso, deben existir una serie de factores que permitan que dicho algoritmo llegue a convertirse en uno no determinista.A continuación se expondrán las causas más importantes:
Un algoritmo determinista que utiliza f(n) pasos siempre acaba en n pasos y se obtiene la misma solución. Un algoritmo no determinista que tiene f(n) niveles no debe devolver el mismo resultado en cada una de sus ejecuciones.