anchor.diff:    (let ((internal-problema nil)
   		(result nil))
       (cond ((string-equal procura-str "ILDS") (setf internal-problema (converte-para-estado-interno job-shop-problem #'heuristica-tempo-final-v2))
  -					     (setf result (ilds internal-problema 100)))
  +					     (setf result (ilds internal-problema (state-job-schedule-number-tasks (problema-estado-inicial internal-problema)))))
   	  ((string-equal procura-str "sondagem.iterativa") (setf internal-problema (converte-para-estado-interno job-shop-problem #'heuristica-tempo-final-v2))
   							   (setf result (sondagem-iterativa internal-problema)))
   	  ((string-equal procura-str "abordagem.alternativa") (setf internal-problema (converte-para-estado-interno job-shop-problem #'heuristica-tempo-final-v2))
  -							      (setf result (beam-search internal-problema #'is-better-solution-job-shop 10 25)))
  +							      (setf result (beam-search internal-problema #'is-better-solution-job-shop (job-shop-problem-n.jobs job-shop-problem) 
  +							      																			(state-job-schedule-number-tasks (problema-estado-inicial internal-problema)))))
   	  ;FIXME
   	  ((string-equal procura-str "melhor.alternativa") (setf internal-problema (converte-para-estado-interno job-shop-problem #'heuristica-tempo-final-v2))
  -							   (setf result (beam-search internal-problema 10 25)))
  -	  ;FIXME
  +							   (setf result (procura internal-problema "a*" :espaco-em-arvore? T)))
  +
   	  ((string-equal procura-str "a*.melhor.heuristica") (setf internal-problema (converte-para-estado-interno job-shop-problem #'heuristica-tempo-final-v2))
   							     (setf result (procura internal-problema "a*" :espaco-em-arvore? T)))
   	  (t		;FIXME
  
positive.code: 
  (defun is-better-solution-job-shop (best-solution-so-far new-solution) 
      (let* ((end-best 0)
  	   (end-new 0)
  	   (estado-best-solution (state-job-schedule-jobs-tasks-space (car best-solution-so-far)))
  	   (estado-new-solution (state-job-schedule-jobs-tasks-space (car new-solution)))
  	   (dimensions (array-dimensions estado-new-solution))
             (rows (car dimensions))
             (columns (car (cdr dimensions)))
  	   )
  	   (loop for job from 0 to (- rows 1) do
  	      (loop for task from 0 to (- columns 1) do
  		  (let* ((job-task-new (job-task-w-constr-job-task (aref estado-new-solution job task)))
  			(job-task-best (job-task-w-constr-job-task (aref estado-best-solution job task)))
  			(end-aux-new (+ (job-shop-task-duration job-task-new) (job-shop-task-start.time job-task-new)))
  			(end-aux-best (+ (job-shop-task-duration job-task-best) (job-shop-task-start.time job-task-best)))
  			)
  		    (when (> end-aux-new end-new)
  			(setf end-new end-aux-new))
  		    (when (> end-aux-best end-best)
  			(setf end-best end-aux-best)))))
  	   (return-from is-better-solution-job-shop (< end-new end-best))))
        
  	    
  
negative.code: 	    	 (copia-task nil)
  	    	 (tempo-maquina-actual nil)
  	    	 (tempos-maquinas-actual nil)
  	    	 (tasks-to-assign-actual nil))
  
  	    (if (not (null prox-task))
  			(progn
  