Archive for the ‘Algoritmos’ Category:
Algoritmo primero a lo Ancho
Como especificar un problema en IA
Para producir una especificación formal de un problema se deben definir:
- espacio de estados válidos;
- estado inicial del problema;
- estado objetivo o final;
- estado de falla
- reglas que se pueden aplicar para pasar de un estado a otro.
Un estado es la representación de un problema en un instante dado. Para definir el espacio de estados no es necesario hacer una enumeración exhaustiva de todos los estado válidos, sino que es posible definirlo de manera más general.
El estado inicial consiste en uno o varios estados en los que puede comenzar el problema.
El estado objetivo consiste en uno o varios estados finales que se consideran solución aceptable.
Las reglas describen las acciones u operadores que posibilitan un pasaje de estados.
Una regla tiene una parte izquierda y una parte derecha.
La parte izquierda determina la aplicabilidad de la regla, es decir, describe los estados a los que puede aplicarse la regla.
La parte derecha describe la operación que se lleva a cabo si se aplica la regla, es decir, como obtener el estado sucesor.
Por ejemplo, en el problema de jugar al ajedrez:
el espacio de estados son la totalidad de tableros que se puede generar en un juego de ajedrez;
el estado inicial es el tablero de 8 x 8 donde cada celda contiene un símbolo de acuerdo a las piezas situadas;
el objetivo o estado final se define como cualquier posición de tablero en la que el contrario no puede realizar ningún movimiento legal y su rey esté amenazado.
las reglas son los movimientos legales, que pueden describirse mediante una parte patrón para ser contrastado con la posición actual de tablero y otra parte que describe el cambio que debe producirse en el tablero.
dado que escribir exhaustivamente todas las reglas es imposible prácticamente, (en el ejemplo, escribir todas las posiciones
Algoritmo primero en profundidad
El algoritmo primero en profundidad funciona de la manera como lo muestra este esquema:
A continuacion, el algoritmo de busqueda Depth First:
Begin
open := [Start];
closed := [ ];
while open ? [ ] do
begin
remove leftmost state from open, call it X;
if X is a goal then returns SUCCESS
else begin
generate children of X;
put X on closed;
discard children of X if already on open or closed;
put remaining children on left end of open
end
end
return FAIL
end
A continuacion se muestra un arbol, el cual va a ser recorrido hasta encontrar el nodo U
La implementacion del algoritmo seria:
open = [A]; closed = [ ]
open = [B,C,D]; closed = [A]
open = [E,F,C,D]; closed = [B,A]
open = [K,L,F,C,D]; closed = [E,B,A]
open = [S,L,F,C,D]; closed = [K,E,B,A]
open = [L,F,C,D]; closed = [S,K,E,B,A]
open = [T,F,C,D]; closed = [L,S,K,E,B,A]
open = [F,C,D]; closed = [T,L,S,K,E,B,A]
Continua hasta encontrar U, o open = [ ].
Estrategias y Algoritmos de Busqueda de Informacion
Existen diferencia de estrategias de búsqueda de información:
- Algoritmo Primero a lo Ancho (BREATH-FIRST)
- Algoritmo Primero en Profundidad (DEPTH-FIRST)
- Búsqueda Heurística:
- Ascenso a Colina
- Recocido Simulado
- Búsqueda Primero el Mejor (BEST-FIRST)
- Teorema de Admisibilidad
- Algoritmo Guiado por Agenda
Las técnicas de solución de problemas en IA, en general, incorporan un proceso de búsqueda.
Todo proceso de búsqueda puede ser visualizado como el recorrido por un árbol en el que cada nodo representa un estado y cada rama representa las relaciones entre los estados cuyos nodos conecta.
En general, las reglas contienen en forma implícita el árbol, y se genera en forma explícita sólo aquellas partes que se decide explorar.
La dirección en la cual se conduce la búsqueda (hacia adelante o hacia atrás).
La estrategia de control, o forma de seleccionar las reglas que pueden ser aplicables. Los principales requerimientos de una buena estrategia de control son: que cause desplazamiento en el espacio de estado; y, que sea sistemático.
La forma de representar cada nodo del proceso de búsqueda (representación del conocimiento).
Muchas veces, tratar el proceso como búsqueda en un grafo en lugar de una búsqueda en un árbol, puede reducir el esfuerzo que se gasta en explorar senderos, esencialmente iguales, varias veces. Sin embargo, los requisitos asociados, son:
Cada vez que se genere un nodo se debe chequear para ver si ha sido generado antes.
Se deben introducir procedimientos especiales para que la búsqueda no quede atrapada en algún lazo.
Existen dos formas de conducer las busquedas:
Conducida por el objetivo (goal driven – backward chaining)
Tomar el objetivo que queremos resolver, establecer que reglas o movimientos legales podrían usarse para generar este objetivo y determinar que condiciones deben ser verdaderas para ser usadas.Estas condiciones constituyen los nuevos objetivos de la búsqueda y la búsqueda continua hacia atrás hasta encontrar los hechos del problema.
Conducida por los datos (data driven – forward chaining)
Búsqueda empieza con los hechos o datos conocidos y un conjunto de movimientos legales o reglas para cambiar de estado.La búsqueda se realiza aplicando las reglas a los datos o hechos, produciendo nuevos datos o hechos. Este proceso continua hasta generar una ruta que satisfaga la condición del objetivo.
Areas de las Ciencias de la Computacion
Ares y Campos de Estudio en el que se involucran las Ciencias de la Computacion
- Fundamentos matematicos
- Teoria de la computacion
- Algoritmos y estructuras de datos
- Lenguajes de programacion
- Compiladores
- Bases de datos
- Sistemas concurrentes
- Sistemas paralelos
- Sistemas distribuidos
- Inteligencia artificial
- Graficos por computadora
- Computacion cientifica



