Descargar

Estudio de las Técnicas de Inteligencia Artificial mediante el apoyo de un Software Educativo (página 2)


Partes: 1, 2, 3, 4

Existen varias aplicaciones en nuestra vida cotidiana  en donde podemos utilizar las técnicas de IA, para con ello lograr mejorar nuestro trabajo ya sea en control, automatización, juegos, etc.

Empresas como Ecuatoriana de Cerámica ubicada en la ciudad de Riobamba, para la fabricación de los distintos modelos de baldosas que produce, utiliza la técnica de Reconocimiento de Patrones, es decir mediante un software se evalúa si determinado producto cumple con el tamaño, relieve y la superficie de las normas establecidas, con lo que se logra un mejor control de calidad de sus productos lo cual aumenta el rendimiento y productividad.

En la Empresa Parmalat del Ecuador ubicado en Lasso, Latacunga; para el control de temperatura de pasteurización de leche de larga duración se utiliza un sistema informático, el mismo que mediante técnicas de lógica difusa abre y cierra válvulas neumáticas para controlar el ingreso de vapor de un caldero y así mantener la temperatura de trabajo adecuada.

Lo que esperamos del presente trabajo es a través de un software tener conocimiento claro de los temas de Inteligencia Artificial pues la idea que hoy tenemos de esta materia es demasiado compleja, se pretende cambiar esa visión y darnos cuenta que podemos aplicarlo a nuestro beneficio. Así vamos a utilizar la tecnología para nuestro desarrollo y adelanto tecnológico y contribuir con el progreso del país.

Problemática

El avance en que se encuentra la Universidad Pinar del Río para fortalecer el estudio independiente nos obliga a trabajar en la búsqueda de alternativas de auto aprendizaje en la asignatura de Inteligencia Artificial. El Plan D de la Facultad de Informática y Telecomunicaciones así lo señala.

Actualmente en la Facultad de Informática y Telecomunicaciones de la Universidad Pinar del Río no se cuenta con una aplicación educativa dirigida al estudio de la Inteligencia Artificial; debido principalmente a la falta de información y complejidad de este tema. El estudio de la Inteligencia Artificial es teórico y complejo por lo que se podría aprovechar de mejor manera las herramientas tecnológicas existentes actualmente.

Este trabajo está centrado en estudiar más a fondo la inteligencia artificial mediante el apoyo de un software educativo que se aplicará para la enseñanza en la Universidad de Pinar del Río, y a la vez ilustra sobre sus aplicaciones en la vida real mediante la utilización de técnicas de Inteligencia Artificial y ejemplos de aplicación, debido a que el estudiante debe aprender a trabajar y aprovechar el tiempo disponible y desarrollar habilidades básicas en el aprendizaje individual y contribuir a que transiten de forma exitosa por su formación como ingenieros.

El objeto de la investigación es la aplicación educativa sobre las técnicas de inteligencia artificial y el campo de acción es el perfeccionamiento de la enseñanza de las técnicas de Inteligencia Artificial en la carrera de Informática en la Universidad de Pinar del Río.

Justificación del proyecto de tesis de grado

La Universidad Pinar del Río, de forma general, transita por un proceso de cambio y desarrollo, lo que hace necesario la construcción de un software educativo y la aplicación de tecnología educativa en forma general para el perfeccionamiento de los planes de estudio en caso particular la Inteligencia Artificial y así, aprender más a fondo esta materia con sus diferentes paradigmas, entre los más relevantes las redes neuronales, algoritmos genéticos, sistemas de lógica difusa, con sus diferentes aplicaciones en la vida cotidiana.

Demostrar que mediante el apoyo de un software se puede aprender las Técnicas de Inteligencia Artificial conocer su funcionamiento, aplicaciones y realizar un estudio comparativo entre la utilización de reglas de producción, redes semánticas y lógica difusa.

Actualmente no existe un Sistema de aprendizaje en esta materia, por lo que el uso de un tutorial de Inteligencia Artificial supone varias ventajas. Los alumnos pueden acceder libremente a los equipos en su laboratorio, pudiendo estudiar en un horario flexible, y sin requerir la presencia continua de un profesor. Cada estudiante podrá dedicar el tiempo que estime oportuno para estudiar e incluso podrá realizarla las veces que quiera, posibilitando una mejor asimilación de los conceptos, por otro lado, permite que el alumno pueda conocer en qué medida los conceptos que ha ido adquiriendo se han afianzado.

OBJETIVOS

OBJETIVO GENERAL.

Potenciar el estudio de las técnicas, funcionamiento y aplicaciones de la Inteligencia Artificial mediante el apoyo de una aplicación educativa.

OBJETIVOS ESPECÍFICOS:

  • Implementar un tutorial de aprendizaje de Inteligencia Artificial que permita apoyar la solución de la problemática existente.

  • Establecer parámetros de comparación para evaluar las diferentes técnicas de Inteligencia Artificial y seleccionar la mejor alternativa para determinada aplicación.

  • Implementar el tutorial en la Red de la Facultad para su explotación por parte de profesores y estudiantes.

PLAN GENERAL DETRABAJO

Para el desarrollo del proyecto de tesis se ha determinado el siguiente plan de trabajo, el cual se ha dividido en las siguientes fases:

En el Capítulo 1 se tratará el estado del arte del tema, aquí se estudia la problemática a resolver, los materiales y herramientas (hardware y software) que utilizamos en este proyecto, se analizará la Inteligencia Artificial empezando con una breve introducción donde se hará un poco de historia y estudio de los conceptos básicos.

En el Capítulo 2 debido a que el desarrollo de sistemas inteligentes requieren una adecuada representación del conocimiento, en este capítulo vamos analizar el conocimiento, sus formas de representación, características, ejemplos y clasificación: Redes Semánticas, Lógica de Predicados, Marcos, etc.

En el Capítulo 3 después de una breve introducción se explica las diversas técnicas de Inteligencia Artificial, los métodos de búsqueda utilizados para la resolución de problemas, las áreas de aplicación y se terminará con las conclusiones de lo que se aprendió después de una profunda investigación en estos temas.

El Capítulo 4 contiene, las fases de desarrollo de software y se escribirá sobre el funcionamiento del Sistema mediante Casos de Uso, Interfaz de Usuario, Diagrama de diseño de la Base de Datos y se cerrará el Capítulo con las conclusiones acerca de la aplicación que se diseñó.

MATERIALES Y MÉTODOS.

Para la realización del presente trabajo se tomó en cuenta la opinión de personal que trabaja dentro de la automatización mediante conversaciones, en foros y seminarios, así como el Análisis Documental de la literatura científica, artículos y sitios Web dedicados al tema de Inteligencia Artificial. Las fuentes de información a consultar que se utilizaron fueron: libros, monografías, sitios especializados y oficiales en la temática, principalmente en Internet.

La implementación de este Sistema, se realizó a través del entorno de programación PHP, APACHE, MySQL. También utilizamos herramientas como DREAMWEAVER, PHOTOSHOP, PROJECT, OFFICE, RATIONAL ROSE.

Los métodos utilizados para cumplir con los objetivos fueron: el inductivo y deductivo, entre las técnicas: la observación y entrevistas.

CAPÍTULO I.

Estado del arte

1.1 Introducción.

El estudio de la asignatura de Inteligencia Artificial dentro de la carrera de Ingeniería en Informática es muy importante debido a las aplicaciones que existen para este campo. Actualmente, en varias áreas como la medicina, ingeniería, producción, educación, está presente la utilización de la Inteligencia Artificial a través de sus Técnicas como son: Lógica Difusa, Sistemas Expertos, Redes Neuronales, etc. Así para el estudio de esta materia y otras, la Universidad de Pinar del Río Hermanos Saíz Montes de Oca ha implementado modelos de enseñanza que permitan cumplir los objetivos propuestos y se adapten a nuestra realidad, teniendo siempre como objetivo mejorar el sistema de aprendizaje de los estudiantes.

En la investigación realizada, tanto en esta Universidad como en otras, así como en la red de redes, hemos encontrado múltiples bibliografías, algunos trabajos en páginas Web así como textos en copia dura que abordan de una forma u otra el tema a tratar. En ningún caso hemos encontrado una aplicación que contribuya, en la forma que nos planteamos, a la solución de la problemática en cuestión.

Todo ello ratifica la necesidad y utilidad de la creación de nuestra aplicación.

