You are on page 1of 71

ESCUELA SUPERIOR POLITCNICA DEL LITORAL

Monografa Tema:
Ciencias De La Computacin

Presentada por:
Mara Jos Chiriboga Muoz

Paralelo:
41 Guayaquil Ecuador Ao 2012

TABLA DE CONTENIDOS
TABLA DE CONTENIDOS ....................................................................................................... I INDICE DE GRFICOS........................................................................................................... A INDICE DE TABLAS .............................................................................................................. A CAPITULO 1 ........................................................................................................................1 1. CIENCIAS DE LA COMPUTACIN ...................................................................................1 1.1 HISTORIA ................................................................................................................................. 2 CAPITULO 2 ........................................................................................................................1 2. CAMPOS DE LAS CIENCIAS DE LA COMPUTACIN .......................................................1 2.1 FUNDAMENTOS MATEMTICOS .............................................................................................. 1 2.1.1 Criptografa......................................................................................................................... 1 2.1.1.1 Objetivos de la criptografa ............................................................................................... 2 2.1.1.2 Terminologa ..................................................................................................................... 2 2.1.1.3 Grado de seguridad ........................................................................................................... 3 2.1.2 Teora de grafos: ................................................................................................................ 3 2.1.2.1 Aplicaciones....................................................................................................................... 4 2.1.2.2 Tipos de grafos .................................................................................................................. 4 2.1.2.3 Representacin de grafos ................................................................................................. 5 2.1.2.4 Caracterizacin de grafos .................................................................................................. 5 2.1.3 Lgica matemtica ............................................................................................................ 6 2.1.3.1 Historia .............................................................................................................................. 7 2.1.4 Teora de tipos ................................................................................................................... 8 2.1.4.1 Tipo de dato ...................................................................................................................... 8 2.1.4.2 Tipos de datos mquina ................................................................................................... 9 2.1.4.3 Tipos de datos primitivos .................................................................................................. 9 2.2 TEORA DE LA COMPUTACIN.............................................................................................. 10 2.2.1 Principales subramas ...................................................................................................... 10 2.2.1.1 Teora de autmatas ....................................................................................................... 10 2.2.1.2 Teora de la computabilidad............................................................................................ 11 2.2.1.3 Teora de la complejidad computacional ........................................................................ 12 2.3 ALGORITMOS Y ESTRUCTURAS DE DATOS ........................................................................... 13 I

2.3.1 Anlisis de algoritmos .................................................................................................... 13 2.3.2 Algoritmos ....................................................................................................................... 14 2.3.2.1 Definicin formal ............................................................................................................. 14 2.3.3 Diagrama de flujo ........................................................................................................... 16 2.3.4 Pseudocdigo................................................................................................................... 17 2.3.4.1 Sistemas formales ........................................................................................................... 17 2.3.5 Estructuras de datos ....................................................................................................... 18 2.3.5.1 Estructuras de datos........................................................................................................ 19 2.3.6 Lgica y computabilidad ................................................................................................ 19 2.3.7 Especificacin .................................................................................................................. 19 2.4 LENGUAJES DE PROGRAMACIN Y COMPILADORES ............................................................ 20 2.4.1 Compilador....................................................................................................................... 20 2.4.1.1 Partes de un compilador ................................................................................................. 20 2.4.1.2 Tipos de compiladores .................................................................................................... 21 2.4.1.3 Proceso de compilacin .................................................................................................. 22 2.4.1.4 Anlisis sintctico ............................................................................................................ 22 2.4.1.5 Anlisis semntico ........................................................................................................... 23 2.4.2 Teora de lenguajes de programacin .......................................................................... 24 2.4.2.1 Subdisciplinas y campos relacionados ............................................................................ 24 2.5 BASE DE DATOS .................................................................................................................... 26 2.5.1 Bases de datos .................................................................................................................. 26 2.5.1.1 Tipos de base de datos .................................................................................................... 27 2.5.2 Ventajas ............................................................................................................................ 30 2.5.3 Desventajas ...................................................................................................................... 31 2.5.4 Minera de datos ............................................................................................................ 31 2.5.4.1 Proceso ........................................................................................................................... 32 2.5.4.2 Tcnicas de minera de datos ......................................................................................... 33 2.5.4.3 Aplicaciones..................................................................................................................... 33 2.6 SISTEMAS CONCURRENTES, PARALELOS Y DISTRIBUIDOS .................................................. 36 2.6.1 Programacin concurrente ............................................................................................ 36 2.6.2 Redes de computadoras ................................................................................................. 36 2.6.2.1 Software .......................................................................................................................... 37 2.6.2.2 Hardware ......................................................................................................................... 37 2.6.3 Cmputo paralelo: Computacin paralela .................................................................. 38 2.6.4 Sistemas Distribuidos: Computacin distribuida ...................................................... 38 2.6.4.1 Sistemas distribuidos ...................................................................................................... 39 2.6.4.2 Caractersticas ................................................................................................................. 39 2.6.4.3 Seguridad......................................................................................................................... 39 2.7 INTELIGENCIA ARTIFICIAL ................................................................................................... 40 2.7.1 Inteligencia artificial ....................................................................................................... 40 2.7.2 Categoras de la inteligencia Artificial ......................................................................... 41 2.7.2.1 Sistemas que piensan como humanos ............................................................................ 41 2.7.2.2 Sistemas que piensan racionalmente ............................................................................. 41

II

2.7.2.3 Inteligencia artificial computacional ............................................................................... 42 2.7.2.4 La inteligencia artificial y los sentimientos ..................................................................... 42 2.7.2.5 Aplicaciones de la inteligencia artificial .......................................................................... 43 2.7.2 Razonamiento automatizado........................................................................................ 43 2.7.3 Robtica........................................................................................................................... 44 2.7.4 Visin por computador ................................................................................................. 44 2.7.4.1 Produccin de la imagen digital en microscopa ptica ................................................. 45 2.7.4.2 Propiedades bsicas de las imgenes digitales .............................................................. 45 2.7.4.3 Introduccin a los sensores de imagen CMOS ............................................................... 45 2.7.4.4 Estrategias recomendadas para el procesamiento de imgenes digitales .................... 45 2.7.5 Aprendizaje Automtico................................................................................................. 46 2.7.5.1 Interaccin Hombre-Mquina ......................................................................................... 46 2.7.5.2 Tipos de algoritmos ......................................................................................................... 46 2.7.5.3 Aplicaciones..................................................................................................................... 48 2.8 GRFICOS POR COMPUTADOR .............................................................................................. 49 2.8.1 Computacin Grafica ...................................................................................................... 49 2.8.1.1 Grficos 2D de computadora ......................................................................................... 50 2.8.1.2 Grficos 3D de computadora ......................................................................................... 50 2.8.1.3 Representacin basada en Imagen - Image Based Rendering (IBR) ............................... 51 2.8.2 Procesamiento digital de imgenes .............................................................................. 52 2.8.2.1 Proceso de filtrado .......................................................................................................... 52 2.8.2.2 Objetivos ......................................................................................................................... 53 2.8.2.3 Ventajas ........................................................................................................................... 53 2.8.2.4 Desventajas ..................................................................................................................... 53 2.8.3 Geometra Computacional ............................................................................................ 53 2.9 COMPUTACIN CIENTFICA .................................................................................................. 54 2.9.1 Bioinformtica ................................................................................................................. 54 2.9.2 Computacin Cuntica ................................................................................................... 55 2.9.2.1 Origen de la computacin cuntica ................................................................................ 55 2.9.3 Neurociencia computacional......................................................................................... 56 2.9.3.1 Temas Principales ............................................................................................................ 57 2.9.3.2 Comportamiento de las redes ......................................................................................... 57 CAPITULO 3 .........................................................................................................................1 3. RELACIN CON OTROS CAMPOS..................................................................................1 BIBLIOGRAFIA .............................................................................................................1 LINKOGRAFIA ..............................................................................................................1 HIPERVINCULOS .........................................................................................................1

III

INDICE DE GRFICOS
GRAFICO 1: COMPUTADORA ................................................................................................................ 1 GRAFICO 2: LA TECNOLOGIA .............................................................................................................. 2 GRAFICO 3: CRIPTOGRAFIA ................................................................................................................. 1 GRAFICO 4: TEORIA DE GRAFOS ........................................................................................................ 3 GRAFICO 5: TEORIA DE TIPOS ............................................................................................................. 8 GRAFICO 6: TEORIA DE COMPUTABILIDAD .................................................................................. 11 GRAFICO 7: COMPLEJIDAD TEMPORAL ......................................................................................... 12 GRAFICO 8: ALGORITMO .................................................................................................................... 14 GRAFICO 9: DIAGRAMA DE FLUJO .................................................................................................. 16 GRAFICO 10: ESTRUCTURA DE DATOS ........................................................................................... 18 GRAFICO 11: COMPILADORES ............................................................................................................ 20 GRAFICO 12: LAMBDA EN MINUSCULA .......................................................................................... 24 GRAFICO 13: BASE DE DATOS ............................................................................................................ 26 GRAFICO 14: COMPUTO PARALELO ................................................................................................. 38 GRAFICO 15: INTELIGENCIA ARTIFICIAL ...................................................................................... 40 GRAFICO 16: IMAGEN DIGITAL ......................................................................................................... 49 GRAFICO 17: PROCESO DIGITAL DE IMAGEN ............................................................................... 52 GRAFICO 18: BIOINFORMATICA ....................................................................................................... 54 GRAFICO 19: COMPUTACION CUANTICA ........................................................................................ 55

INDICE DE TABLAS
TABLA 1: TABLA DE DATOS PRIMITIVOS DE TIPO CARACTER ................................................... 9 TABLA 2: TABLA DE DATOS PRIMITIVOS DE TIPO NMERICO ................................................. 9

CAPITULO 1
1. Ciencias de la computacin

as ciencias de la computacin son aquellas que abarcan las bases tericas de la informacin y la computacin, as como su aplicacin en sistemas computacionales. Existen diversos campos o disciplinas dentro de las Ciencias de la Computacin o Ciencias Computacionales; algunos enfatizan los resultados especficos del cmputo (como los grficos por computadora), mientras que otros (como la teora de la complejidad computacional) se relacionan con propiedades de los algoritmos usados al realizar cmputos. Otros por su parte se enfocan en los problemas que requieren la implementacin de cmputos. Por ejemplo, los estudios de la teora de lenguajes de programacin describen un cmputo, mientras que la programacin de computadoras aplica lenguajes de programacin especficos para desarrollar una solucin a un problema computacional concreto. La informtica se refiere al tratamiento automatizado de la informacin de una forma til y oportuna. No se debe confundir el carcter terico de esta ciencia con otros aspectos prcticos como Internet. De acuerdo a Peter J. Denning, la cuestin fundamental en que se basa la ciencia de la computacin es, "Qu puede ser (eficientemente) automatizado?"

GRAFICO 1: COMPUTADORA

Pgina 1 de 2

1.1 Historia
La historia de la ciencia de la computacin antecede a la invencin del computador digital moderno. Antes de la dcada de 1920, el trmino computador se refera a un ser humano que realizaba clculos. Los primeros investigadores en lo que despus se convertira las ciencias de la computacin, estaban interesados en la cuestin de la computabilidad: qu cosas pueden ser computadas por un ser humano que simplemente siga una lista de instrucciones con lpiz y papel, durante el tiempo que sea necesario, con ingenuidad y sin conocimiento previo del problema. Parte de la motivacin para este trabajo era el desarrollar mquinas que computaran, y que pudieran automatizar el tedioso y falible trabajo de la computacin humana. Durante la dcada de 1940, conforme se desarrollaban nuevas y ms poderosas mquinas para computar, el trmino computador se comenz a utilizar para referirse a las mquinas en vez de a sus antecesores humanos. Conforme iba quedando claro que las computadoras podan usarse para ms cosas que solamente clculos matemticos, el campo de la ciencia de la computacin se fue ampliando para estudiar a la computacin (informtica) en general. La ciencia de la computacin comenz entonces a establecerse como una disciplina acadmica en la dcada de 1960, con la creacin de los primeros departamentos de ciencia de la computacin y los primeros programas de licenciatura (Denning 2000).1

GRAFICO 2: LA TECNOLOGIA

CAPITULO PRIMERO

CAPITULO 2
2. Campos de las ciencias de la computacin
2.1 Fundamentos matemticos
2.1.1 Criptografa

riptografa (del griego krypto, oculto, y graphos, escribir, literalmente escritura oculta) tradicionalmente se ha definido como la parte de la criptologa que se ocupa de las tcnicas, bien sea aplicadas al arte o la ciencia, que alteran las representaciones lingsticas de mensajes, mediante tcnicas de cifrado y/o codificado, para hacerlos ininteligibles a intrusos (lectores no autorizados) que intercepten esos mensajes. Por tanto el nico objetivo de la criptografa era conseguir la confidencialidad de los mensajes. Para ello se diseaban sistemas de cifrado y cdigos. En esos tiempos la nica criptografa que haba era la llamada criptografa clsica. La aparicin de las Tecnologas de la Informacin y la Comunicacin y el uso masivo de las comunicaciones digitales han producido un nmero creciente de problemas de seguridad. Las transacciones que se realizan a travs de la red pueden ser interceptadas. La seguridad de esta informacin debe garantizarse. Este desafo ha generalizado los objetivos de la criptografa para ser la parte de la criptologa que se encarga del estudio de los algoritmos, protocolos (se les llama protocolos criptogrficos) y sistemas que se utilizan para proteger la informacin y dotar de seguridad a las comunicaciones y a las entidades que se comunican. Para ello los criptgrafos investigan, desarrollan y aprovechan tcnicas matemticas que les sirven como herramientas para conseguir sus objetivos. Los grandes avances que se han producido en el mundo de la criptografa han sido posibles gracias a los grandes avances que se ha producido en el campo de las matemticas y las ciencias de la computacin.

GRAFICO 3: CRIPTOGRAFIA

Pgina 1 de 57

2.1.1.1 Objetivos de la criptografa


La criptografa actualmente se encarga del estudio de los algoritmos, protocolos y sistemas que se utilizan para dotar de seguridad a las comunicaciones, a la informacin y a las entidades que se comunican. El objetivo de la criptografa es disear, implementar, implantar, y hacer uso de sistemas criptogrficos para dotar de alguna forma de seguridad. Por tanto se ocupa de proporcionar: Confidencialidad: Es decir garantiza que la informacin est accesible nicamente a personal autorizado. Para conseguirlo utiliza cdigos y tcnicas de cifrado. Integridad: Es decir garantiza la correccin y completitud de la informacin. Para conseguirlo puede usar por ejemplo funciones hash criptogrficas MDC, protocolos de compromiso de bit, o protocolos de notarizacin electrnica. No repudio: Es decir proporciona proteccin frente a que alguna de las entidades implicadas en la comunicacin, pueda negar haber participado en toda o parte de la comunicacin. Para conseguirlo puede usar por ejemplo firma digital. Autenticacin: Es decir proporciona mecanismos que permiten verificar la identidad del comunicante. Para conseguirlo puede usar por ejemplo funcin hash criptogrfica MAC o protocolo de conocimiento cero.

2.1.1.2 Terminologa
En el campo de la criptografa muchas veces se agrupan conjuntos de funcionalidades que tienen alguna caracterstica comn y a ese conjunto lo denominan 'Criptografa de' la caracterstica que comparten. Veamos algunos ejemplos: Criptografa simtrica.- Agrupa aquellas funcionalidades criptogrficas que se apoyan en el uso de una sola clave. Criptografa de clave pblica o Criptografa asimtrica.Agrupa aquellas funcionalidades criptogrficas que se apoyan en el uso de parejas de claves compuesta por una clave pblica, que sirve para cifrar, y por una clave privada, que sirve para descifrar. Criptografa con umbral.- Agrupa aquellas funcionalidades criptogrficas que se apoyan en el uso de un umbral de participantes a partir del cual se puede realizar la accin. Criptografa basada en identidad.- Es un tipo de Criptografa asimtrica que se basa en el uso de identidades.

Pgina 2 de 57

2.1.1.3 Grado de seguridad


Cuando se evala la seguridad de un sistema criptogrfico se puede calibrar la seguridad que aporta en funcin de si ste es seguro de forma incondicional o si es seguro slo si se cumplen ciertas condiciones. Seguridad incondicional.- Se dice que un sistema criptogrfico tiene una seguridad incondicional (en ingls unconditional security) sobre cierta tarea si un atacante no puede resolver la tarea aunque tenga infinito poder computacional. Seguridad condicional.- Se dice que un sistema criptogrfico tiene una seguridad condicional (en ingls conditional security) sobre cierta tarea si un atacante puede tericamente resolver la tarea, pero no es computacionalmente factible para l (debido a sus recursos, capacidades y acceso a informacin).

2.1.2 Teora de grafos:


