Descargar

Inteligencia artificial y robótica: investigación de sistemas de cómputo (página 3)

Enviado por Ariel Paz e Silva


Partes: 1, 2, 3

Otra técnica evolutiva dirigida particularmente a la optimización de funciones continuas de alta complejidad se desarrolló en Alemania, en 1965, por Rechenberg y Schwefel. Esta técnica, llamada estrategia evolutiva, se utilizó inicialmente para resolver problemas de ingeniería que desafiaban a los métodos de optimización tradicionales, como el gradiente conjugado, y se basa en la modificación sistemática de un vector de números reales (representando las variables de decisión del problema) mediante operadores probabilísticos, usando ciertos criterios para decidir en qué dirección dirigir la búsqueda. La estrategia evolutiva utiliza como operador principal a la mutación, y en su versión más reciente usa la cruza como operador secundario.

Aunque el australiano Fraser propuso, desde fines de los 50, un procedimiento muy similar al que John Holland llamó planes evolutivos a fines de los 60, es al segundo al que se le suele atribuir la creación de la técnica que se conoce como algoritmo genético, a raíz de que Holland publicara el libro "Adaptation in Natural and Artificial Systems" en 1975.

La principal diferencia del algoritmo genético con las técnicas antes mencionadas, es que utiliza la cruza como operador principal y a la mutación como operador secundario (e incluso opcional). El algoritmo genético, al igual que las redes neuronales, funciona como una caja negra que recibe ciertas entradas y produce (tras una cantidad de tiempo indeterminada) las salidas deseadas. Sin embargo, a diferencia de éstas, los algoritmos genéticos no necesitan entrenarse con ejemplos de ningún tipo, sino que son capaces de generar sus propios ejemplos y contraejemplos que guíen la evolución a partir de poblaciones iniciales totalmente aleatorias.

Los mecanismos de selección del más apto y de reproducción sexual del algoritmo genético, son los encargados de preservar las características más adecuadas de cada individuo a fin de hacer converger a la población en soluciones óptimas.

Los algoritmos genéticos se distinguen también por no quedar atrapados fácilmente en mínimos locales, como la mayor parte de las técnicas de búsqueda clásicas, además de usar operadores probabilísticos más robustos que los operadores determinísticos, que las otras técnicas suelen usar.

No obstante, siendo una heurística, tampoco pueden garantizar encontrar siempre la solución óptima, si bien la experiencia acumulada hasta la fecha parece demostrar que, cuando se utilizan apropiadamente, pueden proporcionar soluciones muy aceptables y, en la mayoría de los casos, superiores a las encontradas con otras técnicas de búsqueda y optimización.

Aunque aún atacados por algunos sectores de la comunidad de Inteligencia Artificial, los algoritmos genéticos, al igual que las redes neuronales, se han ido ganando poco a poco, y sobre la base de la efectividad de sus resultados en aplicaciones prácticas, el reconocimiento de los investigadores como una técnica efectiva en problemas de gran complejidad, como lo demuestra un número creciente de conferencias y publicaciones especializadas alrededor del mundo, en los últimos años.

Base de Conocimiento. Sistemas Basados en Conocimiento

Los métodos generales desarrollados para la resolución de problemas y técnicas de búsqueda al inicio de la era de la Inteligencia Artificial demostraron no ser suficientes para resolver los problemas orientados a las aplicaciones, ni fueron capaces de satisfacer los difíciles requerimientos de la investigación.

A este conjunto de métodos, procedimientos y técnicas, se lo conoce como Inteligencia Artificial Débil. La principal conclusión que se derivó de este trabajo inicial fue que los problemas difíciles sólo podrían ser resueltos con la ayuda del conocimiento específico acerca del dominio del problema.

La aplicación de estas ideas dio lugar al desarrollo de los denominados Sistemas Basados en Conocimiento (Knowledge Based Systems) y al aparecimiento de la Ingeniería Cognoscitiva, como una rama de la Inteligencia Artificial, que estudia los sistemas basados en el conocimiento. La definición de un sistema basado en conocimiento puede ser la siguiente:

Es un sistema computarizado capaz de resolver problemas en el dominio en el cual posee conocimiento específico.

La solución es esencialmente la misma que hubiera dado un ser humano confrontado con idéntico problema, aunque no necesariamente el proceso seguido por ambos puede ser igual.

El simple concepto dado, puede causar confusión ya que muchos sistemas basados en programas convencionales podrían ser incorrectamente categorizados como sistemas basados en conocimiento. Esta inconsistencia puede ser aclarada, sobre la base de tres conceptos fundamentales que distinguen a los sistemas basados en conocimiento de los programas algorítmicos convencionales y de los programas generales basados en búsqueda:

Inteligencia Artificial débil.

·         Primero, la separación del conocimiento y el modo en que es usado.

·         Segundo, la naturaleza del conocimiento empleado (heurística antes que algorítmica).

·         Tercero, El uso de conocimiento específico de un determinado dominio.

Las características principales son:

·         amplia difusión del conocimiento

·         fácil modificación

·         respuestas coherentes

·         disponibilidad casi completa

·         conservación del conocimiento

·         capacidad de resolver problemas disponiendo de información incompleta

·         capacidad de explicar los resultados y la forma de obtenerlos

Los principales problemas asociados a este método son:

·         las soluciones no siempre son las mejores o correctas

·         conocimiento limitado frente al dominio de un experto

·         carecen del sentido común o criterio que puede tener un experto

