CS 1567 Intermediate Programming and System Design Using a Mobile Robot Aibo Lab3 Localization and Path Planning

Size: px
Start display at page:

Download "CS 1567 Intermediate Programming and System Design Using a Mobile Robot Aibo Lab3 Localization and Path Planning"

Transcription

1 CS 1567 Intermediate Programming and System Design Using a Mobile Robot Aibo Lab3 Localization and Path Planning In this lab we will create an artificial landscape in the Aibo pen. The landscape has two types of features, walls and pink post-its. The landscape is mapped on a 6x6 grid of 50cm square cells. All walls are aligned with cell boundaries and all post-its are positioned in the center of the corresponding cell. Your Aibo will start with a map of the pen such as the one below that shows the location of all features. The location will also include the coordinates of a goal where Aibo s bone is buried. (Not really). Your Aibo will start at an unknown location in the pen. Your task has two parts. First, explore the landscape until you unambiguously determine your location. Second, plan and execute a walk through the landscape from this position to the goal location. As always, your grade will include a competition for the speed and accuracy with which your Aibo finishes the task. (0,0) (0,5) (5,0) (5,5) Getting Started Movement through the pen The best strategy for completing is lab is to take on the movement components first. In the lab your Aibo will need to move with much greater precision than last time and be able to follow specific paths. The best place to start will be to implement two types of primitive movements, turning within a cell and moving from one cell to another.

2 Step 1 Implement the following two methods Turn (enum {LEFT,RIGHT,AROUND} direction.) This method should initiate a turning walk-in-place. The method takes and enumerated argument with three values, LEFT means to turn 90 degrees to the left, RIGHT means 90 degress to the right, AROUND means to turn 180 degrees. You can control your turn by a combination of timing the walk and using the IR sensors to align yourself with the walls Move(int NumofCells) This method should initiate a forward walk for distance equal to NumofCells*CellSize. There are several ways to keep track of how far you have moved. You can use a timer event to get approximate distances but you should also select reference points before and after the move, a front and/or side wall if for example to adjust your final position. Once you have implemented and thoroughly tested these movements the next step will be to string a sequence of movements together such that the Aibo follows a path. In this formulation a path is defined as a set of move and turn operations. For example, if the Aibo is at grid coordinate (2,2), facing in the positive x direction and needs to move to (4,4), a possible path (ignoring obstacles) would be Move(2), Turn(RIGHT), Move(2), Turn(LEFT) Obviously, there will usually be many paths between two grid locations. We will deal with how to discover and choose between them later. First you need to implement the code to follow a known path. Step 2 Implement a Path following behavior Decide on an encoding for each step and create a list subclass that holds the path definition. You will need a method to start down the path that will remove the first step from the list and initiate that movement. After that, you will need a state, entered on completion of the previous movement that you remove the next step and initiate it. This repeats until the path list is exhausted. Planning a Path Ever wonder how MapQuest is so efficient at looking at road maps and plotting driving directions for you. We are going to do a mini-version of that algorithm here. It s a depthfirst search with iterative deepening to keep the search time manageable. Consider a path from cell (1,2) to cell (3,4) in the example map. To compute this path, we build a tree of

3 the possible paths between these nodes such as the one shown in figure 2. As then name implies we use a depth first algorithm to build the tree but we will limit the depth that we build during each iteration. At each node, you will build a subtree rooted in node to the north, east, south, and west respectively unless one of the following is true. a) There is a wall obstructing your path. b) You have visited the grid location already c) You have reach the max depth for this iteration If b) is true, this means that the node is already in the tree, but it may not be on best path to reach that node. You resolve this conflict by associating with each node a cost of the path to reach that node from the starting point. In your case, your cost is the number of steps in the path and this corresponds to the depth of the three at the node location. So if you have already visited a node, you will move the node to the new path only if it is at a deeper level in the tree. Step 3 Plan and Execute a Path between known locations Write a behavior that reads in the map of the pen and computes the path between a goal location and a known starting grid cell location in the pen. Localization This brings us to the other half of this lab. Since the path planner above assumes a known starting location, we cannot reach the goal until we determination where we are. In robotics this is called localization. The basic approach to our localization problem is too look around and identify a specific feature and then compares that with the map of the features for the pen. Most of the time a single feature will give us ambiguous results. We will learn how to deal with that later. First, we need to get familiar with the feature set and how to recognize them. We have organized the pen in a fairly regular way so the set of possible feature configurations is relatively small. Basically, there are walls and post-it notes, where the walls are aligned (if present) with the borders of each cell and the post-its (if present) are placed in the center. You can assume that there are enclosing walls around the entire pen. This means that there are a fixed number of configurations of walls and post-its that you can see. These are enumerated in figure 3. In addition to the individual cell types, each may appear in any of several orientations on the map. These are indistinguishable until you have global information about the orientation of the dog. Step 4 What do I See? Write a behavior that scans the immediate vicinity for walls and post-it notes, based on this observation your behavior should classify the current grid cell location as one of the ten possible cell type listed below.

4 Walls None one two two three Post-it No Post-it Once you have code written that can determine the cell type, the localization process can begin. Begin by thinking of a set of states that represent all of the possible positions and orientations of the dog in the pen. Initially, if the size of the pen is NxM there are n*m*4 possible states, one for each grid location and 4 orientations in each. Your algorithm show proceed as follows Step 5 Localization algorithm 1-transform the map into an initial state set where each element encodes what the dog would see for each grid location and each orientation at that grid location 2-Iterate as follows until the size of the state set is reduced to one 1. Scan the current node and determine the type of node configuration that the Aibo perceives 2. For each element in the state set, determined if the perceived configuration is consistent with the position and orientation encoded for that element, if not delete the element. 3. Determine the next action based on the current state set. The action should be one of the basic actions defined above 4. Do the action 5. Replace the state-set with the set that the Aibo could be in after the action 6. Check if you are at the goal.

