Introducción a la Inteligencia Artificial
¿Qué es la inteligencia artificial?
- Desarrollo de métodos y algoritmos que permiten comportarse a las computadoras
de modo inteligente.
El propósito de la IA es hacer computacional el conocimiento humano por procedimientos
simbólicos o conexionistas.
Existen 2 paradigmas de la IA, los cuales son:
- IA clásica o simbólica: programable y basado en el supuesto del conocimiento
explicable por procedimientos de manipulación de símbolos.
- IA conexionista: autoprogramable por aprendizaje y donde el conocimiento viene
representando la propia estructura de una red neuronal.
En la IA existen un gran problema, y ese es la representación del conocimiento
El resultado que se busca es un programa de ordenador sobre una máquina especifica
desarrollado a partir del conocimiento que supuestamente usaba el operador humano
(experto) que realizaba esa tarea.
La IA aborda 3 tipos de tareas:
1. Dominios formales
2. Dominios técnicos
3. Dominios cognitivos
Dominios formales:
- Se pretende solucionar problemas mediante modelos de búsquedas en un espacio
de estados, ya sean modelos de tipo algorítmico o heurístico. Estos problemas
pueden ser juegos o demostración de teoremas.
Dominios técnicos:
- Donde utilizaremos conocimiento científico-técnico, posiblemente educido de un
experto e intentaremos solucionar problemas del tipo de diagnósticos médicos,
robótica, Típicamente su habla de los Sistemas expertos.
Dominios congnitivos:
- Donde se intenta comprender el funcionamiento de nuestro cerebro y sus
funciones cognitivas (razonar, oír, hablar, o incluso emocionarnos) emulando
dichos procesos con modelos computacionales
¿Cuándo tenemos un problema de IA?
1. Cuando no exista una solución analítica o algorítmica conocida
2. Cuando existan demasiadas posibilidades que hagan difícil el computo y podamos
usar estrategias heurísticas para reducir es calculo.
3. Cuando es difícil el tratamiento de la información y posiblemente sea incompleta o
imprecisa.
4. Cuando nos enfrentemos a un problema que necesite del uso de sentido común.
Historia de la Inteligencia artificial:
- 1943 son los inicios, conociéndola como computación neuronal
- 1949 los primeros algoritmos de aprendizaje en redes neuronales artificiales
- 1950 sale el test de touring.
- 1956 se acuña el término Inteligencia Artificial
- 1958 se desarrolla el lenguaje LISP, con el que se desarrollan los sistemas
expertos.
- 1972 se crea el lenguaje PROLOG
- 1986 se desarrolla el primer algoritmo de aprendizaje por retro programación del
error.
Introducción a la inteligencia artificial
La inteligencia artificial trata de conseguir que los ordenadores simulen en cierta manera
la inteligencia humana. Se acude a sus técnicas cuando es necesario incorporar en un
sistema informático, conocimiento o características propias del ser humano.
Se pueden agrupar en:
a. Sistemas que piensan como humanos
b. Sistemas que actúan como humanos
c. Sistemas que piensan racionalmente
d. Sistemas que actúan racionalmente
Tronco común con varias ramas
Existen varias ramas que surgen del tronco común de la Inteligencia artificial. Las ciencias
de la computación han asistido continuamente al nacimiento de nuevas ramas en las
cuales se encuentran los sistemas expertos, vida artificial, algoritmos genéticos,
computación molecular o redes neuronales.
a. Los sistemas expertos
a. Son la rama más conocida. Parten de la premisa de que los expertos
humanos utilizan una gran cantidad de conocimientos específicos en un
campo que deben ser incorporados en el sistema experto.
b. Las redes neuronales
a. Tratan de representar el conocimiento replicando la estructura neuronal del
cerebro humano. En ellas lo fundamental es el aprendizaje mediante
patrones o ejemplos.
Técnicas de representación del conocimiento
Representación del conocimiento: Escribir en un lenguaje descripciones del mundo.
Representación: es un conjunto de convenciones sintácticas y semánticas que hacen
posible el describir cosas.
En IA, son descripciones para que una máquina inteligente las utilice.
Sintaxis: símbolos y conjunto de reglas para combinarlos.
Semántica: significado de las expresiones construidas.
A pesar de que todo programa de IA parte de una base de conocimiento, es un área de
investigación abierta.
Aspectos básicos:
- Un lenguaje de representación
- Capacidad de inferencias
- Conocimientos del dominio.
Una de las ambiciones es poder representar sentido común.
El fin no es tanto buscar una explicación de comportamiento cognitivo racional, sino el
poder construir razonablemente sistemas inteligentes.
En general, una representación debe de tener:
1. Expresividad adecuada
2. Eficiencia de razonamiento.
Criterios para juzgar una representación:
- Capacidad lógica: que sea capaz de representar que deseamos expresar
- Poder Heurístico: capacidad para resolver problemas por medio de inferencia.
- Conveniencia de la notación: simplicidad para acceder el conocimiento y facilidad
de entendimiento.
La IA es una nueva generación de tecnología informática, caracterizada no sólo por su
arquitectura (hardware) sino también por sus capacidades.
En generaciones anteriores el énfasis fue en la computación numérica para aplicaciones
científicas o negocios. La nueva generación de tecnología informática incluye además de
la manipulación simbólica, con el objetivo de emular comportamiento inteligente, la
computación en paralelo, para tratar de conseguir resultados prácticamente en tiempo
real.
La capacidad de la nueva generación, también conocida como quinta generación es la
habilidad de emular y en algunos casos superar, ciertas funciones inteligentes del ser
humano.
- Aprendizaje:
o Captación automática de conocimientos
- Razonamiento
o Sistemas basados en conocimientos
o Bases de datos inteligentes
o Prueba de teoremas y juegos
- Percepción
o Comprensión del lenguaje natural
o Interpretación de escenas visuales (visión por computadora).
- Locomoción y Manipulación
o Realizar procesos mecánicos y taras manuales (robótica).
- Creación
o Generación, verificación, depuración y optimización automática de
programas.
Algunas de las tareas que estos sistemas realizan en el campo de la IA son:
- Percepción: visión, fonemas
- Lenguaje natural: comprensión, generación y traducción
- Razonamiento de sentido común
- Control de robots
Tareas formales:
- Juegos: ajedrez, backgammon, damas.
- Matemáticas: geometría, lógica, cálculo itnegral.
Tareas expertas:
- Ingeniería: diseño localización de falls, planeamiento
- Analisis científico
- Diagnostico médico
- Análisis financiero.
Desde el punto de vista de los objetivos, la IA puede considerarse en parte como
ingeniería y en parte como ciencia:
- Como ingeniería:
o El objetivo de la IA es resolver problemas reales, actuando como un
conjunto de ideas acerca de como representar y utilizar el conocimiento, y
de cómo desarrollar sistemas informáticos.
- Como ciencia:
o El objetivo de la IA es buscar la explicación de diversas clases de
inteligencia, a través de la representación del conocimiento y de la
aplicación que se da a éste en los sistemas informáticos desarrollados.
Agentes Inteligentes
Inteligencia artificial distribuida:
¿Por qué IA distribuida?
¿Por qué distribuir IA?
- Los problemas están físicamente distribuidos
- El mundo está compuesto por entidades autónomas
- Estas entidades interactúan entre sí y con el entorno
Sistemas multiagentes
Este es un campo interdisciplinario: sistemas distribuidos, IA, teoría de juegos, ciencis
sociales.
- Agentes como un nuevo paradigma de la ingeniería de software: para diseñar e
implementar sistemas complejos distribuidos.
- Agentes como una herramienta para entender sociedades humanas: permiten una
interesante forma de simular sociedades
Noción de agente:
Cuando se hace referencia a la idea de agente surgen dos ámbitos de trabajo:
- El agente en sí mismo
o Aspectos personales
- Los conjuntos de agentes
o Aspectos sociales
¿Qué es un agente?
Es una entidad física o virtual que posee ciertas características generales:
- Es capaz de percibir el entorno
- Posee una representación parcial del entorno
- Es capaz de actuar sobre el entorno
- Puede comunicarse
- Posee un conjunto de objetivos que gobiernan su comportamiento
- Posee recursos propios.
Sistemas Multi agentes (MAS) Sistemas complejos
Pueden ser descompuestos en componentes de software modulares y de funciones
específicas: agentes.
Son concebidos como organizaciones de agentes MAS.
- Los agentes pueden compartir conocimiento sobre el problema y las posibles
soluciones
- Los agentes en un MAS pueden compartir una meta o tener metas
independientes.
- El conocimiento global puede incluir control global, consistencia global, metas
globales, etc.
- La coordinación puede ser muy compleja
¿Qué es un agente?
Es todo aquello que percibe su ambiente mediante sensores y que responde o actúa
mediante efectores.
¿Qué es el ambiente, sensores y actuación?
¿Qué es una gente inteligente?
Es aquel que puede:
- Percibir un mundo perceptual mediante SENSORES y
- Actuar sobre ese mundo mediante EFECTORES ( o actuadores)
La meta de la IA es diseñar un agente inteligente/racional que opere o actúe
adecuadamente en sus ambientes.
¿A que nos referimos con agente inteligente/racional?
- Debe hacer siempre lo correcto de acuerdo con sus percepciones.
- Es aquel que emprende la mejor acción posible en una situación dada.
Racionalidad
Esta depende de:
- La consecuencia de percepciones – todo lo que el agente ha percibido hasta
ahora.
- La medida de éxito elegida.
- Cuánto conoce el agente del ambiente en que opera.
- Las acciones que el agente esté en condiciones de realizar.
¿Qué es un agente?
Es un sistema de computación situado en algún entorno, que es capaz de una acción
autónoma y flexible para alcanzar sus objetivos de diseño.
Existen 2 nociones de agentes: Débil y Fuerte.
Noción Débil
Es la forma más general que es usado el término agente. Es un sistema de software
(hardware) con las siguientes propiedades:
- Autonomía (actúa sin intervención, control)
- Habilidad social (lenguaje de comunicación)
- Reactividad (percepción-acción)
- Proactividad (dirigido a la meta, toma iniciativa)
Ejemplos:
- Agentes triviales
o Termostato
o Demonio en UNIX
- Agentes inteligentes
o Agente recomendador
o Agentes de interfaz
o Agentes que negocian.
Noción más fuerte
Además de las propiedades anteriores se agregan nociones mentales como:
- Conocimiento
- Creencias
- Intenciones
- Obligaciones
- Emociones
Actitudes de información
Todo sistema cuando recibe información se construye un mundo que intenta representar
el mundo exterior.
Creencia es la información que un agente recibe de otros agentes (software, personas).
Conocimiento – Evidencia es la información que proviene de mediciones o inspecciones
directas.
Tipos de agentes
- Estáticos o móviles
- Deliberativos o reactivos
El agente posee una representación del mundo en base a la que razona o tiene un
comportamiento reflejo que depende de sus percepciones
Ejemplo: taxi con piloto automático (taxímetro reemplazado por un agente inteligente)
- Percepciones:
o Video, acelerómetro, instrumental de tablero, sensores del motor.
- Acciones
o Gestión del volante, acelerar y frenar, bocina
- Metas
o Seguridad, llegar a destino, maximizar ganancias, obedecer las leyes,
satisfacción del cliente
- Ambiente
o Calles urbanas, avenidas, tráfico, peatones, clima, tipo de cliente.
Arquitecturas de agentes
Arquitectura BDI (Belief, Desire, Intentions)
Complejidad de problemas
Clasificación de problemas algorítmicos
- Por su naturaleza
o Los problemas algorítmicos son clasificados de acuerdo con su naturaleza
intrínseca respecto a la posibilidad y dificultad de resolverlos.
- Por el tipo de respuesta
o Los problemas son clasificados de acuerdo con la respuesta requerida por
el problema
- Por su tratabilidad:
o Los problemas que admiten solución son clasificados de acuerdo con la
complejidad que presentan los algoritmos para resolverlos
Clasificación por su naturaleza
- Los problemas de naturaleza algorítmica que no admiten solución por algoritmos
son llamados no – computables
- Los problemas de decisión y no computables son llamados indecidibles.
- Los problemas para los cuales existen algoritmos de complejidad polinomial para
resolverlos son llamados tratables.
- Los problemas que admiten solución y para los cuales comprobadamente no
pueden ser resueltos por algoritmos de complejidad polinomial son rotulados de
intratables.
Clasificación por su tratabilidad: P y NP
La clase P:
Está constituida por todos los problemas comprobadamente tratables, esto es, problemas
que pueden ser resueltos por algoritmos de complejidad polinomial.
Algunos problemas de la clase P
- Resolución de sistemas de ecuaciones lineales
- Contabilidad
- Ordenar números, buscar palabras en un texto
- Juntar archivos
- Sistemas operacionales (facturación, control de almacenes, planillas, ventas)
- Cualquier problema de la programación lineal
- Sistemas de transacciones bancarias
- En general los sistemas de información gerencial.
La clase P está constituida por los problemas tratables
La clase NP:
Esta constituido por los problemas que pueden ser resueltos por algoritmos enumerativos,
cuya búsqueda en el espacio de soluciones es realizada en un árbol con profundidad
limitada por una función polinomial respecto al tamaño de la instancia del problema y con
ancho eventualmente exponencial.
Relación P y NP
Ciertamente la clase NP incluye todos los problemas intratables. Además, los problemas
de la clase P pueden ser resueltos también por algoritmos enumerativos. Por
consiguiente, se puede afirmar que
Los problemas de la clase NP que son intratables son llamados de NP-Difícil.
Algunos problemas de la clase NP-Difícil:
- Clique
- Cobertura de vértices y aristas
- Coloración de grafos
- Mochila lineal y cuadrática
- Optimización de desperdicios
- Agente viajero
- Gestión optima de cortes
- Programación de tareas
- Aprendizaje
Clasificación por el tipo de respuesta
Los problemas de tipo de respuesta se clasifican en:
- Problemas de decisión
- Problemas de localización
- Problemas de optimización
Problemas de decisión
Objetivo: Responder Si o No en una determinada indagación.
Problemas de localización:
Objetivo:
Encontrar, caso exista, una estructura que verifique las restricciones del problema, dicha
estructura es denominada de solución viable
Problemas de optimización
Objetivo; encontrar una estructura que verifique las restricciones del problema y optimice
un criterio pre-definido. Esto es, encontrar una solución viable que optimice un criterio
predeterminado.