El inicio de este capítulo trata sobre la problemática a resolver con este trabajo, vamos a investigar la Misión y Visión de la Facultad de Informática y Telecomunicaciones, pues esta tesis está dedicada a contribuir con mejorar el aprendizaje de los estudiantes de la materia de Inteligencia Artificial mediante un Tutorial. Luego vamos a analizar el funcionamiento de este software como herramientas de programación, entorno de desarrollo y la introducción a los conceptos básicos de la Inteligencia Artificial.

1.2 Universidad de Pinar del Río Hermanos Saíz Montes de Oca.

La Universidad de Pinar del Río Hermanos Saíz Montes de Oca ha seguido los perfeccionamientos de los planes y programas de estudio dentro de la Educación Superior, para formar profesionales con una sólida preparación y con conocimientos esenciales de su profesión y habilidades profesionales de mayor generalidad que los dotasen con la capacidad necesaria para responder al gran reto que el país tenía por delante, en el curso 1990-1991 se hace vigente la aplicación de los Planes de Estudio "C".

Estos programas concibieron lograr una formación de perfil amplio en el pregrado, mediante una mayor integración de los componentes académico, investigativo y laboral, egresando en mejores condiciones para adquirir y actualizar conocimientos en el postgrado y para desarrollar las nuevas habilidades que requieren las diversas y crecientes demandas de la dinámica del mundo del trabajo y el avance de la sociedad.

El actual Departamento de Informática, anteriormente de Computación, surgió en el año 1987, asociado al Departamento de Matemática de la entonces Facultad de Economía, no es hasta el 1990 que se independiza como departamento básico pasando a la Vicerrectoría de Investigaciones y Postgrado hasta el año 1998, pasando de nuevo a la Facultad de Economía y, en el 2000, pasa a la Facultad de Ciencias Técnicas donde se comienza a preparar el expediente para solicitar al Ministerio de Educación Superior la apertura de la Carrera de Informática, aprobándose la misma para su inicio en el curso 2001-2002 y por tal motivo se crea en este curso la Facultad de Informática y Telecomunicaciones, cambiándose el nombre al Departamento por Departamento de Informática.

Desde su creación, en 1987 ha impartido todas las asignaturas de Computación de las Carreras de la Universidad Pinar del Río (UPR), la responsabilidad de la superación de postgrado de la propia Universidad y del territorio, las asignaturas de Informática al crearse la Universalización y la Informatización de la propia Universidad y de la Sociedad Pinareña.

Actualmente el reto es el PLAN DE ESTUDIOS "D", y dentro de sus principales objetivos están:

  • Desarrollar las capacidades para el aprendizaje autónomo y colaborativo a través del modo de asimilación de los contenidos, donde predomine un enfoque sistémico con tendencia hacia niveles de asimilación productivos.

  • Desarrollar y consolidar a través de estrategias de estudio independiente y de trabajo grupal valores éticos y morales.

Este trabajo pretende contribuir con la Misión y Visión de la Facultad de Informática y Telecomunicaciones de la Universidad de Pinar del Río [Fitweb, 2008].

Misión

Contribuir al desarrollo y aplicación de las tecnologías de la información y las comunicaciones en el territorio mediante la formación integral de profesionales de la Informática, las Telecomunicaciones y la Electrónica, así como su superación posgraduada y al avance de la ciencia y la técnica en correspondencia con las necesidades y expectativas de la Sociedad Pinareña y nuestro Estado Revolucionario.

Visión

Se consolida el trabajo por lograr altos niveles en formación integral de los estudiantes de los diferentes tipos de cursos evidenciados a través de la existencia de cultura universitaria en ambas carreras en lo referente al movimiento político por elevar la calidad del profesional revolucionario.

La Facultad contribuye con protagonismo a la gestión en la Universidad Pinar del Río (UPR) de la informatización, además se cuenta con el equipamiento indispensable para la formación de un profesional competitivo, se dispone de una importante fuente de información en una Intranet fiable, con las informaciones más necesarias y actualizadas en sitios FTP y servidores.

1.3 Sistema de Estudio Plan D

El Plan de Estudios de la carrera de Ingeniería Informática desde su último diseño en la variante de Planes C, se ha caracterizado por un conjunto apreciable de modificaciones causadas en primera instancia por el enriquecimiento y la variación del objeto de estudio en sí, que ha motivado ajustes relacionados con el entorno universitario local y las relaciones con las entidades productivas y de servicio. Así, el diseño del Plan de Estudios D se fundamenta en las transformaciones que han acontecido en el país y que impusieron el perfeccionamiento de los planes de estudio, con un énfasis marcado en los siguientes aspectos:

La universalización de la educación superior y los Programas de la Revolución, relacionado con la creación del Programa de formación emergente de maestros primarios.

  • Fortalecimiento de los Institutos Politécnicos de Informática.

  • Las tendencias internacionales en el desarrollo informático y su relación con otras tecnologías emergentes y en la enseñanza universitaria cubana [plan D, 2008].

1.3.1 Asignatura de Inteligencia Artificial.

Objetivos Educativos

  • Ampliar la capacidad de razonamiento, el pensamiento lógico y el nivel de abstracción necesarios en la asignatura.

  • Aplicar capacidades cognoscitivas, de razonamiento y de las formas del pensamiento lógico, hábitos de lectura y trabajo independiente.

  • Desarrollar el espíritu de auto superación que permita mantenerse actualizado en los avances de los temas de la asignatura.

Objetivos Instructivos

  • Determinar la información y el conocimiento a procesar en organizaciones de base productivas y de servicio considerando los formalismos de representación de conocimientos y las técnicas para su adquisición o generación.

  • Diseñar e implementar sistemas que utilicen técnicas de IA para el control del funcionamiento y la toma de decisiones en organizaciones de base.

  • Ejercer un liderazgo eficaz frente a diferentes grupos durante el desarrollo y utilización de sistemas informáticos inteligentes.

  • Manejar eficazmente diferentes estrategias de comunicación que viabilicen el trabajo en grupos diferentes y con personas y profesionales de diferentes carreras al desarrollar y aplicar sistemas inteligentes.

Conocimientos básicos a adquirir.

Conceptos básicos sobre utilización de árboles para la representación de estados en el proceso de búsqueda. Búsqueda a ciegas y heurísticas. Búsquedas con adversarios. Conceptos básicos sobre reglas de producción. Sistemas Expertos y Sistemas de Reglas de Producción. Tratamiento de la incertidumbre. Sistemas difusos. Redes Semánticas, Marcos ("Frames") y Ontologías para la representación del conocimiento. Introducción a la Minería de Datos, Metodologías. Redes Neuronales. Razonamiento Basado en Casos.

En el presente plan D se determinan los conocimientos esenciales de la disciplina que todo egresado de esta especialidad debe conocer y las habilidades asociadas que son requeridas, creándose a partir de ello las asignaturas obligatorias que se integran en el currículo base de la carrera.

Aquellos conocimientos que hasta cierto punto constituyen especializaciones en el área de la Inteligencia Artificial, se consideraron apropiados para ser desarrollados en temas optativos y se proponen algunos de ellos, aunque no se agotan todas las posibilidades que podrían ser consideradas.

Trabajo independiente del estudiante

Las habilidades para el trabajo independiente deberán comenzar a desarrollarse en los estudiantes desde su ingreso a la Educación Superior, por lo que el curso introductorio para los estudios de Ingeniería, de al menos seis semanas de duración, que se llevará a cabo al inicio de la carrera tiene entre sus contenidos esenciales la asignatura Aprender a Aprender. Esta tiene el propósito de desarrollar habilidades básicas en el aprendizaje individual y contribuir a que transiten de forma exitosa por su formación como ingenieros.

El sistema de enseñanza se concibe para que el estudiante pueda apropiarse de los conocimientos incluidos en el programa de cada asignatura mediante el análisis y estudio de casos prácticos, seminarios, laboratorios y auto aprendizaje y con la realización de proyectos de curso y trabajos en las Prácticas Profesionales. Se utiliza como principio de formación el aprender haciendo, aplicando las mejores prácticas para desarrollar y gestionar software.

Ambas disciplinas integradoras, coordinan su labor en las dimensiones curricular y profesional-investigativa, para que de su sinergia lograr la integración y fortalecimiento de las principales habilidades, conocimientos y valores a formar en el estudiante.

1.4 Fundamentos de Inteligencia Artificial

La I.A. (Inteligencia Artificial) es una de las disciplinas más nuevas. Formalmente se inicia en 1956 cuando se acuñó este término, sin embargo el estudio de la inteligencia contemplada como el razonamiento humano viene siendo estudiado por los filósofos hace más de 2 milenios.

Consideraciones Generales:

