sábado, 17 de noviembre de 2018

CONCLUSIÓN

CONCLUSIÓN 

PROLOG es un  lenguaje de programación lógico e interpretado usado habitualmente en el campo de la Inteligencia artificial.
Prolog permite describir estructuras de datos,  sus relaciones y objetivos por ser un lenguaje declarativo; y el proceso por el cual ejecuta las tareas no se establece de forma explícita en el programa sino que se determina por el  proceso de traducción del lenguaje. Lenguaje Prolog tiene una estructura de programación orientada a dar soluciones a  problemas del  área de aplicación de la Inteligencia Artificial mediante estructuras de programación orientadas a la  resolución de problemas de una manera no-clásica. 
Siendo la Informática una ciencia que busca brindar soluciones al problema de  procesamiento de información para la toma de decisiones, en el momento temporal de la historia que nos toca vivir, los Sistemas Inteligentes van ganando terreno día a día en esta Sociedad de Información, cada vez más tecnificada y dependiente.











BIBLIOGRAFÍAS 


PROLOG (LENGUAJE DE PROGRAMACION)


 

Prolog (Lenguaje De Programación)



Prolog (o PROLOG), proveniente del francés PROgrammation en LOGique, es un lenguaje de programación lógico e interpretado usado habitualmente en el campo de la Inteligencia artificial.
Lenguaje de programación lógico e interpretado (Prolog). La programación lógica es un paradigma de los lenguajes de programación en el cual los programas se consideran como una serie de aserciones lógicas. De esta forma, el conocimiento se representa mediante reglas, tratándose de sistemas declarativos

Antecedentes


Se trata de un lenguaje de programación ideado a principios de los años 70 en la Universidad de Aix-Marseille I (Marsella, Francia) por los estudiantes Alain Colmerauer y Philippe Roussel. Nació de un proyecto que no tenía como objetivo la traducción de un lenguaje de programación, sino la clasificación algorítmica de lenguajes naturales. Alain Colmerauer y Robert Pasero trabajaban en la parte del procesado del lenguaje natural y Jean Trudel y Philippe Roussel en la parte de deducción e inferencia del sistema. Interesado por el método de resolución SL, Trudel persuadió a Robert Kowalski para que se uniera al proyecto, dando lugar a una versión preliminar del lenguaje Prolog a finales de 1971 y apareciendo la versión definitiva en 1972.​ Esta primera versión de Prolog fue programada en ALGOL W.
Inicialmente se trataba de un lenguaje totalmente interpretado hasta que, en 1983, David H.D. Warren desarrolló un compilador capaz de traducir Prolog en un conjunto de instrucciones de una máquina abstracta denominada Warren Abstract Machine, o abreviadamente, WAM. Desde entonces Prolog es un lenguaje semi-interpretado.
Si bien en un principio se trataba de un lenguaje de uso reducido, la aparición de intérpretes del mismo para microordenadores de 8 bits (ej: micro-PROLOG) y para ordenadores domésticos de 16 bits (ej: Turbo Prolog de Borland, entre otros muchos) a lo largo de la década de 1980 contribuyó notablemente a su popularización.4​ Otro importante factor en su difusión fue la adopción del mismo para el desarrollo del proyecto de la quinta generación de computadoras a principios de la década de los 80,5​en cuyo contexto se desarrolló la implementación paralelizada del lenguaje llamada KL1 y del que deriva parte del desarrollo moderno de Prolog.
Las primeras versiones del lenguaje diferían, en sus diferentes implementaciones, en muchos aspectos de sus sintaxis, empleándose mayormente como forma normalizada el dialecto propuesto por la Universidad de Edimburgo,6​ hasta que en 1995 se estableció un estándar ISO (ISO/IEC 13211-1), llamado ISO-Prolog.
Prolog se enmarca en el paradigma de los lenguajes lógicos y declarativos, lo que lo diferencia enormemente de otros lenguajes más populares tales como Fortran, Pascal, C o Java.
Si bien en un principio se trataba de un lenguaje de uso reducido, la aparición de intérpretes del mismo para microordenadores de 8 bits (ej: micro-PROLOG) y para ordenadores domésticos de 16 bits (ej: Turbo PROLOG de Borland, entre otros muchos) a lo largo de la década de 1980 contribuyó notablemente a su popularización.Otro importante factor en su difusión fue la adopción del mismo para el desarrollo del proyecto de la quinta generación de computadoras a principios de la década de los 1980, en cuyo contexto se desarrolló la implementación paralelizada del lenguaje llamada KL1 y del que deriva parte del desarrollo moderno de Prolog. Las primeras versiones del lenguaje diferían, en sus diferentes implementaciones, en muchos aspectos de sus sintaxis, empleándose mayormente como forma normalizada el dialecto propuesto por la Universidad de Edimburgo , hasta que en 1995 se estableció un estándar ISO (ISO/IEC 13211-1), llamado ISO-Prolog.