·         es difícil extraer todo el conocimiento que maneja un experto.

Experiencia, Habilidades y Conocimiento.

Los tipos de experiencia que son de interés en los sistemas basados en conocimiento, pueden ser clasificados en tres categorías: asociativa, motora y teórica.

Los sistemas basados en conocimiento son excelentes para representar conocimiento asociativo. Este tipo de experiencia refleja la habilidad heurística o el conocimiento que es adquirido mayoritariamente, a través de la observación.

Puede ser que no se comprenda exactamente lo que ocurre al interior de un sistema (caja negra), pero se pueden asociar entradas o estímulos con salidas o respuestas, para resolver problemas que han sido previamente conocidos.

La experiencia motora es más física que cognitiva. La habilidad se adquiere fundamentalmente a través del ejercicio y la práctica física constante. Los sistemas basados en conocimiento no pueden emular fácilmente este tipo de experiencia, principalmente por la limitada capacidad de la tecnología robótica.

La experiencia teórica y el conocimiento profundo permite que los humanos puedan resolver problemas que no se han visto antes, es decir, no existe una posibilidad asociativa. El conocimiento teórico y profundo se adquiere a través de estudio y entrenamiento formal, así como por medio de la resolución directa de problemas.

Debido a su naturaleza teórica, este conocimiento se puede olvidar fácilmente, a no ser que se use en forma continua. Al momento, los sistemas convencionales basados en conocimiento tienen muchas dificultades para duplicar este tipo de experiencia. Sin embargo, los Sistemas de Razonamiento Basado en Modelos representan un notable intento de encapsular este conocimiento profundo y razonar con él.

Estructura de los Sistemas Basados en Conocimiento.

La arquitectura de un sistema basado en conocimiento de alguna manera refleja la estructura cognitiva y los procesos humanos. La primera parte es la memoria de largo plazo, en la que guarda los hechos (Base de Hechos) y los conocimientos (Base de Conocimientos) acerca del dominio en el que tiene experiencia.

Estructura de un sistema basado en conocimiento

La segunda parte es el sistema que realiza la función de razonamiento para resolver problemas (Motor de Inferencia). Finalmente, la tercera parte la conforman las unidades de entrada y salida que permiten la comunicación entre el sistema y su entorno.

La representación del conocimiento determina el desarrollo de un sistema experto e influye en las estrategias de control. Es muy versátil, hay muchas formas de hacerlo y es complicada la elección. Generalmente la elección está basada en la intuición o en las especiales circunstancias del problema.

La primera fase es la adquisición del conocimiento desde un experto y depende de la cantidad y de su adecuada representación. Se deben conocer los límites, pues sólo llegan hasta donde son capaces de resolver un problema. Esto implica, que tiene que circunscribirse a un dominio homogéneo.

El lenguaje de programación debe ser adecuado, se usan principalmente el LISP y PROLOG, que difieren de los lenguajes clásicos en que sus reglas (que también contienen hechos) entran masivamente, y que el programa, es decir, el motor de inferencia, encontrará el camino a través de reglas.

Por otra parte, la programación procedural consiste en una cuidadosa descripción de los algoritmos que marcan el camino de los diferentes procedimientos y funciones en los programas.

Estos dos modos de programación son teóricamente iguales, pero en la práctica difieren.

La programación declarativa es un tipo de programación implantada en los sistemas expertos y por ciertos lenguajes. La principal diferencia es que en la declarativa las reglas se formulan independientemente de su secuencia de aplicación. El modo en que se ejecutan las reglas corresponde al motor de inferencia y es independiente de las reglas en sí mismas. En la programación procedural, las reglas se implantan y ejecutan en un orden establecido.

Las ventajas en los sistemas expertos es la modularidad, no hay un solo camino para responder a un problema y son fáciles de leer, lo que simplifica comprobar su consistencia.

La representación del conocimiento es esencial en inteligencia artificial y es la base de la construcción de un sistema experto.

Fases en la adquisición del conocimiento:

·         identificación del problema.

·         Estructuración del conocimiento.

·         La arquitectura del sistema y la maqueta.

·         El prototipo y terminación del sistema.

Tecnología de los Sistemas Basados en Conocimiento.

Desde el punto de vista tecnológico, los Sistemas Basados en Conocimiento pueden presentar varias formas de aplicación:

·         Aislada: un Sistema Basado en Conocimiento único se relaciona con el entorno.

·         Integrada: varios Sistemas Basados en Conocimiento conectados a bases de conocimiento comunes. Tipo Front-End cuando todos los hechos y datos están físicamente en la base común. Tipo Back-End cuando los hechos y datos necesarios que no estén en las bases comunes, pueden obtenerse de otros SBC.

·         Embebida: un Sistema Basado en Conocimiento está integrado con otros sistemas y no se lo distingue.

               

Motor de Inferencia

Un motor de inferencia interpreta y evalúa los hechos en la base de conocimientos para proveer una respuesta. Este debe ser independiente del conocimiento y de los hechos. Se puede caracterizar por:

El lenguaje en que ha sido escrito.

·   La velocidad de trabajo: Inferencias / segundo.

·   Las estrategias de búsqueda de soluciones:

No Ordenada: aleatoria, heurística.

Ordenada: Encadenamiento hacia adelante (guiado por los datos, deductivo), encadenamiento hacia atrás (guiado por los objetivos, inductivo).

·   La forma en que elige el conocimiento.