En primer lugar, revisemos algunas definiciones generales de inteligencia, antes de intentar definir inteligencia artificial.

Inteligencia es la aptitud de crear relaciones. Esta creación puede darse de manera puramente sensorial, como en la inteligencia animal; también puede darse de manera intelectual, como en el ser humano, que pone en juego el lenguaje y los conceptos. También se la puede conceptuar como la habilidad para adquirir, comprender y aplicar conocimiento; o la aptitud para recordar, pensar y razonar [Choque, 2002].

1.5 Concepto de Inteligencia Artificial

El concepto de Inteligencia Artificial (I.A.) puede tener diferentes connotaciones, dependiendo de la fuente que se tome como referencia y del punto de vista de esta. Lo que sí es claro es que la I.A. tiene como uno de sus objetivos el estudio del comportamiento inteligente de las máquinas [Acedo, 2005].

La Inteligencia Artificial es el estudio de cómo hacer que los ordenadores hagan cosas que por el momento son realizadas mejor por los seres humanos [Choque, 2002].

Presenta notables diferencias con la Informática Clásica.

edu.red

Tabla I.1 Informática clásica vs Inteligencia Artificial

1.6 Evolución Histórica.

La Inteligencia Artificial "nació" en 1943 cuando Warren McCulloch y Walter Pitts propusieron un modelo de neurona del cerebro humano y animal. Estas neuronas nerviosas abstractas proporcionaron una representación simbólica de la actividad cerebral [Wikimedia, 2007].

En 1950, Turing publicó en la revista Mind el artículo Computing Machinery and Intelligence en el que introducía el concepto de Test de Turing. Este artículo puede considerarse el precursor de muchos de los desarrollos actuales en el campo de la Inteligencia Artificial. El test consistía en juzgar el nivel de inteligencia de una máquina. Se supone un juez situado en una habitación, y una máquina y un ser humano en otras. El juez debe descubrir cuál es el ser humano y cuál es la máquina, estándoles a los dos permitidos mentir al contestar por escrito las preguntas que el juez les hiciera. La tesis de Turing es que si ambos jugadores eran suficientemente hábiles, el juez no podría distinguir quién era el ser humano y quién la máquina [ABCdatos, 2008].

En el año 1955 Herbert Simón, el físico Allen Newell y J.C. Shaw, programador de la RAND Corp. y compañero de Newell, desarrolla el primer lenguaje de programación orientado a la resolución de problemas de la Inteligencia Artificial, el IPL-11. Un año más tarde estos tres científicos desarrollan el primer programa de Inteligencia Artificial al que llamaron Logic Theorist, el cual era capaz de demostrar teoremas matemáticos, representando cada problema como un modelo de árbol, en el que se seguían ramas en busca de la solución correcta, que resultó crucial. Este programa demostró 38 de los 52 teoremas del segundo capítulo de Principia Mathematica de Russel y Whitehead.

En 1956, con la ahora famosa conferencia de Dartmouth, organizada por John McCarthy y en la cual se utilizó el nombre de inteligencia artificial para este nuevo campo, se separó la Inteligencia Artificial de la ciencia del computador, como tal. Se estableció como conclusión fundamental la posibilidad de simular inteligencia humana en una máquina.

En 1957 Newell y Simon continúan su trabajo con el desarrollo del General Problems Solver (GPS). GPS era un sistema orientado a la resolución de problemas; a diferencia del Logic Theorist, el cual se orientó a la demostración de teoremas matemáticos, GPS no estaba programado para resolver problemas de un determinado tipo, razón a la cual debe su nombre. Este sistema a pesar de que pudo resolver determinados problemas no tuvo el éxito esperado.

En 1957 McCarthy desarrolló el lenguaje LISP. La IBM contrató un equipo para la investigación en esa área y el gobierno de USA aportó dinero al MIT también para investigación en 1963.

Entre los últimos años de la década del 50 y principios de los años 60 Robert K. Lindsay, desarrolla un programa orientado a la lectura de oraciones en ingles y la obtención de conclusiones a partir de su interpretación, este programa que se denomino Sad Sam, marco un hito en una de las ramas de la Inteligencia Artificial, el Procesamiento del Lenguaje Natural. Este sistema podía leer oraciones del tipo "Jim es hermano de John" y "La madre de Jim es Mary", a partir de ella el sistema concluía que Mary debía ser también la madre de John.

En el mismo período de tiempo hay trabajos importantes de Herbert Gelernter, de IBM, quien desarrolla un "Demostrador Automático de Teoremas de la Geometría", Alex Bernstein desarrolla un programa para el juego de ajedrez que se considera el antecedente para "Deep Blue".

En 1961 se desarrolla SAINT (Simbolic Automatic Integrator) por James Slagle el cual se orienta a la demostración simbólica en el área del álgebra. En 1964 Bertrand Raphael construye el sistema SIR (Semantic Information Retrieval) el cual era capaz de comprender oraciones en inglés.

En los primeros años de la década del 60 Frank Rosemblatt desarrolla, en la Universidad de Cornell, un modelo de la mente humana a través de una red neuronal y produce un primer resultado al cual llama perceptrón. Este sistema era una extensión del modelo matemático concebido por McCullock y Pitts para las neuronas, y funcionaba basándose en el principio de "disparar" o activar neuronas a partir de un valor de entrada el cual modifica un peso asociado a la neurona, si el peso resultante sobrepasa un cierto umbral la neurona se dispara y pasa la señal a aquellas con las que está conectada. Al final, en la última capa de neuronas, aquellas que se activen definirán un patrón el cual sirve para clasificar la entrada inicial.

Este trabajo constituye la base de las redes neuronales de hoy en día, sin embargo a raíz de su desarrollo sufrió fuertes críticas por parte de Marvin Minsky y Seymour Papert lo cual provocó que la mayoría de los investigadores interesados en el tema lo abandonaran, y este no se retomara hasta los años 80.

En 1965-70, comenzaron a aparecer los programas expertos, que predicen la probabilidad de una solución bajo un set de condiciones, entre esos proyectos estuvo: DENDRAL, que asistía a químicos en estructuras químicas complejas euclidianas; MACSYMA, producto que asistía a ingenieros y científicos en la solución de ecuaciones matemáticas complejas, etc.

En la década 1970-80, creció el uso de sistemas expertos, muchas veces diseñados para aplicaciones médicas y para problemas realmente muy complejos como MYCIN, que asistió a médicos en el diagnóstico y tratamiento de infecciones en la sangre. Otros son: R1/XCON, PIP, ABEL, CASNET, PUFF, INTERNIST/CADUCEUS, etc. Algunos permanecen hasta hoy.

De 1975 en adelante, comienza la era de los lenguajes expertos (shells) como EMYCIN, EXPERT, OPSS, etc. para luego tratar de que éstos sean más amigables y funcionales.

En 1980 la historia se repitió con el desafío japonés de la quinta generación de computadoras, que dio lugar al auge de los sistemas expertos pero que no alcanzó muchos de sus objetivos, por lo que este campo sufrió una nueva interrupción en los años noventa.

En la actualidad se está tan lejos de cumplir la prueba de Turing como cuando se formuló: Existirá Inteligencia Artificial cuando no seamos capaces de distinguir entre un ser humano y un programa de computadora en una conversación a ciegas.

1.7 Aplicaciones de la IA.

  • Tratamiento de Lenguajes Naturales: Capacidad de Traducción, Órdenes a un Sistema Operativo, Conversación Hombre-Máquina, etc.

  • Sistemas Expertos: Sistemas que se les implementa experiencia para conseguir deducciones cercanas a la realidad.

  • Problemas de Percepción: Visión y Habla, reconocimiento de voz, obtención de fallos por medio de la visión, diagnósticos médicos, etc.

  • Aprendizaje: Modelización de conductas para su implante en computadoras.

  • Juegos: ajedrez, damas, del tipo estratégicos.

  • Matemáticas: calculo simbólico, demostración.

  • Ingeniería: diseño, detección de fallos, planificación.

1.8 Áreas de la Inteligencia Artificial (I.A.)

Estas áreas o campos hacen referencia a las subtareas que se engloban dentro de la I.A. y dependiendo del paradigma utilizado para el desarrollo del modelo se clasifican de diferente manera:

En el Paradigma Conexionista o Subsimbólico los más reconocidos son las Redes Neuronales Artificiales y los Algoritmos Genéticos.

