Inteligencia Artificial

Resumen

La Inteligencia Artificial (IA) es el estudio de las facultades mentales mediante el uso de modelos computacionales, es el cómo lograr que los computadores realicen tareas que, por el momento, los humanos hacen mejor, así como también es automatizar las actividades como la toma de decisiones, resolución de problemas relacionados con las conductas inteligentes en artefactos.

 

Es el estudio de los agentes que reciben percepciones del entorno y llevan a cabo las acciones. Cada agente implementa una función la cual estructura las secuencias de las percepciones en acciones.

 

La IA sintetiza y automatiza tareas intelectuales y es, por lo tanto, potencialmente relevante para cualquier ámbito de la actividad intelectual humana.


Palabras clave: Inteligencia artificial, Resolución de problemas, Razonamiento, Aprendizaje, Lenguaje Python.

Abstract

The Artificial Intelligence (AI) is the study of the mental powers by means of the use of computational models, is since achieving that the computers realize tasks that, for the present time, the human beings make better, like that since also it is to automate the activities as the capture of desiciones, resolution of problems related to the intelligent conducts in appliances. It is the study of agents that receive perceptions of the environment and go I end the actions. Every agent implements a function which structures the sequences of the perceptions in actions. The AI synthesizes and automates intellectual tasks and is, therefore, potentially relevant for any area of the intellectual human activity.


Keywords: Artificial Intelligence, Problem Solving, Reasoning, Learning, Language Python

Introducción

Los hombres se han denominado a sí mismos como Homo Sapiens (Hombre Sabio) porque nuestras capacidades mentales son muy importantes para nosotros. Durante miles de años hemos tratado de comprender la forma en como pensamos, entender de cómo un simple puñado de materia puede percibir, entender, predecir y manipular un mundo mucho más grande y complicado que ella misma.

 

El campo de la Inteligencia Artificial o IA, va más allá, no solo intenta comprender, sino que también se esfuerza en construir entidades inteligentes.

 

La IA abarca en la actualidad una gran variedad de sub campos, que van desde áreas de propósito general, como el aprendizaje y la percepción, a otras más específicas como el ajedrez, la demostración de teoremas matemáticos, la escritura de poesía y el diagnóstico de enfermedades.

Desarrollo

1. Inteligencia Artificial y Resolución de Problemas

 

1.1 Algunos Tipos de Problemas.

 

Problemas de Viajante comercio. La Inteligencia Artificial (IA) es conocido como “El problema del viajante de comercio”, o también por sus siglas en ingles TSP (Travelling Salesman Problem).

 

El problema de la satisfacibilidad booleana. SAT (Booleansatis fiability problem), es el primer problema de la NP. Una variable booleana es aquella que puede tomar dos valores diferentes: verdadero y falso. Sobre estas variables se pueden realizar varias operaciones. Las funciones booleanas suelen expresarse de forma normalizada para que sea más fácil operar entre ellas. Las dos formas habituales son la forma normal conjuntiva (FCN) y la forma normal disyuntiva (FND).

 

Problema de la programación lineal entera (PLE). Consiste en la optimización de una función en la que intervienen variables enteras y, además, hay unas restricciones impuestas. Exige que todos o algunas variables sean enteras. En el caso de la Programación Lineal (PL) las variables son reales, PLE es un problema más complejo de resolver que la PL.

 

 

 

2. Inteligencia Artificial y juegos

 

Los juegos nos permiten poner en práctica algoritmos más o menos en entornos reales. Estos son un banco de prueba interesante, ya que con ellos se puede poner a prueba los algoritmos con una inteligencia humana. Los juegos suelen ser problemas muy complejos tanto espacial como temporalmente, ya que la mayoría pertenece a la clase NP.

 

Hay muchos tipos de juegos. En general se puede considerar a los juegos como problemas de búsqueda en los que habitualmente se utiliza una heurística.

 

El algoritmo minimax. Este nombre proviene del hecho que se va a denominar como MAX al turno del ordenador y MIN al turno del oponente humano al que se hay que vencer. El turno del ordenador se llama MAX porque es necesario minimizar sus posibilidades de vencer.

 

