Combinatorial Search Flashcards

1
Q

Combinatorial Algorithms

A

perform computations on discrete structure

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

Combinatorial Search

A

Finding one or more optimal or suboptimal solutions in a defined problem space

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

Trees

A
  • Root of problem to be solved
  • Each node represents a sub problem
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

AND - Tree

A

A solution to every subproblem is required

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

OR - Tree

A

A solution to any of the subproblems is required

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

Divide and Conquer

A
  • partition problem into subproblems
  • solve the subproblems
  • combine solutions to subproblems
  • AND - Tree
  • Recursive
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Centralised Multiprocessor

A
  • One shared stack
  • Effective workload balancing mechanism
  • Stack can become bottleneck as a number of processors increase
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Distributed Divide and Conquer

A

Subproblems must be distributed
Original problem and final solution

  • stored on a single processor.
    o three phases, limited speedup
  • or distributed
    o maximum problem increase with number of processors
    o challenge to keep workloads balanced
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Backtrack Search

A
  • Depth First Search
  • Recursive Algorithm
  • OR-Tree
    o A node has no children
    o all node’s childrenn have been explored
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Backtrack Search Strategy

A
  • Identify the longest incomplete word
    o Look for a word of that length
    o No word found - backtrack
  • Otherwise find longest incomplete word that has at least one letter
    o Look for a word of that length
    o No word found - backtrack
  • Recurse until solution found or all possibilities have been attempted
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Backtrack Search - Time Complexity

A
  • Suppose
    o The average branching factor is b
    o Tree searched to depth k
  • Examine
    o Nodes in the worst case (exponential time)
    1 + b + b^2 + … + b^k = (b^(k+1) - b) / (b - 1) +1 = 0(b^k)
    o Amount of memory
    0(b^k)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Parallel Backtrack

A

Option 1
* Give each process a subtree
* Works when p = b^k because each process has equal work
* Otherwise, Search to a level m where b^m > p
* Each process explores its share of subtrees at m
* Increasing m
* More subtress
* More balances workload
* Increases # redundanct computations

Option 2
* Make sequential search fo deeper
* Cyclic allocation of subtrees

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

Branch and Bound

A
  • Variant of backtrack search
  • Takes advantage of information about optimality of partial solutions to avoid considering solutions that cannot be optimal
  • OR - Tree
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Branch and Bound Methodology

A
  • Could solve puzzle by pursuing breadth-first search of state
    space tree
  • We want to examine as few nodes as possible
  • Can speed up search if we associate with each node an estimate of minimum number of tile moves needed to solve puzzle, given moves made so far
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Manhattan Distance

A

Best-first search: search from node that has the smallest value for a function such as
the Manhattan distance

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

Parallel Branch and Bound

A
  • Conflicting Goals
    • Want to maximise ratio of local to non-local memory references
    • Want to ensure processors searching worthwhile portions of state space tree
17
Q

Single priority queue

A
  • not a good idea
  • communication overhead too great
  • accessing queue is a performance
    bottleneck
  • problem size does not scale with
    number of processors
18
Q

Multiple Priority Queue

A
  • Each process maintains separate priority
    queue of unexamined subproblems
  • Each process retrieves subproblem with
    smallest lower bound to continue search
  • Occasionally processes send unexamined
    subproblems to other processes
19
Q

Searching Game Trees

A
  • Based on exhaustive search
  • Minimax Algorithm
    • A form of DFS
    • Player 1(2) wnats to maximise (minimise) value of node
  • AND/OR Tree
20
Q

Complexity of Minimax

A
  • branching factor b
  • Depth d
  • Examine b x d leaves
  • Exponential time in depeth of search
  • Space required = linear in depth of search
21
Q

Alpha Beta Pruning

A
  • Typically a deeper search = higher play quality
  • Allows deeper searches
  • As soon as alpha > beta we can prune
  • Beta is the worst value of the child if minimising
  • Alpha is the best value of the child if maximising
22
Q

Serial Improvements to Minimax

A

Aspiration Search
* Pruning window (v-e, v+e) instead of (-infinity, +infinity)
* Pruning iincreases as window shrinks

Iterative deepening
* Ply = level of game tree
* Iterate deeper and depper until time expired
* Use (d-1) - ply search to prepare for d-ply search
* Use results to order nodes for d-ply search
* Use return value for d-ply aspiration search

23
Q

Parallel alpha beta search

A
  • Perform move generation in parallel and position evaluation
  • Search the tree in parallel
  • Parallel
    • Aspiration Search
    • Distributed Tree Search
  • Processes examine independent subtrees in parallel
  • Overheads
    • Search overhead - duplicate work
    • Communication overhead
  • Parallel Aspiration Search
    • Multiple windows, one per process
24
Q

Distributed Tree Search

A
  • Processes control groups of processors
  • Process 0 assigned root node, control other processes
  • Type 1 nodes
    • All processors search leftmost child
    • on return - processes assigned children breadth-first
  • Type 2 or 3 nodes
    • Processes assigned children breadth-first
  • On completion - parent process may reassign its processors to children processes still busy
25
Q
A