·   La posibilidad de incorporar metaconocimiento.

·   El tipo de lógica que emplea en el razonamiento:

Booleana, trivalente, multivalente, difusa.

Monotónica o no monotónica.

Atemporal o temporal.

Lógica de orden 0, orden 0+, orden 1.

·   El método que utiliza para la evaluación del conocimiento incompleto o incierto:

Determinístico.

Probabilístico.

Aproximado.

Difuso.

En un sistema experto, dado un estado particular de la base de datos, se deben reconocer las reglas aplicables y esto se llama filtrado o identificación de patrones, operación especialmente larga, ya que muchos sistemas realizan una preselección de las reglas antes de que comience la identificación propiamente tal. Es decir, se considera un subconjunto de reglas y entre éstas, las aplicables. Esto, es lo que se llama restricción.

Adicionalmente puede existir una Base de Datos con información puntual sobre problemas específicos anteriormente resueltos por el sistema, y que se usa como información adicional en el proceso de inferencia.

Una vez que las reglas han sido reconocidas deben ser elegidas, dependiendo de la estrategia de control, que es la selección.

Una vez que las regla han sido elegida ha de ejecutarse.

Al módulo central del sistema experto que maneja estas tres operaciones se le denomina motor de inferencia o intérprete de reglas. Hay diversos tipos de motores de inferencia según los métodos con que se manejan las tres operaciones precedentes.

Identificación de patrones

Esta operación determina cuáles son las reglas potencialmente aplicables en un estado dado de la base de datos.

Hay ciertos métodos típicos para resolver problemas mediante Inteligencia Artificial como: descomposición de problemas, inferencia deductiva, deducción lógica, etc.

No es necesario que la búsqueda se aplique a todas las reglas, el sistema de control puede decidir cuáles no son necesarias a ese nivel.

El filtrado significa tener el conocimiento para encontrar las reglas cuya precondición se satisfaga. Se debe comparar por tanto la precondición con la base de datos. Si es una regla deductiva "si premisa entonces conclusión", la parte a ser probada de la regla, se llama disparador o activador (tigger) es siempre una fórmula bien formada ya sea de lógica proposicional o de lógica de primer orden. Puede aplicarse a cualquier hecho.

El único lenguaje que está totalmente basado en el cálculo de predicados es el PROLOG.

Los procesos de identificación de patrones pueden mejorarse examinando, dentro del activador de cada regla, primero los predicados con más restricciones, es decir, los que tienen el menor número de variables libres. Otra forma de proceder es que, para cada regla o parte de su activador, se guarda en la memoria el resultado de las posibles unificaciones para cada parte del activador. Después de cada ciclo del motor de inferencia, esta memoria se actualiza y se denomina filtrado por propagación.

Ejecución de las reglas

Después de la fase de filtrado, cuando una regla está reconocida como aplicable, teniendo en cuenta la base de datos existente, solo resta ejecutarla. Si hay varias posibles reglas, la elección la realiza la estrategia de control.

La conclusión de la regla tiene por objeto modificar la base de conocimiento, creando, modificando o suprimiendo un hecho.

La fase de restricción

En un sistema dirigido por los datos, el filtrado consiste en retener todas las reglas cuyas premisas son verdaderas teniendo en cuenta los hechos (verdaderos) presentes en la base de datos. Este sistema funciona en encadenamiento hacia delante.

Si el sistema es a la vez dirigido por los datos y por los objetivos, se denomina mixto.

La restricción también puede estar especificado explícitamente por el experto para utilizar reglas dentro de las reglas, es decir, meta reglas. Indica qué grupo de reglas debe ser retenido, por prioridad, o definir un orden en los subconjuntos de las reglas.

El conocimiento puede organizarse en forma de red como en las redes semánticas utilizadas en el análisis sintáctico del lenguaje. Su posición dentro de la red dirige las restricciones utilizando heurísticas. Esta formulación es particularmente eficiente si se establece válidamente una organización jerárquica del conocimiento, en este caso existiría una taxonomía de los hechos.

Otro modo de gobernar las restricciones es organizar las reglas en paquetes o esquemas, lo que genera una estructura de árbol en reglas, lo que es una ventaja.

Todos estos modos dependen de la forma en que está representado el conocimiento.

La fase de selección

Como después de las fases anteriores quedan varias reglas se debe seleccionar una y luego de procesada el programa debe saber dónde volver.

Cuando hay una o más reglas, se usan dos estrategias:

– La búsqueda en anchura, que elige una, generalmente la primera y se van ejecutando por turno antes de comprobar que se ha alcanzado la condición final. Si no es así se inicia otro ciclo del motor de inferencia. Este tipo de búsqueda es exhaustiva y la usa el sistema experto MYCIN.

·         Otra estrategia es la de elegir una regla entre las aplicables por medio de una heurística, procesarla y modificar la base de datos. Si no se alcanza la condición final, comienza otro ciclo del motor de inferencia. Es por lo tanto, una estrategia en profundidad.

Cada una de las estrategias puede ser irrevocables o avanzar por prueba y error.

Muchos sistemas efectúan marcha atrás, si no hay regla aplicable, pero si el sistema está bajo un control irrevocable se detendrá.

Visto en la práctica, las reglas poseen la siguiente estructura:

SI (CONJUNTO_DE_PREMISAS) ENTONCES CONSECUENCIA

O bien:

(CONJUNTO_DE_PREMISAS) CONSECUENCIA

