Vous êtes sur la page 1sur 9

Test de Turing El Test de Turing (o Prueba de Turing) es una prueba propuesta por Alan Turing para demostrar la existencia

a de inteligencia en una mquina. Fue expuesto en 1950 en un artculo (Computing machinery and intelligence) para la revista Mind, y sigue siendo uno de los mejores mtodos para los defensores de la Inteligencia Artificial. Se fundamenta en la hiptesis positivista de que, si una mquina se comporta en todos los aspectos como inteligente, entonces debe ser inteligente.

Procedimiento La prueba consiste en un desafo. Se supone un juez situado en una habitacin, una mquina y un ser humano en otras. El juez debe descubrir cul es el ser humano y cul es la mquina, estndoles a los dos permitido mentir al contestar por escrito las preguntas que el juez les hiciera. La tesis de Turing es que si ambos jugadores eran suficientemente hbiles, el juez no podra distinguir quin era el ser humano y quin la mquina. Todava ninguna mquina puede pasar este examen en una experiencia con mtodo cientfico. En 1990 se inici un concurso, el Premio Loebner, una competicin de carcter anual entre programas de ordenador que sigue el estndar establecido en la prueba de Turing. Un juez humano se enfrenta a dos pantallas de ordenador, una de ellas que se encuentra bajo el control de un ordenador, y la otra bajo el control de un humano. El juez plantea preguntas a las dos pantallas y recibe respuestas. El premio est dotado con 100.000 dlares estadounidenses para el programa que pase el test, y un premio de consolacin para el mejor programa anual. La primera y nica vez que un juez confundi a una mquina con un humano fue en el ao 2010, cuando el robot Suzette, de Bruce Wilcox, super la prueba1 . Pruebas paralelas Existe otra prueba parecida, propuesta por John Searle y popularizada por Roger Penrose: la "sala china", para argumentar que la mquina no ha superado la Prueba de Turing.2 En esencia, es igual en la forma, pero se realiza con personas encerradas en una habitacin y se requiere que estas no conozcan el idioma en que se realiza la conversacin. Para ello se usa un diccionario que permite confeccionar una respuesta a una pregunta dada, sin entender los smbolos. Como consecuencia, se argumenta que por mucho que una persona sea capaz de enviar una cadena de smbolos en chino relacionada con otra cadena recibida, no quiere decir que sepa chino, sino que sabe aplicar un conjunto de reglas que le indican lo que ha de enviar. Falta la semntica en el proceso y por eso es muy cuestionada como inteligencia artificial, puesto que equipara una mquina pensante con una que parece que piensa. Ray Kurzweil predice que el ordenador pasar la prueba de Turing hacia el 2029, basado en el concepto de singularidad tecnolgica.3 Aplicaciones Una de las aplicaciones de la prueba de Turing es el control de spam. Dado el gran volumen de correos electrnicos enviados, el spam es, por lo general, enviado automticamente por una mquina. As la prueba de Turing puede usarse para distinguir si el correo electrnico era enviado por un remitente humano o por una mquina (por ejemplo por la prueba Captcha). Modelos de Computacin/Mquina de Post < Modelos de Computacin Citamos lo indicado en el documento http:\\www.inf.udec.cl/~apolymer/MD/MD3.pdf

2.5-Mquina de Post "Una mquina de Post M:= (I, START, S) sobre el alfabeto B:= {0, 1} es un diagrama de flujo de una variable computada x B?, donde B:= {0, 1,]} y ] es un smbolo auxiliar que slo se usa internamente a la mquina." "Un diagrama de flujo (I, S) es, en primera aproximacin, un grafo dirigido, sobre un conjunto finito I de nodos. Cada nodo i I corresponde a una instruccin." "Cada instruccin en el diagrama de flujo tiene una de las dos siguientes formas: Es una instruccin de testeo TEST o es una instrucciones de asignacin ASIGN. Pero estas instrucciones no son simples nodos ligados por las aristas del grafo dirigido; porque las de TEST tienen una sola puerta de entrada pero tres puertas de salida, cada una marcada por uno de

