4.6 Listas de decisión, tablas de decisión, árboles de decisión,   En esta sección se perfilan brevemente tres herramientas simples para codificar procedimientos de decisión. Estas herramientas son las listas de decisión, las tablas de decisión y los árboles de decisión. El objetivo de todos ellos es proveer de apoyo operacional eficaz a las tareas de decisión. Cualquiera de ellos introduce una estructura específica en el proceso de decisión y permite la algoritmización de los procedimientos de decisión. Aunque las herramientas son relativamente simples, permiten tomar decisiones jerárquicamente, a varios niveles, y pueden usarse para codificar procedimientos de apoyo a la decisión bastante complejos.

Listas de decisión

  Las listas de decisión son conceptualmente una de las herramientas más simples para codificar el proceso de apoyo de decisiones. Una lista de decisión está compuesta de una sucesión de pares (condición binaria, acción). Su uso consiste en verificar secuencialmente los artículos de la lista, y cada vez que se satisface la condición, se ejecuta la acción apropiada; entonces se examina el siguiente par.

Desde el punto de vista lógico, la parte condicional es sólo una proposición lógica, fórmula atómica, y así es evaluada como verdadera (T) o falsa (F). Su definición normalmente se formula como una pregunta acerca del estado, posición, etc., de algún dispositivo, artículo u objeto. Dependiendo de la respuesta, la acción asignada se ejecuta o no.

Puede haber dos organizaciones básicas de listas de decisión. La primera es simplemente lineal; en esta organización las condiciones se examinan consecutivamente, cada vez que la condición se evalúa como verdadera se ejecuta la acción apropiada; entonces se evalúa la próxima condición, etc. Así, en una organización lineal cada condición se evalúa una vez y toda la lista se examina a lo largo desatendiendo si cualquier acción (y cual) se ha ejecutado. Un esquema gráfico de esta lista se presenta a continuación.
 



Una lista de decisión lineal

Después de entrar en la lista, se evalúa la primera condición. Si es verdad (T), se ejecuta la primera acción. A continuación se evalúa la siguiente condición, desatendiendo los resultados y el valor de la condición, etc. Después de finalizar la lista, el proceso examinador pueden repetirse (en un lazo cerrado) o puede terminarse. La iniciación de la entrada a una lista de decisión puede ser resultado de la ejecución de algún procedimiento de orden superior o de la satisfacción de algunas condiciones de entrada. Las acciones pueden representar operaciones reales en el sistema supervisado, decisiones, o sólo ciertas conclusiones para ser inferidas.

Otra posibilidad de organización de una lista de decisión consiste en una estructura jerárquica. El principio es que la condición mas restrictiva (la más fuerte, la más importante) se evalúa primero, y si es verdad, se ejecuta la acción apropiada; la lista se abandonada y, posiblemente, vuelve a interpretarse desde el principio. Si la primera condición es falsa, se evalúan las siguientes condiciones secuencialmente hasta encontrar la primera verdadera. Entonces se ejecuta la acción apropiada y la lista se abandona. Este tipo de organización se presenta esquemáticamente a continuación.
 



Una lista de decisión jerárquica.

Las aplicaciones principales de listas de decisión lineales tienen lugar en situaciones donde las actividades condicionales igualmente importantes serán realizadas secuencialmente, y quizás en un ciclo cerrado; esto incluye rutinas que verifican algunas condiciones externas, la especificación de sistemas reactivos simples, etc., Por otro lado, las listas de decisión jerárquicas se aplican principalmente para codificar acciones condicionadas según algunas prioridades, un acción de prioridad superior siempre debe ejecutarse antes que una acción que tenga prioridad más baja, siempre que se satisfagan sus condiciones.

Arboles de decisión

  Una forma útil de representación de conocimiento para la toma de decisiones consiste en la estructuración del conocimiento mediante el uso de diferentes representaciones de tipo árbol. Puede considerarse que un árbol de decisión es una extensión de concepto de lista de decisión.

Las representaciones en arboles son estructuras que despliegan de forma intuitiva alguna decisión o procedimiento de clasificación, son leíbles, fáciles de usar y aceptados generalmente. La raíz del árbol es el nodo de entrada, y por debajo de cualquier nodo hay algunas conexiones de bifurcación. La selección de una conexión se lleva a cabo a partir de una declaración condicional asignada al nodo. La evaluación de esta condición (verdadera o falsa en el caso de árboles binarios, o un valor pre-especificado en el caso de árboles más complejos) determina la selección de la conexión. El árbol se cruza de arriba abajo, y la decisión definitiva u objeto clasificado se encuentra en las hojas.

La forma básica de árbol de decisión es un árbol de decisión binario. En este árbol cualquier nodo (aparte de los nodos hoja) tiene asignada una condición binaria equivalente a una fórmula proposicional. Debajo de cualquier nodo hay normalmente dos ramas, uno correspondiente a que la condición asignada sea verdadera (V) y la otra que corresponde al caso de que la condición sea falsa (F). A continuación se presenta un esquema gráfico de este árbol.
 



