anchor.diff:  		   		(virtual-time-before (job-task-w-constr-virtual-time job-w-constr-before))
   		   		(duration-before (job-shop-task-duration job-task-before)))
   	      (setf (job-task-w-constr-virtual-time job-w-constr) (+ virtual-time-before duration-before)))))
  -	 (cria-problema estado-inicial operadores)))
  +	 (cria-problema estado-inicial operadores :objectivo? #'estado-objectivo)))
     
   
   (defun proxima-tarefa (estado job)
  
positive.code: (defun calendarizacao (job-shop-problem procura-str) 
    (let ((internal-problema (converte-para-estado-interno job-shop-problem))
  		(result nil))
  
      (cond ((equal procura-str "ILDS") (ilds internal-problema))
  	  	  ((equal procura-str "Iterative-Sampling") (sondagem-iterativa internal-problema))
  	  	  (t
  	    	(procura internal-problema procura-str)))))
  
  
negative.code:   
    
  (defun optimize-schedule (job-problem)
  
  
    )
  
  (defun estado-objectivo (estado)
  	(let* ((dimensions (array-dimensions estado))
  		 	(rows (car dimensions))
  		 	(columns (cadr dimensions)))
    		(loop for job from 0 to (- rows 1) do
    			(if (loop for task from 0 to (- columns 1) thereis (null (job-shop-task-start.time (job-task-w-constr-job-task (aref estado job task)))))
    					(return-from estado-objectivo nil)
    				)
    			)
    		t
    		)
  	)
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ; Struct aux functions
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  