El CONJUNTO_DE_PREMISAS contiene las cláusulas, o simplemente condiciones, que deben cumplirse para que la regla pueda ejecutarse, y la CONSECUENCIA representa el resultado de la ejecución de dicha regla.

O bien:

SI (x ES CATEDRÁTICO) ENTONCES (x ES DOCTOR)

En este caso CATEDRÁTICO y DOCTOR representan de nuevo relaciones que deben estar representadas sobre el sistema.

¿Cómo representar estas nuevas relaciones?

Como todo sistema informático los SE pueden operar sobre un conjunto finito de elementos, para esto es necesario definir el universo de trabajo dentro del cual probaremos nuestras reglas. Sobre esta base la definición de la relación SER CATEDRÁTICO o CATEDRÁTICO, según sea la representación usada, debe hacerse puntualmente para cada individuo del universo, por ejemplo:

CATEDRÁTICO ("Mario Pérez")

CATEDRÁTICO ("Manuel Fernández")

CATEDRÁTICO ("Maria González")

Los componentes de la relación SER DOCTOR se deducen a partir de la relación SER CATEDRÄTICO y la regla anterior, por lo que no es necesario una representación o definición explícita.

La inferencia o extracción de conclusiones:

Para extraer una conclusión, o inferencia, se hace necesario, antes que nada, saber el objetivo a satisfacer, o problema a resolver. Este problema se plantea en forma de objetivo que se toma por el Motor de Inferencia el cual a través de la activación y encadenamiento de reglas trata de llegar a una solución. Al seguir con el ejemplo:

Objetivo:

"Es Mario Pérez Doctor"?

Solución:

Al aplicar la regla: SI (x ES CATEDRÁTICO) ENTONCES (x ES DOCTOR)

Se debe chequear, como precondición de activación, el cumplimiento de la relación:

CATEDRÁTICO ("Mario Pérez")

Se debe chequear la base de Axiomas o Afirmaciones:

CATEDRÁTICO ("Mario Pérez") existe en la base de axiomas, por lo que la precondición es verdadera.

Se dispara la consecuencia y se llega a la conclusión que Mario Pérez es doctor.

Encadenamientos de reglas:

Existen dos mecanismos fundamentales de encadenamiento de reglas:

1. Encadenamiento hacia delante:

Se produce cuando el objetivo propuesto al sistema hace que se ejecute una regla, y la conclusión obtenida permite que se ejecute otra, y así sucesivamente hasta llegar a una respuesta, positiva o negativa. El punto final se detecta cuando no se pueden producir más encadenamientos, por ejemplo cuando se llega a un axioma.

Por ejemplo:

(1). SI (x ES JEFE_DPTO) ENTONCES (x ES CATEDRÁTICO)

(2). CATEDRÁTICO ("Mario Pérez")

(3). CATEDRÁTICO ("Manuel Fernandez")

(4). CATEDRÁTICO ("Maria Gonzalez")

Al evaluar el objetivo: "Mario Pérez es Jefe_Dpto"?, se dispara la regla (1), la cual a su vez se encadena con la (2), en este momento no se pueden producir más encadenamientos pues la regla (2) es un axioma. Llegado a este punto el Motor de Inferencia retrocede y da una respuesta positiva a la pregunta.

2. Encadenamiento hacia atrás:

Consiste en, dado un objetivo, buscar una regla que permita establecer dicha conclusión, el proceso se repite hasta encadenar con la regla cuya conclusión satisfaga el objetivo propuesto, o se detecte que dicho problema no se puede resolver positivamente. Por ejemplo para averiguar si "Mario Pérez es doctor" se busca un regla que tenga esta afirmación en sus consecuencias. Analizando las reglas anteriores vemos que la regla:

(5). SI (x ES CATEDRÁTICO) ENTONCES (x ES DOCTOR)

Satisface estas condiciones; siguiendo esta regla hacia atrás tenemos que buscar una nueva que permita validar si "Mario Pérez" es catedrático, lo cual se hace con el axioma (2).

Los encadenamientos constituyen, de esta manera, una de las herramientas fundamentales del Motor de Inferencia; el Lenguaje PROLOG solamente soporta el encadenamiento hacia atrás, el cual constituye el más frecuentemente implementado.

Sistemas Expertos como Sistemas de Información Orientados al Servicio

En la Conferencia de Dartmouth en 1956 donde Newell, Shaw y Simon presentaron sus programas para demostrar las proposiciones lógicas (Logical Theorist). La expresión de Inteligencia Artificial la inventó en aquel mismo año John McCarthy.

En 1959-60, aparece un programa demostrador de teoremas basado en la lógica proposicional (General Problem Solver, por Newell, Shaw y Simon).

La década comprendida entre 1960-70 vio sentar los principios básicos de la investigación en las estructuras en árbol así como el movimiento de ideas empleadas actualmente en la resolución de problemas y los sistemas expertos. Los textos de Newell y Simon (1972) y Nillson (1971) marcan el final de este periodo.

Los principales métodos de búsqueda en estructuras en árbol, que todavía se emplean hoy en los programas de sistemas expertos, estaban ya disponibles en esos años.

Las primeras aplicaciones se hicieron en problemas fáciles de describir, pero complejos de resolver, como por ejemplo: juego de ajedrez y demostración de teoremas matemáticos.

Los sistemas expertos orientados al servicio derivaron de la necesidad de resolver problemas cada vez más complejos, con poca información estructurada y con resultados probables, donde uno de los caminos era encontrar la mejor solución a un problema, no necesariamente la única posible.

