# 4 Search Engines: `Search`

This chapter describes various search engines. The engines fall into the following categories.

Basic Search Engines

  Easy to use engines for single, all, and best solution search.

General Purpose Search Engines

  Engines that offer additional support for:

  Recomputation

    Recomputation allows to trade space for time, allowing to solve problems which otherwise would use too much memory.

  Killing

    The execution of engines can be killed.

  Output

    Solutions computed can be returned as procedures or first-class computation spaces.

Search Object

The search object supports demand-driven search for single, all, and best solutions. Search can be stopped and resumed as needed. The object supports recomputation and the different kinds of output as described above.

Parallel Search Engines

Parallel search engines use multiple networked computers to speed up the exploration of search trees. During exploration of a search tree entire subtrees are delegated to Oz engines that run on different computers in parallel.

Oz Explorer

Besides of the engines described here, Mozart features the OzExplorer, an interactive graphical search engine. A short description of its use can be found in Section 3.3 of ``Finite Domain Constraint Programming in Oz. A Tutorial.''. Reference information on the Oz Explorer can be found in ``Oz Explorer - Visual Constraint Programming Support'', a research paper is [Sch97].