include 'GA.inc'
include 'common.inc'
include 'io.inc'
- real*16 :: WEIGHTS(18)
+ real*8 :: WEIGHTS(18)
integer*4 :: i,j,m,n,iloc,pos,iter,maxiter,numarg,tmplen
integer*4 :: WybierzOsobnika,Najlepszy,ZnajdzPodobnego,FindWorst
integer*4 :: status
c Do we actual use a Genetic Algorithm?
c
- if (do_ga.eq..true.) then
+ if (do_ga.eqv..true.) then
c Yes. This is only done when doing second pass with ZSCORE (without weight minimalizaton)
c or with weight minimalization disabled (maxmin=0) just to obtain final score)
-c \\---//================================================================
-c \\-//
-c "// Genetic Algorithm code starts here
-c //-\\
-c =//---\\===============================================================
+c \\---//================================================================c
+c \\-// c
+c "// Genetic Algorithm code starts here c
+c //-\\ c
+c =//---\\===============================================================c
call ReadZEnergy(BANK_MULTIPLIER*banksize,populacja)
do i=1,BANK_MULTIPLIER*banksize
c
c Create the inputs
c
- write(tmptext,'(I)') generation+1
+ write(tmptext,'(I3)') generation+1
call write2log("Preparing inputs for next generation ("//trim(adju&
&stl(tmptext))//")")
call CreateInputs(BANK_MULTIPLIER*banksize,populacja)
integer*4 function FindWorst(rozmiar,pop)
integer*4 :: rozmiar, i, idx
- real*16 :: pop,last
+ real*8 :: pop,last
dimension pop(rozmiar,21)
last=0.0
include 'TEST.inc'
real*8 :: osobnik(20)
integer*4 :: i
- FunkcjaCeluB = 20 + -exp(-abs(WLONG-osobnik(1))) &
+ FunkcjaCeluB = 20 -exp(-abs(WLONG-osobnik(1))) &
& - exp(-abs(WSCP-osobnik(2))) &
& - exp(-abs(WELEC-osobnik(3))) &
& - exp(-abs(WBOND-osobnik(4))) &
select case (wiersz(1:12))
case('GENERATIONS=','generations=')
tmp = wiersz(13:len_trim(wiersz))
- read(tmp,'(I)') maxgen
+ read(tmp,'(I4)') maxgen
end select
c CICUTOFF=
select case(wiersz(1:11))
case('POPULATION=','population=')
tmp = wiersz(12:len_trim(wiersz))
- read(tmp,'(I)') banksize
+ read(tmp,'(I4)') banksize
call write2log("Bank size is set to "//tmp)
end select
select case(wiersz(1:7))
case('MAXMIN=','maxmin=')
tmp = wiersz(8:len_trim(wiersz))
- read(tmp,'(I)') maxminstep
+ read(tmp,'(I4)') maxminstep
if (maxminstep.gt.0) then
call write2log("ZSCORE weights minimalization set to "//tmp)
do_optima=.true.
if (delta.lt.mindelta) then
mindelta=delta
pozycja=i
- write(tmp,'(F7.5,X,I)') delta,pozycja
+ write(tmp,'(F7.5,X,I4)') delta,pozycja
call write2log("Delta is "//tmp)
endif
end do
include 'common.inc'
real*8,dimension(banksize,21) :: b
real*8 :: d,avgd
- integer*4 :: nd
+ integer*4 :: nd,w
d=0.0 ! distance
nd = (banksize-1)*banksize/2 ! number of distances to calculate
real*8, parameter :: WSCCOR_LOW = 0.00000
C -- UNRES weight values names --
- character*7, parameter :: WNAME(19) = (/ 'WLONG','WSCP','WELEC', &
- &'WBOND','WANG','WSCLOC','WTOR','WTORD','WCORRH','WCORR4','WCORR5',&
- &'WCORR6','WEL_LOC','WTURN3','WTURN4','WTURN6', 'WVDWPP','WHPB', &
- &'WSCCOR' /)
+ character*7, parameter :: WNAME(19) = (/ 'WLONG ','WSCP ', &
+ &'WELEC ','WBOND ','WANG ','WSCLOC ','WTOR ','WTORD ', &
+ &'WCORRH ','WCORR4 ','WCORR5 ','WCORR6 ','WEL_LOC','WTURN3 ', &
+ &'WTURN4 ','WTURN6 ','WVDWPP ','WHPB ','WSCCOR ' /)