anchor.diff:    )
   
   
  -
  -J0: T0 nil
  -    T1 nil
  -J1: T0 nil
  -    T1 nil
  -J2: T0 nil
  -    T1 nil
  -
  -foreach job in jobs:
  -  task := get_next_task
  -  task_others := get_others_task
  -
  -1ª
  -J0: T0 0
  -    T1 nil
  -J1: T0 nil
  -    T1 nil
  -J2: T0 nil
  -    T1 nil
  -    
  -J0: T0 nil
  -    T1 nil
  -J1: T0 0
  -    T1 nil
  -J2: T0 nil
  -    T1 nil
  -    
  -J0: T0 nil
  -    T1 nil
  -J1: T0 nil
  -    T1 nil
  -J2: T0 0
  -    T1 nil
  -    
  -2ª   
  -J0: T0 0
  -    T1 T0.D
  -J1: T0 nil
  -    T1 nil
  -J2: T0 nil
  -    T1 nil
  -    
  -J0: T0 0
  -    T1 nil
  -J1: T0 0
  -    T1 nil
  -J2: T0 nil
  -    T1 nil
  -    
  -J0: T0 0
  -    T1 nil
  -J1: T0 nil
  -    T1 nil
  -J2: T0 0
  -    T1 nil  
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ; Job Shop aux
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  
positive.code: (defun converte-para-visualizacao (estado-interno)
    ) 
  
  (defun converte-para-estado-interno (job-shop-prob) 
    (let ((operadores (list #'inicia-task))
  	(n.jobs (job-shop-problem-n.jobs job-shop-prob))
  	;(estado-inicial (make-array '()))
  	)
  	;inicializar todos os tempos virtuais a 0
      (cria-problema estado-inicial operadores)
      )
    )
    
  
negative.code: 	(rows (cdr dimensions))
  	)
       ;para cada maquina que ainda nao tenha start time, propaga o tempo virtual, actualizando o anterior
       (loop for job from 0 to rows do
  	(loop named inner for task from 0 to columns do
  	  ;nao e' garantido que todos os jobs tenham o mesmo numero de tarefas
  	  (if (null (aref estado job task)) 
  	      (return-from inner)
  