Overview. Depth Limited Search. Depth Limited Search. COMP219: Artificial Intelligence. Lecture 8: Combining Search Strategies and Speeding Up

Similar documents
COMP219: Artificial Intelligence. Lecture 8: Combining Search Strategies and Speeding Up

Better Search Improved Uninformed Search CIS 32

CSE 3401: Intro to AI & LP Uninformed Search II

CSE 3402: Intro to Artificial Intelligence Uninformed Search II

Artificial Intelligence. Uninformed Search Strategies

Uninformed search methods

CENG 466 Artificial Intelligence. Lecture 4 Solving Problems by Searching (II)

Search I. Tuomas Sandholm Carnegie Mellon University Computer Science Department. [Read Russell & Norvig Chapter 3]

Uninformed search methods II.

Uninformed search methods II.

CSC384: Introduction to Artificial Intelligence. Search

Problem Solving as Search - I

Princess Nora University Faculty of Computer & Information Systems ARTIFICIAL INTELLIGENCE (CS 370D) Computer Science Department

Problem Solving Agents

COMP9414: Artificial Intelligence Uninformed Search

Solving Problems by Searching chap3 1. Problem-Solving Agents

Uninformed search methods

Uninformed Search Strategies

CS 4649/7649 Robot Intelligence: Planning

SEARCH TREE. Generating the children of a node

SEARCH SEARCH TREE. Node: State in state tree. Root node: Top of state tree

Uninformed Search (Ch )

Uninformed Search (Ch )

Introduction. AI and Searching. Simple Example. Simple Example. Now a Bit Harder. From Hammersmith to King s Cross

Real World Search Problems. CS 331: Artificial Intelligence Uninformed Search. Simpler Search Problems. Example: Oregon. Search Problem Formulation

Representation. Representation. Representation. Representation. 8 puzzle.

G53CLP Constraint Logic Programming

Uninformed search strategies

/435 Artificial Intelligence Fall 2015

Depth-bounded Discrepancy Search

6.034 Artificial Intelligence

CS 4649/7649 Robot Intelligence: Planning

Game Theory. 1. Introduction. Bernhard Nebel and Robert Mattmüller. Summer semester Albert-Ludwigs-Universität Freiburg

Transposition Table, History Heuristic, and other Search Enhancements

Spider Search: An Efficient and Non-Frontier-Based Real-Time Search Algorithm

CS Lecture 5. Vidroha debroy. Material adapted courtesy of Prof. Xiangnan Kong and Prof. Carolina Ruiz at Worcester Polytechnic Institute

COLREGS Based Collision Avoidance of Unmanned Surface Vehicles

CS472 Foundations of Artificial Intelligence. Final Exam December 19, :30pm

DESIGN AND ANALYSIS OF ALGORITHMS (DAA 2017)

Advanced Search Hill climbing

The Evolution of Transport Planning

Lecture 04 ( ) Hazard Analysis. Systeme hoher Qualität und Sicherheit Universität Bremen WS 2015/2016

COMP 406 Lecture 05. Artificial. Fiona Yan Liu Department of Computing The Hong Kong Polytechnic University

Algorithms and Data Structures

A new Decomposition Algorithm for Multistage Stochastic Programs with Endogenous Uncertainties

Robocup 2010 Version 1 Storyboard Prototype 13 th October 2009 Bernhard Hengst

CS 4649/7649 Robot Intelligence: Planning

Distributed Control Systems

CS 4649/7649 Robot Intelligence: Planning

Planning and Acting in Partially Observable Stochastic Domains

CS 4649/7649 Robot Intelligence: Planning

Design and Evaluation of Adaptive Traffic Control System for Heterogeneous flow conditions

Basketball Agent 101 Syllabus

University of Cincinnati

CSM Pre-Test. 3) Who is responsible for achieving a Sprint Goal? A) ScrumMaster B) Product Owner C) Project Manager D) Scrum Development Team

Ocean Fishing Fleet Scheduling Path Optimization Model Research. Based On Improved Ant Colony Algorithm

The system design must obey these constraints. The system is to have the minimum cost (capital plus operating) while meeting the constraints.

CS 351 Design of Large Programs Zombie House

4. Please Do Break the Crystal

RULES MODERNISATION: DISCUSSIONS RELATING TO STROKE AND DISTANCE RELIEF

