lunes, 1 de julio de 2019

Búsqueda Heuristica

Una heurística es un algoritmo que abandona uno o ambos objetivos. Las heurísticas generalmente son usadas cuando no existe una solución óptima bajo las restricciones dadas o cuando no existe del todo.Autores como Feigenbaum y Feldman definen la heurística como es una regla para engañar, simplificar un conjunto de reglas que evalúan la posibilidad de que una búsqueda va en la dirección correcta.La búsqueda es una técnica para resolver problemas cuya solución consiste en una serie de pasos que frecuentemente deben determinarse mediante la prueba sistemática de las alternativas.Los métodos de búsqueda heurística disponen de alguna información sobre la proximidad de cada estado a un estado objetivo, lo que permite explorar en primer lugar los caminos más prometedores.SON CARACTERÍSTICAS DE LOS MÉTODOS HEURÍSTICOS:
  • No garantizan que se encuentre una solución, aunque existan soluciones.
  • Si encuentran una solución, no se asegura que ésta tenga las mejor esas propiedades (que sea de longitud mínima o de coste óptimo).
  • En algunas ocasiones (que, en general, no se podrán determinar apriori), encontrarán una solución (aceptable mente buena) en un tiempo razonable.

Método de búsqueda ciega

La búsqueda ciega o no informada sólo utiliza información acerca de si un estado es o no objetivo para guiar su procesu de búsqueda.
Los métodos de búsqueda ciega se pueden clasificar en dos grupos básicos:
  • Métodos de búsqueda en anchura.
Son procedimientos de búsqueda nivel a nivel. Para cada uno de los nodos de un nivel se aplican todos los posibles operadores y no se expande ningún nodo de un nivel antes de haber expandido todos los del nivel anterior.
  • Métodos de búsqueda en profundidad.
En estos procedimientos se realiza la búsqueda por una sola rama del árbol hasta encontrar una solución o hasta que se tome la decisión de terminar la búsqueda por esa dirección ( por no haber posibles operadores que aplicar sobre el nodo hoja o por haber alcanzado un nivel de profundidad muy grande ) . Si esto ocurre se produce una vuelta atrás ( backtracking ) y se sigue por otra rama hasta visitar todas las ramas del árbol si es necesario.



Etapas de la IA


Fechas y nombres de las etapas IA




Explicación de las etapas IA





Ciencias relacionadas con la IA

Matemáticas


  • Demostración automática de teoremas

Psicologia

  • Ciencia cognoscitiva.

Lingüística

  • Lingüística computacional. 

Programación informática.

  • Programación heurística.

Filosofía

  • Epistemologia computacional.

Otras ciencias

  • Ingeniería del conocimiento robótica.


Modelo a seguir de la inteligencia artificial

  • Sistemas que piensan como humanos.- Estos sistemas tratan de emular el pensamiento humano; por ejemplo las redes neuronales artificiales. La automatización de actividades que vinculamos con procesos de pensamiento humano, actividades como la toma de decisiones, resolución de problemas y aprendizaje
  • Sistemas que actúan como humanos.- Estos sistemas tratan de actuar como humanos; es decir, imitan el comportamiento humano; por ejemplo la robótica. El estudio de cómo lograr que los computadores realicen tareas que, por el momento, los humanos hacen mejor.
  • Sistemas que piensan racionalmente.- Es decir, con lógica (idealmente), tratan de imitar o emular el pensamiento lógico racional del ser humano; por ejemplo los sistemas expertos. El estudio de los cálculos que hacen posible percibir, razonar y actuar.
  • Sistemas que actúan racionalmente (idealmente).– Tratan de emular de forma racional el comportamiento humano; por ejemplo los agentes inteligentes. Está relacionado con conductas inteligentes en artefactos




8 definiciones de inteligencia artificial

1. "La interesante tarea de lograr que las computadoras piensen... maquinas con mentes, en su amplio sentido literal." (Hugeland,1985).

2."La automatización de actividades que vinculamos con procesos de pensamiento humano, actividades tales como toma de decisiones, resolución de problemas, aprendizaje." (Belman,1978)

3."El arte de crear maquinas con capacidad de realizar funciones que realizadas por personas, requieren inteligencia." (Kurswell,1990).