Los grafos son el objeto de estudio de esta rama de las matemticas. Arriba el grafo pez, en medio el grafo arco y abajo el grafo dodecaedro. La teora de grafos (tambin llamada teora de las grficas) es un campo de estudio de las matemticas y las ciencias de la computacin, que estudia las propiedades de los grafos (tambin llamadas grficas) estructuras que constan de dos partes, el conjunto de vrtices, nodos o puntos; y el conjunto de aristas, lneas o lados (edges en ingls) que pueden ser orientados o no. La teora de grafos es una rama de las matemticas discretas y aplicadas, y es una disciplina que unifica diversas reas como combinatorias, lgebra, probabilidad, geometra de polgonos, aritmtica y topologa. Actualmente ha tenido mayor preponderancia en el campo de la informtica, las ciencias de la computacin y telecomunicaciones.

GRAFICO 4: TEORIA DE GRAFOS

Pgina 3 de 57

2.1.2.1 Aplicaciones
Gracias a la teora de grafos se pueden resolver diversos problemas como por ejemplo la sntesis de circuitos secuenciales, contadores o sistemas de apertura. Se utiliza para diferentes reas por ejemplo, Dibujo computacional, en todas las reas de Ingeniera. Los grafos se utilizan tambin para modelar trayectos como el de una lnea de autobs a travs de las calles de una ciudad, en el que podemos obtener caminos ptimos para el trayecto aplicando diversos algoritmos como puede ser el algoritmo de Floyd. Para la administracin de proyectos, utilizamos tcnicas como PERT en las que se modelan los mismos utilizando grafos y optimizando los tiempos para concretar los mismos. La teora de grafos tambin ha servido de inspiracin para las ciencias sociales, en especial para desarrollar un concepto no metafrico de red social que sustituye los nodos por los actores sociales y verifica la posicin, centralidad e importancia de cada actor dentro de la red. Esta medida permite cuantificar y abstraer relaciones complejas, de manera que la estructura social puede representarse grficamente. Por ejemplo, una red social puede representar la estructura de poder dentro de una sociedad al identificar los vnculos (aristas), su direccin e intensidad y da idea de la manera en que el poder se transmite y a quines. Los grafos son importantes en el estudio de la biologa y hbitat. El vrtice representa un hbitat y las aristas (o "edges" en ingls) representa los senderos de los animales o las migraciones. Con esta informacin, los cientficos pueden entender cmo esto puede cambiar o afectar a las especies en su hbitat.

2.1.2.2 Tipos de grafos


Grafo simple. O simplemente grafo es aquel que acepta una sola una arista uniendo dos vrtices cualesquiera. Esto es equivalente a decir que una arista cualquiera es la nica que une dos vrtices especficos. Es la definicin estndar de un grafo. Multgrafo: O pseudografo son grafos que aceptan ms de una arista entre dos vrtices. Estas aristas se llaman mltiples o lazos (loops en ingls). Los grafos simples son una subclase de esta categora de grafos. Tambin se les llama grafos no-dirigido. Grafo dirigido: Son grafos en los cuales se ha aadido una orientacin a las aristas, representada grficamente por una flecha Grafo etiquetado: Grafos en los cuales se ha aadido un peso a las aristas (nmero entero generalmente) o un etiquetado a los vrtices. Grafo aleatorio: Grafo cuyas aristas estn asociadas a una probabilidad.

Pgina 4 de 57

Hipergrafo: Grafos en los cuales las aristas tienen ms de dos extremos, es decir, las aristas son incidentes a 3 o ms vrtices. Grafo infinito: Grafos con conjunto de vrtices y aristas de cardinal infinito.

2.1.2.3 Representacin de grafos


Existen diferentes formas de representar un grafo (simple), adems de la geomtrica y muchos mtodos para almacenarlos en una computadora. La estructura de datos usada depende de las caractersticas del grafo y el algoritmo usado para manipularlo. Entre las estructuras ms sencillas y usadas se encuentran las listas y las matrices, aunque frecuentemente se usa una combinacin de ambas. Las listas son preferidas en grafos dispersos porque tienen un eficiente uso de la memoria. Por otro lado, las matrices proveen acceso rpido, pero pueden consumir grandes cantidades de memoria.

2.1.2.4 Caracterizacin de grafos


Grafos simples.- Un grafo es simple si a lo ms existe una arista uniendo dos vrtices cualesquiera. Esto es equivalente a decir que una arista cualquiera es la nica que une dos vrtices especficos. Un grafo que no es simple se denomina multgrafo. Grafos conexos.- Un grafo es conexo si cada par de vrtices est conectado por un camino; es decir, si para cualquier par de vrtices (a, b), existe al menos un camino posible desde a hacia b. Un grafo es doblemente conexo si cada par de vrtices est conectado por al menos dos caminos disjuntos; es decir, es conexo y no existe un vrtice tal que al sacarlo el grafo resultante sea disco nexo. Es posible determinar si un grafo es conexo usando un algoritmo Bsqueda en anchura (BFS) o Bsqueda en profundidad (DFS). En trminos matemticos la propiedad de un grafo de ser (fuertemente) conexo permite establecer con base en l una relacin de equivalencia para sus vrtices, la cual lleva a una particin de stos en "componentes (fuertemente) conexas", es decir, porciones del grafo, que son (fuertemente) conexas cuando se consideran como grafos aislados. Esta propiedad es importante para muchas demostraciones en teora de grafos. Grafos completos.- Un grafo es completo si existen aristas uniendo todos los pares posibles de vrtices. Es decir, todo par de vrtices (a, b) debe tener una arista e que los une. El conjunto de los grafos completos es denominado usualmente, siendo el grafo completo de n vrtices.
Pgina 5 de 57

Un, es decir, grafo completo de vrtices tiene exactamente aristas. La representacin grfica de los como los vrtices de un polgono regular da cuenta de su peculiar estructura. Grafos bipartitos.- Un grafo G es bipartito si puede expresarse como (es decir, sus vrtices son la unin de dos grupos de vrtices), bajo las siguientes condiciones: o Y son disjuntos y no vacos. o Cada arista de A une un vrtice de V1 con uno de V2. o No existen aristas uniendo dos elementos de V1; anlogamente para V2. Bajo estas condiciones, el grafo se considera bipartito, y puede describirse informalmente como el grafo que une o relaciona dos conjuntos de elementos diferentes, como aquellos resultantes de los ejercicios y puzles en los que debe unirse un elemento de la columna A con un elemento de la columna B. Grafos ponderados o etiquetados.- En muchos casos, es preciso atribuir a cada arista un nmero especfico, llamado valuacin, ponderacin o coste segn el contexto, y se obtiene as un grafo valuado. Formalmente, es un grafo con una funcin v: A R+. Por ejemplo, un representante comercial tiene que visitar n ciudades conectadas entre s por carreteras; su inters previsible ser minimizar la distancia recorrida (o el tiempo, si se pueden prever atascos). El grafo correspondiente tendr como vrtices las ciudades, como aristas las carreteras y la valuacin ser la distancia entre ellas. Y, de momento, no se conocen mtodos generales para hallar un ciclo de valuacin mnima, pero s para los caminos desde a hasta b, sin ms condicin.

2.1.3 Lgica matemtica


La lgica matemtica es una parte de la lgica y las matemticas, que consiste en el estudio matemtico de la lgica y en la aplicacin de este estudio a otras reas de las matemticas. La lgica matemtica tiene estrechas conexiones con las ciencias de la computacin y la lgica filosfica. La lgica matemtica estudia los sistemas formales en relacin con el modo en el que codifican nociones intuitivas de objetos matemticos como conjuntos, nmeros, demostraciones y computacin. La lgica matemtica suele dividirse en cuatro subcampos: teora de modelos, teora de la demostracin, teora de conjuntos y teora de la recursin. La investigacin en lgica matemtica ha jugado un papel fundamental en el estudio de los fundamentos de las matemticas. Actualmente se usan indiferentemente como sinnimos las expresiones: lgica simblica(o logstica), lgica matemtica, lgica teortica y lgica formal.

Pgina 6 de 57

La lgica matemtica no es la lgica de las matemticas sino la matemtica de la lgica. Incluye aquellas partes de la lgica que pueden ser modeladas y estudiadas matemticamente.

2.1.3.1 Historia
Lgica matemtica fue el nombre dado por Giuseppe Peano para esta disciplina. En esencia, es la lgica de Aristteles, pero desde el punto de vista de una nueva notacin, ms abstracta, tomada del lgebra. Previamente ya se hicieron algunos intentos de tratar las operaciones lgicas formales de una manera simblica por parte de algunos filsofos matemticos como Leibniz y Lambert, pero su labor permaneci desconocida y aislada. Fueron George Boole y Augustus De Morgan, a mediados del siglo XIX, quienes primero presentaron un sistema matemtico para modelar operaciones lgicas. La lgica tradicional aristotlica fue reformada y completada, obteniendo un instrumento apropiado para investigar sobre los fundamentos de la matemtica. El tradicional desarrollo de la lgica enfatizaba su centro de inters en la forma de argumentar, mientras que la actual lgica matemtica lo centra en un estudio combinatorio de los contenidos. Esto se aplica tanto a un nivel sintctico (por ejemplo, el envo de una cadena de smbolos perteneciente a un lenguaje formal a un programa compilador que lo convierte en una secuencia de instrucciones ejecutables por una mquina), como a un nivel semntico, construyendo modelos apropiados (teora de modelos). La lgica matemtica estudia los sistemas formales en relacin con el modo en el que codifican conceptos intuitivos de objetos matemticos como conjuntos, nmeros, demostraciones y computacin. Concepto de lgica matemtica La lgica estudia la forma del razonamiento. La lgica matemtica es la disciplina que trata de mtodos de razonamiento. En un nivel elemental, la lgica proporciona reglas y tcnicas para determinar si es o no valido un argumento dado. El razonamiento lgico s emplea en matemticas para demostrar teoremas, sin embargo, se usa en forma constante para realizar cualquier actividad en la vida. Definicin y clases de proposiciones Una proposicin o enunciado es una oracin que puede ser falso o verdadero pero no ambas a la vez. Toda proposicin consta de tres partes: un sujeto, un verbo y un complemento referido al verbo. La proposicin es un elemento fundamental de la Lgica Matemtica.

Pgina 7 de 57

2.1.4 Teora de tipos

GRAFICO 5: TEORIA DE TIPOS

2.1.4.1 Tipo de dato


Tipo de dato informtico es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar. Esto incluye imponer restricciones en los datos, como qu valores pueden tomar y qu operaciones se pueden realizar. Tipos de datos comunes son: enteros, nmeros de coma flotante (decimales), cadenas alfanumricas, fechas, horas, colores, coches o cualquier cosa que se nos ocurra. Por ejemplo, en el tipo "int" representa un conjunto de enteros de 32 bits cuyo rango va desde el -2.147.483.648 al 2.147.483.647, as como las operaciones que se pueden realizar con los enteros, como la suma, resta y multiplicacin. Los colores, por otra parte, se representan como tres bytes denotando la cantidad de rojo, verde y azul, y una cadena de caracteres representando el nombre del color; las operaciones permitidas incluyen la adicin y sustraccin, pero no la multiplicacin. ste es un concepto propio de la informtica, ms especficamente de los lenguajes de programacin, aunque tambin se encuentra relacionado con nociones similares de las matemticas y la lgica. En un sentido amplio, un tipo de datos define un conjunto de valores y las operaciones sobre estos valores.1 Casi todos los lenguajes de programacin explcitamente incluyen la notacin del tipo de datos, aunque lenguajes diferentes pueden usar terminologa diferente. La mayor parte de los lenguajes de programacin permiten al programador definir tipos de datos adicionales, normalmente combinando mltiples elementos de otros tipos y definiendo las operaciones del nuevo tipo de dato. Por ejemplo, un programador puede crear un nuevo tipo de dato llamado "Persona" que especifica que el dato interpretado como Persona incluir un nombre y una fecha de nacimiento. Un tipo de dato puede ser tambin visto como una limitacin impuesta en la interpretacin de los datos en un sistema de tipificacin, describiendo la representacin, interpretacin y la estructura de los valores u objetos almacenados en la memoria del ordenador. El sistema de tipificacin usa informacin de los tipos de datos para comprobar la verificacin de los programas que acceden o manipulan los datos.

Pgina 8 de 57

2.1.4.2 Tipos de datos mquina


Todos los datos en los ordenadores basados en la electrnica digital se representan como bits (valores 0 y 1) en el nivel ms bajo. La ms pequea unidad direccionable de datos es un grupo de bits llamado un byte (normalmente un octeto, que son 8 bits). La unidad procesada por las instrucciones del cdigo mquina se le llama una palabra (en 2006, normalmente 32 o 64 bits). La mayor parte de las instrucciones interpretan la palabra como un nmero binario, como por ejemplo una palabra de 32 bits puede representar valores enteros sin signo desde el 0 al o valores enteros con signo desde al. Por medio del complemento a dos, la mayor parte del tiempo, el lenguaje mquina y la propia mquina no necesitan distinguir entre tipos de datos con o sin signo.

2.1.4.3 Tipos de datos primitivos


Los tipos de datos hacen referencia al tipo de informacin que se trabaja, donde la unidad mnima de almacenamiento es el dato, tambin se puede considerar como el rango de valores que puede tomar una variable durante la ejecucin del programa.

Tipo de Dato Char

Rango 0 a 65536

Tamao de Bits 16 bits

TABLA 1: TABLA DE DATOS PRIMITIVOS DE TIPO CARACTER

Tipo De Datos Bite Short Int Long

Tamao 8 bits 16 bits 32 bits 64 bits

TABLA 2: TABLA DE DATOS PRIMITIVOS DE TIPO NMERICO

Pgina 9 de 57

2.2 Teora de la Computacin


La teora de la computacin es una rama de la matemtica y la computacin que centra su inters en las limitaciones y capacidades fundamentales de las computadoras. Especficamente esta teora busca modelos matemticos que formalizan el concepto de hacer un cmputo (cuenta o clculo) y la clasificacin de problemas.

2.2.1 Principales subramas


Entre las principales subramas se encuentran:

2.2.1.1 Teora de autmatas


Esta teora provee modelos matemticos que formalizan el concepto de computadora o algoritmo de manera suficientemente simplificada y general para que se puedan analizar sus capacidades y limitaciones. Algunos de estos modelos juegan un papel central en varias aplicaciones de las ciencias de la computacin, incluyendo procesamiento de texto, compiladores, diseo de hardware e inteligencia artificial. Los tres principales modelos son los autmatas finitos, autmatas con pila y mquinas de Turn, cada uno con sus variantes deterministas y no deterministas. Los autmatas finitos son buenos modelos de computadoras que tienen una cantidad limitada de memoria, los autmatas con pila modelan los que tienen gran cantidad de memoria pero que solo pueden manipularla a manera de pila (el ltimo dato almacenado es el siguiente ledo), y las mquinas de Turn modelan las computadoras que tienen una gran cantidad de memoria almacenada en una cinta. Estos autmatas estn estrechamente relacionados con la teora de lenguajes formales; cada autmata es equivalente a una gramtica formal, lo que permite reinterpretar la jerarqua de Chomsky en trminos de autmatas. Existen muchos otros tipos de autmatas como las mquinas de acceso aleatorio, autmatas celulares, mquinas baco y las mquinas de estado abstracto; sin embargo en todos los casos se ha mostrado que estos modelos no son ms generales que la mquina de Turn, pues la mquina de Turn tiene la capacidad de simular cada uno de estos autmatas. Esto da lugar a que se piense en la mquina de Turn como el modelo universal de computadora.

Pgina 10 de 57

2.2.1.2 Teora de la computabilidad

GRAFICO 6: TEORIA DE COMPUTABILIDAD

Esta teora explora los lmites de la posibilidad de solucionar problemas mediante algoritmos. Gran parte de las ciencias computacionales estn dedicadas a resolver problemas de forma algortmica, de manera que el descubrimiento de problemas imposibles es una gran sorpresa. La teora de la computabilidad es til para no tratar de resolver algortmicamente estos problemas, ahorrando as tiempo y esfuerzo. Los problemas se clasifican en esta teora de acuerdo a su grado de imposibilidad: Los computables son aquellos para los cuales s existe un algoritmo que siempre los resuelve cuando hay una solucin y adems es capaz de distinguir los casos que no la tienen. Tambin se les conoce como decidibles, resolubles o recursivos. Los semicomputables son aquellos para los cuales hay un algoritmo que es capaz encontrar una solucin si es que existe, pero ningn algoritmo que determine cuando la solucin no existe (en cuyo caso el algoritmo para encontrar la solucin entrara a un bucle infinito). El ejemplo clsico por excelencia es el problema de la parada. A estos problemas tambin se les conoce como listables, recursivamente enumerables o reconocibles, porque si se enlistan todos los casos posibles del problema, es posible reconocer a aquellos que s tienen solucin. Los incomputables son aquellos para los cuales no hay ningn algoritmo que los pueda resolver, no importando que tengan o no solucin. El ejemplo clsico por excelencia es el problema de la implicacin lgica, que consiste en determinar cundo una proposicin lgica es un teorema; para este problema no hay ningn algoritmo que en todos los casos pueda distinguir si una proposicin o su negacin es un teorema. Hay una versin ms general de esta clasificacin, donde los problemas incomputables se subdividen a su vez en problemas ms difciles que otros. La herramienta principal para lograr estas clasificaciones es el concepto de reducibilidad: Un problema se reduce al problema si bajo la suposicin de que se sabe resolver el problema es posible resolver al problema; esto se denota por, e informalmente significa que el problema no es ms difcil de resolver que el