Entorno de desarrollo Prolog


Prolog es un lenguaje de programación seminterpretado. Su funcionamiento es muy similar a Java. El código fuente se compila a un código de byte el cuál se interpreta en una máquina virtual denominada Warren Abstract Machine (comúnmente denominada WAM).
Por eso, un entorno de desarrollo Prolog se compone de:
  • Un compilador: Transforma el código fuente en código de byte. A diferencia de Java, no existe un Standard al respecto. Por eso, el código de byte generado por un entorno de desarrollo no tiene por que funcionar en el intérprete de otro entorno.
  • Un intérprete: Ejecuta el código de byte. Un shell o top-level. Se trata de una utilidad que permite probar los programas, depurarlos, etc. Su funcionamiento es similar a los interfaces de línea de comando de los sistemas operativos.
  • Una biblioteca de utilidades: Estas bibliotecas son, en general, muy amplias. Muchos entornos incluyen (afortunadamente) unas bibliotecas standard-ISO que permiten funcionalidades básicas como manipular cadenas, entrada/salida, etc.


Generalmente, los entornos de desarrollo ofrecen extensiones al lenguaje como pueden ser la programación con restricciones, concurrente, orientada a objetos, etc. Sería injusto no mencionar aquí el entorno de desarrollo más popular: SICStus Prolog, si bien, se trata de un entorno de desarrollo comercial (no gratuito).
SICStus, CIAO Prolog, y posiblemente otros más, ofrecen entornos integrados generalmente basados en Emacs que resultan muy fáciles de usar. CIAO Prolog además ofrece un auto documentador similar al existente para Java además de un preprocesador de programas. Prácticamente todos ellos son multiplataforma.

Aplicaciones Actuales Del Lenguaje PROLOG


  • Prolog se puede utilizar para resolver, básicamente, cualquier tipo de problema.
  • Principalmente es útil en la gestión de Juegos, en Inteligencia Artificial y Sistemas Expertos, como lenguaje especialmente pensado para construir bases de conocimientos basados en la lógica que forman parte importante de cualquier agente inteligente, en la construcción de Compiladores e Intérpretes, en el Reconocimiento del Lenguaje Natural, etc.


Ventajas y desventajas de la Programación Lógica


Ventajas

  • La habilidad de PROLOG para calcular de forma procedural es una de las ventajas específicas 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 más fácil pensar las soluciones y muchos detalles procedurales son resueltos automáticamente 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 rápidamente, con pocos errores originando programas claramente legibles, aun si no se conoce muy bien el lenguaje.
  • No hay que pensar demasiado en la solución del problema, ya que Prolog infiere sus respuestas basándose en las reglas declaradas dentro del programa. 4. Modularidad: cada predicado (procedimiento) puede ser ejecutado, validado y examinado independiente e individualmente. Prolog no tiene variables globales, ni asignación. Cada relación está auto contenida, lo que permite una mayor modularidad, portabilidad y reusabilidad de relaciones entre programas. 5. Polimorfismo: se trata de un lenguaje de programación sin tipos, lo que un alto nivel de abstracción e independencia de los datos (objetos).
  • En Prolog, se puede representar incluso los mismos programas Prolog como estructuras.
  • Prolog utiliza un mecanismo de búsqueda 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. 8. Manejo dinámico y automático de memoria.
  • En prolog se utiliza notación prefija e infija mientras que en Lisp solo utiliza notación prefija.

Desventajas
  • La resolución automática no siempre es eficiente, por lo que eventualmente se podría dar una respuesta incorrecta a una consulta. 2. Poco eficientes. 3. Poco utilizado en aplicaciones reales.
  • Prolog algunas veces es incapaz de reconocer que un problema es (para su propio conocimiento) inaplicable o insuficiente. Si el programa no contiene suficiente información para contestar una consulta, es incapaz de reconocerlo y responde no. En esta situación sería más eficiente conocer que la respuesta no es negativa, sino que no es posible inferir un resultado.
  • Los motores de inferencia poseen algunos límites.



SISTEMAS EXPERTOS



SISTEMAS EXPERTOS

