Browse Source

Enhancement in dirvar score again

Add a correction to ensure that fractdim score is in [0..1]. The new
score in given by 1 - (1/((x+1)**4)) with x the old factdim score (between
[0..2] or [0..4] ).
Yann Weber 6 years ago
parent
commit
b2060bc608
2 changed files with 9 additions and 4 deletions
  1. 3
    2
      gte/__main__.py
  2. 6
    2
      gte/world.py

+ 3
- 2
gte/__main__.py View File

@@ -274,8 +274,9 @@ else:
274 274
     stop = time.time()
275 275
 
276 276
     score_dir = sum([t.dirvar() for t in turmits]) / len(turmits)
277
-    msg = 'DirVar %.3f Fractdim %.3f after %d steps in %.2fs (%dus per step)'
278
-    msg %= (score_dir, w.fractdim(), args.steps,
277
+    fractdim = w.fractdim()
278
+    msg = 'Score %.3f DirVar %.3f Fractdim %.3f after %d steps in %.2fs (%dus per step)'
279
+    msg %= (score_dir * fractdim, score_dir, fractdim, args.steps,
279 280
             stop - start,
280 281
             ((stop - start)*1000000)//args.steps//args.turmit_count)
281 282
     logger.info(msg)

+ 6
- 2
gte/world.py View File

@@ -241,9 +241,13 @@ class LivingTurmit(Turmit):
241 241
     def dirvar(self):
242 242
         ''' @brief Process @ref _dirvar to return a direction variation
243 243
             score
244
-            @return a score in [0..2]
244
+            @return a score in [0..1]
245 245
         '''
246
-        return self._dirvar / (self._steps * 2)
246
+        dvres = 1 + (self._dirvar / (self._steps * 2))
247
+        return 1 - (1/(dvres**4))
248
+
249
+        #return self._dirvar / (self._steps * 2)
250
+
247 251
         #d = self._dirvar
248 252
         #return sum([sum([abs(d[i][j] - d[i+1][j]) for j in (0,1)])
249 253
         #                 for i in range(len(d)-1)]) / (self._steps * 2)

Loading…
Cancel
Save