Pgina 11 de 57

problema. Por ejemplo, bajo la suposicin de que una persona sabe sumar, es muy fcil ensearle a multiplicar haciendo sumas repetidas, de manera que multiplicar se reduce a sumar.

2.2.1.3 Teora de la complejidad computacional


Aun cuando un problema sea computable, puede que no sea posible resolverlo en la prctica si se requiere mucha memoria o tiempo de ejecucin. La teora de la complejidad computacional estudia las necesidades de memoria, tiempo y otros recursos computacionales para resolver problemas; de esta manera es posible explicar por qu unos problemas son ms difciles de resolver que otros. Uno de los mayores logros de esta rama es la clasificacin de problemas, similar a la tabla peridica, de acuerdo a su dificultad. En esta clasificacin los problemas se separan por clases de complejidad. Esta teora tiene aplicacin en casi todas las reas de conocimiento donde se desee resolver un problema computacionalmente, porque los investigadores no solo desean utilizar un mtodo para resolver un problema, sino utilizar el ms rpido. La teora de la complejidad computacional tambin tiene aplicaciones en reas como la criptografa, donde se espera que descifrar un cdigo secreto sea un problema muy difcil a menos que se tenga la contrasea, en cuyo caso el problema se vuelve fcil.

GRAFICO 7: COMPLEJIDAD TEMPORAL

Pgina 12 de 57

2.3 Algoritmos y estructuras de datos


2.3.1 Anlisis de algoritmos
El anlisis de algoritmos es una parte importante de la Teora de complejidad computacional ms amplia, que provee estimaciones tericas para los recursos que necesita cualquier algoritmo que resuelva un problema computacional dado. Estas estimaciones resultan ser bastante tiles en la bsqueda de algoritmos eficientes. A la hora de realizar un anlisis terico de algoritmos es comn calcular su complejidad en un sentido asinttico, es decir, para un tamao de entrada suficientemente grande. La cota superior asinttica, y las notaciones omega (cota inferior) y theta (caso promedio) se usan con esa finalidad. Por ejemplo, la bsqueda binaria decimos que se ejecuta en una cantidad de pasos proporcional a un logaritmo, en O (log(n)), coloquialmente "en tiempo logartmico". Normalmente las estimaciones asintticas se utilizan porque diferentes implementaciones del mismo algoritmo no tienen porque tener la misma eficiencia. No obstante la eficiencia de dos implementaciones "razonables" cualesquiera de un algoritmo dado est relacionada por una constante multiplicativa llamada constante oculta. La medida exacta (no asinttica) de la eficiencia a veces puede ser computada pero para ello suele hacer falta aceptar supuestos acerca de la implementacin concreta del algoritmo, llamada modelo de computacin. Un modelo de computacin puede definirse en trminos de un ordenador abstracto, como la Mquina de Turn, y/o postulando que ciertas operaciones se ejecutan en una unidad de tiempo. Por ejemplo, si al conjunto ordenado al que aplicamos una bsqueda binaria tiene n elementos, y podemos garantizar que una nica bsqueda binaria puede realizarse en un tiempo unitario, entonces se requieren como mucho log2 N + 1 unidades de tiempo para devolver una respuesta. Las medidas exactas de eficiencia son tiles para quienes verdaderamente implementan y usan algoritmos, porque tienen ms precisin y as les permite saber cuanto tiempo pueden suponer que tomar la ejecucin. Para algunas personas, como los desarrolladores de videojuegos, una constante oculta puede significar la diferencia entre xito y fracaso. Las estimaciones de tiempo dependen de cmo definamos un paso. Para que el anlisis tenga sentido, debemos garantizar que el tiempo requerido para realizar un paso est acotado superiormente por una constante. Hay que mantenerse precavido en este terreno; por ejemplo, algunos anlisis cuentan con que la suma de dos nmeros se hace en un paso. Este supuesto puede no estar garantizado en ciertos contextos. Si por ejemplo los nmeros involucrados en la computacin pueden ser arbitrariamente grandes, dejamos de poder asumir que la adicin requiere un tiempo constante (usando papel y lpiz, compara el tiempo que necesitas para sumar dos enteros de 2 dgitos cada uno y el necesario para hacerlo con enteros de 1000 dgitos).

Pgina 13 de 57

2.3.2 Algoritmos
Los diagramas de flujo sirven para representar algoritmos de manera grfica. En matemticas, ciencias de la computacin y disciplinas relacionadas, un algoritmo (del griego y latn, dixit algorithmus y este a su vez del matemtico persa Al-Juarismi1 ) es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solucin. Los algoritmos son el objeto de estudio de la algoritmia.1 En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrn. Algunos ejemplos en matemtica son el algoritmo de la divisin para calcular el cociente de dos nmeros, el algoritmo de Euclides para obtener el mximo comn divisor de dos enteros positivos, o el mtodo de Gauss para resolver un sistema lineal de ecuaciones.

GRAFICO 8: ALGORITMO

2.3.2.1 Definicin formal


En general, no existe ningn consenso definitivo en cuanto a la definicin formal de algoritmo. Muchos autores los sealan como listas de instrucciones para resolver un problema abstracto, es decir, que un nmero finito de pasos convierten los datos de un problema (entrada) en una solucin (salida).1 2 3 4 5 6 Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en particular. Por ejemplo, una versin modificada de la criba de Eratstenes que nunca termine de calcular nmeros primos no deja de ser un algoritmo.7

Pgina 14 de 57

A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando modelos matemticos como mquinas de Turn entre otros. Sin embargo, estos modelos estn sujetos a un tipo particular de datos como son nmeros, smbolos o grficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos.3 1 En general, la parte comn en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos:7 Tiempo secuencial. Un algoritmo funciona en tiempo discretizado paso a paso, definiendo as una secuencia de estados "computacionales" por cada entrada vlida (la entrada son los datos que se le suministran al algoritmo antes de comenzar). Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una estructura de primer orden y cada algoritmo es independiente de su implementacin (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo. Exploracin acotada. La transicin de un estado al siguiente queda completamente determinada por una descripcin fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de trminos del estado actual. En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sin ambigedad y sin hacer referencia a una computadora en particular, y adems tiene un lmite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso. Esta amplia definicin abarca tanto a algoritmos prcticos como aquellos que solo funcionan en teora, por ejemplo el mtodo de Newton y la eliminacin de Gauss-Jordan funcionan, al menos en principio, con nmeros de precisin infinita; sin embargo no es posible programar la precisin infinita en una computadora, y no por ello dejan de ser algoritmos.10 En particular es posible considerar una cuarta propiedad que puede ser usada para validar la tesis de Church-Turing de que toda funcin calculable se puede programar en una mquina de Turn (o equivalentemente, en un lenguaje de programacin suficientemente general):10 Aritmetizabilidad. Solamente operaciones innegablemente calculables estn disponibles en el paso inicial. Medios de expresin de un algoritmo Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocdigo y diagramas de flujo evita muchas ambigedades del lenguaje natural. Dichas expresiones son formas ms estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programacin especfico. La descripcin de un algoritmo usualmente se hace en tres niveles: Descripcin de alto nivel. Se establece el problema, se selecciona un modelo matemtico y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles. Descripcin formal. Se usa pseudocdigo para describir la secuencia de pasos que encuentran la solucin.

Pgina 15 de 57

Implementacin. Se muestra el algoritmo expresado en un lenguaje de programacin especfico o algn objeto capaz de llevar a cabo instrucciones.

2.3.3 Diagrama de flujo


Diagrama de flujo que expresa un algoritmo para calcular la raz cuadrada de un nmero Artculo principal: Diagrama de flujo. Los diagramas de flujo son descripciones grficas de algoritmos; usan smbolos conectados con flechas para indicar la secuencia de instrucciones y estn regidos por ISO. Los diagramas de flujo son usados para representar algoritmos pequeos, ya que abarcan mucho espacio y su construccin es laboriosa. Por su facilidad de lectura son usados como introduccin a los algoritmos, descripcin de un lenguaje y descripcin de procesos a personas ajenas a la computacin. Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocdigo y diagramas de flujo evita muchas ambigedades del lenguaje natural. Dichas expresiones son formas ms estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programacin especfico.

GRAFICO 9: DIAGRAMA DE FLUJO

Pgina 16 de 57

2.3.4 Pseudocdigo
El pseudocdigo (falso lenguaje, el prefijo pseudo significa falso) es una descripcin de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintcticas propias de lenguajes de programacin, como asignaciones, ciclos y condicionales, aunque no est regido por ningn estndar. Es utilizado para describir algoritmos en libros y publicaciones cientficas, y como producto intermedio durante el desarrollo de un algoritmo, como los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocdigo requieren menos espacio para representar instrucciones complejas. El pseudocdigo est pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementacin. Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programacin concretos. Sin embargo, el pseudocdigo, en general, es comprensible sin necesidad de conocer o utilizar un entorno de programacin especfico, y es a la vez suficientemente estructurado para que su implementacin se pueda hacer directamente a partir de l. As el pseudodocdigo cumple con las funciones antes mencionadas para representar algo abstracto los protocolos son los lenguajes para la programacin. Busque fuentes ms precisas para tener mayor comprensin del tema.

2.3.4.1 Sistemas formales


La teora de autmatas y la teora de funciones recursivas proveen modelos matemticos que formalizan el concepto de algoritmo. Los modelos ms comunes son la mquina de Turn, mquina de registro y funciones recursivas. Estos modelos son tan precisos como un lenguaje mquina, careciendo de expresiones coloquiales o ambigedad, sin embargo se mantienen independientes de cualquier computadora y de cualquier implementacin. Implementacin Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito elctrico o un aparato mecnico y elctrico. Algunos algoritmos inclusive se disean especialmente para implementarse usando lpiz y papel. El algoritmo de multiplicacin tradicional, el algoritmo de Euclides, la criba de Eratstenes y muchas formas de resolver la raz cuadrada son slo algunos ejemplos.

Pgina 17 de 57

2.3.5 Estructuras de datos


En programacin, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulacin. Un dato elemental es la mnima informacin que se tiene en un sistema. Una estructura de datos define la organizacin e interrelacin de estos y un conjunto de operaciones que se pueden realizar sobre ellos. Las operaciones bsicas son: Alta, adicionar un nuevo valor a la estructura. Baja, borrar un valor de la estructura. Bsqueda, encontrar un determinado valor en la estructura para realizar una operacin con este valor, en forma secuencial o binario (siempre y cuando los datos estn ordenados). Otras operaciones que se pueden realizar son: Ordenamiento, de los elementos pertenecientes a la estructura. Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas. Cada estructura ofrece ventajas y desventajas en relacin a la simplicidad y eficiencia para la realizacin de cada operacin. De esta forma, la eleccin de la estructura de datos apropiada para cada problema depende de factores como la frecuencia y el orden en que se realiza cada operacin sobre los datos.

GRAFICO 10: ESTRUCTURA DE DATOS

Pgina 18 de 57

2.3.5.1 Estructuras de datos

Conjuntos (set) Matriz (matemticas) Matriz (programacin) Lista Listas Simples Listas Doblemente Enlazadas Listas Circulares Listas por saltos (Skip lists) rboles rboles Binarios rbol binario de bsqueda rbol binario de bsqueda equilibrado rboles Rojo-Negro rboles AVL rboles Biselados (rboles Splay) rboles Multicamino (Multirrama) rboles B rboles B+ rboles B* Tries Grafos Tablas Hash Mapeos Diccionarios Montculos (o heaps) Montculo binario Montculo binmico Montculo de Fibonacci Montculo suave Montculo 2-3

2.3.6 Lgica y computabilidad

Estudio de diferentes tipos de lgicas, su poder expresivo, divisibilidad, aplicaciones.


2.3.7 Especificacin

Desarrollo de mtodos para definir formalmente (matemtica y lgicamente), el comportamiento esperado de un algoritmo, para luego probar terminacin y correctitud.

Pgina 19 de 57

2.4 Lenguajes de programacin y compiladores

GRAFICO 11: COMPILADORES

2.4.1 Compilador
Un compilador es un programa informtico que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de mquina, pero tambin puede ser un cdigo intermedio (bytecode), o simplemente texto. Este proceso de traduccin se conoce como compilacin.1 Un compilador es un programa que permite traducir el cdigo fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de mquina). De esta manera un programador puede disear un programa en un lenguaje mucho ms cercano a como piensa un ser humano, para luego compilarlo a un programa ms manejable por una computadora.

2.4.1.1 Partes de un compilador


La construccin de un compilador involucra la divisin del proceso en una serie de fases que variar con su complejidad. Generalmente estas fases se agrupan en dos tareas: el anlisis del programa fuente y la sntesis del programa objeto. Anlisis: Se trata de la comprobacin de la correccin del programa fuente, e incluye las fases correspondientes al Anlisis Lxico (que consiste en la descomposicin del programa fuente en componentes lxicos), Anlisis Sintctico (agrupacin de los componentes lxicos en frases gramaticales) y Anlisis Semntico (comprobacin de la validez semntica de las sentencias aceptadas en la fase de Anlisis Sintctico).
Pgina 20 de 57

Sntesis: Su objetivo es la generacin de la salida expresada en el lenguaje objeto y suele estar formado por una o varias combinaciones de fases de Generacin de Cdigo (normalmente se trata de cdigo intermedio o de cdigo objeto) y de Optimizacin de Cdigo (en las que se busca obtener un cdigo lo ms eficiente posible). Alternativamente, las fases descritas para las tareas de anlisis y sntesis se pueden agrupar en Front-end y Back-end: Front-end: es la parte que analiza el cdigo fuente, comprueba su validez, genera el rbol de derivacin y rellena los valores de la tabla de smbolos. Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya a compilar, y est compuesta por las fases comprendidas entre el Anlisis Lxico y la Generacin de Cdigo Intermedio. Back-end: es la parte que genera el cdigo mquina, especfico de una plataforma, a partir de los resultados de la fase de anlisis, realizada por el Front End. Esta divisin permite que el mismo Back End se utilice para generar el cdigo mquina de varios lenguajes de programacin distintos y que el mismo Front End que sirve para analizar el cdigo fuente de un lenguaje de programacin concreto sirva para generar cdigo mquina en varias plataformas distintas. Suele incluir la generacin y optimizacin del cdigo dependiente de la mquina. El cdigo que genera el Back End normalmente no se puede ejecutar directamente, sino que necesita ser enlazado por un programa enlazador (linker)

2.4.1.2 Tipos de compiladores


Esta taxonoma de los tipos de compiladores no es excluyente, por lo que puede haber compiladores que se adscriban a varias categoras: Compiladores cruzados: generan cdigo para un sistema distinto del que estn funcionando. Compiladores optimizadores: realizan cambios en el cdigo para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original. Compiladores de una sola pasada: generan el cdigo mquina a partir de una nica lectura del cdigo fuente. Compiladores de varias pasadas: necesitan leer el cdigo fuente varias veces antes de poder producir el cdigo mquina. Compiladores JIT (Just In Time): forman parte de un intrprete y compilan partes del cdigo segn se necesitan. Pauta de creacin de un compilador: En las primeras pocas de la informtica, el software de los compiladores era considerado como uno de los ms complejos existentes. Los primeros compiladores se realizaron programndolos directamente en lenguaje mquina o en ensamblador. Una vez que se dispone de un compilador, se pueden escribir nuevas versiones del compilador (u otros compiladores distintos) en el lenguaje que compila ese compilador. Actualmente existen herramientas que facilitan la tarea de escribir compiladores intrpretes informticos. Estas herramientas permiten generar el esqueleto del analizador sintctico a partir de una definicin formal del
Pgina 21 de 57

lenguaje de partida, especificada normalmente mediante una gramtica formal y barata, dejando nicamente al programador del compilador la tarea de programar las acciones semnticas asociadas.

2.4.1.3 Proceso de compilacin


