anchor.diff:  		;estimativa do fim temporal do problema
   		(dolist (task tarefas-nao-alocadas)
   		    (let* ((task-id (task-info-task-id task))
  -			  (job-id (task-info-job-id task))
  -			  (virtual-task-time-start (job-task-w-constr-virtual-time (aref estado job-id task-id)))
  -			  (task-duration (task-info-task-duration task))
  -			  (estimativa (+ virtual-task-time-start task-duration))
  -			  )
  +				   (job-id (task-info-job-id task))
  +				   (virtual-task-time-start (job-task-w-constr-virtual-time (aref estado job-id task-id)))
  +				   (task-duration (task-info-task-duration task))
  +				   (estimativa (+ virtual-task-time-start task-duration)))
   			(when (>  estimativa estimativa-fim-temporal)
   			  (setf estimativa-fim-temporal estimativa))))
   		
  
positive.code:   		t))
  
    		
  
  ;heuristica que faz um peso entre o racio da paralelizacao e de quanto falta para terminar
  (defun heuristica-tempo-final (job-state)
  
negative.code: 
  
  
  (defun hash-generator (job-state)
          (let*  ((answer "")
  				(estado (state-job-schedule-jobs-tasks-space job-state))
  				(dimensions (array-dimensions estado))
  				(rows (car dimensions))
  				(columns (cadr dimensions)))
  		    (loop for job from 0 to (- rows 1) do
  				(loop for task from 0 to (- columns 1) do
  			  		(let* ((task-constr (aref estado job task)))
  			    		(if (not (null  task-constr))
  							(setf answer (concatenate 'string answer (write-to-string (job-task-w-constr-virtual-time task-constr))))))))
  	        (return-from hash-generator answer)))
  
  
  (defun estado-objectivo (state-job)
  