anchor.diff:  ;operador assume que as tasks estao ordenadas por ordem crescente
   ;estado interno e' um array de job-task-w-constr
   (defun inicia-task (estado)
  -  (let ((sucessores '())
  -	(dimensions (array-dimensions estado))
  -	(columns (car dimensions))
  -	(rows (cdr dimensions)));numero de jobs igual ao numero de linhas
  +  (let* ((sucessores '())
  +	       (dimensions (array-dimensions estado))
  +	       (columns (car dimensions))
  +	       (rows (cdr dimensions)));numero de jobs igual ao numero de linhas
       (loop for job from 0 to rows do
         (let* ((prox-task (proxima-tarefa estado job))
   	    (novo-estado nil)
  
positive.code:                                        (if(equal num-elem 0)
                                             nil
                                           (lanca-sonda (nth (random num-elem) sucessores))))))))
                   (while(null solucao) 
                     (setf solucao (lanca-sonda (problema-estado-inicial problema))))
                   (return-from sondagem-iterativa (list solucao)))))
  
  
negative.code: 		  ;o numero da maquina
  		  (setf nr.maquina (job-shop-task-machine.nr job-task))
  		  ;actualizar o tempo de inicio do job 
  		  (setf (job-shop-task-start.time job-task) (job-task-w-constr-virtual-time (aref estado job prox-task)))
  		  (setf last-start-time (job-shop-task-start.time job-task))
  		  (setf task-duration (job-shop-task-duration job-task))
  		  (propaga-restr-tempo novo-estado nr.maquina last-start-time task-duration)
  