(ES, siglas del término Expert System) es un sistema de información basado en el conocimiento que usa su conocimiento de un área de aplicación compleja y específica a fin de actuar como un consultor experto para los usuarios finales. Los sistemas expertos proporcionan respuestas sobre un área problemática muy específica al hacer inferencias semejantes a las humanas sobre los conocimientos obtenidos en una base de conocimientos especializados. 
Los sistemas expertos forman parte de la ciencia de la computación y dentro de ésta se
ubican en la rama de la inteligencia artificial.



¿Qué es un sistema experto?

Es una rama de la Inteligencia artificial; son sistemas informáticos que simulan el proceso de aprendizaje, de memorización, de razonamiento, de comunicación y de acción en consecuencia de un experto humano en cualquier rama de la ciencia.
Los sistemas expertos se pueden considerar como el primer producto verdaderamente operacional de la inteligencia artificial. Son programas de ordenador diseñados para actuar como un especialista humano en un dominio particular o área de conocimiento. En este sentido, pueden considerarse como intermediarios entre el experto humano, que transmite su conocimiento al sistema, y el usuario que lo utiliza para resolver un problema con la eficacia del especialista. El sistema experto utilizará para ello el conocimiento que tenga almacenado y algunos métodos de inferencia.


Características

Para que un sistema actúe como un verdadero experto, es deseable que reúna, en lo posible, lo más importante de las características de un experto humano, esto es:
  • Habilidad para adquirir conocimiento.
  • Fiabilidad, para poder confiar en sus resultados o apreciaciones.
  • Solidez en el dominio de su conocimiento.
  • Capacidad para resolver problemas.
Estas características le permiten almacenar datos y conocimiento, sacar conclusiones lógicas, tomar decisiones, aprender de la experiencia y los datos existentes, comunicarse con expertos humanos, explicar el porqué de las decisiones tomadas y realizar acciones como consecuencia de todo lo anterior. 

Técnicamente un sistema experto, contiene una base de conocimientos que incluye la experiencia acumulada de expertos humanos y un conjunto de reglas para aplicar ésta base de conocimientos en una situación particular que se le indica al programa. Cada vez el sistema se mejora con adiciones a la base de conocimientos o al conjunto de reglas.

Componentes de un sistema experto


  • Separan conocimientos (reglas y hechos) y el procesamiento; se le añade un interface de usuario y un componente explicativo; los siguientes componentes pueden estar estructurados de formas muy variadas.
  • Base de conocimientos: Contiene el conocimiento de los hechos y las experiencias de los expertos en un dominio determinado
  • Mecanismo de inferencia: Puede simular la estrategia de solución de un experto
  • Componente explicativo: Explica al usuario la estrategia de solución encontrada y el porqué de las decisiones tomadas
  • Interface de usuario: Sirve para que este pueda realizar una consulta en un lenguaje lo más natural posible
  • Componente de adquisición: Ofrece ayuda a la estructuración e implementación del conocimiento en la base de conocimientos







Tipos de sistemas expertos

Existen tres tipos de sistemas expertos:

  • Basados en reglas: Aplicando reglas heurísticas apoyadas generalmente en lógica difusa para su evaluación y aplicación.
  • Basados en casos CBR (Case Based Reasoning): Aplicando el razonamiento basado en casos, donde la solución a un problema similar planteado con anterioridad se adapta al nuevo problema.
  • Basados en redes: Aplicando redes bayesianas, basadas en estadística y el teorema de Bayes.