5 Most of this algorithm is doing state-set tracking: determine what possible states the robot might be in, based on its current perceptual input, and what states might it be in based on the action it just took? Here is some further discussion of the functions called in this algorithm sketch. Localization algorithm: Step 2 Given a set of states that the robot might be in, which of them are consistent with the robot s current percept? The sees function filters the current state-set C by removing states that are incompatible with the current percept. The resulting state-set R will be a subset (but not necessarily a proper subset!) of C. For each state in the state-set, you will need to compare the current percept with the expected percept for that state. For example, in the environment below, when you start (complete uncertainty), all the possible states are in your state set. Suppose that your robot immediately sees, as a result of examining its area, three walls around itself. Then filter away all possible states except for one particular goal state; you re done in this case! Localization algorithm: Step 3 Given a set of states that the robot might be in, what is the proper action to take? It s easy to answer this question when the set of states contains precisely one state (a singleton set), but what if there are many states in the set? This is not an easy question to answer, so we're giving you a set of hints below (see Appendix A). We will test your state-set tracking automata by placing the robot in several different initial starting positions and orientations and running your program. Localization algorithm: Step 5 Given an action and a set of states that the robot might be in, what is the result of applying the action to the state-set? This is a transformation function. For each state in the original state-set, you will need to compute the resulting state based on the specified action. Remember that if you invoke Move(1)

6 while you re facing a wall, your robot will not go anywhere (assuming you ve got Move implemented right). Thus, it is possible for multiple states to map onto one, so you will need to make sure that you don t duplicate states in your new state-set. Appendix A: On Determining Your Next Action First, let s consider the problem of representing possible decisions. We could create a big lookup table. The first column would list each possible state set and the corresponding entry in the second column would list the correct action to perform. The two-node world For example, given a simple two-node world shown above, the table would be: state-set action (((0,0) u) ((0,0) r) ((0,0) d) ((0,0) l) ((1,0) u) ((1,0) r) ((1,0) d) ((1,0) l)) <action> (((0,0) u) ((0,0) r) ((0,0) d) ((0,0) l) ((1,0) u) ((1,0) r) ((1,0) d)) <action> (((0,0) u) ((0,0) r) ((0,0) d) ((0,0) l) ((1,0) u) ((1,0) r) ((1,0) l)) <action> (((0,0) u) ((0,0) r) ((0,0) d) ((0,0) l) ((1,0) u) ((1,0) r)) <action>... etc., etc., etc., and eventually: (((0,0) r)) (Move 1) (((0,0) d)) (Turn LEFT) (((0,0) u)) (Turn RIGHT) (((0,0) l)) (Turn AROUND) Unfortunately, for any reasonably large problem, this table can be huge. Even for the two-node world, the complete table would have 248 rows. For the environment of 6.3, the total number of rows would be x This is bad. But don t give up! We can shrink the size of the table considerably by only including state-sets that can be reached from the global state-set that contains all possible states. For our two-node world, there are only four possible (distinguishable) state-sets after the first call to sees. In other words, once you filter based on examining your area, you will know that you re in one of the following four state sets: 1. (((0,0) r) ((0,1),l))) 2. (((0,0),u) ((0,1),d))) 3. (((0,0),l) ((0,1),r))) 4. (((0,0),d) ((0,1),u)))

7 Here s another example. In the five-node world pictured below, there are only 12 possible statesets after the first call to sees: 1. (((0,0) r) ((0,1) r) ((2,0) l)) 2. (((0,0) u) ((0,1) u) ((2,0) d)) 3. (((0,0) d) ((0,1) d) ((2,0) u)) 4. (((0,0) l) ((0,1) l) ((2,0) r)) 5. (((1,0) u)) 6. (((1,0) r)) 7. (((1,0) d)) 8. (((1,0) l)) 9. (((1,1) u)) 10. (((1,1) r)) 11. (((1,1) d)) 12. (((1,1) l)) The five-node world Now lets think about how to choose the correct action for a particular state-set. If the state-set contains only one state, the robot knows its location exactly. The choice of actions is simply the one that moves (or turns) the robot toward the goal node. If there are multiple states in the stateset, then the idea is to choose an action that will allow the robot to eliminate some of the states the next time it calls sees. Eventually, all states but one will be eliminated. Now, we could ask you to write an optimal get-action function, but we aren t that sadistic. Just write a decent one. Once again: your get-action does not need to be optimal for this assignment. Appendix B: A Theoretical Aside for the Incurably Curious There is a side-effect of only including reachable state-sets in the table of actions: what happens if the robot somehow believes that its state-set is one of those not in the table? This could happen if we were to provide your robot with extra information. For instance, if we specify that the robot starts out facing north in the five-node world, the initial state set is not in the simplified table of reachable state-sets. Another way this can happen is if your area examination function errors, resulting in an incorrect state set. Handling these situations in the general case is hard. To be optimal for all possible state-sets, you would have to think through the right actions for each and every such state set. However, note that you can simply choose a table entry that corresponds to a superset of the actual state set. The action prescribed by this entry will certainly work, since it works on a superset (i.e. a more uncertain case).