Por otro lado, en el Paradigma Simbólico se encuentran los Sistemas Expertos, los programas de resolución de problemas matemáticos o los programas de juegos. Sin embargo existen muchas otras técnicas utilizadas en la I.A. pudiendo caer en discusión su clasificación. A continuación se describen brevemente las técnicas más significativas y de mayor aplicación en la actualidad.

1.8.1 Redes Neuronales Artificiales (RNA).

Al inicio de la IA, el conocimiento se representaba usando reglas, redes semánticas, modelos probabilísticos, etc. La metodología para la resolución de problemas era el uso del proceso humano de razonamiento lógico relacionando las causas del problema con los conocimientos que se poseían y luego se procesaba la información secuencialmente.

Al avanzar la IA, aparecieron problemas complejos en los que no era posible representar el conocimiento de manera explícita ni procesarlo utilizando el razonamiento lógico. La posible solución a este inconveniente era utilizar estructuras computacionales paralelas basadas en redes neuronales biológicas; así surgen las redes neuronales artificiales.

Las RNA se estructuran como un grupo numeroso de procesadores conectados, entre sí y trabajando en paralelo [TREC, 2001].

1.8.2 Algoritmos Genéticos (AG).

Los AG se han desarrollado con la intención de optimizar poblaciones o conjuntos de soluciones posibles de un determinado problema mediante la utilización de la genética biológica. La genética es la ciencia biológica que estudia la variabilidad y la herencia de los seres vivos analizando el material genético a partir del cual nace todo ser vivo; este material genético se compone del ADN (ácido desoxirribonucleico) que se auto duplica en cada división celular. Esta ciencia es la base para los AG ya que estos intentan, de alguna manera, representar un dato (que puede ser una posible solución) mediante una cadena de bits la cual, en analogía con la genética, sería un cromosoma.

Una vez representados todos los datos (posibles soluciones) se cruzan, mutan o recombinan entre sí, con lo cual se obtienen nuevos datos o cromosomas que pueden o no ser mejores que los anteriores. De ser mejores, este paso se repite hasta la obtención de nuevos cromosomas cuya mejora con respecto a los anteriores sea insignificante por lo que el proceso de evolución concluye con un nuevo grupo o población de datos (en la mayoría de los casos se intenta llegar a una sola solución, dato o cromosoma) que son interpretados como las mejores soluciones posibles del problema que se ha intentado solucionar. [Galeón, 1994].

1.8.3 Sistemas Expertos (SS.EE.).

Se puede decir que los SS.EE. son sistemas compuestos por dos partes componentes, principalmente; una llamado Motor de Inferencias y la otra Base de Conocimientos. En la primera se representa el procedimiento lógico que sigue un experto en determinada área del conocimiento y en la segunda se representa el propio conocimiento del experto, pudiendo ser uno sólo o un grupo de expertos dentro de la misma área, inclusive pueden ser libros especializados en el tema de interés [Warianos, 2008].

Este tipo de sistemas se desarrolla con los objetivos de imitar la inteligencia humana, en este caso de un experto, y de tener asistencia de un experto en cualquier lugar en poco tiempo con respecto al tiempo que tarda en formarse un profesional humano incluyendo el tiempo de experiencia.

Uno de los requisitos para realizar un SS.EE. es poseer el conocimiento de uno o varios expertos con amplia experiencia en el campo del conocimiento que les compete, ya que es la experiencia quien agrega valor al conocimiento. Un SS.EE. que se basa en los conocimientos de un novato poco puede aportar a un profesional que, si bien, no es un experimentado tampoco es un novato, pero que necesita la asistencia o los conocimientos de un experto que lo guíe en su búsqueda de una solución a un problema complejo o nuevo para el profesional. Existen diferentes tipos de SS.EE. clasificados según el modelo que utilizan, siendo algunos de éstos los siguientes:

  • SS.EE. basados en Reglas.

  • SS.EE. basados en Probabilidad.

  • SS.EE. basados en Redes Neuronales Artificiales.

  • SS.EE. basados en Lógica Difusa.

1.9 Herramientas de desarrollo del software Tutorial I.A.

En este punto se presentan las características del software a utilizar para el desarrollo del sistema, que por su facilidad, flexibilidad y mejor manejo se ha elegido:

  • Como servidor Web: Apache 2.2.4

  • Lenguaje para servidor Web: PHP versión 5.2.3

  • Manejador de base de datos: MySQL 5.0.45

Se instalará Apache como servidor Web, lo cual resulta favorable con el uso del lenguaje PHP, pues está principalmente diseñado para correr en este servidor. A su vez, PHP ofrece interfaces para el acceso a la mayoría de las bases de datos comerciales y por ODBC a todas las bases de datos posibles en sistemas Microsoft, a partir de las cuales se podrá editar el contenido de la bases de datos del sistema con relativa sencillez.

Esta interacción se realiza, por un lado, a partir de las funciones que PHP propone para cada tipo de base de datos y, por otro, estableciendo un diálogo a partir de un idioma universal: SQL (Structured Query Language), el cual es común a todas las bases de datos, razón por lo cual se utilizará MySQL para dicha interacción.

1.9.1 PHP.

Es un acrónimo recursivo que significa "PHP Hypertext Pre-processor". Publicado bajo la PHP License, está considerado como un software libre. PHP es un lenguaje interpretado de propósito general ampliamente usado y que está diseñado especialmente para desarrollo Web y puede ser embebido dentro de código HTML. Generalmente se ejecuta en un servidor Web, tomando el código en PHP como su entrada y creando páginas Web como salida. Puede ser desplegado en la mayoría de los servidores Web y en casi todos los sistemas operativos y plataformas sin costo alguno.

Ventajas.

  • Es un lenguaje multiplataforma.

  • Capacidad de conexión con la mayoría de los manejadores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL.

  • Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.

  • Permite las técnicas de Programación Orientada a Objetos. También PHP permite la conexión a diferentes tipos de servidores de bases de datos tales como MySQL, Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite.

Los principales usos del PHP son los siguientes: Programación de páginas Web dinámicas, habitualmente en combinación con el motor de base de datos MySQL, aunque cuenta con soporte nativo para otros motores, incluyendo el estándar ODBC, lo que amplía en gran medida sus posibilidades de conexión [García J,2004].

1.9.2 APACHE.

Como servidor Web utilizaremos el modulo Apache, el cual es el más popular y es un servidor de red para el protocolo HTTP (Hyper Text Tranfer Protocol), elegido para poder funcionar como un proceso independiente, sin que solicite el apoyo de otras aplicaciones. [Apache, 2008].

Las Principales razones que justifican la gran aceptación de Apache son:

Multiplataforma: Corre en una multitud de sistemas Operativos, lo que lo hace prácticamente universal.

Libre: Apache es una tecnología gratuita de código fuente abierto. El hecho de ser gratuita es importante pero no tanto como se trate de código fuente abierto. Esto le da una transparencia a este software de manera que si queremos ver que es lo que estamos instalando como servidor lo podemos saber, sin ningún secreto sin ninguna puerta trasera.

Configurable: Apache es un servidor altamente configurable de diseño modular. Es muy sencillo ampliar las capacidades del servidor Web Apache.

Multilenguaje: Apache soporta gran cantidad de lenguajes PERL, PHP, Java. Teniendo todo el soporte que se necesita para tener páginas dinámicas.

Estas y otras características han convertido al servidor Web Apache en el más utilizado actualmente, avalado por compañías élite como Google y superando ampliamente a sus similares en lo que a seguridad y agilidad se refiere.

1.9.3 MySQL.

Es un sistema de gestión (o manejador) de bases de datos. Una Base de Datos es una colección estructurada de datos. Puede ser, desde una simple lista de artículos a las inmensas cantidades de información en una red corporativa.

MySQL es un software de código abierto. Esto quiere decir  que es accesible para cualquiera, para usarlo o modificarlo. Se puede descargar MySQL desde Internet y usarlo sin pagar nada, de esta manera cualquiera puede inclinarse a estudiar el código fuente y cambiarlo para adecuarlo a sus necesidades.

MySQL usa el GPL (GNU General Public License) para definir que se puede o no hacer con el software en diferentes situaciones.

MySQL es muy rápido, confiable, robusto y fácil de usar tanto para volúmenes de datos grandes como pequeños, aunque esta rapidez es a costa de no implementar ciertos aspectos del SQL.

Principales características:

  • El principal objetivo de MySQL es velocidad y robustez.

  • Multiproceso, es decir puede usar varias CPU si éstas están disponibles.

  • Puede trabajar en distintas plataformas y sistemas operativos distintos.

  • Sistema de contraseñas y privilegios muy flexible y seguro.

  • Todas las palabras viajan encriptadas en la red.

  • Los clientes usan TCP o UNIX Socket para conectarse al servidor.

  • El servidor soporta mensajes de error en distintos idiomas.

  • Todos los comandos tienen -help o -? para las ayudas.

