anchor.diff:  		(subseq sorted 0 beam-width))))
    		)
   
  -		
  -(defun beam-search (problema beam-width) 
  +(defun is-better-solution (heur)
  +      #'(lambda (best-solution-so-far new-solution)
  +	    (> (funcall heur (first new-solution)) (funcall heur (first best-solution-so-far)))))
  +	    
  +(defun beam-search (problema beam-width max-beam-width) 
     (let* ((*nos-gerados* 0)
   		 (*nos-expandidos* 0)
   		 (tempo-inicio (get-internal-run-time))
  
positive.code: 		 (heur (problema-heuristica problema))
  		 ;(estado= (problema-estado= problema))
  
  		 (solucao nil)
  		 (tempo 300))
  
      (labels ((beam (estados)
                (cond ((<= (- tempo (/ (- (get-internal-run-time) tempo-inicio) internal-time-units-per-second)) 0.2) (return-from beam-search solucao))
  				    ((funcall objectivo? (first estados)) (list (first estados)))
                      ((null (first estados)) nil)
                      (t 
                       (let* ((sucessores-estado (problema-gera-sucessores problema (first estados)))
  
negative.code: 		 (tempo-inicio (get-internal-run-time))
  		 (objectivo? (problema-objectivo? problema))
  		 ;(estado= (problema-estado= problema))
  		 (result nil))
  
      (labels ((lanca-sonda (estado)
                (cond ((funcall objectivo? estado) (list estado))
  