8 Of course, if the impossible state set was the result of an error examining the area, then you ve got a problem on your hands. In this case, the robot would have to actually modify the state-set, growing it to encompass the real-world state. In effect, when faced with such impossibility, the robot forgets some of the information that it has previously acquired. Another solution would be to just completely start over, setting the state-set to all possible states again. This is especially useful if the state-set becomes empty after a call to sees!

Homework #6 (Constraint Satisfaction, Non-Deterministic Uncertainty and Adversarial Search) Out: 2/21/11 Due: 2/29/11 (at noon)

Homework #6 (Constraint Satisfaction, Non-Deterministic Uncertainty and Adversarial Search) Out: 2/21/11 Due: 2/29/11 (at noon) CS121 Introduction to Artificial Intelligence Winter 2011 Homework #6 (Constraint Satisfaction, Non-Deterministic Uncertainty and Adversarial Search) Out: 2/21/11 Due: 2/29/11 (at noon) How to complete

More information

(Refer Slide Time: 02.06)

(Refer Slide Time: 02.06) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 27 Depth First Search (DFS) Today we are going to be talking

More information

Minimum Spanning Trees

Minimum Spanning Trees CE 377K February 17, 2015 REVIEW HW 2 coming soon Review Trees and spanning trees Big O notation n and m Basic search algorithm Review Algorithm 1 Set C(r) {r} 2 Initialize the scan eligible list SEL {r}

More information

1 Introduction and Examples

1 Introduction and Examples 1 Introduction and Examples Sequencing Problems Definition A sequencing problem is one that involves finding a sequence of steps that transforms an initial system state to a pre-defined goal state for

More information

The compiler is spewing error messages.

The compiler is spewing error messages. Appendix B Debugging There are a few different kinds of errors that can occur in a program, and it is useful to distinguish between them in order to track them down more quickly. Compile-time errors are

More information

Excel Basics Fall 2016

Excel Basics Fall 2016 If you have never worked with Excel, it can be a little confusing at first. When you open Excel, you are faced with various toolbars and menus and a big, empty grid. So what do you do with it? The great

More information

COMP 161 Lecture Notes 16 Analyzing Search and Sort

COMP 161 Lecture Notes 16 Analyzing Search and Sort COMP 161 Lecture Notes 16 Analyzing Search and Sort In these notes we analyze search and sort. Counting Operations When we analyze the complexity of procedures we re determine the order of the number of

More information

Machine Evolution. Machine Evolution. Let s look at. Machine Evolution. Machine Evolution. Machine Evolution. Machine Evolution

Machine Evolution. Machine Evolution. Let s look at. Machine Evolution. Machine Evolution. Machine Evolution. Machine Evolution Let s look at As you will see later in this course, neural networks can learn, that is, adapt to given constraints. For example, NNs can approximate a given function. In biology, such learning corresponds

More information

Lecture 18.1 Multi-Robot Path Planning (3)

Lecture 18.1 Multi-Robot Path Planning (3) CS 60/560 Introduction to Computational Robotics Fall 07, Rutgers University Lecture 8. Multi-Robot Path Planning () Instructor: Jingjin Yu Outline Algorithms for optimal multi-robot path and motion planning

More information

Excel Basics: Working with Spreadsheets

Excel Basics: Working with Spreadsheets Excel Basics: Working with Spreadsheets E 890 / 1 Unravel the Mysteries of Cells, Rows, Ranges, Formulas and More Spreadsheets are all about numbers: they help us keep track of figures and make calculations.

More information

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. # 20 Concurrency Control Part -1 Foundations for concurrency

More information

We know have to navigate between Karel s World view, Karel s Program view and Karel s Execution (or Run) view.

We know have to navigate between Karel s World view, Karel s Program view and Karel s Execution (or Run) view. We know how to write programs using Karel s primitive commands move turnleft pickbeeper putbeeper turnoff We know have to navigate between Karel s World view, Karel s Program view and Karel s Execution

More information

Repetition Through Recursion

Repetition Through Recursion Fundamentals of Computer Science I (CS151.02 2007S) Repetition Through Recursion Summary: In many algorithms, you want to do things again and again and again. For example, you might want to do something

More information

Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we

Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we have to talk about the way in which we represent the

More information

UNIVERSITY OF NORTH CAROLINA AT CHARLOTTE

UNIVERSITY OF NORTH CAROLINA AT CHARLOTTE UNIVERSITY OF NORTH CAROLINA AT CHARLOTTE Department of Electrical and Computer Engineering ECGR 4161/5196 Introduction to Robotics Experiment No. 5 A* Path Planning Overview: The purpose of this experiment

More information

Nicole Dobrowolski. Keywords: State-space, Search, Maze, Quagent, Quake

Nicole Dobrowolski. Keywords: State-space, Search, Maze, Quagent, Quake The Applicability of Uninformed and Informed Searches to Maze Traversal Computer Science 242: Artificial Intelligence Dept. of Computer Science, University of Rochester Nicole Dobrowolski Abstract: There

More information

CS Introduction to Data Structures How to Parse Arithmetic Expressions

CS Introduction to Data Structures How to Parse Arithmetic Expressions CS3901 - Introduction to Data Structures How to Parse Arithmetic Expressions Lt Col Joel Young One of the common task required in implementing programming languages, calculators, simulation systems, and

More information

Animations involving numbers

Animations involving numbers 136 Chapter 8 Animations involving numbers 8.1 Model and view The examples of Chapter 6 all compute the next picture in the animation from the previous picture. This turns out to be a rather restrictive

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