4."El estudio de como lograr que las computadoras realicen tareas que, por el momento, los humanos hacen mejor". (Rich y Knight,1991).

5."El estudio de las facultades mentales mediante el uso de modelos computacionales".
(Charniak y McDermott,1985).

6."El estudio de los cálculos que permiten percibir y razonar". (Winston,1992).

7."Un campo de estudio que se enfoca en la explicación y emulación de la conducta inteligente en función de procesos computacionales". (Sholkoof,1990).

8."La rama de la computación que se ocupa de la automatización de la conducta inteligente".
(Luger y Stubble Fied,1993).


Puede encontrar mas información aquí

lunes, 17 de junio de 2019

Backtracking


Es un algoritmo general para encontrar todas (o algunas) soluciones a algunos problemas de cómputo, especialmente los problemas de satisfacción restringida , que incrementan los candidatos a las soluciones y abandonan a un candidato ("backtracks") tan pronto como determina que el candidato no puede Se completará a una solución válida. 

El ejemplo clásico del libro de texto sobre el uso del retroceso es el rompecabezas de las ocho reinas, que solicita todos los arreglos de ocho reinas de ajedrez en un tablero de ajedrez estándar para que ninguna reina ataque a ninguna otra. En el enfoque de retroceso común, los candidatos parciales son arreglos de k reinas en las primeras k filas del tablero, todas en diferentes filas y columnas. Cualquier solución parcial que contenga dos reinas mutuamente atacantes puede ser abandonada.



El algoritmo de retroceso enumera un conjunto de candidatos parciales que, en principio, podrían completarse de varias maneras para dar todas las soluciones posibles al problema dado. La finalización se realiza de forma incremental, mediante una secuencia de pasos de extensión candidatos.
Conceptualmente, los candidatos parciales se representan como los nodos de una estructura de árbol, el árbol de búsqueda potencial. Cada candidato parcial es el padre de los candidatos que difieren de él en un solo paso de extensión; Las hojas del árbol son los candidatos parciales que no se pueden extender más.
El algoritmo de retroceso recorre este árbol de búsqueda de forma recursiva, desde la raíz hacia abajo, en primer orden de profundidad. En cada nodo c, el algoritmo verifica si c puede completarse para una solución válida. Si no puede, todo el subárbol enraizado en c se omite (se recorta). De lo contrario, el algoritmo (1) verifica si c en sí es una solución válida, y si es así lo informa al usuario; y (2) enumera recursivamente todos los subárboles de c. Las dos pruebas y los hijos de cada nodo se definen mediante procedimientos dados por el usuario.
Por lo tanto, el árbol de búsqueda real que atraviesa el algoritmo es solo una parte del árbol potencial. El costo total del algoritmo es el número de nodos del árbol real por el costo de obtener y procesar cada nodo. Este hecho debe tenerse en cuenta al elegir el posible árbol de búsqueda e implementar la prueba de poda.




Formas de aprendizaje de un agente basado en conocimiento


Base de Conocimiento

El componente principal de un agente basado en conocimiento y Su base de conocimiento (ó KB) y Conjunto de representaciones de hechos acerca del mundo y Cada representación individual se conoce como sentencia (sentence ) y Las sentencias se expresan en un lenguaje conocido como: y Lenguaje de representación de conocimiento y Se necesita una manera de: y Añadir una nueva sentencia a la KB (método declarativo): Tell y Preguntar qué se conoce Preguntar qué se conoce: Ask y La respuesta proviene de lo que ha dicho a la KB previamente.

Inferencia

Segundo componente principal de un agente basado en conocimiento y Determinar qué sigue a partir de lo que se ha dicho a la KB (tell) es el trabajo del mecanismo de inferencia.

Puedes encontrar mas información aquí


Niveles de agentes basado en conocimiento


Puedes encontrar mas información aquí

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. 
Su uso es especialmente recomendado en las siguientes situaciones:
·         Cuando los expertos humanos en una determinada materia son escasos.
·         En situaciones complejas, donde la subjetividad humana puede llevar a conclusiones erróneas.
·         Cuando es muy elevado el volumen de datos que ha de considerarse para obtener una conclusión.

Como se crean:



Ingeniería del conocimiento