Los hechos para una base de conocimiento deben ser adquiridos a partir de experiencias humanas a través de entrevistas y observaciones. Este conocimiento es usualmente representada en la forma de reglas "if-then" (reglas de producción): " si alguna condición es verdadera, entonces la siguiente inferencia puede ser hecha (o alguna acción tomada)". La base de conocimientos de un sistema experto mejor incluye miles de reglas. Un factor de probabilidad es con frecuencia unido a las conclusiones de cada regla de producción, porque la conclusión no es una certeza.

Por ejemplo, un sistema para el diagnóstico de enfermedades del ojo debe indicar, basado en información que apoye esto, un 90% de probabilidad de que una persona tiene glaucoma, y este puede también listar conclusiones con más bajas posibilidades.

Un sistema experto puede desplegar la secuencia de reglas a través de las cuales éste llega a su conclusión. Trazar el flujo ayuda al usuario para apreciar la credibilidad de su recomendación y es útil como una herramienta de aprendizaje para estudiantes.

Los expertos humanos frecuentemente emplean las reglas heurísticas, o "regla del pulgar", además de la simple producción de reglas. Por ejemplo, un administrador de crédito puede saber que un solicitante con una historia pobre de crédito, con un registro limpio desde que adquirió un nuevo empleo, puede actualmente ser un buen sujeto de crédito.

Los sistemas expertos han incorporado tales reglas heurísticas e incrementándolas tienen la habilidad de aprender a partir de la experiencia. Sin embargo, los sistemas expertos son más bien soporte o apoyo más que reemplazos para los expertos humanos.

Definición y Antecedentes.

Los sistemas de información proveen apoyo para las operaciones o servicios que organizaciones realizan para la sociedad. Los sistemas son orientados verticalmente a sectores específicos e industrias, ej. Manufactura, servicios financieros, publicidad, educación, salud y entretenimiento. Más que dirección administrativa y funciones administrativas, ellos apoyan actividades y procesos que son la razón para una existencia organizacional (en muchos casos, algún tipo de actividad manufacturera o el desarrollo de servicios.

Los sistemas de este tipo varían enormemente, pero ellos tienden a caer dentro de tres tipos principales: manufactura, transacciones y Sistemas Expertos.

La meta conceptual de la industria moderna es la manufactura integrada por computador (CIM). Involucra diseño y desarrollo de ingeniería, manufactura, marketing y ventas, y todo el campo de soporte y servicios.

El diseño asistido por computador (CAD) fue aplicado primero en la industria electrónica. Hoy ellos dan forma a las técnicas de modelación tridimensional para dibujo y manipulación de objetos sólidos en una pantalla y para derivar éstos a programas de diseño de piezas y conjuntos, modelación estructural y térmica, fabricación en máquinas CNC (control numérico).

Una vez que un producto es diseñado, su proceso de producción puede ser delineado usando sistemas de planificación de procesos asistidos por computador (CAPP) que ayuden a seleccionar secuencias de operaciones y condiciones de máquinado. Los modelos del sistema de manufactura pueden ser simulado por computadores antes de que sean construidos. Las funciones básicas de la manufacturación: máquinado, formado, unión, ensamble e inspección, son apoyados por el sistema de manufactura asistida por computador (CAM) y sistemas de manejo de material automatizado. El sistema de control de inventario busca mantener un óptimo stock de partes y materiales para controlar el movimiento del inventario, predecir los requerimientos e iniciar procedimientos de órdenes de compra.

La sofisticación tecnológica de los sistemas de información de manufactura es impresionante y esto incluye incrementadamente aplicaciones robóticas, visión de computador y sistemas expertos. Lo central en el concepto de CIM es una base de datos integrada que apoya a las empresas manufactureras y es conectada a otras bases de datos administrativas.

En organizaciones de servicio no-manufacturero el tipo de sistemas de información que prevalece es el que apoya los procesos de transacción.

Transacciones son sets de entradas discretas, suministradas por usuarios en impredecibles intervalos, los cuales llaman a la base de datos buscando, analizando y modificando. El procesador evalúa el requerimiento y ejecuta éste inmediatamente. Partes de la función de procesamiento pueden ser llevadas a un terminal inteligente que distribuye el requerimiento en la carga computacional. El tiempo de respuesta (el lapso de tiempo entre el final de un requerimiento y el comienzo de la respuesta) es una característica importante de este tipo de sistema de teleproceso en tiempo real.

Los sistemas de transacción por teleproceso constituyen la base de las industrias de servicio tales como bancarios, seguros, seguridad, transporte y bibliotecas. Ellos están reemplazando el piso del mayor intercambio comercial de stock del mundo, conectando la más amplia vía de telecomunicaciones en línea en un mercado financiero global. De nuevo, lo central en un sistema de transacción es su base de datos integrada.

El foco del sistema es el recipiente de servicios más que el operador del sistema. Debido a esto, un agente viajero local es capaz de planear un itinerario completo de un viajero: incluyendo las reservaciones en aerolíneas, hoteles, arriendo de autos, programas culturales y deportivos, e incluso restaurantes, en cualquier continente y ajustar éstos al programa y presupuesto del viajero.

Componentes: software de interfaz, base de datos, programa computacional.

Una relativamente nueva categoría de sistemas de información orientada al servicio es el sistema experto, llamado así porque su base de datos guarda una descripción de habilidades en la toma de decisiones de experiencias humanas en un estrecho dominio de procedimientos, tales como interpretación médica de imagen, impuestos, diseño de piping, configuración de hardware en un sistema de computadores, equipamiento para reparar malfuncionamientos o, en la preparación de cerveza.

La motivación para construir sistemas expertos es el deseo de replicar el escaso, in estructurado y quizás el pobremente documentado conocimiento empírico de especialistas que de este modo puede ser rápidamente usado por otros.

Un programa computacional que usa inteligencia artificial resuelve problemas en un dominio especializado que ordinariamente requiere experiencia humana.

El primer sistema experto fue desarrollado en 1965 por Edward Feigenbaum y Joshua Lederberg de la Universidad de Standford en California, USA. Dendral fue diseñado para analizar componentes químicos.

Los sistemas expertos ahora tienen aplicaciones comerciales en campos tan diversos como diagnóstico médico, ingeniería petrolera e inversión financiera.

Para realizar tareas de aparente inteligencia, un sistema experto recurre a tres componentes: un software de interfaz, una base de conocimiento y un motor de inferencia.

1) El software de interfaz, mediante el cual el usuario formula preguntas a éste, el sistema experto solicita más información desde el usuario y éste le explica al usuario el proceso de razonamiento empleado para llegar a una respuesta.

