
La teoría, actuando como un sistema de advertencia temprana, provee una ciencia de lo imposible –lo que no debe ser intentado porque no puede ser realizado–. Sin embargo, una buena teoría debe también proveer líneas directivas para lo posible: ... una guía debe no solo prevenirnos sobre las zonas peligrosas, sino también señalarnos las rutas simples, las rutas difíciles y las rutas extenuantes, por ejemplo. Encontramos que la teoría de la computación hace precisamente esto en niveles muy distintos. En el nivel más burdo, secciona los problemas en tres clases: (i) los problemas imposibles; (ii) los problemas posibles con recursos ilimitados pero imposibles con recursos limitados; y (iii) los problemas posibles con recursos limitados. En el caso de que el recurso sea el tiempo, se conocen comúnmente como los problemas indecidibles, los impracticables y los solucionables. En un nivel más fino la teoría también considera problemas que requieren, por ejemplo, tiempo linealmente proporcional a sus tamaños.... ( Wood 87, p. 53)
Para hacer un estudio teórico es necesario eliminar por abstracción muchos detalles y notas realistas de los sistemas mecánicos. Casi siempre nuestra abstracción es tan ruda que deja dentro de la máquina solamente una representación esquelética de la estructura de la secuencia de sucesos –una suerte de estructura "simbólica" o "informática"–. Pasamos por alto en nuestras abstracciones la composición geométrica o física de las partes mecánicas. Pasamos por alto cuestiones de energía. Incluso desmenuzamos el tiempo en una secuencia de momentos separados y desconectados, e ignoramos totalmente el mismo espacio. ¿Puede una teoría así ser una teoría de alguna "cosa" en absoluto? Increíblemente, sí puede serlo. Al eliminar por abstracción todo aquello que no tiene que ver con las consecuencias lógicas de ciertas clases de relaciones de causa-efecto, podemos concentrar nuestra atención aguda y claramente en unas pocas materias fundamentales. Una vez que hemos captado estas, podemos traer de nuevo al mundo práctico este entendimiento, que no podríamos haber nunca adquirido si hubiéramos permanecido inmersos en detalles y distracciones no esenciales. ( Minsky 67, pp. 2-3)
Existe un contraste curioso entre la idea de una máquina y la
idea de una "teoría". Considérese una "teoría" de
física, por ejemplo la mecánica de Newton. Esta teoría
es supuestamente una generalización sobre algún aspecto del
comportamiento de los objetos en el mundo físico. Si las predicciones
que vienen de la teoría no se confirman, entonces (suponiendo que
el experimento es impecable) la teoría debe ser criticada y modificada,
como le pasó a la teoría de Newton cuando la evidencia de
los fenómenos relativísticos y cuánticos llegó
a ser conclusiva. Después de todo, no hay más que un universo
y no es responsabilidad del físico censurarlo, aunque le gustara
hacerlo. Para las máquinas, la situación se invierte. La
idea abstracta de una máquina, por ejemplo la de sumar, es una especificación
sobre cómo un objeto físico debe funcionar. Si la
máquina que construyo se gasta, la censuro y quizá la arreglo.
Al igual que en física, las partes y los estados del objeto físico
se suponen corresponder a los del concepto abstracto. Pero en contraste
con la situación de la física, criticamos la parte material
del sistema cuando la correspondencia se pierde. (
Minsky
67, pp. 5-6)
La computación discreta consiste en la evaluación de funciones de un conjunto contable a otro, mientras que la computación analógica consiste en la evaluación de funciones de un conjunto incontable a otro....
Una función es simplemente una relación entre los miembros de un conjunto y aquellos de otro. Un algoritmo, por otra parte, es un procedimiento para evaluar una función.... Una función es y un algoritmo hace, o dice cómo hacer. Nótese que la relación entre funciones y algoritmos no es uno-a-uno. Muchos algoritmos diferentes pueden usarse para evaluar la misma función, y ... hay un sentido práctico en el cual algunas funciones no pueden ser evaluadas por ningún algoritmo.... ( Hennie 77, p. 1)
Una función es básicamente un conjunto de pares ordenados. Para ser más preciso, supongamos que X1, ..., Xn y Y son conjuntos específicos y que X denota el producto cartesiano X1 * X2 * ··· * Xn. Una función parcial de X a Y se define entonces como un subconjunto f de X1 * ··· * Xn tal que, por cada escogimiento de x1 en X1, ..., xn en Xn, existe a lo más un elemento y en Y para el cual ( x1, ..., xn, y) pertenece a f. Una función total de X a Y se define como un subconjunto f de X1 * ··· * Xn * Y tal que por cada escogimiento de x1 en X1, ..., xn en Xn hay exactamente un elemento y en Y para el cual ( x1, ..., xn, y) pertenece a f. En la medida que X es el producto de n conjuntos componentes, una función parcial o total de X a Y es comúnmente identificada como una función de n variables. ( Hennie 77, p. 2)
Un conjunto enumerable es aquel cuyos miembros pueden ... arreglarse en una lista única ... de tal manera que cada miembro del conjunto aparezca más tarde o más temprano en la lista....
...............
Podemos hablar de conjuntos enumerados por funciones o también por listas....
................
Decir que un conjunto A es enumerable es decir que existe una función todos cuyos argumentos son enteros positivos y todos cuyos valores son miembros de A, y que cada miembro de A es un valor de esta función....
................
Una función es una asignación de valores a argumentos. El conjunto de todos esos argumentos a los cuales la función asigna valores se llama dominio de la función. El conjunto de todos aquellos valores que la función asigna a sus argumentos se llama el rango de la función....
................
Ahora bien, un conjunto es enumerable si y solo si es el rango de una función de los enteros positivos.... ( Boolos 74, pp. 1-4)
Ciertas funciones no son computables, y ... ciertos conjuntos enumerables no son eficazmente (mecánicamente) enumerables incluso si las limitaciones físicas de tiempo, velocidad y cantidad de material pudieran de algún modo ser superada–. ( Boolos 74, pp. 19)
Una función eficazmente calculable es una noción intuitiva que identifica a aquellas funciones para las cuales existe un algoritmo que puede usarse para computar su valor. Si tal algoritmo existe, entonces podemos –por lo menos en principio– construir una máquina para realizar la tarea (computar el valor de la función). Tal mecanismo computacional debe entenderse como determinístico, en el sentido de que, una vez en operación, todo su futuro está completamente especificado por algún estado instantáneo y una entrada (este requisito elimina a los computadores analógicos o "aleatorios"). ( Davis 58, p. 3)
Un algoritmo especifica una ... manera mecanicista de evaluar una función. Esta evaluación debe llevarse a cabo por alguna suerte de agente computacional, que puede ser humano, mecánico, electrónico, o cualquier otra cosa....
Asociado con cada algoritmo existe un conjunto contable de objetos sobre los cuales el algoritmo opera de conformidad con su diseño, y entre los cuales deben estar incluidos los resultados producidos por el algoritmo..., el dominio del algoritmo en cuestión. Un dominio típico puede ser el conjunto de los números naturales ... o el conjunto de las hileras compuestas de ciertos caracteres alfanuméricos. Al comienzo de cualquier computación uno (o más) de los miembros del dominio es designado como argumento (o argumentos) al cual el algoritmo se aplica.
Un algoritmo por sí mismo consiste de una colección de instrucciones, cada una de las cuales especifica una operación básica que debe llevarse a efecto en uno o más miembros del dominio. A fin de que estas instrucciones se ejecuten apropiadamente, deben presentarse al agente computacional en una forma que pueda interpretar correctamente. Así, cada algoritmo debe estar representado por una descripción en un lenguaje adecuado.... Tanto la secuencia de operaciones para ejecutar como los objetos particulares a los cuales debe aplicarse cada operación deben estar bien definidos. Esta secuencia de operaciones y especificación de objetos debe ser determinada por el algoritmo, de conformidad con ciertas "reglas de operación" asociadas con el algoritmo y el agente computacional....
Las reglas de operación de algunos algoritmos pueden permitir la ejecución de una o más instrucciones en forma repetitiva, quizá hasta el infinito. Así, la computación prescrita por el algoritmo puede no terminar para ciertos argumentos que se escojan. Pero cuando una computación sí termina, ese hecho debe ser perfectamente obvio y el resultado de la computación debe estar bien definido. Aún más, este resultado debe depender solamente de los argumentos particulares a los cuales el algoritmo fue aplicado. En otras palabras, cada algoritmo debe determinar la computación de una función parcial en el dominio que le esté asociado....
En la computación práctica, es el agente computacional el que debe hacer la evaluación efectiva de la función en cuestión, no la persona que prepara el algoritmo. Así, debemos proscribir algoritmos que equivalgan a "consultas en tablas infinitas" en el sentido de que requieran que el programador determine e incluya en el algoritmo los valores de la función deseada para un infinito número de valores argumentales.... Debemos [también] restringir nuestra atención a los algoritmos que consistan en números finitos de instrucciones y por lo tanto sean representables por descripciones finitas, donde por una descripción finita significamos una colección finita de símbolos extraídos de un alfabeto contable.... Así, supondremos que cada uno de los algoritmos con los cuales lidiaremos puede ser descrito por una hilera finita de símbolos de un alfabeto contable. ( Hennie 77, pp. 7-10)
Se acepta de manera general que un algoritmo digno de este nombre debe satisfacer las siguientes condiciones elementales:
2. Hay un agente computacional que lleva a cabo las instrucciones...
3. El agente computacional debe poder guardar, recabar y realizar los pasos de una computación. Este requerimiento es satisfecho tanto por las computadoras como por los seres humanos, puesto que ambos tienen memoria.
4. El agente computacional debe realizar las instrucciones por medio de pasos discretos....
5. El agente computacional debe llevar a cabo las instrucciones determinística o mecánicamente. Esto prohíbe al agente actuar en una forma probabilística, o de alguna manera no determinista. Esencialmente, el escogimiento de la próxima instrucción para ejecutar debe ser determinado sola y unívocamente por los valores iniciales y las instrucciones ejecutadas hasta ahora.... El determinismo implica que el algoritmo puede ser llevado a efecto una y otra vez con los mismos valores de modo que dé siempre el mismo resultado final....
Estas cinco condiciones capturan la esencia de los programas y las computadoras
por vía de los algoritmos y los agentes computacionales. Sin embargo
... hay un número de preguntas que todavía deben ser contestadas
para poder usar esas condiciones como nuestra base para una teoría
de la computación. La primera y quizá más importante
es ¿debe un algoritmo parar o terminar en un número finito
de pasos cada vez que lo alimentamos? Nuestra experiencia nos dice
que debemos contestar esta pregunta con un sonoro sí. Sin embargo
... es esencial para la teoría de la computación permitir
"algoritmos" que no terminan con todos los juegos de argumentos. Llamamos
a estos algoritmos parciales.... (
Wood
87, pp. 56-57)
Mientras que la idea informal de un algoritmo es bastante vieja, las
formulaciones cuidadosas de esta idea son todas relativamente recientes.
No fue sino hasta los años mil novecientos treinta que el trabajo
de Turing, Church y Post proveyó modelos formales satisfactorios
para la noción de computación algorítmica y llevó
a la definición de funciones computables. Estos modelos formales
eran de naturaleza matemática, pero sirvieron para caracterizar
las capacidades de las computaciones "físicas". Entonces, conforme
los computadores digitales y los lenguajes de programación se desarrollaron,
se hizo claro que las computaciones que pueden describirse por los lenguajes
de programación de propósito general son precisamente aquellas
representadas por los modelos anteriores más abstractos. Es esta
relación entre programación y computabilidad lo que hace
a la teoría de la computabilidad de interés directo para
los informáticos.... La equivalencia entre las funciones programables
y las funciones matemáticamente computables se desprende de ciertas
notas comunes a todos los lenguajes de programación de propósito
general.... (Hennie
77, pp. iii-iv)
¿Que significa decir que un proceso es mecánico? ¿Cuándo
es un procedimiento tan completamente especificado que una máquina
lo puede realizar?... ¿Existen procesos que pueden ser descritos
precisamente y sin embargo no pueden realizarse a máquina?...
Cualquier cosa que puede hacerse por computadora puede ser descrita
de manera precisa....
NOTA
2
Cualquier procedimiento que puede ser descrito con precisión
puede ser programado para que lo realice una computadora....
NOTA 3
La primera frase es lo mismo que decir que un programa de computación
puede servir como una descripción precisa del proceso que la máquina
realizará. La verdad de la segunda frase depende de qué queramos
decir por descripción precisa.
(Minsky
67, pp. 103-104)
Un procedimiento eficaz es un procedimiento en que el próximo
paso está siempre claramente determinado. Si un procedimiento puede
llevarse a efecto por una máquina simple, entonces podemos estar
seguros de que la especificación es completa y de que el procedimiento
es "eficaz". Pero también podemos afirmar (aunque no probar) que
cualquier procedimiento que parezca intuitivamente eficaz puede realizarse
mediante una máquina simple. (
Minsky
67, p. 105)
Uno no puede siempre encontrar un equivalente formal simple y completamente
satisfactorio para una noción intuitiva compleja. (
Minsky
67, p. 106)
Podemos comenzar a definir un procedimiento eficaz como un conjunto
de reglas que nos dicen, de momento a momento, cómo proceder. Pero
la interpretación de las reglas puede variar de un agente a otro:
si su inteligencia es pequeña, puede no entender lo que queremos
decir; si por el contrario su inteligencia es muy grande, puede inventar
una nueva interpretación que no pretendíamos. Una formulación
más conveniente sería definir un lenguaje para las reglas
de comportamiento y construir una máquina para interpretar los enunciados
del lenguaje. Curiosamente, ciertos lenguajes y máquinas muy simples
pueden manejar los procedimientos eficaces, con tal de que haya suficiente
memoria disponible. (
Minsky
67, p. 106)
En 1928 se había publicado un pequeño texto de lógica
de Hilbert y Ackermann.... El libro enfatizaba la lógica de primer
orden.... Los autores mostraron cómo las varias partes de las matemáticas
podían ser formalizadas dentro de la lógica de primer orden
y daban un conjunto sencillo de reglas de prueba para hacer las inferencias
lógicas. Hacían notar que toda inferencia que podía
ser realizada de acuerdo con las reglas de prueba era también válida,
en el sentido de que en una estructura matemática en que todas las
premisas son verdaderas, la conclusión es también verdadera....
Un problema levantado por Hilbert y Ackermann en su tratado era el problema
decisorio, el problema de encontrar un algoritmo que determine si una inferencia
propuesta determinada es válida.... Este problema es equivalente
a buscar un algoritmo para determinar si una conclusión particular
puede derivarse de ciertas premisas usando las reglas de prueba Hilbert-
Ackermann. El problema decisorio fue llamado "el principal problema de
la lógica matemática", porque un algoritmo para el problema
decisorio podría, en principio, ser usado para contestar cualquier
pregunta matemática: sería suficiente emplear una formulación
en lógica de primer orden de la rama de las matemáticas pertinente
a la cuestión bajo consideración. La atención de Alan
Turing fue atraída hacia el problema decisorio ... y pronto vio
cómo resolver el problema en la negativa. Esto es, Turing mostró
que no hay algoritmo alguno para resolver el problema decisorio. Las herramientas
que Turing desarrolló para este propósito han resultado ser
absolutamente fundamentales para la informática.
Si una solución positiva al problema decisorio llevaría
a algoritmos para resolver todas las cuestiones matemáticas, entonces
se sigue que si existe incluso un solo problema que no tiene solución
algorítmica, entonces el mismo problema decisorio no puede tener
solución algorítmica. Ahora bien, la noción intuitiva
de algoritmo sirve perfectamente bien cuando lo que necesitamos
verificar es que algún procedimiento propuesto de verdad constituye
una solución positiva a un problema dado. Sin embargo, si permanecemos
en este nivel intuitivo, no podríamos esperar probar que algún
problema no tiene solución algorítmica. Para estar seguros
de que ningún algoritmo funcionará, parece necesario hacer
un reconocimiento de la clase de todos los algoritmos posibles. Esa es
la tarea que se impuso Turing. Comenzó con un ser humano, quien
realizaría los pasos sucesivos requeridos por algún algoritmo;
esto es, Turing propuso considerar el comportamiento de un "computador".
Aquí la palabra computador se refiere a una persona que realiza
una computación; así era como Turing (y todo el mundo) usaba
la palabra en 1935. Turing procedió por una secuencia de simplificaciones,
cada una de las cuales podía verse que no planteaba ninguna diferencia
esencial, para obtener su caracterización de computabilidad. (
Davis
58, pp. 153-154)
La teoría de la computabilidad y la no computabilidad es usualmente
llamada la teoría de las funciones recursivas. Esta materia concierne
la existencia de procedimientos puramente mecánicos para resolver
varios problemas. Aunque la teoría es una rama de las matemáticas
puras, es, por su pertinencia en relación con ciertas cuestiones
filosóficas y la teoría de los computadores digitales, de
interés potencial para los no matemáticos. La existencia
de problemas absolutamente insolubles y el teorema de la incompletabilidad
de Gödel están entre los resultados en teoría de la
computabilidad que tienen significación filosófica. La existencia
de máquinas universales de Turing, otro resultado de la teoría,
confirma la creencia de aquellos que trabajan con computadoras digitales
de que es posible construir un computador digital de propósito general
en el cual se pueda programar (dentro de limitaciones de tiempo y memoria)
cualquier problema que pudiera programarse para cualquier computador digital
determinístico concebible. Este aserto se oye a veces en su forma
reforzada: cualquier cosa que puede hacerse completamente precisa puede
ser programada para una computadora digital de propósito general.
Sin embargo, en esta forma el aserto es falso..... (
Davis
58, p. viii)
La gran importancia del concepto de recursividad general (o computabilidad
de Turing) ... [es que] con este concepto se ha tenido éxito por
primera vez en dar una definición absoluta de una noción
epistemológica importante, a saber sin dependencia de un formalismo
determinado.... (
Gödel
46, p. 84)
La creciente percepción de que una solución al problema
decisorio produciría un procedimiento para solucionar muchos (si
no todos) los problemas matemáticos significó que algunos
matemáticos, especialmente von Neumann, se convencieran de que no
podía haber tal solución; una creencia que llegó a
ser casi una certidumbre cuando Gödel publicó [su famoso artículo
en] 1931. Para fundar esa certidumbre, sin embargo, era esencial poner
límites precisos a "eficazmente calculable". Esto (combinado con
un interés natural por el cálculo mecánico) era lo
que estaba en la atmósfera que Turing respiraba.... Turing mostró
que el cálculo puede descomponerse en la iteración (controlada
por un "programa") de operaciones concretas extremadamente simples; tan
concretas que pueden fácilmente ser descritas en términos
de mecanismos (físicos).... (
Gandy
88, pp. 100-101)
La computabilidad Turing fue una de tres maneras equivalentes de caracterizar
exactamente las funciones para las cuales existen algoritmos que aparecieron
en los años mil novecientos treinta. Los conceptos usados en las
otras dos fueron la definibilidad lambda de Church-Kleene (desarrollada
en la Universidad de Princeton en 1932 y 1933) y la recursividad general
de Herbrand-Gödel (presentada por Gödel en sus conferencias de
1934 en el Instituto de Estudios Avanzados en Princeton). Su equivalencia
la estableció Kleene en 1936....
En general, el problema decisorio para una propiedad es soluble
si existe una prueba mecánica (= una rutina computacional, un procedimiento
eficaz) que, aplicado a cualquier objeto de la suerte apropiada,
eventualmente clasifica ese objeto correctamente como un
caso positivo o negativo de tal propiedad ("eventualmente" significa aquí
"después de un número finito de pasos"). Una prueba positiva
para una propiedad es una prueba mecánica que eventualmente clasifica
como positivos todos y solo sus casos positivos. Una prueba negativa es
aquella que eventualmente clasifica como negativos todos y solo los casos
negativos. Si ambas pruebas, positiva y negativa, para la propiedad existen,
entonces y solo entonces el problema decisorio para tal propiedad es soluble;
siendo así que cualquier objeto apropiado será o bien un
caso positivo o un caso negativo, si uno está equipado con ambas
clases de prueba, puede aplicar ambas al objeto dividiendo el tiempo de
modo que se alternen los pasos de las dos pruebas y así, eventualmente,
descubriremos qué clase de caso es el objeto (conversamente, cualquier
prueba que clasifica eventualmente en forma correcta cualquier objeto o
bien como caso positivo o bien como caso negativo cuenta como una prueba
positiva y negativa). Aquí las propiedades que nos interesan son
validez y satisfabilidad, y los "objetos de la suerte apropiada" son enunciados
en la notación de la lógica de primer orden.... (
Boolos
74, p. 115)
El problema del procedimiento decisorio ... fue propuesto en los años
veinte como el de encontrar un procedimiento algorítmico general
para resolver todas las cuestiones matemáticas, y por ese medio
declarar el concepto de verdad matemática como idéntico al
de prueba o axiomaticidad. Este programa de investigación sufrió
un golpe fatal tan temprano como 1931, cuando Kurt Gödel probó
su célebre teorema sobre la incompletabilidad de la aritmética.
En este contexto, los algoritmos son concebidos como procedimientos
computacionales eficaces para resolver problemas, a saber, conjuntos de
instrucciones que proveen vías mecánicas por medio de las
cuales contestar cualquiera de una clase de preguntas. Tales instrucciones
son concebidas como que no requieren pensamiento "creativo" en su ejecución,
puesto que, en principio, es siempre posible construir una máquina
para llevar a efecto un conjunto de instrucciones o preparar un programa
por medio del cual alguna computadora digital del tamaño adecuado
pueda llevarlas a cabo. (
Davis
58, p. xv)
En el teorema de la incompletitud de Gödel, se asocian números
a los enunciados y los enunciados sobre otros enunciados se traducen a
enunciados sobre números. Se pueden decir cosas como esta: "el enunciado
del sistema S cuyo número es n no puede probarse en
el sistema S", lo cual es un enunciado sobre el número n.
Ahora bien, puede mostrarse que existe un número k tal que
el significado del enunciado cuyo número es k resulta ser
"el enunciado cuyo número es k carece de prueba en el sistema
S". Así pues, hemos obtenido un enunciado verdadero pero
que no puede probarse.... (
Cohen
87, p. 18)
Podemos dar una caracterización matemática de una clase
de objetos como "máquinas Turing". Podemos también caracterizar
matemáticamente una clase de funciones numéricas, las funciones
computadas por las máquinas Turing: son las llamadas funciones
computables, y se propone que se identifican con el concepto intuitivo
de funciones efi- cazmente calculables que en esta forma adquiere una definición
precisa. (
Davis
58, p. 3)
Una función parcialmente computable puede ser pensada como la
que posee un algoritmo que nos permite computar su valor para elementos
de su dominio, pero que nos tendrá computando eternamente si intentamos
obtener un valor funcional para un elemento que no está en su dominio,
sin asegurarnos nunca que no obtendremos un valor. En otras palabras, cuando
es posible una respuesta, el algoritmo la provee; cuando no es posible,
el algoritmo nos mantiene buscando la respuesta en vano por un tiempo infinito....
(
Davis 58,
p. 10)
La situación [de la identificación de calculabilidad eficaz
con computabilidad] es análoga a la de sustituir un concepto vago,
con potente atractivo intuitivo, por un concepto matemático exacto....
En tal caso no tiene sentido, por supuesto, pedir una prueba matemática
de la equivalencia de los dos conceptos; la misma vaguedad del concepto
intuitivo lo impide. Sin embargo, es posible presentar argumentos con poderoso
atractivo intuitivo, que tienden a hacer la identificación sumamente
razonable.
(Davis
58, p. 10)
Diferentes personas hicieron propuestas más o menos al mismo
tiempo (1936), independientemente unas de otras, para identificar el concepto
de función eficazmente calculable con varios conceptos precisos.
En esta conexión vale la pena mencionar la noción de definibilidad
lambda de Church, la noción de recursividad general de
Herbrand-Gödel-Kleene, la noción de computabilidad de Turing...,
la noción de definibilidad-1 de Post.... Se demostró
que todas estas nociones son equivalentes....
(Davis
58, p. 10)
Esto agregó mucha fuerza al punto de vista, que llegó
a conocerse como la Tesis Church-Turing, de que la máquina Turing
(o su equivalente) de hecho define lo que, matemáticamente, entendemos
por un procedimiento algorítmico (o eficaz o recursivo o mecánico)....
(Penrose 89,
p. 49)
NOTA 1
Esta
selección contiene párrafos escogidos de varios autores,
ordenados de manera que su lectura resulte lo más comprensible posible.
Las referencias indican el nombre del autor, año de publicación
de su obra y el número de la(s) página(s) de donde el párrafo
se ha tomado. La referencia completa debe consultarse en la
bibliografía
. Nota del editor.
NOTA 2
Esto
es un teorema, demostrado por Turing. Nota del editor.
NOTA 3
Esto
es una conjetura, llamada Tesis de Church/Turing. Nota del editor.
COMPUTABILIDAD
PROCEDIMIENTO DECISORIO