La ingeniería del conocimiento es aquella disciplina moderna que forma parte de la Inteligencia Artificial y cuyo fin es el diseño y desarrollo de Sistemas Expertos. Para esto, se apoya en metodologías institucionales y en las ciencias de la computación y de las tecnologías de la información, intentando representar el conocimiento y razonamiento humanos en un determinado dominio, dentro de un sistema artificial.
El trabajo de los ingenieros del conocimiento consiste en extraer el conocimiento de los expertos humanos en una determinada área, y en codificar dicho conocimiento de manera que pueda ser procesado por un sistema.

La ingeniería del conocimiento engloba a los científicos, tecnología y metodología necesarios para procesar el conocimiento. Su objetivo es extraer, articular e informatizar el conocimiento de un experto.

Características
El problema es que la ingeniería del conocimiento no es un experto en el campo que intenta modelar, mientras que el experto en el tema no tiene experiencia modelando su conocimiento (basado en la heurística) de forma que pueda ser representado de forma genérica en un sistema. La ingeniería del conocimiento engloba a los científicos, tecnología y metodología necesarios para procesar el conocimiento. Su objetivo es extraer, articular e informatizar el conocimiento de un experto.
Puedes encontrar mas información aquí

Listas en Prolog


Una lista es una estructura de datos muy utilizada en programación simbólica. El trabajo con listas en PROLOG permite aumentar la potencialidad del lenguaje. Frecuentemente, los predicados con listas son recursivos.
Una lista es una secuencia ordenada de elementos clasificados que puede tener cualquier longitud. Las listas pueden utilizarse para representar conjuntos, pero existen diferencias importantes:
·         En un conjunto el orden de los elementos no es relevante. En un conjunto no se repiten elementos.
·         A pesar de esto, la mayoría de las operaciones de conjunto, se pueden implementar utilizando listas.
Una lista en PROLOG se define como un conjunto de daos homogéneos es decir del mismo tipo.
Se denota de la siguiente manera:
H|T]
Donde:
H (Head): Representa la cabeza de la lista.
T (Tail): Representa el resto de la lista, es decir la cola de la cola.

Operaciones con listas

La operación de pertenencia se llamará miembro. Permite determinar si un elemento pertenece o no a una lista. El predicado miembro se utiliza como:
¿Es el elemento X miembro de la lista L?
En PROLOG seria:
?-miembro(c,[a,b,c]).
YES
Puedes encontrar mas información

lunes, 20 de mayo de 2019

Lógica proposicional


Lógica Proposicional


Es una rama de la lógica clásica que estudia las variables proposicionales o sentencias lógicas, sus posibles implicaciones, evaluaciones de verdad y en algunos casos su nivel absoluto de verdad. Algunos autores también la identifican con la lógica matemática o la lógica simbolice, ya que utiliza una serie de símbolos especiales que lo acercan al lenguaje matemático.
Proposiciones

Tautología: se define tautología o validez a aquella formula que siempre es verdadera.

Contradicción: es una proposición que siempre es falsa para todos los valores de verdad. Para cualquier valor de verdad de las proposiciones, sea cual sea el resultado de la formula lógica estudiada siempre va a ser falso.

Conjunción: es aquella formula que es falsa o verdadera. Las expresiones de las que depende la validez de los argumentos se definen constante lógicas.

Conectores

Negación: no -> >, ~

En lógica y matemática, la negación, también llamada complemento lógico, es una operación sobre proposiciones, valores de verdad, o en general, valores semánticos. Intuitivamente, la negación de una proposición es verdadera cuando dicha proposición es falsa, y viceversa. En lógica clásica la negación está normalmente identificada con la función de verdad que cambia su valor de verdadero a falso y viceversa.

Conjunción: Y ∧, Solamente si las componentes de la conjunción son ciertas, la conjunción es cierta.

Disyunción: O ∨,

La disyunción solamente es falsa si lo son sus dos componentes.

Condicional: ⇒ entonces

Típicamente los valores de verdad de dos proposiciones, devolviendo el valor de verdad falso sólo cuando la primera proposición es verdadera y la segunda falsa.

Bicondicional: ⇔ si solo sí.

