 So this is a joint work with Hector Geffner, we're both from the AI group and with the support of GM, who's our PhD student working on this project. Still too loud, no? Wait. It's okay. Okay. So I'm gonna just start by giving a very brief introduction to AI in general and AI planning in particular, which is the subfield of AI that we consider for this project. And then I'll describe some of the recent advances in AI planning from our group. And finally, how this ties together with our Maria de Mesto project. So AI in general is the area of computer science, which is concerned with trying to emulate the intelligent behavior in particular using computation. So using computers. So you can say that understanding a behavior X or being able to emulate the behavior X is understanding how to generate this behavior using a computer. And of course X can be of many different types. So we can be able to solve a problem of some type. Image recognition is usually considered part of AI, understanding what someone says. Well, a joke, which is more subtle than just understanding the meaning of the words. Doing some tasks, et cetera. So in the recent years, AI has received a lot of attention in the media because of recent advances in many different fields. So now today systems are able to recognize speech, recognize images, and there's self-driving cars, which have a strong AI component. There are systems that give recommendations to people that allow you to search for information easily. And there's the IBM Watson, which is famous for winning the Jeopardy TV show program, but also is used now for other uses. Google purchased a company called DeepMind that pioneered the algorithms for learning how to play Atari video games. I'm gonna talk about that a little bit more. And the same company that recently developed an algorithm that plays a board game called Go that was able to beat one of the world's best player in a highly, well, in Asia, this is an extremely popular game. So it was televised for millions and millions of people. So most of these advances in fact are based on machine learning. And so we think machine learning is important and actually we do more and more machine learning in our group, but the work I'm gonna talk about today goes further in the sense that machine learning is limited that the main use of machine learning is to associated some stimulus that you get with a response or a prediction of some type. Well, this is sufficient to produce many interesting applications, but in several senses it's insufficient to achieve some types of intelligent behavior. In particular humans, when we learn, we learn by building models of the world around us. So, for example, so when if I'm learning how to navigate the building of the department, for example, I have this mental model of how what the department looks like. And so these type of models are used in many situations for generating behavior or other tasks such as interpreting what other people or agents around us are doing, sorry. And for understanding what is happening or going on in the world in different ways or to communicate with other people. So, and building models goes beyond what typical machine learning algorithms can do. So AI planning is the formalism of artificial intelligence which is model based. So it's based on having access to such models about how the world works. So the basic form of the problem is that you have a set of variables and a set of actions. These actions affect the variables in some way. You have an initial situation and a goal situation that you want to achieve. And the aim is to find a sequence of actions that map this initial state to the goal state. And the model is actually hidden in the sense in these actions. So there are formalisms of this problem where you have to learn which actions to achieve. But in the formalism of AI planning the actions, you know what the effect of the actions are. In the base case, the actions are deterministic. You know exactly what the effect is of each action. So even though this looks like a clear representation of this type of computational problem, it's actually very, it's computational intractable. So you can find, it's easy to define small problems of this type that for which the solution will take, well, you cannot find the solution within a reasonable amount of time. So, and there are extensions that make the problem even harder. So you can extend this by having incomplete information about where you, what the values of the variables are. Actions can be stochastic. So you don't know what the exact effect will be of each action. There might be costs of actions and you want to minimize costs. There might be other agents in the environment. So the example shown here is an example from classic example from the AI book which is called the Wumpus world where an agent starts in the, so the agent is this hunter or gold seeker in the bottom left corner. He has to find a gold, a stash of gold and there are some pits where he can fall down and there's a Wumpus which will eat him and he can't sense exactly where these objects are. So there's some sensing actions that he can do. So he can sense whether there's a breeze, there's a pit in the cell next to him or whether there's a stench from the Wumpus which is also next to him. So then this problems becomes even harder because you have to reason about what if I go into the next cell? Well, I might risk running into an obstacle or travel. Okay, so I'm gonna talk about some of the applications that we've been working on recently in the AI group and a little bit about the technology that's behind these applications. So one recent focus that I mentioned before is video games. So what we've been working on is the application of generic. So most of the work that we do in our group is generic in the sense we want to develop algorithms that will work for a broad class of problems, not just for a single one. So one example is using such generic algorithms to solve, to control agents in video games. So why video games? Well, in particular, so there's a recent AI competition called the general video game AI competition. There's also been this focus, as I mentioned before, on Atari video games, which with today's standards have pretty awful graphics. So why are we interested in solving this problem? So it's actually, it turns out that this problem is computationally very difficult. So humans are very good at doing it. So in a sense, it's a good way to showcase the strength of algorithms if we're able to emulate or come close to human behavior in these tasks. So I'm just gonna show a couple of videos that, so this is a video game called Sokoban where you have to push boxes around to, well, you have to push boxes and bring them to a final location. And it has a epic music battle. So it has a strong planning component because if you push the box in the wrong direction or in the wrong order, then you'll not be able to solve the problem. This is a video of these algorithms playing Atari video games. So this is, you can tell from the early 80s how to drive a car. So at each point you have to take an action, decide which action to take, whether to go left or right or whether to possibly speed down. This is the classic game of breakout. We have to move this platform to bounce the ball, et cetera. So I'm not gonna show you the whole video. Okay, and one of the entries of people related to our group won the general video game competition last year using an algorithm that's called YBKribber. We also work in robotics. So in robotics, there's a common problem in robotics is what's called motion planning, which is basically to decide how to bring a robot actuator to a certain location. And so there's a lot of work on how to do motion planning. But what if we give the robot a high level task of bringing objects to a certain location or having to stack objects in a certain way or like this Sokoban problem of deciding in which order to do things. Well, then we have this aspect of task planning, which is this high level symbolic reasoning about in which order we have to do things. So, and how to combine these two is not a problem that has been solved. So one of the lines of work of our group recently has been to try to combine, to develop algorithms for combining task and motion planning. So it's a high level task that the robot has to solve. Well, once you decide in which order to move objects, then you have to navigate or the motion planning to reach that object, et cetera. So our approach is to integrate these two planning techniques and both, so we do both task and motion planning in parallel. So in this case, for example, the goal is for this robot to bring a ball to the upper right corner. And as you can see, there's some obstacles in the way, so the robot has to decide in which order to move these obstacles in order to reach its objective. And once it's decided in which order to move the obstacles, it then has to get to that ball, for example, and grab it and then onto it and move it somewhere else. In this case, the goal is to get this actuator aligned with the green line. So again, there's some obstacles in the way, so you have to do this task planning to decide in which order to remove these objects and reach your objective. Okay, so and the very recent project that we've just started is a third type of application is for doing organic synthesis. So to model real-world organic synthesis problems as planning problems. So and in part, this is possible because of the expressivity of the novel types of planning formalisms that we've developed in the group. So this is potentially in collaboration with researchers in Canada, I believe. So I'm gonna just say something about what kind of technology are behind these applications. So one recent technology that we've developed is something called functional strips. So the planning problems, the type of planning models that I've described are described using something called, well, it's propositional planning. It's described using binary or propositional variables. So functional strips is an extension of this which allows to express more complex types of problems that include integer and real variables and different types of constraints that you put on the problem, et cetera. And the idea is well, all to also accompany these with algorithms that are effective for solving these type of problems. And so this allows researchers to bridge this gap between the standard planning models which are poor in the sense that some types of problems are not modeled effectively using the standard planning tools. So we, this more expressive model can help us solve real more problems that are more real world like. So just as has happened in other fields such as satisfiability or constrained satisfaction problems. So another technology we've been developing recently is something that we call planning programs. So it's planning programs is a compact representation for describing abstract plans for solving certain classes of problems, not just a single problem. So if we have, for example, the problem of moving two balls somewhere. So we have to pick up two balls and move them to a bin. The classical plan will include two actions for picking up a ball, two actions for dropping a ball, et cetera. But a high level plan that includes a loop will work for any number of balls and any number of, potentially any number of locations of balls because if these abstract actions know exactly how to perform something like grasping a ball. So here you see that the program says to grasp a ball, drop it in the bin where it's supposed to go, then choose the next ball. And as long as there exists the next ball, then you go to the beginning of the program again and repeat. Okay, so one of our papers in this area was just recently awarded with a distinguished paper award at HKEY, the main AI conference, which is to take place in a couple of weeks. Okay, so I'm gonna now just talk about how these technologies tie together with what we plan to do in the Maria Mesto project. So the idea here of our project is to increase the, so we developed this set of planning tools in our group that are useful for solving many types of problems. So, but at least until present, we haven't been done such a good job of publishing these tools, making them available to the public. I mean, so our goal of this project is to enhance the availability of our tools to make them open to other researchers to use, publicize them so that people know where to find them. So we're working on one hand on general software development guidelines for the projects that within the group so that we use best practices such as, I mean, documenting code, testing code, integrating with existing systems, et cetera, packaging code so that they can be downloaded as units. So our main algorithms that we developed are, so now we're in the process, this has started already to document and bring these packages to repositories. So to have a sensory repository for our research group where people can go and download our tools. Also, this focus on reproducibility, so we want to make it easy for people, to other researchers to try to reproduce the results that we publish in our papers, so by packaging things in an easy to use manner so that, for example, you can, many of the researchers in our group, in our area use Ubuntu, so we package them as Ubuntu packages, or as Docker images, which allows you to run experiments on a virtual machine without even downloading the software on your own machine. And, like I said, of facilitating reproducibility to, so in our area, in the model-based the formalism of planning, it's not so data-centered, so it's data is instead in the benchmarks that we use, there's a large set of benchmarks, there's a planning competition that's been running for many years, there's a lot of examples of problems expressed in the way that I've talked about, to publish also experiment scripts so that people can run exactly the same experiments that we have run, et cetera, and distribute results in the same way that software that we distribute software. Another part of the project is to help people use and these algorithms that we've developed for task and motion planning for robotics, so for robotics there's an operating system that's widely used today by robotics researchers called ROS, the robot operating system, so our objective here is to take the planning technology and make it compatible with ROS, so that people that do robotics can download our software, plug it into ROS, which they're familiar with, and then run planning algorithms to do this high-level task planning for their problems, so this can be combined with, there's a simulator, a robotics simulator called Gazebo, which is very precise, you can, that simulates collisions, all kinds of detailed effects of robot actuator, et cetera, where you can test this task planning software. Another tool that we've been working on, so there's the planning algorithms, or sorry, planning problems are usually expressed in something called the planning domain description language or PDDL, so in our group we do, a lot of our algorithms recently have been what we call compilation-based approaches, so we download, we parse a problem expressed in PDDL, we do some processing, and then we generate another problem in PDDL so that we can use standard planning algorithms to solve the problem, and so we needed a tool that can do both parsing and generation of PDDL, so this, and standard tools for doing this were not very usable, so the motivation for developing this tool is that it should be easy to use, should be easy to debug PDDL, so if you try to parse a planning problem in PDDL, it should tell you exactly where the problem is, which is not the case with previous approaches. We want it to be universal in the sense that all these different variants of planning should be parsed, should be possible to pass to this tool or to generate using this tool. Well, finally, this is work by Vicenzo Gomez, which is also part of our project on developing cognitive robotics architectures, and also to facilitate high-level cognitive planning for robots, so this is a collaboration with both the Netherlands, and I believe London as well, okay, so that's really it, and I would like to thank not only people in this project, but also the people that work in our group, so. Okay, can you hear me, Anders? Yeah. Thanks for your presentation. Being born in the 70s, I used to play these Atari games, and I was wondering what information is provided to the algorithms? Is it just a bunch of pixels that would be provided to our brain, or how do you encode this information? Right, so in the case of DeepMind, this company that worked on this, they work on the raw pixel information, but in fact, there's an emulator that passes both the pixel information and the internal RAM memory of the Atari, which is quite small, it's, I believe, 1,024 bytes. So our algorithms actually, we don't do image recognition in our group, then so far we've been working with the internal RAM memory for making decisions, so then there's 18 different actions you can take, so given the current RAM memory, you have to decide which action to take. But in the RAM memory, is this information might be decoded in a strange way, right? So you have to learn how to interpret that. Yeah, yeah, so you have to automatically determine how to interpret this. Because if our brain would be presented with a RAM, memory would probably not be successful in playing, I guess. Right, yes, you're right. And actually some totally relevant things are encoded in the memory, such as music or things that are not relevant for selecting which action to take, so that makes it hard. But actually, we're trying now to collaborate with, we've been collaborating with Gloria to try to do image recognition first and then be able to make decisions based on the objects that you see in the image.