A SEMI-PRESSURE-DRIVEN APPROACH TO RELIABILITY ASSESSMENT OF WATER DISTRIBUTION NETWORKS

Clinton Keith. Scrum Essentials for Game Teams. Clinton Keith Scott Crabtree. Thursday, March 1, 12. Presented by. Scrum is a simple framework

Optimization and Search. Jim Tørresen Optimization and Search

Modelling Today for the Future. Advanced Modelling Control Techniques

Applying Bi-objective Shortest Path Methods to Model Cycle Route-choice

University of Cincinnati

DECISION-MAKING ON IMPLEMENTATION OF IPO UNDER TOPOLOGICAL UNCERTAINTY

Design Strategies for ARX with Provable Bounds: SPARX and LAX

Intelligent Decision Making Framework for Ship Collision Avoidance based on COLREGs

Kick me. Kicking ScrumBut. Rowan Bunning. Certified Scrum Trainer Software WithStyle

Artificial Intelligence for the EChO Mission Scheduler

Autonomous blimp control with reinforcement learning

Kungl Tekniska Högskolan

Centre for Autonomous Systems

Basic CPM Calculations

Introduction. Level 1

Pocatello Regional Transit Master Transit Plan Draft Recommendations

Module 3 Developing Timing Plans for Efficient Intersection Operations During Moderate Traffic Volume Conditions

Brisbane Hotel Performance

METRO System Design. Witt&Sohn AG Aug-11

Flight Dynamics II (Stability) Prof. Nandan Kumar Sinha Department of Aerospace Engineering Indian Institute of Technology, Madras

GEN II Robot Soccer EV3 Compass Training Curriculum Brian Thomas

Poseidon Team Description Paper RoboCup 2016, Leipzig, Germany

TACTICAL/TECHNICAL TOOL KIT

Designing Mechanisms for Reliable Internet-based Computing

LOCOMOTION CONTROL CYCLES ADAPTED FOR DISABILITIES IN HEXAPOD ROBOTS

Opleiding Informatica

TACTICAL/TECHNICAL TOOL KIT

Icons of Depth & Complexity. Based on Layering Differentiated Curriculum for the Gifted and Talented by Sandra N. Kaplan

Aryeh Rappaport Avinoam Meir. Schedule automation

E.I. Kugushev, 7.6. Jaroshevskij Institute of Applied Mathematics, the USSR Academy of Sciences, Moscow, A-47, Miusskaya Sq», 4

Which compressed air system design is right for you?

Phoenix Soccer 2D Simulation Team Description Paper 2015

This IS A DRAG IS IT A LIFT!!!!! Aerodynamics

VR Fully Immersive Baseball Game

WASHINGTON PREMIER FC AGE-SPECIFIC CURRICULUM

PREDICTING the outcomes of sporting events

Scrum Basics. Prof. Casper Lassenius Aalto University

Supplementary Material for Bayes Merging of Multiple Vocabularies for Scalable Image Retrieval

Efficiency of Choice Set Generation Methods for Bicycle Routes

Transcription:

COMP219: Artificial Intelligence Lecture 8: Combining Search Strategies and Speeding Up Last time Basic problem solving techniques: Breadth-first search complete but expensive Depth-first search cheap but incomplete Today Variations and combinations Limited depth search Iterative deepening search Speeding up techniques Avoiding repetitive states Bi-directional search Overview Learning outcome covered today: Identify, contrast and apply to simple examples the major search techniques that have been developed for problem-solving in AI 1 2 Depth Limited Search Depth first search has some desirable properties: space complexity But if wrong branch expanded (with no solution on it), then it may not terminate Idea: introduce a depth limit on branches to be expanded Don t expand a branch below this depth Most useful if you know the maximum depth of the solution Depth Limited Search depth limit = max depth to search to; agenda = [initial state]; if initial state is goal state then return solution else while agenda not empty do take node from front of agenda; if depth(node) < depth limit then { new nodes = apply operations to node; add new nodes to front of agenda; if goal state in new nodes then return solution; } 3 4

Can t find Eforie with ; Max depth = 9 would find all cities, but use some bad routes Depth Limited Search Will always terminate. Will find solution if there is one in the depth bound. But, Goldilocks principle: Too small a depth bound misses solutions ('incomplete') Too large a depth bound may find poor solutions when there are better ones. 16

