jueves 30 de julio de 2009

Mundo de bloques

El mundo de los bloques es el dominio más empleado en planificación para mostrar de forma sencilla el funcionamiento de los planificadores. Consiste en un conjunto de bloques dispuestos sobre una mesa o encima de otros. Hay un brazo de un robot que puede levantar los bloques de encima de la mesa o de otros bloques y dejarlos, a su vez, encima de la mesa, o encima de otros bloques. La siguiente figura muestra un ejemplo de un problema en el mundo de los bloques, con un estado inicial y unas metas.

 

Bajo una formalización clásica de este dominio (hay otras con otros operadores y predicados), las operaciones serían:

 

Ejemplo de reglas en STRIPS

 

Coger(X)

Pre-condición: sobremesa(X), manovacia, libre(X)

Lista de supresión: sobremesa(X), manovacia, libre(X)

Formula de adición: cogido(X).

 

Observen que la precondición y la supresión van a ser iguales, ya que la acción se suprime del espacio de estado.

 

Dejar(X)

Precondición y Supresión: Cogido(X)

Adición: sobremesa(X), libre(X), manovacia

 

Apilar (X, Y)

Precondición y Supresión: cogido(X), Libre(Y)

Adición: manovacia, sobre(X,Y), libre(X)

 

Desapilar(X.Y)

Precondición y Supresión: manovacia, libre(X), sobre(X,Y)

Adición: cogido(X), libre(Y)

 

 

viernes 17 de julio de 2009

Strips

La planificación es un problema de búsqueda en un espacio de estados, compuesto por:

·        Un conjunto de estados (descrito por un conjunto de predicados)

·        Unas funciones de transición (operadores)

·        Un estado inicial

·        Un conjunto de metas

 

El objetivo es encontrar un plan o secuencia de operadores tales que permitan transitar entre el estado inicial y un estado en el que sean ciertas las metas.

 

STRIPS surge como mejora al método GPS inventado por Newell, Shaw y Simon, y fue construido inicialmente por Fikes y Nilsson. Realiza una búsqueda de la solución utilizando una pila de metas que guarda las metas que deben conseguirse y los operadores que pueden conseguirlas. Cuando la pila se queda vacía se habrá conseguido un plan válido.

 

En STRIPS los operadores se definen según tres listas:

·        Precondiciones: condiciones necesarias para que se cumpla el operador

·        Añadidos: lista de predicados que se añaden al estado cuando se ejecuta el operador

·        Borrados: lista de predicados que se borran del estado cuando se ejecuta el operador

 

Estas dos últimas listas conforman las poscondiciones del operador.

 

Problema del marco: Es el problema de especificar cuales de las reglas de una descripción de estado pueden cambiar y cuales no.

 

Los sistemas de tipo STRIP son capaces de suprimir ciertos literales de una descripción de estados (cambiar un conjunto de estados en el otro), diestras las reglas basadas en implicaciones restringen tan solo el conjunto original de estados.

 

STRIPS asume la hipótesis del mundo cerrado: cualquier afirmación que no aparezca explícitamente representada en el estado, y que no puede ser deducida por las reglas de inferencia al principio de la ejecución, es falsa. Esto ahorra el trabajo de describir completamente el estado con todas las afirmaciones que son falsas.

 

El espacio de estado se puede representar a través de un grafo.

 

Para problemas complejos, una búsqueda hacia delante generara un grafo muy grande  y su exploración solo será posible si se combina con una función de evaluación bien informada.

 

STRIPS realiza una búsqueda hacia atrás, como casi todos los planificadores, con la estrategia de profundidad con retroceso, en la que cada nodo del árbol de búsqueda es una pila de metas y operadores.

 

viernes 10 de julio de 2009

Sistemas generadores de planes: Introduccion

Muchas tareas de deducción se resuelven mediante sistemas de producción. Otros problemas para su solución requieren de sistemas más complejos, ejemplos de estos dominios: la resolución de problemas de robot y la programación automática, los cuales están ligados a los sistemas de resolución de problemas.

 