Es el proceso por el cual se traducen las instrucciones escritas en un determinado lenguaje de programacin a lenguaje mquina. Adems de un traductor, se pueden necesitar otros programas para crear un programa objeto ejecutable. Un programa fuente se puede dividir en mdulos almacenados en archivos distintos. La tarea de reunir el programa fuente a menudo se confa a un programa distinto, llamado preprocesador. El preprocesador tambin puede expandir abreviaturas, llamadas a macros, a proposiciones del lenguaje fuente. Normalmente la creacin de un programa ejecutable (un tpico.exe para Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama compilacin (propiamente dicho) y traduce el cdigo fuente escrito en un lenguaje de programacin almacenado en un archivo a cdigo en bajo nivel (normalmente en cdigo objeto, no directamente a lenguaje mquina). El segundo paso se llama enlazado en el cual se enlaza el cdigo de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y se aade el cdigo de las funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo as finalmente el cdigo objeto a cdigo mquina, y generando un mdulo ejecutable. Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de compilacin en archivos objetos (un tpico.obj para Microsoft Windows, DOS o para Unix); para enlazarlos en fases posteriores, o crear directamente el ejecutable; con lo que la fase de compilacin se almacena slo temporalmente. Un programa podra tener partes escritas en varios lenguajes (por ejemplo C, C++ y Asm), que se podran compilar de forma independiente y luego enlazar juntas para formar un nico mdulo ejecutable.

2.4.1.4 Anlisis sintctico


Artculo principal: Analizador sintctico. En esta fase los caracteres o componentes lxicos se agrupan jerrquicamente en frases gramaticales que el compilador utiliza para sintetizar la salida. Se comprueba si lo obtenido de la fase anterior es sintcticamente correcto (obedece a la gramtica del lenguaje). Por lo general, las frases gramaticales del programa fuente se representan mediante un rbol de anlisis sintctico. La estructura jerrquica de un programa normalmente se expresa utilizando reglas recursivas. Por ejemplo, se pueden dar las siguientes reglas como parte de la definicin de expresiones: Cualquier identificador es una expresin. Cualquier nmero es una expresin. Si expresin1 y expresin2 son expresiones, entonces tambin lo son: expresin1 + expresin2 expresin1 * expresin2

Pgina 22 de 57

Las reglas 1 y 2 son reglas bsicas (no recursivas), en tanto que la regla 3 define expresiones en funcin de operadores aplicados a otras expresiones. La divisin entre anlisis lxico y anlisis sintctico es algo arbitraria. Un factor para determinar la divisin es si una construccin del lenguaje fuente es inherentemente recursiva o no. Las construcciones lxicas no requieren recursin, mientras que las construcciones sintcticas suelen requerirla. No se requiere recursin para reconocer los identificadores, que suelen ser cadenas de letras y dgitos que comienzan con una letra. Normalmente, se reconocen los identificadores por el simple examen del flujo de entrada, esperando hasta encontrar un carcter que no sea ni letra ni dgito, y agrupando despus todas las letras y dgitos encontrados hasta ese punto en un componente lxico llamado identificador. Por otra parte, esta clase de anlisis no es suficientemente poderoso para analizar expresiones o proposiciones. Por ejemplo, no podemos emparejar de manera apropiada los parntesis de las expresiones, o las palabras begin y end en proposiciones sin imponer alguna clase de estructura jerrquica o de anidamiento a la entrada.

2.4.1.5 Anlisis semntico


La fase de anlisis semntico revisa el programa fuente para tratar de encontrar errores semnticos y rene la informacin sobre los tipos para la fase posterior de generacin de cdigo. En ella se utiliza la estructura jerrquica determinada por la fase de anlisis sintctico para identificar los operadores y operandos de expresiones y proposiciones. Un componente importante del anlisis semntico es la verificacin de tipos. Aqu, el compilador verifica si cada operador tiene operandos permitidos por la especificacin del lenguaje fuente. Por ejemplo, las definiciones de muchos lenguajes de programacin requieren que el compilador indique un error cada vez que se use un nmero real como ndice de una matriz. Sin embargo, la especificacin del lenguaje puede imponer restricciones a los operandos, por ejemplo, cuando un operador aritmtico binario se aplica a un nmero entero y a un nmero real. Revisa que los arreglos tengan definido el tamao correcto.

Pgina 23 de 57

2.4.2 Teora de lenguajes de programacin

GRAFICO 12: LAMBDA EN MINUSCULA La teora de lenguajes de programacin es una rama de la informtica que se encarga del diseo, implementacin, anlisis, caracterizacin y clasificacin de lenguajes de programacin y sus caractersticas. Es un campo multi-disciplinar, dependiendo tanto de (y en algunos casos afectando) matemticas, ingeniera del software, lingstica, e incluso ciencias cognitivas. Es una rama bien reconocida de la informtica, y a fecha de 2006, un rea activa de investigacin, con resultados publicados en un gran nmero de revistas dedicadas a la PLT, as como en general en publicaciones de informtica e ingeniera.La mayora de los programas de los estudiantes universitarios de informtica requieren trabajar en este tema. Un smbolo no oficial de la teora de lenguajes de programacin es la letra griega lambda en minsculas. Este uso deriva del clculo lambda, un modelo computacional ampliamente usado por investigadores de lenguajes de programacin. Muchos textos y artculos sobre programacin y lenguajes de programacin utilizan lambda de una u otra manera. Ilustra la portada del texto clsico Estructura e Interpretacin de Programas de Ordenador, y el ttulo de muchos de los llamados Artculos Lambda, escritos por Gerald Jay Sussman y Guy Steele, creadores del lenguaje de programacin Scheme. Un sitio muy conocido sobre teora de lenguajes de programacin se llama Lambda the Ultimate (Lambda el primordial), en honor al

2.4.2.1 Subdisciplinas y campos relacionados


Hay varios campos de estudio que o bien caen dentro de la teora de lenguajes de programacin, o bien tienen una profunda influencia en ella; muchos de estos se superponen considerablemente. Teora de los compiladores es la base formal sobre la escritura de compiladores (o ms generalmente traductores); programas que traducen un programa escrito en un lenguaje a otra forma. Las acciones de un compilador se dividen tradicionalmente en anlisis sintctico (escanear y pasear), anlisis semntico (determinando que es lo que debera de hacer un programa), optimizacin (mejorando el rendimiento indicado por cierta medida, tpicamente la velocidad de ejecucin) y generacin de cdigo (generando la salida de un programa equivalente en el lenguaje deseado; a menudo el set de instrucciones de una CPU). La Teora de tipos es el estudio de sistemas de tipos, que son "mtodos sintcticos tratables para proveer la ausencia de ciertos comportamientos de programa mediante la clasificacin de frases segn los tipos de valores que

Pgina 24 de 57

computan." (Types and Programming Languages, MIT Press, 2002). Muchos lenguajes de programacin se distinguen por las caractersticas de sus sistemas de tipos. La Semntica formal es la especificacin formar del comportamiento de programas de ordenador y lenguajes de programacin. La Transformacin de programas es el proceso de transformar un programa de una forma (lenguaje) a otra forma; el anlisis de programas es problema general de examinar un programa mediante la determinacin de sus caractersticas clave (como la ausencia de clases de errores de programa). Sistemas en tiempo de ejecucin se refiere al desarrollo de entornos runtime para lenguajes de programacin y sus componentes, incluyendo mquinas virtuales, recoleccin de basura, e interfaces para funciones externas. Anlisis comparativo de lenguajes de programacin busca clasificar los lenguajes de programacin en diferentes tipos basados en sus caractersticas; amplias categoras de diferentes lenguajes de programacin se conocen frecuentemente como paradigmas de computacin. Meta programacin es la generacin de programas de mayor orden que, cuando se ejecutan, producen programas (posiblemente en un lenguaje diferente, o en un subconjunto del lenguaje original) como resultado. Lenguajes dedicados son lenguajes construidos para resolver problemas en un dominio de problemas en particular de manera eficiente. Adems, PLT hace uso de muchas otras ramas de las matemticas, ingeniera del software, lingstica, e incluso ciencias cognitivas. Lenguajes formales para expresar algoritmos y las propiedades de estos lenguajes.

Pgina 25 de 57

2.5 Base de Datos

GRAFICO 13: BASE DE DATOS

2.5.1 Bases de datos


Una base de datos o banco de datos (en ocasiones abreviada con la sigla BD o con la abreviatura b. d.) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayora por documentos y textos impresos en papel e indexados para su consulta. Actualmente, y debido al desarrollo tecnolgico de campos como la informtica y la electrnica, la mayora de las bases de datos estn en formato digital (electrnico), que ofrece un amplio rango de soluciones al problema de almacenar datos. Existen programas denominados sistemas gestores de bases de datos, abreviados SGBD, que permiten almacenar y posteriormente acceder a los datos de forma rpida y estructurada. Las propiedades de estos SGBD, as como su utilizacin y administracin, se estudian dentro del mbito de la informtica. Las aplicaciones ms usuales son para la gestin de empresas e instituciones pblicas. Tambin son ampliamente utilizadas en entornos cientficos con el objeto de almacenar la informacin experimental. Aunque las bases de datos pueden contener muchos tipos de datos, algunos de ellos se encuentran protegidos por las leyes de varios pases. Por ejemplo, en Espaa los datos personales se encuentran protegidos por la Ley Orgnica de Proteccin de Datos de Carcter Personal (LOPD).

Pgina 26 de 57

2.5.1.1 Tipos de base de datos


Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se est manejando, la utilidad de las mismas o las necesidades que satisfagan. Bases de datos estticas.- Son bases de datos de slo lectura, utilizadas primordialmente para almacenar datos histricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a travs del tiempo, realizar proyecciones, tomar decisiones y realizar anlisis de datos para inteligencia empresarial. Bases de datos dinmicas.- stas son bases de datos donde la informacin almacenada se modifica con el tiempo, permitiendo operaciones como actualizacin, borrado y adicin de datos, adems de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada e n un sistema de informacin de un supermercado, una farmacia, un videoclub o una empresa. Bases de datos bibliogrficas .- Slo contienen un subrogante (representante) de la fuente primaria, que permite localizarla. Un registro tpico de una base de datos bibliogrfica contiene informacin sobre el autor, fecha de publicacin, editorial, ttulo, edicin, de una determinada publicacin, etc. Puede contener un resumen o extracto de la publicacin original, pero nunca el texto completo, porque si no, estaramo s en presencia de una base de datos a texto completo (o de fuentes primarias ver ms abajo). Como su nombre lo indica, el contenido son cifras o nmeros. Por ejemplo, una coleccin de resultados de anlisis de laboratorio, entre otras. Bases de datos de texto completo.- Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una coleccin de revistas cientficas. Bases de datos o "bibliotecas" de informacin qumica o biolgica.- Son bases de datos que almacenan diferentes tipos de informacin proveniente de la qumica, las ciencias de la vida o mdicas. Se pueden considerar en varios subtipos: Las que almacenan secuencias de nucletidos o protenas. Las bases de datos de rutas metablicas. Bases de datos de estructura, comprende los registros de datos experimentales sobre estructuras 3D de biomolculas Bases de datos clnicas.

Pgina 27 de 57

Bases de datos bibliogrficas (biolgicas, qumicas, mdicas y de otros campos): PubChem, Medline, EBSCOhost. Bases de datos jerrquicas.- En este modelo los datos se organizan en una forma similar a un rbol (visto al revs), en donde un nodo padre de informacin puede tener varios hijos. El nodo que no tiene padres es llamado raz, y a los nodos que no tienen hijos se los conoce como hojas. Las bases de datos jerrquicas son especialmente tiles en el caso de aplicaciones que manejan un gran volumen de informacin y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento. Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos. Base de datos de red.- ste es un modelo ligeramente distinto del jerrquico; su diferencia fundamental es la modificacin del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerrquico). Fue una gran mejora con respecto al modelo jerrquico, ya que ofreca una solucin eficiente al problema de redundancia de datos; pero, aun as, la dificultad que significa administrar la informacin en una base de datos de red ha significado que sea un modelo utilizado en su mayora por programadores ms que por usuarios finales. Bases de datos transaccionales.- Son bases de datos cuyo nico fin es el envo y recepcin de datos a gran des velocidades, estas bases son muy poco comunes y estn dirigidas por lo general al entorno de anlisis de calidad, datos de produccin e industrial, es importante entender que su fin nico es recolectar y recuperar los datos a la mayor velocidad posible , por lo tanto la redundancia y duplicacin de informacin no es un problema como con las dems bases de datos, por lo general para poderlas aprovechar al mximo permiten algn tipo de conectividad a bases de datos relacionales. Un ejemplo habitual de transaccin es el traspaso de una cantidad de dinero entre cuentas bancarias. Normalmente se realiza mediante dos operaciones distintas, una en la que se decrementa el saldo de la cuenta origen y otra en la que incrementamos el saldo de la cuenta destino. Para garantizar la atomicidad del sistema (es decir, para que no aparezca o desaparezca dinero), las dos operaciones deben ser atmicas, es decir, el sistema debe garantizar que, bajo cualquier circunstancia (incluso una cada del sistema), el resultado final es que, o bien se han realizado las dos operaciones, o bien no se ha realizado ninguna.

Pgina 28 de 57

Bases de datos relacionales.- ste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinmicamente. Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en San Jos (California), no tard en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podran considerar se en forma lgica como conjuntos de datos llamados "tuplas". Pese a que sta es la teora de las bases de datos relacionales creadas por Codd, la mayora de las veces se conceptualiza de una manera ms fcil de imaginar. Esto es pensando en cada relacin como si fuese una tabla que est compuesta por registros (las filas de una tabla), que representaran las tuplas, y campos (las columnas de una tabla). En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerrquico y el de red). Esto tiene la considerable ventaja de que es ms fcil de entender y de utilizar para un usuario espordico de la base de datos. La informacin puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la informacin. El lenguaje ms habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estndar implementado por los principales motores o sistemas de gestin de bases de datos relacionales. Durante su diseo, una base de datos relacional pasa por un proceso al que se le conoce como normalizacin de una base de datos. Durante los aos 80 la aparicin de dBASE produjo una revolucin en los lenguajes de programacin y sistemas de administracin de datos. Aunque nunca debe olvidarse que dBase no utilizaba SQL como lenguaje base para su gestin. Bases de datos multidimensionales.- Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creacin de Cubos OLAP. Bsicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de datos relacional podra serlo tambin en una base de datos multidimensional), la diferencia est m s bien a nivel conceptual; en las bases de datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o bien representan dimensiones de la tabla, o bien representan mtricas que se desean estudiar. Bases de datos orientadas a objetos.- Este modelo, bastante reciente, y propio de los modelos informticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento).

Pgina 29 de 57

Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos: Encapsulacin - Propiedad que permite ocultar la informacin al resto de los objetos, impidiendo as accesos incorrectos o conflictos. Herencia - Propiedad a travs de la cual los objetos heredan comportamiento dentro de una jerarqua de clases. Polimorfismo - Propiedad de una operacin mediante la cual puede ser aplicada a distintos tipos de objetos. En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definicin de la base de datos. Una operacin (llamada funcin) se especifica en dos partes. La interfaz (o signatura) de una operacin incluye el nombre de la operacin y los tipos de datos de sus argumentos (o parmetros). La implementacin (o mtodo) de la operacin se especifica separadamente y puede modificarse sin afectar la interfaz. Los programas de aplicacin de los usuarios pueden operar sobre los datos invocando a dichas operaciones a travs de sus nombres y argumentos, sea cual sea la forma en la que se han implementado. Esto podra denominarse independencia entre programas y operaciones. SQL: 2003, es el estndar de SQL92 ampliado, soporta los conceptos orientados a objetos y mantiene la compatibilidad con SQL92. Bases de datos documentales.- Permiten la indexacin a texto completo, y en lneas generales realizar bsquedas ms potentes. Tesaurus es un sistema de ndices optimizado para este tipo de bases de datos. Bases de datos deductivas.- Un sistema de base de datos deductiva, es un sistema de base de datos pero con la diferencia de que permite hacer deducciones a travs de inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base de datos. Las bases de datos deductivas son tambin llamadas bases de datos lgicas, a raz de que se basa en lgica matemtica. Este tipo de base de datos surge debido a las limitaciones de la Base de Datos Relacional de responder a consultas recursivas y de deducir relaciones indirectas de los datos almacenados en la base de datos.

2.5.2 Ventajas
Uso de reglas lgicas para expresar las consultas. Permite responder consultas recursivas. Cuenta con negaciones estratificadas Capacidad de obtener nueva informacin a travs de la ya almacenada en la base de datos mediante inferencia. Uso de algoritmos de optimizacin de consultas. Soporta objetos y conjuntos complejos.

Pgina 30 de 57

2.5.3 Desventajas
Crear procedimientos eficaces de deduccin para evitar caer en bucles infinitos. Encontrar criterios que decidan la utilizacin de una ley como regla de deduccin. Replantear las convenciones habituales de la base de datos.

2.5.4 Minera de datos


La minera de datos (es la etapa de anlisis de "Knowledge Discovery in Databases" o KDD), es un campo de las ciencias de la computacin, es el proceso que intenta descubrir patrones en grandes volmenes de conjuntos de datos. Utiliza los mtodos de la inteligencia artificial, aprendizaje automtico, estadstica y sistemas de bases de datos. El objetivo general del proceso de minera de datos consiste en extraer informacin de un conjunto de datos y la transformndola en una estructura comprensible para su uso posterior. Adems de la etapa de anlisis en bruto, que involucra aspectos de bases de datos y gestin de datos, procesamiento de datos, el modelo y las consideraciones de inferencia, mtricas de Intereses, consideraciones de la Teora de la complejidad computacional, post-procesamiento de las estructuras descubiertas, la visualizacin y actualizacin en lnea. El trmino es una palabra de moda, y es frecuentemente mal utilizado para referirse a cualquier forma de datos a gran escala o procesamiento de la informacin (recoleccin, extraccin, almacenamiento, anlisis y estadsticas), pero tambin se ha generalizado a cualquier tipo de sistema de apoyo informtico decisin, incluyendo la inteligencia artificial, aprendizaje automtico y la inteligencia empresarial. En el uso de la palabra, el trmino clave es el descubrimiento, comnmente se define como "la deteccin de algo nuevo". Incluso el popular libro "La minera de datos: sistema de prcticas herramientas de aprendizaje y tcnicas con Java" (que cubre todo el material de aprendizaje automtico) originalmente iba a ser llamado simplemente "la mquina de aprendizaje prctico", y el trmino "minera de datos" no se aadi por razones de marketing. A menudo, los trminos ms generales "(gran escala) el anlisis de datos", o "anlisis" -. O cuando se refiere a los mtodos actuales, la inteligencia artificial y aprendizaje automtico, son ms apropiados. La tarea de minera de datos real es el anlisis automtico o semi-automtico de grandes cantidades de datos para extraer patrones interesantes hasta ahora desconocidos, como los grupos de registros de datos (anlisis cluster), registros poco usuales (la deteccin de anomalas) y dependencias (Asociacin Minera regla). Esto generalmente implica el uso de tcnicas de bases de datos como los ndices espaciales. Estos patrones pueden entonces ser visto como una especie de resumen de los datos de entrada, y puede ser utilizado en el anlisis adicional o, por ejemplo, en la mquina de aprendizaje y anlisis predictivo. Por ejemplo, el paso de minera de datos podra identificar varios grupos en los datos, que luego pueden ser utilizados para obtener resultados ms precisos de prediccin por un sistema de soporte de decisiones. Ni la recoleccin de datos, preparacin de datos, ni la interpretacin de los resultados y la informacin son parte de la