Iterative deepening Iterative Deepening addresses problem of choosing depth bound is complete and finds best solution. Basic idea is: do d.l.s. for depth n = 0; if solution found, return it; otherwise do d.l.s. for depth n = n + 1; if solution found, return it, etc; So we repeat d.l.s. for all depths until solution found. Useful if the search space is large and the maximum depth of the solution is not known. D =1 17 18 D =1 D =1 19 20

D =1 21 22 23 24

25 26 27 28

D =3 29 30 D =3 General Algorithm for Iterative Deepening depth_limit = 0; while(true) /* infinite loop */ { result = depth_limited_search( max_depth = depth limit, agenda = initial node); if result contains goal then return result; depth limit = depth limit + 1; } Calls d.l.s. as subroutine. 31 32

IDS Properties Note that in iterative deepening, we re-generate nodes on the fly. Each time we do a call on depth limited search for depth d, we need to regenerate the tree to depth d 1. Trade off time for memory. In general we might take a little more time, but we save a lot of memory. Example: Suppose b = 10 and d = 5. Breadth first search would require examining 111,110 nodes, with memory requirement of 100,000 nodes. Iterative deepening for same problem: 123,450 nodes to be searched, with memory requirement of only 50 nodes. Takes 11% longer in this case, but savings on memory are immense. Techniques for Speeding Up 33 Repeated States The Search Tree Avoiding Repeated States Arad Sibiu Fagaras Arad Timisoara Oradea Zerind Rimnicu Vilcea There are three ways to deal with this (in order of increasing effectiveness and computational overhead): do not return to the state you have just come from do not create paths with cycles in them do not generate any state that was ever generated before Note there is a trade-off between the cost of extra search and the cost of checking for repeated states Blind search may repeat nodes; if the search path contains cycles we may get into an infinite loop when doing depth first search 35 36

The Impact of Branching In analyses branching is often assumed to be uniform But in practice this is often not so This can make a big difference to the search space Goal vs Data driven search We can choose to search from the initial state to the goal (data driven, forward) the goal to the initial state (goal driven, backward) The branching may be very different... Goal driven search is very often very much more efficient (few paths reach the goal) Often used in expert systems (and Prolog) 37 38 Example Blocks World Forward Search Space: Initial Goal Consider the blocks world: Blocks are laid out on a table and a robot can move any clear block to another clear block. Suppose the initial state and goal state are as follows: Initial Goal 6 states at level 1 18 states at level 2 39 40

Backward Search Space: Goal Initial 1 state at level 1 3 states at level 2 About Backward Search Backward (goal driven) search can be more effective......but may not always be applicable! need to be able to generate predecessors (can be difficult, there could be many) effectively describe the goal ( no queen attacks another queen...?) 41 42 Bi-directional Search Bidirectional Search If we are unsure of the branching factor, then searching from both ends may be best 43 44

Example: Romania On holiday in Romania; currently in Arad Flight leaves tomorrow from Bucharest Example: Romania On holiday in Romania; currently in Arad Flight leaves tomorrow from Bucharest 45 46 Example: Romania On holiday in Romania; currently in Arad Flight leaves tomorrow from Bucharest Bi-directional Search Arad Sibiu Timisoara Zerind Arad Fagaras Oradea Bucharest 47 48

Bi-directional Search: Good Much more efficient Rather than doing one search of b d...we do two b d/2 searches E.g., Suppose b = 10, d = 6 Breadth first search will examine 10 6 = 1,000,000 nodes Bidirectional search will examine 2 10 3 = 2,000 nodes Can combine different search strategies in different directions Bi-directional Search: Bad Depends on applicability of backward search Needs an efficient way to check whether each new node appears in the other search: need to store nodes in frontier, so large memory requirements For example, for two bi-directional breadth-first searches, branching factor b, depth of the solution d, memory requirement of b d/2 for each search For large d, is still impractical 49 50 Summary More advanced problem-solving techniques: Depth-limited search Iterative deepening Bi-directional search Avoiding repeated states These improve on basic techniques like breadth-first and depth-first search However, they still aren t always powerful enough to give solutions for realistic problems Are there more improvements we can make...? Next time Lists in Prolog 51