viernes, 6 de noviembre de 2009

Simulated Annealing

Algoritmo Simulated Annealing:

Partimos de una temperatura inicial

mientras la temperatura no sea cero hacer
/* Pase aleatorio por el espacio de soluciones */

para un numero prefijado de iteraciones hacer
Nuevo = generamos_sucesores(Actual);
diferencia = calidad(Actual) - calidad(Nuevo);
si diferencia > 0 entonces Actual = Nuevo;
sino con probabilidad e^(diferencia/T) Actual = Nuevo;
fpara

Disminuimos la temperatura
fmientras

Hill Climbing

Algoritmo Hill Climbing:

Actual = Estado_inicial;
fin = falso;

mientras (no fin) hacer
hijos = generar_sucesores(Actual);
hijos = ordenar_y_eliminar_peores(hijos, Actual);
si (no vacío?(hijos)) entonces Actual = escoger_mejor(hijos);
sino fin = cierto;
fmientras

IDA*

Algoritmo IDA*:

profundidad = profundidad(Estado_inicial);

mientras (no es_final?()) hacer
Estados_Abiertos.insertar(Estado_inicial);
Actual = Estados_Abiertos.primero();

mientras (no es_final?(Actual)) y (no Estados_Abiertos.vacía?()) hacer
Estados_Abiertos.borrar_primero();
Estados_Cerrados.insertar(Actual);
hijos = generar_sucesores(Actual, profundidad);
hijos = tratar_repetidos(hijos, Estados_Abiertos, Estados_Cerrados);
Estados_Abiertos.insertar(hijos);
Actual = Estados_Abiertos.primero();
fmientras

profundidad = profundidad +1;
Estados_Abiertos.inicializa();
fmientras

A*

Algoritmo A*:

Estados_Abierto.insertar(estado_inicial);
Actual = Estados_Abiertos.primero();

mientas (no es_final? (Actual)) y (no Estados_Abiertos.vacía?()) hacer
Estados_Abiertos.borrar_primero();
Estados_Cerrados.insertar(Actual);
hijos = generar_sucesores(Actual);
hijos = tratar_repetidos(hijos, Estados_Abierto, Estados_Cerrados);
Estados_Abiertos.insertar(hijos);
Actual = Estados_Abiertos.primero();
fmientras

2.6. Satisfacción de restricciones

2.5. Búsqueda con adversario

2.4. Búsqueda local

2.3. Búsqueda heurística

2.2. Búsqueda no informada

2.1. Resolución de problemas

Temario tema 2: Introducción IA

TEMARIO TEMA 2:

2. Resolución de problemas, búsqueda

2.1. Resolución de problemas

2.1.1. ¿Qué es un problema?
2.1.2. El espacio de estados
2.1.3. Algoritmos de búsqueda en el espacio de estados

2.2. Búsqueda no informada

2.2.1. Búsqueda independiente del problema
2.2.2. Búsqueda en anchura prioritaria
2.2.3. Búsqueda en profundidad prioritaria
2.2.4. Búsqueda en profundidad iterativa

2.3. Búsqueda heurística

2.3.1. El conocimiento importa
2.3.2. El óptimo está en el camino
2.3.3. Tú primero y tú después
2.3.4. El algoritmo A*
2.3.5. Pero, ¿encontraré el óptimo?
2.3.5.1. Admisibilidad
2.3.5.2. Consistencia
2.3.5.3. Heurístico más informado
2.3.6. Mi memoria se acaba
2.3.6.1. El algoritmo IDA*
2.3.6.2. Otras alternativas

2.4. Búsqueda local

2.4.1. El tamaño importa, a veces
2.4.2. Tu sí, vosotros no
2.4.3. Demasiado calor, demasiado frío
2.4.4. Cada oveja con su pareja
2.4.4.1. Codificación
2.4.4.2. Operadores
2.4.4.3. Combinación de individuos
2.4.4.4. El algoritmo genético canónico
2.4.4.5. Cuando usarlos

2.5. Búsqueda con adversario

2.5.1. Tú contra mi o yo contra ti
2.5.2. Una aproximación trivial
2.5.3. Seamos un poco más inteligentes
2.5.4. Seamos aún más inteligentes

2.6. Satisfacción de restricciones

2.6.1. De variables y valores
2.6.2. Buscando de manera diferente
2.6.2.1. Búsqueda con backtracking
2.6.2.2. Propagación de restricciones
2.6.2.3. Combinando búsqueda y propagación
2.6.3. Otra vuelta de tuerca

Alan Turing

jueves, 5 de noviembre de 2009

La habitación china

Test de Turing