CS112 Lecture: Introduction to Karel J. Robot

CS112 Lecture: Introduction to Karel J. Robot CS112 Lecture: Introduction to Karel J. Robot Last revised 1/17/08 Objectives: 1. To introduce Karel J. Robot as an example of an object-oriented system. 2. To explain the mechanics of writing simple Karel

More information

Is IPv4 Sufficient for Another 30 Years?

Is IPv4 Sufficient for Another 30 Years? Is IPv4 Sufficient for Another 30 Years? October 7, 2004 Abstract TCP/IP was developed 30 years ago. It has been successful over the past 30 years, until recently when its limitation started emerging.

More information

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi.

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi. Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 18 Tries Today we are going to be talking about another data

More information

Name: UW CSE 473 Midterm, Fall 2014

Name: UW CSE 473 Midterm, Fall 2014 Instructions Please answer clearly and succinctly. If an explanation is requested, think carefully before writing. Points may be removed for rambling answers. If a question is unclear or ambiguous, feel

More information

Homework: More Abstraction, Trees, and Lists

Homework: More Abstraction, Trees, and Lists Homework: More Abstraction, Trees, and Lists COMP 50 Fall 2013 This homework is due at 11:59PM on Monday, November 18. Submit your solutions in a single file using the COMP 50 Handin button on DrRacket;

More information

International Olympiad in Informatics 2012

International Olympiad in Informatics 2012 International Olympiad in Informatics 2012 23-30 September 2012 Sirmione - Montichiari, Italy Competition tasks, day 1: Leonardo's inventions and projects odometer English 1.2 Pebbling odometer Leonardo

More information

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #19. Loops: Continue Statement Example

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #19. Loops: Continue Statement Example Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #19 Loops: Continue Statement Example Let us do a sample program using continue statements, I will introduce

More information

Shared Memory Programming With OpenMP Computer Lab Exercises

Shared Memory Programming With OpenMP Computer Lab Exercises Shared Memory Programming With OpenMP Computer Lab Exercises Advanced Computational Science II John Burkardt Department of Scientific Computing Florida State University http://people.sc.fsu.edu/ jburkardt/presentations/fsu

More information

Would you like to put an image on your index page? There are several ways to do this and I will start with the easy way.

Would you like to put an image on your index page? There are several ways to do this and I will start with the easy way. Home Frontpage & Other Tutorials Dreamweaver Tutorial Contact Images and Tables Would you like to put an image on your index page? There are several ways to do this and I will start with the easy way.

More information

h=[3,2,5,7], pos=[2,1], neg=[4,4]

h=[3,2,5,7], pos=[2,1], neg=[4,4] 2D1431 Machine Learning Lab 1: Concept Learning & Decision Trees Frank Hoffmann e-mail: hoffmann@nada.kth.se November 8, 2002 1 Introduction You have to prepare the solutions to the lab assignments prior

More information

Recursively Enumerable Languages, Turing Machines, and Decidability

Recursively Enumerable Languages, Turing Machines, and Decidability Recursively Enumerable Languages, Turing Machines, and Decidability 1 Problem Reduction: Basic Concepts and Analogies The concept of problem reduction is simple at a high level. You simply take an algorithm

More information

Planar Graphs and Surfaces. Graphs 2 1/58

Planar Graphs and Surfaces. Graphs 2 1/58 Planar Graphs and Surfaces Graphs 2 1/58 Last time we discussed the Four Color Theorem, which says that any map can be colored with at most 4 colors and not have two regions that share a border having

More information

LAB 1: INTRODUCTION TO DATA STUDIO AND ONE-DIMENSIONAL MOTION

LAB 1: INTRODUCTION TO DATA STUDIO AND ONE-DIMENSIONAL MOTION Lab 1 - Introduction to Data Studio and One-Dimensional Motion 5 Name Date Partners LAB 1: INTRODUCTION TO DATA STUDIO AND ONE-DIMENSIONAL MOTION Slow and steady wins the race. Aesop s fable: The Hare

More information

CS 221 Lecture. Tuesday, 4 October There are 10 kinds of people in this world: those who know how to count in binary, and those who don t.

CS 221 Lecture. Tuesday, 4 October There are 10 kinds of people in this world: those who know how to count in binary, and those who don t. CS 221 Lecture Tuesday, 4 October 2011 There are 10 kinds of people in this world: those who know how to count in binary, and those who don t. Today s Agenda 1. Announcements 2. You Can Define New Functions

More information

CS3 Midterm 2 Standards and Solutions

CS3 Midterm 2 Standards and Solutions CS3 Midterm 2 Standards and Solutions Spring 2007 16 14 12 10 8 6 4 2 0 Std. Dev = 5.43 Mean = 18.3 N = 90.00 2.0 6.0 10.0 14.0 18.0 22.0 26.0 30.0 4.0 8.0 12.0 16.0 20.0 24.0 28.0 scaled Problem 1. Roman

More information

CSC 258 lab notes, Fall 2003

CSC 258 lab notes, Fall 2003 CSC 258 lab notes, Fall 2003 Instructor: E. R. C. Hehner Lab demonstrators: Nicolas Kokkalis, Andrés Lagar Cavilla Successful completion of the three graded labs in this course involves a significant amount

More information

Official Competition Manual March 2, 2005

Official Competition Manual March 2, 2005 Official Competition Manual March 2, 2005 Competition Instructions Logging In to the Competition Arena Log in to the competition arena using the handle and password that you chose during the competition