2) La base de datos, llamada la base de conocimiento que consiste de axiomas (hechos) y reglas para hacer inferencias a partir de esos hechos acerca del dominio del sistema.

En el transcurso de las tres décadas pasadas, la tecnología para soportar el desarrollo de aplicaciones intensivas de datos tuvo una evolución de cuatro generaciones, sistemas de archivos, sistemas de bases de datos jerárquicos, sistemas de bases de datos en red y sistemas de bases de datos relacionales. En todos los casos, la transición de una generación a otra, ha sido motivada por la necesidad de minimizar los costos de desarrollo (que escalan rápidamente), así como los de mantenimiento y mejora de programas de aplicación.

Los sistemas convencionales (relacionales y prerrelacionales) han servido para satisfacer las necesidades de aplicaciones del ambiente para el cual fueron diseñadas, es decir, de procesamiento de datos en negocios, tales como control de inventario, nóminas, cuentas por cobrar, etc. Sin embargo, tan pronto como esta tecnología abandonó los laboratorios de investigación y registró su marca en el mercado, serias limitaciones comenzaron a ser expuestas.

Una variedad de aplicaciones comenzó a ser identificada como difícil para implantarse con el uso de sistemas de bases de datos relacionales. Estas nuevas aplicaciones incluyen diseño asistido por computador, ingeniería de software, gestión y administración de procesos (CAD, CAE, CASE y CAM), sistemas basados en conocimiento (sistemas expertos y "shell" para sistemas expertos), sistemas multimedia que manejan imágenes, gráficas, voz y documentos textuales; modelos estadísticos y científicos y análisis de programas, y sistemas de información geográfica, entre otras.

Con este nuevo esquema se presentan algunas dificultades atribuibles al modelo de datos que es una representación lógica de datos, relaciones e interacción entre los datos . Un lenguaje de base de datos es una sintaxis para representar un modelo y operaciones con una semántica definida sobre el modelo de datos.

Las aplicaciones requieren, muchas veces: a) facilidades para modelar y manejar entidades anidadas complejas (tales como diseño de objetos y documentos compuestos); b) un conjunto sofisticado de tipos de datos, por ejemplo, tipos de datos definidos por el usuario, y tipos grandes pero sin estructura (tales como imágenes, audio y documentos textuales); c) representación de conceptos semánticos (tales como relaciones de generalización y agregación); d) el concepto de evolución temporal de datos (por ejemplo, dimensión temporal de datos y mantener versiones de datos); etc.

Por otra parte, también se presentan importantes dificultades que no están relacionadas con el modelo de datos. Algunas de estas aplicaciones requieren de cómputo altamente intensivo, con un gran volumen de datos en memoria residente, e imponen demandas de ejecución que no pueden reunir los sistemas administradores de datos relacionales y de datos prerrelacionales. El ambiente de algunas de las aplicaciones también requiere de transacciones de larga duración (por ejemplo, el objeto es tan grande que su actualización toma mucho tiempo), transacciones interactivas y cooperativas.

Existen dos razones principales por las que la metodología orientada a objetos es un sólido fundamento para la nueva generación de tecnología de base de datos.

Primero, un modelo de datos orientado a objetos puede representar no solamente los datos, las relaciones y la interacción de datos de modelos de datos convencionales, sino también permite encapsular los datos y programas que operan datos con un protocolo definido y proporcionan una estructura uniforme para el trato de tipos de datos arbitrarios definidos por el usuario. Algunas relaciones en el modelo de datos, que son difíciles en sistemas de bases de datos convencionales, son inherentes a un modelo de datos basados en objetos.

Una segunda razón, es que a través de la noción de encapsulamiento y herencia, esta metodología está fundamentalmente diseñada para reducir la dificultad de desarrollo y evolución de sistemas complejos de "software". Esto fue, precisamente, la meta que motivó a la tecnología de administración de datos, a transformar sistemas de archivos hacia sistemas de bases de datos relacionales.

Un modelo de datos orientado a objetos satisface el objetivo de facilitar el diseño y desarrollo de bases de datos complejas, sofisticadas y muy grandes.

