Inteligencia artificial para múltiples problemas

La solución proporcionada por estos sistemas de planificación se conoce como plan / Pixabay

Un único programa resuelve múltiples problemas de forma automática. La tesis combina dos áreas del campo de la Inteligencia artificial. De un lado investiga sobre la síntesis de programas, o cómo hacer que las máquinas programen código, y por otro se refiere al campo de la planificación generalizada.

 

UPF / Program Synthesis for Generalized Planning fue el título de la tesis doctoral que, Javier Segovia Aguas, bajo la dirección de Anders Jonsson, miembro del grupo de investigación Artificial Intelligence and Machine Learning del Departamento de Tecnologías de la Información y las Comunicaciones (DTIC) de la UPF, defendió en la Universidad Pompeu Fabra, en octubre de 2018.

“La tesis trata de distintos mecanismos cuyo objetivo consiste en resolver múltiples problemas con un único programa y de forma automática”, afirma Segovia. Un trabajo de investigación que ha sido reconocido como mejor tesis europea sobre Inteligencia Artificial 2018 por la European Association for Artificial Intelligence (EURAI), en la reunión internacional de la IJCAI que se celebró en Macao (China), el pasado 14 de agosto.

La tesis combina dos áreas del campo de la Inteligencia artificial

La tesis combina dos áreas del campo de la Inteligencia artificial. De un lado investiga sobre la síntesis de programas, o cómo hacer que las máquinas programen código, y por otro se refiere al campo de la planificación generalizada, entendiendo por “planificación” la secuencia de pasos que conducen a un objetivo o meta, y por “generalizada”, la solución a un problema que puede servir para resolver otros problemas del mismo tipo.

El objetivo principal de esta investigación fue conseguir que técnicas clásicas de planificación fueran capaces de programar código de forma automática y validar que las soluciones encontradas sirvieran también para resolver problemas más complejos, tal que las técnicas clásicas no podrían solucionarlos sin ayuda. Además, otro objetivo fue establecer unos fundamentos teóricos sólidos sobre la complejidad y correctitud de los mecanismos formalizados (si resuelven el problema computacional para el cual fueron diseñados).

El objetivo fue conseguir que técnicas clásicas de planificación fueran capaces de programar código de forma automática y que solucionaran problemas de mayor complejidad

Como explica Segovia “por un lado tenemos un conjunto de problemas que queremos resolver. Por ejemplo, visitar todas las celdas de un tablero, u ordenar un grupo de números aleatorios de forma ascendente. Por otro lado, estos problemas establecen cómo deben ser las soluciones o programas finales (deterministas, recursivos, …) para que resuelvan no uno, sino múltiples problemas”.

“Estas características son del tipo: a) “el programa, ¿debe tener siempre una única opción? (programa determinista) o ¿puede tener situaciones en las que deba escoger? (programa no determinista); b) ¿se puede utilizar conocimiento previo? (soluciones parciales al problema); c) ¿necesita alguna observación extra? Por ejemplo, saber si un número es más grande que otro, etc.”, añade Segovia.

Esta imagen representa tres problemas diferentes a resolver (P1, P2 y P3). A la izquierda se presenta la situación inicial y a la derecha la final. En el ejemplo, el objetivo era poner los elementos en otro orden. Imagen cedida por Javier Segovia (UPF).

“Una vez establecemos el contexto, ya podemos traducir todo a un lenguaje que entiendan los sistemas clásicos de planificación como PDDL (Planning Domain Definition Language). El hecho de tener todos los problemas en PDDL hace que sean independientes de las técnicas utilizadas para resolverlos, de tal forma que hemos podido utilizar herramientas de uso libre de otras universidades y centros de investigación del mundo sin mayor complicación”, comenta el autor.

Los experimentos han demostrado la capacidad de las técnicas de planificación clásicas para resolver problemas de gran complejidad a través de la síntesis de programas

La solución proporcionada por estos sistemas de planificación se conoce como plan, y en éste es donde el autor ha encontrado el programa final que resuelve el problema original y otros problemas del mismo tipo. Y para validar que los programas son soluciones correctas, se ha forzado al sistema a ejecutar estos programas y comprobar que la secuencia de pasos lleva a la meta esperada para cada uno de los problemas.

Los experimentos realizados en esta investigación han demostrado la capacidad de las técnicas de planificación clásicas para resolver problemas de gran complejidad a través de la síntesis de programas.

Además, se ha integrado la generación y validación de programas bajo un mismo problema, ya que hasta ahora se veían como problemas diferentes.

Además, se han establecido los fundamentos teóricos que demuestran la complejidad de cada mecanismo implementado, y la correctitud de las soluciones encontradas

Se ha demostrado también que la programación es flexible, ya que puede proporcionar programas parciales y dejar que el sistema genere el código restante, y que puede reutilizar soluciones de otros problemas para resolver problemas nuevos que son más complejos.

Además, se han establecido los fundamentos teóricos que demuestran la complejidad de cada mecanismo implementado, y la correctitud de las soluciones encontradas.

Finalmente, los mismos procedimientos han podido ser fácilmente aplicados a otras áreas. Por ejemplo, aprender una gramática a partir de un texto, lo cual demuestra la suma adaptabilidad del enfoque propuesto.

 

Futura aplicación o ampliación de la investigación

Como indica Javier Segovia, son muchas las áreas en las que se podrían aplicar los resultados de esta investigación. En el campo de la robótica “donde estamos aplicando técnicas parecidas para programar robots de forma natural”, afirma.

Pero también para poder justificar cómo y por qué una inteligencia artificial está tomando una decisión concreta; para generar código de forma automática con poco esfuerzo; en ciberseguridad, para detectar rápidamente ataques y detenerlos. “O incluso en biología teórica, donde nos interesa saber cómo un sistema va evolucionando con el tiempo, algo parecido a lo que llamamos el juego de la vida”.

Referencia bibliográfica: 
Javier Segovia Aguas (2018), Program Synthesis for Generalized Planning, tesis doctoral, Universidad Pompeu Fabra, 5 de octubre. Director: Anders Jonsson. Mejor tesis europea sobre Inteligencia Artificial 2018 por la European Association for Artificial Intelligence (EURAI).

Dejar comentario

Deja tu comentario
Pon tu nombre aquí