simpleGA.rkt 721 B

1234567891011121314151617181920212223242526272829303132333435
  1. #lang typed/racket
  2. ;; A simple genetic algorithm
  3. ;; Computer Exercise #1 from Intro to GA by Mitchell
  4. ;;
  5. ;; Uses:
  6. ;; - fitness-proportionate selection
  7. ;; - routlette-wheel sampling
  8. (require math)
  9. ; population size and individual chromosome length
  10. (define popsize 100)
  11. (define chromlen 100)
  12. ; single-point crossover rate
  13. (define p-cross 0.7)
  14. ; bitwise mutation rate
  15. (define p-mutate 0.001)
  16. ; Fitness assessment is the number of 1's in the population member
  17. (: fitness (-> (Listof Integer) Real))
  18. (define (fitness member)
  19. (/ (sum member)
  20. (length member)))
  21. ; mutate an individual
  22. (: mutate (-> (Listof Integer) (Listof Integer)))
  23. (define (mutate member)
  24. )
  25. (: genpop (-> (Listof Integer)))
  26. (define genpop
  27. )