Poda alfa-beta. Es una técnica que permite mejorar el rendimiento del algoritmo minimax. El nombre poda proviene del hecho de que al no examinar ciertas ramas es como si se podara. Al usar poda alfa-beta se obtiene una mejora media del rendimiento del 30% a algoritmo minimax.

 

 

 

3. Razonamiento

 

El razonamiento es un atributo atribuido a la especie humana y del que, en principio, no están dotados el resto de seres vivos. La capacidad de raciocinio implica que el ser humano ha de ser capaz de recordar información relacionada con los hechos sobre lo que se quiere razonar, y por supuesto, la capacidad de relacionar esos hechos para inferir conocimientos nuevos.

 

La capacidad de razonar nos permite, entre otras cosas, clasificar objetos y situaciones de forma que se vea ser capaces de reconocerlas y reaccionar ante ellas.

 

Sistemas expertos. Desde los inicios de la Inteligencia Artificial se ha tratado de conseguir que los ordenadores razonen de forma similar a como lo hacen los humanos. Los primeros sistemas en tratar de conseguirlos son Sistemas Basados en Conocimiento (SBC). Unos de los tipos más conocidos de SBC son los sistemas expertos, también llamados Sistemas basados en reglas. La base de conocimiento de un sistema experto está compuesta de una base de reglas y de una base de hechos o memoria de trabajo. La base de reglas almacena las reglas y la memoria se trabajó almacena los hechos. Un hecho es aquella información que se da por cierta o dentro del dominio de la aplicación, por otra parte, las reglas nos permiten relacionar los hechos para inferir otros hechos nuevos. C

 