1.10 Conclusiones.

  • Como conclusiones de este capítulo aprendimos la importancia que tiene el desarrollo de este trabajo para la enseñanza de la materia de Inteligencia Artificial en la Universidad de Pinar del Río, así como todos los detalles para el desarrollo del software que se utilizará para construir esta aplicación.

  • En este capítulo se profundizó en el conocimiento de enseñanza del plan D de la Universidad de Pinar del Río. Se abordaron las propuestas de desarrollo de estos temas. Se dedico a estudiar los conceptos básicos de Inteligencia Artificial, su evolución histórica desde sus inicios hasta nuestros días y sus principales aplicaciones.

  • Se analizaron los conceptos básicos de los paradigmas I.A. como redes neuronales, algoritmos genéticos y sistemas expertos, además se muestra la necesidad y las posibilidades para desarrollar un software de enseñanza que permita la difusión de esta materia.

CAPÍTULO II.

Representación del Conocimiento

2.1 Introducción.

La Representación del Conocimiento constituye el núcleo de la ciencia de las computadoras. Cada pieza de código escrita es significativa para la representación de algún objeto. En la actualidad la representación del conocimiento es investigada de tal forma que cualquier libro que trate sobre Inteligencia Artificial la considerará un resultado central.

En general una representación debe tener dos capacidades: por un lado una expresividad adecuada y por otro una eficiencia de razonamiento. La expresividad y el razonamiento le confieren al formalismo la capacidad adecuada para ser considerado como una alternativa útil para la representación [Morales, 1999].

El objetivo de este capítulo, es brindar los conceptos básicos de la forma de representación del conocimiento, su clasificación, utilización y distintas características para aprender a utilizarlo en alguna aplicación práctica en donde utilicemos las Técnicas de Inteligencia Artificial.

2.2 Conocimiento.

Puede ser definido como el conjunto de hechos y principios acumulados por la humanidad, o el acto, hecho o estado de conocer. Es la familiaridad con el lenguaje, conceptos, procedimientos, reglas, ideas, abstracciones, lugares, costumbres y asociaciones.

Los conceptos de conocimiento e inteligencia están íntimamente ligados. La inteligencia requiere de la posesión y acceso al conocimiento. Conocimiento no debe ser confundido con datos o información. El conocimiento incluye y requiere del uso de datos e información. Además, combina relaciones, dependencias, y la noción del saber con datos e información.

El conocimiento puede ser de tipo procedimental, declarativo o heurístico.

Conocimiento procedimental es aquel conocimiento compilado que se refiere a la forma de realizar una cierta tarea (el saber cómo hacerlo). Por ejemplo, los pasos necesarios para resolver una ecuación algebraica son expresados como conocimiento procedimental [Choque, 2002].

Los modelos procedimentales y sus esquemas de representación almacenan conocimiento en la forma de cómo hacer las cosas. Pueden estar caracterizados por gramáticas formales, usualmente implantadas por sistemas o lenguajes procedimentales y sistemas basados en reglas (sistemas de producción).

Por otro lado, el conocimiento declarativo es conocimiento pasivo, expresado como sentencias acerca de los hechos del mundo que nos rodea (el saber que hacer). La información personal en una base de datos es un típico ejemplo de conocimiento declarativo. Tales tipos de datos son piezas explícitas de conocimiento independiente.

El conocimiento declarativo puede ser representado con modelos relacionales y esquemas basados en lógica. Los modelos relacionales pueden representar el conocimiento en forma de árboles, grafos o redes semánticas. Los esquemas de representación lógica incluyen el uso de lógica proposicional y lógica de predicados.

El conocimiento heurístico es un tipo especial de conocimiento usado por los humanos para resolver problemas complejos. El adjetivo heurístico significa medio para descubrir. Está relacionado con la palabra griega heuriskein que significa descubrir, encontrar. Se entiende por heurístico a un criterio, estrategia, método o truco utilizado para simplificar la solución de problemas. El conocimiento heurístico usualmente se lo adquiere a través de mucha experiencia.

2.3 Representación del Conocimiento.

Dado que el conocimiento es importante y primordial para el comportamiento inteligente, su representación constituye una de las máximas prioridades de la investigación en IA [FortuneCity, 2008].

El conocimiento puede ser representado como imágenes mentales en nuestros pensamientos, como palabras habladas o escritas en algún lenguaje, en forma gráfica o en imágenes, como cadenas de caracteres o colecciones de señales eléctricas o magnéticas dentro de un computador.

La forma de representación que se escoja dependerá del tipo de problema a ser resuelto y de los métodos de inferencia disponibles.

Una representación del conocimiento puede ser un esquema o dispositivo utilizado para capturar los elementos esenciales del dominio de un problema. Una representación manipulable es aquella que facilita la computación. En representaciones manipulables, la información es accesible a otras entidades que usan la representación como parte de una computación.

Debido a la variedad de formas que el conocimiento puede asumir, los problemas involucrados en el desarrollo de una representación del conocimiento son complejos, interrelacionados y dependientes del objetivo. En términos generales, se debe tratar que el conocimiento esté representado de tal forma que:

  • Capture generalizaciones.

  • Pueda ser comprendido por todas las personas que vayan a proporcionarlo y procesarlo.

  • Pueda ser fácilmente modificado.

  • Pueda ser utilizado en diversas situaciones aún cuando no sea totalmente exacto o completo.

  • Pueda ser utilizado para reducir el rango de posibilidades que usualmente debería considerarse para buscar soluciones.

Las representaciones declarativas son usualmente más expansivas y costosas, en el sentido que la enumeración puede ser redundante e ineficiente. Sin embargo, la modificación de las representaciones declarativas es usualmente muy fácil; simplemente se agrega o se elimina conocimiento. Las representaciones procedimentales, en cambio, pueden ser más compactas, sacrificando flexibilidad. Representaciones prácticas pueden incluir elementos tanto declarativos (listado de hechos conocidos), como procedimentales (un conjunto de reglas para manipular los hechos).

La ingeniería cognoscitiva ha adaptado diversos sistemas de representación del conocimiento que, implantados en un computador, se aproximan mucho a los modelos elaborados por la psicología cognoscitiva para el cerebro humano. Entre los principales se tienen:

2.3.1 Lógica Simbólica Formal:

  • Lógica proposicional

  • Lógica de predicados.

  • Reglas de producción.

2.3.2 Formas Estructuradas:

  • Redes Semánticas.

  • Estructuras marco.

  • Representación orientada a objetos.

2.3.1.1 Lógica Proposicional.

La lógica proposicional es la más antigua y simple de las formas de lógica. Utilizando una representación primitiva del lenguaje, permite representar y manipular aserciones sobre el mundo que nos rodea. La lógica proposicional permite el razonamiento, a través de un mecanismo que primero evalúa sentencias simples y luego sentencias complejas, formadas mediante el uso de conectivos proposicionales, por ejemplo Y (AND), O (OR). Este mecanismo determina la veracidad de una sentencia compleja, analizando los valores de veracidad asignados a las sentencias simples que la conforman [Borrego, 2002].

Una proposición es una sentencia simple que tiene un valor asociado ya sea de verdadero (V), o falso (F). Por ejemplo:

Hoy es Viernes

Ayer llovió

Hace frío

La lógica proposicional, permite la asignación de un valor verdadero o falso para la sentencia completa, no tiene facilidad para analizar las palabras individuales que componen la sentencia. Por este motivo, la representación de las sentencias del ejemplo, como proposiciones, sería:

hoy_es_Viernes

ayer_llovió

hace_frío

Las proposiciones pueden combinarse para expresar conceptos más complejos. Por ejemplo:

hoy_es_Viernes y hace_frío.

A la proposición anterior dada como ejemplo, se la denomina fórmula bien formada (well-formed formula, wff). Una fórmula bien formada puede ser una proposición simple o compuesta que tiene sentido completo y cuyo valor de veracidad, puede ser determinado. La lógica proposicional proporciona un mecanismo para asignar valores de veracidad a la proposición compuesta, basado en los valores de veracidad de las proposiciones simples y en la naturaleza de los conectores lógicos involucrados.

 2.3.1.2 Representación mediante Lógica de Predicados.

