viernes, octubre 20, 2006

Problemas como un conjunto de estados

Una de las tácnicas básicas de resolución de problemas que utiliza la IA se basa en plantear los problemas como un conjunto de estados: uno o varios estados de partida, otros de solución y entre medios hay miles de estados que llevan a la solución.

Así dicho suena rarísimo, pero es mas fácil de entender y explicar con un ejemplo.

Tenemos el clásico problema del granjero que tiene un lobo, una oveja y una caja de lechugas. Este granjero no se le ocurre otra cosa que cruzar el rio en una barca, pero en la barca sólo puede montarse él y un animal o la caja de lechugas. Con lo que tiene que ir haciendo virgerias para no dejar en una orilla a la oveja con la caja de lechugas o al lobo con la oveja, ya que armarian el taco.

Este problema se plantea como un estado de la siguiente forma:
{PosicionGranjero PosicionLobo PosicionOveja PosicionLechugas}
Los valores que puede tomar PosicionGanjero son 'derecha' e 'izquierda' en referencia a que se encuente en un lado u otro del rio. Lo mismo para el lobo, oveja y caja de lechugas. De esta forma, en un momento dado tenemos por este estado
{derecha izquierda derecha derecha}

sirve para indicar que el lobo esta en una orilla (izquierda) y el resto estan en la otra orilla.

Con esto hemos planteado el conjunto de estados del problema, nos queda ver los estados de partida y finales (solución del problema). Aquí es simple, el estado inicial es
{izquierda izquierda izquierda izquierda}
y el final es
{derecha derecha derecha derecha}
Simple pero surge una pregunta, ¿cómo se usa esto para encontrar una solución?.

Es cuando aparecen las operaciones. No son más que acciones que se aplican a los estados para cambiar uno a varios valores. Tenemos un operación que es GranjeroCruzaRioSolo, en la que el granjero desde la orilla que esté cruza el rio hacia la otra orilla, sin llevar con él a nadie. Otra operación seria GranjeroCruzaRioConLobo, etc.

Estas operaciones tendran unas limitaciones (un granjero no podra cruzar el rio con el lobo, si el lobo se encuentra en la orilla contraria) que se llaman precondiciones y unas consecuencias (cambian valores en el estado actual para generar un nuevo estado). Por ejemplo, al estado
{izquierda izquierda izquierda izquierda}
le aplicamos la operacion GranjeroCruzaRioConLobo generando el estado
{derecha derecha izquierda izquierda}
Visto de esta forma, el ordenador lo que hace es ir generando una especie de árbol, aplicando las diferentes operaciones a cada estado (lo que se conoce como la cuenta la vieja) hasta que dá con un estado que se asemeja al estado final que habiamos propuesto como solución. Los nodos del arbol son los estados y las ramas que se generan por cada nodo, son el resultado de aplicar todas las operaciones posibles a ese estado (o nodo) que produciran a su vez nuevos nodos, etc.

Para el ordenador, es simple cálculo bruto. Todas las posibilidades y listo. Una vez encontrado ese estado final, la solución es recorrer el arbol en sentido inverso. Para él que lo vé desde fuera, le parecerá que el ordenador 'piensa'.

Por eso, el profesor de IA decia que esta asignatura es la asignatura del Marketing. Queda muy bien hablar de inteligencia artificial, pero de inteligente tiene bien poco.

Actualización: Vía el blog Sospechosos Habituales, me tropiezo y quedo embobado con el vídeo de pizarras inteligentes.



Increible.

No hay comentarios:

Publicar un comentario

Cómo utilizar el servicio Secrets Manager para guardar las claves privadas de SSH

Para guardar la clave privada en el servicio Secrets Manager como un secreto en modo texto sin formato, sigue estos pasos Supongamos que la ...