Anda di halaman 1dari 49

Uno de los elementos más importantes de nuestra vida moderna es sin duda la computadora.

Esta ha venido a simplificar nuestra existencia de muchas maneras. Las agencias


gubernamentales, la empresa privada, las instituciones educativas y otras entidades utilizan las
computadoras para llevar a cabo transacciones, automatizar procesos, enseñar o
sencillamente con fines de entretenimiento. Esta es también una herramienta que ha venido a
acortar distancias por medio de la comunicación. El uso de la computadora ha mejorado y
agilizado muchas de nuestras labores diarias que realizamos tanto en el hogar como en el
trabajo.

Este artefacto no es reciente, tiene una larga e interesante trayectoria. La história de la


evolución de las computadoras es una sorprendente y llena de controversias. Es increíble
como de un sencillo dispositivo mecánico para contabilizar haya surgido tan poderosa e
impresindible herramienta que ha llegado a obtener tan grande importancia a nivel mundial.

A través del tiempo los ordenadores han cambiado de forma, tamaño, capacidad,
composición y han adquirido nuevas funciones para resolver diferentes tipos de problemas o
facilitar tareas específicas.

A continuación un breve anñlisis de la historia de este sorprendente artefacto.

I. Dispositivos computadorizados utilizados a través del tiempo

Abaco (5,000 años atrás) - Surgió en Asia Menor y se utiliza actualmente. Se utilizó
originalmente por mercaderes para llevar a cabo transacciones y contar los días. Comenzó a
perder importancia cuando se inventó el lápiz y el papel.

Calculadora de Pascal (1642)- Blaise Pascal inventó una máquina de sumar mecánica para
ayudar a su padre a calcular impuestos.

Máquina de multiplicar de Leibniz (1694)- Artefacto con funciones aritméticas basada en el


módelo de Pascal.

“Arithnometer”(1820)- Charles Xavier Thomas de Colmar inventó una calculadora que podía
llevar a cabo las cuatro operaciones matemáticas básicas (sumar, restar, dividir y multiplicar).

Máquina de telar de Jacquard- Artefacto controlado por tarjeta en las cuales los huecos
estaban estratégicamente perforados.

Máquina diferencial de Babbage (1822)- Diseñada para trabajar con vapor, era una máquina
amplia del tamaño de una locomotora. Tenía como función resolver ecuaciones diferenciales.
Durante el transcurso del tiempo Babbage comenzó a trabajar en la primera computadora de
uso general o máquina analítica.

Primer uso de la programación (1832)-Lady Ada Lovelace creó instrucciones rutinarias para
controlar la computadora, sugirió que las tarjetas perforadas podían prepararse para repetir
ciertas instrucciones.

Máquina tabuladora de Hollerith (1889)- Le dio paso al procesamiento de datos automatizado.


Hollerith fundó una compañía de máquinas tabuladoras que posteriormente paso a ser
“International Business Machines” o IBM.

Máquina de resolver ecuaciones diferenciales de Vannevar Bush (1931).

Primera computadora eléctrica de Atanasoff y Berry (1940).

Invención del ratón (mouse) y la interface gráfica (1970)-Por la compañía Xerox PARC.

Apple (1976)- Crearon las computadoras Apple I y II y las máquinas Macintosh en 1984. Se
comenzó a utilizar las computadoras personales en las oficinas y hogares.

II. 4 Generaciones de la Computadora (Eventos más trascendentales)

Primera Generación (1945-1956)

La computadora fue utilizada para fines militares durante la Seguna Guerra Mundial.

IBM creó la primera calculadora electrónica en 1944.

Se desarrolló la computadora ENIAC (Electronic Numerical Integrator and Computer), EDVAC


(Electronic Discrete Variable Automatic Computer) en 1945 y la UNIVAC (Universal Automatic
Computer)en 1951.

Lo más significativo de esta generación fue el uso de los tubos al vacío.

Segunda Generación (1956-1963)


Se remplazaron los tubos al vacío por los transistores.

Se reemplazó el lenguaje de máquina por el lenguaje ensamblador.

Se crearon los lenguajes de alto nivel como COBOL (Common Business-Oriented Language) y
FORTRAN (Formula Translator).

Se diseñaron computadoras más pequeñas, rápidas y eficientes.

Tercera Generación (1964-1971)

Uso de chips de silicón.

Sistemas operativos.

Cuarta Generación (1971-presente)

Se desarrollaron nuevos chips con mayor capacidad de almacenamiento.

Se comenzaron a utilizar las computadoras personales y las Macintosh.

Se desarrolló el diseño de redes.

Internet

III. Clases y Categorías de Computadoras

A. Clases

Análoga-Son usadas mayormente para el control de procesos, trabajan con variables que son
medidas a lo largo de una escala continua con cierto grado de veracidad.
Digital-Opera directamente con cómputos de dígitos, que representan letras, números y
símbolos especiales.

Híbridas-Combinación de la computadora análoga y la digital.

De uso general-Pueden almacenar diferentes tipos de programas y puedes ser usadas en


diferentes aplicaciones.

De uso especial-Diseñada para trabajar con un problema específico.

B. Categorías

Supercomputadora - Diseñada para aplicaciones científicas y procesos complejos.

Mainframe- Mayor velocidad en el procesamiento y mayor capacidad de almacenaje.

Minicomputadoras- Son de propósitos generales, más poderosas y costosas que que las
microcomputadoras.

Servidor-Se diseñó para apoyar una red de computadoras permitiendo a los usuarios compartir
archivos, programas de aplicaciones y “hardware”, como por ejemplo las impresoras.

Microcomputadoras-Sistemas pequeños de propósitos generales. Pueden ejecutar las mismas


operaciones y usar las mismas instrucciones de muchas sistemas grandes.

¿Qué es la inteligencia artificial?


La inteligencia artificial es considerada una rama de la computación y
relaciona un fenómeno natural con una analogía artificial a través de
programas de computador. La inteligencia artificial puede ser tomada como
ciencia si se enfoca hacia la elaboración de programas basados en
comparaciones con la eficiencia del hombre, contribuyendo a un mayor
entendimiento del conocimiento humano.
Si por otro lado es tomada como ingeniería, basada en una relación deseable
de entrada-salida para sintetizar un programa de computador. "El resultado es
un programa de alta eficiencia que funciona como una poderosa herramienta
para quien la utiliza."
A través de la inteligencia artificial se han desarrollado los sistemas expertos
que pueden imitar la capacidad mental del hombre y relacionan reglas de
sintaxis del lenguaje hablado y escrito sobre la base de la experiencia, para
luego hacer juicios acerca de un problema, cuya solución se logra con mejores
juicios y más rápidamente que el ser humano. En la medicina tiene gran
utilidad al acertar el 85 % de los casos de diagnóstico.
( "De la información a la informática", de Roger Loaiza)

DISCIPLINAS QUE LA INTELIGENCIA


ARTIFICIAL HA CONTRIBUIDO
EN LA MEDICINA: Ha contribuido mediante la interpretación de imágenes médicas,
diagnóstico, sistemas expertos para ayudar a los médicos como por ejemplo sistemas de
asistencia para cirugías, la monitorización y control en las unidades de cuidados intensivos,
diseño de prótesis, diseño de fármacos, sistemas tutores inteligentes para diversos aspectos
de la medicina.
EN LA INGENIERÍA: La IA ha sido aplicada en muchos campos de la ingeniería como en el
diagnóstico de fallos, sistemas inteligentes de control, en los sistemas inteligentes de
fabricación, como ayuda inteligente al diseño, sistemas integrados de ventas, diseño,
producción, mantenimiento, herramientas de configuración expertas (por ejemplo, garantizando
que el personal de ventas no vendan un sistema que no funciona). La IA en la ingeniería de
software incluye síntesis de programas, verificación, depuración, prueba y monitorización de
software.
EN INTERFACES Y SISTEMAS DE “AYUDA”: Debido a que las computadoras se usan cada
vez más para aplicaciones que implican la interacción con los seres humanos, hay cada vez
más presiones para construir máquinas más fáciles de utilizar para los usuarios no expertos.
Consiste en dotar a las máquinas de más inteligencia para que puedan guiar o asesorar a los
usuarios que van a manejar algún sistema.
EN LA EDUCACIÓN: Aquí están los diversos tipos de sistemas tutores inteligentes y sistemas
de gestión de estudiantes. Algunas aplicaciones incluyen diagnóstico de lagunas en los
conocimientos del estudiante, algunos tipos de tutor de ejercicios y prácticas, marcado
automático de ejercicios de programación, etc.
EN LA GESTIÓN DE LA INFORMACIÓN: La IA ha aportado mediante la minería de datos, el
rastreo web, filtrado de correo, etc.
EN LAS MATEMÁTICAS: Ha contribuido a través del diseño de herramientas para ayudar con
distintas clases de funciones matemáticas, ahora son tan utilizadas que ya no se reconocen
como productos de la IA sino como una aplicación tradicional.
EN EL ENTRETENIMIENTO: Con más frecuencia se utiliza la IA en los juegos del computador
y los sistemas de control y de generación de caracteres sintéticos, ya sea en la animación a
través de texto o con la reproducción de películas con dibujos animados o “avatares2”
interactivos en mundos virtuales.
EN LA BIOLOGÍA: Existen varios problemas que son complicados en biología donde se están
desarrollando sistemas informáticos que se podrían decir que son inteligentes, por ejemplo,
análisis de ADN, predicción de la estructura de plegado de moléculas complejas, la predicción,
la elaboración de modelos de procesos biológicos, evolución, desarrollo de embriones,
comportamientos de los distintos organismos.
EN LA LEY: En este caso se han creado sistemas expertos para ayudar a los abogados, o los
sistemas para dar asesoramiento jurídico y ayuda a los no letrados.
EN LA ARQUITECTURA, EL DISEÑO URBANO, LA GESTIÓN DEL TRÁFICO: Se han
desarrollado herramientas para resolver problemas de diseño que presentan varias
restricciones, ayudar a predecir el comportamiento de las personas en los nuevos entornos,
herramientas para analizar los patrones de los fenómenos observados.
EN LA LITERATURA, EL ARTE Y LA MÚSICA: Mediante la identificación de los autores, la
modelización de los procesos de generación y el reconocimiento, las aplicaciones de
enseñanza.
EN LA DETECCIÓN Y PREVENCIÓN DE LA DELINCUENCIA: ha sido de gran utilidad ya que
se ha desarrollado sistemas que permiten detectar falsificaciones, aprendizaje para detectar
indicios de corrupción policial, aplicaciones para controlar las transacciones en Internet, ayudar
a planificar las operaciones de la policía, búsqueda en bases de datos policiales de evidencias
de que los crímenes son cometidos por la misma persona, etc.
EN EL COMERCIO: El Internet ha permitido que una de las áreas de mayor crecimiento en
cuanto al número de aplicaciones desarrolladas sea el comercio, especialmente el comercio
electrónico y el uso de agentes software de distintas clases para proporcionar, buscar, analizar
o interpretar información, tomar decisiones, negociar con otros agentes, etc.
EN EL ESPACIO: el control a distancia de los vehículos espaciales y robots autónomos.
EN LA ROBÓTICA: En este campo ha ayudado en lo que tiene que ver con la visión, el control
de motores, el aprendizaje, la planificación, la comunicación lingüística, el comportamiento
cooperativo. Es uno de los más subcampos más antiguos de la IA. El cual es estudiado con el
propósito de producir nuevos tipos de máquinas útiles, y, a veces, porque diseñar
completamente robots de trabajo proporciona un banco de pruebas para la integración de las
teorías y técnicas de distintos subcampos de la IA, por ejemplo, percepción, aprendizaje,
memoria, control motor, planificación, etc. Es decir, se trata de un contexto para explorar ideas
acerca de sistemas completos.