Pero, muchos de los productos comerciales comunes poseen distintos grados de calidad en cuanto a desempeño y funcionalidad. Con frecuencia, los proveedores ofrecen solamente motores (máquinas) de Bases de Datos con interfaces propietarias para desarrollo de aplicaciones por los programadores; la inclusión de herramientas de desarrollo está comenzando a surgir.

Segundo, la fuerza de un modelo de datos orientado a objetos es también su debilidad. La riqueza de este modelo hace posible la generación de unos más complejos y sus relaciones con las aplicaciones de procesamiento de datos, introducen aspectos complejos que el usuario debe manejar.

Tercero, no obstante el alto grado de desarrollo y experimentación en lenguajes de programación orientados a objetos y aplicaciones, todavía no hay un consenso en la industria sobre la semántica de su paradigma que vaya más allá de un conjunto de conceptos de alto nivel sobre la programación orientada a objetos, por lo que aún no existen estándares en esta tecnología.

3) El programa computacional, llamado el motor de inferencia, ejecuta el proceso de hacer inferencias, interpreta y evalúa los hechos en la base de conocimiento para proveer una respuesta.

La base de conocimiento es una estructura de reglas conectadas que aplica experiencias humanas, con frecuencia intuitivas, en la solución de problemas.

El proceso de adquisición de tal conocimiento típicamente tiene tres fases:

·         Un análisis funcional del ambiente, usuarios, y las tareas desarrolladas por el experto.

·         Identificación de los conceptos del dominio de experiencias y su clasificación de acuerdo a varias relaciones.

·         Una entrevista, por técnicas humanas o automatizadas del o los expertos en el tema.