La principal debilidad de la lógica proposicional es su limitada habilidad para expresar conocimiento. Existen varias sentencias complejas que pierden mucho de su significado cuando se las representa en lógica proposicional. Por esto se desarrolló una forma lógica más general, capaz de representar todos los detalles expresados en las sentencias, esta es la lógica de predicados.

La lógica de predicados está basada en la idea que las sentencias realmente expresan relaciones entre objetos, así como también cualidades y atributos de tales objetos. Los objetos pueden ser personas, objetos físicos, o conceptos. Tales cualidades, relaciones o atributos, se denominan predicados. Los objetos se conocen como argumentos o términos del predicado.

Al igual que las proposiciones, los predicados tienen un valor de veracidad, pero a diferencia de las preposiciones, su valor de veracidad, depende de sus términos. Es decir, un predicado puede ser verdadero para un conjunto de términos, pero falso para otro [Torres, 2001].

Por ejemplo, el siguiente predicado es verdadero:

color (yerba, verde)

El mismo predicado, pero con diferentes argumentos, puede no ser verdadero:

color (yerba, azul) o color (cielo, verde)

 Los predicados también pueden ser utilizados para asignar una cualidad abstracta a sus términos, o para representar acciones o relaciones de acción entre dos objetos.

Por ejemplo:

mortal(juan_carlos)

clima(martes, lluvioso)

ave(gaviota)

ama(roberto, vanessa)

lee(alex, novela)

Al construir los predicados se asume que su veracidad está basada en su relación con el mundo real. Naturalmente, siendo prácticos, trataremos que los predicados que definimos estén de acuerdo con el mundo que conocemos, pero no es absolutamente necesario que así lo hagamos. En lógica de predicados el establecer como verdadero un predicado es suficiente para que así sea considerado [Cañas, 2005].

Demos el siguiente ejemplo, que indica que Ecuador está en Europa:

parte_de(ecuador, europa)

Obviamente, esto no es verdadero en el mundo real, pero la lógica de predicados no tiene razón de saber geografía y si el predicado es dado como verdadero, entonces es considerado como lógicamente verdadero. Tales predicados, establecidos y asumidos como lógicamente verdaderos se denominan axiomas, y no requieren de justificación para establecer su verdad.

La lógica de predicados, se ocupa únicamente de métodos de argumentación sólidos. Tales argumentaciones se denominan Reglas de Inferencia. Si se da un conjunto de axiomas que son aceptados como verdaderos, las reglas de inferencia garantizan que sólo serán derivadas consecuencias verdaderas.

Tanto los conectivos lógicos, como los operadores dados anteriormente para la lógica proposicional, son igualmente válidos en lógica de predicados. De hecho, la lógica proposicional es un subconjunto de la lógica de predicados.

Cada uno de los argumentos en los ejemplos de predicados dados anteriormente, representan a un objeto específico. Tales argumentos se denominan constantes. Sin embargo, en la lógica de predicados se pueden tener argumentos que en determinado momento pueden ser desconocidos. Estos son los argumentos tipo variable.

En el ejemplo: color (yerba, X), la variable X, puede tomar el valor de verde, haciendo que el predicado sea verdadero; o puede tomar el valor de azul, dando lugar a que el predicado sea falso.

