•Many problems can be solved by straightforward algorithms inan amount of time polynomial proportional to the problemsize. These problems are generally tractable for solvingexactly with a computer, though a significant amount ofcomputing power and space may be necessary.

•However, there is a much larger group of problems which, asfar as we know, cannot be solved in polynomial time (NPC+).For these problems the best we can do is a best effort attemptto get as close to the optimal as possible within ourcomputation time and space limits.

•There are numerous different heuristic and approximationalgorithms

that are used for NPC+ problems, and this is wheresearch algorithms are used. Since we don’t know how to findthe optimum solution, we have to search around in a problemspace.

HOW COMPLEXITY CLASSES SCALE

BLUE=LI NEAR, GREEN=POLY NOMI AL, RED=EXPONENTI AL

SOME EXAMPLES OF NPC+ PROBLEMS

•Finding binding sites on proteins

•Delivery route planning

•Calculating cheap airline trips

•Stock market portfolio selection

•Packing your belongings for a move

•Making the Internet fast

HOW SEARCH ALGORITHMS WORK

•Search is a process of hill climbing, focusing onusing information in previously found solutions to findeven better solutions. One well known example isthe Newton-Raphson

method of finding squareroots.

•The problem is an uneven search landscape willcause a search to become stuck on low lying peaksand crags.

•To get out of these traps, the search algorithm hasto have an element of exploration. Explorationconsists of sampling areas of the landscape, and hillclimbing in promising sections.

HOW SEARCH ALGORITHMS WORK

•Search is a process of hill climbing, focusing onusing information in previously found solutions to findeven better solutions. One well known example isNewton’s method of finding square roots.

•The problem is in an uneven search landscape willcause a search to get stuck on low peaks andcrags.

•To get out of these traps, the search algorithm hasto have an element of exploration.Explorationconsists of sampling areas of the landscape, andexploring promising sections.

FINDING GOOD PLACES TO EXPLORE

•How do we know where to go?

x

x

x

x

x

x

x

x

x

THE DILEMMA

•Unfortunately, selecting good areas tohillclimb

isitself a very difficult problem to solve, anddepending on how good of a guess is desired theselection algorithm will be NPC+.

•If humans are capable of adding information to thesearch process, then we can assist the searchalgorithm in exploring the problem space moreeffectively than algorithmically possible.

•The reason why algorithms have trouble searching isbecause they don’t have a good, generic patterndetection ability. They can’t effectively detectpatterns in the solutions that lead them to bettersolutions. However, we humans are known for ourpattern detection, and can use our superior abilityto help out the algorithm.

•Let’s take another look at the search process.

EXAMPLE

•Which solution signifies a new area to investigate?

•Must be both very unlike other good solutions, whilebeing highly ranked.

1

v

v

v

v

v

v

a

f

j

k

[

/

B

D

d

e

f

b

]

/

=

\

Z

g

h

a

b

]

/

2

v

v

v

v

v

v

a

f

j

k

g

/

B

D

d

e

f

b

]

/

=

\

Z

g

h

=

b

]

/

3

v

v

v

v

v

v

a

f

c

d

e

f

B

D

d

e

f

b

]

/

=

\

Z

g

h

a

b

]

/

4

v

v

v

v

v

v

j

k

j

k

g

/

B

D

d

e

/

=

\

H

=

\

Z

g

h

=

b

]

Z

5

v

v

v

v

v

v

b

/

=

\

Z

?

d

e

f

i

a

H

c

B

D

Z

k

[

]

b

>

d

e

6

v

v

v

v

v

v

a

f

c

j

k

f

B

D

/

=

\

b

]

/

=

\

D

B

D

a

b

]

/

7

v

v

v

v

v

v

a

f

j

k

[

/

]

/

=

\

f

b

]

/

=

\

Z

g

h

a

b

]

/

8

v

v

v

v

v

v

a

d

e

f

g

/

B

D

d

e

f

b

]

/

=

\

Z

g

h

=

b

]

/

9

v

v

v

v

v

v

i

>

>

>

>

h

D

Z

?

j

k

f

d

g

h

a

b

]

d

Z

Z

Z

i

EXAMPLE

•Which solution signifies a new area to investigate?

•Must be both very unlike other good solutions, whilebeing highly ranked.

•This representation is all the search algorithm sees. It knowsnothing about the nature of the problem.

•Consequently, to perform a fair comparison, the human usercannot be given any additional problem domain information.

1

v

v

v

v

v

v

a

f

j

k

[

/

B

D

d

e

f

b

]

/

=

\

Z

g

h

a

b

]

/

2

v

v

v

v

v

v

a

f

j

k

g

/

B

D

d

e

f

b

]

/

=

\

Z

g

h

=

b

]

/

3

v

v

v

v

v

v

a

f

c

d

e

f

B

D

d

e

f

b

]

/

=

\

Z

g

h

a

b

]

/

4

v

v

v

v

v

v

j

k

j

k

g

/

B

D

d

e

/

=

\

H

=

\

Z

g

h

=

b

]

Z

5

v

v

v

v

v

v

b

/

=

\

Z

?

d

e

f

i

a

H

c

B

D

Z

k

[

]

b

>

d

e

6

v

v

v

v

v

v

a

f

c

j

k

f

B

D

/

=

\

b

]

/

=

\

D

B

D

a

b

]

/

7

v

v

v

v

v

v

a

f

j

k

[

/

]

/

=

\

f

b

]

/

=

\

Z

g

h

a

b

]

/

8

v

v

v

v

v

v

a

d

e

f

g

/

B

D

d

e

f

b

]

/

=

\

Z

g

h

=

b

]

/

9

v

v

v

v

v

v

i

>

>

>

>

h

D

Z

?

j

k

f

d

g

h

a

b

]

d

Z

Z

Z

i

WHY COMPARE ON THE NUMBER OFSOLUTIONS EVALUATED?

•Both human users and algorithms are allowed to dowhatever they want with the solutions that havebeen found so far. Consequently, the number ofsolutions evaluated is the upper bound oninformation used by both parties to discover newsearch areas.