La programación de un robot implica:

 

·        La percepción del mundo circundante.

·        La formación de planes de acción.

·        El control de la ejecución de esos planes

 

A la hora de resolver un problema se parte de sintetizar una secuencia de acciones que permitan alcanzar un objetivo dado una situación inicial.

 

Donde la  síntesis de las acciones se resuelve mediante un sistema de producción que estaría compuesto por:

 

La base de datos globales o base de hechos: Es una descripción actual de la situación o estado del mundo en que se encuentra el robot.

 

Las reglas: son cálculos que representan las acciones del robot.

 

En los sistemas basados en reglas de producción, cuando una regla de implicación se aplica a la base de datos global, este se modificaba mediante la adición de una estructura, pero no era suprimido de esa base de datos.

 

 

miércoles 1 de julio de 2009

La programacion de robot

Veremos algunos de los lenguajes de programación más usados en la robótica.


Gestual Punto A Punto

 

Se aplican con el robot "in situ", recordando a las normas de funcionamiento de un magnetófono doméstico, ya que disponen de unas instrucciones similares: PLAY (reproducir), RECORD (grabar), FF (adelantar), FR (atrasar), PAUSE, STOP, etc. Además, puede disponer de instrucciones auxiliares, como INSERT (insertar un punto o una operación de trabajo) y DELETE (borrar). Este manipulador en línea funciona como un digitalizador de posiciones.


Los lenguajes más conocidos en programación gestual punto a punto son el FUNKY, creado por IBM para uno de sus robots, y el T3, original de CINCINNATI MILACROM para su robot T3. Los movimientos pueden tener lugar en sistemas de coordenadas cartesianas, cilíndricas o de unión, siendo posible insertar y borrar las instrucciones que se desee. Es posible, también, implementar funciones relacionadas con sensores externos, así como revisar el programa paso a paso, hacia delante y hacia atrás. En el lenguaje FUNKY se usa un mando del tipo "joystick", que dispone de un comando especial para centrar a la pinza sobre el objeto para el control de los movimientos, mientras que el T3 dispone de un dispositivo de enseñanza ("teach pendant").

 

Estructurados De Programación Explícita


Teniendo en cuenta las importantísimas características que presenta este tipo de programación, merecen destacarse los siguientes lenguajes:

·        AL

·        HELP

·        MAPLE

·        PAL

·        MCL

·        MAL EXTENDIDO

Con excepción de HELP, todos los lenguajes de este grupo están provistos de estructuras de datos del tipo complejo. Así, el AL utiliza vectores, posiciones y transformaciones; el PAL usa, fundamentalmente, transformaciones y el MAPLE permite la definición de puntos, líneas, planos y posiciones. Sólo el PAL, y el HELP carecen de capacidad de adaptación sensorial. Los lenguajes AL, MAPLE y MCL, tienen comandos para el control de la sensibilidad del tacto de los dedos (fuerza, movimiento, proximidad, etc.). Además, el MCL posee comandos de visión para identificar e inspeccionar objetos.


En función de los objetivos.


La filosofía de estos lenguajes consiste en definir la situación final del producto a fabricar, a partir de la cual se generan los planes de acción tendentes a conseguirla, obteniéndose, finalmente, el programa de trabajo. Han surgido dentro del campo de la Inteligencia Artificial  y los  lenguajes más conocidos de este grupo son:

·        STRIPS

·        HILAIRE

 

STRIPS

Fue diseñado, en la Universidad de Stanford, para el robot móvil SHAKEY. Se basa en un modelo del universo ligado a un conjunto de planteamientos aritmético-lógicos que se encargan de obtener las subrutinas que conforman el programa final.

 

HILAIRE
Procedente del laboratorio de Automática Y Análisis de Sistemas (LAAS) de Toulouse, está escrito en lenguaje LISP. Es uno de los lenguajes naturales más interesantes, por sus posibilidades de ampliación e investigación.

 

Ambos se originan dentro de la IA y están basados en el dominio de aplicación de los sistemas de resolución de problemas.