Las variables, también pueden ser cuantificadas. Los cuantificadores que típicamente se utilizan en lógica de predicados son:

  • El cuantificador universal; ( indica que la fórmula bien formada, dentro de su alcance, es verdadera para todos los valores posibles de la variable que es cuantificada. Por ejemplo:

X . . . .(

Establece que "para todo X, es verdad que . . . "

  • El cuantificador existencial; (, indica que la fórmula bien formada, dentro de su alcance, es verdadera para algún valor o valores dentro del dominio. Por ejemplo:

X . . . .(

Establece que "existe un X, tal que . . . "

A continuación se dan algunos ejemplos de predicados cuantificados:

X, [niño (X) =(> le_gusta (X, helados)].

Y, [mamífero (Y) =(> nace (Y, vivo)].

Z, [cartero(Z) ^ mordió (boby, Z)].(

Desde el punto vista de representación, los cuantificadores son difíciles de usar. Por lo que es deseable reemplazarlos con alguna representación equivalente, más fácil de manipular.

El cuantificador existencial es más difícil de reemplazar. El cuantificador existencial garantiza la existencia de uno o más valores particulares (instancias) de la variable cuantificada, que hace a la cláusula verdadera.

2.3.1.3 Reglas de Producción.

Los sistemas basados en reglas son los más comúnmente utilizados. Su simplicidad y similitud con el razonamiento humano, han contribuido para su popularidad en diferentes dominios. Las reglas son un importante paradigma de representación del conocimiento.

Las reglas representan el conocimiento utilizando un formato SI-ENTONCES (IF-THEN), es decir tienen 2 partes:

  • La parte SI (IF), es el antecedente, premisa, condición o situación; y

  • La parte ENTONCES (THEN), es el consecuente, conclusión, acción o respuesta.

Las reglas pueden ser utilizadas para expresar un amplio rango de asociaciones, por ejemplo:

SI está manejando un vehículo Y se aproxima una ambulancia, ENTONCES baje la velocidad Y hágase a un lado para permitir el paso de la ambulancia.

SI su temperatura corporal es de 39 ºC, ENTONCES tiene fiebre.

SI el drenaje del lavabo está tapado Y la llave de agua está abierta, ENTONCES se puede inundar el piso.

Inferencia Basada en Reglas: Una declaración de que algo es verdadero o es un hecho conocido, es una afirmación.

El conjunto de afirmaciones se conoce a menudo con el nombre de memoria de trabajo o base de afirmaciones. De igual forma, al conjunto de reglas se lo denomina base de reglas.

Un sistema basado en reglas utiliza el modus ponens para manipular las afirmaciones y las reglas durante el proceso de inferencia. Mediante técnicas de búsqueda y procesos de unificación, los sistemas basados en reglas automatizan sus métodos de razonamiento y proporcionan una progresión lógica desde los datos iniciales, hasta las conclusiones deseadas. Esta progresión hace que se vayan conociendo nuevos hechos o descubriendo nuevas afirmaciones, a medida que va guiando hacia la solución del problema.

En consecuencia, el proceso de solución de un problema en los sistemas basados en reglas va realizando una serie de inferencias que crean un sendero entre la definición del problema y su solución. Las inferencias están concatenadas y se las realiza en forma progresiva, por lo que, se dice que el proceso de solución origina una cadena de inferencias.

Los sistemas basados en reglas difieren de la representación basada en lógica en las siguientes características principales:

  • Son en general no-monotónicos, es decir hechos o afirmaciones derivadas, pueden ser retractados, en el momento en que dejen de ser verdaderos.

  • Pueden aceptar incertidumbre en el proceso de razonamiento.

2.3.2.1 Redes Semánticas

Las redes semánticas fueron desarrolladas por quienes trabajan en el área de la inteligencia artificial. Las estructuras básicas de este modelo consisten en nodos y arcos formando una red (un grafo). El objetivo de estas redes es la organización y representación del conocimiento general acerca del mundo.

El objetivo inicial para el desarrollo de las redes semánticas fue el entender el lenguaje natural, más que la clasificación de datos. Otra característica de las redes semánticas es que existen tantas como las necesidades que han tenido diferentes investigadores en diferentes proyectos.

Así, resulta difícil decidir a qué se le llama modelo de datos Red Semántica. Esto se debe a que se han tenido diferentes modelos de datos red semántica que son buenos al representar una realidad específica. Se puede decir entonces que cualquier grafo en el cual los nodos se conecten por medio de arcos se le puede llamar red semántica, siempre que nodos y arcos estén etiquetados.

Para tener semántica en un grafo, se necesita definir cuidadosamente el significado de nodos y arcos, y cómo son usados [Moreno, 2000].

Las primeras redes semánticas usaban diferentes nodos y arcos para representar las asociaciones presentes en la memoria humana. Estas primeras redes fueron poco uniformadas en su estructura, no distinguiendo adecuadamente entre diferentes tipos de nodos y arcos. Por ejemplo, objetos individuales (instancias) y clases de objetos (entidades) coexistían en la misma red semántica. No se tenía una clara diferencia entre los nodos que denotaban instancias y los que denotaban clases, por ejemplo, las siguientes redes semánticas.

edu.red    

Figura II.1 Redes Semánticas Básicas

Características.

a. Diferencian entre tipos de objetos de las instancias. Así, se llama clasificación al proceso de ir de instancias de objetos a tipos de objetos.

b. Se introduce el concepto de distancia semántica, cantidad de arcos que separan un nodo de otro. En otros modelos de datos esta distancia sólo tiene implicancias en la performance, y generalmente no se considera ni tiene ninguna connotación semántica [Jiménez, 2002].  

En las redes semánticas la distancia puede ser importante, y es usada para localizar objetos poco o muy relacionados, dependiendo de la distancia. En algunos casos se puede disminuir la distancia agregando arcos con ese propósito.  

edu.red

Figura II.2 Distancia Semántica

c. En las redes semánticas también se tiene la idea de partición: es el contexto de una red, en el sentido de tener una subred, así para una tarea o trabajo específico sólo una parte de la red está disponible. Esta facilidad resulta útil en el momento de realizar búsquedas, ya que se limita el espacio de búsqueda.  

d. También se tiene la jerarquía de tipo (u objeto). Los tipos de jerarquías que se tienen en una red semántica son PARTE-DE y ES-UN. La existencia de una jerarquía implica que se permite la herencia donde un objeto que pertenece a una clase hereda todas las propiedades de la clase.

La herencia no se refiere a la herencia de atributos y sus valores, sino que también se heredan los tipos de relaciones permitidas para esa clase. Ejemplo: Si un empleado es una persona, y la relación "casado con" es válida para persona, entonces también es válida para Ingeniero, Abogado y Secretaria.

2.3.2.2 Estructuras Frames (Marcos).

Es una forma de organizar la información referente a un objeto, donde se describen las propiedades del objeto en forma similar a un registro de una base de datos, donde se reservan los campos, para cada propiedad [Pacheco, 2007].

Un marco es una estructura de datos compleja que contiene información acerca de un objeto. La información almacenada en el marco se distribuye en diferentes campos llamados ranuras o aspectos y cada una de ellas contiene la información sobre un atributo del objeto o un apuntador a otro marco.

Ejemplos:

1- Marco: Empleado

Nombre

Edad (entre 16 y 65)

Piernas (2 por defecto)

Ocupación

2- Marco: Hombre de familia

Nombre

Edad (entre 16 y 120)

Estado civil (genérico: casado)

Cónyuge (Apuntador al marco Mujer de familia)

Se denomina ejemplificación de un marco a uno con sus ranuras llenas. Podemos ver entonces al marco como una clase de entidades y a una ejemplificación de él como una entidad particular.

Ejemplos de ejemplificaciones de los marcos anteriores son:

1- Marco: Empleado

Nombre: Jesús López

Edad: 32

Piernas: 2

Ocupación: Programador

2- Marco: Hombre de familia

Nombre: Jesús López

Edad: 32

Estado civil: casado

Cónyuge: (Apuntador a la ejemplificación para Mujer de familia de Mariela Pérez)

A cada ranura se le puede asociar varios tipos de información, llamados facetas de la ranura, entre las cuales están:

Valor: almacena el valor para la ranura. Ejemplo: la ranura Nombre de los marcos Empleado y Hombre de familia.

Valor por defecto: contiene un valor inicial o valores usados comúnmente para la faceta Valor. Ejemplo: la mayoría de las personas empleadas poseen dos piernas y salvo se conozca otra cosa, se puede pensar como normal tal afirmación. Usualmente se utilizan valores por defecto cuando no se dispone de conocimiento de lo contrario. En ocasiones el valor por defecto se puede usar como el valor inicial de la faceta Valor.

Genérico: Es una propiedad asociada a una clase de entidades, de tal forma que cada entidad de la clase posee esa propiedad. Ejemplo: Casado en el marco Hombre de familia.

Restricciones: contiene un conjunto de expresiones lógicas que tienen que ser verdaderas para el valor almacenado en la faceta Valor. Ejemplo: la ranura Edad en el marco Empleado. Las restricciones a analizar pueden ser más complejas y pueden referirse a valores de otras ranuras del marco actual o incluso de otro marco. Ejemplo: supongamos que al marco Empleado le agregamos una ranura Sexo y que hacemos las consideraciones laborales en nuestro país. La condición de la edad va a depender, entonces, de si es hombre o mujer el empleado.

Procedimiento: contiene un procedimiento para calcular el valor que debe ser almacenado en la faceta Valor.

Demon: contiene un procedimiento que se ejecuta automáticamente cuando se cambia el valor almacenado en la faceta Valor. Es importante pues permite mantener la consistencia interna de la información. Ejemplos:

– Un demon asociado a la ranura Edad del marco Empleado que se activará si se trata de rellenar con un valor fuera del rango de 16 a 65. El demon puede pedir explicación al usuario de la causa de la violación y actuar según la explicación dada.

– Al rellenarse la ranura de Estado civil en Hombre de familia con el valor casado, se puede activar un demon que ejemplifique otro marco de Mujer de familia para el cónyuge.

Tanto los procedimientos como los demons son escritos, normalmente, como programas en lenguajes procedurales de alto nivel.

Explicación: almacena documentación sobre la ranura.

Hemos mencionado 7 facetas de una ranura. No necesariamente, cada ranura debe tenerlas todas. Eso depende de cada problema en particular.

En general, se puede plantear que la información almacenada usando como F.R.C. a los marcos tiene cuatro niveles de detalle: el marco, las ranuras del marco, las facetas de cada ranura y el valor almacenado en cada faceta.

2.3.2.3 Representación orientada a objetos.

La representación de conocimiento orientada a objetos suministra una alternativa, pero cierra relativamente la metodología para representar conocimiento que comparten un conjunto de estructuras como las redes semánticas y los marcos. Esta representación es vista en términos de un conjunto de objetos, los cuales son capaces de seguir ciertos tipos de conductas. Cada objeto se sitúa jerárquicamente en una red y puede acceder a propiedades e información de los objetos de un nivel superior.

Los argumentos hechos para los objetos como estructuras de conocimiento se relacionan con el estilo de descripción inicialmente usado, más que las propiedades fundamentales de objetos. El estilo de descripción de objetos es un proceso de comparación, así que un nuevo objeto se describe para determinar la forma en que sea similar o diferente a los objetos ya conocidos.

En el paradigma orientado a objetos, estos se comunican unos con otros por envío y recibo de mensajes.

  • Un objeto, muy similar a los marcos recibe mensajes de verificación de conocimiento y decide que acción tomar.

  • La descripción para comparar muchas de las similitudes es mostrar una especialización en casos usando los marcos.

  • Los objetos usan atributos que están especificados en ranuras; se organizan jerárquicamente de manera que los de menor nivel comparten propiedades con los de mayor nivel (herencia).

  • Los objetos contienen métodos, mientras los marcos tienen procedimientos asociados.

2.4 Conclusiones.

  • Estudiamos los detalles, clasificación y tipos de representación de conocimiento, aprendimos que es necesario realizar la selección del tipo más adecuado de representación para cada necesidad dependiendo de los formalismos y el lenguaje utilizado para su implementación.

  • En el Capítulo analizamos las formas de representar el conocimiento mediante lógica proposicional, lógica de predicados, redes semánticas, marcos y orientado a objetos. Además la importancia que tiene la representación del conocimiento para las aplicaciones de inteligencia artificial y los tipos procedimental, declarativo y heurístico.

CAPÍTULO III.

Técnicas de Inteligencia Artificial

3.1. Introducción

En este Capítulo se pretende comprender el funcionamiento básico, características y ventajas de las técnicas de Inteligencia Artificial. Estudiar sus principales técnicas como son: redes neuronales, lógica difusa, algoritmos genéticos, los cuales mediante su utilización han ayudado enormemente a la mejora de procesos, la calidad, control y la producción en serie, también se han utilizado para la toma de decisiones más eficaz o en la ayuda de labores o tareas que exijan gran demanda de tiempo o representen un alto grado de peligrosidad para el ser humano.

Al final de este Capítulo se realiza también un resumen de las formas de solución de problemas mediante los distintos tipos y clasificación de búsquedas en Inteligencia Artificial, como búsqueda Ciega, Búsqueda en Profundidad, Búsqueda Heurística entre las principales pues es importante conocer la forma en que una determinada técnica llega a la solución de un problema.

3.2 Qué es una técnica de Inteligencia Artificial (IA)

La Inteligencia Artificial engloba un conjunto de técnicas que tienen en común la robustez en el manejo de la información imprecisa que existe en los problemas relacionados en el mundo real. Estas técnicas son:

  • Redes Neuronales.

  • Algoritmos Genéticos.

  • Sistemas de Lógica difusa.

Pero se han venido destacando otros paradigmas como son los agentes de decisión inteligente y autómatas programables, con respecto a estos últimos se suelen emplear en gran medida en procesos industriales de acuerdo a necesidades a satisfacer como, espacio reducido, procesos de producción periódicamente cambiantes, procesos secuenciales, maquinaria de procesos variables, etc. También estas técnicas pueden ser agrupadas para aprovechar sus ventajas individuales.

A continuación se explicaran brevemente las técnicas: lógica difusa, redes neuronales y algoritmos genéticos.

3.2.1 Lógica Difusa.

La lógica clásica, o lógica bivaluada, no resulta adecuada cuando de describir el razonamiento humano se trata, ya que solo "conoce" dos valores, verdad (1) y falsedad (0), mientras que en la vida real existen hechos que no se pueden definir como totalmente verdaderos o totalmente falsos sino que tienen un grado de verdad o falsedad, que puede variar de 0 a 1. Un ejemplo sencillo se puede apreciar cuando queremos saber si un vaso está lleno de agua, pero al observarlo notamos que éste no está totalmente lleno. Nuestro sentido común no asigna inmediatamente el valor de 0 (falsedad) a nuestra inquietud sino que razona aceptando que está "algo lleno", es decir tiene una alta posibilidad de ser catalogado como lleno, lo cual se puede representar con un valor más cercano a 1 que a 0.

La figura III.1a. Muestra una posible representación de la variable lingüística estatura mediante la lógica clásica bivaluada y la figura III.1b muestra una posible representación de esa misma variable lingüística mediante la lógica difusa. Por cada variable lingüística se han establecido tres valores lingüísticos, estatura baja, estatura media y estatura alta.

edu.red

Figura III.1. Variable lingüística estatura representada mediante:

(a) Lógica clásica y (b) lógica difusa.

Se puede apreciar que en la lógica clásica, una persona de 1.65 es considerada de estatura baja, mientras que otra con un (1) milímetro más de estatura, es decir, 1.651 es considerada de estatura media. En la lógica difusa, esa misma persona tiene una posibilidad de ser de estatura baja de 0.33 y de ser de estatura media de 0.66, aproximadamente, es decir tiene más posibilidad de ser de estatura media que de estatura baja, pero tiene pertenencia a dos conjuntos diferentes. De esta manera, la lógica difusa permite resolver problemas de la vida real con alto nivel de incertidumbre, que difícilmente pueden ser resueltos por la lógica clásica.

La lógica difusa se desarrolló a partir de 1965 con la aparición de un artículo sobre la teoría de los conjuntos difusos, establecida por el catedrático de la Universidad de Berkeley, California, Lofti A. Zadeh, quien hoy es considerado el padre de la lógica difusa [Carbonell,2002].

Tipos de Sistemas difusos: Existen dos principales: los controladores difusos de tipo Mamdani y Sugeno, los cuales han sido utilizados exitosamente en una gran variedad de aplicaciones en la comunidad del control difuso. Aunque, el objetivo del controlador difuso Mamdani es el de representar a un exitoso operador humano, el controlador difuso de tipo Sugeno sugiere ser más eficiente en cálculos y en métodos de adaptación [Gómez, 2005].

3.2.1.1 Características.

  • Se basa en palabras y no en números, las verdades de los valores son expresados lingüísticamente. Por ejemplo: caliente, muy frío, verdad, lejano, cercano, rápido, lento, medio, etc.

  • Ésta genera algunos modificadores del predicado como por ejemplo: mucho, más o menos, poco, suficientemente, medio, etc.

  • También procesa un sistema amplio de cuantificadores, como por ejemplo: pocos, varios, alrededor, generalmente.

  • Hace uso las probabilidades lingüísticas, como por ejemplo: probable, improbable, que se interpretan como números borrosos y son manipuladas por su aritmética.

  • Maneja todos los valores entre 0 y 1, tomando éstos como límite solamente.

  • Usa una representación de conocimiento explícito.

  • Realiza verificación y optimización de manera fácil y eficiente.

  • No se puede entrenar, esto es que sea capaz de obtener nuevos conocimiento.

3.2.1.2 Etapas de la Lógica Difusa.

1. Fusificación (Fuzzification). Las funciones de pertenencia definidas para las variables de entrada se aplican a sus valores actuales correspondientes, para poder determinar el grado de verdad para cada regla de la premisa.

2. Inferencia Lógica. El valor de verdad para la premisa de cada regla se calcula, y aplica a la parte de conclusiones de cada regla. Este resultado se asigna a un subconjunto difuso para ser asignado a cada variable de salida para cada regla.

3. Difusificación (Defuzzification). La cual es usada cuando se desea convertir la salida difusa en un valor puntual numérico. Existen muchos métodos de dedifusificación (al menos 30).

edu.red

Figura III.2.Esquema general del control difuso.

3.2.1.3 Aplicaciones.

Actualmente existen en nuestros países todo tipo de instrumentos, máquinas y procedimientos controlados borrosamente, adaptándose "inteligentemente" a cada situación particular: acondicionadores de aire, frigoríficos, lavadoras / secadoras, aspiradoras, hornos microondas, mantas eléctricas, ventiladores, autoenfoques fotográficos, estabilizadores de imágenes en grabadoras de vídeo, transmisiones de automóviles, suspensiones activas, controles de ascensores, procesadores de arroz, traductores dispensadores de anticongelantes para los aviones en los aeropuertos, sistemas de toma de decisiones industriales o económicas, algunos correctores de voz para sugerir una lista de probables palabras a reemplazar en una mal dicha, etcétera.

Un ejemplo, en las lavadoras "difusas" tiene más de 400 ciclos preprogramados; a pesar de su complejidad tecnológica resultan más fáciles de operar que las lavadoras tradicionales. El usuario solo pone en marcha la lavadora, el resto queda en manos del control difuso. El evalúa automáticamente el material, el volumen, la suciedad de la ropa, elige el ciclo óptimo de lavado, así como el caudal de agua que ha de emplear.

En las actividades domésticas cotidianas se inventó un sistema de ventilación que usa el control difuso para conmutar un ventilador según los conocimientos de cantidad de polvo, olores, temperatura y humedad ambiente [Universidad de las Américas, 1999].

El baño difuso, por ejemplo tiene un controlador que mantiene el agua a la temperatura ideal del usuario, ni muy fría ni muy caliente.

Una de las aplicaciones más importantes de la teoría difusa se aplicaron en Sendai (Japón) donde se puso en servicio un metro controlado mediante lógica difusa, este tenía la peculiaridad de poseer controladores que hacían las frenadas y la aceleraciones mucho más suaves facilitando así la conducción.

A partir de los 90 se incluyo también en los ascensores consiguiendo así reducir el tiempo de espera y la seguridad de los mismos. También se ha comenzado a implementar en los controles de inyección electrónica del carburante y en los sistemas de guiado automático de coches, haciendo los controles complejos más eficientes y fáciles de utilizar

3.2.2 Redes Neuronales.

Las Redes Neuronales Artificiales (RNA) tratan de modelar la estructura y la forma de trabajar de las células nerviosas o neuronas. Las neuronas artificiales son interconectadas unas a otras y son distribuidas en capas de tal forma que emulan en forma simple la estructura neuronal de un cerebro. Cada modelo de neurona es capaz de realizar algún tipo de procesamiento a partir de estímulos de entrada y ofrecer una respuesta, por lo que las RNA en conjunto funcionan como redes de computación paralelas y distribuidas similares a los sistemas cerebrales biológicos [Fuente, 2000].

Sin embargo, a diferencia de las computadoras convencionales, las cuales son programadas para realizar tareas específicas, las redes neuronales artificiales, tal como los sistemas cerebrales biológicos, deben ser entrenadas.

Diseño y Programación de una Red Neuronal Artificial: Con un paradigma convencional de programación informática, el objetivo del programador es modelar matemáticamente (con distintos grados de formalismo) el problema en cuestión y formular una solución (programa) mediante un algoritmo que tenga una serie de propiedades que permitan resolver dicho problema.

En contraposición, la aproximación basada en las RNA parte de un conjunto de datos de entrada suficientemente significativo y el objetivo es conseguir que la red aprenda automáticamente las propiedades deseadas. En este sentido, el diseño de la red tiene menos que ver con cuestiones como los flujos de datos y la detección de condiciones, y más que ver con cuestiones tales como la selección del modelo de red, la de las variables a incorporar y el reprocesamiento de la información que formará el conjunto de entrenamiento. Asimismo, el proceso por el que los parámetros de la red se adecuan a la resolución de cada problema no se denomina genéricamente programación sino que se suele denominar entrenamiento.

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