Pgina 31 de 57

etapa de minera de datos, pero que pertenecen a todo el proceso KDD como pasos adicionales. Los trminos relacionados con el dragado de datos, la pesca de datos y espionaje de los datos se refieren a la utilizacin de mtodos de minera de datos a las partes de la muestra de un conjunto de datos de poblacin ms grandes establecidas que son (o pueden ser) demasiado pequeo para las inferencias estadsticas fiables que se hizo acerca de la validez de cualquier patrones descubiertos. Estos mtodos pueden, sin embargo, ser utilizado en la creacin de nuevas hiptesis que se prueba contra las poblaciones de datos ms grandes.

2.5.4.1 Proceso
Un proceso tpico de minera de datos consta de los siguientes pasos generales: Seleccin del conjunto de datos, tanto en lo que se refiere a las variables objetivo (aquellas que se quiere predecir, calcular o inferir), como a las variables independientes (las que sirven para hacer el clculo o proceso), como posiblemente al muestreo de los registros disponibles. Anlisis de las propiedades de los datos, en especial los histogramas, diagramas de dispersin, presencia de valores atpicos y ausencia de datos (valores nulos). Transformacin del conjunto de datos de entrada, se realizar de diversas formas en funcin del anlisis previo, con el objetivo de prepararlo para aplicar la tcnica de minera de datos que mejor se adapte a los datos y al problema, a este paso tambin se le conoce como pre procesamiento de los datos. Seleccionar y aplicar la tcnica de minera de datos, se construye el modelo predictivo, de clasificacin o segmentacin. Extraccin de conocimiento, mediante una tcnica de minera de datos, se obtiene un modelo de conocimiento, que representa patrones de comportamiento observados en los valores de las variables del problema o relaciones de asociacin entre dichas variables. Tambin pueden usarse varias tcnicas a la vez para generar distintos modelos, aunque generalmente cada tcnica obliga a un pre procesado diferente de los datos. Interpretacin y evaluacin de datos, una vez obtenido el modelo, se debe proceder a su validacin comprobando que las conclusiones que arroja son vlidas y suficientemente satisfactorias. En el caso de haber obtenido varios modelos mediante el uso de distintas tcnicas, se deben comparar los modelos en busca de aquel que se ajuste mejor al problema. Si ninguno de los modelos alcanza los resultados esperados, debe alterarse alguno de los pasos anteriores para generar nuevos modelos. Si el modelo final no superara esta evaluacin el proceso se podra repetir desde el principio o, si el experto lo considera oportuno, a partir de cualquiera de los pasos anteriores. Esta retroalimentacin se podr repetir cuantas veces se considere necesario hasta obtener un modelo vlido. Una vez validado el modelo, si resulta ser aceptable (proporciona salidas adecuadas y/o con mrgenes de error admisibles) ste ya est listo para su explotacin. Los modelos obtenidos por tcnicas de minera de datos se aplican incorporndolos en los sistemas de anlisis de informacin de las organizaciones, e incluso, en los sistemas transaccionales. En este sentido cabe destacar los esfuerzos del Data Mining Group, que est estandarizando el lenguaje PMML (Predictive Model Markup Language), de manera que los modelos de minera de datos sean interoperables en distintas plataformas, con
Pgina 32 de 57

independencia del sistema con el que han sido construidos. Los principales fabricantes de sistemas de bases de datos y programas de anlisis de la informacin hacen uso de este estndar. Tradicionalmente, las tcnicas de minera de datos se aplicaban sobre informacin contenida en almacenes de datos. De hecho, muchas grandes empresas e instituciones han creado y alimentan bases de datos especialmente diseadas para proyectos de minera de datos en las que centralizan informacin potencialmente til de todas sus reas de negocio. No obstante, actualmente est cobrando una importancia cada vez mayor la minera de datos desestructurados como informacin contenida en ficheros de texto, en Internet, etc.

2.5.4.2 Tcnicas de minera de datos


Como ya se ha comentado, las tcnicas de la minera de datos provienen de la Inteligencia artificial y de la estadstica, dichas tcnicas, no son ms que algoritmos, ms o menos sofisticados que se aplican sobre un conjunto de datos para obtener unos resultados.

2.5.4.3 Aplicaciones
Negocios.- La minera de datos puede contribuir significativamente en las aplicaciones de administracin empresarial basada en la relacin con el cliente. En lugar de contactar con el cliente de forma indiscriminada a tr avs de un centro de llamadas o enviando cartas, slo se contactar con aquellos que se perciba que tienen una mayor probabilidad de responder positivamente a una determinada oferta o promocin. Por lo general, las empresas que emplean minera de datos ven rpidamente el retorno de la inversin, pero tambin reconocen que el nmero de modelos predictivos desarrollados puede crecer muy rpidamente. En lugar de crear modelos para predecir qu clientes pueden cambiar, la empresa podra construir modelos separados para cada regin y/o para cada tipo de cliente. Tambin puede querer determinar qu clientes van a ser rentables durante una ventana de tiempo (una quincena, un mes,...) y slo enviar las ofertas a las personas que es probable que sean rentables. Para mantener esta cantidad de modelos, es necesario gestionar las versiones de cada modelo y pasar a una minera de datos lo ms automatizada posible. Hbitos de compra en supermercados .- El ejemplo clsico de aplicacin de la minera de datos tiene que ver con la deteccin de hbitos de compra en supermercados. Un estudio muy citado detect que los viernes haba una cantidad inusualmente elevada de clientes que adquiran a la vez paales y cerveza. Se detect que se deba a que dicho da solan acudir
Pgina 33 de 57

al supermercado padres jvenes cuya perspectiva para el fin de semana consista en quedarse en casa cuidando de su hijo y viendo la televisin con una cerveza en la mano. El supermercado pudo incrementar sus ventas de cerveza colocndolas prximas a los paales para fomentar las ventas compulsivas. Patrones de fuga.- Un ejemplo ms habitual es el de la deteccin de patrones de fuga. En muchas industrias como la banca, las telecomunicaciones, etc. existe un comprensible inters en detectar cuanto antes aquellos clientes que puedan estar pensando en rescindir sus contratos para, posiblemente, pasarse a la competencia. A estos clientes y en funcin de su valor se les podran hacer ofertas per sonalizadas, ofrecer promociones especiales, etc., con el objetivo ltimo de retenerlos. La minera de datos ayuda a determinar qu clientes son los ms proclives a darse de baja estudiando sus patrones de comportamiento y comparndolos con muestras de cli entes que, efectivamente, se dieron de baja en el pasado. Fraudes.- Un caso anlogo es el de la deteccin de transacciones de lavado de dinero o de fraude en el uso de tarjetas de crdito o de servicios de telefona mvil e, incluso, en la relacin de los contribuyentes con el fisco. Generalmente, estas operaciones fraudulentas o ilegales suelen seguir patrones caractersticos que permiten, con cierto grado de probabilidad, distinguirlas de las legtimas y desarrollar as mecanismos para tomar medidas rpidas frente a ellas. Recursos humanos.- La minera de datos tambin puede ser til para los departamentos de recursos humanos en la identificacin de las caractersticas de sus empleados de mayor xito. La informacin obtenida puede ayudar a la contrataci n de personal, centrndose en los esfuerzos de sus empleados y los resultados obtenidos por stos. Adems, la ayuda ofrecida por las aplicaciones para Direccin estratgica en una empresa se traducen en la obtencin de ventajas a nivel corporativo, tales como mejorar el margen de beneficios o compartir objetivos; y en la mejora de las decisiones operativas, tales como desarrollo de planes de produccin o gestin de mano de obra. Comportamiento en Internet.- Tambin es un rea en boga el del anlisis del comportamiento de los visitantes sobre todo, cuando son clientes potenciales en una pgina de Internet. O la utilizacin de la informacin obtenida por medios ms o menos legtimos sobre ellos para ofrecerles propaganda

Pgina 34 de 57

adaptada especficamente a su perfil. O para, una vez que adquieren un determinado producto, saber inmediatamente qu otro ofrecerle teniendo en cuenta la informacin histrica disponible acerca de los clientes que han comprado el primero . Terrorismo.- La minera de datos ha sido citada como el mtodo por el cual la unidad Able Danger del Ejrcito de los EE. UU. Haba identificado al lder de los atentados del 11 de septiembre de 2001, Mohammed Atta, y a otros tres secuestradores del "11-S" como posibles miembros de una clula de Al Qaeda que operan en los EE. UU. Ms de un ao antes del ataque. Se ha sugerido que tanto la Agencia Central de Inteligencia y sus homloga canadiense, Servicio de Inteligencia y Seguridad Canadiense, tambin han empleado este mtodo. Juegos.- Desde comienzos de la dcada de 1960, con la disponibilidad de orculos para determinados juegos combinacionales, tambin llamados finales de juego de tablero (por ejemplo, para las tres en raya o en finales de ajedrez) con cualquier configuracin de inicio, se ha abierto una nueva rea en la minera de datos que consiste en la extraccin de estrategias utilizadas por personas para estos orculos. Los planteamientos actuales sobre reconocimiento de patrones, no parecen poder aplicarse con xito al funcionamiento de estos orculos. En su lugar, la produccin de patrones perspicaces se basa en una amplia experimentacin con bases de datos sobre esos finales de juego, combinado con un estudio intensivo de los propios finales de juego en problemas bien diseados y con conocimiento de la tcnica (datos previos sobre el final del juego). Ejemplos notables de investigadores que trabajan en este campo son Berlekamp en el juego de puntos -y-cajas (o Timbiriche) y John Nunn en finales de ajedrez. Gentica.- En el estudio de la gentica humana, el objetivo principal es entender la relacin cartogrfica entre las partes y la variacin individual en las secuencias del ADN humano y la variabilidad en la susceptibilidad a las enfermedades. En trminos ms llanos, se trata de saber cmo los cambios en la secuencia de ADN de un individuo afectan al riesgo de desarrollar enfermedades comunes (como por ejemplo el cncer). Esto es muy importante para ayudar a mejorar el diagnstico, prevencin y trat amiento de las enfermedades. La tcnica de minera de datos que se utiliza para realizar esta tarea se conoce como "reduccin de dimensionalidad multifactorial"

Pgina 35 de 57

Ingeniera elctrica.- En el mbito de la ingeniera elctrica, las tcnicas minera de datos han sido ampliamente utilizadas para monitorizar las condiciones de las instalaciones de alta tensin. La finalidad de esta monitorizacin es obtener informacin valiosa sobre el estado del aislamiento de los equipos. Para la vigilancia de las vibraciones o el anlisis de los cambios de carga en transformadores se utilizan ciertas tcnicas para agrupacin de datos (clustering) tales como los Mapas Auto-Organizativos (SOM, Self-organizing map). Estos mapas sirven para detectar condiciones anormales y para estimar la naturaleza de dichas anomalas.

2.6 Sistemas concurrentes, paralelos y distribuidos


2.6.1 Programacin concurrente
La computacin concurrente es la simultaneidad en la ejecucin de mltiples tareas interactivas. Estas tareas pueden ser un conjunto de procesos o hilos de ejecucin creados por un nico programa. Las tareas se pueden ejecutar en una sola unidad central de proceso (multiprogramacin), en varios procesadores o en una red de computadores distribuidos. La programacin concurrente est relacionada con la programacin paralela, pero enfatiza ms la interaccin entre tareas. As, la correcta secuencia de interacciones o comunicaciones entre los procesos y el acceso coordinado de recursos que se comparten por todos los procesos o tareas son las claves de esta disciplina. Los pioneros en este campo fueron Edsger Dijkstra, Per Brinch Hansen, y C. A. R. Hoare.

2.6.2 Redes de computadoras


Una red de computadoras, tambin llamada red de ordenadores, red de comunicaciones de datos o red informtica, es un conjunto de equipos informticos y software conectados entre s por medio de dispositivos fsicos que envan y reciben impulsos elctricos, ondas electromagnticas o cualquier otro medio para el transporte de datos, con la finalidad de compartir informacin, recursos y ofrecer servicios.1 Como en todo proceso de comunicacin se requiere de un emisor, un mensaje, un medio y un receptor. La finalidad principal para la creacin de una red de computadoras es compartir los recursos y la informacin en la distancia, asegurar la confiabilidad y la disponibilidad de la informacin, aumentar la velocidad de transmisin de los datos y reducir el costo general de estas acciones.2 Un ejemplo es Internet, la cual es una gran red de millones de computadoras ubicadas en distintos puntos del planeta interconectadas bsicamente para compartir informacin y recursos. La estructura y el modo de funcionamiento de las redes informticas actuales estn definidos en varios estndares, siendo el ms importante y extendido de todos ellos el modelo TCP/IP basado en el modelo de referencia OSI. Este

Pgina 36 de 57

ltimo, estructura cada red en siete capas con funciones concretas pero relacionadas entre s; en TCP/IP se reducen a cuatro capas. Existen multitud de protocolos repartidos por cada capa, los cuales tambin estn regidos por sus respectivos estndares.3

2.6.2.1 Software
Sistema operativo de red: permite la interconexin de ordenadores para poder acceder a los servicios y recursos. Al igual que un equipo no puede trabajar sin un sistema operativo, una red de equipos no puede funcionar sin un sistema operativo de red. En muchos casos el sistema operativo de red es parte del sistema operativo de los servidores y de los clientes, por ejemplo en Linux y Microsoft Windows. Software de aplicacin: en ltima instancia, todos los elementos se utilizan para que el usuario de cada estacin, pueda utilizar sus programas y archivos especficos. Este software puede ser tan amplio como se necesite ya que pueda incluir procesadores de texto, paquetes integrados, sistemas administrativos de contabilidad y reas afines, sistemas especializados, correos electrnicos, etc. El software adecuado en el sistema operativo de red elegido y con los protocolos necesarios permite crear servidores para aquellos servicios que se necesiten.

2.6.2.2 Hardware
Para lograr el enlace entre las computadoras y los medios de transmisin (cables de red o medios fsicos para redes almbricas e infrarrojos o radiofrecuencias para redes inalmbricas), es necesaria la intervencin de una tarjeta de red, o NIC (Network Card Interface), con la cual se puedan enviar y recibir paquetes de datos desde y hacia otras computadoras, empleando un protocolo para su comunicacin y convirtiendo a esos datos a un formato que pueda ser transmitido por el medio (bits, ceros y unos). Cabe sealar que a cada tarjeta de red le es asignado un identificador nico por su fabricante, conocido como direccin MAC (Media Access Control), que consta de 48 bits (6 bytes). Dicho identificador permite direccionar el trfico de datos de la red del emisor al receptor adecuado. El trabajo del adaptador de red es el de convertir las seales elctricas que viajan por el cable (ej: red Ethernet) o las ondas de radio (ej: red Wi-Fi) en una seal que pueda interpretar el ordenador. Estos adaptadores son unas tarjetas PCI que se conectan en las ranuras de expansin del ordenador. En el caso de ordenadores porttiles, estas tarjetas vienen en formato PCMCIA o similares. En los ordenadores del siglo XXI, tanto de sobremesa como porttiles, estas tarjetas ya vienen integradas en la placa base. Adaptador de red es el nombre genrico que reciben los dispositivos encargados de realizar dicha conversin. Esto significa que estos adaptadores pueden ser tanto Ethernet, como wireless, as como de otros tipos como fibra ptica, coaxial, etc. Tambin las velocidades disponibles varan segn el tipo de adaptador; stas pueden ser, en Ethernet, de 10, 100, 1000 Mbps o 10000, y en los inalmbricos, principalmente, de 11, 54, 300 Mbps.

Pgina 37 de 57

2.6.3 Cmputo paralelo: Computacin paralela

