GSAT
Procedure GSAT (CNF formula: ?, max-restarts, max-climbs)
For I := I o max-restarts do
A := randomly generated truth assignment
for j := 1 to max-climbs do
if A satisfies ? then return yes
A := random choice of one of best successors to A
;; successor means only 1 var val changes from A
;; best means making the most clauses true