Lenguajes de Programación para la Inteligencia Artificial


En principio, cualquier lenguaje de programación puede ser utilizado. Tradicionalmente
LISP y PROLOG han sido los lenguajes que se han utilizado para la programación de sistemas
expertos.

Estos lenguajes brindan características especialmente diseñadas para operar problemas


generalmente hallados en Inteligencia Artificial.

Una de las principales características que comparten los lenguajes LISP y PROLOG, como
derivación de su respectiva estructura, es que logran ser utilizados para escribir programas
capaces de examinar a otros programas, incluyendo a ellos mismos.

LISP: Su nombre viene de List Processor. LISP fue el primer lenguaje para procesamiento
simbólico. Fue desarrollado en 1958, en el Instituto de Tecnología de Massachusetts
PROLOG: PROgramming in LOGic (PROLOG), es otro de los lenguajes de programación
utilizados en IA. PROLOG fue desarrollado en Francia, en 1973 en la Universidad de Marseilles.
OPS5: Official Production System 5 (OPS5), es un lenguaje para ingeniería cognoscitiva que
aguanta el procedimiento de representación del conocimiento en forma de reglas.
Entre las aplicaciones de la Inteligencia Artificial (IA) Tenemos:
Lingüística computacional: la lingüística y la informática que utiliza la informática para estudiar
y tratar el lenguaje humano.
Minería de datos (Data Mining): se puede definir como "extracción no trivial de información
implícita, desconocida previamente, y potencialmente útil desde los datos", y consiste en el
conjunto de técnicas avanzadas para la extracción de información escondida en grandes bases
de datos.
Mundos virtuales : es un campo relacionado con la inteligencia artificial. Se trata de la
simulación de mundos o entornos, denominados virtuales, en los que el hombre interacciona
con la máquina en entornos artificiales semejantes a la vida real.
Procesamiento de lenguaje natural : es una subdisciplina de la Inteligencia Artificial y la rama
ingenieril de la lingüística computacional. El PLN se ocupa de la formulación e investigación de
mecanismos eficaces computacionalmente para la comunicación entre personas o entre
personas y máquinas por medio de lenguajes naturales.
Robótica: es una ciencia o rama de la tecnología, que estudia el diseño y construcción de
máquinas capaces de desempeñar tareas realizadas por el ser humano o que requieren del uso
de inteligencia.
Sistemas de apoyo a la decisión: son sistemas de tipo OLAP o de minería de datos que
proporcionan información y soporte para tomar decisiones.
Videojuegos: es un programa informático, creado expresamente para divertir, basado en la
interacción entre una persona y un aparato electrónico donde se ejecuta el videojuego. Estos
recrean entornos virtuales en los cuales el jugador puede controlar a un personaje o cualquier
otro elemento de dicho entorno, para conseguir uno o varios objetivos por medio de unas
reglas determinadas.
Sistemas inteligentes: definición y concepto
Filed under: Uncategorized — Deja un comentario 6 noviembre, 2011
Podemos definir un sistema inteligente como un programa de computación que cuenta con
características y comportamientos similares a los de la inteligencia humana o animal, es decir,
que cuenta con la capacidad de decidir por sí mismo qué acciones realizará para alcanzar sus
objetivos basándose en sus percepciones, conocimientos y experiencias acumuladas.

Para hablar de sistema inteligente debe existir un entorno con el cual el sistema interactúe y,
además, el sistema inteligente debe incluir “sentidos” que le permitan recibir comunicaciones
de dicho entorno y así transmitir información.
El sistema actúa continuamente y cuenta con una memoria para archivar el resultado de sus
acciones. Tiene un objetivo y, para alcanzarlo, debe seleccionar la respuesta adecuada.
Además, a través de su memoria, durante su existencia, aprende de su experiencia, logrando
mejorar tanto su rendimiento como su eficiencia. Por último, consume energía, la cual utiliza
para sus procesos internos y para actuar.

Las capacidades requeridas para hablar de sistema inteligente completo son:


– Inteligencia: Es el nivel del sistema para lograr sus objetivos.
– Sistematización: Un sistema es parte del universo, con una extensión limitada en espacio y
tiempo. Las partes del sistema tienen más correlación con otras partes del mismo sistema que
con partes fuera del sistema.
– Capacidad sensorial: Un sentido es la parte del sistema que puede recibir comunicaciones del
entorno en el que se encuentra y, por tanto, es necesario para que el sistema inteligente
pueda recibir información, conocer su entorno e interactuar.
– Objetivo: Es la finalidad de una acción, es decir, un estado que el sistema inteligente quiere
alcanzar. Pueden aparecer distintos niveles de objetivos, pudiendo haber un objetivo principal
y varios subobjetivos.
– Conceptualización: Un concepto es una idea o representación mental del pensamiento, que
además sirve como almacenamiento físico de información. Todos los conceptos de la memoria
forman una red interrelacionada.
– Memoria: Es el elemento básico de almacenamiento de la información, es decir, de
conceptos y reglas de actuación. De la memoria forma parte la experiencia del sistema.
– Reglas de actuación: Son el resultado de una experiencia o de la interpretación de la propia
memoria, y se basan en la relación entre situación y consecuencias de acción.
– Aprendizaje: Es la capacidad más importante de un sistema inteligente. El sistema es capaz
de aprender conceptos a partir de la información recibida del entorno a través de los sentidos.
Concepto, Características y Metodologías de La Inteligencia Artificial

Concepto
La Inteligencia Artificial es una combinación de la ciencia del computador, fisiología y filosofía,
tan general y amplio como eso, es que reune varios campos (robótica, sistemas expertos, por
ejemplo), todos los cuales tienen en común la creación de máquinas que pueden pensar.

La de idea construir una máquina que pueda ejecutar tareas percibidas como requerimientos
de inteligencia humana es un atractivo. Las tareas que han sido estudiadas desde este punto
de vista incluyen juegos, traducción de idiomas, comprensión de idiomas, diagnóstico de fallas,
robótica, suministro de asesoría experta en diversos temas.
Es así como los sistemas de administración de base de datos cada vez más sofisticados, la
estructura de datos y el desarrollo de algoritmos de inserción, borrado y locación de datos, así
como el intento de crear máquinas capaces de realizar tareas que son pensadas como típicas
del ámbito de la inteligencia humana, acuñaron el término Inteligencia Artificial en 1956.

La Inteligencia Artificial trata de conseguir que los ordenadores simulen en cierta manera la
inteligencia humana. Se acude a sus técnicas cuando es necesario incorporar en un sistema
informático,conocimiento o características propias del ser humano.

Podemos interrogar a algunas bases de datos de Internet en lenguaje natural, o incluso charlar
con ellas nuestro idioma, porque por detrás se está ejecutando un programa de Inteligencia
Artificial.
Otras herramientas inteligentes pueden utilizarse para escrutar entre los millones de datos
que se generan en un banco en busca de patrones de comportamiento de sus clientes o para
detectar tendencias en los mercados de valores.

Características de la Inteligencia Artificial.


Una característica fundamental que distingue a los métodos de Inteligencia Artificial de los
métodos numéricos es el uso de símbolos no matemáticos, aunque no es suficiente para
distinguirlo completamente. Otros tipos de programas como los compiladores y sistemas de
bases de datos,también procesan símbolos y no se considera que usen técnicas de Inteligencia
Artificial.
El comportamiento de los programas no es descrito explícitamente por el algoritmo. La
secuencia de pasos seguidos por el programa es influenciado por el problema particular
presente. El programa especifica cómo encontrar la secuencia de pasos necesarios para
resolver un problema dado (programa declarativo). En contraste con los programas que no son
de Inteligencia Artificial, que siguen un algoritmo definido, que especifica, explícitamente,
cómo encontrar las variables de salida para cualquier variable dada de entrada (programa de
procedimiento).
Las conclusiones de un programa declarativo no son fijas y son determinadas parcialmente por
las conclusiones intermedias alcanzadas durante las consideraciones al problema específico.
Los lenguajes orientados al objeto comparten esta propiedad y se han caracterizado por su
afinidad con la Inteligencia Artificial.
El razonamiento basado en el conocimiento, implica que estos programas incorporan factores
y relaciones del mundo real y del ámbito del conocimiento en que ellos operan. Al contrario de
los programas para propósito específico, como los de contabilidad y cálculos científicos; los
programas de Inteligencia Artificial pueden distinguir entre el programa de razonamiento o
motor de inferencia y base de conocimientos dándole la capacidad de explicar discrepancias
entre ellas.

Aplicabilidad a datos y problemas mal estructurados, sin las técnicas de Inteligencia Artificial
los programas no pueden trabajar con este tipo de problemas. Un ejemplo es la resolución de
conflictos en tareas orientadas a metas como en planificación, o el diagnóstico de tareas en un
sistema del mundo real: con poca información, con una solución cercana y no necesariamente
exacta.
Diferentes metodologías:
1.La lógica difusa: permite tomar decisiones bajo condiciones de incerteza.
2.Redes neuronales: esta tecnología es poderosa en ciertas tareas como la clasificación y el
reconocimiento de patrones. Está basada en el concepto de "aprender" por agregación de un
gran número de muy simples elementos.
Este modelo considera que una neurona puede ser representada por una unidad binaria: a
cada instante su estado puede ser activo o inactivo. La interacción entre las neuronas se lleva a
cabo a través de sinapsis. Según el signo, la sinapsis es excitadora o inhibidora.
El perceptrón está constituido por las entradas provenientes de fuentes externas, las
conexiones y la salida. En realidad un perceptrón es una Red Neuronal lo más simple posible,
es aquella donde no existen capas ocultas.
Para cada configuración de los estados de las neuronas de entrada (estímulo) la respuesta del
perceptrón obedece a la siguiente dinámica: se suman los potenciales sinápticos y se
comparan con un umbral de activación. Esta suma ponderada es también llamada campo. Si el
campo es mayor que un umbral, la respuesta de la neurona es activa, si no, es inactiva.
Con una arquitectura tan simple como la del perceptrón no se puede realizar más que una
clase de funciones "booleanas" muy simples, llamadas linealmente separables. Son las
funciones en las cuales los estados de entrada con salida positiva pueden ser separados de
aquellos a salida negativa por un hiperplano. Un hiperplano es el conjunto de puntos en el
espacio de estados de entrada, que satisfacen una ecuación lineal. En dos dimensiones, es una
recta, en tres dimensiones un plano, etc.
Si se quieren realizar funciones más complejas con Redes Neuronales, es necesario intercalar
neuronas entre las capas de entradas y de salida, llamadas neuronas ocultas. Una red
multicapas puede ser definida como un conjunto de perceptrones, ligados entre si por sinapsis
y dispuestos en capas siguiendo diversas arquitecturas. Una de las arquitecturas más
comúnmente usada es llamada feedforward: con conexiones de la entrada a las capas ocultas
y de éstas hacia la salida.
El funcionamiento de una Red Neuronal es gobernado por reglas de propagación de
actividades y de actualización de los estados.
Experiencia, Habilidades y Conocimiento
Los tipos de experiencia que son de interés en los sistemas basados en conocimiento, pueden
ser clasificados en tres categorías: asociativa, motora y teórica.
Los sistemas basados en conocimiento son excelentes para representar conocimiento
asociativo. Este tipo de experiencia refleja la habilidad heurística o el conocimiento que es
adquirido mayoritariamente, a través de la observación. Puede ser que no se comprenda
exactamente lo que ocurre al interior de un sistema (caja negra), pero se pueden asociar
entradas o estímulos con salidas o respuestas, para resolver problemas que han sido
previamente conocidos.
La experiencia motora es más física que cognitiva. La habilidad se adquiere fundamentalmente
a través del ejercicio y la práctica física constante. Los sistemas basados en conocimiento no
pueden emular fácilmente este tipo de experiencia, principalmente por la limitada capacidad
de la tecnología robótica.
La experiencia teórica y el conocimiento profundo permite que los humanos puedan resolver
problemas que no se han visto antes, es decir, no existe una posibilidad asociativa. El
conocimiento teórico y profundo se adquiere a través de estudio y entrenamiento formal, así
como por medio de la resolución directa de problemas.
Debido a su naturaleza teórica, este conocimiento se puede olvidar fácilmente, a no ser que se
use en forma continua. Al momento, los sistemas convencionales basados en conocimiento
tienen muchas dificultades para duplicar este tipo de experiencia. Sin embargo, los Sistemas
de Razonamiento Basado en Modelos representan un notable intento de encapsular este
conocimiento profundo y razonar con él.
Por Alan Lazalde 18/11/11 - 04:00
Inteligencia Artificial: Arquitectura automática
Si nos ponemos reduccionistas, la inteligencia artificial puede considerarse como un montón
de algoritmos especializados en la creación de máquinas inteligentes (lo que sea que
"inteligencia" signifique). Y un algoritmo no es más que matemática pura. Dicho esto, si
agregamos unos toques de inteligencia artificial al diseño de formas arquitectónicas, entonces
tendremos arquitectura artificial o algorítimica o automática, el nombre da un poco lo mismo,
pero de este tema quiero contarles a continuación. 2
Diseño algorítmico
No, no estoy hablando del diseño de algoritmos, que es toda una rama de las ciencias de la
computación, sino de la aplicación de algoritmos en el proceso creativo del diseño gráfico. Un
ejemplo claro de esto es el logotipo del MIT Media Lab, que puede recrearse de forma única
para cada persona como se muestra en el vídeo:
Al final de día tenemos una máquina de software que automatiza la tarea de diseñar. Si la
automatización está guiada por algoritmos inteligentes entonces los resultados pueden ser
más interesantes, incluso inesperados.
Arquitectura algorítmica
Consiste en tres aspectos básicos:
Desarollo de algoritmos que automatizan tareas de diseño arquitectónico o urbano (atención
con el trabajo de Kokkugia más abajo)
Creación de modelos de conocimiento arquitectónico computables; es decir que pueden ser
resueltos por una computadora en un tiempo y forma razonable
Generación automática de variaciones de las características de una arquitectura, en particular
de sus estructuras y objetos; en este sentido puede verse como una extensión especial, incluso
más compleja, del diseño algorítmico
El libro Algorithmic Architecture (2006) de Kostas Terzidis, profesor de Harvard Graduate
School of Design es referencia en el tema que nos ocupa, aunque no se enfoca del todo a
algoritmos de inteligencia artificial. Terzidis utiliza el término algotectura para referirse a la
misma cosa. Por otra parte,la tesis doctoral de Fco. Javier Fernández Herrero (2002), graduado
de la E.T.S. de Arquitectura de Madrid, es pionera en el área: Arquitectura Artificial o
Manierismo por Computadora (PDF, 13MB). Aquí hay un vídeo de su trabajo:
Trabajos
A continuación una pequeña muestra de trabajos arquitectónicos inspirados/creados con
algoritmos de inteligencia artificial. Es difícil encontrarlos como tales, muchas veces están
mezclados con otro tipo de algoritmos (geométricos, topológicos, por ejemplo). La
arquitectura artificial es un campo emergente e interdisciplinario que nos ofrecerá
interesantes sorpresas en el futuro.
Antes les dejo esta reflexión de Rodney A. Brooks en su Cambrian Intelligence, sobre la
vinculación entre inteligencia (artificial o no), la arquitectura y su interacción con el mundo:

Es difícil dibujar entre lo que es inteligencia e interacción ambiental. En cierto sentido, no


importa cual es cual, en tanto que todos los sistemas inteligentes deben situarse en algún
mundo u otro si su propósito es convertirse en entidades útiles. La idea clave de la inteligencia
es: "la inteligencia está determinada por su dinámica de interacción con el mundo".
ARTIFICIAL SYMBIONT
Algoritmos crear organismos vivos antes que edificios estáticos. Trabajo de Zbynek Krulich.
THE TRASCENDENT CITY
La ciudad construida por una inteligencia artificial superior a la humana, la de una era post-
singularidad. Trabajo de Richard Hardy, para el proyecto final de su posgrado en arquitectura.
BEHAVIORAL URBANISM
Un trabajo más del impresionante estudio Kokkugia, que usa inteligencia artificial para sus
diseños.
ARQUITECTURA GENÉTICA
Karl Chu crea arquitectura inspirada en la evolución en tanto mecanismo para la adaptación
para la era que viene, la post-humana. Esta son una torres que han emergido del parque:
Y este un edificio integrado con su entorno:
ARQUITECTURA GENERATIVA
Los de Parametric Design son expertos en arquitectura artificial, pero este vídeo es de un
estudiante de arquitectura:
Vlad Tenu también con sus superficies mínimas auto organizadas:
CIENCIA
Albert Hofmann, Steve Jobs y el “efecto” del LSD en sus vidas
Tomar LSD fue una de las dos o tres cosas más importantes que he hecho en mi vida. Bill Gates
sería un tipo más abierto si hubiera tomado ácido alguna vez. Las personas que nunca han
tomado ácido nunca me entenderán completamente...
Quizá hubiera alguno que no lo sabía pero estas palabras corresponden a Steve Jobs. El gurú
de Apple hablaría así de la sustancia en el año 2005 durante una entrevista en el New York
Times. Sus palabras venían a refrendar lo que tantas veces se ha comentado del Steve Jobs
contracultural. Cuentan que tras su viaje a la India en la década de los 70, permaneciendo allí
alrededor de siete meses, algo había cambiado en él. Esa especie de viaje iniciático sería
probablemente la etapa donde comenzó a experimentar con la droga psicodélica. Sin saberlo,
las palabras del hombre que elevó a Apple lo habían conectado con otro gurú que vivía a miles
de kilómetros de Estados Unidos. La entrevista había llegado al científico e inventor del LSD
Albert Hofmann.
Nacido en Basilea (Suiza) en 1906, Albert Hofmann fue un químico e intelectual reconocido al
que la historia recordará como el hombre que describió la estructura de la quitina y por haber
sintetizado por primera vez lo que hoy llamamos comúnmente LSD.
Tras acabar su doctorado en 1929, Hofmann comenzó a trabajar en los Laboratorios Sandoz.
En 1938 Hofmann pasaría a la historia. Se encontraba estudiando en el laboratorio el hongo
del cornezuelo como parte de un programa donde se trataba de purificar y sintetizar los
componentes activos de plantas medicinales para su posterior uso en fármacos. Ese año
sintetizó por primera vez el LSD-25 con el fin de conocer los derivados del ácido lisérgico. Tras
su análisis, la dietilamida del ácido se mantendría guardada hasta 1943.
Ese año la volvería a sintetizar. El científico creía que tras esa extraña sustancia podrían existir
propiedades que hasta ahora no se habían descubierto en las primeras investigaciones. El 16
de abril de 1943 se convertiría en la primera persona en probar los efectos de la sustancia.
Mientras purificaba y cristalizaba el LSD, el hombre describió en un informe la pequeña
absorción que realizó con una pequeña dosis en la punta de los dedos:

Viernes 16 de abril, 1943, me vi forzado a interrumpir mi trabajo en el laboratorio a media


tarde y dirigirme a casa al encontrarme afectado por una notable inquietud, combinada con
cierto mareo. En casa me tumbé y me hundí en una condición de intoxicación no-
desagradable, caracterizada por una imaginación extremadamente estimulada. En un estado
parecido al del sueño, con los ojos cerrados (encontraba la luz del día desagradablemente
deslumbrante), percibí un flujo ininterrumpido de dibujos fantásticos, formas extraordinarias
con intensos despliegues caleidoscópicos. Esta condición se desvaneció dos horas después.

A partir de ese momento dedicaría parte de su vida al estudio de la sustancia y sus posibles
usos en terapias paliativas.

Volviendo a la historia entre Jobs y Hofmann, el científico se preguntó tras leer la entrevista
hasta qué punto había influido en la vida de Jobs y en el crecimiento de Apple tras su pasado
con el ácido.

En el 2007, Rick Doblin, amigo de Hofmann y director de la Asociación Multidisciplinar de


Estudios Psicodélicos (MAPS), se encontraba en esos momentos trabajando en un nuevo
estudio sobre el uso del LSD como psicoterapia en pacientes con ansiedad asociada a
enfermedades terminales. Doblin le habló a Hoffman de Jobs y le dijo que era fan de la droga.

Este hecho le recordó al científico la entrevista a Jobs y se decidió a contactar con el gurú de
Apple. Con 101 años cumplidos, el inventor del LSD escribía la siguiente nota personal a Jobs.
Si una persona tan relacionada al éxito como Jobs pudiera apoyar los últimos estudios o la
importancia positiva que había tenido en su vida, Hofmann habría contribuido por última vez
al desarrollo de la misma:

Estimado Sr. Steve Jobs,

Soy Albert Hofmann. Entiendo lo que has contado a los medios de comunicación sobre cómo el
LSD ayudó en tu creatividad y en el desarrollo de Apple Computers, en tu búsqueda espiritual
personal. Estoy interesado en aprender más sobre cómo el LSD te fue útil.
Te estoy escribiendo ahora, poco después de mi 101 cumpleaños, para solicitarte el apoyo en
el estudio propuesto por el psiquiatra suizo Dr. Peter Gasser sobre el LSD como ayuda de la
psicoterapia en pacientes con ansiedad asociada a una enfermedad potencialmente terminal.
El estudio se convertirá en la primera psicoterapia asistida por LSD en más de 35 años y será
patrocinada por MAPS.

Espero que puedas ayudarme,

Sinceramente
Albert Hofmann

Nos quedaremos toda la vida con las ganas de saber la respuesta de Jobs. Hofmann moriría
meses después de enviarle la carta, la cual ha visto la luz este año. Nunca sabremos hasta qué
punto influyó en Jobs el consumo del LSD ni la importancia (o no) que tuvo para Apple. Para
Hofmann si hubo premio antes de su muerte. La sustancia a la que le dedicó parte de su vida
tuvo una última victoria a finales del 2007. Las autoridades suizas permitieron que se llevaran a
cabo experimentos en psicoterapia con pacientes que sufren de enfermedades físicas
terminales. Se trataba del primer estudio sobre los efectos terapéuticos del LSD tras 35 años.
Inteligencia Artificial
Juan Ramón Peguero.
E-mail: jpeguero@unicaribe.edu.do
Lic. Informática,
Master en Gerencia y Productividad,
Master en BI y Big Data,
Grado Asociado en Tecnología Electrónica.
[Inteligencia Artificial]
Sistemas basados en Reglas (Sistemas Expertos)
Introducción
Representación del conocimiento
Estructura de un sistema basado en reglas
Base de hechos
Base de conocimientos
Motor de inferencias
Formas de inferencia
Propósito:
Entender los conceptos fundamentales de los Sistemas Expertos.
Comprender la estructura del sistema, así como conocer las técnicas
y herramientas básicas de los mismos.
Introducción.
El objetivo de la IA es la construcción de sistemas, tanto
hardware como software, que sean capaces de replicar aspectos
de lo que se suele considerar inteligencia.
“José T. Palma Méndez y Roque Marín Morales”
[Inteligencia Artificial]
Pensamiento Humano e Inteligencia Artificial
La IA es el conjunto de técnicas, métodos, herramientas y
metodologías que nos ayudan a construir sistemas que se
comportan de manera similar a un humano en la resolución
de problemas.
Representación del conocimiento &
Razonamiento lógico.
[Inteligencia Artificial]
Se llama razonamiento lógico al proceso mental de realizar
una inferencia a partir de un conjunto de premisas.
La representación del conocimiento y el razonamiento es un
área de la inteligencia artificial cuyo objetivo fundamental es
representar el conocimiento de una manera que facilite la
inferencia (sacar conclusiones) a partir de dicho
conocimiento.
Representación del conocimiento &
Razonamiento lógico.
Los investigadores en el ampo de IA se han ocupado de analizar
y generar técnicas y métodos que permiten la representación
simbólica del conocimiento humano de manera que pueda ser
aplicado al ámbito del computador.
[Inteligencia Artificial]
Representación del conocimiento &
Razonamiento lógico.
La representación debe ser:
Esencial .- (Abstracción de lo importante)
Formal .- Símbolos iguales tienen igual significado o
semántica.
[Inteligencia Artificial]
Cómo llegar de la
puerta del conde a la
catedral por la ruta más
corta.
Razonamiento lógico.
Al conjunto de (lenguaje + semántica), que sirven para
representar el conocimiento relacionado con la capacidad de
realizar ciertos razonamientos se llama lógica.
[Inteligencia Artificial]
La lógica es una ciencia formal que estudia los principios de
la demostración e inferencia válida.
La inferencia es el proceso por el cual se derivan
conclusiones a partir de premisas.
Razonamiento lógico.
Silogismo aristotélico.
[Inteligencia Artificial]
Todos los
hombres son
mortales
Sócrates es
un hombre
Sócrates es
mortal
Lógica proposicional.
Es un sistema formal cuyos elementos más simples representan
proposiciones, y cuyas constantes lógicas, llamadas conectivas,
representan operaciones sobre proposiciones, que a su vez
pueden formar otras proposiciones de mayor complejidad.
[Inteligencia Artificial]
Representación del conocimiento
Una proposición es una expresión en lenguaje natural que sólo
puede ser falsa o verdadera.
El suelo está mojado
Vs
Cuando terminamos la clase.
Las conectivas de la Lógica proposicional.
[Inteligencia Artificial]
Representación del conocimiento
Mediante la utilización de la lógica proposicional, podemos
expresar ciertos razonamientos.
Por ejemplo:
El objeto A se encuentra en el suelo.
El objeto B se encuentra en el suelo.
Entonces, si el robot levanta del suelo el objeto A o
puede levantar también el objeto B si brazo no lleno.
[Inteligencia Artificial]
Representación del conocimiento
p Brazo lleno p Brazo no lleno
rA V rB p
Para decidir la validez de una fórmula se suele utilizar lo que se
conoce como Arbol semántico o tablero semántico.
[Inteligencia Artificial]
Representación del conocimiento
La lógica de primer orden o lógica de predicados.
Es un sistema formal diseñado para estudiar la inferencia en los
lenguajes de primer orden.
Introduce variables para denotar elementos del dominio,
cuantificadores y predicados.
[Inteligencia Artificial]
Representación del conocimiento
En la representación del conocimiento, un dominio es un
fragmento del mundo acerca del que deseamos expresar un
determinado conocimiento.
La lógica de primer orden incorpora además las conectivas de la
lógica proposicional.
Combinando las conectivas con los predicados, constantes,
variables y cuantificadores, es posible formalizar oraciones más
completas.
Los predicados son tratados como funciones.
Esta función recibe un conjunto de cosas, las procesa, y
devuelve como resultado una única cosa.
A los elementos que entran a las funciones se las llama
argumentos.
A los que salen, valores o imágenes.
[Inteligencia Artificial]
Representación del conocimiento
Los cuantificadores serán símbolos:
= Cuantificador universal
∃ = Cuantificador existencial
Retomando el ejemplo del robot:
El objeto A se encuentra en el suelo.
El objeto B se encuentra en el suelo.
Entonces, si el robot levanta del suelo el objeto A o
puede levantar también el objeto B si brazo no lleno
Lo podríamos representar como:
∃x(q(x) → ¬p)
[Inteligencia Artificial]
Representación del conocimiento
Premisa todos los hombres son mortales
x(Hombre(x) mortal(x))
Socrates es un hombre
Hombre(Socrates)
Conclusión: Socrates es mortal
mortal(Sócrates)
[Inteligencia Artificial]
Representación del conocimiento
El profesor Edward Feigenbaum de la Universidad de Stanford
define sistemas expertos como:
“Un programa de computación inteligente que usa el
conocimiento y los procedimientos de inferencia para
resolver problemas que son lo suficientemente difíciles como
para requerir significativa experiencia humana para su
solución”
[Inteligencia Artificial]
Sistema Experto
[Inteligencia Artificial]
Sistema Experto
Dominio de problema .-
Es el área específica de
problema, como medicina, finanzas,
ciencias, ingeniería….
Dominio de conocimiento .-
Conocimiento del especialista
para resolver problemas específicos.
En su dominio de conocimiento, el sistema experto razona
o hace inferencias de la misma forma que un especialista
humano inferiría la solución.
El conocimiento de un sistema experto puede representarse
como:
Reglas, (sistema basado en reglas) .
Estos sistemas trabajan en ambiente determinista.
Sistemas expertos basados en probabilidad.
Estos son enfocados a situaciones de incertidumbre.
[Inteligencia Artificial]
Sistema basado en reglas.
[Inteligencia Artificial]
Sistema basado en reglas.
Estructura de un sistema basado en reglas
[Inteligencia Artificial]
Sistema basado en reglas.
Base de hechos (BH) o memoria de trabajo contiene
toda la información actual del problema o tarea a
resolver y aquellos que se van creando en el proceso
de inferencia.
Contiene las reglas utilizadas para representar el
conocimiento disponible de un determinado dominio.
La condición de la regla expresa algún tipo de test sobre
el contenido de la BH que se puede verificar o no.
Motor de inferencias (MI) la estrategia de
control o el interprete de reglas es el
mecanismo que sirve para examinar la BH
y decidir que reglas se deben disparar.
La búsqueda del conjunto de reglas que se pueden aplicar a la BH
se denomina equiparación.
El conjunto de reglas que se obtienen durante el proceso de
equiparación se denomina conjunto conflicto.
Cuando se selecciona una regla de todo el conjunto se llega a la
fase que se conoce como resolución del conjunto conflicto.
[Inteligencia Artificial]
Sistema basado en reglas.
[Inteligencia Artificial]
[Sistemas Expertos basados en reglas]
Regla 1: Si nota > 9, entonces calificación = sobresaliente
Regla 2: Si puesto < 20 o nota > 7, entonces Admitir = sí y
Notificar = sí.
[Inteligencia Artificial]
Formas de inferencia
El proceso de inferencia ha de establecer la verdad de
determinadas conclusiones a partir de la información que se
tiene en la base de hechos y la base de conocimientos.
Este proceso lo realiza el motor de inferencia lo realiza
generalmente siguiendo una de estas formas:
Encadenamiento hacia adelante
Se ejecutan las reglas cuyo antecedente sea cierto a
partir de la información que hay en sistema.
Encadenamiento hacia atrás.
Selecciona las reglas cuyo consecuente permite
demostrar cierta condición.
[Inteligencia Artificial]
Formas de inferencia
Tenemos un animal con las siguientes características:
• Tiene pelos
• Garras
• No se reproduce por huevos
• Dientes afilados
• Ojos sobresalientes
• Come carne
• En su cuerpo tiene rayas
• Es rápido
Tratar de determinar que animal es utilizando encadenamiento
hacia delante.
Determinar sus características a partir de la conclusión utilizando
encadenamiento hacia atrás.
[Inteligencia Artificial]
[Sistemas Expertos]
Cuando el conocimiento es difícil de adquirir o se basa
en reglas que sólo pueden ser aprendidas de la
experiencia.
Cuando la mejora continua del conocimiento es
esencial y/o cuando el problema está sujeto a reglas o
códigos cambiantes.
Cuando el conocimiento de los usuarios sobre el tema
es limitado.
Situaciones en las que se recomienda el uso de los
sistemas expertos.
[Inteligencia Artificial]
[Sistemas Expertos]
Campos de aplicación de los sistemas expertos.
[Inteligencia Artificial]
[Características de un Sistemas Expertos]
Alto desempeño .- Debe tener la capacidad de
responder a un nivel de competencia igual o superior al
de un especialista en el campo.
Tiempo de respuesta adecuado.- Debe actuar en un
tiempo razonable.
Confiabilidad.- Debe ser confiable.
Comprensible.- Debe ser capaz de explicar los pasos de
su razonamiento mientras se ejecutan de manera
comprensible.
Lectura recomendada
Capítulo 3, del libro:
Inteligencia Artificial, técnicas, métodos y aplicaciones.,
De José T. Palma Méndez y Roque Marín Morales.
----------------------------------------------------------------------------
Lectura adicional opcional:
Capítulo 2, del libro:
Inteligencia Artificial, técnicas, métodos y aplicaciones.,
De José T. Palma Méndez y Roque Marín Morales.
6. Sistemas Basados en Conocimiento (SBC)
(Knowledge-Based Systems: KBS)
Los SBC o Sistemas Expertos son sistemas de apoyo a la solución de
problemas cuyo desempeño está primordialmente en conocimiento “declarado” o
“explícito” (en contraposición al conocimiento “operativo” o “algorítmico”). Estos
sistemas derivan sus conclusiones de conocimiento almacenado en bases de
conocimiento, más que de algún algoritmo prefijado.
Una distinción entre SBC y programas convencionales es la separación
explícita de conocimiento y control. En un programa algorítmico típicamente el
flujo de control está entrelazado con la información en que se basa el algoritmo.
En cambio, en un SBC se distinguen 3 componentes distintivos:
1. Base de Conocimiento (BC, ó en inglés, KB)
2. Memoria de Trabajo (MT, ó en inglés, WM)
3. Máquina de Inferencia (MI, ó en inglés, IE).
Base de Conocimiento (BC):
Es un conjunto de reglas (u otro tipo de estructuras de representación,
como los “frames” o marcos), que representan el conocimiento de la materia de
interés.
Memoria de Trabajo (MT):
Contiene la información del problema específico que se trata, compuesto
por los datos de entrada originales y todas las inferencias hechas por el sistema a
partir de los datos.
Maquina de Inferencia:
La máquina de inferencia accesa los elementos de la MT, explora la BC,
identifica las reglas que son relevantes y las ejecuta, para generar una o más
conclusiones asociadas al problema específico (instancia).
Los SBC se clasifican en generaciones de acuerdo a su capacidad de
razonamiento y control.
6.1. Ejemplos de SBC
6.1.1. SBC de primera generación
Generalmente se enfoca a tareas bien definidas y limitadas, con énfasis en
rendimiento (basados en modelos “superficiales”), más que en entendimiento
(basados en modelos “profundos”). Los problemas típicos que resuelven esta
tecnología más limitada se describe con el concepto de “Problemas de
Clasificación” (Introducido por Clancey, 1984).
Los Problemas de Clasificación consisten en reconocer una situación a
partir de una colección de datos, y seleccionar la respuesta mas adecuada de
acuerdo a ciertos objetivos.
Figura 6.1. Esquema de solución de problemas de clasificación.
En la Figura 6.1 de puede apreciar un esquema mediante el cual se
pueden resolver los problemas en cuestión. En dicha figura se pueden mencionar
los siguientes aspectos relevantes para solucionar los problemas:
1. Los datos: que se generan desde varias fuentes y se interpretan como un
patrón predefinido.
2. El patrón reconocido: el cual se mapea a un conjunto de soluciones posibles.
3. Una de sus soluciones: la que se selecciona como la más apropiada para el
caso dado.

Este proceso se considera un problema de clasificación estático, ya que


supone que los datos de entrada son invariantes en el tiempo, al menos durante
el lapso necesario para resolver el problema.
Los SBC de Primera Generación resolvieron estos problemas usando
razonamiento monotónico, y formas primitivas de representación de incertidumbre
(si es que incorporaban algo de incertidumbre). La representación del
conocimiento era plana más que jerárquica. Ejemplo de SBC de 1ª Generación
son Mycin, XCON, Prospector, y DELTA-CATS.
Refinación
(Refinament)
R
Relación heurística
(Heuristic Match) Datos abstractos
(Data abstraction)
Soluciones abstractas
DATOS SOLUCIONES
Abstracción de
datos
6.1.2. SBC de segunda generación
Los SBC de 2ª generación son capaces de manejar tareas menos
delimitadas que los de la 1ª Generación (o “Clasificadores”). Los típicos
problemas que corresponden a estos sistemas fueron descritos como “Problemas
de Clasificación Dinámicos” (PCD). A diferencia del anterior, en este caso el
medio del que se colecta datos cambia a una tasa comparable al tiempo
requerido para obtener una solución refinada, requiriendo respuesta en tiempo
real. Ejemplos de PCD incluyen análisis de situación (p.ej. control de tráfico
aéreo), diagnostico en tiempo real (p.ej. diagnóstico de motores de avión en
vuelo), planificación en tiempo real, y “selección de catálogo” en tiempo real (p.ej.
selección de inversiones durante fluctuaciones de mercado). Existen “shells” para
manejar algunos de estos casos, como KEE, ARF y RUM/RUM runner.
6.2. Representación del conocimiento
Ya se mencionó la importante característica de los SBC: su separación
explícita entre conocimiento y control. Es crucial seleccionar un lenguaje
adecuado de representación del conocimiento. De acuerdo a la información
estructural disponible, se han usado 3 tipos de representaciones del conocimiento
para definir el lenguaje de representación: cálculo predicativo, reglas de
producción, y marcos (frames).
Estas representaciones son todas equivalentes en el sentido de la
Máquina de Turing. El cálculo predicativo es adecuado para tareas muy poco
estructuradas, en tanto las reglas de predicción (con clases de reglas), y los
sistemas de marcos (frames) van incorporando en forma creciente la estructura
intrínseca del dominio del problema. Cada vez más las implementaciones
incluyen tipos híbridos, como por ejemplo el uso de reglas aplicadas a objetos
complejos descritos por frames.
Capitulo6
Diseño de sistemas Expertos
6.1 Introducción
En los capítulos anteriores, hemos hablado de los conceptos generales y la teoría de los
sistemas
expertos. Este capítulo presenta las pautas generales para la construcción de sistemas
expertos
prácticos diseñados para aplicaciones del mundo real, no prototipos de investigación. Una
metodología de ingeniería de software se describe de modo que un sistema experto puede ser
un
producto de calidad desarrollado de una manera costo-efectiva y oportuna.
6.2 Selección del problema apropiado
Antes de poder construir un sistema experto se debe seleccionar un problema de forma
apropiada,
como se discutió en la Sección 1.6. Como con cualquier proyecto de software hay una serie de
consideraciones generales que deben realizarse antes de un gran compromiso con la gente, los
recursos y el tiempo están comprometidos con un sistema experto propuesto. Estas
consideraciones
generales son típicas de las preocupaciones de la gestión de proyectos en los programas
convencionales, pero deben ser personalizadas para los requerimientos especiales de los
sistemas
expertos. Un punto de vista general de gestión de desarrollo de sistemas expertos se muestra
en la
Figura 6.1. Las tres etapas generales tienen consideraciones más específicas, que se muestra
debajo de ellos. Estas consideraciones más específicas serán discutidas en forma de preguntas
y
respuestas que sirvan de guía para los proyectos de sistemas expertos.

Selección del paradigma apropiado.


¿Por qué estamos construyendo un sistema experto?
Esta es probablemente la pregunta más importante a preguntarse en cualquier proyecto.
Mientras
que el Capítulo 1, Sección 2 se describen las ventajas generales de los sistemas expertos, sólo
se
autoriza a la gestión el sistema y personal técnico necesarios para aplicar en la necesidad. En
particular, la respuesta a esta pregunta con el tiempo se debe dar a los propietarios o
accionistas de
la financiación del desarrollo. Antes de comenzar, debe haber una clara identificación del
problema,
expertos y usuarios.
Rentabilidad
¿Cuál es la recompensa?
Esta pregunta está relacionada con la primera pregunta. Sin embargo, ésta es más pragmática
en
que está pidiendo el retorno específico de la inversión de las personas, recursos, tiempo y
dinero. El
pago puede ser en dinero, aumentar la eficiencia, o de cualquiera de las otras ventajas de los
sistemas expertos descrito en el capítulo 1. También es importante recordar que si no se usa el
sistema, no habrá recompensa. Debido a que los sistemas expertos es una nueva tecnología,
es
más difícil y riesgoso responder a esta pregunta en relación a la programación convencional.
Figura 6.1 Tareas de Gestión de Proyectos
Herramientas
¿Qué herramientas se encuentran disponibles para construir el sistema?
Hay muchas herramientas de sistemas expertos disponibles en la actualidad con ventajas y
desventajas. El Apéndice D resume las características de algunas herramientas. Sin embargo,
esto
sólo debe ser tomado como una guía, ya que las herramientas de software se desarrollan tan
rápidamente. Por lo general, usted puede contar con una mejora importante cada año en cada
herramienta y una revisión en profundidad cada dos o tres años.
Estas mejoras no se limitan a las herramientas de software. Muchas de los estados de
herramientas
avanzadas se ejecutó con $ 50.000 en máquinas LISP a mediados la década de 1980 fueron
reescritas más tarde para correr en microcomputadores o microprocesadores personalizados.
Esto
reduce considerablemente el costo de hardware para ejecutar las herramientas. La mejor guía
es
examinar las publicaciones actuales y hablar con personas que han construido sistemas
expertos.
Costo
¿Cuánto va a costar?
El costo de la construcción de un sistema experto depende de las personas, los recursos y el
tiempo
destinado a su construcción. Además del hardware y software necesario para ejecutar una
herramienta de sistema experto, también puede haber un costo considerable en la
capacitación. Si el
personal tiene poca o ninguna experiencia con una herramienta, puede ser costoso
capacitarlos. Por
ejemplo, la capacitación en estados de herramientas avanzadas de sistemas expertos puede
costar
$ 2500/semana por persona.
6.3 ETAPAS EN EL DESARROLLO DE UN SISTEMA EXPERTO.
¿De qué manera el sistema se desarrollará?
En gran medida, el desarrollo de un sistema experto depende de los recursos aportados, sin
embargo, como cualquier otro proyecto, el desarrollo también dependerá de la forma en que
el
proceso está organizado y dirigido.
Gestión de Proyectos
La gestión de proyectos se espera que proporcione el siguiente-hecho, la gestión de proyectos
ha
sido objeto de un enfoque de sistema experto (Sathi 86):

Gestión de actividades
Planificación Definir las actividades
Especificar la prioridad de las actividades
Requerimientos de los recursos
Hitos
Duración
Responsabilidades
Programación Asignación de tiempos de inicio y finalización.
Resolver los conflictos en la programación de tareas con la misma
prioridad.
Crónica Monitorear desempeño del proyecto.
Análisis Analizar planes, programas y actividades de la
crónica.

Gestión de Configuraciones del Producto


Gestión de Productos Gestionar las diferentes versiones del
producto.
Gestión de Cambios Gestionar las propuestas de cambio y las
evaluaciones de impacto.
Asignar personal para realizar cambios
Instalar nuevas versiones del producto.

Gestión de Recursos
Previsión de las necesidades de recursos
Adquirir los recursos
Asignar responsabilidades para el uso óptimo de los recursos
Proporcionar los recursos críticos para minimizar los cuellos de botella

Para el desarrollo de un sistema experto, las actividades son las tareas necesarias para
construir el
sistema. La Figura 6.2 muestra una vista general de las actividades necesarias para producir un
sistema en términos de las etapas que atraviesa un sistema.
Figura 6.2 Etapas generales en el desarrollo de un sistema experto

El problema de la entrega.
¿Cómo se entregará el sistema?
Si bien es conveniente y puede reducir al mínimo el tiempo de desarrollo utilizar una estación
de
trabajo de punta, a menudo es demasiado costoso para entregar el sistema en estas
estaciones de
trabajo.
Por ejemplo, una estación de trabajo que tiene US $ 100.000 en hardware y software es
bastante
cara para su uso en las oficinas una empresa. Además, las tasas anuales de mantenimiento
pueden
aumentar aún más el costo considerablemente.
Dependiendo del número de sistemas expertos para su implementación, el problema de
entrega de
los sistemas desarrollados puede ser un factor importante en el desarrollo. El problema de la
entrega
debe ser considerado en las primeras etapas de desarrollo (Freedman 86).
Idealmente, los sistemas expertos entregados deberán ser capaces de funcionar con hardware
estándar. Sin embargo, algunas herramientas de sistema experto requieren una placa especial
para
un microprocesador LISP, lo que aumentará sustancialmente el costo.
En muchos casos, el sistema experto debe estar integrado con otros programas existentes. Se
debe
considerar la comunicación y la coordinación de entrada/salida del sistema experto con estos
programas. También puede ser necesario llamar a los sistemas expertos como un
procedimiento de
un lenguaje de programación convencional, y el sistema debe apoyar esto.

Mantenimiento y Evolución.
¿De qué manera el sistema será mantenido y evolucionará?
El mantenimiento y la evolución de un sistema experto es más de una actividad abierta que
con los
programas convencionales. Debido a que los sistemas expertos no se basan en algoritmos, su
rendimiento depende del conocimiento. Como se adquieren nuevos conocimientos y el viejo
conocimiento es modificado, el rendimiento del sistema mejora.
En un producto de calidad comercial debe haber una manera sistemática y eficaz de recopilar
informes de errores de los usuarios. Mientras que la recopilación y reparación de los informes
de
error no es de alta prioridad en los sistemas de investigación de calidad, es una alta prioridad
en los
sistemas de calidad comercial. Un buen mantenimiento se puede hacer sólo si los informes de
errores se adquieren.
La mejora de un sistema experto después de la entrega es también más de una preocupación
en un
sistema de calidad comercial. Los desarrolladores de un sistema comercial queremos que sea
un
éxito financiero. Esto significa escuchar lo que los usuarios quieren y están dispuestos a pagar
por
mejoras. En un sentido muy real, un sistema experto comercial nunca puede ser acabado, sólo
sigue
mejorando.
6.4 ERRORES EN LAS ETAPAS DE DESARROLLO
Los errores de mayor potencial del desarrollo de sistemas expertos se pueden clasificar por las
etapas más probables en que se producen, como se ilustra en la Figura 6.3. Estos errores son
los
siguientes:
Errores de expertos en el conocimiento. El experto es la fuente de conocimiento del
sistema experto. Si el conocimiento del experto es erróneo, los resultados pueden ser
propagados a través del proceso de desarrollo. Como se mencionó en el capítulo 1, un
beneficio secundario de la construcción de un sistema experto es la detección potencial de
conocimiento erróneo cuando el conocimiento del experto, se hace explícito.
Para los proyectos de misión crítica en la que la vida humana y la propiedad están en
riesgo, puede ser necesario establecer procedimientos formales para certificar los
conocimientos de un experto. Uno de los enfoques que la NASA ha utilizado con éxito para los
vuelos espaciales son los paneles de técnicas de vuelo, que revisan regularmente soluciones
a los problemas y las técnicas de análisis utilizadas para desarrollar las soluciones (Culbert
87). Los paneles consisten en usuarios del sistema, independientemente del dominio de los
expertos, desarrolladores de sistemas y administradores para asegurar la cobertura de todas
las áreas que afectan el desarrollo.
La ventaja de un panel de enfoque es que el conocimiento del experto se encuentra
bajo estrecha vigilancia en el comienzo del proceso de desarrollo, cuando el conocimiento es
erróneo es más fácil de corregir. Cuanto más tiempo el conocimiento erróneo pasa
desapercibido, más caro que es corregirlo. Si el conocimiento del experto no es inicialmente
verificado, la prueba definitiva es la validación del sistema experto. La validación final del
sistema experto demuestra que el sistema satisface los requisitos, especialmente la exactitud
e integridad de las soluciones.
La desventaja de un panel de enfoque es sobre todo el costo involucrado. Sin embargo,
este costo puede ser compensado por una mayor eficiencia del proceso de desarrollo.
Errores semánticos. Un error de semántica se produce cuando el significado del
conocimiento no está bien comunicado. Como un ejemplo muy sencillo, supongamos que un
experto dice que "usted puede apagar un fuego con el agua" y el ingeniero del conocimiento
interpreta esto como "Todos los fuegos puede ser extinguido por el agua." Los errores
semánticos ocurren si el ingeniero del conocimiento malinterpreta las respuestas de los
expertos, o el experto interpreta mal la pregunta del ingeniero del conocimiento, o ambos.
Los errores de sintaxis. Estos son simples errores que ocurren cuando se introduce de
forma incorrecta una regla o un hecho. Las herramientas de sistemas expertos deben marcar
estos errores y emitir el mensaje apropiado. Otros errores que se producen en la fase de
construcción de la base de conocimiento se deben a errores de la fuente del conocimiento que
no se han detectado en las etapas anteriores.

Figura 6.3 Errores importantes en los sistemas de expertos alguna de las causas

Errores del motor de inferencia. Al igual que con cualquier otra pieza de software, el
motor de inferencia puede tener fallos. En el momento en que una herramienta de sistema
experto es liberado para su uso general, todos los errores comunes deberían ser encontrados.
Sin embargo, puede haber errores que sólo aparecen en raras circunstancias tales como
tener 159 reglas en la agenda. Algunos errores pueden ser muy sutiles y sólo aparecen en
ciertas operaciones de reconocimiento de patrones.
En general, los errores del motor de inferencia pueden aparecer en reconocimiento de
patrones, resolución de conflictos, y la ejecución de las acciones. Estos errores pueden ser
difíciles de detectar si no son consistentes. Si la herramienta de sistema experto se utiliza
para aplicaciones de misión crítica, se debe determinar cómo la herramienta fue validada.
El método más simple de comprobar si hay errores de herramienta es el clásico de
preguntar a otros usuarios y al proveedor de la herramienta. El proveedor de la herramienta
debe estar dispuesto a proporcionar una lista de clientes, informes de errores y correcciones,
y cuánto tiempo la herramienta ha estado en uso. Un grupo de usuarios es una excelente
fuente de información.
Los errores de la cadena de inferencia. Estos errores pueden ser causados por el
conocimiento erróneo, errores semánticos, errores de motor de inferencia, la especificación
incorrecta de la prioridad de las reglas, y las interacciones no planificadas entre las reglas. Los
errores de la cadena de inferencia más complejos se deben a la incertidumbre de las reglas y
las pruebas, la propagación de la incertidumbre en la cadena de inferencia, y no
monotonicidad.
La elección de un método para tratar la incertidumbre no se resuelve automáticamente
todos los temas relacionados con la incertidumbre. Por ejemplo, antes de elegir la inferencia
bayesiana simple, usted debe comprobar para ver si el supuesto de independencia
condicional está garantizado.
Límites de los errores de la ignorancia. Un problema que es común a todas las etapas
de desarrollo es especificando los límites de la ignorancia del sistema. Como se mencionó en
el capítulo 1, los expertos humanos conocen el alcance de sus conocimientos y sus
actuaciones se degradan correctamente (esperamos) en los límites de su ignorancia. Los
expertos humanos debe ser lo suficientemente honesto como para admitir una mayor
incertidumbre en sus conclusiones cerca de las fronteras. Sin embargo, a menos que un
sistema experto esté específicamente programado para admitir la incertidumbre, es posible
que siga proporcionando respuestas, incluso si la cadena de inferencia y las pruebas son
débiles.
6.5 INGENIERÍA DE SOFTWARE Y SISTEMAS EXPERTOS
En las secciones anteriores hemos hablado de las consideraciones generales en el uso del
paradigma de los sistemas expertos. Ahora vamos a examinar las etapas de desarrollo de
sistemas
expertos desde la perspectiva más técnica del ingeniero del conocimiento que de hecho
construye el
sistema.
Dado que los sistemas expertos se han trasladado fuera de la fase de investigación existe una
necesidad real para entregar software de calidad a los estándares del software convencional.
La
metodología aceptada para el desarrollo de software de calidad para los estándares
comerciales,
industriales, y el gobierno es la ingeniería de software.
Es importante seguir los buenos estándares en el desarrollo de un producto o el producto
probablemente no será de buena calidad. Los sistemas expertos ahora deben considerarse un
producto como cualquier otro producto de software, tales como un procesador de textos,
programa
de nóminas, juego de ordenador, y así sucesivamente. Sin embargo, existe una diferencia
significativa de la misión entre los sistemas expertos y los productos típicos de consumo, tales
como
procesadores de texto y video juegos. La misión se refiere a la finalidad general de un proyecto
o
una tecnología. La tecnología de sistemas expertos en general, tiene una misión seria de ser
fuente
de conocimientos técnicos en situaciones de alto rendimiento y posiblemente peligrosa en
donde la
vida humana y la propiedad están en juego. Estas son las aplicaciones de misión crítica que se
mencionó en la sección anterior.
Aplicaciones de misión crítica son diferentes de la más relajada misión de los procesadores de
texto
y videojuegos, que es aumentar la eficiencia y las actividades recreativas. La vida humana no
puede
depender de un error en un procesador de textos o un videojuego (o al menos no debería).
Los sistemas expertos son sistemas de alto rendimiento que deben ser de alta calidad o serán
propensos a errores. La ingeniería de software ofrece metodologías para la construcción de
software
de calidad, como se ilustra en la Figura 6.4.
Figura 6.4 Metodología de la Ingeniería de Software
La calidad es un término difícil de describir en un sentido general, porque significa cosas
diferentes
para personas diferentes. Una manera de definir la calidad es como los atributos necesarios o
deseables de un objeto determinado en alguna escala. El término objeto se utiliza aquí para
referirse
a cualquier software o hardware. Los atributos y sus valores se llaman indicadores, ya que se
utilizan como medidas de un objeto. Por ejemplo, la fiabilidad de la medida de una unidad de
disco
es un indicador de su calidad. Una medida de este atributo es el tiempo medio entre fallos
(TMEF) de
la unidad. Una unidad confiable podría tener un TMEF de 1000 horas de uso entre los fallos,
mientras que una unidad poco confiable podría tener un TMEF de 100 horas.
La tabla 6.1 da una lista de algunos indicadores que pueden ser utilizados en la evaluación de
la
calidad de un sistema experto. Estas cifras sólo se deben tomar como guía ya que un sistema
específico de expertos puede tener más o menos de estos. Sin embargo, el concepto
importante es
tener una lista de indicadores necesarios que pueden ser utilizados en la descripción de la
calidad.
Una lista de indicadores le permitirá con mayor facilidad un orden de prioridades dado que
muchos
pueden entrar en conflicto con los demás. Por ejemplo, el aumento de las pruebas de un
sistema
experto para asegurar su exactitud aumentará el costo. Decidir cuándo finalizan las pruebas es
generalmente una decisión compleja que involucra los factores de horarios, costos y
requisitos.
Idealmente, tres de estos requisitos deben ser satisfechos. En la práctica, algunos pueden ser
juzgados más importantes que otros y las limitaciones de satisfacer todos los factores se
debilitarán.
Salidas correctas dado una entrada correcta.
Salida completa dado una entrada correcta.
Salida consistente, dada la misma entrada de nuevo.
Confiable para que no falle (a menudo) debido a los errores.
Útil para las personas y, preferiblemente, de fácil uso.
Mantenible.
Mejorable.
Validado para demostrar que satisface necesidades y peticiones del usuario.
Prueba para demostrar exactitud e integridad.
Rentable.
Código reutilizable para otras aplicaciones.
Portable a otros hardwares / software de entorno.
Compatible con otros programas.
Código comprensible.
Preciso.
Degradación elegante en los límites del conocimiento.
Capacidad incorporada con otros idiomas.
Base de conocimiento verificado.
Explicación de instalación.

Tabla 6.1 Algunos Indicadores de Calidad de Software para Sistemas Expertos

6.6 CICLO DE VIDA DEL SISTEMA EXPERTO


Uno de los principales métodos de ingeniería de software es el ciclo de vida. El ciclo de vida del
software es el período de tiempo que comienza con el concepto inicial del software y termina
con su
retiro del uso. En lugar de pensar en el desarrollo y el mantenimiento por separado, el
concepto de
ciclo de vida proporciona una continuidad que une todas las etapas. Planificación para el
mantenimiento y la evolución temprana del ciclo de vida reduce el coste de estas últimas
etapas.
Costos de mantenimiento.
Para el software convencional, el mantenimiento normalmente representa alrededor de 60 a
80 por
ciento de todos los costos de software y es generalmente de dos a cuatro veces el costo de
desarrollo original. Aunque hay poca información sobre el mantenimiento de los sistemas
expertos,
porque son tan nuevas, las cifras probablemente serán peor para los sistemas expertos. Si los
programas convencionales con algoritmos conocidos requieren un mantenimiento tanto,
entonces los
sistemas expertos es probable que requieran un mayor mantenimiento ya que se basan en el
conocimiento tanto que es heurístico y experimental. Sistemas expertos que hacen un montón
de
inferencia bajo incertidumbre debe ser aún más susceptibles a los altos costos de
mantenimiento y
su evolución.
Modelo de Cascada
Una cantidad de diferentes modelos de ciclo de vida se han desarrollado para el software
convencional. El modelo en cascada clásico, familiar para los programadores de software
convencional, fue el original modelo de ciclo de vida y se ilustra en la Figura 6.5 (Boehm 84).
Figura 6.5 El modelo de cascada del ciclo de vida del software
En el modelo de cascada cada etapa termina con la verificación y validación (V & V) la actividad
para
minimizar los problemas en esa etapa. También, observe que las flechas van y vienen una sola
etapa a la vez. Esto representa el desarrollo iterativo de dos etapas adyacentes con el fin de
minimizar el costo en comparación con el más alto costo de la iteración de desarrollo en varias
etapas.
Otro término para el ciclo de vida es el modelo de proceso, debido a que se refiere a dos
aspectos
fundamentales del desarrollo de software:
(1) ¿Qué se debe hacer a continuación?
(2) ¿Cuánto tiempo debe la siguiente etapa en llevarse a cabo?
El modelo de proceso es en realidad un meta-metodología, ya que determina el orden y la
duración
en el que los métodos comunes de software son aplicados. Los métodos comunes de software
de
desarrollo (o metodologías) muestran los métodos específicos para llevar a cabo una etapa
como

Planificación.
Requerimientos.
Adquisición de conocimientos.
Pruebas.
Representación de las etapas de los productos.
Documentación.
Código.
Diagramas.
Modelo Código y corregir
Una serie de modelos de procesos se han utilizado para el desarrollo de software. El primer
"modelo''
es el famoso modelo código y corregir, en el que parte del código está escrito y luego se
corrige
cuando no funciona bien (Boehm 88). Este suele ser el método de elección para los nuevos
estudiantes de programación tanto en la programación convencional y sistemas expertos.
En 1970 las deficiencias en el enfoque de código y corregir eran tan evidentes que el modelo
de
cascada fue desarrollado para proporcionar una metodología sistemática que fue
especialmente útil
para grandes proyectos. Sin embargo, hubo dificultades con el modelo de cascada, ya que
asume
que toda la información necesaria para una etapa era conocida. En la práctica, a menudo no
era
posible escribir los requisitos completos hasta que el prototipo había sido construido. Esto
llevó al
concepto "hacerlo dos veces", en el cual se construyó un prototipo, los requisitos
determinados, y
entonces el sistema final fue construido.
Modelo Incremental
El modelo de cascada incremental es un refinamiento de la cascada y de la norma de arriba
hacia
abajo. La idea básica del desarrollo incremental es el desarrollo de software en incrementos de
capacidad funcional. El modelo incremental se ha utilizado con éxito en grandes proyectos de
software convencional. El modelo incremental es útil también para desarrollo de sistemas
expertos,
en el que la adición de reglas aumenta las capacidades del sistema de asistente a colega y por
último a nivel de expertos. Así, en un sistema experto los incrementos más importantes son de
asistente, a algún conocido, y de colega a experto. Los incrementos menores corresponden a
incrementos de especialización dentro de cada nivel que ofrecen algún aumento significativo.
Un
micro incremento es el cambio en la experiencia mediante la adición o mejoramiento de un
estado
individual.
La principal ventaja del modelo incremental es que los incrementos en capacidad funcional son
más
fáciles de probar, verificar y validar que los productos de las distintas fases en el modelo de
cascada.
Cada incremento funcional puede ser probado, verificado y validado inmediatamente con el
experto
en lugar de tratar de hacer la validación de todo al final. Esto disminuye el costo de la
incorporación
de las correcciones en el sistema. En esencia, el modelo incremental es similar al de un
prototipo
rápido continuo que se extiende sobre todo el desarrollo. Y no sólo un prototipo rápido de las
etapas
iniciales para determinar los requisitos en el enfoque "hacer dos veces", el prototipo en
evolución es
el sistema.
Modelo Espiral
Una forma de visualizar el modelo incremental es una adaptación del modelo espiral
convencional,
como se muestra en la Figura 6.6. Cada circuito de la espiral añade algunas capacidades
funcionales al sistema. La etiqueta de punto final "sistema Entregado" no es realmente el final
de la
espiral. En cambio, una nueva espiral comienza con el mantenimiento y la evolución del
sistema. La
espiral puede ser refinada para especificar con mayor precisión las etapas generales de
adquisición
de conocimientos, de codificación, evaluación y planificación.

Figura 6.6 Un Modelo Espiral de Desarrollo del Sistema Experto.

6.7 UN MODELO DE CICLO DE VIDA DETALLADO


Una modelo de ciclo de vida que ha sido utilizado con éxito en una serie de proyectos de
sistema
experto es el modelo lineal, que se ilustra en la Figura 6.7, una adaptación de Bochsler
(Bochsler
88). Este ciclo de vida se compone de una serie de etapas desde la planificación hasta la
evaluación
del sistema y describe el desarrollo del sistema a un punto en el que sus capacidades
funcionales
serán evaluadas. Después de esto, el ciclo de vida repite esta misma secuencia, desde la
planificación hasta la evaluación del sistema hasta que el sistema se entrega para su uso
rutinario. El
ciclo de vida se utiliza para el posterior mantenimiento y evolución del sistema. Aunque no se
muestra explícitamente, la verificación y validación de proceden en paralelo con las etapas. En
lugar de simplemente arreglar algunos errores, es importante seguir adelante con la misma
secuencia de las etapas para mantener la calidad del sistema experto. Saltarse etapas, incluso
para
arreglar un pequeño error, perjudica la calidad de todo el sistema.
El ciclo de vida muestra que puede ser considerado un circuito del modelo espiral. Cada etapa
consta de tareas. No todas las tareas pueden ser necesarias para una etapa, especialmente
cuando
el sistema entra en mantenimiento y evolución. En cambio, las tareas pretenden servir como
una
combinación de todas las tareas para el ciclo de vida completo, desde el concepto inicial hasta
la
jubilación del software. Las tareas también dependerán del tipo exacto de aplicación en
construcción
y por lo que sólo deben considerarse como una guía, en lugar de requisitos indispensables que
se
deben realizar para cada etapa que se complete.
Este modelo de ciclo de vida se discutirá en detalle para ilustrar los muchos factores que
deben ser
considerados para un sistema experto de gran calidad. Para los pequeños prototipos de tipo
investigación que no están destinados al uso general, no todas las tareas o etapas son
necesarias.
Sin embargo, es increíble la cantidad de software que se desarrolla para uso personal o de
investigación se liberan y son asociados al uso general.
Figura 6.7 El modelo lineal de desarrollo del ciclo de vida del sistema experto

Planificación
El propósito de la etapa de planificación es la de producir un plan de trabajo formal para el
desarrollo
de sistemas expertos. El plan de trabajo es un conjunto de documentos que se utilizarán para
orientar y evaluar el desarrollo. En la Tabla 6.2 se muestran las tareas en esta etapa.
Tarea Objetivos
Evaluación de Viabilidad Determinar si vale la pena construir el sistema y,
de ser así, si la tecnología del sistema experto
debe ser utilizada.
Manejo de los Recursos Evaluar los recursos de las personas, tiempo,
dinero, software y hardware necesario. ¿Cómo
adquirir y gestionar los recursos necesarios?
Organizar las Tareas Especificar las tareas y su orden en las etapas.
Horarios Especificar las fechas de inicio y entrega de
tareas en las etapas.
Diseño Funcional Preliminar Definir lo que el sistema debe lograr mediante la
especificación de las funciones de alto nivel del
sistema. Esta tarea especifica el objetivo del
sistema.
Requerimientos de Alto Nivel Describir en términos de alto nivel cómo el
funcionamiento del sistema se llevará a cabo.
Tabla 6.2 Tareas de la Etapa de Planeamiento

El estudio de viabilidad es la tarea más importante en el ciclo de vida. La evaluación debe


responder
a la pregunta de si el proyecto vale la pena y la pregunta relacionada de si un sistema experto
es el
paradigma adecuado. Las respuestas a estas dos preguntas determinan si el proyecto debe
proceder utilizando un enfoque de sistemas expertos. Muchos factores están involucrados en
el
estudio de viabilidad. Como se discutió en la Sección 6.1 estos factores incluyen la selección de
un
dominio apropiado de los sistemas expertos, el costo, rentabilidad, entre otros.
Definición del conocimiento
El objeto de la etapa de definición del conocimiento es definir los requisitos de conocimiento
del
sistema experto. La etapa de definición de conocimiento consiste en dos tareas principales, a
saber:
Identificación de la fuente del conocimiento y selección.
La adquisición de conocimientos, análisis y extracción.

Cada una de estas tareas principales se compone de otras tareas. La Tabla 6.3 describe las
tareas
de Identificación de la fuente y la selección.
Tarea Objetivo
Identificación de la Fuente Quién y qué son las fuentes de conocimiento, sin
tener en cuenta la disponibilidad.
Fuente Importante Lista prioritaria de fuentes de conocimiento en orden
de importancia para el desarrollo.
Fuente Disponible Listado de fuentes de conocimiento en orden de
disponibilidad. Libros y otros documentos son
generalmente mucho más accesibles que los
expertos humanos.
Selección de la Fuente Seleccionar las fuentes de conocimiento basadas en
la importancia y disponibilidad.
Tabla 6.3 Identificación de la fuente del conocimiento y las tareas de selección

Tareas de adquisición, análisis y extracción se describen en la Tabla 6.4