GRAFICO 14: COMPUTO PARALELO La computacin paralela es una tcnica de programacin en la que muchas instrucciones se ejecutan simultneamente.1 Se basa en el principio de que los problemas grandes se pueden dividir en partes ms pequeas que pueden resolverse de forma paralela (no es lo mismo que concurrente). Existen varios tipos de computacin paralela: paralelismo a nivel de bit, paralelismo a nivel de instruccin, paralelismo de datos y paralelismo de tareas. Durante muchos aos, la computacin paralela se ha aplicado en la computacin de altas prestaciones, pero el inters en ella ha aumentado en los ltimos aos debido a las restricciones fsicas que impiden el escalado en frecuencia. La computacin paralela se ha convertido en el paradigma dominante en la arquitectura de computadores, principalmente en los procesadores multincleo.2 Sin embargo, recientemente, el consumo de energa de los ordenadores paralelos se ha convertido en una preocupacin.3 Los ordenadores paralelos se pueden clasificar segn el nivel de paralelismo que admite su hardware: los ordenadores multincleo y multiproceso tienen varios elementos de procesamiento en una sola mquina, mientras que los clusters, los MPP y los grids emplean varios ordenadores para trabajar en la misma tarea. Los programas de ordenador paralelos son ms difciles de escribir que los secuenciales4 porque el paralelismo introduce nuevos tipos de errores de software, siendo las condiciones de carrera los ms comunes. La comunicacin y la sincronizacin entre las diferentes subtareas son tpicamente las grandes barreras para conseguir un buen rendimiento de los programas paralelos. El incremento de velocidad que consigue un programa como resultado de la paralelizacin viene dado por la ley de Amdahl.

2.6.4 Sistemas Distribuidos: Computacin distribuida


La computacin distribuida o informtica en malla, es un nuevo modelo para resolver problemas de computacin masiva utilizando un gran nmero de ordenadores organizadas en racimos incrustados en una infraestructura de telecomunicaciones distribuida.

Pgina 38 de 57

2.6.4.1 Sistemas distribuidos


Un sistema distribuido se define como: una coleccin de computadoras separadas fsicamente y conectadas entre s por una red de comunicaciones distribuida; cada mquina posee sus componentes de hardware y software que el usuario percibe como un solo sistema (no necesita saber qu cosas estn en qu mquinas). El usuario accede a los recursos remotos (RPC) de la misma manera en que accede a recursos locales, o un grupo de computadores que usan un software para conseguir un objetivo en comn. Los sistemas distribuidos deben ser muy confiables, ya que si un componente del sistema se descompone otro componente debe ser capaz de reemplazarlo, esto se denomina tolerancia a fallos. El tamao de un sistema distribuido puede ser muy variado, ya sean decenas de hosts (red de rea local), centenas de hosts (red de rea metropolitana), y miles o millones de hosts (Internet); esto se denomina escalabilidad. 1

2.6.4.2 Caractersticas
Para cada uno de los usuarios debe ser similar al trabajo en el Sistema Centralizado. Seguridad interna en el sistema distribuido. Se ejecuta en mltiples Computadoras. Tiene varias copias del mismo Sistema Operativo o de diferentes Sistemas Operativos que proveen los mismos servicios. Entorno de trabajo cmodo. Dependiente de redes (LAN, MAN, WAN, etc.). Compatibilidad entre los dispositivos conectados. Transparencia (El uso de mltiples procesadores y el acceso remoto debe ser invisible). Interaccin entre los equipos. Diseo de software compatible con varios usuarios y sistemas operativos vida extraterrestre.

2.6.4.3 Seguridad
El punto de la seguridad es delicado en este tipo de computacin distribuida pues las conexiones se hacen de forma remota y no local, entonces suelen surgir problemas para controlar el acceso a los otros nodos. Esto puede aprovecharse para un ataque de Dos, aunque la red no va a dejar de funcionar porque uno falle. Esa es una ventaja de este sistema grid.

Pgina 39 de 57

2.7 Inteligencia Artificial

GRAFICO 15: INTELIGENCIA ARTIFICIAL

2.7.1 Inteligencia artificial


En ciencias de la computacin se denomina inteligencia artificial (IA) a la capacidad de razonar de un agente no vivo. John McCarthy, acu el trmino en 1956, la defini: "Es la ciencia e ingeniera de hacer mquinas inteligentes, especialmente programas de cmputo inteligentes. Para explicar la definicin anterior, entindase a un Agente inteligente que permite pensar, evaluar y actuar conforme a ciertos principios de optimizacin y consistencia, para satisfacer algn objetivo o finalidad. De acuerdo al concepto previo, racionalidad es ms general y por ello ms adecuado que inteligencia para definir la naturaleza del objetivo de esta disciplina. Con lo cual , y de manera ms especfica la inteligencia artificial es la disciplina que se encarga de construir procesos que al ser ejecutados sobre una arquitectura fsica producen acciones o resultados que maximizan una medida de rendimiento determinada, basndose en la secuencia de entradas percibidas y en el conocimiento almacenado en tal arquitectura. Existen distintos tipos de conocimiento y medios de representacin del conocimiento, el cual puede ser cargado en el agente por su diseador o puede ser aprendido por el mismo agente utilizando tcnicas de aprendizaje.

Pgina 40 de 57

Tambin se distinguen varios tipos de procesos vlidos para obtener resultados racionales, que determinan el tipo de agente inteligente. De ms simples a ms complejos, los cinco principales tipos de procesos son: Ejecucin de una respuesta predeterminada por cada entrada (anlogas a actos reflejos en seres vivos). Bsqueda del estado requerido en el conjunto de los estados producidos por las acciones posibles. Algoritmos genticos (anlogo al proceso de evolucin de las cadenas de ADN). Redes neuronales artificiales (anlogo al funcionamiento fsico del cerebro de animales y humanos). Razonamiento mediante una lgica formal (anlogo al pensamiento abstracto humano). Tambin existen distintos tipos de percepciones y acciones, pueden ser obtenidas y producidas, respectivamente por sensores fsicos y sensores mecnicos en mquinas, pulsos elctricos u pticos en computadoras, tanto como por entradas y salidas de bits de un software y su entorno software. Varios ejemplos se encuentran en el rea de control de sistemas, planificacin automtica, la habilidad de responder a diagnsticos y a consultas de los consumidores, reconocimiento de escritura, reconocimiento del habla y reconocimiento de patrones. Los sistemas de IA actualmente son parte de la rutina en campos como economa, medicina, ingeniera y la milicia, y se ha usado en gran variedad de aplicaciones de software, juegos de estrategia como ajedrez de computador y otros videojuegos.

2.7.2 Categoras de la inteligencia Artificial


Entre las distintas categoras que posee la inteligencia artificial destacamos las siguientes:

2.7.2.1 Sistemas que piensan como humanos


Estos sistemas tratan de emular el pensamiento humano; por ejemplo las redes neuronales artificiales. La automatizacin de actividades que vinculamos con procesos de pensamiento humano, actividades como la Toma de decisiones, resolucin de problemas, aprendizaje. Sistemas que actan como humanos.- Estos sistemas tratan de actuar como humanos; es decir, imitan el comportamiento humano; por ejemplo la robtica. El estudio de cmo lograr que los computadores realicen tareas que, por el momento, los humanos hacen mejor.

2.7.2.2 Sistemas que piensan racionalmente


Es decir, con lgica (idealmente), tratan de imitar o emular el pensamiento lgico racional del ser humano; por ejemplo los sistemas expertos. El estudio de los clculos que hacen posible percibir, razonar y actuar. Sistemas que actan racionalmente (idealmente). Tratan de emular en forma racional el comportamiento humano; por ejemplo los agentes inteligentes .Est relacionado con conductas inteligentes en artefactos.9

Pgina 41 de 57

2.7.2.3 Inteligencia artificial computacional


La Inteligencia Computacional (tambin conocida como IA subsimblicainductiva) implica desarrollo o aprendizaje interactivo (por ejemplo, modificaciones interactivas de los parmetros en sistemas conexionistas). El aprendizaje se realiza basndose en datos empricos.

2.7.2.4 La inteligencia artificial y los sentimientos


El concepto de IA es an demasiado difuso. Contextualizando, y teniendo en cuenta un punto de vista cientfico, podramos englobar a esta ciencia como la encargada de imitar una persona, y no su cuerpo, sino imitar al cerebro, en todas sus funciones, existentes en el humano o inventadas sobre el desarrollo de una mquina inteligente. A veces, aplicando la definicin de Inteligencia Artificial, se piensa en mquinas inteligentes sin sentimientos, que obstaculizan encontrar la mejor solucin a un problema dado. Muchos pensamos en dispositivos artificiales capaces de concluir miles de premisas a partir de otras premisas dadas, sin que ningn tipo de emocin tenga la opcin de obstaculizar dicha labor. En esta lnea, hay que saber que ya existen sistemas inteligentes. Capaces de tomar decisiones acertadas. Aunque, por el momento, la mayora de los investigadores en el mbito de la Inteligencia Artificial se centran slo en el aspecto racional, muchos de ellos consideran seriamente la posibilidad de incorporar componentes emotivos como indicadores de estado, a fin de aumentar la eficacia de los sistemas inteligentes. Particularmente para los robots mviles, es necesario que cuenten con algo similar a las emociones con el objeto de saber en cada instante y como mnimo qu hacer a continuacin [Pinker, 2001, p. 481]. Al tener sentimientos y, al menos potencialmente, motivaciones, podrn actuar de acuerdo con sus intenciones [Mazlish, 1995, p. 318]. As, se podra equipar a un robot con dispositivos que controlen su medio interno; por ejemplo, que sientan hambre al detectar que su nivel de energa est descendiendo o que sientan miedo cuando aquel est demasiado bajo. Esta seal podra interrumpir los procesos de alto nivel y obligar al robot a conseguir el preciado elemento [Johnson-Laird, 1993, p. 359]. Incluso se podra introducir el dolor o el sufrimiento fsico, a fin de evitar las torpezas de funcionamiento como, por ejemplo, introducir la mano dentro de una cadena de engranajes o saltar desde una cierta altura, lo cual le provocara daos irreparables. Esto significa que los sistemas inteligentes deben ser dotados con mecanismos de retroalimentacin que les permitan tener conocimiento de estados internos, igual que sucede con los humanos que disponen de propiocepcin, intercepcin, nocicepcin, etctera. Esto es fundamental tanto para tomar decisiones como para conservar su propia integridad y seguridad. La retroalimentacin en sistemas est particularmente desarrollada en ciberntica, por ejemplo en el cambio de direccin y velocidad autnomo de un misil, utilizando como parmetro la posicin en cada instante en relacin al objetivo que debe alcanzar. Esto debe ser diferenciado del conocimiento que un sistema o programa

Pgina 42 de 57

computacional puede tener de sus estados internos, por ejemplo la cantidad de ciclos cumplidos en un loop o bucle en sentencias tipo do... for, o la cantidad de memoria disponible para una operacin determinada. A los sistemas inteligentes el no tener en cuenta elementos emocionales les permite no olvidar la meta que deben alcanzar. En los humanos el olvido de la meta o el abandonar las metas por perturbaciones emocionales es un problema que en algunos casos llega a ser incapacitante. Los sistemas inteligentes, al combinar una memoria durable, una asignacin de metas o motivacin, junto a la toma de decisiones y asignacin de prioridades con base en estados actuales y estados meta, logran un comportamiento en extremo eficiente, especialmente ante problemas complejos y peligrosos. En sntesis, lo racional y lo emocional estn de tal manera interrelacionados entre s, que se podra decir que no slo no son aspectos contradictorios sino que son hasta cierto punto complementarios.

2.7.2.5 Aplicaciones de la inteligencia artificial


Lingstica computacional Minera de datos (Data Mining) Industriales. Medicina Mundos virtuales Procesamiento de lenguaje natural (Natural Language Processing) Robtica Mecatrnica Sistemas de apoyo a la decisin Videojuegos Prototipos informticos Anlisis de sistemas dinmicos. Smart Process Management Simulacin de multitudes

2.7.2 Razonamiento automatizado


El razonamiento automatizado (o razonamiento automtico) es un rea de las ciencias de la computacin dedicado a comprender diferentes aspectos del razonamiento de forma que permita la creacin de programas con el objeto de permitir a los ordenadores razonar de forma autnoma o casi autnoma. Como tal, est considerado como un subcampo de la inteligencia artificial, pero tiene, tambin, conexiones con la ciencia computacional terica e incluso filosofa. Sus siglas en ingls son AR, del trmino Automated reasoning. Las sub-reas ms destacadas del razonamiento automtico son, probablemente, la demostracin automtica de teoremas (y la menos automatizada, pero ms pragmtica demostracin interactiva de teoremas) y la comprobacin automatizada de pruebas (considerada como razonamiento correcto garantizado bajo condiciones fijas), pero se ha desarrollado tambin un trabajo extenso en el razonamiento por analoga, induccin y abduccin. Otros
Pgina 43 de 57

temas importantes son el razonamiento con incertidumbre y razonamiento no montono.

2.7.3 Robtica
La robtica es la rama de la tecnologa diferenciada de la telecomunicacin (cuya funcin es cubrir todas las formas de comunicacin a distancia) que se dedica al diseo, construccin, operacin, disposicin estructural, manufactura y aplicacin de los robots. La robtica combina diversas disciplinas como son: la mecnica, la electrnica, la informtica, la inteligencia artificial y la ingeniera de control.3 Otras reas importantes en robtica son el lgebra, los autmatas programables y las mquinas de estados. El trmino robot se populariz con el xito de la obra RUR (Robots Universales Rossum), escrita por Karel Capek en 1920. En la traduccin al ingls de dicha obra, la palabra checa robota, que significa trabajos forzados, fue traducida al ingls como robot.

2.7.4 Visin por computador


La visin artificial, tambin conocida como visin por computador (del ingls computer vision) o visin tcnica, es un subcampo de la inteligencia artificial. El propsito de la visin artificial es programar un computador para que "entienda" una escena o las caractersticas de una imagen. Cuando la retina est daada o no funciona bien, los fotorreceptores dejan de funcionar, pero eso no quiere decir que toda la estructura del sistema visual humano no pueda seguir funcionando. Por ello, algunos cientficos estn desarrollando microchips de silicio que puedan dotar de visin artificial a aquellas personas a quienes no les funcionan los fotorreceptores. Como ya sabemos, la informacin captada por los fotorreceptores se transmite a las clulas ganglionales, donde se interpreta y se manda al cerebro a travs del nervio ptico. Existen enfermedades que afectan a estas clulas como la tetignosis pigmentaria o la DMAE, que dejan inoperativos los fotorreceptores pero no daan las clulas ganglionales o el nervio ptico, con lo cual el problema no es que la informacin no puede llegar al cerebro, sino que no se puede captar. En estos casos se pueden desarrollar unos conos y bastones artificiales. Los requisitos de los microchips para que cumplan la funcin de los fotorreceptores son: Que sean lo suficientemente pequeos como para implantarlos en el ojo. Que tengan una fuente de abastecimiento de energa continua. Que no causen rechazo, es decir, que sean biocompatibles con los tejidos del ojo. Uno de los micros que se ha desarrollado con xito por el momento es un dispositivo de 2 mm de dimetro y tan delgado como un cabello humano. Contiene 3,500 clulas solares microscpicas que imitan a los bastones y los conos y convierten la luz en impulsos elctricos. Se abastece de energa solar, con lo que se evitan cables y bateras.

Pgina 44 de 57

2.7.4.1 Produccin de la imagen digital en microscopa ptica


La digitalizacin de una imagen electrnica o de video capturada por un microscopio ptico permite obtener un incremento espectacular en las posibilidades de ampliar caractersticas, extraer informacin o modificar la imagen. En comparacin con el mecanismo tradicional de captura de imgenes, la fotomicrografa en pelcula, la digitalizacin de la imagen y el proceso de postadquisicin/recuperacin permiten una modificacin reversible de la imagen como matriz ordenada de enteros fundamentalmente libre de ruido, ms que una mera serie de variaciones anlogas en color e intensidad. Esta seccin trata sobre diversos temas de actualidad acerca de la adquisicin y procesamiento de imgenes para microscopa ptica.

2.7.4.2 Propiedades bsicas de las imgenes digitales


Las imgenes de seal continua se reproducen mediante dispositivos electrnicos analgicos que registran los datos de la imagen con precisin utilizando varios mtodos, como una secuencia de fluctuaciones de la seal elctrica o cambios en la naturaleza qumica de la emulsin de una pelcula, que varan continuamente en los diferentes aspectos de la imagen. Para procesar o visualizar en el ordenador una seal continua o una imagen analgica, se debe convertir primero a un formato comprensible para el ordenador o formato digital. Este proceso se aplica a todas las imgenes, independientemente de su origen, de su complejidad y de si son en blanco y negro (escala de grises) o a todo color. Una imagen digital se compone de una matriz rectangular (o cuadrada) de pxeles que representan una serie de valores de intensidad ordenados en un sistema de coordenadas (x, y).

2.7.4.3 Introduccin a los sensores de imagen CMOS


Los sensores de imagen CMOS se han diseado con la capacidad para integrar un nmero de funciones de procesamiento y control directamente en el circuito integrado del sensor, lo que se extiende ms all de la tarea fundamental de recopilacin de fotones. Estos nuevos aspectos incluyen generalmente lgica temporal, control de exposicin, conversin de analgico a digital, obturacin, balance de blancos, ajuste del aumento y algoritmos de procesamiento inicial de la imagen. Se estn introduciendo sensores de imagen CMOS econmicos en el campo de la microscopa ptica en instrumentos para fines educativos que combinan una calidad ptica aceptable con paquetes de software de control e imagen fciles de usar.