Arbol de decisión binario simple.

Un árbol de decisión puede tener nodos que no sólo correspondan a una bifurcación binaria. Por ejemplo, a un nodo puede asignarse una pregunta acerca del valor de cierto atributo, y puede haber tantas conexiones que salen de este nodo como posibles valores del atributo. Por razones prácticas, el número de posibles ramas se limita normalmente a pocas. También pueden organizarse árboles de decisión de una manera jerárquica, en que el nodo de la hoja de un árbol de decisión del nivel superior sea el nodo de la raíz en un árbol de decisión del nivel inferior.

En ciertos casos un árbol de decisión puede tomar la forma de grafo de decisión, cuando se enlazan ciertas ramas para evitar especificar durante muchas veces las mismas preguntas en situaciones iguales o similares. Es importante, sin embargo, que un árbol de decisión siempre se cruce de arriba abajo. Aun cuando tome la forma de grafo, no puede introducirse ningún ciclo.

Tablas de decisión

  Otra idea similar es la de tabla de decisión. Una tabla de decisión es una tabla que visualiza secuencias de condiciones que deben cumplirse para ejecutar alguna acción. Las secuencias de condiciones se visualizan de forma leíble, verticalmente, como columnas de la tabla de decisión, o horizontalmente, como filas de la tabla.

Una forma clásica de tabla de decisión es la vertical donde la condición_i especifica las condiciones a ser examinadas, y la acción_i define la acción a ser ejecutada. Los valores v_ij pueden ser + si la condición debe cumplirse para ejecutar la acción, - si la condición no puede cumplirse (si se cumple, entonces la acción no puede ejecutarse), y * (o vacio) qué significa que la acción es independiente de la condición. Los valores de w_ij son + si la acción debe ser ejecutada, con tal de que la sucesión vertical que define las condiciones sea satisfecha, o - (o el espacio vacío) si es necesario no realizar la acción. A continuación se presenta una tabla de decisión genérica.

condition_1
v_11
v_12
v_1n
condition_2
v_21
v_22
v_2n
condition_k
v_k1
v_k2
v_kn
action_1
w_11
w_12
w_1n
action_2
w_21
w_22
w_2n
action_m
w_m1
w_m2
w_mn
La evaluación de la tabla procede como sigue: se cruzan de arriba abajo las columnas de valores que especifican requisitos previos de acción, y se verifican las sucesiones de condiciones verdaderas y falsas. Si la forma coincide, se ejecutan las aciones especificados debajo, y se analiza la siguiente columna de condiciones. En condiciones normales, las condiciones pueden evaluarse una vez para procesar toda la tabla, y entonces sólo las sucesiones condicionales se emparejan con la forma actual de condiciones verdaderas y falsas.

La ventaja principal de una tabla como la anterior consiste en su interpretación simple, intuitiva. Además, el procedimiento de evaluación puede acelerarse debido a la evaluación singular de condiciones durante cada ciclo. También pueden organizarse tablas de forma jerárquica, cierta acción puede consistir en analizar una tabla más específica, de un orden inferior (un acción similar a la instrucción "go to" en algunos lenguajes de programación). Una de las principales desventajas consiste en la posibilidad de definir las condiciones previas de acción sólo mediante valores binarios, dado que en algunos casos es más conveniente el uso de valores de atributos. A continuación se presenta una tabla ligeramente extendida, la tabla llamada de Objecto-Atributo-Valor (tabla OAV, OAT).

attrib_1
attrib_2
attrib_k
action_1
action_2
action_m
v_11
v_12
v_1k
w_11
w_12
w_1m
v_21
v_22
v_2k
w_21
w_22
w_2m
v_n1
v_n2
v_nk
w_n1
w_n2
w_nk
La tabla OAV es muy similar a las tablas de bases de datos relacionales y, de hecho, es una BDR con interpretación específica de ciertas columnas. El esquema básico es el siguiente.

En la tabla anterior, las filas especifican bajo qué valores de atributos deben ejecutarse ciertas acciones. Como v_ij y w_ij pueden tomar muchos valores diferentes (no sólo verdadero/falso, o irrelevante, como en el caso anterior), el enfoque es más general que la tabla clásica anterior. En el caso de acciones, los valor específicos pueden indicar si la acción será aplicada o no, pero también pueden especificar algún parámetro de la acción, asociado a alguna columna. La interpretación (y ejecución) de esta tabla es directa: las filas se examinan sucesivamente, y se determinan los valores en curso de los atributos consecutivamente; si coinciden con la forma especificada en la fila examinada (la especificación dada por la fila examinada es más general que la especificación en curso), se ejecutan las acciones especificadas en la parte derecha de la tabla, y luego se examinan las siguientes filas. Por supuesto, también es posible la organización jerárquica de tablas.