#lang racket


;;Parámetros que son variables
;;El cromosoma
(define length-cromosoma 144)
;;de la población
(define length-poblacion 50)
;;porcentaje de la población que se reproduce
(define %pot-repr (/ 2 3))
;;los mejores son un % de %a-cruzar
(define %mejores-repr (/ 3 4))
;;punto del cruce de cromosomas
(define punto-de-cruce #f);(random length-cromosoma))
;;probabilidad de la mutación: 1 por 1000
(define prob-mutacion (cons 5 1000))
;;cuando se conoce la solución, ésta es un cromosoma
(define solucion 'desconocida)



;;procedimiento específico del problema xor. Genera al azar un gen
(define un_parametro
  (lambda ()
    (let ((pos-neg (random 2)))
      (case pos-neg
        ((0) (* -1 (random 10)) )
        ((1) (random 10))
        )
      ) ))

(define haz-gen! un_parametro)

(define muta-gen un_parametro)

(provide 
 ;parámetros que son variables
 length-cromosoma 
 length-poblacion
 %pot-repr 
 %mejores-repr
 punto-de-cruce
 prob-mutacion
 solucion
 ;parámetros que son procedimientos         
; criterio-fitness
; criterio-parada
 haz-gen!
 muta-gen
; poblacion-fitness
 )
