Uninformed Search Problems Flashcards

1
Q

What are the two types of search algorithms?

A

> Uninformed search: Each State has no additional information
Informed search: Each state has some information about how far the goal state could be

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a search tree? Why is it called a tree? How is it given?

A

> It is a route for all the posible solutions
It starts at the root node and terminates at the leaf nodes
It is not explicitly given but is worked out as the search develops

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is a state?

A

> This is a representation of a physical configuration

> e.g. A city on a train map

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is a node? What does it represent and what information does it include?

A

> This is a data structure constituting part of a search tree
It includes the parent node, the children nodes, the depth
It represents a state. A state ≠ node

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Why does a state ≠ node?

A

Because multiple nodes might represent the same state.

Each node representing the same state will have a different path / depth etc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the initial state?

A

this is the state that the problem starts at

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the goal state?

A

This is the state that the problem is aiming to get towards

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How can we analyse a problem into a search probelm?

A

> Conceptualise possible solutions and intermediate stages towards a solution
Identify the inital state
Identify the goal states
Possible actions: Identify transitions that allow a state to be transformed into other successor states
Devise an alorithm that will systematically search through possible paths from the inital state in order to find a path that ends in a goal

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is a path cost?

A

This is the sum of all costs asiated with transitioning between states (between nodes).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the fringe array?

A

This is a queue of all nodes that have been found but not processed

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is the explored array?

A

This is a collection of all the processed nodes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are 2 main types of uninformed search?

A

> Breadth-frist search

> Depth-first search

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is breadth-first search?

A

This is where you always search the node with the smallest depth
[Picture1]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

How is breadth-first search done?

A

> This is achieved with a First-in-first-out (FIFO) queue.

> The earliest node to be found and added to the fringe is the next one to be explored

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

How is a node removed from the fringe?

A

After it has been explored, it will be removed from the queue and added to the explored array.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

How does a FIFO queue cause the search to be breadth first?

A

Because the nodes with the smallest depth are explored first before the deeper nodes as they are descovered first

17
Q

What is depth-first search?

A

This is where you always search the node with the greatest depth
[Picture2]

18
Q

How is depth-frist search done?

A

> This is achieved with a Last-in-first-out (LIFO) queue.

> The most recent node to be found and added to the fringe is the next one to be explored

19
Q

How is a node removed from the fringe?

A

After it has been explored, it will be removed from the queue and added to the explored array.

20
Q

How does a LIFO queue cause the search to be breadth first?

A

The nodes with the greatest depth are explored first before the deeper nodes as they are discovered most recently

21
Q

What is the general procedure for an uninformed tree search?

A
[FUNCTION TREE_SEARCH]
fringe += initial_state
[LOOP]
> IF fringe IS empty RETURN failure
> node_test = fringe[LIFO/FIFO]
> fringe.remove(node_test)
> IF node_test == goal_state RETURN node_test
> fringe += node_test.children
22
Q

What is loop testing?

A

> This essentially adds a new array of all states that have been checked already.
Before a node is added to the fringe, it is checked to see if that state it already represents has been checked or not. This prevents loop issues

23
Q

What is the general procedure for an uninformed tree search with loop checking?

A
[FUNCTION TREE_SEARCH]
fringe[] += initial_state
[LOOP]
> IF fringe[] IS empty RETURN failure
> node_test = fringe[LIFO/FIFO]
> fringe.remove(node_test)
> IF node_test == goal_state RETURN node_test
> explored[] += node_test
> add_fringe = Unexplored(node_test.children)
> fringe[] += add_fringe
24
Q

What are methods of evaluating a search strategy?

A

> Completeness: Does it always find a solution (if one exists)
Time complexity: The number of nodes traversed until a goal
Space complexity: Largest number of nodes the fringe can store
Optimally: Does it always find the least-cost solution

25
Q

How can time and space complexity be measured?

A
b = Maximum branching factor of the search tree
d = depth of the least cost solution
m = maximum depth of the state space (may be ∞)
26
Q

Evaluate breadth-first search

A

> Completenes: Yes (if b (branching factor) is finite)
Time = 1 + b + b^2 + … + b^d = O(b^d)
Space = O(b^(d+1))
Optimal: Yes (if cost = q per step), but not optimal in general

27
Q

Evaluate depth-first search

A

> Completness: No, fails in infinite-depth spaces
Time = O(b^m)
Space = O(bm) linear space
Optimal: No