Los resultados de estos pasos son traducidos en una llamada producción de reglas (de la forma "si la condición x existe, entonces la acción y sigue) y es guardado en la base de conocimiento.

Cadenas de producción de reglas forman las bases para las capacidades deductivas automatizadas del sistema experto y para su capacidad para explicar sus acciones a los usuarios.

Los sistemas expertos son una variedad comercial de una clase de programas computacionales llamados sistemas basados en conocimiento. El conocimiento en sistemas expertos es altamente in estructurado, esto es, el proceso de solucionar problemas de un dominio no es manifiesto. Y es establecido explícitamente en relaciones o deductivamente inferidos desde la cadena de proposiciones.

Dado que cada condición que puede ser encontrada puede ser descrita por una regla, los sistemas expertos basados en reglas no pueden manejar eventos no anticipados, pero pueden evolucionar con el uso, y permanece limitado a un estrecho dominio de problemas.

Otra variante de sistemas expertos, uno que no posee esta limitación, emplea una base de conocimiento que consiste de descripciones estructuradas de situaciones, de problemas del mundo real y de decisiones actualmente hechas por expertos humanos.

En medicina, por ejemplo, el registro de un paciente contiene descripciones de datos personales, exámenes físicos y de laboratorio, diagnóstico clínico, tratamiento propuesto, y los resultados de tales tratamientos.

Dada una gran base de datos con tales registros en una especialidad médica, el médico puede indagar acerca de eventos análogos a los relacionados con el paciente. Esto en contraste con el sistema que idealmente intenta reemplazar al ser humano, ya que en casos como estos sólo podría usarse este tipo de conocimiento como una herramienta que ayuda en la toma de decisiones.

El software requerido para este tipo de sistemas se ha ido complicando con el tiempo ya que su desarrollo demanda tiempo, un buen equipo de programadores y un buen producto final.

Redes Neuronales

Las Redes Neuronales surgieron del movimiento conexionista, que nació junto con la Inteligencia Artificial simbólica o tradicional. Esto fue hacia los años 50, con algunos de los primeros ordenadores de la época y las posibilidades que ofrecían.

La Inteligencia Artificial simbólica se basa en que todo conocimiento se puede representar mediante combinaciones de símbolos, derivadas de otras combinaciones que representan verdades incuestionables o axiomas.

Así pues, la Inteligencia Artificial tradicional asume que el conocimiento es independiente de la estructura que maneje los símbolos, siempre y cuando la 'máquina' realice algunas operaciones básicas entre ellos. En contraposición, los 'conexionistas' intentan representar el conocimiento desde el estrato más básico de la inteligencia: el estrato físico. Creen que el secreto para el aprendizaje y el conocimiento se halla directamente relacionado con la estructura del cerebro: concretamente con las neuronas y la interconexión entre ellas. Trabajan con grupos de neuronas artificiales, llamadas Redes Neuronales.

La estructura básica de una neurona natural es:

éstas funcionan como sigue:

Cada neurona puede tener infinitas entradas llamadas Dendritas que condicionan el estado de su única salida, el Axón. Este Axón puede ir conectado a una Dendrita de otra neurona mediante la Sinapsis correspondiente, de la siguiente manera:

El Axón da un nivel eléctrico correspondiente a sus entradas y a la importancia que les da a cada una de ellas. De esta forma, una neurona puede no reaccionar ante un nivel muy alto de una de sus entradas, o dar una salida muy favorable cuando otra de ellas está mínimamente activa.

En las primeras etapas de nuestra vida, cuando realizamos el aprendizaje de nuestros cerebros, entrenamos nuestras neuronas mediante el éxito o fracaso de una acción a unos estímulos sensoriales.

Cuando cierta acción realizada en respuesta a alguna entrada sensorial es exitosa (por ejemplo, al beber agua calmamos la sed), las conexiones sinápticas entre un grupo de neuronas se fortalecen, de manera que cuando tengamos una sensación sensorial parecida, la salida será la correcta. De esta forma se forman fuertes conexiones entre grupos de neuronas, que pueden servir para realizar otras acciones complejas.

El Perceptrón unicapa.

Un Perceptrón unicapa no es más que un conjunto de neuronas no unidas entre sí, de manera que cada una de las entradas del sistema se conectan a cada neurona, produciendo cada una de ellas su salida individual:

Como se ha dicho, un conjunto de neuronas no sirve para nada si previamente no se le enseña qué debe hacer.

Existen tres métodos de aprendizaje para un Perceptrón: Supervisado, Por Refuerzo y No Supervisado.

En el Aprendizaje Supervisado se presentan al Perceptrón unas entradas con las correspondientes salidas que se quiere éste aprenda. De esta manera la red primero, calcula la salida que da ella para esas entradas y luego, conociendo el error que está cometiendo, ajusta sus pesos proporcionalmente al error que ha cometido (si la diferencia entre salida calculada y salida deseada es nula, no se varían los pesos).

En el Aprendizaje No Supervisado, solo se presentan al Perceptrón las entradas y, para esas entradas, la red debe dar una salida parecida.

En el Aprendizaje Por Refuerzo se combinan los dos anteriores, y de cuando en cuando se presenta a la red una valoración global de como lo está haciendo.

El Perceptrón multicapa.

Esta estructura nació con la intención de dar solución a las limitaciones del Perceptrón clásico o unicapa, y supuso el resurgimiento del movimiento conexionista. Como su nombre indica, se trata de unos cuantos (dos o tres) perceptrones unicapa conectados en cascada, como en la siguiente figura:

El problema de este tipo de Perceptrón está en su entrenamiento, ya que es difícil modificar correctamente los pesos de la capa oculta (la capa 1 en el ejemplo anterior). Para poder hacer aprender cosas a un Perceptrón de este tipo, se implementó el algoritmo de BackPropagation, que tal como su nombre indica tiene la función de ir propagando los errores producidos en la capa de salida hacia atrás.

El proceso de aprendizaje tiene un gran coste de tiempo. Debido a eso, todavía no se ha estudiado a fondo. Las redes neuronales todavía se han de desarrollar mucho. Aún se debe estudiar para qué sirven realmente, conocer en qué tareas pueden resultar realmente útiles, ya que por ejemplo, es difícil saber cuánto tiempo necesita una red para aprender cierta tarea, cuántas neuronas se necesitan como mínimo para realizar cierta tarea, etc.

Las redes neuronales pueden llegar a ser algo realmente importante, pero todavía hace falta tiempo para estudiar cómo almacenan el conocimiento para desarrollar el hardware paralelo específico que requieren.

En la robótica, las redes neuronales también parecen prometer mucho, sobre todo en su sensorización, para que el robot sea capaz de generalizar lo que siente como estímulos individuales a considerar.

Conclusión

Por medio del trabajo que acabamos de presentar, puedo concluir que la robótica y la inteligencia artificial van tomadas de la mano ya que la una se encarga de la parte mecánica, y la otra de la parte analítica.

La robótica es el diseño, fabricación y utilización de máquinas automáticas programables con el fin de  realizar tareas repetitivas como el ensamble de automóviles, aparatos, etc. y otras actividades, por ello pienso que la robótica es la parte mecánica de una tecnología, en cambio creo que la inteligencia artificial es la parte analítica o la parte que determina la acción de los robots, ya que los robots no podrían realizar ninguna tarea sin que se les indicara u ordenara la tarea, por ello, aquí es donde entra la inteligencia artificial.

Gracias a la inteligencia artificial se ha logrado que una máquina sea capaz de desarrollar áreas de conocimiento muy específicas y complicadas, haciendo que la máquina pueda simular procesos que el hombre realiza. Pero cabe destacar que aún no se ha logrado que una máquina piense como un humano, pienso que una limitación es el hecho de que el hombre es irremplazable ya que el ser humano cuenta con una característica propia el cual es el sentido común.

Pero no podemos olvidar que el desarrollo de estas tecnologías no pretenden reemplazar al ser humano sino que tratan de mejorar el estilo de vida del ser humano, ya que recordemos que, por lo menos los robots hacen que el trabajo pesado sea mas facil de realizar, y que una máquina no se enferma, ni protestas, ni se cansa y esto puede elevar su utilidad. En fin esperemos que estas tecnologías no se nos vaya de las manos, y que no nos perjudique, sino que nos ayude.

Bibliografía

Buscadores web:

·         www.altavista.com

·         www.google.com

·         www.copernic.com

Sitios de Internet:

·         www.aiinsti.com.es/int_art/044s.htlm

·         robotica.pagina.nl

·         robotica.uv.es (Instituto de Robotica)

·         http://www.monografias.com/trabajos13/intar/intar.shtml?monosearch#co

·         http://www.monografias.com/trabajos6/larobo/larobo.shtml

·         /trabajos12/inteartf/inteartf2.shtml

·         /trabajos16/la-inteligencia-artificial/la-inteligencia-artificial.shtml.

 

 

 

 

 

Autor:

Ariel Paz e Silva

La Chorrera, 4 de Diciembre del 2007

República de Panamá

Ministerio de Educación

Dirección Nacional de Jóvenes y Adultos

Escuela Secundaria Nocturna Oficial de la Chorrera

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente