Estos objetos están relacionados de tal forma que un barco a vela tiene todas las cualidades de un barco, y además todas las cualidades específicas de un barco a vela. Todas las cualidades de un barco, por ejemplo: Desplazamiento sobre el agua, viene descrita con el "barco".
A través de la relación formulada, el barco a vela "hereda" estas cualidades, de forma que sólo hará falta describir sus cualidades particulares.
Este tipo de programación se define como programación orientada a objetos y se utiliza con frecuencia en el desarrollo de los Sistemas Expertos. Puede darse el caso de que determinados procesos y funciones deban subordinarse a unos objetos en particular, por ejemplo la velocidad como función de la fuerza y la dirección del viento. La velocidad se determinará en función de los datos particulares.
Junto a estos objetos, la base de conocimientos dispone de reglas.
Estas reglas se representan en forma de:
Si "premisas" Entonces "Conclusión y/o Acción".
En la zona de las premisas se solicitan vinculaciones lógicas referentes a las cualidades de los objetos.
En la zona de la conclusión se añaden nuevos hechos y cualidades a la base de conocimientos y/o se ejecutan acciones. Esto se define a menudo como programación orientada a reglas.
Ahora bien, se plantean muchas preguntas para realizar esta labor, como por ejemplo:
¿Qué objetos serán definidos?
¿Cómo son las relaciones entre los objetos?
¿Cómo se formularán y procesarán las reglas?
¿La base de conocimientos hace totalmente referencia a la solución del problema?
¿La base de conocimientos es consistente?
Las respuestas a estas preguntas son el trabajo del Ingeniero del conocimiento junto con la colaboración de los expertos.
* El Mecanismo de Inferencia
Es la unidad lógica con la que se extraen conclusiones de la base de conocimientos, según un método fijo de solución de problemas que esta configurado imitando el procedimiento humano de los expertos para solucionar problemas.
Una conclusión se produce mediante aplicación de las reglas sobre los hechos presentes.
En un Sistema Experto existirá un hecho sólo cuando esté contenido en la base de conocimientos.
Los hechos que constan en la cláusula "si" se llaman premisas, y el contenido en la cláusula "entonces" se llama conclusión. Cuando se aplica una regla sobre algunos hechos cualesquiera se dice que se dispara.
El disparo de una regla provoca la inserción del nuevo hecho en la base de conocimientos.
Las funciones del mecanismo de inferencia son:
Determinación de las acciones que tendrán lugar, el orden en que lo harán y cómo lo harán entre las diferentes partes del Sistema Experto.
Determinar cómo y cuándo se procesarán las reglas, y dado el caso también la elección de qué reglas deberán procesarse.
Control del diálogo con el usuario.
La decisión sobre los mecanismos de procesamiento de reglas, es decir, qué estrategias de búsqueda se implementarán, es de vital importancia para la efectividad del sistema en su conjunto.
Ante problemas o clases de problemas distintos se estructuran, como es lógico, diferentes mecanismos de inferencia.
El mecanismo de inferencia debe de estar "adaptado" al problema a solucionar.
Una imposición de dinero exige, bajo ciertas circunstancias, una estrategia distinta de procesamiento del conocimiento que un diagnóstico de fallos de máquina.
* El Componente Explicativo
Las soluciones descubiertas por los expertos deber poder ser repetibles tanto por el ingeniero del conocimiento en la fase de comprobación así como por el usuario. La exactitud de los resultados sólo podrá ser controlada, naturalmente, por los expertos.
Siempre es deseable que durante el trabajo de desarrollo del sistema se conozca el grado de progreso en el procesamiento del problema. Como os he dicho en anterioridad pueden surgir unas preguntas como las siguientes:
¿Qué preguntas se plantean y por qué?
¿Cómo ha llegado el sistema a soluciones intermedias?
¿Qué cualidades tienen los distintos objetos?
A pesar de insistir sobre la importancia del componente explicativo es muy difícil y hasta ahora no se han conseguido cumplir todos los requisitos de un buen componente explicativo. Muchos representan el progreso de la consulta al sistema de forma gráfica.
Además los componentes explicativos intentan justificar su función rastreando hacia atrás el camino de la solución. Aunque encontrar la forma de representar finalmente en un texto lo suficientemente inteligible las relaciones encontradas depara las mayores dificultades.
Los componentes explicativos pueden ser suficientes para el ingeniero del conocimiento, ya que está muy familiarizado con el entorno del procesamiento de datos, y a veces bastan también para el experto; pero para el usuario, que a menudo desconoce las sutilezas del procesamiento de datos, los componentes explicativos existentes son todavía poco satisfactorios.
* La Interface de Usuario
En este componente es la forma en la que el sistema se presentará ante el usuario. Acá surgen dudas y preguntas como por ejemplo:
¿Cómo debe responder el usuario a las preguntas planteadas?
¿Cómo saldrán las respuestas del sistema a las preguntas que se le planteen?
¿Qué informaciones se representarán de forma gráfica?
Los requisitos o características de la interface que presentaremos al usuario se resumirán en cuatro, que son las más importantes y las más a tener en cuenta al desarrollar el sistema:
El aprendizaje del manejo debe ser rápido. El usuario no debe dedicar mucho tiempo al manejo del sistema, debe ser intuitivo, fácil en su manejo.
Debe evitarse en lo posible la entrada de datos errónea. Ejemplo: Cuando nosotros acudimos a un médico, le contamos y detallamos nuestros sintomas y él con sus preguntas junto con nuestras respuestas nos diagnostica nuestra "enfermedad", si le decimos sintomas erroneos, el tratamiento no será el adecuado.
Los resultados deben presentarse en una forma clara para el usuario. Los resultados deben ser claros y concisos para que no resulten inutiles.
Las preguntas y explicaciones deben ser comprensibles.
* El Componente de Adquisición
Un buen componente de adquisición ayudará considerablemente la labor del Ingeniero del Conocimiento. Este puede concentrarse principalmente en la estructuración del conocimiento sin tener que dedicar tanto tiempo en la actividad de programación.
Requisitos o caracteristicas del componente de adquisición:
El conocimiento, es decir, las reglas, los hechos, las relaciones entre los hechos, etc., debe poder introducirse de la forma más sencilla posible.
Posibilidades de representación clara de todas las informaciones contenidas en una base de conocimientos.
Comprobación automática de la sintaxis.
Posibilidad constante de acceso al lenguaje de programación.
Cómo se pone en práctica cada uno de los requisitos dependerá del lenguaje de programación elegido y del hardware que tengamos. El experto deberá estar algo familiarizado con el componente de adquisición para poder realizar modificaciones por sí sólo.
Desarrollo de los Sistemas Expertos
Equipo de desarrollo: Las personas que componen un grupo, como en todos los ámbitos deben cumplir unas características y cada uno de ellos dentro del equipo desarrolla un papel distinto.
Componentes del equipo dentro del desarrollo y cuál es la función de cada uno:
a. El experto: La función del experto es la de poner sus conocimientos especializados a disposición del Sistema Experto.
b. El ingeniero del conocimiento: El ingeniero que plantea las preguntas al experto, estructura sus conocimientos y los implementa en la base de conocimientos.
c. El usuario: El usuario aporta sus deseos y sus ideas, determinado especialmente el escenario en el que debe aplicarse el Sistema Experto
En el desarrollo del Sistema Experto, el ingeniero del conocimiento y el experto trabajan muy unidos. El primer paso consiste en elaborar los problemas que deben ser resueltos por el sistema. Precisamente en la primera fase de un proyecto es de vital importancia determinar correctamente el ámbito estrechamente delimitado de trabajo. Aquí se incluye ya el usuario posterior, o un representante del grupo de usuarios. Para la aceptación, y en consecuencia para el éxito, es de vital y suma importancia tener en cuenta los deseos y las ideas del usuario.
Métodos auxiliares en el desarrollo:
La eficiencia en la creación de Sistemas Expertos puede aumentarse en gran medida con la aplicación de Shells.
Un Shell (de forma resumida) es un Sistema Experto que contiene una base de conocimientos vacía. Existe el mecanismo de inferencia, el componente explicativo y a veces también la interface de usuario.
No existe ningún Shell para todas las aplicaciones, sino que hay que buscar un Shell para cada aplicación. A menudo, el Shell contiene Frames. Estos son marcos previamente preparados, en los que, por ejemplo, sólo se introduce en nombre del objeto, sus cualidades y los correspondientes valores.
Construcción de prototipos
En el desarrollo de Sistemas Expertos se plantean dos importantes riesgos:
No existen implementaciones similares que puedan servir de orientación al encargado del desarrollo en la casi totalidad de los casos.
En muchos puntos, los requisitos necesarios están esbozados con muy poca precisión.
El diseño y la especificación requieren una temprana determinación de la interface del software y de la funcionalidad de los componentes. En el desarrollo de Sistemas Expertos deben alterarse a menudo durante y también después de su implementación, ya que los requisitos se han ido configurando y han obtenido mayor precisión, o porque se ha descubierto que deben iniciarse otras vías de solución. Durante el desarrollo, resulta más apropiado empezar con implementaciones tipo test para encontrar el camino hacia una solución definitiva y para hacerlas coincidir con las necesidades del usuario.
Un método efectivo es la implementación de un prototipo de Sistema Experto que permita llevar a cabo las funciones más importantes de éste, aunque con un esfuerzo de desarrollo considerablemente inferior al de una implementación convencional. Este proceder se define bajo el nombre de "Rapid Prototyping".
Campos de aplicación:
La aplicación de Sistemas Expertos será adecuada allí donde los expertos dispongan de conocimientos complejos en un área muy delimitada, donde no existan algoritmos ya establecidos (o donde los existentes no puedan solucionar algunos problemas).
Otro campo de aplicación es allí donde encontremos teorías que resulten prácticamente imposibles de analizar todos los casos teóricamente imaginables mediante algoritmos y en un espacio de tiempo relativamente corto y razonable.
Los Sistemas Expertos ofrecen ayuda para:
I. Evitar fallos en labores rutinarias complejas
II. Ampliar de forma más rápida los conocimientos de los especialistas.
III. Diagnosticar los fallos con mayor rapidez y conseguir tareas de planificación más completas y consistentes.
Ejemplos de Sistemas Expertos
1- MYCIN: Sistema Experto para diagnósticos médicos.
2- XCON: Sistema Experto para configuración de Ordenadores.
MYCIN es un Sistema Experto para la realización de diagnósticos iniciado por Ed Feigenbaum y posteriormente desarrollados por E.Shortliffe. Su función es la de aconsejar a los médicos en la investigación y determinación de diagnósticos en el campo de las enfermedades infecciosas de la sangre. El sistema MYCIN, al ser consultado por el médico, solicita primero datos generales sobre el paciente: nombre, edad, síntomas, etc. Una vez conocida esta información por parte del sistema, el Sistema Experto plantea unas hipótesis. Para poder verificarlas comprueba primero la exactitud de las premisas de la reglas. Esto se realiza mediante una búsqueda de enunciados correspondientes en la base de conocimientos. Estos enunciados pueden a su vez estar de nuevo en la parte de consulta de otra regla. También lo realiza mediante determinadas preguntas al usuario. Aquí se hacen preguntas del tipo: ¿Se ha practicado en el paciente algún tipo de intervención quirúrgica? Con las respuestas que recibe, el MYCIN verifica o rechaza las hipótesis planteadas. Una serie de tests han demostrado que MYCIN trabaja igual de bien que un médico.
XCON es un Sistema Experto para configuraciones desarrollado por la Digital Equipment Corporation. Según los deseos individuales del cliente se configuran redes de ordenadores VAX. Ya que el abanico de productos que se ofrecen en el mercado es muy amplio, la configuración completa y correcta de un sistema de estas características es un problema de gran complejidad.
Las funciones de este Sistema Experto son las siguientes:
¿Pueden conjugarse los componentes solicitados por el cliente de forma conveniente y razonable?
¿Los componentes de sistema especificados son compatibles y completos?
Las respuestas a estas preguntas son muy detalladas. XCON es capaz de comprobar y completar los pedidos entrantes mucho más rápido y mejor que las personas encargadas hasta ahora de esa labor.
ROBÓTICA
La 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. Las ciencias y tecnologías de las que deriva podrían ser: El álgebra, los autómatas programables, las máquinas de estados, la mecánica o la informática.
Los robots es un avance tecnologico que hoy en dia se lleva acabo y no se save hasta donde el hombre va apoder llegar para satisfacer sus necesidades, los robots son mitad hombre (ser humano) y mitad robots. Los materiales que se utilizaban se encontraban al alcance de todo el mundo, esto es, utilizaban maderas resistentes, metales como el cobre y cualquier otro material moldeable, esto es, que no necesitara o requiriera de algún tipo de transformación para poder ser utilizado en la creación de los autómatas.
Estos primeros autómatas utilizaban, principalmente, la fuerza bruta para poder realizar sus movimientos. A las primeras maquinas herramientas que ayudaron al hombre a facilitarle su trabajo no se les daba el nombre de autómata, sino más bien se les reconocía como artefactos o simples maquinas.
Tres Leyes de la Robótica son:
1. Un robot no puede actuar contra un ser humano o, mediante la inacción, que un ser humano sufra daños.
2. Un robot debe de obedecer las ordenes dadas por los seres humanos, salvo que estén en conflictos con la primera ley.
3. Un robot debe proteger su propia existencia, a no ser que esté en conflicto con las dos primeras leyes.
Robots: Un robot puede ser descompuesto en un conjunto de subsistemas funcionales: procesos, planeación, control, sensores, sistemas eléctricos, y sistemas mecánicos. El subsistema de Software es una parte implícita de los subsistemas de sensores, planeación, y control; que integra todos los subsistemas como un todo.
Clasificación de los robots
La potencia del software en el controlador determina la utilidad y flexibilidad del robot dentro de las limitantes del diseño mecánico y la capacidad de los sensores. Los robots han sido clasificados de acuerdo a su generación, a su nivel de inteligencia, a su nivel de control, y a su nivel de lenguaje de programación. Éstas clasificaciones reflejan la potencia del software en el controlador, en particular, la sofisticada interacción de los sensores. La generación de un robot se determina por el orden histórico de desarrollos en la robótica. Cinco generaciones son normalmente asignadas a los robots industriales. La tercera generación es utilizada en la industria, la cuarta se desarrolla en los laboratorios de investigación, y la quinta generación es un gran sueño.
1.- Robots Play-back, los cuales regeneran una secuencia de instrucciones grabadas, como un robot utilizado en recubrimiento por spray o soldadura por arco. Estos robots comúnmente tienen un control de lazo abierto.
2.- Robots controlados por sensores, estos tienen un control en lazo cerrado de movimientos manipulados, y hacen decisiones basados en datos obtenidos por sensores.
3.- Robots controlados por visión, donde los robots pueden manipular un objeto al utilizar información desde un sistema de visión.
4.- Robots controlados adaptablemente, donde los robots pueden automáticamente reprogramar sus acciones sobre la base de los datos obtenidos por los sensores.
5.- Robots con inteligencia artificial, donde las robots utilizan las técnicas de inteligencia artificial para hacer sus propias decisiones y resolver problemas.
La Asociación de Robots Japonesa (JIRA) ha clasificado a los robots dentro de seis clases sobre la base de su nivel de inteligencia:
1.- Dispositivos de manejo manual, controlados por una persona.
2.- Robots de secuencia arreglada.
3.- Robots de secuencia variable, donde un operador puede modificar la secuencia fácilmente.
4.- Robots regeneradores, donde el operador humano conduce el robot a través de la tarea.
5.- Robots de control numérico, donde el operador alimenta la programación del movimiento, hasta que se enseñe manualmente la tarea.
6.- Robots inteligentes, los cuales pueden entender e interactuar con cambios en el medio ambiente.
Los programas en el controlador del robot pueden ser agrupados de acuerdo al nivel de control que realizan.
1.- Nivel de inteligencia artificial, donde el programa aceptará un comando como "levantar el producto" y descomponerlo dentro de una secuencia de comandos de bajo nivel basados en un modelo estratégico de las tareas.
2.- Nivel de modo de control, donde los movimientos del sistema son modelados, para lo que se incluye la interacción dinámica entre los diferentes mecanismos, trayectorias planeadas, y los puntos de asignación seleccionados.
3.- Niveles de servosistemas, donde los actuadores controlan los parámetros de los mecanismos con el uso de una retroalimentación interna de los datos obtenidos por los sensores, y la ruta es modificada sobre la base de los datos que se obtienen de sensores externos. Todas las detecciones de fallas y mecanismos de corrección son implementadas en este nivel.
En la clasificación final se considerara el nivel del lenguaje de programación. La clave para una aplicación efectiva de los robots para una amplia variedad de tareas, es el desarrollo de lenguajes de alto nivel. Existen muchos sistemas de programación de robots, aunque la mayoría del software más avanzado se encuentra en los laboratorios de investigación. Los sistemas de programación de robots caen dentro de tres clases :
1.- Sistemas guiados, en el cual el usuario conduce el robot a través de los movimientos a ser realizados.
2.- Sistemas de programación de nivel-robot, en los cuales el usuario escribe un programa de computadora al especificar el movimiento y el sensado.
3.- Sistemas de programación de nivel-tarea, en el cual el usuario especifica la operación por sus acciones sobre los objetos que el robot manipula.
Aplicaciones
Los robots son utilizados en una diversidad de aplicaciones, desde robots tortugas en los salones de clases, robots soldadores en la industria automotriz, hasta brazos teleoperados en el transbordador espacial.
Cada robot lleva consigo su problemática propia y sus soluciones afines; no obstante que mucha gente considera que la automatización de procesos a través de robots está en sus inicios, es un hecho innegable que la introducción de la tecnología robótica en la industria, ya ha causado un gran impacto. En este sentido la industria Automotriz desempeña un papel preponderante.
Es necesario hacer mención de los problemas de tipo social, económicos e incluso político, que puede generar una mala orientación de robotización de la industria. Se hace indispensable que la planificación de los recursos humanos, tecnológicos y financieros se realice de una manera inteligente.
Por el contrario la Robótica contribuirá en gran medida al incremento de el empleo. ¿Pero, como se puede hacer esto? al automatizar los procesos en máquinas más flexibles, reduce el costo de maquinaria, y se produce una variedad de productos sin necesidad de realizar cambios importantes en la forma de fabricación de los mismo. Esto originara una gran cantidad de empresas familiares (Micro y pequeñas empresas ) lo que provoca la descentralización de la industria.
Conclusión
Sin lugar a duda son un gran avance dentro del campo tecnológico de la humanidad; hace muchos años, las personas no hubieran imaginado la importancia de la inteligencia artificial y la ayuda computarizada a través de sistemas expertos.
Pero hoy en día son de vital importancia, y en un futuro serán estrictamente necesarios, debido a su capacidad de almacenamiento de experiencia y conocimientos que pueden ser adquiridos rápidamente y no requiere, como en el caso de los humanos del paso de los años para obtenerla.
La informática y la robótica le han dado al hombre la oportunidad del rápido acceso a conocimientos que sin ellos tardaría años en obtener, debido a la capacidad de aprendizaje veloz de los software, creados en los sistemas expertos.
Dentro de algunos años, esta tecnología será aplicada en todas las ramas de la sociedad (aún más que en la actualidad) permitiendo al hombre luchar contra el tiempo en el área de conocimientos, a pesar de las muy discutidas desventajas que suelen imputárseles, como el reemplazo de los recursos humanos; muy al contrario de la opinión de los expertos.
Autor:
Elizabeth C.
UDO – Núcleo Anzoátegui
2005
Página anterior | Volver al principio del trabajo | Página siguiente |