Programación - Que es un algoritmo no determinístico


Básicamente, todos los algoritmos que reciben una entrada y solo tienen una salida de datos son algoritmos determinísticos. En otras palabras, se puede predecir la salida siempre y cuando se conozca la entrada de datos.

Los algoritmos no determinísticos son una clase especial de algoritmos que sirven para resolver problemas complejos cuya respuesta no siempre se conoce o varía con el tiempo o estadios. Estos reciben una entrada y bajo diferentes métodos de tratamiento de información pueden tener salidas diferentes cada vez, asegurando en la mayoría de los casos que las salidas sean correctas o útiles para el resto del proceso o el programa.

Un algoritmo no determinístico se puede construir de varias maneras y puede usar diferentes métodos para la salida de datos.


El ejemplo más común son los algoritmos probabilísticos que se basan en la aleatoriedad y previo estudio del caso. Si se tiene una entrada pero 4 diferentes salidas probables y se sabe que de todas esas salidas las más probables son 1 y 2, se puede construir un programa que genere un número aleatorio entre 1 y 100, cualquier valor menor de 80 llevará al programa a elegir la salida 1 o 2, para el 20% de los casos restantes se elegirá entre las salidas 3 y 4.

Los algoritmos no determinísticos y los probababilísticos se apoyan seguido de arboles de decisiones.

Un árbol de decisiones es un conjunto de posibles salidas y sus ramificaciones(o subsalidas) y cada una tiene una probabilidad de suceder. Cuya probabilidad puede variar con el tiempo dependiendo de la prioridad en un instante dado.

También puede interesarte:
-Curiosidades Geek - WhiteSpace, el lenguaje de programación imposible.
-Sobre la programación y los idiotas.
-Wallpaper sobre Python en Wallbase.

0 Opiniones:

Publicar un comentario en la entrada

Nota: solo los miembros de este blog pueden publicar comentarios.