Publicité
Publicité

Contenu connexe

Publicité
Publicité

Ciencias de la computacion

  1. Ciencias de la computación Instituto Tecnológico de Saltillo Valdes Gaytan Daira A. Grupo de 11:00 a 12:00
  2. Criptografía C Fundamentos Teoría de grafos Lógica matemáticas matemáticos Teoría de tipos i Teoría de la e computación Teoría de autómatas Teoría de la n computación Teoría de la computabilidad Teoría de la complejidad computacional c Análisis de algoritmos Algoritmos i D Algoritmos y estructura de Estructuras de datos datos a e s Lenguajes de Compiladores programación y LC compiladores Teoría de lenguajes de programación a o Bases de Minería de datos m datos p Sistemas Programación concurrente concurrentes, p Redes de computadoras aralelos y u distribuidos Computo paralelo Sistemas t Inteligencia artificial distribuidos Razonamiento Automatizado a Inteligencia artificial Robótica Visión por computador c Computación grafica Aprendizaje automático i Gráficos por Procesamiento digital de imágenes computador Geometría computacional ó n Computación científica Bioinformatica Computación cuántica
  3. Ciencias de la computación Las ciencias de la computación abarcan el estudio de las bases teóricas de la información y la computación y su aplicación en sistemas computacionales. Existen diversos campos dentro de la disciplina de las ciencias de la computación; algunos enfatizan los resultados específicos del cómputo, mientras que otros se relacionan con propiedades de los algoritmos usados al realizar cómputos. Otros por su parte se enfocan en los problemas que requieren la implementación de cómputos.
  4. Historia de las ciencias de la computación La historia de la ciencia de la computación antecede a la invención del computador digital moderno. Antes de la década de 1920, el término computador se refería a un ser humano que realizaba cálculos. Los primeros investigadores en lo que después se convertiría las ciencias de la computación, estaban interesados en la cuestión de la compatibilidad: qué cosas pueden ser computadas por un ser humano que simplemente siga una lista de instrucciones con lápiz y papel, durante el tiempo que sea necesario, con ingenuidad y sin conocimiento previo del problema. Parte de la motivación para este trabajo era el desarrollar máquinas que computaran, y que pudieran automatizar el tedioso y lleno de errores trabajo de la computación humana.
  5. Durante la década de 1940, conforme se desarrollaban nuevas y más poderosas máquinas para computar, el término computador se comenzó a utilizar para referirse a las máquinas en vez de a sus antecesores humanos. Conforme iba quedando claro que las computadoras podían usarse para más cosas que solamente cálculos matemáticos, el campo de la ciencia de la computación se fue ampliando para estudiar a la computación (informática) en general. La ciencia de la computación comenzó entonces a establecerse como una disciplina académica en la década de 1960, con la creación de los primeros departamentos de ciencia de la computación y los primeros programas de licenciatura (Denning 2000). Volver
  6. Campos de las Ciencias de la Computación
  7. Fundamentos matemáticos Volver
  8. Criptografía “Criptografía (comunicaciones), es la ciencia que trata del enmascaramiento de la comunicación de modo que sólo resulte inteligible para la persona que posee la clave, o método para averiguar el significado oculto, mediante el criptoanálisis de un texto aparentemente incoherente. En su sentido más amplio, la criptografía abarca el uso de mensajes encubiertos, códigos y cifras. Los mensajes encubiertos, como los ocultos en textos infantiles o los escritos con tinta invisible, cifran todo su éxito en no levantar ninguna sospecha; una vez descubiertos, a menudo no resultan difíciles de descifrar. Los códigos, en que las palabras y las frases se representan mediante vocablos, números o símbolos preestablecidos, por lo general resultan imposibles de leer si no se dispone del libro con el código clave”.
  9. ¿Qué tipos de criptografía se emplean en la actualidad? Criptografía estratégica: Actualmente su aplicación se ha extendido a diversas actividades basadas en el uso de la tecnología de la información y las comunicaciones (TIC) constituyéndose en elemento indispensable para garantizar la seguridad en el manejo de la información. Estas herramientas han permitido proteger cada carácter con una llave que puede conformarse hasta por 256 bits. Es decir, que para encontrar esta llave en particular, tendríamos que buscarla entre combinaciones posibles”.
  10. La criptografía simétrica: Es en donde se usa la misma contraseña o llave para encriptar y para desencriptar la información. El usar la misma llave para encriptar y para desencriptar es un problema a la hora de enviar datos, ya que el remitente debe enviar previamente la llave al destinatario para que éste pueda desencriptar la información, y debe hacerlo por un canal seguro. Por lo tanto la criptografía simétrica se emplea especialmente para almacenamiento seguro de datos (solamente una persona necesita la llave). Para envío de datos es preferible la criptografía asimétrica”.
  11. La criptografía asimétrica: Es la que emplea un esquema de llave pública y llave privada. La información se encriptar con la llave pública, y se desencriptar con la llave privada. No presenta el problema de transmisión de la llave que tiene la criptografía simétrica, ya que la llave pública no sirve para desencriptar la información”. Volver
  12. Teoría de grafos En matemáticas y en ciencias de la computación, la teoría de grafos (también llamada teoría de las gráficas) estudia las propiedades de los grafos (también llamadas gráficas). Un grafo es un conjunto, no vacío, de objetos llamados vértices (o nodos) y una selección de pares de vértices, llamados aristas (edges en inglés) que pueden ser orientados o no. Típicamente, un grafo se representa mediante una serie de puntos (los vértices) conectados por líneas (las aristas).
  13. Estructuras de datos en la representación de grafos Existen diferentes formas de almacenar grafos en una computadora. La estructura de datos usada depende de las características del grafo y el algoritmo usado para manipularlo. Entre las estructuras más sencillas y usadas se encuentran las listas y las matrices, aunque frecuentemente se usa una combinación de ambas. Las listas son preferidas en grafos dispersos porque tienen un eficiente uso de la memoria. Por otro lado, las matrices proveen acceso rápido, pero pueden consumir grandes cantidades de memoria. Volver
  14. Lógica matemática La lógica matemática es una parte de la lógica y las matemáticas, que consiste en el estudio matemático de la lógica y en la aplicación de este estudio a otras áreas de las matemáticas. La lógica matemática guarda estrechas conexiones con la ciencias de la computación y la lógica filosófica. La lógica matemática estudia los sistemas formales en relación con el modo en el que codifican conceptos intuitivos de objetos matemáticos como conjuntos, números, demostraciones y computación.
  15. La lógica matemática suele dividirse en cuatro subcampos: •teoría de modelos •teoría de la demostración •teoría de conjuntos •teoría de la recursión. La investigación en lógica matemática ha jugado un papel fundamental en el estudio de los fundamentos de las matemáticas. La lógica matemática fue también llamada lógica simbólica. El primer término todavía se utiliza como sinónimo suyo, pero el segundo se refiere ahora a ciertos aspectos de la teoría de la demostración. La lógica matemática no es la "lógica de las matemáticas" sino la "matemática de la lógica". Incluye aquellas partes de la lógica que pueden ser modeladas y estudiadas matemáticamente. Volver
  16. Teoría de tipos de datos En los lenguajes de programación un tipo de dato 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, números de coma flotante (decimales), cadenas alfanuméricas, fechas, horas, colores, coches o cualquier cosa que se nos ocurra. 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 adición y sustracción, pero no la multiplicación. Un tipo de dato puede ser también visto como una limitación impuesta en la interpretación de los datos en un sistema de tipificación, describiendo la representación, interpretación y la estructura de los valores u objetos almacenados en la memoria del ordenador. El sistema de tipificación usa información de los tipos de datos para comprobar la verificación de los programas que acceden o manipulan los datos. Volver
  17. Teoría de la computación Volver
  18. Teoría de la computación La teoría de la computación o informática teórica (en inglés Theoretical Computer Science) es una ciencia cuyas bases están establecidas básicamente en principios matemáticos y conjunta varias ramas de las matemáticas. Es un campo especialmente rico para la indagación filosófica. Alan Turing, establece la relación entre la lógica y la computación electrónica, plantea la famosa Máquina de Turing, la cual es la base de la Teoría de la Computación actual. Turing es, por tanto, considerado el padre de la Teoría de la Computación. La teoría de la computación se vale de la lógica matemática, teoría de conjuntos, teoría de grafos, álgebra matricial, álgebra relacional, etc. Principales subramas Otras subramas •Teoría de autómatas •Modelos de cómputo •Teoría de la •Teoría algorítmica de la información compatibilidad •Especificación y verificación formal •Teoría de la complejidad •La Teoría del aprendizaje computacional computacional •Teoría de tipos Volver
  19. Teoría de autómatas Un autómata es un sistema secuencial, aunque en ocasiones la palabra es utilizada también para referirse a un robot. Puede definirse como un equipo electrónico programable en lenguaje no informático y diseñado para controlar, en tiempo real y en ambiente industrial, procesos secuenciales. Sin embargo, la rápida evolución de los autómatas hace que esta definición no esté cerrada. Un autómata programable se puede considerar como un sistema basado en un microprocesador, siendo sus partes fundamentales la Unidad Central de Proceso (CPU), la Memoria y el Sistema de Entradas y Salidas (E/S). Volver
  20. Teoría de la computabilidad La Teoría de la computabilidad es la parte de la computación que estudia los problemas de decisión que pueden ser resueltos con un algoritmo o equivalentemente con una máquina de Turing. La teoría de la complejidad computacional clasifica las funciones computables según el uso que hacen de diversos recursos en diversos tipos de máquina. Volver
  21. Teoría de la complejidad computacional La teoría de la complejidad computacional es la rama de la teoría de la computación que estudia, de manera teórica, los recursos requeridos durante el cómputo de un algoritmo para resolver un problema. Los recursos comúnmente estudiados son el tiempo (mediante una aproximación al número y tipo de pasos de ejecución de un algoritmo para resolver un problema) y el espacio (mediante una aproximación a la cantidad de memoria utilizada para resolver un problema). Se pueden estudiar igualmente otros parámetros, tales como el número de procesadores necesarios para resolver el problema en paralelo. La teoría de la complejidad difiere de la teoría de la compatibilidad en que ésta se ocupa de la factibilidad de expresar problemas como algoritmos efectivos sin tomar en cuenta los recursos necesarios para ello.
  22. Clases de complejidad: Los problemas de decisión se clasifican en conjuntos de complejidad comparable llamados clases de complejidad. La clase de complejidad P es el conjunto de los problemas de decisión que pueden ser resueltos en una máquina determinista en tiempo poli nómico, lo que corresponde intuitivamente a problemas que pueden ser resueltos aún en el peor de sus casos. La clase de complejidad NP es el conjunto de los problemas de decisión que pueden ser resueltos por una máquina no determinista en tiempo poli nómico. Esta clase contiene muchos problemas que se desean resolver en la práctica, incluyendo el problema de satisfacibilidad booleana y el problema del viajante, un camino Hamiltoniano para recorrer todos los vértices una sola vez. Todos los problemas de esta clase tienen la propiedad de que su solución puede ser verificada efectivamente. Volver
  23. Algoritmos y estructura de datos Volver
  24. Análisis de algoritmos El análisis de algoritmos es una parte importante de la Teoría de complejidad computacional más amplia, que provee estimaciones teóricas para los recursos que necesita cualquier algoritmo que resuelva un problema computacional dado. Estas estimaciones resultan ser bastante útiles en la búsqueda de algoritmos eficientes. Volver
  25. Algoritmos Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado. [Rodolfo Quispe- Otazu, 2004]
  26. Características: Las características fundamentales que debe cumplir todo algoritmo son: •Bigüedad, cada paso del algoritmo debe indicar la acción a realizar sin criterios de interpretación. •Ser finito: Un número específico y numerable de pasos debe componer al algoritmo, el cual deberá finalizar al completarlos. •Tener cero o más entradas: Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende.
  27. •Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como únicamente “verlos” en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programación que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo. •Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada más ni nada menos que aquello que se requiera para y en su ejecución Volver
  28. Estructuras de datos En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación. Un dato elemental es la mínima información que se tiene en un sistema. Una estructura de datos define la organización e interrelación de éstos y un conjunto de operaciones que se pueden realizar sobre ellos.
  29. Las operaciones básicas Otras operaciones que se son: pueden realizar son: •Alta, adicionar un nuevo •Ordenamiento, de los valor a la estructura. elementos pertenecientes a •Baja, borrar un valor de la la estructura. estructura. •Apareo, dadas dos •Búsqueda, encontrar un estructuras originar una determinado valor en la nueva ordenada y que estructura para realizar una contenga a las apareadas. operación con este valor, en forma secuencial o binario (siempre y cuando los datos estén ordenados). Cada estructura ofrece ventajas y desventajas en relación a la simplicidad y eficiencia para la realización de cada operación. De esta forma, la elección de la estructura de datos apropiada para cada problema depende de factores como la frecuencia y el orden en que se realiza cada operación sobre los datos. Volver
  30. Lenguajes de programación y compiladores Volver
  31. Compiladores Los compiladores son programas o herramientas encargadas de compilar. Un compilador toma un texto (código fuente) escrito en un lenguaje de alto nivel y lo traduce a un lenguaje comprensible por las computadoras (código objeto). Básicamente, existen dos grandes formas de ejecutar programas: programas compilados (previamente pasados por un compilador) y programas interpretados (necesitan pasar por un intérprete para ejecutarse en tiempo real).
  32. Características de un compilador Generalmente un compilador se divide en dos partes: •Front End: parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. Parte que suele ser independiente de la plataforma o sistema operativo para el que funcionará. •Back End: parte en donde se genera el código máquina exclusivo para una plataforma a partir de lo analizado en el front end. Por lo general el resultado del back end no puede ser ejecutado directamente, se necesita pasar por un proceso de enlazado (linker). Existen varios tipos de compiladores: •Compiladores cruzados •Compiladores optimizadores •Compiladores de una sola pasada •Compiladores de varias pasadas •Compiladores JIT (Just In Time). Volver
  33. Teoría de lenguajes de programación Teoría del lenguaje de programación (conocido comúnmente como PLT) es un rama de informática ese se ocupa del diseño, de la puesta en práctica, del análisis, de la caracterización, y de la clasificación de lenguajes de programación y lenguaje de programación características. Es un campo multidisciplinario, ambos dependiendo de (y en algunos casos afectando) matemáticas, tecnología de dotación lógica, lingüística, e incluso ciencias cognoscitivas. Es un rama bien-reconocido de la informática, y en fecha 2006, un área activa de la investigación, con los resultados publicados en numeroso diarios dedicado al PLT, así como en general publicaciones de la informática y de la ingeniería. Volver
  34. Bases de datos Volver
  35. Minería de datos Algunos sistemas que son sólo parcialmente conocidos, producen una cantidad inmensa de datos; estos datos con frecuencia contienen valiosa información que puede resultar muy útil y ser vista como vetas de oro por los ojos de un ejecutivo de una corporación. Las dimensiones de las base de datos grandes (montañas) y sus velocidades de crecimiento, hacen muy difícil para un humano su análisis y la extracción de alguna información importante (oro). Aún con el uso de herramientas estadísticas clásicas esta tarea es casi imposible.
  36. El descubrimiento de conocimiento en base de datos (KDD) combina las técnicas tradicionales con numerosos recursos desarrollados en el área de la inteligencia artificial. En estas aplicaciones el término "Minería de Datos" (Data mining) ha tenido más aceptación. En algunos casos las herramientas provenientes de la inteligencia artificial son nuevas, no del todo comprendidas y carentes de un soporte teórico formal. Pero en este caso el objetivo es tan valioso, que los resultados prácticos han rebasado a la elegancia académica. Volver
  37. Sistemas concurrentes, paralelos y distribuidos Volver
  38. Programación concurrente Un programa concurrente es un programa que tiene mas de una línea lógica de ejecución, es decir, es un programa que parece que varias partes del mismo se ejecutan simultáneamente. Un ejemplo de esto es un programa que realice determinada función y, simultáneamente, exponga datos en la pantalla. Un programa concurrente puede correr en varios procesadores simultáneamente o no. Esta importancia de la concurrencia es especialmente destacable en sistemas operativos como Linux, que además de concurrentes, presentan unos mecanismos de concurrencia estables. El concepto fundamental de la programación concurrente es la noción de proceso. El termino proceso fue utilizado por primera vez por los diseñadores del sistema Multics en los años 60’s. Desde entonces, el termino proceso, utilizado a veces como sinónimo de tarea, ha tenido muchas definiciones. Volver
  39. Redes de computadoras Una red de computadoras es un sistema de comunicación de datos que enlaza varias computadoras y periféricos como impresoras, sistemas de almacenamiento masivo, bibliotecas de CD-ROM, módem, fax y muchos otros dispositivos. La más simple de las redes es una caja de conexiones y un cable, que permite compartir la misma impresora a varios usuarios. Con este sistema, sólo hay un usuario que puede enviar trabajos de impresión en cada momento. Los conectores serie o paralelo ofrecen un modo económico de montar una red, pero tienen capacidades limitadas de impresión y transferencia de archivos. Para montar una red multiusuario, realmente útil, hacen falta tarjetas de interfaz de red (NICs = Netware Interface Cards) y sistemas de cableado. Volver
  40. Computo paralelo La computación paralela es una técnica de programación en la que muchas instrucciones se ejecutan simultáneamente. Se basa en el principio de que los problemas grandes se pueden dividir en partes más pequeñas que pueden resolverse de forma concurrente ("en paralelo"). Existen varios tipos de computación paralela: paralelismo a nivel de bit, paralelismo a nivel de instrucción, paralelismo de datos y paralelismo de tareas. Durante muchos años, la computación paralela se ha aplicado en la computación de altas prestaciones, pero el interés en ella ha aumentado en los últimos años debido a las restricciones físicas que impiden el escalado en frecuencia. La computación paralela se ha convertido en el paradigma dominante en la arquitectura de computadores, principalmente en los procesadores multinúcleo. Sin embargo, recientemente, el consumo de energía de los ordenadores paralelos se ha convertido en una preocupación.
  41. Los ordenadores paralelos se pueden clasificar según el nivel de paralelismo que admite su hardware: los ordenadores multinúcleo y multiproceso tienen varios elementos de procesamiento en una sola máquina, mientras que los clusters, los MPP y los grids emplean varios ordenadores para trabajar en la misma tarea. Los programas de ordenador paralelos son más difíciles de escribir que los secuenciales porque la concurrencia introduce nuevos tipos de errores de software, siendo las condiciones de carrera los más comunes. La comunicación y la sincronización entre las diferentes subtareas son típicamente las grandes barreras para conseguir un buen rendimiento de los programas paralelos. El incremento de velocidad que consigue un programa como resultado de la paralelisacion viene dado por la ley de Amdahl. Volver
  42. Sistemas Distribuidos La computación distribuida o informática en malla, es un nuevo modelo para resolver problemas de computación masiva utilizando un gran número de computadoras organizadas en racimos incrustados en una infraestructura de telecomunicaciones distribuida. Un sistema distribuido se define como: una colección de computadoras separados físicamente y conectados entre sí por una red de comunicaciones distribuida; cada máquina posee sus componentes de hardware y software que el usuario percibe como un solo sistema (no necesita saber qué cosas están en qué máquinas). 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 común. Los sistemas distribuidos deben ser muy confiables, ya que si un componente del sistema se descompone otro componente debe de ser capaz de reemplazarlo, esto se denomina Tolerancia a Fallos. El tamaño 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. Volver
  43. Inteligencia Artificial Volver
  44. Inteligencia Artificial Se denomina inteligencia artificial (IA) a la rama de las Ciencias de la Computación dedicada al desarrollo de agentes racionales no vivos. Para explicar la definición anterior, entiéndase a un agente como cualquier cosa capaz de percibir su entorno (recibir entradas), procesar tales percepciones y actuar en su entorno (proporcionar salidas), y entiéndase a la racionalidad como la característica que posee una elección de ser correcta, más específicamente, de tender a maximizar un resultado esperado (este concepto de racionalidad es más general y por ello más adecuado que inteligencia para definir la naturaleza del objetivo de esta disciplina).
  45. Por lo tanto, y de manera más específica la inteligencia artificial es la disciplina que se encarga de construir procesos que al ser ejecutados sobre una arquitectura física producen acciones o resultados que maximizan una medida de rendimiento determinada, basándose en la secuencia de entradas percibidas y en el conocimiento almacenado en tal arquitectura. Existen distintos tipos de conocimiento y medios de representación del conocimiento, el cual puede ser cargado en el agente por su diseñador o puede ser aprendido por el mismo agente utilizando técnicas de aprendizaje.
  46. También se distinguen varios tipos de procesos válidos para obtener resultados racionales, que determinan el tipo de agente inteligente. De más simples a más complejos, los cinco principales tipos de procesos son: •Ejecución de una respuesta predeterminada por cada entrada (análogas a actos reflejos en seres vivos). •Búsqueda del estado requerido en el conjunto de los estados producidos por las acciones posibles. •Algoritmos genéticos (análogo al proceso de evolución de las cadenas de ADN). •Redes neuronales artificiales (análogo al funcionamiento físico del cerebro de animales y humanos). •Razonamiento mediante una lógica formal (análogo al pensamiento abstracto humano).
  47. También existen distintos tipos de percepciones y acciones, pueden ser obtenidas y producidas, respectivamente por sensores físicos y sensores mecánicos en máquinas, pulsos eléctricos 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, planificación automática, la habilidad de responder a diagnósticos 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 economía, medicina, ingeniería y la milicia, y se ha usado en gran variedad de aplicaciones de software, juegos de estrategia como ajedrez de computador y otros videojuegos. Volver
  48. Razonamiento Automatizado Razonamiento automatizado es un área de informática dedicado a entender diversos aspectos de razonamiento de una manera que permite la creación del software que permite que razonen las computadoras totalmente o casi totalmente automáticamente. Como tal, generalmente se considera un subcampos de inteligencia artificial, solamente también tiene conexiones fuertes a informática teórica e iguale filosofía. Las subzonas desarrolladas del razonamiento automatizado están probablemente el probar automatizado del teorema (y el subcampo menos automatizado pero más pragmático de el probar interactivo del teorema) y comprobación automatizada de la prueba (visto como razonamiento correcto garantizado bajo asunciones fijas), solamente trabajo extenso también se ha hecho en razonar cerca analogía, inducción y abducción.
  49. Otros asuntos importantes están razonando debajo incertidumbre y no- mono tónico razonamiento. Una parte importante del campo de la incertidumbre es la de la argumentación, donde otros apremios del minimality y de la consistencia se aplican encima de la deducción automatizada más estándar. El sistema de Oscar del Pollock de Juan es un ejemplo de un sistema automatizado de la argumentación que sea más específico que siendo justo un proveer automatizado del teorema. La argumentación formal es subcampo de la inteligencia artificial. Las herramientas y las técnicas incluyen las lógicas y el calculi clásicos del teorema automatizado que prueba, pero también lógica confusa, Inferencia Bayesian, razonando con entropía máxima y una gran cantidad de técnicas ad hoc menos formales. Volver
  50. Robótica La robótica es un concepto de dominio publico. La mayor parte de la gente tiene una idea de lo que es la robótica, sabe sus aplicaciones y el potencial que tiene; sin embargo, no conocen el origen de la palabra robot, ni tienen idea del origen de las aplicaciones útiles de la robótica como ciencia. La robótica como hoy en día la conocemos, tiene sus orígenes hace miles de anos. Nos basaremos en hechos registrados a través de la historia, y comenzaremos aclarando que antiguamente los robots eran conocidos con el nombre de autómatas, y la robótica no era reconocida como ciencia, es mas, la palabra robot surgió hace mucho después del origen de los autómatas.
  51. Desde el principio de los tiempos, el hombre ha deseado crear vida artificial. Se ha empeñado en dar vida a seres artificiales que le acompañen en su morada, seres que realicen sus tareas repetitivas, tareas pesadas o difíciles de realizar por un ser humano. De acuerdo a algunos autores, como J. J. C. Smart y Jasia Reichardt, consideran que el primer autómata en toda la historia fue Adán creado por Dios. De acuerdo a esto, Adán y Eva son los primero autómatas inteligentes creados, y Dios fue quien los programó y les dio sus primeras instrucciones que debieran de seguir. Dentro de la mitología griega se puede encontrar varios relatos sobre la creación de vida artificial, por ejemplo, Prometeo creo el primer hombre y la primer mujer con barro y animados con el fuego de los cielos. De esta manera nos damos cuenta de que la humanidad tiene la obsesión de crear vida artificial desde el principio de los tiempos. Muchos han sido los intentos por lograrlo. Los hombres creaban autómatas como un pasatiempo, eran creados con el fin de entretener a su dueño. Los materiales que se utilizaban se encontraban al alcance de todo el mundo, esto es, utilizaban maderas resistentes, metales como el cobre y cualquier otro material moldeable, esto es, que no necesitara o requiriera de algún tipo de transformación para poder ser utilizado en la creación de los autómatas. Estos primeros autómatas utilizaban, principalmente, la fuerza bruta para poder realizar sus movimientos. A las primeras maquinas herramientas que ayudaron al hombre a facilitarle su trabajo no se les daba el nombre de autómata, sino más bien se les reconocía como artefactos o simples maquinas. Volver
  52. Visión por computador La Visión artificial, también conocida como Visión por Computador (del inglés Computer Visión) o Visión técnica, es un subcampo de la inteligencia artificial. El propósito de la visión artificial es programar un computador para que "entienda" una escena o las características de una imagen. Esquema de relaciones entre visión por computadora y otras áreas afines.
  53. Los objetivos típicos de la visión artificial incluyen: •La detección, segmentación, localización y reconocimiento de ciertos objetos en imágenes. •La evaluación de los resultados. •Registro de diferentes imágenes de una misma escena u objeto, i.e., hacer concordar un mismo objeto en diversas imágenes. •Seguimiento de un objeto en una secuencia de imágenes. •Mapeo de una escena para generar un modelo tridimensional de la escena; tal modelo podría ser usado por un robot para navegar por la escena. •Estimación de las posturas tridimensionales de humanos. •Búsqueda de imágenes digitales por su •contenido. •Estos objetivos se consiguen por medio de reconocimiento de patrones, • aprendizaje estadístico, geometría de proyección, procesado de imágenes, teoría de gráficos y otros campos. •La visión artificial cognitiva está muy relacionada con la psicología cognitiva y la computación biológica. Volver
  54. Aprendizaje Automático El Aprendizaje Automático o Aprendizaje de Máquinas es una rama de la Inteligencia Artificial cuyo objetivo es desarrollar técnicas que permitan a las computadoras aprender. De forma más concreta, se trata de crear programas capaces de generalizar comportamientos a partir de una información no estructurada suministrada en forma de ejemplos. Es, por lo tanto, un proceso de inducción del conocimiento. En muchas ocasiones el campo de actuación del Aprendizaje Automático se solapa con el de la Estadística, ya que las dos disciplinas se basan en el análisis de datos. Sin embargo, el Aprendizaje Automático se centra más en el estudio de la Complejidad Computacional de los problemas. Muchos problemas son de clase NP-hard, por lo que gran parte de la investigación realizada en Aprendizaje Automático está enfocada al diseño de soluciones factibles a esos problemas. El Aprendizaje Automático puede ser visto como un intento de automatizar algunas partes del Método Científico mediante métodos matemáticos.
  55. El Aprendizaje Automático tiene una amplia gama de aplicaciones, incluyendo motores de búsqueda, diagnósticos médicos, detección de fraude en el uso de tarjetas de crédito, análisis del mercado de valores, clasificación de secuencias de ADN, reconocimiento del habla y del lenguaje escrito, juegos y robótica. Tipos de algoritmos Los diferentes algoritmos de Aprendizaje Automático se agrupan en una taxonomía en función de la salida de los mismos. Algunos tipos de algoritmos son: •Aprendizaje supervisado (El algoritmo produce una función que establece una correspondencia entre las entradas y las salidas deseadas del sistema. ) •Aprendizaje no supervisado (Todo el proceso de modelado se lleva a cabo sobre un conjunto de ejemplos formado tan sólo por entradas al sistema. No se tiene información sobre las categorías de esos ejemplos.) •Aprendizaje por refuerzo (El algoritmo aprende observando el mundo que le rodea. Su información de entrada es el feedback o retroalimentación que obtiene del mundo exterior como respuesta a sus acciones.) •Transducción (Trata de predecir las categorías de los futuros ejemplos basándose en los ejemplos de entrada, sus respectivas categorías y los ejemplos nuevos al sistema.) •Aprendizaje multi-tarea (Métodos de aprendizaje que usan conocimiento previamente aprendido por el sistema de cara a enfrentarse a problemas parecidos a los ya vistos.)
  56. En el aprendizaje automático podemos obtener 3 tipos de conocimiento los cuáles son: 1. Crecimiento Es el que se adquiere de lo que nos rodea, el cual guarda la información en la memoria como si dejara huellas. 2. Reestructuración Al interpretar los conocimientos el individuo razona y genera nuevo conocimiento al cual se le llama de reestructuración. 3. Ajuste Es el que se obtiene al generalizar varios conceptos o generando los propios. Los tres tipos se efectúan durante un proceso de aprendizaje automático pero la importancia de cada tipo de conocimiento depende de las características de lo que se está tratando de aprender. El aprendizaje es más que una necesidad, es un factor primordial para satisfacer las necesidades de la inteligencia artificial. Volver
  57. Gráficos por computador Volver
  58. Computación grafica La computación gráfica o gráficos por ordenador es el campo de la informática visual, donde se utilizan computadoras tanto para generar imágenes visuales sintéticamente como integrar o cambiar la información visual y espacial probada del mundo real. El primer mayor avance en la gráfica 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 vídeo), animación de computadora, captura de vídeo y creación de vídeo interpretado, edición de efectos especiales (a menudo usado para películas y televisión), edición de imagen, y modelado (a menudo usado para ingeniería y objetivos médicos).
  59. El desarrollo en la gráfica realizada por computadora fue primero alimentado por intereses académicos y patrocinio del gobierno. Sin embargo, cuando las aplicaciones verdaderas mundiales de la gráfica realizada por computadora (CG) en televisión y películas demostraron una alternativa viable a efectos especiales más a las tradicionales y las técnicas de animación, los comerciales han financiado cada vez más el avance de este campo. A menudo se piensa que la primera película para usar gráficos realizados por computadora era 2001: A Space Odyssey (1968), que intentó mostrar como las computadoras serían mucho más gráficas en el futuro. Sin embargo, todos los gráficos de computadora en aquella película eran la animación dibujada a mano (por ejemplo en las pantallas de televisión se simulaba el comportamiento de las computadoras con dibujos), y las secuencias de efectos especiales fue producida completamente con efectos ópticos y modelos convencionales. Quizás el primer uso de la gráfica realizada por computadora expresamente para ilustrar gráfica realizada por computadora estaba en Futureworld (1976), que incluyó una animación de una cara humana y mano - producido por Ed Catmull y Fred Parke en la Universidad de Utah. Volver
  60. Procesamiento digital de imágenes El termino procesamiento digital de imágenes versa sobre la manipulación y análisis de imágenes por computadora. De aquí en adelante se usara el termino procesado de imágenes refiriéndose a procesamiento digital de imágenes. El procesamiento de imagen puede considerarse como un tipo especial del procesamiento digital en dos dimensiones, el cual se usa para revelar información sobre imágenes y que involucra hardware, software y soporte teórico. Volver
  61. Geometría computacional Geometría Computacional es un ramo de la Ciencia de la Computación que estudia algoritmos y estructuras de datos para la resolución computacional de problemas geométricos. Además de eso, algunos problemas puramente geométricos surgen del estudio de algoritmos y, por eso, también son considerados parte de la geometría computacional. Los problemas en Geometría Computacional son tratados en términos de objetos geométricos elementales como puntos, rectas, segmentos de recta, polígonos, etc. En general, el objetivo de esta disciplina es resolver los problemas geométricos de forma eficiente, es decir, utilizando el más pequeño número posible de operaciones simples sobre los elementos geométricos. La Geometría Computacional da enfuse la complexidades computacional de los problemas y algoritmos estudiados.
  62. La Geometría Computacional emergió de áreas de desarrollo y análisis de algoritmos a mediados de la década de 1970. El primer uso del término Geometría Computacional con este sentido ocurrió en 1975. La geometría computacional estudia tanto problemas geométricos clásicos, como también problemas motivados por diversas áreas de la computación como Computación Gráfica, dibujo asistido por ordenador (CAD/CAM), robótica, sistemas de información geográfica, visión computacional, optimización combinatoria, procesamiento de imágenes, teoría de los grafos, dibujo de circuitos integrados, aprendizaje de máquina etc. Volver
  63. Computación científica Volver
  64. Bioinformatica Bioinformatica es una disciplina científica emergente que utiliza tecnología de la información para organizar, analizar y distribuir información biológica con la finalidad de responder preguntas complejas en biología. Bioinformatica es un área de investigación multidisciplinaria, la cual puede ser ampliamente definida como la interface entre dos ciencias: Biología y Computación y esta impulsada por la incógnita del genoma humano y la promesa de una nueva era en la cual la investigación genómica puede ayudar dramáticamente a mejorar la condición y calidad de vida humana. Avances en la detección y tratamiento de enfermedades y la producción de alimentos genéticamente modificados son entre otros ejemplos de los beneficios mencionados más frecuentemente. Involucra la solución de problemas complejos usando herramientas de sistemas y computación. También incluye la colección, organización, almacenamiento y recuperación de la información biológica que se encuentra en base de datos.
  65. Según la definición del Centro Nacional para la Información Biotecnológica "National Center for Biotechnology Information" (NCBI por sus siglas en Inglés, 2001): "Bioinformatica es un campo de la ciencia en el cual confluyen varias disciplinas tales como: biología, computación y tecnología de la información. El fin último de este campo es facilitar el descubrimiento de nuevas ideas biológicas así como crear perspectivas globales a partir de las cuales se puedan discernir principios unificadores en biología. Al comienzo de la "revolución genómica", el concepto de Bioinformatica se refería sólo a la creación y mantenimiento de base de datos donde se almacena información biológica, tales como secuencias de nucleótidos y aminoácidos. El desarrollo de este tipo de base de datos no solamente significaba el diseño de la misma sino también el desarrollo de interfaces complejas donde los investigadores pudieran acceder los datos existentes y suministrar o revisar datos Volver
  66. Computación cuántica La computación cuántica es producto de la combinación de la mecánica cuántica y la teoría de la computación, que se enfoca a estudiar si un problema puede ser resuelto utilizando un procedimiento programado en una computadora, así como la cantidad de recursos como energía y tiempo que se deben aplicar en caso de existir solución. En consecuencia, la computación cuántica tiene como propósito la utilización de las teorías de las que surge para incrementar la capacidad de las computadoras para procesar información y solucionar problemas. En la computación cuántica también convergen otras disciplinas como la microelectrónica, la nanotecnología, las matemáticas, la criptografía, entre otras.
  67. Los científicos se plantearon desde hace algunos años la interrogante de cuáles serían las propiedades de una computadora en la cual los ceros y los unos (sistema binario) estuvieran codificados en sistemas de dimensiones atómicas (un electrón, un fotón, un átomo). En nuestro mundo, el procesamiento y almacenamiento de la información sigue las leyes de la llamada mecánica clásica. Al pasar a sistemas de tamaños atómicos las reglas cambiarían y la mecánica cuántica regiría el comportamiento de los equipos. Los ceros y unos con que se maneja la información actual en nuestros equipos de cómputo, denominados bits, se transformarían en qubits (contracción del término inglés quantumbits), o bits cuánticos, siguiendo reglas muy diferentes. Los qubits son los componentes básicos de una computadora cuántica y están formados a partir de partículas subatómicas que interactúan para el intercambio de información, lo que permitirá computadoras más poderosas para el procesamiento de información.
  68. Las computadoras clásicas o digitales codifican información utilizando números binarios y pueden hacer cálculos de un conjunto de números de una sola vez cada uno. En cambio las computadoras cuánticas en teoría codificarían información como una serie de estados mecánicos cuánticos tales como las direcciones de los electrones o las polarizaciones de un fotón, estas características entre otras, permitirán la realización de diversos cálculos simultáneamente a una velocidad y capacidad nunca antes vistos. Hasta el momento en varios laboratorios del mundo se ha logrado con éxito arreglos y enlaces cuánticos de dos y hasta tres qubits de estado sólido, materiales nano estructurados que se localizan en chips que interacciona y podrían formar un arsenal de qubits. Otros de los temas relevantes en el campo de computación cuántica se refieren al desarrollo de los algoritmos cuánticos. Un algoritmo (convencional) es un procedimiento matemático programado en computadora. La creación de un algoritmo cuántico se ha convertido en uno de los grandes retos que enfrentan la ciencia en la actualidad pues dicho algoritmo debe resolver el problema para el que fue diseñado y además debe ser más veloz que cualquier algoritmo convencional para resolver cualquier problema. Computadoras equipadas con algoritmos cuánticos abren posibilidades antes no consideradas, disminuciones exponenciales en el tiempo de procesamiento y realización de operaciones en paralelo sin necesidad de agregar procesadores a la computadora. Volver
  69. Fuentes: http://www.grupoeducare.com/blog/template_permalink.asp?id=93 http://cienciasdelacomputacion.com http://es.wikipedia.org/wiki/Ciencias_de_la_computaci%C3%B3n http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php http://homepages.mty.itesm.mx/al796887/criptografia.ppt http://es.wikipedia.org/wiki/Teor%C3%ADa_de_grafos http://es.wikipedia.org/wiki/Tipo_de_dato http://enciclopedia.us.es/index.php/Teor%C3%ADa_de_la_computaci%C3%B3n http://www.angelfire.com/oz/automatas/ http://es.wikipedia.org/wiki/Teor%C3%ADa_de_la_computabilidad http://es.wikipedia.org/wiki/Complejidad_computacional http://es.wikipedia.org/wiki/An%C3%A1lisis_de_algoritmos http://www.mitecnologico.com/Main/Automatas
  70. http://es.wikipedia.org/wiki/Estructura_de_datos http://www.alegsa.com.ar/Dic/compilador.php http://www.worldlingo.com/ma/enwiki/es/Programming_language_theory http://www.answermath.com/mineria_de_datos.htm http://www.depi.itch.edu.mx/apacheco/lengs/paralelo/index.html http://www.angelfire.com/nc2/misdocumentos/redes/REDES.html http://es.wikipedia.org/wiki/Programaci%C3%B3n_paralela http://es.wikipedia.org/wiki/Sistemas_Distribuidos http://es.wikipedia.org/wiki/Inteligencia_artificial http://www.worldlingo.com/ma/enwiki/es/Automated_reasoning http://www.monografias.com/trabajos6/larobo/larobo.shtml#intro http://es.wikipedia.org/wiki/Visi%C3%B3n_por_computador http://es.wikipedia.org/wiki/Aprendizaje_Autom%C3%A1tico http://es.wikipedia.org/wiki/Computaci%C3%B3n_gr%C3%A1fica http://delta.cs.cinvestav.mx/~fraga/Cursos/PDI/cap1.pdf http://es.wikilingue.com/pt/Geometria_computacional http://www.solociencia.com/biologia/bioinformatica-concepto.htm http://www.periodistasenlinea.org/modules.php?op=modload&name=News&file=art icle&sid=1217 Volver
Publicité