Tarea Objetivo
Estrategia de Adquisición Especificar cómo el conocimiento se adquiere
mediante métodos de entrevistar a los expertos, la
lectura de documentos, la inducción de reglas, las
redes de repertorio, y así sucesivamente.
Identificación de los
Elementos del
Conocimiento
Seleccionar los conocimientos específicos de las
fuentes que serán de utilidad en esta iteración del
ciclo de vida.
Sistema de Clasificación del
Conocimiento
Clasificar y organizar el conocimiento para ayudar
en la verificación del conocimiento y comprensión
por parte de los desarrolladores. Utilice grupos
jerárquicos siempre que sea posible.
Diseño Funcional Detallado Especificar las capacidades funcionales del sistema
en detalle. Esto está en un nivel más técnico,
mientras que el diseño funcional preliminar es a
nivel gerencial.
Control de Flujo Preliminar Describir las fases generales que el sistema
experto ejecutará. Las fases corresponden a las
reglas lógicas que se activan / desactivan en
grupos para controlar el flujo de ejecución.
Manual de Usuario
Preliminar
Describe el sistema desde el punto de vista del
usuario. Una parte a menudo ignorado, pero
esencial del sistema. Es absolutamente importante
involucrar a los usuarios tan pronto como sea
posible para la retroalimentación. Si ellos no utilizan
el sistema, es inútil.
Especificaciones de los
Requerimientos
Definir exactamente lo que el sistema tiene que
hacer.
El sistema experto será validado utilizando estos
requisitos.
Conocimientos Básicos Base de conocimiento para el sistema. Cualquier
cambio, ahora debe ser realizado por una solicitud
de cambio formal. El conocimiento de alto nivel es
ahora adecuado para la siguiente etapa de diseño
del conocimiento.
Tabla 6.4 Adquisición de conocimientos, análisis y extracción de las tareas
El principal objetivo de la tarea de adquisición de conocimientos, la tarea de análisis del
conocimiento, y la tarea de extracción del conocimiento es para producir y verificar los
conocimientos
requeridos por el sistema. En el momento en que el conocimiento es línea de referencia, este
debe
ser correcto y adecuado para la siguiente etapa de diseño del conocimiento. Además de la
forma
tradicional de entrevistas a expertos, otras técnicas tales como el repertorio de redes o teoría
de
constructos personales podrán ser utilizados para llevar a cabo la adquisición de
conocimientos
automatizados (Boose 84).
Diseño del Conocimiento
El objetivo de la etapa de diseño para producir el conocimiento es el diseño detallado de un
sistema
experto. Hay dos tareas principales que componen esta etapa:
Definición del conocimiento.
Diseño detallado
La Tabla 6.5 se describen las tareas asociadas con la definición del conocimiento.
Tarea Objetivo
Representación del
Conocimiento
Representación del conocimiento. Especificar cómo
el conocimiento se representa, como reglas,
marcos, o lógica. Depende de lo que la herramienta
de sistema experto de apoyo.
Control de Estructura
Detallada
Especificar tres estructuras de control general: (1)
Si el sistema está incrustado en el código de
procedimiento, cómo será llamado. (2) El control de
los grupos relacionados de reglas dentro de un
sistema de ejecución. (3) meta nivel de estructuras
de control de las normas.
Estructura Interna de
Hechos
Especificar la estructura interna de los hechos de
una manera consistente para ayudar en la
comprensión y el buen estilo.
Interfaz de Usuario
Preliminar
Especifique una interfaz de usuario preliminar.
Obtener retroalimentación de los usuarios acerca
de la interfaz.
Plan de Prueba Inicial Especificar cómo el código se pondrá a prueba.
Definir los datos de prueba, los pilotos de pruebas,
y como los resultados de las pruebas serán
analizados.
Tabla 6.5 Tareas de Definición del Conocimiento

Las estructuras internas de hechos descritos en la Tabla 6.5 se discuten con más detalle en los
capítulos de CLIPS. La idea básica de especificar las estructuras de hechos es la adaptación de
un
buen estilo. Por ejemplo, un hecho como el "10" no es muy significativo por sí mismo. ¿Qué
representa el "10"? Si se incluye información adicional con el hecho como "precio es 10" o,
mejor
aún, "el precio del oro es 10", entonces el precio del oro es significativo. Tenga en cuenta que
esta
forma de la realidad es convencional de la forma objeto-atributo-valor, lo que es conveniente
a las
personas para leer y entender. CLIPS apoya esto a través de la construcción deftemplate de las
normas, y también a través de objetos.
En algunos lenguajes de sistemas expertos los campos pueden tener tipos fuertes para que
sólo se
permita ciertos valores, si una norma trata de especificar un valor que no está permitido, el
motor de
inferencia indicará esto como un error, los detalles de la etapa de diseño del conocimiento se
muestra en la tabla 6.6.
El producto de la etapa de diseño detallada es la línea de referencia del documento de diseño
desde
el que se puede proceder la codificación. La línea de referencia del documento de diseño se
somete
a un sistema de conocimientos de revisión del diseño como una revisión final antes de que
comience
la codificación.
Tarea Objetivo
Diseño de la Estructura Especificar cómo el conocimiento está organizado
lógicamente en la base de conocimientos y lo que
hay en la base de conocimientos.
Estrategia de la
Implementación
Especificar cómo el sistema se ejecutará.
Interfaz de Usuario
Detallada
Especificar la interfaz de usuario detallada después
de recibir comentarios de los usuarios desde el
diseño preliminar de la interfaz de usuario.
Especificaciones de Diseño
e Informe
Documentar el diseño.
Plan de Pruebas Detallado Especificar exactamente cómo el código será
probado y verificado.
Tabla 6.6 Tareas detalladas del diseño del conocimiento.

Código y comprobación
La tabla 6.7 describe el código y la etapa de comprobación, el cual comienza la
implementación del
código actual.
Tarea Objetivo
Codificación Implementar la codificación.
Prueba Código de ensayo a partir de datos de prueba,
pilotos de pruebas, y procedimientos de análisis de
pruebas.
Listado de Origen Producir comentarios, código fuente documentado.
Manual de Usuario Producir manual de usuario de trabajo de lo que los
expertos y los usuarios pueden proporcionar
información sobre el sistema.
Guía de Instalación / Uso Documento de instalación / funcionamiento del
sistema para los usuarios.
Documento de Descripción
del Sistema
Documento general del funcionamiento del sistema
experto, las limitaciones y problemas.
Tabla 6.7 Tareas de Codificación y Prueba

Esta etapa termina con la de prueba de revisión de Disponibilidad, que determina si el sistema
experto está listo para la siguiente etapa de la verificación del conocimiento.
Verificación de Conocimientos
El objetivo de la fase de verificación del conocimiento es determinar la exactitud, integridad y
coherencia del sistema. Esta etapa se divide en dos tareas principales:
Pruebas formales.
Prueba de análisis.

La tabla 6.8 describe las tareas de prueba formal de la etapa de verificación del conocimiento.
Tarea Objetivo
Procedimientos de Prueba Implementar Procedimientos formales de prueba
Informes de Ensayo Documentar los Resultados de la Prueba.
Tabla 6.8 Tareas de de prueba formal de la etapa de verificación de conocimientos

Las tareas de la prueba de análisis se muestran en la Tabla 6.9. La prueba de análisis busca los
siguientes problemas principales:
Respuestas incorrectas.
Respuestas incompletas.
Respuestas inconsistentes.
y determina si el problema radica en las reglas, las cadenas de inferencia, la incertidumbre, o
alguna
combinación de estos tres factores. Si el problema no puede ser precisado en el sistema
experto, es
necesario analizar el sistema experto con herramientas de software para los errores.
Tarea Objetivo
Resultado de las
Evaluaciones
Analizar los resultados de las pruebas
Recomendaciones Documentar recomendaciones y conclusiones de
las pruebas
Tabla 6.9 Tareas de pruebas de análisis

Evaluación del Sistema


Como se describe en la Tabla 6.10, la última etapa del ciclo de vida de desarrollo es la etapa de
evaluación del sistema. El propósito de esta etapa es resumir lo que se ha aprendido con las
recomendaciones de mejoras y correcciones.

Tareas Objetivos
Evaluación de Resultados Resumir el resultado de pruebas y verificación
Recomendaciones Recomendar modificaciones en el sistema
Evaluaciones Validar que el sistema es correcto con respecto a
las necesidades del usuario y los requisitos
Informe Previsional o Final Si el sistema está completo, emitir un informe final.
Si no es así, un informe provisional.
Tabla 6.10 Tareas de las Etapas de Evaluación del sistema.

Dado que un sistema experto es generalmente construido en iteraciones, el informe de la


etapa de
evaluación del sistema por lo general será un informe intermedio sobre el aumento de la
funcionalidad del sistema con los nuevos conocimientos añadidos. Sin embargo, la capacidad
del
nuevo sistema debe ser verificado por sí mismo y también como parte de los conocimientos
previos
en el sistema. Es decir, el sistema de verificación debe realizarse en conjunto con todo el
conocimiento del sistema, no sólo los nuevos conocimientos. El sistema experto también debe
validarse cada vez en esta etapa en vez de esperar la iteración final. Sistemas automatizados
para la
validación de las bases de conocimiento también se están investigando (Stachowitz 87).

Fundamentos de sistemas expertos


Es un programa de computación Inteligente que usa el conocimiento y los procedimiento de
inferencia para resolver problemas que son suficientemente difíciles como para requerir
significada experiencia humana para su solución.
Es un software que imita el comportamiento de un experto humano en la solución de un
problema. Pueden almacenar conocimientos de expertos para un campo determinado y
solucionar un problema mediante deducción lógica de conclusiones.
Son SE aquellos programas que se realizan haciendo explicito el conocimiento en ellos, que
tienen información específica de un dominio concreto y que realizan una tarea relativa a este
dominio.
DEFINICION DE SISTEMA EXPERTO
 Programas que contienen tanto conocimiento declarativo (hechos a cerca de objetos,
eventos y/o situaciones) como conocimiento de control (información a cerca de los cursos de
una acción), para emular el proceso de razonamiento de los expertos humanos en un dominio
en particular y/o área de experiencia.
 Programas que manipulan conocimiento codificado para resolver problemas en un
dominio especializado en un dominio que generalmente requiere de experiencia humana.
 Software que incorpora conocimiento de experto sobre un dominio de aplicación
dado, de manera que es capaz de resolver problemas de relativa dificultad y apoyar la toma de
decisiones inteligentes en base a un proceso de razonamiento simbólico.

ARQUITECTURA DE UN SISTEMA EXPERTO


Los componentes principales de un Sistema Experto son:
Base de conocimientos (BC): Contiene conocimiento modelado extraído del diálogo con un
experto.
Base de hechos (Memoria de trabajo): contiene los hechos sobre un problema que se ha
descubierto durante el análisis.
Motor de inferencia: Modela el proceso de razonamiento humano.
Los componentes importantes pero no indispensables de un Sistema Experto son:
Módulo de Adquisición del Conocimiento: A través del cual el responsable del conocimiento
actualiza el conocimiento de la Base de Conocimiento.
Módulos de justificación: Explica el razonamiento utilizado por el sistema para llegar a una
determinada conclusión.
Interfaz de usuario: es la interacción entre el SE y el usuario, y se realiza mediante el lenguaje
natural.
TAXONOMIA DE LOS SISTEMAS EXPERTOS
Existen varias formas de clasificar a los sistemas expertos:
 Por su funcionalidad o propósito: Esta clasificación es de acuerdo con la función que
el sistema experto realiza o el propósito por el cual fue desarrollado.
 Por su estado de evolución: Esta clasificación es de acuerdo con el grado de evolución
que el sistema ha tenido. Es decir, que dependiendo de su propósito, cubrimiento y del
conocimiento que maneja se tiene diversos estados del sistema.
 Por la forma de interacción con el usuario: Esta clasificación se refiere a la forma
como el SBC(Sistemas Basados en el Conocimiento) interactúa con el usuario en términos de
compartir tareas y responsabilidades.
Sus principales aplicaciones se dan en las gestiones empresariales debido a que:
 Casi todas las empresas disponen de un ordenador que realiza las funciones básicas de
tratamiento de la información: contabilidad general, decisiones financieras, gestión de la
tesorería, planificación, etc.
 Este trabajo implica manejar grandes volúmenes de información y realizar operaciones
numéricas para después tomar decisiones. Esto crea un terreno ideal para la implantación de
los SE.
 Además los SE también se aplican en la contabilidad en apartados como: Auditoria(es
el campo en el que más aplicaciones de SE se esta realizando) Fiscalidad, planificación, análisis
financiero y la contabilidad financiera.

 REQUISITOS PARA EL DESARROLLO DE SISTEMAS EXPERTOS


 EL problema puede ser resuelto usando conocimiento y/o experiencia.
 El conocimiento debe ser claro, preciso y bien definido.
 El conocimiento debe ser colocado en forma explícita (conocimiento tácito).
 El conocimiento debe proporcionar soluciones satisfactoria

Anda mungkin juga menyukai