El Bicondicional o doble implicación es un operador que funciona sobre dos valores de verdad, típicamente los valores de verdad de dos proposiciones, devolviendo el valor de verdad verdadero cuando ambas proposiciones tienen el mismo valor de verdad, y falso cuando sus valores de verdad difieren.
Proposiciones

Variables: En el lenguaje simbólico de la lógica de proposiciones, a los enunciados simples, atómicos o elementales son los que no pueden descomponerse en otros más simples. Se les llama variables, y se escriben con las letras minúsculas del final del abecedario: “p”, “q”, “r”, “s”… para los casos particulares, o con las letras en mayúscula del principio del alfabeto cuando son casos generales: “A”, “B”, “C”, “D”…

Además de las variables, la lógica proposicional tiene otros elementos en su alfabeto: las constantes lógicas y los símbolos auxiliares que forman los enunciados compuestos.

Algunas de las marcas léxicas del lenguaje natural, se traducen con uno de las cinco constantes lógicas siguientes:

¬ NEGACIÓN: No

٧ DISYUNCIÓN INCLUSIVA: o, o bien, tanto si… como si,

٨ CONJUNCIÓN: y, e, o ni (=y no)

→ CONDICIONAL: si…. entonces

↔ BICONDICIONAL: si y solo si


Tabla de la Verdad

La negación: Cuando la variable es verdadera al negarla se convierte en falsa, y si es falsa, al negarla se hace verdadera.



sábado, 18 de mayo de 2019

Características de SWI-PROLOG


SWI-Prolog le proporciona un entorno de desarrollo completo y sólido para el lenguaje de programación lógica Prolog, que está destinado a la lingüística computacional y aplicaciones de inteligencia artificial.
Basándose en una máquina virtual Prolog para definir las instrucciones, SWI-Prolog cuenta con un compilador más rápido y el modo de depuración sólo reduce la velocidad del sistema por un bit.
La aplicación viene con una interfaz flexible e intuitiva que le permite trabajar con el código C / C ++, proporcionando soporte para aplicaciones de gran tamaño y un número ilimitado de valores enteros sin bajar el rendimiento.
Tanto el código estático y dinámico se puede indexar fácilmente ante cualquier argumento, mientras que el depurador a nivel de fuente compatible con gráficos a través XPCE.
SWI-Prolog Prolog tiene una cruzada Referente, un perfilado de ejecución a las estadísticas de instrucción de salida, así como una herramienta de comprobación de errores. El paquete también incluye una colección de bibliotecas que los programadores pueden encontrar útiles, es decir, los componentes de las reglas de restricción de manipulación, las bibliotecas de interfaz HTML, XML, RDF y programas de análisis, una biblioteca de servidor web para los esfuerzos de gestión de sesiones, HTML y HTTP de autorización y así sucesivamente.
El conjunto de características de depuración avanzada comprende un editor de espionaje punto, un depurador excepción, un monitor de hilo y una herramienta de gestión de la dependencia.
El programa proporciona soporte para los juegos de caracteres Único de, lo que lo hace adecuado para la creación de aplicaciones basadas en la Web y multilingüe.
Con alta velocidad de compilación, SWI-Prolog puede ser de gran utilidad para los programadores de Prolog. Su gama de características son suficientes para satisfacer a los usuarios más experimentados, ya que se requiere conocimientos de programación avanzada con el fin de usarlo.





Estrategias de búsqueda

Búsqueda preferente por amplitud: 

En esta búsqueda todos los nodos que están en la profundidad d del árbol de búsqueda se expanden antes de los nodos que estén en la profundidad d+1.

• Si son varias las soluciones, este tipo de búsqueda permitirá siempre encontrar primero el estado meta más próximo a la raíz. 
• En esta búsqueda el tiempo y la cantidad de memoria necesaria crece exponencialmente con respecto a la profundidad. 
• Es óptima y completa.

Búsquedas de costo uniforme: 

En esta búsqueda se modifica la estrategia preferente por amplitud en el sentido de expandir siempre el nodo de menor costo en el margen (medido por el costo de la ruta g(n)) en vez del nodo de menor profundidad.