More information

Lab 4: Super Sudoku Solver CSCI 2101 Fall 2017

Lab 4: Super Sudoku Solver CSCI 2101 Fall 2017 Due: Wednesday, October 18, 11:59 pm Collaboration Policy: Level 1 Group Policy: Pair-Optional Lab 4: Super Sudoku Solver CSCI 2101 Fall 2017 In this week s lab, you will write a program that can solve

More information

Chapter S:II. II. Search Space Representation

Chapter S:II. II. Search Space Representation Chapter S:II II. Search Space Representation Systematic Search Encoding of Problems State-Space Representation Problem-Reduction Representation Choosing a Representation S:II-1 Search Space Representation

More information

Visibility Graph. How does a Mobile Robot get from A to B?

Visibility Graph. How does a Mobile Robot get from A to B? Robot Path Planning Things to Consider: Spatial reasoning/understanding: robots can have many dimensions in space, obstacles can be complicated Global Planning: Do we know the environment apriori? Online

More information

CSE 341, Autumn 2005, Assignment 3 ML - MiniML Interpreter

CSE 341, Autumn 2005, Assignment 3 ML - MiniML Interpreter Due: Thurs October 27, 10:00pm CSE 341, Autumn 2005, Assignment 3 ML - MiniML Interpreter Note: This is a much longer assignment than anything we ve seen up until now. You are given two weeks to complete

More information

An introduction to plotting data

An introduction to plotting data An introduction to plotting data Eric D. Black California Institute of Technology February 25, 2014 1 Introduction Plotting data is one of the essential skills every scientist must have. We use it on a

More information

Lab 9: Pointers and arrays

Lab 9: Pointers and arrays CMSC160 Intro to Algorithmic Design Blaheta Lab 9: Pointers and arrays 3 Nov 2011 As promised, we ll spend today working on using pointers and arrays, leading up to a game you ll write that heavily involves

More information

NON-CALCULATOR ARITHMETIC

NON-CALCULATOR ARITHMETIC Mathematics Revision Guides Non-Calculator Arithmetic Page 1 of 30 M.K. HOME TUITION Mathematics Revision Guides: Level: GCSE Foundation Tier NON-CALCULATOR ARITHMETIC Version: 3.2 Date: 21-10-2016 Mathematics

More information

Area and Perimeter EXPERIMENT. How are the area and perimeter of a rectangle related? You probably know the formulas by heart:

Area and Perimeter EXPERIMENT. How are the area and perimeter of a rectangle related? You probably know the formulas by heart: Area and Perimeter How are the area and perimeter of a rectangle related? You probably know the formulas by heart: Area Length Width Perimeter (Length Width) But if you look at data for many different

More information

MITOCW watch?v=4dj1oguwtem

MITOCW watch?v=4dj1oguwtem MITOCW watch?v=4dj1oguwtem PROFESSOR: So it's time to examine uncountable sets. And that's what we're going to do in this segment. So Cantor's question was, are all sets the same size? And he gives a definitive

More information

Search in discrete and continuous spaces

Search in discrete and continuous spaces UNSW COMP3431: Robot Architectures S2 2006 1 Overview Assignment #1 Answer Sheet Search in discrete and continuous spaces Due: Start of Lab, Week 6 (1pm, 30 August 2006) The goal of this assignment is

More information

CS112 Lecture: Extending Classes and Defining Methods

CS112 Lecture: Extending Classes and Defining Methods Objectives: CS112 Lecture: Extending Classes and Defining Methods Last revised 1/9/04 1. To introduce the idea of extending existing classes to add new methods 2. To introduce overriding of inherited methods

More information

To move cells, the pointer should be a north-south-eastwest facing arrow

