Parallel & Distributed Search Flashcards

1
Q

Explain the divide and conquer search algorithm

A

The divide and conquer methodology partitions problems into sub problems and solves the sub problems. It then combines these solutions into the final solution. It is done by using an AND tree and recursion.

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

How can one parallelise divide and conquer search algorithm?

A

There are 2 methods: Centralised multiprocessor & Distributed divide-and-conquer

Centralised Multiprocessor:
- uses a single shared stack of sub problems which can become a bottleneck as the number of processes increase
- if using a cluster of machines we have to use message passing to distribute sub problems
- store original and final solution on 1 process
- downside is that it takes a while before all processes are busy and it takes a while to combine the results

Distributed divide-and-conquer:
- both the original and final solution are distributed among memories of the processes
- benefit -> problem size that can be solved increases with the increases of the number of processes
- challenge -> keeping the work load balanced

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

Explain the backtrack search algorithm

A

This algorithm uses Depth First Search with recursion. An OR tree is used and backtrack occurs when a node has no children (dead end) or all nodes children have been explored.

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

What is the worst case in backtrack search?

A

Average branching factor = b
Search depth = k
Worst case = (b^(k+1) - b)/(b - 1) + 1 = theta(b^k)

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

How can one parallelise the backtrack search algorithm?

A

Two options:
1. Give each process a subtree
- if p < b^k (no. of subtrees) : process 0 searches to a depth where there are enough subtrees for each process
- disadvantage: tree is off balance
2. Allocate many subtrees per process
- search to a deeper level and the cyclically allocate subtrees to processes

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

Explain the branch and bound search algorithm

A

It is a variant of backtrack search that takes the estimated optimality of partial solutions into account in order to avoid considering solutions(moves) that cannot be optimal. Uses an OR tree. Usually pursues a breadth first search of state space tree.

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

How can one parallelise branch and bound search algorithm?

A

Two options:
1. Single priority queue:
- contention for accessing shared queue
- problem size does not scale with number of processors
2. Multiple priority queues:
- occasionally send unexpired problems to other processes, to share work at start up and to promote distribution of sub problems with good lower bounds and reduce amount of wasted work
- trade-off between amount of wasted work and cost of sending messages

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

Explain the Search Game Tree algorithm

A

Based on an exhaustive search, such as the minimax algorithm which is a form of DFS which considers a series of possible moves to a certain depth and then estimates the result at the depth using a heuristic function. Uses and AND/OR tree.

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

How can one parallelise alpha-beta pruning (the Search Game Tree algorithm)?

A

By assigning different subtrees to different processes.
HOWEVER alpha beta pruning is not as effective for a parallel implementation as a sequential implementation of minimax due to the changing of alpha beta values leading to independent processes needing to send updated values to other processes in order to prune a non-optimal moves.

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

What are some enhancements that can made to alpha-beta pruning?

A

Aspiration Search: estimates the value at the root node and use this to choose a smaller window than negative infinity to positive infinity -> pruning happens earlier on the search

Iterative Deepening: starts with a shallow search. Uses (d - 1)-ply search results to order the nodes for d-ply search

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