2.7.4.4 Estrategias recomendadas para el procesamiento de imgenes digitales


Dependiendo de las condiciones de iluminacin, la integridad de la muestra y los mtodos de preparacin, las imgenes capturadas con el microscopio ptico pueden requerir una cantidad considerable de rehabilitacin/reinsercin/renovacin para conseguir un equilibrio entre
Pgina 45 de 57

precisin cientfica y composicin esttica. Las imgenes digitales que se obtienen mediante un CCD (charge-coupled device) o un CMOS (complementary metal oxide semiconductor) a menudo presentan seales a ruido pobres, iluminacin irregular, impurezas de enfoque, deslumbramiento, cambios en los colores y otros problemas que distorsionan la calidad global de la imagen.

2.7.5 Aprendizaje Automtico


El Aprendizaje Automtico o Aprendizaje de Mquinas es una rama de la Inteligencia Artificial cuyo objetivo es desarrollar tcnicas que permitan a las computadoras aprender. De forma ms concreta, se trata de crear programas capaces de generalizar comportamientos a partir de una informacin no estructurada suministrada en forma de ejemplos. Es, por lo tanto, un proceso de induccin del conocimiento. En muchas ocasiones el campo de actuacin del Aprendizaje Automtico se solapa con el de la Estadstica, ya que las dos disciplinas se basan en el anlisis de datos. Sin embargo, el Aprendizaje Automtico se centra ms en el estudio de la Complejidad Computacional de los problemas. Muchos problemas son de clase NP-hard, por lo que gran parte de la investigacin realizada en Aprendizaje Automtico est enfocada al diseo de soluciones factibles a esos problemas. El Aprendizaje Automtico puede ser visto como un intento de automatizar algunas partes del Mtodo Cientfico mediante mtodos matemticos. El Aprendizaje Automtico tiene una amplia gama de aplicaciones, incluyendo motores de bsqueda, diagnsticos mdicos, deteccin de fraude en el uso de tarjetas de crdito, anlisis del mercado de valores, clasificacin de secuencias de ADN, reconocimiento del habla y del lenguaje escrito, juegos y robtica.

2.7.5.1 Interaccin Hombre-Mquina


Algunos sistemas de Aprendizaje Automtico intentan eliminar toda necesidad de intuicin o conocimiento experto de los procesos de anlisis de datos, mientras otros tratan de establecer un marco de colaboracin entre el experto y la computadora. De todas formas, la intuicin humana no puede ser reemplazada en su totalidad, ya que el diseador del sistema ha de especificar la forma de representacin de los datos y los mtodos de manipulacin y caracterizacin de los mismos.

2.7.5.2 Tipos de algoritmos


Los diferentes algoritmos de Aprendizaje Automtico se agrupan en una taxonoma en funcin de la salida de los mismos. Algunos tipos de algoritmos son: Aprendizaje supervisado.- El algoritmo produce una funcin que establece una correspondencia entre las entradas y las salidas deseadas del sistema. Un ejemplo de este tipo de algoritmo es el problema de clasificacin, donde el sistema de aprendizaje trata de etiquetar (clasificar) una serie de vectores utilizando una entre varias categoras (clases). La base de

Pgina 46 de 57

conocimiento del sistema est formada por ejemplos de etiquetados anteriores. Este tipo de aprendizaje puede llegar a ser muy til en problemas de investigacin biolgica, biologa computacional y bioinformtica. Aprendizaje no supervisado.- Todo el proceso de modelado se lleva a cabo sobre un conjunto de ejemplos formado tan slo por entradas al sistema. No se tiene informacin sobre las categoras de esos ejemplos. Por lo tanto, en este caso, el sistema tiene que ser capaz de reconocer patrones para poder etiquetar las nuevas entradas. Aprendizaje semisupervisado.- Este tipo de algoritmos combinan los dos algoritmos anteriores para poder clasificar de manera adecuada. Se tiene en cuenta los datos marcados y los no marcados.

Aprendizaje por refuerzo.- El algoritmo aprende observando el mundo que le rodea. Su informacin de entrada es el feedback o retroalimentacin que obtiene del mundo exterior como respuesta a sus acciones. Por lo tanto, el sistema aprende a base de ensayo-error. Transduccin.- Similar al aprendizaje supervisado, pero no construye de forma explcita una funcin. Trata de predecir las categoras de los futuros ejemplos basndose en los ejempl os de entrada, sus respectivas categoras y los ejemplos nuevos al sistema. Aprendizaje multi-tarea.- Mtodos de aprendizaje que usan conocimiento previamente aprendido por el sistema de cara a enfrentarse a problemas parecidos a los ya vistos. El anlisis computacional y de rendimiento de los algoritmos de aprendizaje automtico es una rama de la estadstica conocida como teora computacional del aprendizaje. Aprendizaje Automtico.- El aprendizaje automtico nosotros lo llevamos a cabo de manera automtica ya que es un proceso tan sencillo para nosotros que ni cuenta nos damos de cmo se realiza y todo lo que esto implica. Desde que nacemos hasta que morimos los seres humanos tenemos diferentes procesos entre ellos encontramos el de aprendizaje por medio del cual adquirimos conocimientos, desarrollamos habilidades para analizar y evaluar a travs de mtodos y tcnicas as como tambin por medio de la experiencia propia, pero a las mquinas

Pgina 47 de 57

hay que indicarles cmo aprender, ya que si no se logra que una mquina sea capaz de desarrollar sus habilidades entonces el proceso de aprendizaje no se estar llevando a cabo, sino que solo ser una secuencia repetitiva. Tambin debemos tener en cuenta que el tener conocimiento o el hecho de realizar bien el proceso de aprendizaje automtico no implica que se sepa utilizar, es preciso saber aplicarlo en las actividades cotidianas y un buen aprendizaje tambin implica saber cmo y cundo utilizar nuestros conocimientos. Para llevar acabo un buen aprendizaje es necesario tener considerar todos los factores que a este le rodean como, la sociedad, la economa, la ciudad, el ambiente, el lugar, etc. Por lo cual es necesario empezar a tomar diversas medidas para lograr un aprendizaje adecuado, y obtener una automatizacin adecuada del aprendizaje, por lo cual lo primero que se debe tener en cuenta es el concepto de conocimiento, el cual es el entendimiento de un determinado tema o materia en el cual tu puedas dar tu opinin o punto de vista as como tambin responder a ciertas interrogantes que puedan surgir de dicho tema o materia. En el aprendizaje automtico podemos obtener 3 tipos de conocimiento los cules son: 1. Crecimiento: Es el que se adquiere de lo que nos rodea, el cual guarda la informacin en la memoria como si dejara huellas. 2. Reestructuracin: Al interpretar los conocimientos el individuo razona y genera nuevo conocimiento al cual se le llama de reestructuracin. 3. Ajuste: Es el que se obtiene al generalizar varios conceptos o generando los propios. Los tres tipos se efectan durante un proceso de aprendizaje automtico pero la importancia de cada tipo de conocimiento depende de las caractersticas de lo que se est tratando de aprender. El aprendizaje es ms que una necesidad, es un factor primordial para satisfacer las necesidades de la inteligencia artificial.

2.7.5.3 Aplicaciones
Motores de bsqueda Diagnstico mdico Deteccin de fraudes con el uso de tarjetas de crdito Anlisis del mercado de valores Clasificacin de secuencias de ADN Reconocimiento del habla Robtica

Pgina 48 de 57

2.8 Grficos por computador

GRAFICO 16: IMAGEN DIGITAL

2.8.1 Computacin Grafica


Una proyeccin 2D de una proyeccin 3D de un Pentcoron (4D) haciendo doble rotacin con dos de sus planos ortogonales. La computacin grfica o grficos por ordenador es el campo de la informtica visual, donde se utilizan computadoras tanto para generar imgenes visuales sintticamente como integrar o cambiar la informacin visual y espacial probada del mundo real. El primer mayor avance en la grfica realizada por computadora era el desarrollo de Sketchpad en 1962 por Ivan Sutherland. Este campo puede ser dividido en varias reas: Interpretado 3D en tiempo real (a menudo usado en juegos de vdeo), animacin de computadora, captura de vdeo y creacin de vdeo interpretado, edicin de efectos especiales (a menudo usado para pelculas y televisin), edicin de imagen, y modelado (a menudo usado para ingeniera y objetivos mdicos). El desarrollo en la grfica realizada por computadora fue primero alimentado por intereses acadmicos y patrocinio del gobierno. Sin embargo, cuando las aplicaciones verdaderas mundiales de la grfica realizada por computadora (CG) en televisin y pelculas demostraron una alternativa viable a efectos especiales ms a las tradicionales y las tcnicas de animacin, los comerciales han financiado cada vez ms el avance de este campo. A menudo se piensa que la primera pelcula para usar grficos realizados por computadora era 2001: A Space Odyssey (1968), que intent mostrar como las computadoras seran mucho ms grficas en el futuro. Sin embargo, todos los grficos de computadora en aquella pelcula eran la animacin dibujada a mano (por ejemplo en las pantallas de televisin se simulaba el comportamiento de las computadoras con dibujos), y las secuencias de efectos especiales fue producida completamente con efectos pticos y modelos convencionales.

Pgina 49 de 57

Quizs el primer uso de la grfica realizada por computadora expresamente para ilustrar grfica realizada por computadora estaba en Futureworld (1976), que incluy una animacin de una cara humana y mano - producido por Ed Catmull y Fred Parke en la Universidad de Utah.

2.8.1.1 Grficos 2D de computadora


El primer avance en la computacin grfica fue la utilizacin del tubo de rayos catdicos. Hay dos acercamientos a la grfica 2d: vector y grficos raster. La grfica de vector almacena datos geomtricos precisos, topologa y estilo como posiciones de coordenada de puntos, las uniones entre puntos (para formar lneas o trayectos) y el color, el grosor y posible relleno de las formas. La mayor parte de los sistemas de vectores grficos tambin pueden usar primitivas geomtricas de forma estndar como crculos y rectngulos etc. En la mayor parte de casos una imagen de vectores tiene que ser convertida a una imagen de trama o raster para ser vista. Los grficos de tramas o raster (llamados comnmente Mapa de bits) es una rejilla bidimensional uniforme de pixeles. Cada pixel tiene un valor especfico como por ejemplo brillo, transparencia en color o una combinacin de tales valores. Una imagen de trama tiene una resolucin finita de un nmero especfico de filas y columnas. Las demostraciones de computadora estndares muestran una imagen de trama de resoluciones como 1280 (columnas) x 1024 (filas) pixeles. Hoy uno a menudo combina la trama y lo grficos vectorizados en formatos de archivo compuestos (pdf, swf, svg).

2.8.1.2 Grficos 3D de computadora


Con el nacimiento de las estaciones de trabjy789pfajo (como las mquinas LISP, Paintbox computers y estaciones de trabajo Silicon Graphics) llegaron los grficos 3D, basados en la grfica de vectores. En vez de que la computadora almacene la informacin sobre puntos, lneas y curvas en un plano bidimensionales, la computadora almacena la posicin de puntos, lneas y tpicas caras (para construir un polgono) en un Espacio de tres dimensiones. Los polgonos tridimensionales son la sangre de prcticamente todos los grficos 3d realizados en computadora. Como consiguiente, la mayora de los motores de grficos de 3D estn basados en el almacenaje de puntos (por medio de 3 simples coordenadas Dimensionales X,Y,Z), lneas que conectan aquellos grupos de puntos, las caras son definidas por las lneas, y luego una secuencia de caras crean los polgonos tridimensionales. El software actual para generacin de grficos va ms lejos de slo el almacenaje de polgonos en la memoria de computadora. Las grficas de hoy no son el producto de colecciones masivas de polgonos en formas reconocibles, ellas tambin resultan de tcnicas en el empleo de Shading (Sombreadores), texturing (Texturizado o mapeado) y la rasterizacin (En referencia a mapas de bits).

Pgina 50 de 57

2.8.1.3 Representacin basada en Imagen - Image Based Rendering (IBR)


La computacin grfica permite la obtencin imgenes 2D desde modelos tridimensionales. A fin de hacerse muy exacto y obtener imgenes foto realista, la entrada de los modelos 3D debera ser muy exacta en trminos de geometra y colores. La simulacin de paisajes y escenas fotorealilstas que utilicen esta tcnica requiere un gran esfuerzo y talento con programas de CAD. En vez de obtener modelos 3D, Las representaciones basadas en imagen (IBR) usan imgenes tomadas de puntos de vista particulares y trata de obtener nuevas imgenes de otros puntos de vista. Aunque el trmino Representacin basada en Imagen fue acuado recientemente, aunque en la prctica se us desde el inicio de la investigacin en la Visin obtenida por Computadora. En 1996, se hicieron muy populares dos tcnicas: los campos de luz (lightfield en ingls) y el lumigraph (que no tiene traduccin asentada en espaol). Estas tcnicas recibieron la atencin especial de la comunidad de investigacin. Desde entonces, muchas representaciones para IBR fueron propuestas. Un mtodo popular es las texturas dependientes del punto de vista, una tcnica IBR de la Universidad del Sur de California. La Universidad de Oxford us conceptos de la "Mquina de Aprendizaje" para IBR. Sombreador: generalmente se le aplica a los materiales en todo sistema de simulacin 3d, se les conoce tambin como shader. Sombreado Flat (plano): una tcnica que sombrea cada polgono de un objeto basndose en su vector normal (direccin hacia la que apunta un polgono) y la posicin e intensidad de una fuente de la luz. Sombreado de Gouraud: Inventado por Henri Gouraud en 1971, una tcnica rpida y consciente de los recursos disponibles en una computadora, sola simular superficies suavemente sombreadas interpolando colores de vrtice a travs de la superficie de un polgono. Mapeo de texturas (Correlacin de textura): una tcnica para simular detalle superficial trazando un mapa de imgenes (texturas) en polgonos. Sombreado de Phong: Inventado por Bui Tuong Phong, una tcnica de sombreado lisa que se acerca la superficie curva iluminada por la interpolacin de los vrtices normales de un polgono a travs de la superficie; el modelo iluminado incluye la reflexin de brillo con un nivel controlable del mismo. Bump mapping (Correlacin de relieve): Inventado por Jim Blinn, una tcnica de perturbacin normal (la direccin hacia donde apunta un polgono) sola simular superficies desiguales o arrugadas y con relieve. Ray Tracing (Trazador de rayos): un mtodo basado en los principios fsicos de la ptica geomtrica que puede simular reflexiones mltiples y la transparencia. Radiosidad: una tcnica para la iluminacin global que usa la teora de transferencia de radiacin para simular la iluminacin (reflejada) indirecta en escenas con superficies difusas. Blob: una tcnica para representar superficies sin especificar una representacin divisoria difcil, por lo general puesta en prctica como una superficie procesal como una Van der Waals equipotential (en qumica).

Pgina 51 de 57

2.8.2 Procesamiento digital de imgenes


El procesamiento digital de imgenes es el conjunto de tcnicas que se aplican a las imgenes digitales con el objetivo de mejorar la calidad o facilitar la bsqueda de informacin.

GRAFICO 17: PROCESO DIGITAL DE IMAGEN

2.8.2.1 Proceso de filtrado


Es el conjunto de tcnicas englobadas dentro del pre procesamiento de imgenes cuyo objetivo fundamental es obtener, a partir de una imagen origen, otra final cuyo resultado sea ms adecuado para una aplicacin especfica mejorando ciertas caractersticas de la misma que posibilite efectuar operaciones del procesado sobre ella.

Pgina 52 de 57

2.8.2.2 Objetivos
Los principales objetivos que se persiguen con la aplicacin de filtros son: Suavizar la imagen: reducir la cantidad de variaciones de intensidad entre pxeles vecinos. Eliminar ruido: eliminar aquellos pxeles cuyo nivel de intensidad es muy diferente al de sus vecinos y cuyo origen puede estar tanto en el proceso de adquisicin de la imagen como en el de transmisin. Realzar bordes: destacar los bordes que se localizan en una imagen. Detectar bordes: detectar los pxeles donde se produce un cambio brusco en la funcin intensidad. Por tanto, se consideran los filtros como operaciones que se aplican a los pxeles de una imagen digital para optimizarla, enfatizar cierta informacin o conseguir un efecto especial en ella.

2.8.2.3 Ventajas
Mtodo simple y sencillo de implementar. Fcil asociacin del concepto de frecuencia con ciertas caractersticas de la imagen; cambios de tonalidad suaves implican frecuencias bajas y cambios bruscos frecuencias altas. Proporciona flexibilidad en el diseo de soluciones de filtrado. Rapidez en el filtrado al utilizar el Teorema de la Convolucin.

2.8.2.4 Desventajas
Se necesitan conocimientos en varios campos para desarrollar una aplicacin para el procesamiento de imgenes. El ruido no puede ser eliminado completamente.

2.8.3 Geometra Computacional


Por ejemplo algoritmos veloces para seleccionar slo los puntos visibles en un poliedro visto desde cierto ngulo, usado en motores 3D

Pgina 53 de 57

2.9 Computacin cientfica