onjuntos difusos. No permiten trabajar con grado de pertenencia a un conjunto. Para trabajar con sistemas difusos se apoya en la (lógica difusa (fuzzy logic) que puede ser tratada desde un punto de vista conjuntista, en cuyo caso se habla de conjuntos difusos (fuzzy sets).

 

Inferencia difusa. Los sistemas difusos son más que sistemas expertos definidos en términos de conjuntos difusos en vez de conjuntos nítidos. Como tal, es consecuente también es una variable difusa. No hay un solo método de inferencia difusa. El más utilizado es Mandani.

 

 

 

4. Aprendizaje

 

El aprendizaje es una facultad que nos permite, a partir de la información que obtenemos del exterior, desarrollar o modificar hábitos, conductas o habilidades para adaptarse mejor al entorno.

 

En Inteligencia Artificial, la capacidad de aprendizaje está mucho más limitada que la de los seres humanos. La neurociencia actual demuestra que el cerebro está especialmente dotado para el reconocimiento de patrones, y básicamente es así como asociamos las imágenes que recibimos vidualmente con las personas u objetos que conocemos.

 

Clasificación probabilística. Los modelos basados en probabilidad son muy utilizados en diferentes problemas de clasificación y aprendizaje. El modelos probabilístico para el problemas s el clasificador bayesiano ingenuo o naivebayes classifier. Este método está construido sobre modelos probabilísticos y, hace uso de teorema de Bayes sobre las probabilidades condicionadas.

 

Redes neuronales artificiales. Las redes neuronales artificiales o RNAs son un intento de emular la forma de trabajar del cerebro humano, y aunque estamos lejos de alcanzar su misma capacidad, son un instrumento de gran potencia para gran cantidad de aplicaciones y un campo de investigación muy prometedor. Una neuroma funciona de forma muy similar a un transistor, es decir, es un momento dado puede estar activa o no activa.

 

El perceptrón simple. Es un modelo simple de neurona que permite presentar los conceptos básicos para después profundizar en modelos más complejos. Al igual que una neurona real, al perceptrón llegarán señales de entrada y salda una salida.

 

Red de Hopfield (Jhon Hopfield). Este tipo de red recrea mejora el comportamiento del cerebro humano e imita en cierto grado la forma de trabajar del neo córtex, que parce almacenar los recuerdos usados en la memoria asociativa (las redes de Hopfield son denominadas memorias asociativas por algunos autores). De este fenómeno se aprovechan sistemas de seguridad como los capcha (Completely automated public Turing test totell computer and humansapart) o algo así como prueba pública de Turing para diferenciar ordenadores humanos.

 

 

 

5. El Lenguaje Python

 

Cualquier lenguaje puede utilizarse en la Inteligencia Artificial, algunos se adaptan mejor que otros, sobre todo aquellos que son capaces de manejar complejas estructuras de datos. Python es una lenguaje creado por Guido van Rossum.Python tiene las ventajas de ser un lenguaje interpretado y no necesita una compilación previa, lo que facilita el ciclo de programación y pruebas. Este es un lenguaje de tipado dinámico, es decir que no se necesita declarar el tipo de cada variable que se utiliza, si no que se inferirá automáticamente en el momento de utilizarse por primera vez.

 

Python es un lenguaje de propósito general que puede utilizarse también para crear complejos programas orientados a objetos y con interfaces gráficas de usuario.

 

El intérprete interactivo. Una ventaja de Python es que es posible utilizarlo de modo inmediato desde su interprete interactivo llamado IDLE, que puede ser lanzado desde el menú de un inicio de Windows. Desde Linux u otro sistema operativo puede ser ejecutado desde la línea de comando simplemente tecleado el comando Python. El intérprete interactivo es una herramienta muy poderosa que permite ejecutar instrucciones directamente sin necesidad de escribirlas dentro de un programa.

 

Cadenas de caracteres (Strings). Permiten almacenar texto, pero además facilitan realizar operaciones sobre él. Se puede definir el texto de una cadena de forma. Internamente un String es un objeto de Python.

 

Estructuras de control. Ofrece cualquier lenguaje estructurado permitiendo controlar el flujo de la ejecución del programa. Existen dos clases de estructuras de control:

 

• Estructuras condicionales. Por excelencia es if, que es la construcción que permite a los programas tomar decisiones.

• Estructuras respectivas. Permite realizar bucles en acciones respectivas dentro del programa. La cuál de ellas es while.

 

Secuencias. Uno de los puntos fuertes de Python que lo dotan de una gran expresividad comprada con otros lenguajes es una capacidad para trabajar con secuencias de datos de una forma natural y eficiente.

 

Funciones. Una función se define con la palabra reservadas def, asignándole un nombre y unos parámetros de entrada en general una función se define de la siguiente forma.

 

def  nombre _ función ( [parámetro 1, …, parámetro N] );

      acciones

      [return valor]

 

Clases y Objetos. Python soporta el paradigma de programación orientada a objetos de una forma natural. Este paradigma busca asimilar la estructura de un programa a como son los objetos de la vida real. La programación orientada a objetos (POO) se basa en el uso de clases y objetos (también llamados instancias).

 

Módulos. Los módulos son una forma de organizar datos, funciones y clases de Python, un módulo no es más que un archivo que contiene una serie de definiciones y que pueden ser usadas desde otros archivos. Para poder unir el contenido de un módulo debemos usar la palabra reservada import.

 

Paquetes. Los paquetes son otros métodos para organizar el código, pero esta vez a nivel de sistemas de archivo.

En conclusión

Se concluye que la Inteligencia Artificial (IA), representa problemas para poder resolverlos, usar los algoritmos clásicos de búsqueda, al mismo tiempo aplicar modernas técnicas heurísticas como los algoritmos genéticos entre otro.

 

Se pueden desarrollar juegos Inteligentes, y poder comprender como razonar los sistemas expertos y utilizar la lógica difusa, con las redes neuronales y usar métodos probabilísticos capaces de aprender, en cual se puede introducir algunas características de la programación orientada a objetos.

 

 

 

Referencias

Serrano, A. G. (2012). Inteligencia artificial. México: Alfa omega Grupo Editor.

Penrose R. “The Emperor’s New Mind. Concerning Computers, Minds, and the Lawsof Physics”. Vintage 1989. (Existe traducción al castellano de esta obra en laeditorial Mondadori de 1991).

Penrose R. “Shadows of the Mind: A Search for the Missing Science ofConsciousness” Oxford UniversityPress 1994. (Traducción al castellano en laeditorial Crítica de 1996).

Turing A., (1948) Intelligent Machinery. National Physical Laboratory Report. EnMeltzer, B., Michie, D. (eds) 1969. Machine Intelligence 5.Edibrgh UniversityPress.



[1]Alumno de la Licenciatura en Sistemas Computacionales de la Escuela Superior de Tlahuelilpan.