Ventajas 

  • Producción y productividad mayores. Pueden trabajar más rápido que lo humanos. Están disponibles ininterrumpidamente de día y noche, ofreciendo siempre su máximo desempeño. Pueden duplicarse ilimitadamente, i.e. tener tantos de ellos como se requieran.
  • Mayor calidad: Dan la probabilidad de aumentar la calidad proporcionando asesoría consistente y reduciendo las tasas de error.
  • Operación en entornos peligrosos. Muchas tareas requieren que los seres humanos operen en entornos hostiles y peligrosos. 
  • Captación de experiencia escasa y su dimensión. Uno de los principales beneficios de los sistemas expertos es su facilidad de trasmitir experiencia a través de fronteras internacionales.
  • Siempre se ajustan a las normas establecidas y son consistentes en su desempeño, i.e. no desarrollan apreciaciones subjetivas, tendenciosas, irracionales o emocionales. 
  • Confiabilidad. Los sistemas expertos son confiables. No padece de olvido, fatiga, dolor o comete errores de cálculo. 
  • No requiere un sueldo, promociones, seguros médicos, incapacidades.
  • Accesibilidad al conocimiento y escritorios de vida. Hacen accesible el conocimiento (y la información) a mucha gente en diversos lugares. Siempre están dispuestos a dar explicaciones, asistir o enseñar a la gente, así como a aprender.
  • Pueden tener una vida de servicio ilimitada. Funciones incrementadas de otros sistemas expertos. La integración de un sistema experto con otros sistemas expertos hacen que estos últimos se vuelvan más eficientes, los sistemas integrados abarcan más aplicaciones, trabajan más rápido y producen resultados de mayor calidad.
  • Capacidad para trabajar con información incompleta o inconcreta. En contraste con los sistemas de cómputo convencionales, un sistema experto puede trabajar con información incompleta al igual que los expertos humanos.
  • Impartición de capacitación. Es factible que un sistema experto facilite la capacitación. El personal nuevo que trabaja con un sistema experto se vuelve más experimentado. La fusión de explicación puede servir como un dispositivo de enseñanza y de ese modo puede efectuar apuntes que tal vez se inserten en la base de conocimiento.
  • Mejoramiento de las funciones para resolver problemas. Un sistema experto mejora la solución de problemas permitiendo la integración de juicios de expertos de primera línea en el análisis. De este modo, un sistema experto tiene la posibilidades resolver problemas cuyo enlace y conocimiento supera a los de cualquier individuo.
  • Reducción del tiempo para la toma de decisiones. Con el empleo de la recomendación del sistema, un ser humano puede tomar decisiones mucho más rápido.
  • Reducción del tiempo fuera de servicio. Muchos sistemas expertos operacionales se emplean para diagnosticar malos funcionamientos y prescribir reparaciones.


 DESVENTAJAS 

  • Tienen una noción muy limitada acerca del contexto de problema, i.e. no pueden percibir todas las cosas que un experto humano puede apreciar de un situación.
  • Pueden existir decisiones que sólo son de competencia para un ser humano y no una máquina.
  • No saben cómo subsanar sus limitaciones, e.g. no son capaces de trabajar en equipo o investigar algo nuevo.
  • Son muy costosos de desarrollar y mantener.
  • Tareas que realiza un Sistema Experto Monitorización.
  • La monitorización es un caso particular de la interpretación, y consiste en la comparación continua de los valores de las señales o datos de entrada y unos valores que actúan como criterios de normalidad o estándares. Se trata de que el programa pueda determinar en cada momento el estado de funcionamiento de sistemas complejos, anticipándose a los posibles incidentes que pudieran acontecer


VÍDEO EXPLICATIVO


DEFINICIÓN DE SISTEMA.






DEFINICIÓN DE SISTEMA.


Un sistema es un conjunto de partes o elementos organizados y relacionados que interactúan entre sí para lograr un objetivo. Los sistemas reciben datos, energía o materia del ambiente (entrada) y proveen información, energía o materia (salida).



Cada sistema puede ser estudiado con el objetivo de comprender el funcionamiento del mismo, descubrir sus límites/fronteras visibles y/o no visibles, entender el objetivo del mismo y cómo interactúa con otros sistemas externos. 


Características de los sistemas 


  • Según su naturaleza o constitución: Un sistema puede ser físico o concreto (una computadora, un televisor, un humano) o puede ser puede ser abstracto o conceptual (un software, una ciudad, una institución).

  • Cada sistema existe dentro de otro más grande, por lo tanto un sistema puede estar formado por subsistema y elementos, y a la vez puede ser parte de un supersistema (suprasistema).

¿Qué es un sistema informático?

Un sistema informático es un sistema de información que está informatizado. No todos los sistemas de información son sistemas informáticos, pero todos los sistemas informáticos son sistemas de información. Por lo tanto se puede decir que un sistema informático es un subconjunto de un sistema de información.


Sistemas en informática

En informática existen gran cantidad de sistemas:
  • Sistema operativo.
  • Sistema experto
  •  Sistema informático 
  • Aplicación o software
  • Arquitectura de sistemas


Un sistema informático es el conjunto constituido por los elementos físicos y lógicos (software) necesarios para captar información, almacenarla y procesarla, realizar operaciones con ella.
En un sistema informáticola información es introducida a través de los periféricos de entrada, luego es procesada y mostrada por los periféricos de salida.


domingo, 11 de noviembre de 2018



INSTITUTO DE ESTUDIOS SUPERIORES

"SOR JUANA INES DE LA CRUZ"

 PLANTEL TAPILULA 



PRESENTA:

ISC. FELIPA ALVAREZ SANCHEZ

MATERIA:

INTELIGENCIA ARTIFICIAL 

RESPONSABLE: 

LIC. JESÚS GUSTAVO ABARCA RUIZ


                   LUGAR Y FECHA DE ELABORACIÓN:

          TAPILULA, CHIAPAS; A 11 DE NOVIEMBRE 2018