Este tipo de búsqueda permitirá siempre encontrar la solución mas barata siempre y cuando el costo de ruta nunca disminuya conforme avanzamos por la ruta.
En esta búsqueda el tiempo y la cantidad de memoria necesaria crece exponencialmente con respecto a la profundidad.

• Es óptima y completa.

Búsqueda preferente por profundidad:

En esta búsqueda siempre se expande uno de los nodos que se encuentren en los mas profundo del árbol. Solo si la búsqueda conduce a un callejón sin salida, ser revierte la búsqueda y se expanden los nodos de niveles menos profundos.

Esta búsqueda o se queda atorada en un bucle infinito y nunca es posible regresar al encuentro de una solución, o a la larga encontrará una ruta de solución mas larga que la solución óptima.

• En esta búsqueda el tiempo necesario crece exponencialmente con respecto a la profundidad, mientras que el espacio requerido en memoria lo hace en forma lineal

• No es óptima ni completa. 


Búsqueda limitada por profundidad: 

Esta búsqueda es similar a la búsqueda preferente por profundidad con la diferencia que se impone un límite a la profundidad máxima de una ruta.Se utilizan operadores que informan constantemente de la profundad del nodo. 


• En esta búsqueda el tiempo necesario crece exponencialmente con respecto a la profundidad, mientras que el espacio requerido en memoria lo hace en forma lineal

• No es óptima, pero si completa cuando la profundidad del límite es menor o igual a la profundidad de la solución. 
Búsqueda por profundización iterativa: 

Esta búsqueda es similar a la búsqueda limitada por profundidad con la diferencia que se repiten las búsquedas dando en cada iteración un valor distinto de profundiad para la misma.

En esta búsqueda el tiempo necesario crece exponencialmente con respecto a la profundidad, mientras que el espacio requerido en memoria lo hace en forma lineal
Es óptima y completa. 

Búsqueda bidireccional: 

Esta es una búsqueda que avanza a partir del estado inicial y que retrocede a partir de la meta y que se detiene cuando ambas búsquedas se encuentran en algún punto intermedio. 
En esta búsqueda el tiempo y el espacio requerido en memoria crecen exponencialmente con respecto a la mitad de la profundidad (bd/2). 
Es óptima y completa.

Cuantificadores de lógica de primer orden


Un cuantificador es un operador sobre un conjunto de individuos, se trata de un recurso expresivo que permite construir proposiciones sobre conjuntos o, dicho de otra forma, un cuantificador es una expresión que afirma que una condición se cumple para un cierto número de individuos. En la lógica clásica, los dos cuantificadores más estudiados son el cuantificador universal y el cuantificador existencial. El primero afirma que una condición se cumple para todos los individuos de los que se está hablando, y el segundo que se cumple para al menos uno de los individuos. Por ejemplo, la expresión "para todo x" es un cuantificador universal, que antepuesto a "x < 3", produce:
Para todo x, x < 3
Esta es una expresión con valor de verdad, en particular, una expresión falsa, pues existen muchos números (muchos x) que son mayores que tres. Anteponiendo en cambio la expresión "para al menos un x", un cuantificador existencial, se obtiene:
Para al menos un x, x < 3
La cual resulta ser una expresión verdadera.
Adviértase ahora, sin embargo, que el valor de verdad de las dos expresiones anteriores depende de qué números se esté hablando. Si cuando se afirma "para todo x, x < 3", se está hablando solo de los números negativos, por ejemplo, entonces la afirmación es verdadera. Y si al afirmar "para al menos un x, x < 3" se está hablando solamente de los números 3, 4 y 5, entonces la afirmación es falsa. En lógica, a aquello de lo que se está hablando cuando se usa algún cuantificador, se lo llama el dominio de discurso.
Esta maquinaria se puede adaptar fácilmente para formalizar oraciones con cuantificadores del lenguaje natural. Tómese por caso la afirmación "todos son amigables". Esta oración se puede traducir así:
Para todo x, x es amigable.
Y una oración como "alguien está mintiendo" puede traducirse:
Para al menos un x, x está mintiendo.
También es frecuente traducir esta última oración así:
Existe al menos un x, tal que x está mintiendo.
A continuación, se formalizan ambas oraciones, introduciendo a la vez la notación especial para los cuantificadores:
Para todo x, x es amigable.
x A(x)
Existe al menos un x, tal que x está mintiendo.    