los tres signos de B; en cambio las de ASIGN tienen al revs tres diferentes puertas de entrada, marcadas por los signos de B, y una sola de salida. Exactamente uno de todos estos nodos es distinguido como el de inicio START I." "Ms all de este conjunto de nodos-instrucciones I, la mquina-diagrama de flujo slo consta de un conjunto finito S de aristas dirigidas que unen, cada una, una puerta de salida de un nodo i I, con una puerta de entrada de otro nodo i0 I que bien puede ser el mismo. Con la especificacin de estos nodos I, la distincin del nodo START, y las especificaciones de las aristas S, la mquina propiamente tal (I, START, S), queda determinada; y por lo tanto, tambin el procesamiento que ejecuta, de la variable x cuyo valor inicial obtiene del ambiente de la mquina." "Entendemos que este procesamiento siempre se inicia en la instruccin START, y que x en ese momento asume un valor de input B, especificado desde el exterior de la mquina. En iteraciones sucesivas, este procesamiento se dara de acuerdo al diagrama de flujo, cambiando, mientras sea posible, el actual nodo instruccin i y el actual valor de x. Lo primero, porque en cada iteracin el proceso fluir a travs de una de las aristas que salen del nodo actual siempre que existan tales y por lo tanto va a dar a un nuevo nodo; lo segundo, porque este fluir podr involucrar modificaciones del x actual:" "Si el nodo antiguo i es de asignacin y por lo tanto tiene slo una puerta de salidaentonces el procesamiento escoger, arbitrariamente, una de las aristas que salen de ese nodo, independientemente del valor actual de x. Si no hay una tal arista, entonces el procesamiento se detendr en el nodo actual. Si, en cambio el nodo actual es de testeo, entonces la seleccin de la puerta de salida, depender de la cabeza h(x) B de x, es decir, del primer digito de x: el proceso seleccionar la puerta marcada por ese smbolo de A. Note que esta seleccin no puede funcionar si el valor actual de x es el de la palabra vaca _; que entonces se dara una detencin en el nodo de testeo en cuestin. As como tambin se dara una detencin, si de la puerta seleccionada no sale ninguna arista; puesto que, como en el caso de los otros tipos de nodos, la seleccin de la arista por la que fluir el proceso, es arbitraria siempre que haya al menos una. Pero si una arista de salida es seleccionada, entonces entendemos que este procesamiento cortar la cabeza h(x) de x, que por lo tanto la palabra que es transmitida por la arista seleccionada corresponder al cuerpo restante t(x) B, que comienza con el segundo digito de x porque x = h(x) t(x)." "Si el nuevo nodo i, al que va a dar la arista seleccionada en la iteracin, es de testeo, entonces el nuevo valor que asumir la variable computada, es el que fluye por la arista la informacin que llega; que, si x es el valor antiguo, podemos denotar por x0:= t(x), entendiendo que si el nodo antiguo era de asignacin, entonces t(x):= x. En cambio, si el nuevo nodo i0 es de asignacin, entonces, para determinar el nuevo valor, habr que yuxtaponerle a la cola al t(x) que lleg fluyendo, el signo z0 B que marca la puerta de entrada en que incide la arista de flujo seleccionada. Por lo tanto, el nuevo valor x0 de la variable computada se determinar de acuerdo a x0:= t(x) z0." "Se puede formalizar esta nocin de mquina de Post como listado. Para ello, al estilo de otros lenguajes de programacin, se podra listar estas instrucciones en cualquier orden, indicando cada vez el tipo de la instruccin, as como todas las aristas que inciden en l, y las diferentes puertas de entrada y salida que para ello usan. Para caracterizar esas aristas, habra que indicar de qu instruccin y qu puerta de salida provienen, y a cul instruccin y cul puerta derivan, respectivamente. Pero, debido a estas ltimas complicaciones, resulta ms fcil formalizar estas mquinas como listados de aristas:" "Es decir, especificar ms all de los nodos el diagrama de flujo como un conjunto finito S que expresa las aristas, descritas como pares ordenados de pares ordenados ((i, z), (z0, i0)), tales que el par ordenado (i, i0) II corresponda al de las instrucciones (antigua, nueva) que la arista en cuestin relaciona, y que el par ordenado (z, z0) B B indique la condicin de salida en i y el efecto de entrada de la arista en i0, respectivamente. Entendemos que B:= B [{_}, y que si el nodo i es de asignacin, tendremos z:= _ es decir, la salida es incondicional, independiente del valor actual de x. En cambio, si es de testeo, entonces z corresponder a la marca de la puerta de salida que usa la arista en cuestin. Simtricamente entendemos que si la instruccin i0 es de testeo, entonces tendremos z0:= _ es decir, la entrada no tiene efecto directo sobre el valor de x. En cambio, si es de asignacin, entonces z 0 corresponder a la marca de la puerta de llegada que usa la arista en cuestin." "Los procesamientos que una tal sistema de cuartetos S, puede ejecutar o que permite a partir de un input x B*, son las secuencias (i0, x0), (i1, x1), (i2, x2), . . . N B , tales que (START, x) = (i0, x0) y 8n N\{0}, 9(z, z0) B B y w B ?, tal que zw = xn-1, xn = wz0 y ((in-1, z), (z0, in)) S." "Note por lo tanto que las mquinas de Post efectivamente son casos particulares de Sistemas Computantes. Para este caso particular el conjunto C de los potenciales estados internos del Sistema, es C:= I B, es decir el de los pares (Nodo, palabra). Que la relacin de transicin G _ C C del Sistema est especificada por las aristas del diagrama de flujo de la mquina, es decir, por los pares de pares ((i, z), (z0, i0)) que arroja el diagrama de flujo. Que dado un estado interno (j, x) C, el prximo estado slo puede ser un (j0, x0) C, tal que exista una arista ((i, z), (z0, i0)) con i = j, i0 = j0, y que exista una palabra w B _, tal que zw = x y wz0 = x0."

Basta considerar el nodo de quiebre i I y agregar una arista trivial ((i, _), (_, i)). Ejemplo "Sea I:= {ST, T1, T2, A0, A1, A]} el conjunto de nodos de esta mquina. START:= ST. Y entendamos que el conjunto de aristas S est dado por la siguiente tabla de pares de pares:" ST # T1 T1 T1 T2 T2 T2 0 1 # 0 1 # # 0 1 A# T1 T1 T2 A0 T2 T1 A1

"Vemos entonces que esta mquina consta de 2 nodos de testeo, T1, T2, de 4 nodos de asignacin ST, A0, A1, A], y de las 8 aristas listadas. Es determinstica, pues de cada puerta de salida sale a lo ms una arista. Puesto que slo para las puertas de salida de A0 y A1 no hay aristas, el procesamiento slo puede detenerse en uno de estos dos nodos." "De hecho, dado un input x B, el procesamiento se de detendr en A0, ssi _(x) = 0; y en caso contrario, se detendr en A1. Eso, porque el procesamiento va sencillamente eliminando los 0 que lee, as como los pares de 1; hasta llegar al] que inicialmente se yuxtapuso a x para marcar su final. Es decir que antes de la asignacin final tendremos x = _; y que slo la correspondiente asignacin final otorga a x el valor de la suma binaria del input." Las Torres de Hani es un rompecabezas o juego matemtico inventado en 1883 por el matemtico francs douard Lucas.1 Este solitario se trata de un juego de ocho discos de radio creciente que se apilan insertndose en una de las tres estacas de un tablero. El objetivo del juego es crear la pila en otra de las estacas siguiendo unas ciertas reglas. El problema es muy conocido en la ciencia de la computacin y aparece en muchos libros de texto como introduccin a la teora de algoritmos. Descripcin El juego, en su forma ms tradicional, consiste en tres varillas verticales. En una de las varillas se apila un nmero indeterminado de discos (elaborados de madera) que determinar la complejidad de la solucin, por regla general se consideran ocho discos. Los discos se apilan sobre una varilla en tamao decreciente. No hay dos discos iguales, y todos ellos estn apilados de mayor a menor radio en una de las varillas, quedando las otras dos varillas vacantes. El juego consiste en pasar todos los discos de la varilla ocupada (es decir la que posee la torre) a una de las otras varillas vacantes. Para realizar este objetivo, es necesario seguir tres simples reglas: 1. 2. 3. Slo se puede mover un disco cada vez. Un disco de mayor tamao no puede descansar sobre uno ms pequeo que l mismo. Slo puedes desplazar el disco que se encuentre arriba en cada varilla.

Existen diversas formas de realizar la solucin final, todas ellas siguiendo estrategias diversas.

Mquina de Mealy

El diagrama de estados de una mquina de Mealy simple En la teora de la computacin, una Mquina de Mealy es un tipo de mquina de estados finitos que genera una salida basndose en su estado actual y una entrada. Esto significa que el Diagrama de estados incluir ambas seales de entrada y salida para cada lnea de transicin. En contraste, la salida de una mquina de Moore de estados finitos (el otro tipo) depende solo del estado actual de la mquina, dado que las transiciones no tienen entrada asociada. Sin embargo, para cada Mquina de Mealy hay una mquina de Moore equivalente cuyos estados son la unin de los estados de la mquina de Mealy y el Producto cartesiano de los estados de la mquina de Mealy y el alfabeto de entrada. Diseo Las mquinas de Mealy suministran un modelo matemtico rudimentario para las mquinas de cifrado. Considerando el alfabeto de entrada y salida del alfabeto Latino, por ejemplo, entonces una mquina de Mealy puede ser diseada para darle una cadena de letras (una secuencia de entradas), esto puede procesarlo en un string cifrado (una secuencia de salidas). Sin embargo, aunque se podra probablemente usar un modelo de Mealy para describir una Mquina Enigma, el diagrama de estados sera demasiado complejo para suministrar medios factibles de disear mquinas de cifrado complejas. Lgica de predicados Lenguaje Formal de la Lgica de Predicados El lenguaje es el instrumento que se usa para la comunicacin entre humanos. El lenguaje est formado por frases, entre ellas podemos distinguir: frases imperativas, frases interrogativas y frases declarativas. La definicin de lgica, disciplina que estudia mtodos de formalizacin del conocimiento humano "de los mtodos de formalizacin de frases declarativas".(Jose Emilio Labra Gayo, Daniel Fernndez Lanvin, E.U.I.T.I.O.) La lgica se clasifica: Lgica proposicional o lgica de enunciados: Se parte de un elemento simple, las frases declarativas simples, las cuales tienen significado ellas mismas o la unin entre ellas,forman una frase. Esto inicia una unidad de comunicacin de conocimientos, las cuales se les denomina proposiciones, y toman el valor verdadero o falso.

Lgica de predicados: Estudia las frases declarativas,teniendo en cuenta la estructura interna de las proposiciones. Los objetos y las relaciones entre los objetos sern los elementos bsicos. Podemos distinguir: - "Qu se afirma: relacin - De quin se afirma: objeto" (Jose Emilio Labra Gayo, Daniel Fernndez Lanvin, E.U.I.T.I.O.) Lgica de Predicados (LP de Orden Cero). Con la lgica de predicados intentamos conseguir sistemas de demostracin automtica de teoremas. Partimos de elementos bsicos como las frases declarativas simples o proposiciones que son aquellos elementos de una frase que constituyen por s solos una unidad de comunicacin de conocimientos y pueden ser considerados Verdaderos y Falsos.La lgica de predicados estudia las frases declarativas con mayor grado de detalle, considerando la estructura interna de las proposiciones. Se tomarn como elemento bsico los objetos y las relaciones entre dichos objetos. Se distingue: "Qu se afirma (predicado o relacin) De quin se afirma (objeto)" (Jose Emilio Labra Gayo, Daniel Fernndez Lanvin, E.U.I.T.I.O.)

Definimos a continuacin las reglas sintcticas para construir frmulas:

Definicin 1:El alfabeto de la lgica de predicados estar formado por los siguientes conjuntos simblicos:

Conjunto de Smbolos de Variables(VAR): Es un conjunto de las ltimas letras del alfabeto en minsculas. Se utilizan subndices, por ejemplo: Conjunto de smbolos de Constantes (CONS): Este conjunto lo forman las primeras letras del alfabeto en minsculas,tambin utilizaremos subndices: Conjunto de letras de funcin(FUNC): Representaremos a este conjunto por las letras f,g,h,L. Incluimos subndices para poder diferenciar las funciones: Conjunto de letras de Predicado (PRED): Se representan mediante letras maysculas,

Smbolos de conectivas: = Negacin = Conectiva "o" = Conectiva "y" = implicacin = Doble implicacin o equivalencia

Cuantificadores: =existencial =Universal

Signos de puntuacin: Parntesis ( ) y coma.

Definicin 2: Trmino es una cadena de smbolos que representan a objetos y dependen de las siguientes reglas: "Toda variable o constante individual es un trmino." (Jose Emilio Labra Gayo, Daniel Fernndez Lanvin, E.U.I.T.I.O.)

"Si t1,t2,L,tn son trminos y fn es una funcin de aridad n entonces fn(t1,t2,L,tn) es un trmino" (Jose Emilio Labra Gayo, Daniel Fernndez Lanvin, E.U.I.T.I.O.)

Todos los trminos posibles se generan aplicando nicamente las dos reglas anteriores Cualquier trmino lo generamos a partir de las dos reglas dichas anteriormente.

Definicin 3: Un tomo es una cadena de smbolos de la forma: aridad n y sin trminos

donde Pn es un predicado de

Definicin 4: Definimos el conjunto de frmulas bien formadas (fbf): 1. "Todo tomo (P,Q,R,S,...) es una frmula bien formada. (Se denominar frmula atmica)." 2. "Si es una frmula bien formada, A tambin lo es. 3. Si y son frmulas bien formadas, tambin lo son (A B), (A B) y (A B). 4. No hay ms frmulas." (Jose Emilio Labra Gayo, Daniel Fernndez Lanvin, E.U.I.T.I.O.)

Podemos hacer razonamientos con la deduccin natural. Ejemplo: Tenemos la frase Todos los estudiantes de informtica son listos (Jose Emilio Labra Gayo, Daniel Fernndez Lanvin, E.U.I.T.I.O.), lo podemos formalizar de la siguiente manera usando predicados: I(x)=x estudia informtica y L(x)=x es listo como: "Existen estructuras deductivas que la lgica de proposiciones no puede formalizar de forma adecuada, por ejemplo, la deduccin: "Todos los informticos son listos, Pedro es informtico, luego Pedro es listo" (Jose Emilio Labra Gayo, Daniel Fernndez Lanvin, E.U.I.T.I.O.)

En lgica de predicados de orden cero lo formalizamos con tres proposiciones p,q y r independientes y la frmula resultante pqr no sera vlida. Lgica de primer orden En lgica de predicados de primer orden "se permite la cuantificacin de variables" (Jose Emilio Labra Gayo, Daniel Fernndez Lanvin, E.U.I.T.I.O.). As de esta manera, se formaliza el razonamiento: En la lgica de predicados de primer orden (x (Informtico(x)Listo(x)) Informtico (Pedro)) Listo (Pedro) La lgica de predicados de primer orden es la ms bsica, es una extensin de lgica de predicados de orden cero, slo que admite los cuantificadores ( y ), y reglas de deduccin natural. Las variables en lgica de primer orden pertenecen a un dominio, tienen una asignacin. Pueden existir constantes y las frmulas en esta lgica se pueden unificar de formas nuevas que antes no tenamos o podamos. La LP1 es suficiente para formalizar la teora de conjuntos, el problema es que, a diferencia de LP0, la lgica de primer orden no es predecible. No existe un procedimiento de decisin que nos permita decidir si para una frmula,esta es vlida o no.Church y Turing lo demostradon de forma independiente. Ejemplo sobre lgica de predicados

Dada la siguiente expresin

-La variable x est ligada ya que aparece en el mbito del cuantificador universal y adems la tiene como variable de cuantificacin. -Se dice que la variable y es una variable libre ya que aunque est en el mbito del cuantificador universal,esta no la tiene como variable de cuantificacin. Sistema deductivo para lgica de primer orden En lgica de preidcados de orden cero,existen una seies de expresiones que son siempre verdaderas. A partir de estas expresiones podremos llegar a construir un sistema deductivo con el que podremos llegar a expresiones correctas. Ejemplo:La siguiente expresin es vlida:

|=p(X)->(Q(X)->P(x))

Esta expresin es una instancia de una tautologa de logica de predicados.En general,con cualquier instanacia de tautologa podremos obtener una frmula de universalmente. A partir del esquema de axiomas de HILBERT obtenemos:

(p(X)->(Q(Y)->R(z)))->(P(x)->Q(y))->(P(X)->R(z)))

