Está en la página 1de 7

Sistemas de desarrollo.

Histricamente, los primeros sistemas basados en conocimiento fueron desarrollados utilizando lenguajes de programacin como LISP y PROLOG. A medida que el desarrollo de sistemas basados en conocimiento iba aumentado en cantidad y complejidad, la comunidad cientfica comenz a buscar formas de desarrollar los sistemas en menor tiempo y con menor esfuerzo. Posteriormente ingresaron al mercado otras herramientas que incorporaron, adems de opciones de representacin del conocimiento, esquemas de inferencia y control. Estas herramientas tomaron el nombre de entornos de desarrollo de Sistemas basados en conocimiento. Es importante tomar en cuenta que el trabajo que estamos desarrollando esta basado principalmente en el lenguaje de programacin PROLOG del cual detallaremos su funcionamiento ms adelante. Los investigadores en Inteligencia Artificial tienen como objetivos principales: Reproduccin automtica del razonamiento humano. Sistemas expertos. Resolucin de problemas. Control automtico. Bases de datos inteligentes. Ingeniera del software (diseos de entornos de programacin inteligente).

Formas de considerar situaciones complejas son: Deduccin, que permite obtener conclusiones de reglas cuyas premisas hemos comprobado. Induccin que produce reglas a partir de observaciones parciales. Estos dos tipos principales pueden utilizarse de un modo analtico (el razonamiento se divide en submdulos que son ms difciles de manejar, o de un modo sinttico (inverso del proceso anterior, juntando elementos que se separaron anteriormente). La induccin puede tener lugar cuando se comparan situaciones que son casi similares, con parmetros desconocidos en una situacin dada asignndole los valores que tienen ya en una situacin de referencia; este es un razonamiento por analoga. Las estrategias para el razonamiento pueden hacer uso de la especializacin, la reduccin al absurdo, de la eliminacin de caminos poco prometedores y de la reduccin de las diferencias.

En todos los casos, la organizacin jerrquica del conocimiento y la segmentacin de los problemas son mtodos que se emplean siempre al intentar resolver un problema complejo. La funcin asignada a los sistemas expertos es la de razonar.

Lenguajes de programacin.
Imperativos. Procesamiento secuencial de instrucciones, que actan sobre variables y tienen entrada/salida, otra caracterstica de estos lenguajes es la abstraccin procedimental. Ejemplos: PASCAL, C/C++. Funcionales. Estos lenguajes poseen una coleccin de funciones matemticas cada una con su dominio e imagen que pueden interactuar entre ellas y combinarse mediante: condicionales, recursividad y composicin funcional. Ejemplo: LISP. Declarativos. Especifican su conocimiento del dominio y las formas que conoce para manipularlo (cmo resolverlo) en un lenguaje de la lgica; un motor de inferencia resolver el problema (si puede) y obtendr las soluciones posibles. Ejemplos: Prolog, CHIP, OPS5. Orientados a objetos. Los objetos con operadores se comunican entre s mediante mensajes para resolver problemas adems existen conceptos de herencia y polimorfismo. Ejemplos: SmallTalk, Hypercard, CLOS. Tradicionalmente LISP y Prolog han sido los lenguajes que se han utilizado para la programacin de sistemas expertos a travs de la inteligencia artificial. Estos lenguajes ofrecen caractersticas especialmente diseadas para manejar problemas generalmente encontrados en Inteligencia Artificial. Por este motivo se los conoce como lenguajes de inteligencia artificial. Una de las principales caractersticas que comparten los lenguajes LISP y Prolog, como consecuencia de su respectiva estructura, es que pueden ser utilizados para escribir programas capaces de examinar a otros programas, incluyendo a ellos mismos. Esta capacidad se requiere, por ejemplo, para hacer que el programa explique sus conclusiones. Esto slo puede hacerse si el programa tiene la capacidad de examinar su propio modo de operacin. A continuacin detallamos los principales lenguajes de Inteligencia Artificial: LISP. Su nombre se deriva de List Processor. LISP fue el primer lenguaje para procesamiento simblico. John McCarthy lo desarroll en 1958, en el Instituto de Tecnologa de Massachusetts (MIT), inicialmente como un lenguaje de programacin con el cual los investigadores pudieran implementar eficientemente programas de computadora capaces de razonar.

Rpidamente LISP se hizo popular por su capacidad de manipular smbolos y fue escogido para el desarrollo de muchos sistemas de Inteligencia Artificial. Actualmente, LISP es utilizado en varios dominios que incluyen la escritura de compiladores, sistemas para diseo VLSI, sistemas para diseo mecnico asistido por computadora (AUTOCAD), animaciones grficas y sistemas basados en conocimiento. Lisp es un lenguaje capaz de trabajar con expresiones simblicas (tomos o listas), todo en Lisp son expresiones simblicas, desde la definicin de funciones hasta el almacenamiento de los datos. Prolog. Programming in Logic (Prolog), es otro de los lenguajes de programacin ampliamente utilizados en Inteligencia Artificial. Prolog fue desarrollado en Francia, en 1973 por Alain Colmenauer y su equipo de investigacin en la Universidad de Marseilles. Inicialmente fue utilizado para el procesamiento de lenguaje natural, pero posteriormente se populariz entre los desarrolladores de aplicaciones de Inteligencia Artificial por su capacidad de manipulacin simblica. Utilizando los resultados del grupo francs, Robert Kowalski de la Universidad de Edimburgo, en Escocia, desarroll la teora de la programacin lgica. La sintaxis propuesta por Edimburgo, se considera el estndar de facto del Prolog. A partir de 1981 tuvo una importante difusin en todo el mundo, especialmente porque los japoneses decidieron utilizar Prolog para el desarrollo de sus sistemas de computacin de quinta generacin. Actualmente existen varios dialectos del Prolog para diferentes plataformas. OPS5. Official Production System 5 (OPS5), es un lenguaje para ingeniera cognoscitiva que soporta el mtodo de representacin del conocimiento en forma de reglas. Incorpora un mdulo unificador, un intrprete que incluye un mecanismo de encadenamiento progresivo, y herramientas para edicin y depuracin de los programas. OPS5 es un miembro de la familia de lenguajes de programacin desarrollados en la Universidad Carnegie - Mellon. Varias compaas han desarrollado implementaciones comerciales de OPS5, para diferentes plataformas. 1.1.1.1. Ventajas y Desventajas entre Prolog y Lisp

Prolog es un lenguaje utilizado para implementar inteligencia artificial y sistemas expertos. Gran parte de su xito se debe a su conveniencia por ser cdigo abierto (modificable) y se obtiene fcilmente en internet, adems de su capacidad de deduccin de respuestas para las consultas realizadas, Prolog es un lenguaje simple y fcil de programar, hasta para principiantes, pero sus motores de inferencia no siempre son eficientes. Sus aplicaciones varan desde sistemas ambientales hasta la resolucin de funciones automatizadas.

Una de las caractersticas que hacen de Prolog un lenguaje de gran inters es su reducido nmero de mecanismos de soporte, entre los que se encuentran el reconocimiento de patrones, la unificacin, el reintento ("backtracking"), el manejo de listas y de estructuras de datos flexibles, as como la recursividad. Adicionalmente, tal como lo ofrece el lenguaje de programacin LISP, Prolog incluye estructuras de listas dinmicas que le dan gran podero y flexibilidad; en ellas se puede hacer referencia explcita a un elemento de una lista o al resto de ella (cola). Por ejemplo: miembro(Elemento,[Elemento | _]). miembro(Elemento,[ _ |Lista]):-miembro(Elemento,Lista). La regla verifica si Elemento es parte de una lista o no. Prolog permite definiciones recursivas (p.ej., como la de miembro) y estructuras de datos que, al igual que en el caso de LISP, corresponden a una notacin uniforme con los programas; lo que permite que un programa se modifique a s mismo durante el proceso de ejecucin y que genere como resultado un comportamiento no determinstico, es decir que no siempre genere los mismos resultados ante las mismas entradas. Ahora especificamos ms detalladamente el porqu utilizar el lenguaje de programaron Prolog y no en el lenguaje de programacin. Ventajas: La habilidad de PROLOG para calcular de forma procedural es una de las ventajas especficas que tiene el lenguaje. Como consecuencia esto anima al programador a considerar el significado declarativo de los programas de forma relativamente independiente de su significado procedural. Es decir, las ventajas de la forma declarativa de este lenguaje son claras (es ms fcil pensar las soluciones y muchos detalles procedurales son resueltos automticamente por el propio lenguaje) y podemos aprovecharlas. Una ventaja desde el punto de vista del usuario es la facilidad para programar ya que se pueden escribir programas rpidamente, con pocos errores originando programas claramente legibles, aun si no se conoce muy bien el lenguaje. No hay que pensar demasiado en la solucin del problema, ya que Prolog infiere sus respuestas basndose en las reglas declaradas dentro del programa. Modularidad: cada predicado (procedimiento) puede ser ejecutado, validado y examinado independiente e individualmente. Prolog no tiene variables globales,

ni asignacin. Cada relacin est auto contenida, lo que permite una mayor modularidad, portabilidad y reusabilidad de relaciones entre programas. Polimorfismo: se trata de un lenguaje de programacin sin tipos, lo que permite un alto nivel de abstraccin e independencia de los datos (objetos). En Prolog, se puede representar incluso los mismos programas Prolog como estructuras. Prolog utiliza un mecanismo de bsqueda independiente de la base de hechos. Aunque pueda parecer algo retorcido, es una buena estrategia puesto que garantiza el proceso de todas las posibilidades. Es til para el programador conocer dicho mecanismo a la hora de depurar y optimizar los programas. Manejo dinmico y automtico de memoria. En prolog se utiliza notacin prefija e infija mientras que en Lisp solo utiliza notacin prefija. Desventajas: La resolucin automtica no siempre es eficiente, por lo que eventualmente se podra dar una respuesta incorrecta a una consulta. Lisp usa una sintaxis basada totalmente en parntesis no teniendo necesidad de complejas reglas como en Prolog. En Lisp los programas se construyen apartir de la composicin de funciones. Ciertos problemas estn ligados a la representacin del conocimiento, que Prolog no posee. Prolog algunas veces es incapaz de reconocer que un problema es (para su propio conocimiento) inaplicable o insuficiente. Si el programa no contiene suficiente informacin para contestar una consulta, es incapaz de reconocerlo y responde no. En esta situacin sera ms eficiente conocer que la respuesta no es negativa, sino que no es posible inferir un resultado. Lisp es adecuado para la inteligencia artificial ya que el cdigo y los datos se tratan de la misma forma (como listas) siendo sencillo escribir programas capaces de escribir otros programas, en Prolog no se pueden tratar igual. Los motores de inferencia poseen algunos lmites.

Tipos de Sistemas Expertos.


Principalmente existen tres tipos de sistemas expertos: 1) Basados en reglas. Estos tipos de sistemas trabajan mediante la aplicacin de reglas y la comparacin de resultados. Tambin pueden trabajar por inferencia lgica dirigida, bien empezando con una evidencia inicial en una determinada situacin y dirigindose hacia la obtencin de una solucin, o bien con hiptesis sobre las posibles soluciones y volviendo hacia atrs para encontrar una evidencia existente (o una deduccin de una evidencia existente) que apoye una hiptesis en particular. 2) Basados en casos o CBR (Case Based Reasoning). El Razonamiento basado en casos fue formalizado en cuatro pasos con el propsito de ser utilizado en razonamiento de computadora. Recordar. Dado un determinado problema, recordar los casos relevantes que pueden solucionarlo. Un caso consiste en un problema, una solucin y tpicamente anotaciones sobre como la solucin fue llevada a cabo. Por ejemplo, supongamos que Ramiro quiere preparar crepes (panqueques) de dulce de leche siendo un cocinero novato. Y la experiencia ms relevante que l puede recordar es aquella en la cual tuvo xito una vez preparando unos crepes con crema. El conocimiento de Ramiro est basado en el procedimiento que utiliz para hacer los crepes correctamente, en conjunto con las decisiones que l haya tomado en la elaboracin de los mismos. Reutilizar. Adaptar la solucin del problema anterior a este nuevo. En el ejemplo anterior, Ramiro deber adaptar el problema, sacando la crema y reemplazndola por dulce de leche. Revisar. Una vez adaptado el problema probar la solucin en el mundo real o en una simulacin y si es necesario revisarla. Continuando con el ejemplo anterior supongamos que Ramiro rellena con dulce el crepe una vez que est servido pero el dulce no se esparce bien y enfra el crepe, siendo este un efecto no deseado. Al revisar nuevamente encuentra como solucin colocar el dulce de leche cuando el crepe an est en la sartn, as se calentar y esparcir mejor. Retener. Despus de que la solucin ha sido adaptada satisfactoriamente para solucionar el problema dado, almacenar la experiencia resultante como un nuevo caso en la memoria. En nuestro ejemplo Ramiro almacena en su memoria esta experiencia enriqueciendo el conjunto de casos, de esta manera har cada vez mejor los crepes.

3) Basados en redes bayesianas Una red bayesiana es un modelo probabilstico multivariado que relaciona un conjunto de variables aleatorias mediante un grafo. Gracias a su motor de actualizacin de probabilidades, las redes bayesianas son una herramienta extremadamente til en la estimacin de probabilidades ante nuevas evidencias. En cada uno de los tipos de Sistemas Expertos mencionados anteriormente, la solucin a un problema planteado se obtiene de la siguiente forma: Aplicando reglas heursticas apoyadas generalmente en lgica difusa para su evaluacin y aplicacin. Aplicando el razonamiento basado en casos, donde la solucin a un problema similar planteado con anterioridad se adapta al nuevo problema. Aplicando redes bayesianas, basadas en estadstica y en el teorema de Bayes.

También podría gustarte