anchor.diff:  
     
     
  -(defun optimize-schedule (job-problem)
  -
  -
  -  )
  -
  -(defun estado-objectivo (estado)
  -	(let* ((dimensions (array-dimensions estado))
  +(defun optimize-schedule (job-problem))
  +
  +(defun estado-objectivo (state-job)
  +	(let*  ((estado (state-job-schedule-jobs-tasks-space state-job))
  +			(dimensions (array-dimensions estado))
   		 	(rows (car dimensions))
   		 	(columns (cadr dimensions)))
     		(loop for job from 0 to (- rows 1) do
  
positive.code:     (labels ((ildsProbe (estado maxDiscrepancia rProfundidade)
                  (let* ((sucessores (problema-gera-sucessores problema estado))
                         (num-elem (list-length sucessores)))
                       (cond 	((funcall objectivo? (state-job-schedule-jobs-tasks-space estado)) (list estado))
                       		((= 0 num-elem) nil)
                       		(t 
                       			(setf result nil)
  
negative.code: 
  (defun beam-search (problema beam-width) 
    (let* ((*nos-gerados* 0)
  		 (*nos-expandidos* 0)
  		 (tempo-inicio (get-internal-run-time))
  		 (objectivo? (problema-objectivo? problema))
  		 (heur (problema-heuristica problema))
  		 ;(estado= (problema-estado= problema))
  
  		 ;thanks to Norvig
  		 (beam-sorter #'(lambda (old new)
  				 (let ((sorted (funcall (sorter heur) old new)))
  				   (if (> beam-width (length sorted))
  						sorted
  				      (subseq sorted 0 beam-width)))))
  		 (solucao nil)
  		 (tempo 300))
  
      (labels ((beam (estados)
                (cond ((<= (- tempo (/ (- (get-internal-real-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)))
                              (sucessores-ordenados (funcall beam-sorter sucessores-estado (rest estados)));sucessores ate' beam width
                              )
  						(return-from beam (beam sucessores-ordenados)))))))
               (loop 
  				(let* ((aux-solucao nil))
  				  (setf aux-solucao (beam (list (problema-estado-inicial problema))))
  				  (if (null solucao)
  				      (setf solucao aux-solucao)
  				     (if (better-solution aux-solucao solucao)
  					 	(setf solucao aux-solucao)))
  				  (when (<= (- tempo (/ (- (get-internal-real-time) tempo-inicio) internal-time-units-per-second)) 0.2)
  				      (return-from beam-search solucao)))))))
  
  ;;;;;;;;;;;;;
  ;ILDS
  