El Test de Turing consiste en un desafío en el que se sitúa un juez en una habitación, otra persona en otra habitación junto a un ordenador. El juez debe descubrir cuál es el ser humano y cuál es la máquina, estándoles a los dos permitido mentir al contestar por escrito las preguntas que el juez les hiciera. La tesis de Turing es que si ambos jugadores eran suficientemente hábiles, el juez no podría distinguir quién era el ser humano y quién la máquina. En este caso, se concluiría que la máquina piensa. Pero hasta el momento, ninguna máquina ha podido pasar esta prueba; la cuál fue publicada por A. Turing en 1950 en un artículo llamado "Computing machinery and intelligence".

El famoso caso de la habitación china se opone a esta tesis, afirmando que una máquina no puede pensar, sólo actúa según un patrón dado.

Disciplinas relacionadas

Filosofía:
  • ¿Pueden usarse las reglas formales para determinar conclusiones válidas?
  • ¿Cómo surgen los pensamientos de una cerebro físico?
  • ¿De dónde viene el conocimiento?
  • ¿Cómo nos conduce el conocimiento a la acción?
Matemáticas:
  • ¿Qué puede ser computado?
  • ¿Cómo razonamos con información incierta?
Economía:
  • ¿Cómo debemos tomar decisiones para minimizar el coste?
  • ¿Cómo debemos hacer una cosa cuando los demás no pueden hacerla?
Neurociencia:
  • ¿Cómo procesan los cerebros la información?
Psicología:
  • ¿Cómo piensan y actúan los humanos?
Ingeniería informática:
  • ¿Cómo podemos construir un sistema inteligente?
Teoría del control y de la cibernética:
  • ¿Cómo pueden los artefactos operar bajo su propio control?
Lingüística:
  • ¿Cómo se relaciona el lenguaje con los pensamientos?

1. Introducción a la Inteligencia Artificial

La inteligencia artificial está influenciada por áreas tan diversas como la filosofía, matemáticas, economía, neurociencia, psicología, lingüística y la ingeniería informática.

Test de Turing: si un sistema lo pasa es inteligente.
La habitación china: una máquina no puede pensar.

HISTORIA:
Los inicios (1943-1956):
- Primer modelo de neurona, cualquier función es computable por una red de neuronas, aprendizaje.
- Programas de ajedrez.

El nacimiento (1956):
- Seminario de Dartmouth.

Entusiasmo inicial (1952-1969):
- GPS: Resolvedor general de problemas, imitación de las demostraciones humanas.
- Programa jugador de damas, aprendizaje.
- Sistemas planificadores, representación interna del mundo.
- Aplicaciones de dominios reducidos.
- Redes neuronales
La dura realidad (1966-1974):
Los sistemas basados en el conocimiento (1969-1979):
La industrialización (1980-1988):
Actualidad (1989 - 2009):

Inteligencia Artificial

La Inteligencia Artificial es la ciencia que se dedica a estudiar y diseñar sistemas que piensan/actúan como humanos/ de forma racional*.

La IA es un campo muy amplio que trata problemas muy diversos, desde los denominados
banales hasta los sistemas expertos:

Banales:
- Planificación: la habilidad de decidir una buena secuencia de actos para conseguir nuestros objetivos.
-
Visión: la habilidad de darle sentido a lo que nosotros vemos.
-
Robótica: la habilidad de movernos y actuar en el mundo.
-
Lenguaje natural: la habilidad de comunicarte.

Expertos:
- Diagnóstico médico.
- Reparación.
- Configuración de ordenadores.
- Planificación financiera.

Es paradójico, pero resulta más difícil desarrollar un sistema banal que uno experto.


* Un sistema es racional si hace las "cosas bien".

Introducción a la Inteligencia Artificial

TEMARIO:
  1. Introducción a la Inteligencia Artificial
  2. Resolución de problemas, búsqueda
    1. Representación de problemas
    2. Búsqueda no informada
    3. Búsqueda heurística: A*, IDA*, búsqueda local
    4. Juegos: minimax, poda alfa-beta
    5. Satisfaccion de restricciones
  3. Representación del conocimiento
    1. Sistemas de producción
    2. Representaciones estructuradas, Ontologías
  4. Sistemas Basados en el Conocimiento
    1. Aquitectura
    2. Los sistemas de producción en los SBC
    3. Ingeniería del conocimiento, adquisición
    4. Razonamiento Aproximado
  5. Tratamiento del lenguaje natural
    1. Vision historica
    2. Tratamiento por niveles del lenguaje natural
    3. Formalismos logicos: Gramaticas de clausulas definidas
    4. Aplicaciones
  6. Introduccion al aprendizaje automatico

Preámbulo

Esbozo mental sólo pretende ser un lugar
donde exponer anotaciones particulares sobre la
Inteligencia Artificial.