4 métodos de búsqueda con los criterios que evalúan

Criterio con el que se relaciona
Comparación de Métodos de búsqueda
Completes: si garantiza o no encontrar la solución si es que existe.

·         Búsqueda por amplitud
·         Búsqueda por profundización iterativa
·         Búsqueda bidireccional
Complejidad espacial: cantidad de memoria necesaria para encontrar la solución.

·         Búsqueda por amplitud
·         Búsqueda por profundización iterativa
·         Búsqueda bidireccional
Complejidad temporal: cantidad de tiempo necesario para encontrar la solución.
·         Búsqueda por amplitud
·         Búsqueda limitada por profundidad
·         Búsqueda por profundización iterativa
·         Búsqueda bidireccional

Optimidad: si se encontrará o no la mejor solución en caso de que existan varias.

·         Búsqueda por amplitud

Lenguaje Prolog


¿Qué es el lenguaje Prolog?
Es un lenguaje de programación lógico e interpretado usado habitualmente en el campo de la Inteligencia artificial.


Historia
Prolog es un lenguaje de programación simple pero poderoso desarrollado en la Universidad de Aix-Marseille (Marsella, Francia) por los profesores Alain Colmerauer y Philippe Roussel, como una herramienta práctica para programación lógica. Nació de un proyecto que no tenía como objetivo la implementación de un lenguaje de programación, sino el procesamiento 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.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.




martes, 19 de marzo de 2019

Las 3 leyes de la robótica



Las tres leyes de la robótica son un conjunto de normas elaboradas por el escritor de ciencia ficción Isaac Asimov que se aplican a la mayoría de los robots de sus novelas y cuentos y que están diseñados para cumplir órdenes. En ese universo, las leyes son «formulaciones matemáticas impresas en los senderos positrónicos del cerebro» de los robots (líneas de código del programa que regula el cumplimiento de las leyes guardado en la memoria principal de aquellos). Aparecidas por primera vez en el relato «Círculo vicioso» (Runaround, 1942), establecen lo siguiente: 

  • Un robot no hará daño a un ser humano o, por inacción, permitirá que un ser humano sufra daño. 
  • Un robot debe cumplir las órdenes dadas por los seres humanos, a excepción de aquellas que entrasen en conflicto con la primera ley. 
  • Un robot debe proteger su propia existencia en la medida en que esta protección no entre en conflicto con la primera o con la segunda ley. 
Esta redacción de las leyes es la forma convencional en la que los humanos de las historias las enuncian; su forma real sería la de una serie de instrucciones equivalentes y mucho más complejas en el cerebro del robot. 

Asimov atribuye las tres leyes a John W. Campbell, que las habría redactado durante una conversación sostenida el 23 de diciembre de 1940. Sin embargo, Campbell sostiene que Asimov ya las tenía pensadas, y que simplemente las expresaron entre los dos de una manera más formal. 

Las tres leyes aparecen en un gran número de historias de Asimov, tanto en su serie de los robots como en varias historias relacionadas, y la serie de novelas protagonizadas por Lucky Starr. También han sido utilizadas por otros autores cuando han trabajado en el universo de ficción de Asimov, y son frecuentes las referencias a ellas en otras obras, no solo de ciencia ficción, sino también de otros géneros. 

Propósito 

Estas tres leyes surgen únicamente como medida de protección para los seres humanos. Según el propio Asimov, la concepción de las leyes de la robótica quería contrarrestar un supuesto “complejo de Frankenstein”, es decir, un temor que el ser humano desarrollaría frente a unas máquinas que hipotéticamente pudieran rebelarse y alzarse contra sus creadores. De intentar siquiera desobedecer una de las leyes, el cerebro positrónico del robot resultaría dañado irreversiblemente y el robot "moriría".


historia de la inteligencia artificial

A continuación se muestra una imagen con algunas fechas importantes sobre la IA




Puedes encontrar mas información sobre la historia de la IA aquí.

Ambientes


¿Cómo se clasifican los ambientes que puede presentar un agente?
  • ·         Accesibles y no accesibles.
  • ·         Deterministas y no deterministas.
  • ·         Episódicos y no episódicos.
  • ·         Estáticos y dinámicos.
  • ·         Discretos y continuos.