De todas maneras para hacer un razonamineto de primer orden estos esquemas de axiomas no son suficientes. 2.3 CUANTIFICADORES. Las expresiones: Todo hombre es mortal. Algunos hombres son sabios. Pueden traducirse respectivamente como: Para todo x, si x es hombre entonces x es mortal. Existe un x, tal que x es hombre y x es sabio. Otros giros utilizados para la expresin "para todo x", son: Todo x Cualquiera x Cada x que se simbolizan por "x" y se llama cuantificador universal. Otros giros utilizados para la expresin "Existe un x" son: Hay x Existe x, tal que Algn x Algunos x Que se simbolizan por "x" y se llama cuantificador existencial.

Existen tres formas de convertir una funcin proposicional Px en una proposicin a saber: Haciendo la sustitucin de las variables por un trmino especfico. Anteponiendo la expresin "para todo x" o cuantificador universal. Anteponiendo la expresin "existe almenos un x" o cuantificador existencial.

El enunciado "existe almenos un x tal que Px" se representa como: (x)(Px)

El enunciado "para todo x, Px" se representa como: (xPx

Al anteponer a la funcin proposicional Px un cuantificador, se dice que la variable x ha pasado a ser una variable ligada. Una proposicin de la forma (xPxes verdadera cuando todas la sustituciones de la variable x por trminos especficos del conjunto de referencia convierten a Px en enunciado verdadero. Un enunciado de la forma (x)(Px) es verdadero cuando al menos un caso de sustitucin de la variable x por un trmino especfico del conjunto de referencia, convierte a Px en un enunciado verdadero. Las proposiciones universales pueden aparecer negadas, como en el enunciado: "No todos son mecnicos". En este caso la simbolizacin ser (xMxdonde Mx es la funcin proposicional "x es mecnico" que toma valores dentro del conjunto de referencia formado por los hombres. Las palabras "ningn", "ninguno", "nada", "nadie" corresponden tambin a enunciados universales con negaciones, pero de una manera distinta a las proposiciones anteriores. La proposicin "ninguno es mecnico" no equivale a la proposicin "no todos son mecnicos" sino a la expresin "para todo x, x no es mecnico" que se simboliza ( x)( M x. Las proposiciones anteriores pueden estar negadas, como por ejemplo "no es cierto que hay fantasmas" la cual se simboliza como ( x)(Fx) donde Fx simboliza la expresin "x es un fantasma". Anlogamente a lo que ocurre con los cuantificadores universales, las proposiciones existenciales puede tener negaciones internas como "algo no es mortal" la cual se simboliza como ( x) ( Mx) donde Mx simboliza la expresin "x es mortal". El Correcto y Completo Desarrollo de un Algoritmo. Los algoritmos y su historia. Los algoritmos no son slo una curiosidad acadmica u objeto de estudio de una ciencia. Son la base de todo proceso metdico, formal o informal, y los encontramos por todas partes con mltiples nombres: receta, proceso, mtodo, tcnica, procedimiento, frmula, rutina, conjuro. Un diccionario comn [1] [2] [3] describir como algoritmo al conjunto de smbolos y procedimientos usados en la realizacin de un clculo. Descripciones similares se encuentran incluso en los diccionarios especializados [4] [5] El desarrollo de la informtica y computacin han hecho que el trmino adquiera cierto nivel de cotidianidad, sin que eso implique la prdida de la rigurosidad requerida para dar a una serie de pasos el apelativo de algoritmo. Para muchos ser una palabra ms, producto de nuestra era tecnolgica, pero su origen se remonta muy atrs en el tiempo. Uno de los ms grandes matemticos rabes del siglo IX de nuestra era, Abu Abd Allah Muhhamad ibn Musa al-Khwarizmi (literalmente: Padre de Abdullah, Mohamed, hijo de Moiss, nativo de Khwarizm hoy Khiwa) con su obra Kitab al-jabr walmuqabala (Reglas de Ecuaciones y Restauracin), ayud a difundir las matemticas rabes por el mundo occidental a tal grado que del ttulo de su obra se ha desprendido el trmino lgebra (al-jabr). Con el paso del tiempo y por defectos de pronunciacin, su nombre se difundi simplemente como Al-Juarismi y de ste los trminos guarismo y algorismo (usados para referirse a cualquier mtodo de cmputo usando la notacin arbiga de numeracin). El trmino algorismo tambin fue corrompido en su pronunciacin hasta derivar uno ms difundido en latn como algoritmus, empleado desde el siglo XVII por los matemticos para referirse a procedimientos de clculo. Finalmente, la palabra que conocemos no apareci en un diccionario sino hasta la edicin de 1957 del Websters New World Dictionary. Las matemticas son, en cierto sentido, una coleccin de algoritmos. La aparicin de las computadoras, propiciada por la necesidad y propsito de realizar clculos y conteos, oblig a mucha gente a hablar de mtodos y procedimientos para describir los programas que para ellas se elaboraban; programas que eran en s la representacin de un procedimiento matemtico, de un algoritmo. La escritura de programas es entonces la elaboracin o implementacin de algoritmos, aunque claro no podemos afirmar que hacer matemticas sea slo hacer programas. Al final, programar bien es hacer matemticas y, como todo buen matemtico, todo buen programador debe contar con un buen mtodo (formal o intuitivo) que le permita asegurarse de que sus programas son correctos. Aqu es donde empieza a verse la importancia de la definicin y concepcin del trmino algoritmo. Podemos ver que tanto las matemticas como la computacin se originan del acto de contar. Sin embargo, las primeras se encargan de descubrir las verdades acerca de las estructuras abstractas; la segunda, de estudiar el conjunto de acciones que obedecen a reglas formales estructuradas en el tiempo. A este respecto los trabajos de Alan M. Turing y Emil Post han sido decisivos y con profundas implicaciones en ambas disciplinas, mucho ms all del propsito del presente artculo para proceder a describirlas. Deberemos conformarnos por el

momento nicamente con saber que sus modelos (la Mquina de Turing y la Mquina de Post) son las formalizaciones aceptadas de lo que debe considerarse como un procedimiento efectivo, el cual devuelve una respuesta o indica la falta de sta a un problema. El definir a un algoritmo como una serie de pasos ordenados no nos dice ms de lo que ya hemos hablado. No nos dice si debe o no haber una respuesta como resultado de su aplicacin. No nos dice tampoco cunto tiempo debe tomar llegar al resultado. Los modelos de Turing y Post contemplan estas dos ltimas consideraciones: la declaracin de contar o no con una respuesta y la implicacin del tiempo invertido en el proceso, que es proporcional a las operaciones (pasos) a realizar con ste. Un ltimo punto igual de importante es apreciar que tanto el modelo de Post como el de Turing parten de un conjunto de reglas muy precisas del cual se construye el procedimiento a seguir. As, y con base en la definicin de estos modelos, ofrecemos la siguiente definicin de lo que es un algoritmo: Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base en un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solucin o indicar la falta de sta a un problema en un tiempo determinado. Caractersticas de un Algoritmo De la definicin proporcionada y los cuestionamientos previos a sta, podemos ver que un algoritmo, para ser catalogado como tal, debe exhibir ciertas propiedades: Ser definido.- Sin ambigedad, cada paso del algoritmo debe indicar la accin a realizar sin criterios de interpretacin. Ser finito.- Un nmero especfico y numerable de pasos debe componer al algoritmo, el cual deber finalizar al completarlos. Tener cero o ms entradas.- Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende. Tener una o ms salidas.- Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como nicamente verlos en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programacin que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo. Efectividad.- El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada ms ni nada menos que aquello que se requiera para y en su ejecucin. El desarrollo de algoritmos. Aunque paradjicamente no exista un algoritmo para el desarrollo de algoritmos, es posible enumerar una serie de pasos que pueden considerarse en conjunto como una gua genrica en la correcta creacin de un algoritmo. Estos pasos son: 1. Declaracin del problema. 2. Desarrollo de un modelo. 3. Diseo del procedimiento de solucin. 4. Validacin. 5. Implementacin. 6. Anlisis y complejidad. 7. Pruebas. 8 Documentacin