PROGRAM de_test USE fun, ONLY : f ! Kohdefunktio USE de_opt, ONLY : initialize, optimize, prec IMPLICIT NONE INTEGER, PARAMETER :: n = 5, p = 24, max_iter = 500 REAL(KIND=prec) :: low = -600, up = 600, & crossover = 0.1, coeff = 0.7 REAL(KIND=prec), DIMENSION(n,p) :: popul REAL(KIND=prec), DIMENSION(p) :: values CALL initialize(f, popul, values, low, up) WRITE (*,'(A,/,(3G14.6))') 'Arvot alussa: ', values CALL optimize(f, popul, values, max_iter, coeff, crossover) WRITE (*,'(A,/,(3G14.6))') 'Arvot lopussa: ', values WRITE (*,'(A,/,G14.6)') 'Minimiarvo: ', MINVAL(values) WRITE (*,'(A,/,(3G14.6))') 'Minimikohta: ', & popul(:,MINLOC(values)) END PROGRAM de_test