2.9.1 Bioinformtica
La bioinformtica, segn una de sus definiciones ms sencillas, es la aplicacin de tecnologa de computadores a la gestin y anlisis de datos biolgicos. Los trminos bioinformtica, biologa computacional y, en ocasiones, biocomputacin, utilizados en muchas situaciones como sinnimos, hacen referencia a campos de estudios interdisciplinares muy vinculados que requieren el uso o el desarrollo de diferentes tcnicas estudiadas universitariamente en la Ingeniera Informtica como ciencia aplicada de la disciplina informtica. Entre estas pueden destarcarse las siguientes: matemtica aplicada, estadstica, ciencias de la computacin, inteligencia artificial, qumica y bioqumica con las que el Ingeniero Informtico soluciona problemas al analizar datos, o simular sistemas o mecanismos, todos ellos de ndole biolgica, y usualmente (pero no de forma exclusiva) en el nivel molecular. El ncleo principal de estas tcnicas se encuentra en la utilizacin de recursos computacionales para solucionar o investigar problemas sobre escalas de tal magnitud que sobrepasan el discernimiento humano. La investigacin en biologa computacional se solapa a menudo con la biologa de sistemas. Los principales esfuerzos de investigacin en estos campos incluyen el alineamiento de secuencias, la prediccin de genes, montaje del genoma, alineamiento estructural de protenas, prediccin de estructura de protenas, prediccin de la expresin gnica, interacciones protena-protena, y modelado de la evolucin. Una constante en proyectos de bioinformtica y biologa computacional es el uso de herramientas matemticas para extraer informacin til de datos producidos por tcnicas biolgicas de alta productividad, como la secuenciacin del genoma. En particular, el montaje o ensamblado de secuencias genmicas de alta calidad desde fragmentos obtenidos tras la secuenciacin del ADN a gran escala es un rea de alto inters. Otros objetivos incluyen el estudio de la regulacin gentica para interpretar perfiles de expresin gnica utilizando datos de chips de ADN o espectrometra de masas.

GRAFICO 18: BIOINFORMATICA

Pgina 54 de 57

2.9.2 Computacin Cuntica


La esfera de Bloch es una representacin de un qubit, el bloque de construccin fundamental de los computadores cunticos. La computacin cuntica es un paradigma de computacin distinto al de la computacin clsica. Se basa en el uso de qubits en lugar de bits, y da lugar a nuevas puertas lgicas que hacen posibles nuevos algoritmos. Una misma tarea puede tener diferente complejidad en computacin clsica y en computacin cuntica, lo que ha dado lugar a una gran expectacin, ya que algunos problemas intratables pasan a ser tratables. Mientras un computador clsico equivale a una mquina de Turing, un computador cuntico equivale a una mquina de Turn cuntica.

GRAFICO 19: COMPUTACION CUANTICA

2.9.2.1 Origen de la computacin cuntica


A medida que evoluciona la tecnologa, aumenta la escala de integracin y caben ms transistores en el mismo espacio; as se fabrican microchips cada vez ms pequeos, y es que, cuanto ms pequeo es, mayor velocidad de proceso alcanza el chip. Sin embargo, no podemos hacer los chips infinitamente pequeos. Hay un lmite en el cual dejan de funcionar correctamente. Cuando se llega a la escala de nanmetros, los electrones se escapan de los canales por donde deben circular. A esto se le llama efecto tnel. Una partcula clsica, si se encuentra con un obstculo, no puede atravesarlo y rebota. Pero con los electrones, que son partculas cunticas y se comportan como ondas, existe la posibilidad de que una parte de ellos pueda atravesar las paredes si son demasiado finas; de esta manera la seal puede pasar por canales donde no debera circular. Por ello, el chip deja de funcionar correctamente. En consecuencia, la computacin digital tradicional no tardara en llegar a su lmite, puesto que ya se ha llegado a escalas de slo algunas decenas de nanmetros. Surge entonces la necesidad de descubrir nuevas tecnologas y es ah donde entra la computacin cuntica en escena. La idea de computacin cuntica surge en 1981, cuando Paul Benioff expuso su teora para aprovechar las leyes cunticas en el entorno de la computacin. En vez de trabajar a nivel de voltajes elctricos, se trabaja a nivel de cuanto. En la computacin digital, un bit slo puede tomar dos valores: 0 1. En cambio, en
Pgina 55 de 57

la computacin cuntica, intervienen las leyes de la mecnica cuntica, y la partcula puede estar en superposicin coherente: puede ser 0, 1 y puede ser 0 y 1 a la vez (dos estados ortogonales de una partcula subatmica). Eso permite que se puedan realizar varias operaciones a la vez, segn el nmero de qubits. El nmero de qubits indica la cantidad de bits que pueden estar en superposicin. Con los bits convencionales, si tenamos un registro de tres bits, haba ocho valores posibles y el registro slo poda tomar uno de esos valores. En cambio, si tenemos un vector de tres qubits, la partcula puede tomar ocho valores distintos a la vez gracias a la superposicin cuntica. As, un vector de tres qubits permitira un total de ocho operaciones paralelas. Como cabe esperar, el nmero de operaciones es exponencial con respecto al nmero de qubits. Para hacerse una idea del gran avance, un computador cuntico de 30 qubits equivaldra a un procesador convencional de 10 teraflops (millones de millones de operaciones en coma flotante por segundo), cuando actualmente las computadoras trabajan en el orden de gigaflops (miles de millones de operaciones).

2.9.3 Neurociencia computacional


La Neurociencia computacional es una ciencia interdisciplinar que enlaza los diversos campos de la neurociencia, la ciencia cognitiva, la ingeniera elctrica, las ciencias de la computacin, la fsica y las matemticas. El trmino fue introducido por Eric L. Schwartz en una conferencia de 1985 en Carmel, California, a peticin de la Systems Development Foundation, para ofrecer un resumen del estado actual de un campo que hasta entonces era nombrado de muy diversas formas: modelado neural, teora cerebral y redes neurales. Las actas de esta reunin definitoria fueron publicadas ms tarde en el libro "Neurociencia Computacional", MIT Press (1990). Las primeras races histricas del campo pueden ser rastreadas hasta el trabajo de personas como Hodgkin y Huxley, Hubel y Wiesel, y David Marr, por nombrar unos pocos. Hodgkin y Huxley desarrollaron la pinza de voltaje y crearon el primer modelo matemtico del potencial de accin. Hubel y Wiesel descubrieron que las neuronas de la corteza visual primaria, la primera rea cortical que procesa informacin desde la retina, posean campos receptivos orientados y organizados en columnas (Hubel y Wiesel, 1959). El trabajo de David Marr se centr en las interacciones entre neuronas, sugeriendo un acercamiento computacional al estudio de cmo ciertos grupos funcionales de neuronas en el hipocampo y el neocrtex interactan, almacenan, procesan y transmiten informacin. Los modelos computacionales biolgicamente realistas de neuronas y dendritas comenzaron con las investigaciones de Wilfrid Rall, y el primer modelo multicompartimental se bas en la teora de cables. La neurociencia computacional difiere del conexionismo psicolgico y de las teoras del aprendizaje de disciplinas como el aprendizaje automtico, las redes neurales y la teora del aprendizaje estadstico en que enfatiza las descripciones funcionales y biolgicamente realistas de neuronas (y sistemas neurales), su fisiologa y su dinmica. Estos modelos captan las caractersticas esenciales del sistema biolgico en mltiples escalas espacio-temporales desde las corrientes de membranas, protenas y acoplamiento qumico hasta las oscilaciones de redes, la arquitectura topogrfica y de columnas, y el aprendizaje y la memoria.
Pgina 56 de 57

Estos modelos computacionales se usan para probar hiptesis que puedan ser verificadas directamente mediante experimentos biolgicos actuales o futuros. En la actualidad, este campo est experimentando una rpida expansin. Existe gran variedad de programas, como el GENESIS o el NEURON, que permiten un veloz y sistemtico modelado in silico de neuronas realistas. El proyecto Blue Brain, una colaboracin entre IBM y la Escuela Politcnica Federal de Lausanne, pretende construir una simulacin biofsica detallada de una columna cortical en el superordenador Blue Gene. Este proyecto internacional tiene un subproyecto Cajal Blue Brain desarrollado en Espaa, coordinado por la Universidad Politcnica de Madrid (Facultad de Informtica y CeSViMa) en colaboracin con el Instituto Cajal del CSIC.

2.9.3.1 Temas Principales


Los desarrollos de la neurociencia computacional se pueden clasificar en varias lneas de investigacin. La mayora de neurocientficos computacionales se basan en investigaciones experimentales centradas en analizar nuevos datos y sintetizar nuevos modelos de fenmenos biolgicos.

2.9.3.2 Comportamiento de las redes


Las neuronas biolgicas se conectan entre s de forma compleja y recurrente. A diferencia de la mayora de redes neurales artificiales, estas conexiones son escasas y suelen ser especficas. Se desconoce cunta informacin es transmitida a travs de redes tan escasamente conectadas. Tambin se desconoce cules son las funciones computacionales de esos patrones de conectividad especfica, si es que las hay. Las interacciones entre las neuronas de una red pequea pueden reducirse a modelos simples como el modelo de Ising. La mecnica estadstica de sistemas tan simples es fcil de describir tericamente. Pruebas recientes [cita requerida] sugieren que la dinmica de redes neuronales arbitrarias puede ser reducida a interacciones de conjuntos (Schneidman et al, 2006; Shlens et al, 2006.) Pero se desconoce si esas descripciones transmiten alguna funcin computacional importante. El surgimiento del microscopio de dos fotones y la tcnica de imagen de calcio permite en la actualidad potentes mtodos experimentales con los que poner a prueba las nuevas teoras sobre redes neuronales. Aunque muchos neuro-tericos se decantan por modelos de complejidad reducida, otros argumentan que descifrar las relaciones de las estructuras funcionales exige incluir tanta estructura neuronal y de redes como sea posible. Los modelos de este tipo suelen ser diseados en enormes plataformas de simulacin como GENESIS o NEURON.2

CAPITULO SEGUNDO

Pgina 57 de 57

CAPITULO 3
3. Relacin con otros campos

or ser una disciplina reciente, existen varias definiciones alternativas para la ciencia de la computacin. Esta puede ser vista como una forma de ciencia, matemticas o una nueva disciplina que no puede ser categorizada siguiendo los modelos actuales. Las ciencias de la computacin frecuentemente se cruzan con otras reas de investigacin, tales como la fsica y la lingstica. Pero es con las matemticas con las que se considera que tiene un grado mayor de relacin. Eso es evidenciado por el hecho de que los primeros trabajos en el rea fueran fuertemente influenciados por matemticos como Kurt Gdel y Alan Turn. En la actualidad sigue habiendo un intercambio de ideas til entre ambos campos en reas como la lgica matemtica, la teora de categoras, la teora de dominios, el lgebra y la geometra. Otro punto a destacar es que a pesar de su nombre, las ciencias de la computacin raramente involucran el estudio mismo de las mquinas conocidas como computadoras. De hecho, el renombrado cientfico Edsger Dijkstra es muy citado por la frase "Las ciencias de la computacin estn tan poco relacionadas con las computadoras como la astronoma con los telescopios." Debido a esto, se propuso buscar un nombre definido para esta ciencia emergente, que evitara la relacin con las computadoras. Una primera propuesta fue la de Peter Naur, que acu el trmino datologa, para reflejar el hecho de que la nueva disciplina se ocupaba fundamentalmente del tratamiento de los datos, independientemente de las herramientas de dicho tratamiento, fueran computadoras o artificios matemticos. La primera institucin cientfica en adoptar la denominacin fue el Departamento de Datologa de la Universidad de Copenage, fundado en 1969, siendo el propio Peter Naur el primer profesor de datologa. Esta denominacin se utiliza principalmente en los pases escandinavos. Asimismo, en los primeros momentos, un gran nmero de trminos aparecieron asociados a los practicantes de la computacin. En esta lista se pueden ver los sugeridos en las revistas y comunicados de ACM : turingeniero, turologista, hombre de los diagramas de flujo(flow-charts-man), metamatemtico aplicado, y epistemlogo aplicado. Tres meses ms tarde se sugiri el trmino contlogo, seguido de hiplogo al ao siguiente. Tambin se sugiri el trmino comptica para la disciplina. Informtica era el trmino ms frecuentemente usado en toda Europa. El diseo y desarrollo de computadoras y sistemas computacionales est generalmente considerado como un campo reclamado por disciplinas ajenas a las ciencias de la computacin. Por ejemplo, el estudio del hardware est usualmente considerado como parte de la ingeniera informtica, mientras que

Pgina 1 de 1

el estudio de sistemas computacionales comerciales y su desarrollo es usualmente llamado tecnologas de la informacin (TI) o sistemas de informacin. Sin embargo, hay una estrecha comunicacin de ideas entre las distintas disciplinas relacionadas con las computadoras. La ciencia de la computacin a menudo es criticada desde otros estamentos que la consideran escasamente rigurosa y cientfica. Esta opinin se plasma en la expresin: "La ciencia es a las ciencias de la computacin como la hidrodinmica a la fontanera", atribuida a Stan Kelly-Bootle y otros afines. La investigacin en ciencias de la computacin usualmente tambin se relaciona con otras disciplinas, como la ciencia cognitiva, la fsica (vase computacin cuntica), la lingstica, etc. La relacin entre las ciencias de la computacin y la ingeniera de software es un tema muy discutido, por disputas sobre lo que realmente significa el trmino "ingeniera de software" y sobre cmo se define a las ciencias de la computacin. Algunas personas creen que la ingeniera de software sera un subconjunto de las ciencias de la computacin. Otras por su parte, tomando en cuenta la relacin entre otras disciplinas cientficas y de la ingeniera, creen que el principal objetivo de las ciencias de la computacin sera estudiar las propiedades del cmputo en general, mientras que el objetivo de la ingeniera de software sera disear cmputos especficos para lograr objetivos prcticos, con lo que se convertiran en disciplinas diferentes. Este punto de vista es mantenido, entre otros por (Parnas 1998). Incluso hay otros que sostienen que no podra existir una ingeniera de software. Los aspectos acadmicos, polticos y de financiacin en las reas de ciencias de la computacin tienden a estar drsticamente influenciados por el criterio del departamento encargado de la investigacin y la educacin en cada universidad, que puede estar orientado a la matemtica o a la ingeniera. Los departamentos de ciencias de la computacin orientados a la matemtica suelen alinearse del lado de la computacin cientfica y las aplicaciones de clculo numrico. El trmino computacin cientfica, que no debe confundirse con ciencia de la computacin, designa a todas aquellas prcticas destinadas a modelar, plantear experimentos y validar teoras cientficas sirvindose de medios computacionales. En estos casos la computacin es una mera herramienta y el esfuerzo se dirige a avanzar en los campos objetivo (fsica, biologa, mecnica de fluidos, radiotransmisin,...) mas que en la propia ciencia de la computacin. Finalmente, el pblico en general algunas veces confunde la ciencia de la computacin con reas vocacionales que trabajan con computadoras, o piensan que trata acerca de su propia experiencia con las computadoras, lo cual tpicamente envuelve actividades como los juegos, la navegacin web, y el procesamiento de texto. Sin embargo, el punto central de la ciencia de la computacin va ms all de entender las propiedades de los programas que se emplean para implementar aplicaciones de software como juegos y navegadores web, y utiliza ese entendimiento para crear nuevos programas o mejorar los existentes.3

CAPITULO TERCERO

Pgina 2 de 2

BIBLIOGRAFIA
Abelson, H. y Sussman, G.J. con Sussman, J. (1996). Structure and Interpretation of Computer Programs, 2nd Ed. EUA: MIT Press. ISBN 0262-01153-0. Constable, R.L. (1997). "Nature of the Information Sciences". Constable, R.L. (2000, Marzo). "Computer Science: Achievements and Challenges circa 2000". Parnas, D.L. (1998). Software Engineering Programmes are not Computer Science Programmes. Sipser, Michael (2005). Introduction to the Theory of Computation (2 edicin). Course Technology. ISBN 978-0534950972. Kelley, Dean (1995). Teora de Autmatas y Lenguajes Formales. Prentice Hall. ISBN 978-0-691-13382-9. Boolos, George; Burgess, John; & Jefrey, Richard (2007). Computability and logic. Cambridge. ISBN 978-0-521-70146-4. S. Barry Cooper (2004). Computability theory. Chapman & Hall/CRC. ISBN 1-58488-237-9. Seccin 68Qxx, Theory of computing de American Mathematical Society. 2010 Mathematics Subject Classification.. Consultado el 7 de marzo de 2010.

LINKOGRAFIA
http://es.wikipedia.org/wiki/Ciencias_de_la_computaci%C3%B3n http://es.wikipedia.org/wiki/Criptograf%C3%ADa http://es.wikipedia.org/wiki/Teor%C3%ADa_de_la_computaci%C3%B3 http://es.wikipedia.org/wiki/An%C3%A1lisis_de_algoritmos http://es.wikipedia.org/wiki/Bioinform%C3%A1tica
n

HIPERVINCULOS
TRIPTICO.docx CIENCIAS DE LA COMPUTACION.pptx

Pgina 1 de 1

You might also like