¿En qué consiste la clasificación de ambiente accesibles y no accesibles?
Es accesible si los sensores detectan todos los aspectos relevantes a la elección de una acción.

¿En qué consiste la clasificación de ambiente deterministas y no deterministas?
Son deterministas cuando el estado actual está completo y por tanto las acciones son escogidas por el agente.

¿En qué consiste la clasificación de ambiente episódicos y no episódicos?
 Es un ambiente episódico que dependerá de las acciones producidas en los episodios anteriores. Son más sencillos ya que el agente no piensa por adelantado.

¿En qué consiste la clasificación de ambiente estáticos y dinámicos?
Se denomina dinámico cuando el agente se encuentra deliberando modificaciones, de lo contrario se dice que es estático.

¿En qué consiste la clasificación de ambiente discretos y continuos?
Se denomina discretas cuando la cantidad de acciones distintas y claramente discernibles, y continuas cuando los rangos de valores son continuos.


Diagrama PAMA

DIAGRAMA PAMA: Se refiere contar con una idea bastante precisa del ambiente, las percepciones y acciones, y por último de las metas. A este conjunto de datos se le conoce como PAMA (Percepción, Acción, Meta y Ambiente).

Se divide en:
  • Tipo de agente
  • Percepciones
  • Acciones
  • Metas
  • Ambiente
Ejemplo 1: un conductor de taxi implementando un diagrama PAMA


Tipo de agente: Conductor de taxi.


Percepciones: Cámaras, velocímetro, sistema GPS, sonar, micrófono.


Acciones: Manejo del volante, acelerar, frenar, hablar con el pasajero.


Metas: Un viaje seguro, rápido, sin infracciones, cómodo, obtención de máxima ganancia.


Ambiente: Carretera, tráfico, peatones, clientes.

Agente y su clasificación


Que es un agente??
Todo aquello que puede percibir su ambiente y puede actuar en el.

Clasificación de los agentes

AGENTES DE REFLEJO SIMPLE
Un agente de reflejo simple actúa encontrando una regla cuya condición coincida con la situación que el agente percibe en su entorno a través de sus sensores, y la acción que debe generar dicha regla conocida como una condición-acción.
Las reglas condición / acción tienen la forma
• IF condición THEN acción
• Aparear regla con la percepción a partir de un conjunto completo de reglas.
ENTONCES especificar acción a tomar.
• Peligro puede ser de poco alcance.
función Agente-Reflexivo-Simple (percepción) retorna acción
static: reglas; un conjunto de reglas condición-acción
estado ← Interprete-Entrada (percepción)
regla ← Selector-Regla (estado, reglas)
acción ← Acción-de-la-Regla [ regla]
retornar acción
Agentes bien informados
Se considera el entorno para decidir acciones y Por ejemplo, para cambiar de carril, el PAC debe verificar el estado de los carros cercanos.
Por tanto, se requiere:
·         Información de cómo evoluciona el mundo
·         Información sobre como las acciones del agente afectan al mundo.
Agente basado en metas
El agente debe saber las metas que se desean alcanzar, no es suficiente solo con saber el estado actual del entorno en el cual se encuentra. El agente deberá ser capaz de analizar la situación actual del entorno con las posibles acciones que se podrían ejecutar y de esta manera seleccionar la acción que mas le convenga para alcanzar las metas de una manera mas sencilla.  Agentes basados en metas necesitan cierto tipo de información sobre sus metas. Estas metas van a detallar las situaciones a las que se desea llegar de este modo, el programa de agente puede combinar las metas con la información de los resultados (acciones) que emprenda y de esta manera poder elegir aquellas acciones que permitan alcanzar la meta. 



Agente basado en utilidad
Estos se utilizan cuando no solo es necesario llegar a unos determinados objetivos de forma concreta, sino que es necesario llegar de una forma eficiente.
Para ello se utiliza una función de utilidad acotada entre 0 y 1 que determina el grado de acercamiento a la meta que producirá el abanico de acciones disponibles. Distribuyendo dicho contenido en un acercamiento nulo (funcion de utilidad igual a cero) y una consecución de la meta (valor igual a uno).