Estudio de las Técnicas de Inteligencia Artificial mediante el apoyo de un Software Educativo (página 2)
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.
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.3Manejador 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; yLa 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.
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.
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.
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).
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.
Página anterior | Volver al principio del trabajo | Página siguiente |