Lesson thumbnail

By Cameron Pittman, Viraj Parimi, Alisha Fong, and Brian Williams. It takes approximately 30 minutes to complete this lesson.

Imagine you're a software engineer and a firefighter. Your department bought a set of firefighting aerial drones that can pick up water and drop it on fires. With your knowledge of firefighting and model-based autonomy, you want to program the drones to autonomously fight fires in remote locations that would otherwise be dangerous or difficult for humans to extinguish.

We'll call this the simple agent and spend the next few lessons building it from scratch using algorithms and techniques from model-based autonomy.

Continue reading
Lesson thumbnail

By Brian Williams, Viraj Parimi, Alisha Fong, and Cameron Pittman. It takes approximately 1 hour to complete this lesson.

Our agent will need to select specific actions and maneuvers from a large set of possibilities. In effect, it needs to decide what to do and when to do it. Search algorithms are necessary components for answering both questions. Uninformed search, or "blind" search, forms the basis on which more advanced search algorithms are built. The goal of this lesson is to make the abstract idea of search concrete by giving you hands on experience implementing two blind search algorithms, Depth-First Search and Breadth-First Search.

Imagine being given a box of Legos with no instructions and being tasked to build a car. There may not even been a correct answer. There's a large, but finite number of bricks. They only fit together in specific orientations. How would you go about building the car?

A Lego car kit Maybe the box looks like this? Source.

Regardless of the way the car looks or the types of components, you'll have to systematically compare bricks and their combinations to work towards something that resembles a car.

A state-space search is one way to frame the systematic approach to finding the right pieces and combinations. In this lesson, we'll dive into what it means to perform a state-space search, look at depth-first search and breadth-first search as two algorithms, and then you'll implement both algorithms to solve a simpler problem (compared to building a Lego car) called the 8-Tile Puzzle.

Continue reading
Lesson thumbnail

By Lucian Covarrubias, Alexandra Forsey-Smerek, Nathan Hunt, Robert Redmond. It takes approximately 1 hour 30 minutes to complete this lesson.

Have you seen the battle of the wits in The Princess Bride? In it, the criminial Vizzini is given a choice between two glasses of wine: one poisoned, one not. Vizzini spends the scene trying to outsmart the hero by using what he knows the hero knows that he knows that the hero knows that he knows that the hero knows... You get the idea. While Vizzini may not have been able to succeed in saving his life with epistemic logic, we can use it to help agents infer the belief states of others and act accordingly.

Continue reading
Lesson thumbnail

By Cameron Pittman and Delia Stephens. It takes approximately 30 minutes to complete this lesson.

Temporal networks form the backbone of planning algorithms. They exist to solve the problem of managing relationships between events. The ideas behind temporal networks are very simple. Have you ever planned the details of how you're doing to cook a meal? How about a travel itinerary for a vacation? If so, you've already written a temporal network. In this lesson, we'll help you take your intuition about writing down plans and turn it into formal data structure called a Simple Temporal Network.

Click on the Binder link for this lesson (or click here) and visit the lesson1-STNs.ipynb file.

Continue reading
Lesson thumbnail

By Marlyse Reeves. It takes approximately 1 hour to complete this lesson.

An introduction to model-based programming using the Reactive Model-based Programming Language (RMPL), developed by the MERS group. RMPL is a language designed for planning and execution with a focus on expressive constraints. Capturing the essence of "model-based programming", RMPL gives users the ability program an agent by outlining how the agent is expected to behave during execution at a high-level, abstracting away low-level details.

In this lesson, you'll learn the basic constructs of RMPL, the temporal plan network (TPN) representation for expressing temporal plans, and an algorithm to check temporal consistency. You can start by watching the tutorial video or go straight to the hands-on exercises in Jupyter Notebook!

Continue reading