To move cells, the pointer should be a north-south-eastwest facing arrow Appendix B Microsoft Excel Primer Oftentimes in physics, we collect lots of data and have to analyze it. Doing this analysis (which consists mostly of performing the same operations on lots of different

More information

XC Total Max Score Grader

XC Total Max Score Grader NAME: NETID: CS2110 Fall 2013, Prelim 1 Thursday Oct 10, 2013 (7:30-9:00p) The exam is closed book and closed notes. Do not begin until instructed. You have 90 minutes. Good luck! Write your name and Cornell

More information

CS5412: TRANSACTIONS (I)

CS5412: TRANSACTIONS (I) 1 CS5412: TRANSACTIONS (I) Lecture XVII Ken Birman Transactions 2 A widely used reliability technology, despite the BASE methodology we use in the first tier Goal for this week: in-depth examination of

More information

Appendix E: Software

Appendix E: Software Appendix E: Software Video Analysis of Motion Analyzing pictures (movies or videos) is a powerful tool for understanding how objects move. Like most forms of data, video is most easily analyzed using a

More information

MathZoom, Summer, 2014

MathZoom, Summer, 2014 A one-dimensional bug starts at the origin and each minute moves either left or right exactly one unit. Suppose it makes there moves with equal likelihood. That is the probability of a move to the left

More information

Shared Memory Programming With OpenMP Exercise Instructions

Shared Memory Programming With OpenMP Exercise Instructions Shared Memory Programming With OpenMP Exercise Instructions John Burkardt Interdisciplinary Center for Applied Mathematics & Information Technology Department Virginia Tech... Advanced Computational Science

More information

EE631 Cooperating Autonomous Mobile Robots

EE631 Cooperating Autonomous Mobile Robots EE631 Cooperating Autonomous Mobile Robots Lecture 3: Path Planning Algorithm Prof. Yi Guo ECE Dept. Plan Representing the Space Path Planning Methods A* Search Algorithm D* Search Algorithm Representing

More information

(Refer Slide Time: 1:27)

(Refer Slide Time: 1:27) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 1 Introduction to Data Structures and Algorithms Welcome to data

More information

Transcriber(s): Aboelnaga, Eman Verifier(s): Yedman, Madeline Date Transcribed: Fall 2010 Page: 1 of 9

Transcriber(s): Aboelnaga, Eman Verifier(s): Yedman, Madeline Date Transcribed: Fall 2010 Page: 1 of 9 Page: 1 of 9 0:00 1 R1 The color s not going to show a little bit, but okay. Okay. So, um, a plus b quantity cubed, you said, means Stephanie a plus b times a plus b times a plus b /R1 3 R1 Okay, so you

More information

Access Intermediate

Access Intermediate Access 2010 - Intermediate (103-134) Building Access Databases Notes Quick Links Building Databases Pages AC52 AC56 AC91 AC93 Building Access Tables Pages AC59 AC67 Field Types Pages AC54 AC56 AC267 AC270

More information

Figure 1: A directed graph.

Figure 1: A directed graph. 1 Graphs A graph is a data structure that expresses relationships between objects. The objects are called nodes and the relationships are called edges. For example, social networks can be represented as

More information

Implementation of Lexical Analysis. Lecture 4

Implementation of Lexical Analysis. Lecture 4 Implementation of Lexical Analysis Lecture 4 1 Tips on Building Large Systems KISS (Keep It Simple, Stupid!) Don t optimize prematurely Design systems that can be tested It is easier to modify a working

More information

VLSI Design Automation Final Project Due: June 26 th, Project: A Router

VLSI Design Automation Final Project Due: June 26 th, Project: A Router Project: A Router In lecture, we described how to use the maze routing method to route the wires in a large ASIC, using a 3-dimensional stack of routing grids. In this project assignment, you get to build

More information

The Right Read Optimization is Actually Write Optimization. Leif Walsh

The Right Read Optimization is Actually Write Optimization. Leif Walsh The Right Read Optimization is Actually Write Optimization Leif Walsh leif@tokutek.com The Right Read Optimization is Write Optimization Situation: I have some data. I want to learn things about the world,

More information

Red-Black trees are usually described as obeying the following rules :

Red-Black trees are usually described as obeying the following rules : Red-Black Trees As we have seen, the ideal Binary Search Tree has height approximately equal to log n, where n is the number of values stored in the tree. Such a BST guarantees that the maximum time for

More information

Greedy Algorithms II

Greedy Algorithms II Greedy Algorithms II Greedy algorithms tend to be difficult to teach since different observations lead to correct greedy algorithms in different situations. Pedagogically, it s somewhat difficult to clearly

More information

Adobe illustrator Introduction

Adobe illustrator Introduction Adobe illustrator Introduction This document was prepared by Luke Easterbrook 2013 1 Summary This document is an introduction to using adobe illustrator for scientific illustration. The document is a filleable

More information

The first thing we ll need is some numbers. I m going to use the set of times and drug concentration levels in a patient s bloodstream given below.

The first thing we ll need is some numbers. I m going to use the set of times and drug concentration levels in a patient s bloodstream given below. Graphing in Excel featuring Excel 2007 1 A spreadsheet can be a powerful tool for analyzing and graphing data, but it works completely differently from the graphing calculator that you re used to. If you

More information

to solve the puzzle. First, code would need to e created in order for the webcam to retrieve the

to solve the puzzle. First, code would need to e created in order for the webcam to retrieve the Name: Adam Hebert Date: 5/3/2012 Project Final Report Sudoku Solver Original Concept My original project concept was to create a Sudoku solving application for the android OS. This project would require

More information

CS3L Summer 2011 Exam 2 Time: up to 170 minutes (you may leave when finished; or, you must stop promptly at noon)

CS3L Summer 2011 Exam 2 Time: up to 170 minutes (you may leave when finished; or, you must stop promptly at noon) CS3L Summer 2011 Exam 2 Time: up to 170 minutes (you may leave when finished; or, you must stop promptly at noon) Name: Login: cs3- First names of the people to your left and right, if any: Left: Right:

More information

Math 4242 Polynomial Time algorithms, IndependentSet problem

Math 4242 Polynomial Time algorithms, IndependentSet problem Math 4242 Polynomial Time algorithms, IndependentSet problem Many of the algorithms we have looked at so far have a reasonable running time. Not all algorithms do. We make this idea more precise. Definition:

More information

CS-171, Intro to A.I. Mid-term Exam Fall Quarter, 2014

CS-171, Intro to A.I. Mid-term Exam Fall Quarter, 2014 CS-171, Intro to A.I. Mid-term Exam Fall Quarter, 2014 YOUR NAME: YOUR ID: ID TO RIGHT: ROW: SEAT: The exam will begin on the next page. Please, do not turn the page until told. When you are told to begin

More information

CS3L Summer 2011 Final Exam, Part 2 You may leave when finished; or, you must stop promptly at 12:20

CS3L Summer 2011 Final Exam, Part 2 You may leave when finished; or, you must stop promptly at 12:20 CS3L Summer 2011 Final Exam, Part 2 You may leave when finished; or, you must stop promptly at 12:20 Name: Login: cs3- First names of the people to your left and right, if any: Left: Right: 1. If you have

More information

Spring Localization II. Roland Siegwart, Margarita Chli, Martin Rufli. ASL Autonomous Systems Lab. Autonomous Mobile Robots

Spring Localization II. Roland Siegwart, Margarita Chli, Martin Rufli. ASL Autonomous Systems Lab. Autonomous Mobile Robots Spring 2016 Localization II Localization I 25.04.2016 1 knowledge, data base mission commands Localization Map Building environment model local map position global map Cognition Path Planning path Perception

More information

Uninformed Search (Ch )

Uninformed Search (Ch ) Uninformed Search (Ch. 3-3.4) Announcements First homework will be posted tonight (due next Wednesday at 11:55 pm) Review We use words that have a general English definition in a technical sense nd Rational=choose

More information

Major Assignment: Pacman Game

Major Assignment: Pacman Game Major Assignment: Pacman Game 300580 Programming Fundamentals Week 10 Assignment The major assignment involves producing a Pacman style game with Clara using the Greenfoot files that are given to you.

More information

Spring Localization II. Roland Siegwart, Margarita Chli, Juan Nieto, Nick Lawrance. ASL Autonomous Systems Lab. Autonomous Mobile Robots

Spring Localization II. Roland Siegwart, Margarita Chli, Juan Nieto, Nick Lawrance. ASL Autonomous Systems Lab. Autonomous Mobile Robots Spring 2018 Localization II Localization I 16.04.2018 1 knowledge, data base mission commands Localization Map Building environment model local map position global map Cognition Path Planning path Perception

More information

High Performance Computing: Tools and Applications

High Performance Computing: Tools and Applications High Performance Computing: Tools and Applications Edmond Chow School of Computational Science and Engineering Georgia Institute of Technology Lecture 15 Numerically solve a 2D boundary value problem Example:

More information

Solutions to Problem 1 of Homework 3 (10 (+6) Points)

Solutions to Problem 1 of Homework 3 (10 (+6) Points) Solutions to Problem 1 of Homework 3 (10 (+6) Points) Sometimes, computing extra information can lead to more efficient divide-and-conquer algorithms. As an example, we will improve on the solution to

More information

Worksheet Answer Key: Scanning and Mapping Projects > Mine Mapping > Investigation 2

Worksheet Answer Key: Scanning and Mapping Projects > Mine Mapping > Investigation 2 Worksheet Answer Key: Scanning and Mapping Projects > Mine Mapping > Investigation 2 Ruler Graph: Analyze your graph 1. Examine the shape formed by the connected dots. i. Does the connected graph create

More information

CMPSCI 187 / Spring 2015 Implementing Sets Using Linked Lists

CMPSCI 187 / Spring 2015 Implementing Sets Using Linked Lists CMPSCI 187 / Spring 2015 Implementing Sets Using Linked Lists Due on Tuesday February 24, 2015, 8:30 a.m. Marc Liberatore and John Ridgway Morrill I N375 Section 01 @ 10:00 Section 02 @ 08:30 1 CMPSCI

More information

Intermediate Algebra. Gregg Waterman Oregon Institute of Technology

Intermediate Algebra. Gregg Waterman Oregon Institute of Technology Intermediate Algebra Gregg Waterman Oregon Institute of Technology c 2017 Gregg Waterman This work is licensed under the Creative Commons Attribution 4.0 International license. The essence of the license

More information

KAREL UNIT 5 STUDENT JOURNAL REVISED APRIL 19, 2017 NAME SCHOOL, CLASS, PERIOD

KAREL UNIT 5 STUDENT JOURNAL REVISED APRIL 19, 2017 NAME SCHOOL, CLASS, PERIOD KAREL UNIT 5 STUDENT JOURNAL REVISED APRIL 19, 2017 NAME DATE STARTED DATE COMPLETED SCHOOL, CLASS, PERIOD Copyright 2016, 2017 NCLab Inc. 2 3 TABLE OF CONTENTS: WELCOME TO YOUR JOURNAL 4 SECTION 21: PROBABILITY

More information

CPS 170: Artificial Intelligence Search

CPS 170: Artificial Intelligence   Search CPS 170: Artificial Intelligence http://www.cs.duke.edu/courses/spring09/cps170/ Search Instructor: Vincent Conitzer Search We have some actions that can change the state of the world Change resulting

More information

Notes on Non-Chronologic Backtracking, Implication Graphs, and Learning

Notes on Non-Chronologic Backtracking, Implication Graphs, and Learning Notes on Non-Chronologic Backtracking, Implication Graphs, and Learning Alan J. Hu for CpSc 5 Univ. of British Columbia 00 February 9 These are supplementary notes on these aspects of a modern DPLL-style

More information

Midterm I Exam Principles of Imperative Computation André Platzer Ananda Gunawardena. February 23, 2012

Midterm I Exam Principles of Imperative Computation André Platzer Ananda Gunawardena. February 23, 2012 Midterm I Exam 15-122 Principles of Imperative Computation André Platzer Ananda Gunawardena February 23, 2012 Name: Sample Solution Andrew ID: aplatzer Section: Instructions This exam is closed-book with

More information

CSCI 204 Introduction to Computer Science II

CSCI 204 Introduction to Computer Science II CSCI 204 Project 2 Maze Assigned: Wednesday 09/27/2017 First Phase (Recursion) Due Friday, 10/06/2017 Second Phase (Stack) Due Monday, 10/16/2017 1 Objective The purpose of this assignment is to give you

More information

6.045J/18.400J: Automata, Computability and Complexity. Practice Quiz 2

6.045J/18.400J: Automata, Computability and Complexity. Practice Quiz 2 6.045J/18.400J: Automata, omputability and omplexity March 21, 2007 Practice Quiz 2 Prof. Nancy Lynch Elena Grigorescu Please write your name in the upper corner of each page. INFORMATION ABOUT QUIZ 2:

More information

EECS 492 Midterm #1. Example Questions. Note: Not a complete exam!

EECS 492 Midterm #1. Example Questions. Note: Not a complete exam! EECS 492 Midterm #1 Example Questions Note: Not a complete exam! General Instructions This exam is closed book, except that you are allowed to refer to a single sheet of paper. You may use a calculator

More information

COMPUTER EXERCISE: POPULATION DYNAMICS IN SPACE September 3, 2013

COMPUTER EXERCISE: POPULATION DYNAMICS IN SPACE September 3, 2013 COMPUTER EXERCISE: POPULATION DYNAMICS IN SPACE September 3, 2013 Objectives: Introduction to coupled maps lattice as a basis for spatial modeling Solve a spatial Ricker model to investigate how wave speed

More information

Department of Electrical Engineering and Computer Sciences Spring 2001 Instructor: Dan Garcia CS 3 Midterm #2. Personal Information

Department of Electrical Engineering and Computer Sciences Spring 2001 Instructor: Dan Garcia CS 3 Midterm #2. Personal Information University of California, Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences Spring 2001 Instructor: Dan Garcia 2001-04-09 CS 3 Midterm #2 Personal Information Last

More information

6.034 Notes: Section 2.1

6.034 Notes: Section 2.1 6.034 Notes: Section 2.1 Slide 2.1.1 Search plays a key role in many parts of AI. These algorithms provide the conceptual backbone of almost every approach to the systematic exploration of alternatives.

More information

Introduction:... 3 What s in the Box:... 3 System Requirements:... 3 Serialization and Activation... 4 Software layout... 6 SpyderPRINT Software...

Introduction:... 3 What s in the Box:... 3 System Requirements:... 3 Serialization and Activation... 4 Software layout... 6 SpyderPRINT Software... User Guide Introduction:... 3 What s in the Box:... 3 System Requirements:... 3 Serialization and Activation... 4 Software layout... 6 SpyderPRINT Software... 7 Welcome Screen... 7 Before You Begin...

More information

CS 310 Advanced Data Structures and Algorithms

CS 310 Advanced Data Structures and Algorithms CS 31 Advanced Data Structures and Algorithms Graphs July 18, 17 Tong Wang UMass Boston CS 31 July 18, 17 1 / 4 Graph Definitions Graph a mathematical construction that describes objects and relations

More information

CMPSCI 250: Introduction to Computation. Lecture #24: General Search, DFS, and BFS David Mix Barrington 24 March 2014

CMPSCI 250: Introduction to Computation. Lecture #24: General Search, DFS, and BFS David Mix Barrington 24 March 2014 CMPSCI 250: Introduction to Computation Lecture #24: General Search, DFS, and BFS David Mix Barrington 24 March 2014 General Search, DFS, and BFS Four Examples of Search Problems State Spaces, Search,

More information

Week - 04 Lecture - 01 Merge Sort. (Refer Slide Time: 00:02)

Week - 04 Lecture - 01 Merge Sort. (Refer Slide Time: 00:02) Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 04 Lecture - 01 Merge Sort (Refer

More information

MIT Programming Contest Team Contest 1 Problems 2008

MIT Programming Contest Team Contest 1 Problems 2008 MIT Programming Contest Team Contest 1 Problems 2008 October 5, 2008 1 Edit distance Given a string, an edit script is a set of instructions to turn it into another string. There are four kinds of instructions

More information

Math 182. Assignment #4: Least Squares

Math 182. Assignment #4: Least Squares Introduction Math 182 Assignment #4: Least Squares In any investigation that involves data collection and analysis, it is often the goal to create a mathematical function that fits the data. That is, a

More information

Introduction. hashing performs basic operations, such as insertion, better than other ADTs we ve seen so far

Introduction. hashing performs basic operations, such as insertion, better than other ADTs we ve seen so far Chapter 5 Hashing 2 Introduction hashing performs basic operations, such as insertion, deletion, and finds in average time better than other ADTs we ve seen so far 3 Hashing a hash table is merely an hashing

More information

Data Structure. IBPS SO (IT- Officer) Exam 2017

Data Structure. IBPS SO (IT- Officer) Exam 2017 Data Structure IBPS SO (IT- Officer) Exam 2017 Data Structure: In computer science, a data structure is a way of storing and organizing data in a computer s memory so that it can be used efficiently. Data

More information

A simple problem that has a solution that is far deeper than expected!

A simple problem that has a solution that is far deeper than expected! The Water, Gas, Electricity Problem A simple problem that has a solution that is far deeper than expected! Consider the diagram below of three houses and three utilities: water, gas, and electricity. Each

More information

CS355 Hw 4. Interface. Due by the end of day Tuesday, March 20.

CS355 Hw 4. Interface. Due by the end of day Tuesday, March 20. Due by the end of day Tuesday, March 20. CS355 Hw 4 User-level Threads You will write a library to support multiple threads within a single Linux process. This is a user-level thread library because the

More information

Lecture 3: Linear Classification

Lecture 3: Linear Classification Lecture 3: Linear Classification Roger Grosse 1 Introduction Last week, we saw an example of a learning task called regression. There, the goal was to predict a scalar-valued target from a set of features.

More information