Analysis of Micromouse Maze Solving Algorithms
|
|
|
- Roxanne Pierce
- 9 years ago
- Views:
Transcription
1 1 Analysis of Micromouse Maze Solving Algorithms David M. Willardson ECE 557: Learning from Data, Spring 2001 Abstract This project involves a simulation of a mouse that is to find its way through a maze. There has been a competition around since 1980 called the Micromouse Competition, that involves autonomous robotic mice that compete against time to find their way through a maze of predetermined size and dimensions. This project does not involve a robotic mouse, but a simulated mouse and maze, programmed in JAVA. T I. INTRODUCTION he Micromouse Competition involves a square maze of fixed size, with predetermined start and finish positions in the maze. The finishing point and starting points are "known to the mouse before it starts. The starting point is always in a corner, and it is always surrounded by three walls. The maze is 16 blocks wide by 16 blocks high, and the finishing point is any one of the center four blocks. Some mice rely on maze solving algorithms that provide a very small level of machine learning. Algorithms can involve dead reckoning at worst, which gives no guarantee that the mouse will find its way through the maze at all, much less in a competitive time. The typical algorithms involve a slight degree of machine learning. In these cases, any dead ends that are found can be blocked out, so that the finish point will eventually be found. In this case, the direction to turn at an intersection is often fixed, such as always left or always right. This sometimes leads to mice that get stuck in infinite loops. Some have tried to improve on this by making the turn direction random, or to turn one way or the other depending on what quadrant of the maze the mouse is in. This sometimes helps the mouse solve the maze when it would have otherwise been unable, but it does not necessarily increase the average time to find the finish. The better algorithms are top-secret, meaning that they are not publicly available. It is suspected that they use some more advanced forms of machine learning, such as statistical decision theory. This simulation is an attempt to find the best algorithm for searching a maze using decision theory, depending on given parameters. was also created, but there is no guarantee that the generated mazes are solvable. It is recommended that any generated maze be examined before use, since an unsolvable maze will inevitably cause the program to be stuck in an infinite loop. III. THE PROGRAM The program explores three different algorithms for searching a maze. They are as follows: DEAD RECKONING: This algorithm is used mainly as a control, or null hypothesis, for determining if the other two algorithms are better, based on statistical significance. The mouse simply goes straight until it encounters a fork or dead end. At a fork, it goes one of the available directions at random. At a dead end, it turns around. DEAD END LEARNING: This algorithm is similar to Dead Reckoning, except that any dead ends are remembered and a virtual wall is placed at the opening so that the mouse does not re-enter. This is the most common algorithm used for maze solving. It has the advantage of simplicity, but it is anything but optimal maze designers often deliberately design mazes so as to disadvantage mice that use this algorithm. Furthermore, this algorithm cannot guarantee that the quickest route will be found if the maze has loops. Depending on how the algorithm is implemented, sometimes it will cause the mouse to go around loops several times before actually finishing. How does this work? For example, suppose the mouse encounters a square with one entrance and three walls, as shown in Figure 1: II. THE MAZE The standard Micromouse maze is a 16x16 grid. Note that this is not a perfect maze, that is, the maze can have more than one route to the finish. In other words, loops are allowed, as are rooms, which are closed-off areas. Typical maze generators create only perfect mazes. It is difficult to write a maze generator that allows rooms and loops, while ensuring that the finished maze is actually solvable! The standard, mainstream maze generators are unsuitable for the Micromouse competition. The generation of mazes for simulation has been difficult as best, mostly since the mazes are anything but random; namely, they are deliberately chosen and engineered to make them as difficult as possible, thus to provide a challenge for designers. This program makes an attempt to rectify this situation. A provision exists to allow a user-defined maze, so an actual Micromouse maze can be used if desired. A rudimentary generator Figure 1: Mouse encounters a dead end. The passage with three walls is one that the mouse has no reason to re-enter. So the mouse will turn around and move one space
2 2 forward, and the program will place a virtual wall there, creating a closed room that the mouse can never re-enter, as shown in Figure 2: involves an initial assumption that there are no walls in the maze. A number is assigned to each cell. The number corresponds to the distance to the goal. This algorithm has the advantage of always finding the shortest path between start and finish. However, the shortest path is only in terms of distance; depending on the number of turns and the associated time to turn, the shortest path may not be the quickest. This concept is illustrated below in Figure 4: Figure 2: Mouse turns around a places a virtual wall. Now we have created another three-walled square, and this can also be blocked off. The mouse can now turn to the left and move forward one space, and the program will place a virtual wall at that entrance as well, effectively blocking off the entire dead end, as shown in Figure 3: Figure 3: Continue placing walls until out of dead end. This algorithm is the simplest one that also involves some degree of machine learning. This type of algorithm will solve any maze that is free of loops, but randomness has to be added so it can solve any maze, regardless of whether it has loops. The main advantage to this algorithm is that it is quite easy to modify the simple dead reckoning code to accommodate this extra feature. Even the same variables can be used. The only change is that the array that holds maze data is no longer static we change it on the fly to account for dead ends. Figure 4: Maze seeded with optimistic distance values to the finish. Black walls are known to the mouse, but gray walls are not. The mouse always starts in the corner, and there is always a wall to the left, as per the Micromouse Competition official rules. As in the previous example, the maze shown here is only 5x5 for simplicity s sake. A regular Micromouse maze is 16x16. Note that the only walls that are known to the mouse at this point are the border walls and the wall to its right. The gray colored walls are currently unknown to the mouse. These will get updated as it searches the maze. The number under the mouse is not shown, but in this case, it is number 4. Again, this number represents the most optimistic estimate of the number of moves it will take to get to the finish (which is the center square, which is always number 0.) In this case, as is common with mouse robots, the mouse can only see the walls of the space it is currently residing in. The next step is for the mouse to move forward one cell. See Figure 5. This will usually be done in preference to turning, since turning takes additional time. Generally, turning should only be done if there a dead end is encountered. The first check is to see if the mouse is at the finish. Since the number under the mouse is not zero, the mouse is not there, so it will check the numbers in adjacent squares to see if they are consistent. In this case, they are, so the next step is to move forward. See Figure 6. The mouse has found a wall and it is remembered. It is colored black for illustration. The mouse is not at the destination square, so it checks the consistency of the numbers around it. The number under the mouse is 2, but it knows that there is a wall to the left now, so this is a violation of the algorithm each number no longer represents the number of moves to the destination. FLOOD FILL: This algorithm is much more complex than the previous two. It
3 3 Figure 5: Mouse follows numbers in descending order. Figure 7: Numbers corrected, so mouse follows numbers in descending order. Figure 6: Mouse finds wall to right. Numbers are now inconsistent. To remedy this, it checks the value of the square that it just arrived from and adds one to it, to make 4. This number is applied to the current square. Then it checks the square in front for consistency, and it is correct, at least as far as the mouse knows. If it was not correct, it would have to run through several iterations and update several numbers to maintain consistency throughout the maze. The next step is to move forward. Again, the mouse does not know what is ahead of it, so it will move forward by default. Note the updated number in the square that the mouse just left, in Figure 7. The next step would be to turn to the right and head toward the 2, then right again toward 1. Figure 8 illustrates that it may be necessary to change more than one number at once. There is more than one way to handle this. Either a stack can be set up to contain information on neighboring cells that need to be updated, or the brute-force method can be used: The mouse can simply scan its entire rendition of the maze in memory for consistency after every move, and if it finds a cell that is not consistent, it will change it and then repeat this cycle until all of the cells are consistent. Several of the numbers need to be updated in this case. Figure 9 shows how the mouse s rendition of the maze should look after this action. Figure 8: The number below the mouse is inconsistent. Figure 9: This change affects other numbers in the maze. The flood fill algorithm has a disadvantage, in that it is nearly impossible to design into a state machine a microcontroller is usually required. A simple microcontroller such as the Intel 8051 is
4 4 typically not powerful enough. Several kilobytes of RAM are usually required just to store the maze and wall data, not to mention the program itself. If the program is written in C, it will likely require even more overhead for the debugging information added to the end of the code. The flood fill algorithm purposely prevents moving to numbers that are higher, even if that would have been a shorter path. This seems like a disadvantage, but there is no way of knowing the shortest path before the walls are mapped. Following the algorithm strictly will improve the average time to finish in any maze. This algorithm always works, and is not random it is systematic and predictable. A maze could be deliberately designed to favor one of the previous algorithms, but this would not be expected from maze designers. To further illustrate how this algorithm works, some pseudocode is below: Stack method: Create a 16x16 array to hold maze elements Create a stack that can hold 256 entries Put zero into the finish cells Fill the rest of the cells with the most optimistic distance in cells to the goal (i.e. pretend there are no walls until found otherwise.) Push the current cell onto the stack While the stack is not empty: Pull a cell from the stack Is the cell s value one greater than the minimum value of its accessible neighbors? If yes, keep pulling cells and checking them. If no, change the cell s value to one greater than the minimum value of its accessible neighbors, and push all of the cell s accessible neighbors onto the stack. End While the mouse more efficient in terms of both memory use and processor overhead. RUNNING THE PROGRAM: The JAVA programming language is usually called from HTML, via the Internet. This allows the program to be accessed by anyone at any time, and from virtually any computing platform. In the figure below, the maze shown is a model of the actual maze used in the worldwide Micromouse competition in The program has three parameters that can be passed to the JAVA applet on the fly. The three text boxes at the bottom indicate, from left to right, the time to move forward one cell, the time to turn 90º in place, and the actual time the simulation takes to perform either of the two previous tasks, all in milliseconds. The default values are all 100 milliseconds, which is on the fast side for a real mouse. For recording data, I used 1000 milliseconds to move forward one cell and 500 milliseconds to turn. I estimated these values from a video of an actual competition that I viewed. I used 10 milliseconds for the actual time in the simulation. In the worst cases, mice could take in excess of an hour to finish a maze if viewed in real time, so the speedup factor here allows the simulation to complete in less than a minute. Brute-force method: Create a 16x16 array to hold maze elements Put zero into the finish cells Fill the rest of the cells with the most optimistic distance in cells to the goal (i.e. pretend there are no walls until found otherwise.) While the current cell s value is incremented: For every cell in the maze: Is the cell s value one greater than the minimum value of its accessible neighbors? If no, change the cell s value to one greater than the minimum value of its accessible neighbors. End For End While Either method will work, and both will do exactly the same thing. The best one to choose depends on processor speed and memory availability. For a slow processor with plenty of memory, the stack method is preferred, but for a faster processor and limited memory, the brute force method is preferred. For a real Micromouse maze, which is 16x16 cells, in some cases it may be necessary to push nearly the entire maze onto the stack. This requires much more memory overhead than the brute force method. The reason is because three variables must be passed to the stack for each cell, that is, the cell s X-position, the cell s Y-position, and the cell s number. The brute force method is simpler, and it is plausible that the main routine could be implemented in assembly language. This may make Figure 10: The Micromouse program used to simulate various mazes and algorithms. Maze is Chicago IV. RESULTS The program was run with many different parameters, to test the viability of each algorithm. Chicago 1986 maze: Algorithm Mean: Standard Deviation: Number of Samples:
5 5 Dead Reckoning Dead End Remembering Flood Fill The maze used in the 1986 Chicago competition is shown above. Note that the number of samples for the flood fill algorithm was only one. This is because the algorithm produces the same results every time it is run. Using statistical decision theory, I conclude that there is no statistical significance between Dead Reckoning and Dead End Remembering, however. This is due to the large variance in the performance of these algorithms. However, the Flood Fill algorithm is better than both of the others with 95% confidence for this maze. This confidence can be roughly measured without normalizing the mean and standard deviations. All that is required is that the Flood Fill algorithm s time be more than about 1.64 standard deviations from the mean of other algorithms. Although it is not statistically significant, the mean and variance for the Dead End Remembering algorithm is larger than the Dead Reckoning algorithm. The Dead Reckoning algorithm was meant as control. The reason for this discrepancy was determined from visual examination of the algorithms in action. It appeared that remembering shorter dead ends that are close to the finish give the mouse fewer opportunities to turn around. This means that the mouse had to travel through a greater portion of the maze before it encountered a junction that might make it turn around and head toward the finish. Dead Reckoning Dead End Remembering Flood Fill In this case, the opposite was true with respect to the first two algorithms. From visual examination of the maze, remembering dead ends does not appear to reduce the mouse s opportunities to turn around and find the finish. This observation, however, is not statistically significant. However, I can conclude that the Flood Fill algorithm is better than the others with 99% confidence for this maze. Random maze: Japan 1982 maze: Figure 12: Randomly generated maze. Algorithm Mean: Standard Deviation: Number of Samples: Dead Reckoning Dead End Remembering Flood Fill Algorithm Figure 11: Japan 1982 maze. Mean: Standard Deviation: Number of Samples: In this case, the Flood Fill algorithm performed worse compared to the previous two mazes. Although the values are too close for any statistical significance, this finding shows that the Flood Fill algorithm is not better than the others in all cases. In this case, a simpler mouse that only remembers dead ends would probably solve a maze faster. This shows that mazes can be designed to favor one algorithm over another.
6 6 V. SUGGESTIONS FOR FURTHER STUDY It may help to further back up the Flood Fill algorithm s viability to test it with more actual Micromouse competition mazes. In this study, only professional level mazes were studied. Perhaps drastically different results would be produced for student level mazes, which may be simpler, and favor the Flood Fill algorithm less. Instead of conducting multiple trials on the same randomly generated maze, many individual trials could be conducted on different random mazes. Also, a better random maze generator could be written. VI. CONCLUSIONS The Flood Fill algorithm provides a systematic and predictable way to solve a Micromouse maze. It appears to be better than simpler algorithms for mazes that are used in real competitions. Although it did not meet the mark for a randomly generated maze, it should be noted that Micromouse mazes are never randomly generated. Rather, they are deliberately designed. It would provide less of a challenge to the Micromouse designers if the maze were designed to favor simpler maze solving algorithms. Although the Flood Fill algorithm was statistically better than the other two algorithms tested for the two actual mazes, this may not be the case with other mazes. VII. BIBLIOGRAPHY Micromouse Introduction. By Peter Harrison. UC Davis Micromouse Home Page.
West Virginia University College of Engineering and Mineral Resources. Computer Engineering 313 Spring 2010
College of Engineering and Mineral Resources Computer Engineering 313 Spring 2010 Laboratory #4-A (Micromouse Algorithms) Goals This lab introduces the modified flood fill algorithm and teaches how to
Graph Theory Problems and Solutions
raph Theory Problems and Solutions Tom Davis [email protected] http://www.geometer.org/mathcircles November, 005 Problems. Prove that the sum of the degrees of the vertices of any finite graph is
The Basics of Robot Mazes Teacher Notes
The Basics of Robot Mazes Teacher Notes Why do robots solve Mazes? A maze is a simple environment with simple rules. Solving it is a task that beginners can do successfully while learning the essentials
Design a Line Maze Solving Robot
Design a Line Maze Solving Robot Teaching a Robot to Solve a Line Maze By Richard T. Vannoy II April 2009 [email protected] Please email me at the address above if you have questions or comments.
MEI Structured Mathematics. Practice Comprehension Task - 2. Do trains run late?
MEI Structured Mathematics Practice Comprehension Task - 2 Do trains run late? There is a popular myth that trains always run late. Actually this is far from the case. All train companies want their trains
A Review And Evaluations Of Shortest Path Algorithms
A Review And Evaluations Of Shortest Path Algorithms Kairanbay Magzhan, Hajar Mat Jani Abstract: Nowadays, in computer networks, the routing is based on the shortest path problem. This will help in minimizing
Using simulation to calculate the NPV of a project
Using simulation to calculate the NPV of a project Marius Holtan Onward Inc. 5/31/2002 Monte Carlo simulation is fast becoming the technology of choice for evaluating and analyzing assets, be it pure financial
The Darwin Game 2.0 Programming Guide
The Darwin Game 2.0 Programming Guide In The Darwin Game creatures compete to control maps and race through mazes. You play by programming your own species of creature in Java, which then acts autonomously
Load balancing Static Load Balancing
Chapter 7 Load Balancing and Termination Detection Load balancing used to distribute computations fairly across processors in order to obtain the highest possible execution speed. Termination detection
Chapter 4. Distance Vector Routing Protocols
Chapter 4 Distance Vector Routing Protocols CCNA2-1 Chapter 4 Note for Instructors These presentations are the result of a collaboration among the instructors at St. Clair College in Windsor, Ontario.
Chapter 8: Bags and Sets
Chapter 8: Bags and Sets In the stack and the queue abstractions, the order that elements are placed into the container is important, because the order elements are removed is related to the order in which
Mobile Robotics I: Lab 2 Dead Reckoning: Autonomous Locomotion Using Odometry
Mobile Robotics I: Lab 2 Dead Reckoning: Autonomous Locomotion Using Odometry CEENBoT Mobile Robotics Platform Laboratory Series CEENBoT v2.21 '324 Platform The Peter Kiewit Institute of Information Science
To begin, visit this URL: http://www.ibm.com/software/rational/products/rdp
Rational Developer for Power (RDp) Trial Download and Installation Instructions Notes You should complete the following instructions using Internet Explorer or Firefox with Java enabled. You should disable
PARALLELIZED SUDOKU SOLVING ALGORITHM USING OpenMP
PARALLELIZED SUDOKU SOLVING ALGORITHM USING OpenMP Sruthi Sankar CSE 633: Parallel Algorithms Spring 2014 Professor: Dr. Russ Miller Sudoku: the puzzle A standard Sudoku puzzles contains 81 grids :9 rows
Load Balancing and Termination Detection
Chapter 7 Load Balancing and Termination Detection 1 Load balancing used to distribute computations fairly across processors in order to obtain the highest possible execution speed. Termination detection
Catalog Creator by On-site Custom Software
Catalog Creator by On-site Custom Software Thank you for purchasing or evaluating this software. If you are only evaluating Catalog Creator, the Free Trial you downloaded is fully-functional and all the
Addressing The problem. When & Where do we encounter Data? The concept of addressing data' in computations. The implications for our machine design(s)
Addressing The problem Objectives:- When & Where do we encounter Data? The concept of addressing data' in computations The implications for our machine design(s) Introducing the stack-machine concept Slide
Load Balancing. Load Balancing 1 / 24
Load Balancing Backtracking, branch & bound and alpha-beta pruning: how to assign work to idle processes without much communication? Additionally for alpha-beta pruning: implementing the young-brothers-wait
Random Map Generator v1.0 User s Guide
Random Map Generator v1.0 User s Guide Jonathan Teutenberg 2003 1 Map Generation Overview...4 1.1 Command Line...4 1.2 Operation Flow...4 2 Map Initialisation...5 2.1 Initialisation Parameters...5 -w xxxxxxx...5
Representing Vector Fields Using Field Line Diagrams
Minds On Physics Activity FFá2 5 Representing Vector Fields Using Field Line Diagrams Purpose and Expected Outcome One way of representing vector fields is using arrows to indicate the strength and direction
Symbol Tables. Introduction
Symbol Tables Introduction A compiler needs to collect and use information about the names appearing in the source program. This information is entered into a data structure called a symbol table. The
Kenken For Teachers. Tom Davis [email protected] http://www.geometer.org/mathcircles June 27, 2010. Abstract
Kenken For Teachers Tom Davis [email protected] http://www.geometer.org/mathcircles June 7, 00 Abstract Kenken is a puzzle whose solution requires a combination of logic and simple arithmetic skills.
A Review of Sudoku Solving using Patterns
International Journal of Scientific and Research Publications, Volume 3, Issue 5, May 2013 1 A Review of Sudoku Solving using Patterns Rohit Iyer*, Amrish Jhaveri*, Krutika Parab* *B.E (Computers), Vidyalankar
Load Balancing and Termination Detection
Chapter 7 slides7-1 Load Balancing and Termination Detection slides7-2 Load balancing used to distribute computations fairly across processors in order to obtain the highest possible execution speed. Termination
Registry Tuner. Software Manual
Registry Tuner Software Manual Table of Contents Introduction 1 System Requirements 2 Frequently Asked Questions 3 Using the Lavasoft Registry Tuner 5 Scan and Fix Registry Errors 7 Optimize Registry
How to Build a Simple Pac-Man Game
How to Build a Simple Pac-Man Game For today's program, we are going to build a simple Pac-Man game. Pac-Man was one of the very first arcade games developed around 1980. For our version of Pac-Man we
The 2010 British Informatics Olympiad
Time allowed: 3 hours The 2010 British Informatics Olympiad Instructions You should write a program for part (a) of each question, and produce written answers to the remaining parts. Programs may be used
AI: A Modern Approach, Chpts. 3-4 Russell and Norvig
AI: A Modern Approach, Chpts. 3-4 Russell and Norvig Sequential Decision Making in Robotics CS 599 Geoffrey Hollinger and Gaurav Sukhatme (Some slide content from Stuart Russell and HweeTou Ng) Spring,
Routing in packet-switching networks
Routing in packet-switching networks Circuit switching vs. Packet switching Most of WANs based on circuit or packet switching Circuit switching designed for voice Resources dedicated to a particular call
Efficient Data Structures for Decision Diagrams
Artificial Intelligence Laboratory Efficient Data Structures for Decision Diagrams Master Thesis Nacereddine Ouaret Professor: Supervisors: Boi Faltings Thomas Léauté Radoslaw Szymanek Contents Introduction...
2) Write in detail the issues in the design of code generator.
COMPUTER SCIENCE AND ENGINEERING VI SEM CSE Principles of Compiler Design Unit-IV Question and answers UNIT IV CODE GENERATION 9 Issues in the design of code generator The target machine Runtime Storage
Shortest Path Algorithms
Shortest Path Algorithms Jaehyun Park CS 97SI Stanford University June 29, 2015 Outline Cross Product Convex Hull Problem Sweep Line Algorithm Intersecting Half-planes Notes on Binary/Ternary Search Cross
Fusion's runtime does its best to match the animation with the movement of the character. It does this job at three different levels :
The Animation Welcome to the eight issue of our Multimedia Fusion tutorials. This issue will discuss how the Fusion runtime handle sprites animations. All the content of this tutorial is applicable to
APP INVENTOR. Test Review
APP INVENTOR Test Review Main Concepts App Inventor Lists Creating Random Numbers Variables Searching and Sorting Data Linear Search Binary Search Selection Sort Quick Sort Abstraction Modulus Division
Introduction to Metropolitan Area Networks and Wide Area Networks
Introduction to Metropolitan Area Networks and Wide Area Networks Chapter 9 Learning Objectives After reading this chapter, you should be able to: Distinguish local area networks, metropolitan area networks,
Load Balancing and Termination Detection
Chapter 7 Slide 1 Slide 2 Load Balancing and Termination Detection Load balancing used to distribute computations fairly across processors in order to obtain the highest possible execution speed. Termination
Get an Easy Performance Boost Even with Unthreaded Apps. with Intel Parallel Studio XE for Windows*
Get an Easy Performance Boost Even with Unthreaded Apps for Windows* Can recompiling just one file make a difference? Yes, in many cases it can! Often, you can achieve a major performance boost by recompiling
Chapter 7 Load Balancing and Termination Detection
Chapter 7 Load Balancing and Termination Detection Load balancing used to distribute computations fairly across processors in order to obtain the highest possible execution speed. Termination detection
Session 7 Bivariate Data and Analysis
Session 7 Bivariate Data and Analysis Key Terms for This Session Previously Introduced mean standard deviation New in This Session association bivariate analysis contingency table co-variation least squares
The Effects of Start Prices on the Performance of the Certainty Equivalent Pricing Policy
BMI Paper The Effects of Start Prices on the Performance of the Certainty Equivalent Pricing Policy Faculty of Sciences VU University Amsterdam De Boelelaan 1081 1081 HV Amsterdam Netherlands Author: R.D.R.
Formal Languages and Automata Theory - Regular Expressions and Finite Automata -
Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Samarjit Chakraborty Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology (ETH) Zürich March
/ Department of Mechanical Engineering. Manufacturing Networks. Warehouse storage: cases or layers? J.J.P. van Heur. Where innovation starts
/ Department of Mechanical Engineering Manufacturing Networks Warehouse storage: cases or layers? J.J.P. van Heur Where innovation starts Systems Engineering Group Department of Mechanical Engineering
The Importance of Continuous Integration for Quality Assurance Teams
The Importance of Continuous Integration for Quality Assurance Teams Without proper implementation, a continuous integration system will go from a competitive advantage for a software quality assurance
Using the Game Boy Advance to Teach Computer Systems and Architecture
Using the Game Boy Advance to Teach Computer Systems and Architecture ABSTRACT This paper presents an approach to teaching computer systems and architecture using Nintendo s Game Boy Advance handheld game
Overload Protection in a Dual-Corded Data Center Environment
Overload Protection in a Dual-Corded Data Center Environment White Paper 206 Revision 0 by Neil Rasmussen Executive summary In a dual-corded environment, the loss of power on one path will cause the load
Building A Computer: A Beginners Guide
Building A Computer: A Beginners Guide Mr. Marty Brandl The following was written to help an individual setup a Pentium 133 system using an ASUS P/I- P55T2P4 motherboard. The tutorial includes the installation
Advanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2
Lecture Handout Computer Architecture Lecture No. 2 Reading Material Vincent P. Heuring&Harry F. Jordan Chapter 2,Chapter3 Computer Systems Design and Architecture 2.1, 2.2, 3.2 Summary 1) A taxonomy of
The correlation coefficient
The correlation coefficient Clinical Biostatistics The correlation coefficient Martin Bland Correlation coefficients are used to measure the of the relationship or association between two quantitative
Path Selection Methods for Localized Quality of Service Routing
Path Selection Methods for Localized Quality of Service Routing Xin Yuan and Arif Saifee Department of Computer Science, Florida State University, Tallahassee, FL Abstract Localized Quality of Service
Updates to Graphing with Excel
Updates to Graphing with Excel NCC has recently upgraded to a new version of the Microsoft Office suite of programs. As such, many of the directions in the Biology Student Handbook for how to graph with
I n t e r a c t i n g G a l a x i e s - Making Ellipticals Te a c h e r N o t e s
I n t e r a c t i n g G a l a x i e s - Making Ellipticals Te a c h e r N o t e s Author: Sarah Roberts Interacting - Making Ellipticals - Teacher Notes Making Ellipticals Making Ellipticals - Changing
Lottery Looper. User Manual
Lottery Looper User Manual Lottery Looper 1.7 copyright Timersoft. All rights reserved. http://www.timersoft.com The information contained in this document is subject to change without notice. This document
Picture Maze Generation by Successive Insertion of Path Segment
1 2 3 Picture Maze Generation by Successive Insertion of Path Segment 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32. ABSTRACT Tomio Kurokawa 1* 1 Aichi Institute of Technology,
Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine
Blender Notes Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine The Blender Game Engine This week we will have an introduction to the Game Engine build
An Introduction to The A* Algorithm
An Introduction to The A* Algorithm Introduction The A* (A-Star) algorithm depicts one of the most popular AI methods used to identify the shortest path between 2 locations in a mapped area. The A* algorithm
Nurse Rostering. Jonathan Johannsen CS 537. Scheduling Algorithms
Nurse Rostering Jonathan Johannsen CS 537 Scheduling Algorithms Most hospitals worldwide create schedules for their staff by hand, spending hours trying to optimally assign workers to various wards at
Course: Programming II - Abstract Data Types. The ADT Stack. A stack. The ADT Stack and Recursion Slide Number 1
Definition Course: Programming II - Abstract Data Types The ADT Stack The ADT Stack is a linear sequence of an arbitrary number of items, together with access procedures. The access procedures permit insertions
Lecture Notes on Linear Search
Lecture Notes on Linear Search 15-122: Principles of Imperative Computation Frank Pfenning Lecture 5 January 29, 2013 1 Introduction One of the fundamental and recurring problems in computer science is
A SIMULATOR FOR LOAD BALANCING ANALYSIS IN DISTRIBUTED SYSTEMS
Mihai Horia Zaharia, Florin Leon, Dan Galea (3) A Simulator for Load Balancing Analysis in Distributed Systems in A. Valachi, D. Galea, A. M. Florea, M. Craus (eds.) - Tehnologii informationale, Editura
Lego Robot Tutorials Touch Sensors
Lego Robot Tutorials Touch Sensors Bumper Cars with a Touch Sensor With a touch sensor and some robot programming, you can make your robot search its way around the room. It can back up and turn around
If you know exactly how you want your business forms to look and don t mind
appendix e Advanced Form Customization If you know exactly how you want your business forms to look and don t mind detail work, you can configure QuickBooks forms however you want. With QuickBooks Layout
Chapter 5 Analysis of variance SPSS Analysis of variance
Chapter 5 Analysis of variance SPSS Analysis of variance Data file used: gss.sav How to get there: Analyze Compare Means One-way ANOVA To test the null hypothesis that several population means are equal,
Introduction to Java and Eclipse
Algorithms and Data-Structures Exercise Week 0 Outline 1 Introduction Motivation The Example 2 Setting things up Setting command line parameters in Eclipse 3 Debugging Understanding stack traces Breakpoints
SIMS 255 Foundations of Software Design. Complexity and NP-completeness
SIMS 255 Foundations of Software Design Complexity and NP-completeness Matt Welsh November 29, 2001 [email protected] 1 Outline Complexity of algorithms Space and time complexity ``Big O'' notation Complexity
Regular Expressions and Automata using Haskell
Regular Expressions and Automata using Haskell Simon Thompson Computing Laboratory University of Kent at Canterbury January 2000 Contents 1 Introduction 2 2 Regular Expressions 2 3 Matching regular expressions
Intermediate PowerPoint
Intermediate PowerPoint Charts and Templates By: Jim Waddell Last modified: January 2002 Topics to be covered: Creating Charts 2 Creating the chart. 2 Line Charts and Scatter Plots 4 Making a Line Chart.
PCB ROUTERS AND ROUTING METHODS
PCB ROUTERS AND ROUTING METHODS BY: LEE W. RITCHEY, SPEEDING EDGE, COPYRIGHT SPEEDING EDGE DECEMBER 1999 FOR PUBLICATION IN FEBRUARY ISSUE OF PC DESIGN MAGAZINE INTRODUCTION Routing of printed circuit
GPS 72. Personal Navigator. Read This First! quick start guide
GPS 72 Personal Navigator Read This First! quick start guide Internal Antenna Quick Start Unit Overview Interface keys MOB ZOOM Battery Compartment MARK External Data/Auxilary Power Port 120 x 160 Four
ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER
ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER Pierre A. von Kaenel Mathematics and Computer Science Department Skidmore College Saratoga Springs, NY 12866 (518) 580-5292 [email protected] ABSTRACT This paper
Figure 1: Graphical example of a mergesort 1.
CSE 30321 Computer Architecture I Fall 2011 Lab 02: Procedure Calls in MIPS Assembly Programming and Performance Total Points: 100 points due to its complexity, this lab will weight more heavily in your
Q&As: Microsoft Excel 2013: Chapter 2
Q&As: Microsoft Excel 2013: Chapter 2 In Step 5, why did the date that was entered change from 4/5/10 to 4/5/2010? When Excel recognizes that you entered a date in mm/dd/yy format, it automatically formats
6 Series Parallel Circuits
6 Series Parallel Circuits This work is licensed under the Creative Commons Attribution 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/. Air Washington
Recursion vs. Iteration Eliminating Recursion
Recursion vs. Iteration Eliminating Recursion continued CS 311 Data Structures and Algorithms Lecture Slides Monday, February 16, 2009 Glenn G. Chappell Department of Computer Science University of Alaska
CALCULATIONS & STATISTICS
CALCULATIONS & STATISTICS CALCULATION OF SCORES Conversion of 1-5 scale to 0-100 scores When you look at your report, you will notice that the scores are reported on a 0-100 scale, even though respondents
An Introduction to the ARM 7 Architecture
An Introduction to the ARM 7 Architecture Trevor Martin CEng, MIEE Technical Director This article gives an overview of the ARM 7 architecture and a description of its major features for a developer new
Level 2 Routing: LAN Bridges and Switches
Level 2 Routing: LAN Bridges and Switches Norman Matloff University of California at Davis c 2001, N. Matloff September 6, 2001 1 Overview In a large LAN with consistently heavy traffic, it may make sense
Line Tracking Basic Lesson
Line Tracking Basic Lesson Now that you re familiar with a few of the key NXT sensors, let s do something a little more interesting with them. This lesson will show you how to use the Light Sensor to track
Chapter 6 Experiment Process
Chapter 6 Process ation is not simple; we have to prepare, conduct and analyze experiments properly. One of the main advantages of an experiment is the control of, for example, subjects, objects and instrumentation.
CS335 Sample Questions for Exam #2
CS335 Sample Questions for Exam #2.) Compare connection-oriented with connectionless protocols. What type of protocol is IP? How about TCP and UDP? Connection-oriented protocols Require a setup time to
CHAPTER 11: Flip Flops
CHAPTER 11: Flip Flops In this chapter, you will be building the part of the circuit that controls the command sequencing. The required circuit must operate the counter and the memory chip. When the teach
Greedy Routing on Hidden Metric Spaces as a Foundation of Scalable Routing Architectures
Greedy Routing on Hidden Metric Spaces as a Foundation of Scalable Routing Architectures Dmitri Krioukov, kc claffy, and Kevin Fall CAIDA/UCSD, and Intel Research, Berkeley Problem High-level Routing is
Common Data Structures
Data Structures 1 Common Data Structures Arrays (single and multiple dimensional) Linked Lists Stacks Queues Trees Graphs You should already be familiar with arrays, so they will not be discussed. Trees
A Beginner s Guide to PowerPoint 2010
A Beginner s Guide to PowerPoint 2010 I. The Opening Screen You will see the default opening screen is actually composed of three parts: 1. The Slides/Outline tabs on the left which displays thumbnails
Chapter 6: Graph Theory
Chapter 6: Graph Theory Graph theory deals with routing and network problems and if it is possible to find a best route, whether that means the least expensive, least amount of time or the least distance.
Static Load Balancing
Load Balancing Load Balancing Load balancing: distributing data and/or computations across multiple processes to maximize efficiency for a parallel program. Static load-balancing: the algorithm decides
CS311 Lecture: Sequential Circuits
CS311 Lecture: Sequential Circuits Last revised 8/15/2007 Objectives: 1. To introduce asynchronous and synchronous flip-flops (latches and pulsetriggered, plus asynchronous preset/clear) 2. To introduce
Platter. Track. Index Mark. Disk Storage. PHY 406F - Microprocessor Interfacing Techniques
Platter PHY 406F - icroprocessor Interfacing Techniques Disk Storage The major "permanent" storage medium for computers is, at present, generally magnetic media in the form of either magnetic tape or disks.
DISCRETE EVENT SIMULATION IN THE DESIGN, LAYOUT AND SCHEDULING OF PIPELESS BATCH PLANTS
DISCRETE EVENT SIMULATION IN THE DESIGN, LAYOUT AND SCHEDULING OF PIPELESS BATCH PLANTS F. Mushtaq and P.W.H. Chung Department of Chemical Engineering, Loughborough University, Loughborough, Leicestershire,
AsicBoost A Speedup for Bitcoin Mining
AsicBoost A Speedup for Bitcoin Mining Dr. Timo Hanke March 31, 2016 (rev. 5) Abstract. AsicBoost is a method to speed up Bitcoin mining by a factor of approximately 20%. The performance gain is achieved
2 Sample t-test (unequal sample sizes and unequal variances)
Variations of the t-test: Sample tail Sample t-test (unequal sample sizes and unequal variances) Like the last example, below we have ceramic sherd thickness measurements (in cm) of two samples representing
Chapter 7. Address Translation
Chapter 7. Address Translation This chapter describes NetDefendOS address translation capabilities. Dynamic Network Address Translation, page 204 NAT Pools, page 207 Static Address Translation, page 210
USING TRIANGULATIONS IN COMPUTER SIMULATIONS OF GRANULAR MEDIA
USING TRIANGULATIONS IN COMPUTER SIMULATIONS OF GRANULAR MEDIA DIDIER MÜLLER, THOMAS M. LIEBLING EPFL-DMA, 1015 Lausanne, Switzerland ABSTRACT The distinct element method used to simulate behavior of granular
Elaboration of Scrum Burndown Charts.
. Combining Control and Burndown Charts and Related Elements Discussion Document By Mark Crowther, Empirical Pragmatic Tester Introduction When following the Scrum approach a tool frequently used is the
Triangulation by Ear Clipping
Triangulation by Ear Clipping David Eberly Geometric Tools, LLC http://www.geometrictools.com/ Copyright c 1998-2016. All Rights Reserved. Created: November 18, 2002 Last Modified: August 16, 2015 Contents
İSTANBUL AYDIN UNIVERSITY
İSTANBUL AYDIN UNIVERSITY FACULTY OF ENGİNEERİNG SOFTWARE ENGINEERING THE PROJECT OF THE INSTRUCTION SET COMPUTER ORGANIZATION GÖZDE ARAS B1205.090015 Instructor: Prof. Dr. HASAN HÜSEYİN BALIK DECEMBER
AN EFFICIENT LOAD BALANCING APPROACH IN CLOUD SERVER USING ANT COLONY OPTIMIZATION
AN EFFICIENT LOAD BALANCING APPROACH IN CLOUD SERVER USING ANT COLONY OPTIMIZATION Shanmuga Priya.J 1, Sridevi.A 2 1 PG Scholar, Department of Information Technology, J.J College of Engineering and Technology
FURTHER VECTORS (MEI)
Mathematics Revision Guides Further Vectors (MEI) (column notation) Page of MK HOME TUITION Mathematics Revision Guides Level: AS / A Level - MEI OCR MEI: C FURTHER VECTORS (MEI) Version : Date: -9-7 Mathematics
